Для начала вам нужно исправить часть правила to_client, так как это недопустимый синтаксис. Вам нужно будет изменить это, чтобы быть:
поток: к_клиенту, установлен;
Подробнее об этом можно узнать здесь.
Если вы просто ищете контент «abbb», отправленный с вашего сервера клиенту, вам просто нужно простое совпадение контента, как у вас. Я рекомендую использовать здесь быстрое сопоставление с образцом, чтобы повысить эффективность правила. Таким образом, соответствие вашего контента будет выглядеть примерно так:
содержание: "аббб"; fast_pattern: только;
Собрав это вместе, ваше правило может выглядеть примерно так:
alert tcp MY_SERVER HTTP_PORTS -> любой любой (msg: «Доступ к странице имеет контент abbb»; поток: к_клиенту, установлен; контент: «abbb»; fast_pattern: только; sid: XXXXX; версия: x;)
Если это все еще не срабатывает, возможно, что-то еще происходит. Поскольку вы просто ищете это в содержании, вам нужно проверить глубину проверки в препроцессоре http. Есть server_flow_depth и client_flow_depth. Попробуйте установить для них значение 0 (неограниченно) и посмотрите, сработает ли после этого ваше правило. Например, если у вас было значение client_flow_depth, равное 300, а содержимое «abbb» появилось только после 500 байт, то правило никогда не сработает, потому что snort не настроен на проверку так далеко в полезной нагрузке.
Если у вас включено адаптивное профилирование, вам необходимо добавить службу метаданных для http, иначе правило не будет соответствовать http-трафику. Это будет выглядеть примерно так:
метаданные: служба http;
Если вы не используете адаптивное профилирование, оно будет использовать порты в заголовке правила.
person
johnjg12
schedule
16.07.2014