Используя snort/suricata, я хочу генерировать предупреждение SSH для каждого неудачного входа в мою домашнюю сеть
Я устанавливаю систему обнаружения вторжений (IDS), используя Suricata. Я хочу написать собственное правило, которое будет генерировать предупреждение при каждой неудачной попытке входа в систему на моей виртуальной машине.
Пример:
alert tcp any any -> $ HOME_NET 22 (сообщение:"Попытка SSH Brute Force"; поток: установлено,to_server; содержимое:"SSH";nocase; смещение:0; глубина:4; обнаружение_фильтр: отслеживание by_src, счетчик 2, секунды 2;sid:2005; rev:1;)
Я пробовал различные комбинации для правила SSH, но не смог увидеть никаких предупреждений в разделе Suricata Alerts с несколькими неудачными попытками SSH. (Плохие попытки => использование неверного пароля для создания предупреждений)
Пожалуйста, дайте мне знать, как это сделать.
2 ответа
Поскольку вы действительно пытаетесь взглянуть на зашифрованный контент (именно там будет находиться сообщение об аутентификации и последующем сбое), Snort/suricata - не идеальный инструмент для использования описанным вами способом. Вместо этого, мониторинг журнала будет лучшим подходом.
Однако есть и другие альтернативы. Вы можете посмотреть в Fail2Ban для автоматической блокировки на уровне IPTables.
Если вы действительно хотите сделать это с Snort/Suricata, вы можете использовать пороги оповещения. Например:
alert tcp $EXTERNAL_NET any -> $HOME_NET 22 (msg:"Possible SSH brute forcing!"; flags: S+; threshold: type both, track by_src, count 5, seconds 30; sid:10000001; rev: 1;)
Это говорит Snort / Suricata генерировать предупреждение о входящих подключениях (входящих пакетах с установленным SYN), когда порог в 5 подключений виден из одного источника в течение 30 секунд. Порог "оба" указывает, что он не будет предупреждать до тех пор, пока этот порог не будет пройден, и что он будет генерировать только одно предупреждение, чтобы уведомить вас, вместо того, чтобы начинать заполнять вас предупреждениями.
Обратите внимание, что я отметил flags
как S+
, Не используйте только SYN. Помните, что ECN стал настоящей "вещью", и вы можете обнаружить, что два бита, которые Snort / Suricata по-прежнему называют "зарезервированными", установлены в результате согласования ECN.
Проверьте https://github.com/sshlog/agent .
Этот демон отслеживает попытки входа и команды SSH. У них есть пример, который генерирует предупреждение Slack всякий раз, когда происходит неудачный вход в систему, но вы можете настроить его для отправки WebHook, электронной почты или чего-либо еще, что вы можете придумать, используя собственный плагин.