So what is NSM?
NSM(Network Security Monitoring)是一种在你的网络上发现入侵者,并在他们危害你的企业之前对其采取行动的方法。NSM赋予了我们检测、响应及控制入侵者的能力。NSM操作旨在检测对手,响应他们的活动,并在他们能够完成任务前控制他们。与防火墙、IPS工具不同,NSM不是阻塞、过滤或拒绝技术。它是一种关注可见性(visibility)的战略。
网络安全监控运用于各种情景中,其中包括恶意软件检测、威胁情报、检测安全漏洞及自动执行补救任务等。要实现网络安全监控,就必须大量地收集、处理和分析数据源(包括全包捕捉、IDS报警事件、防火墙日志、VPN日志、网络设备日志等)。
网络安全监控应用情景
网络安全监控数据源
在继续之前先问问我们自己这样一个问题:
假设你得到了一个恶意文件的散列(从IDS报警或任意第三方威胁情报平台),你会如何判断它是否曾经在你的网络上?
目录:
1.Snort的文件还原功能介绍
2.配置Snort的文件还原(File extraction/file carving)功能
3.配置Wazuh实时监控Snort还原的文件和集成VirusTotal
1.Snort文件还原功能介绍
文件还原能力是NIDS系统非常重要的一个特性,
1.1)Snort的文件还原功能支持主流的文件传输协议如HTTP、SMTP、POP3、IMAP、FTP、SMB。支持SHA256文件签名计算。
1.2)依赖以下功能:1.TCP流会话跟踪功能。2.IP分片重组。3.需启用HTTP, SMTP, IMAP, POP3, FTP, 和 SMB任一预处理器。
1.3)snort 2.9.6.0开始支持文件还原功能。
2.配置Snort的文件还原(File extraction或file carving)功能
2.1)编译选项(--enable-file-inspect)
cd ~/snort_src
wget https://snort.org/downloads/snort/snort-2.9.11.1.tar.gz
tar -xvzf snort-2.9.11.1.tar.gz
cd snort-2.9.11.1
./configure --enable-file-inspect --enable-sourcefire
make
make install
创建文件存储目录:
mkdir /data/snort
2.2)配置
vi /etc/snort/snort.conf
config paf_max: 16000
preprocessor frag3_global: max_frags 65536
preprocessor frag3_engine: policy windows detect_anomalies overlap_limit 10 min_fragment_length 100 timeout 180
preprocessor stream5_global: track_tcp yes, \
... 省略
preprocessor http_inspect: global iis_unicode_map unicode.map 1252 compress_depth 65535 decompress_depth 65535
preprocessor http_inspect_server: server default \
http_methods { GET POST PUT SEARCH MKCOL COPY MOVE LOCK UNLOCK NOTIFY POLL BCOPY BDELETE BMOVE LINK UNLINK OPTIONS HEAD DELETE TRACE TRACK CONNECT SOURCE SUBSCRIBE UNSUBSCRIBE PROPFIND PROPPATCH BPROPFIND BPROPPATCH RPC_CONNECT PROXY_SUCCESS BITS_POST CCM_POST SMS_POST RPC_IN_DATA RPC_OUT_DATA RPC_ECHO_DATA } \
... 省略
preprocessor file_inspect: type_id, signature, capture_disk /data/snort/ 102400, capture_queue_size 5000
:启用文件类型标识
:启用文件签名计算
:将文件存储到dir中指定的目录,并捕获不超过磁盘大小(以兆字节为单位)。 如果达到此限制,则不再捕获文件。
:设置可以排队处理的最大文件数(保存到磁盘或发送到网络)。
include file_magic.conf
config file:\
file_type_depth 16384, \ # 最大文件深度来识别文件类型,0代表没有限制。单位:bytes
file_capture_max 4294967295 # 文件的最大值,范围:0-4G,单位:bytes
2.3)添加测试规则
cat /etc/snort/rules/local.rules
alert tcp any any -> any any (msg:"PNG"; content:"|89 50 4E 47 0D 0A 1A 0A|"; offset:0;sid:1000000)
alert tcp any any -> any any (msg:"JPEG"; content:"|FF D8 FF E0|"; sid:1000001)
alert tcp any any -> any any (msg:"PDF"; content:"|25 50 44 46 2D 31 2E 37|"; offset:0; sid:10000002)
2.4)测试
snort -A console -i eth0 -u snort -g snort -c /etc/snort/snort.conf
wget http://192.168.1.1/Snort.png # 注意是http协议
3.配置Wazuh实时监控Snort还原的文件和集成VirusTotal
3.1)安装Wazuh
参考:https://documentation.wazuh.com/current/installation-guide/index.html
3.2)Wazuh集成VirusTotal配置
# 注意:以下操作均在Wazuh Manager上
pip install requests
vi /var/ossec/etc/ossec.conf
virustotal
VT API KEY
syscheck
json
...
/data/snort
...
/var/ossec/bin/ossec-control enable integrator
/var/ossec/bin/ossec-control restart
3.3)测试
chown -R snort:ossec /data/snort
snort -A console -i eth0 -u snort -g snort -c /etc/snort/snort.conf
wget http://192.168.1.1/Snort.png
wget http://192.168.1.1/1.exe
总结:
本文探讨了一种使用Snort、Wazuh和VirusTotal,实现自动识别通过网络传输的恶意文件的方式。识别流量中的文件是网络安全监控中非常重要的一环,当然这只是开始。
诚邀有丰富攻防经验的朋友一起交流!
领取专属 10元无门槛券
私享最新 技术干货