CrowdSec — современная альтернатива Fail2Ban и коллективный иммунитет для Интернета
CrowdSec
Инструмент Fail2Ban хорошо известен админам. Программа анализирует логи на сервере и подсчитывает количество попыток доступа с конкретных IP-адресов по указанным протоколам. В случае нарушения правила данный IP-адрес блокируется на заданный отрезок времени. Например, джейл для авторизации по SSH включён с дефолтными настройками 5 попыток авторизации за 10 минут, после чего происходит бан IP-адреса на 10 минут. Отличный способ отфильтровать мусорный трафик от разных сканеров и защита от DDoS.
Fail2Ban и SSHGuard — лучшие инструменты в своей области. Однако новый опенсорсный проект CrowdSec представляется интересной альтернативой. Это локальная замена Fail2Ban, а потенциально нечто большее — глобальная база репутации IP-адресов типа иммунной системы интернета.
CrowdSec позиционирует себя как «движок для автоматизации безопасности», использующий локальные правила для детектирования IP, а также общую базу вредоносных IP, которая составляется силами сообщества.
Разработчики CrowdSec называют следующие ключевые особенности:
Важно отметить, что за разработкой стоит французская компания, а не американская, что по нынешним временам является плюсом для приватности. Даже если выбрать вариант «коллективной работы» и делиться собранными данными, отправляются только три параметра: метка времени, IP-адреса нарушителей и политика, которую они нарушили.
Ещё один интересный момент — инструмент написан на языке программирования Go.
С архитектурной точки зрения система состоит из трёх основных компонентов:
- постоянно работающая служба CrowdSec, которая отслеживает логи, атаки и т. д.;
- инструмент командной строки, интерфейс для взаимодействия со службой;
- модули интеграции (bouncers) с другими инструментами типа Cloudflare для реального обеспечения блокировки.
Вот как выглядит архитектура программы из документации:
На данный момент разработано пять модулей интеграции (bouncers):
cs-cloudflare-blocker, cs-custom-blocker (пользовательские сценарии), cs-netfilter-blocker, cs-nginx-blocker и cs-wordpress-blocker. Например, модуль для Nginx сверяет каждый неизвестный IP-адрес с базой данных, прежде чем веб-сервер ответит на запрос или выдаст ошибку 403. Модуль Netfilter просто «добавляет» вредоносные IP-адреса в чёрный список nftables/ipset.
Для простоты настройки на сайте собраны коллекции и конфигурации.
Коллекции — это, по сути, просто наборы парсеров и сценариев для разных ситуаций. Например, в коллекцию Nginx входит парсер логов nginx-logs и базовые http-сценарии для определения типичных вредоносных ботов (агрессивный краулинг, сканирование/пробирование портов, чёрный список user-agent’ов, а также определение попыток проведения атаки path traversal).
Полный список коллекций:
Один из вариантов работы с CrowdSec — через консольную программу cscli
:
cscli metrics
Эта команда выдаёт основные метрики о работе парсеров, объёме обработанных логов, количестве обнаруженных и заблокированных угроз по каждой коллекции (перечень коллекций см. выше).
Следующая команда выводит список хостов с указанием причин, почему их забанили, кодом страны, идентификатором автономной сети (AS), количеством нарушений и другой информацией.
cscli ban list
Консольная утилита cscli
поддерживает большой список команд и параметров для подключения/удаления конфигураций, добавления новых правил блокировки и др.
Но кроме cscli
, конфигурацию можно изменить и традиционным способом, путём редактирования текстового файла в формате YAML:
vi /etc/crowdsec/config/profiles.yaml
Естественно, кастомные сценарии тоже поддерживаются.
Что делает этот инструмент больше похожим на платформу, чем на утилиту, так это его многочисленные интеграции с другими инструментами. По крайней мере, разработчики программы ставят ставку именно на это и хотят построить бизнес на этой платформе. Они говорят о «глобальной платформе IP-репутаций» и «поведенческом движке безопасности».
Сейчас компания пытается предложить пользователям платный доступ к «облачному API» и базе данных с репутацией IP-адресов, которая составляется совместными усилиями. При этом поставщики информации в эту базу освобождаются от оплаты, а платят только чистые потребители, которые не хотят делиться информацией из своих логов. Планируется два тарифных плана: premium и enterprise с услугами по поддержке, специальными служебными инструментами (типа развёртывания системы на несколько локаций из одного центрального места), применением дата-майнинга и машинного обучения (обнаружение тенденций в глобальных данных), более продвинутом анализе холодных логов (форензика, криминалистика, расследования — хотя данное направление бизнеса в Европе затруднено из-за закона GDPR).
В любом случае опенсорсный инструмент выпускается под свободной лицензией MIT, так что коммерческие планы разработчиков никак не мешают сообществу использовать его и модифицировать под свои нужды.
Разработчики обращают внимание, что программа пока в бета-версии, но никаких проблем на продакшне ни у кого не возникало. Они также говорят, что программа на Go элементарно портируется на другие платформы вроде Windows и Mac.
По итогу сейчас это добротный опенсорсный инструмент, который можно использовать в качестве альтернативы старому доброму Fail2Ban. А со временем он может превратиться в нечто большее. Разработчики ставят цель в создании своеобразного «коллективного иммунитета», когда клетки организма (серверы) коллективно защищаются от атак, словно иммунная система.
На правах рекламы
Виртуальные серверы с защитой от DDoS-атак и новейшим железом, серверы размещены в одном из лучших российских дата-центров — DataPro. Всё это про наши эпичные серверы. Максимальная конфигурация — 128 ядер CPU, 512 ГБ RAM, 4000 ГБ NVMe! Поспешите заказать.