Правило Snort для проверки содержимого http-запроса не работает

Я пытаюсь проверить содержимое ответа http, чтобы найти в нем содержимое "abbb". Поэтому мое правило было

alert tcp MY_SERVER HTTP_PORTS -> any any(msg:"Страница, к которой обращались, имеет содержимое abbb";to_client; установлено; content:"abb";sid:XXXXX; rev:x;)

к сожалению, это правило, похоже, не работает. Может кто-нибудь сказать, если есть какие-то проблемы с моим правилом.

1 ответ

Решение

Для начала вам нужно исправить часть правила to_client, так как это неверный синтаксис. Вам нужно будет изменить это, чтобы:

Поток:to_client, установлено;

Вы можете найти больше о потоке здесь.

Если вы просто ищете контент "abbb", отправляемый с вашего сервера клиенту, вам просто нужно простое совпадение контента, как у вас. Я рекомендую использовать быстрое сопоставление с шаблоном, чтобы повысить эффективность правила. Таким образом, ваш контент будет выглядеть примерно так:

Содержание:"abbb"; fast_pattern: только;

Если сложить это вместе, ваше правило может выглядеть примерно так:

alert tcp MY_SERVER HTTP_PORTS -> any any (msg: "Страница, к которой обращались, имеет содержимое abbb"; поток:to_client, установлен; содержимое:"abbb"; fast_pattern:only; sid:XXXXX; rev:x;)

Если это по-прежнему не срабатывает, то, вероятно, происходит что-то еще. Поскольку вы просто ищете это в содержании, вам нужно проверить глубину проверки в препроцессоре http. Существует server_flow_depth и client_flow_depth. Попробуйте установить для них значение 0 (неограниченно) и посмотрите, срабатывает ли ваше правило после. Например, если значение client_flow_depth равно 300, а содержимое "abbb" не поступает до тех пор, пока не будет выполнено 500 байтов, правило никогда не сработает, потому что snort не настроен для проверки этого уровня полезной нагрузки.

Если у вас включено адаптивное профилирование, вам нужно добавить службу метаданных для http, иначе правило не будет соответствовать трафику http. Это будет выглядеть примерно так:

метаданные: сервис http;

Если вы не используете адаптивное профилирование, тогда оно будет использовать порты в заголовке правила.

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