Как узнать, обнаруживает ли snort атаки с помощью синхросигнала, так как snort alert ничего не регистрирует
У меня есть фырканье на Centos как IDS. Я пытаюсь проверить, может ли фырканье обнаружить атаку с помощью синхлоридного потока. Я посылаю атаку из той же локальной сети. Я добавил это правило в local.rules (предупреждение tcp!$HOME_NET any -> $HOME_NET 80 (флаги: S; msg:"Возможный TCP DoS"; поток: без состояний; порог: введите оба, отслеживать by_src, считать 70, секунд 10; sid:10001;rev:1;). Файл предупреждения Snort не регистрируется, когда я запускаю snort в быстром режиме. Он регистрировал, но теперь нет. Поэтому я не вижу, обнаруживает ли он атаку или нет. Как я могу сделать snort обнаруживает эту атаку?
2 ответа
Для начала ключевое слово "порог" устарело и не будет поддерживаться в будущем выпуске. Вместо этого вы должны использовать ключевое слово "defence_filter" ( ссылка).
Вы должны убедиться, что хосты, инициирующие синхронный поток, не являются хостами, содержащимися в вашей переменной $HOME_NET, в противном случае вам нужно изменить исходный IP-адрес на "любой" или "$HOME_NET" (если они находятся в $HOME_NET). Это также зависит от вашей атаки. Используете ли вы несколько исходных хостов для синхронизации заливки хоста назначения, или вы используете один исходный хост для синхронизации заливки назначения? Это будет иметь значение. Если у вас есть несколько исходных хостов, вам нужно отслеживать по назначению (вы, вероятно, захотите отслеживать по назначению в любом случае для этого). Если вы запускаете синхронный поток с одного хоста, то вы можете отслеживать по источнику.
Скорость обнаружения_фильтра отслеживается либо по IP-адресу источника, либо по IP-адресу назначения. Это означает, что счет поддерживается для каждого уникального IP-адреса источника или каждого уникального IP-адреса назначения. Таким образом, если у вашего потока синонимов есть несколько исходных IP-адресов, вам нужно использовать "track by_dst" для отслеживания количества синов, которые идут в один пункт назначения. Пример:
alert tcp any any -> $HOME_NET 80 (флаги: S; msg:"возможный TCP DoS"; поток: без состояний; обнаружение_фильтра: отслеживать by_dst, считать 70, секунд 10;)
Это правило будет оповещать каждую синхронизацию об уникальном IP-адресе в $HOME_NET в течение одного периода выборки в 10 секунд после первых 70 синов. Написание подобного правила может вызвать проблемы, так как вам нужно знать, каково нормальное количество соединений. Ожидаете ли вы, что ваш веб-сервер получит более 70 подключений за 10 секунд? Если это так, то вам нужно увеличить счет или уменьшить секунды.
Если ваша атака с использованием синфазного потока имеет уникальный источник, генерирующий несколько syns для IP-адреса назначения в $HOME_NET, вы можете отследить by_src:
alert tcp any any -> $HOME_NET 80 (флаги: S; msg:"возможный TCP DoS"; поток: без состояний; обнаружение_фильтра: отслеживать by_src, считать 70, секунд 10;)
Это правило будет срабатывать при каждой синхронизации от уникального IP до уникального IP в $HOME_NET в течение одного периода выборки в 10 секунд, после первых 70 синов.
Пример: хост 10.1.1.1 отправляет 83 syns за 10 секунд на хост 10.1.1.2, последние 13 из этих syns будут предупреждены.
Я бы сказал, что вы хотите отслеживать по месту назначения, потому что он будет охватывать оба сценария (один или несколько IP-адресов источника). Вы хотите, чтобы правило просто ограничивало количество подключений к вашему веб-серверу, поэтому вы будете отслеживать подключения к месту назначения и сбрасывать их после достижения определенного порога, чтобы защитить ваш сервер от перегрузки. Типичные синонимы случайным образом рандомизируют IP-адрес источника, поэтому, если бы вы отслеживали источник, это не предотвратило бы синхронный поток.
Что касается моего ответа, я предполагаю, что переменная $HOME_NET является вашей внутренней сетью LAN? Я также предполагаю, что отправитель и получатель находятся в одной подсети.
Вы должны принять! из начала вашего заявления фыркать. Это должно выглядеть так:
alert tcp $HOME_NET any -> $HOME_NET 80 (flags: S; msg:"Possible TCP DoS"; flow: stateless; threshold: type both, track by_src, count 70, seconds 10; sid:10001;rev:1;)
Если у вас есть! для входящего IP-фильтра, он будет искать любой трафик, кроме вашей домашней сети. Поскольку вы отправляете трафик в одну и ту же сеть, snort не будет ловить трафик, пока вы не удалите!
Кроме того, уберите скобки с начала оператора snort.
alert tcp $HOME_NET any -> $HOME_NET 80 (flags: S; msg:"Syn Flood Detected"; flow: stateless; threshold: type both, track by_src, count 70, seconds 10; sid:1000003;rev:1;)