Answers:
就像你说的那样,默认情况下,Snort会记录两种方式:
alert
file - 包含文本格式的警报元数据snort.log.##########
- 触发警报的数据包的PCAP我这样做的方式(只有基本的linux bash命令)将是:
搜索alert
文件。您可以使用IP地址或警报名称进行搜索grep
。
grep "PATTERN" /var/log/snort/alert
典型的日志输入行如下所示:
01/04-03:28:11.959559 [**] [1:1000001:1] Signature_Name [**] [Classification: Attempted User Privilege Gain] [Priority: 1] {TCP} 192.168.1.1:80 -> 192.168.1.128:39590
然后,要找出写入的文件,您可以查看长目录列表中的修改时间(ls -l
),或者您可以转换时间戳(不要忘记添加年份并在日期和时间之间放置一个空格) )使用以下命令到纪元时间:
date "+%s" -d "01/04/2018 03:28:11.959559"
输出:
1515054491
然后查找一个名为的文件snort.log.1515054491
。那应该包含PCAP数据。
这是大锤的方法。如果他们希望两个文件中的条目仅与单个IP地址相关,那么我就是这样做的:
Grep为IP地址,然后将输出写入单独的文件。
grep "192.168.1.1" /var/log/snort > /tmp/alerts_192.168.1.1.txt
这应该仅过滤出现IP地址的行,并将其重定向到您可以为安全团队提供的新文件。
我这样做会谨慎,因为snort日志目录可能非常大,并且迭代大量文件会给系统带来压力(特别是如果它是具有非常高流量的传感器)。我建议使用文件掩码显示您要查找的数据的大致时间范围。请记住,这个时间框架需要采用时代格式。
假设团队希望从现在开始一小时前(3600秒)。大纪元时间戳是1515054491.从中减去3600,得到1515050891。
1515050891 - Start
1515054491 - End
151505???? - File mask (close enough)
然后我会创建一个for循环来遍历所有这些文件并执行tcpdump命令来仅过滤有问题的IP地址。
tcpdump -r infile -w outfile "BPF"
选项:
而现在,for循环:
cd /var/log/snort
for file in snort.log.151505????
do
tcpdump -r $file -w /tmp/$file "host 192.168.1.1"
done
现在,您应该拥有该/tmp
文件夹中所有警报文件的副本,但只能包含与该特定IP地址相关的数据。如果您已经mergecap
安装,我建议使用以下内容将所有这些组合到一个PCAP文件中:
mergecap -w /tmp/snort_log_192.168.1.1.pcap /tmp/snort.log.*
你应该知道有两个文件/tmp
:
然后,将这些文件提供给您的安全团队。
grep
文件。