Воспроизведение файла pcap для Snort

В настоящее время у меня есть следующая, предположительно стандартная установка: у меня есть физический сервер с запущенным Snort. Snort входит в свои файлы журнала, как и должно. Эти файлы отслеживаются barnyard2, который записывает трафик в базу данных для Snorby.

Snort и barnyard2 запускаются как системный сервис. Теперь, помимо продолжающегося анализа сетевого трафика Snort, я хочу каждый час читать файлы pcap из другого источника, применяя к ним свои правила Snort.

К счастью, snort предоставляет эту функцию напрямую. Однако, используя snort -r foo.pcap запускает новый экземпляр Snort, что, естественно, приводит к созданию нового файла журнала. Barnyard2 распознает этот новый файл журнала и обрабатывает данные из pcap, как и ожидалось => правила в порядке и работают для трафика pcap. Однако трафик от экземпляра Snort, работающего в качестве службы, все еще записывается в старый файл, и barnyard2 не обрабатывает эти пакеты из-за наличия нового файла журнала.

Во избежание этого я сейчас пытаюсь использовать tcpreplay чтобы воспроизвести pcap на моем внешнем интерфейсе, чтобы служба Snort могла обрабатывать пакеты, как и любой другой трафик. К сожалению, Snort не совпадает ни с какими пакетами, если они воспроизводятся таким образом. Правила, действующие через snort -r должен доказать, что они верны.

Нужно ли переписывать что-либо вроде MAC-адресов при использовании tcpreplay? Стоит упомянуть, что мне пришлось перекомпилировать Snort с --enable-non-ether-decoders параметр для того, чтобы иметь возможность читать трафик pcap.

1 ответ

Решение было использовать tcprewrite переписать кадры данных через tcprewrite --dlt=enet, Проблема, похоже, та же, что требовала компиляции Snort с --enable-non-ether-decoders, Я предполагаю, что это происходит из-за виртуализации, вовлеченной где-то в наблюдаемой среде.

Другие вопросы по тегам