Snort находит файл оповещения DATA с помощью snort.logs.xxxxxxx

Snort находит файл оповещения DATA с помощью snort.logs.xxxxxxx

Я работаю над задачей, в которой моя команда по безопасности просит меня предоставить файл pcap в папке /var/log/snort. Они извлекли исходный IP-адрес из файла оповещения и им нужно провести дополнительный анализ файлов pcap (например, snort.log.xxxxxxx) для этого исходного IP-адреса.

Файл оповещения и файлы snort.log.xxxxx находятся в одной папке. Как дать им точный файл snort.log.xxxxx для анализа? Пожалуйста, дайте несколько команд или любую технику, чтобы сделать это. Я совсем новичок в этой области. Я работаю с машиной Linux (Centos 7), где snort выгружает логи.

решение1

Как вы сказали, по умолчанию Snort будет вести журнал двумя способами:

  1. alertфайл — содержит метаданные оповещения в текстовом формате.
  2. 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

Чтобы найти соответствующий файл PCAP:

Затем, чтобы выяснить, какой файл был записан, вы можете либо посмотреть время изменения в длинном списке каталогов ( ls -l), либо преобразовать временную метку (не забудьте добавить год и поставить пробел между датой и временем) в эпоху с помощью следующей команды:

date "+%s" -d "01/04/2018 03:28:11.959559"

Выход:

1515054491

Затем найдите файл с именем snort.log.1515054491. Он должен содержать данные PCAP.

Если вам нужно несколько журналов для одного IP-адреса

Это подход кувалды. Если они хотят записи из обоих файлов, относящиеся только к одному IP-адресу, вот что я бы сделал:

Записи файла оповещений

Выполните команду Grep для получения IP-адреса, а затем запишите вывод в отдельный файл.

grep "192.168.1.1" /var/log/snort > /tmp/alerts_192.168.1.1.txt

Это должно отфильтровать только те строки, где указан IP-адрес, и перенаправить его в новый файл, который вы можете предоставить службе безопасности.

PCAP-файлы

Я бы проявил осторожность, делая это, поскольку каталог журнала snort может быть очень большим, а итерация по большой группе файлов может создать нагрузку на систему (особенно если это датчик с очень большим объемом трафика). Я бы рекомендовал использовать маску файла для приблизительного временного интервала для данных, которые вы ищете. Помните, что этот временной интервал должен быть в формате эпохи.

Допустим, команда хочет получить все с настоящего момента, начиная с часа назад (3600 секунд). Метка времени эпохи — 1515054491. Вычтите из этого 3600, и вы получите 1515050891.

1515050891 - Start
1515054491 - End
151505???? - File mask (close enough)

Затем я бы создал цикл for для перебора всех этих файлов и выполнил команду tcpdump для фильтрации только по указанному IP-адресу.

tcpdump -r infile -w outfile "BPF"

Варианты:

  • -r — для чтения из файла (в отличие от запуска живого захвата из интерфейса)
  • -w — для записи вывода в файл
  • «BPF» — фильтр пакетов Беркли (в этом случае это будет «хост 192.168.1.1», чтобы указать все пакеты с этим IP-адресом.)

А теперь цикл 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:

  • /tmp/alerts_192.168.1.1.txt
  • /tmp/snort_log_192.168.1.1.pcap

Затем предоставьте эти файлы вашей службе безопасности.

Связанный контент