Вопрос или проблема
Я новичок в правилах snort и мне нужно правило, которое будет оповещать о любом электронном письме от конкретного пользователя. Например:
alert tcp any any -> any 25 (msg:"Обнаружено целевое электронное письмо"; content:"[email protected]"; fast_pattern:only; nocase; classtype: Обнаружено целевое электронное письмо; sid:12345 ;)
Это правило в настоящее время будет перехватывать, если оно есть в содержимом, но письмо с вышеуказанного адреса не вызывает оповещения.
Ваше правило, в общем, выглядит хорошо.
Я полагаю, что проблема связана с вашей картой sid / classtype.
Если вы определяете новый тип классификации, как вы это сделали, есть дополнительные параметры конфигурации, которые необходимо установить – в этом случае гораздо легче использовать что-то существующее. Я бы предложил использовать классовый тип policy-violation.
Относительно комментария
Поле содержимого просматривает весь пакет, который он видит. Это не должно быть проблемой PCRE. Вам может потребоваться посмотреть на сбор потока. Возможно, строка, которую вы ищете, разбивается между пакетами. Попробуйте запустить Wireshark и захватить точные пакеты, которые вам нужны.
Ответ или решение
Ваш запрос касается создания правила Snort для мониторинга входящих электронных писем от конкретного адреса. Правильное написание правила, которое сможет корректно определять нужные вам входящие сообщения, требует учета множества факторов. Давайте подробно разберем правильный подход к созданию такого правила.
Основы написания правил Snort
Snort — это система обнаружения вторжений (IDS), которая работает на основе правил. Каждое правило имеет определенную структуру, и важно не только указать IP-адрес и порты, но и корректно задать параметры для определения содержимого пакетов. Правило должно вызывать оповещения на основе заданных условий.
Пример правила
Ваше текущее правило выглядит так:
alert tcp any any -> any 25 (msg:"Target Email Detected"; content:"[email protected]"; fast_pattern:only; nocase; classtype: Target Email Detected; sid:12345;)
Однако оно может не работать должным образом, потому что Snort может не видеть весь контент в одном пакете, особенно если сообщение разбивается на несколько пакетов. Для решения этой проблемы вы можете использовать дополнительные ключевые слова.
Рекомендации по улучшению правила
-
Проверка фрагментации пакетов: Включение флагов
flow
иdsize
для управления правильной сборкой потоков. -
Использование существующего
classtype
: Для упрощения, лучше использовать существующие классы, такие какpolicy-violation
илиweb-application-activity
, вместо определения нового. -
Настройки
content
: Возможно, стоит использовать регулярные выражения (PCRE) для более гибкого поиска в содержимом, особенно если адрес электронной почты может появляться в разных форматах или контекстах.
Пример улучшенного правила
Вот обновленное правило с учетом вышеуказанных рекомендаций:
alert tcp any any -> any 25 (msg:"Обнаружено электронное письмо от целевого пользователя"; content:"[email protected]"; nocase; pcre:"/^[^@]+@[a-z0-9.-]+\.[a-z]{2,}$/"; flow:to_server; dsize:>0; classtype:policy-violation; sid:12345;)
Объяснение ключевых параметров:
-
content: Ищет адрес электронной почты. Использование
nocase
позволяет игнорировать регистр символов. -
pcre: Регулярное выражение позволяет более точно находить строки, которые выглядят как адреса электронной почты.
-
flow: Указывает направление потока. В данном случае мы хотим видеть входящие письма на наш почтовый сервер.
-
dsize: Убедитесь, что содержание пакета больше 0 байт, чтобы избежать фальшивых срабатываний.
-
classtype: Вместо нового класса используем
policy-violation
, что упрощает его дальнейшую настройку.
Заключение
Следуя приведённым рекомендациям, вы сможете создать правило Snort, которое будет эффективно извлекать и сообщать о сообщениях от конкретного пользователя. Не забывайте тестировать ваше правило с помощью инструментов, таких как Wireshark, для уверенности в его работе и корректности срабатываний. Постепенно практикуя написание правил Snort, вы сможете расширить свои знания и навыки в области сетевой безопасности.