- PVSM.RU - https://www.pvsm.ru -
CrowdSec
Инструмент Fail2Ban [1] хорошо известен админам. Программа анализирует логи на сервере и подсчитывает количество попыток доступа с конкретных IP-адресов по указанным протоколам. В случае нарушения правила данный IP-адрес блокируется на заданный отрезок времени. Например, джейл для авторизации по SSH включён с дефолтными настройками 5 попыток авторизации за 10 минут, после чего происходит бан IP-адреса на 10 минут. Отличный способ отфильтровать мусорный трафик от разных сканеров и защита от DDoS.
Fail2Ban и SSHGuard [2] — лучшие инструменты в своей области. Однако новый опенсорсный проект CrowdSec [3] представляется интересной альтернативой. Это локальная замена Fail2Ban, а потенциально нечто большее — глобальная база репутации IP-адресов типа иммунной системы интернета.
CrowdSec позиционирует себя как «движок для автоматизации безопасности», использующий локальные правила для детектирования IP, а также общую базу вредоносных IP, которая составляется силами сообщества.
Разработчики CrowdSec называют следующие ключевые особенности:
git clone https://github.com/crowdsecurity/crowdsec/releases/latest
sudo ./wizard.sh -i
[4]
Установка CrowdSec. Визард в консоли помогает выбрать и предлагает, какие демоны/логи нужно мониторить, хотя возможна и последующая настройка через обычные конфиги
Важно отметить, что за разработкой стоит французская компания, а не американская, что по нынешним временам является плюсом для приватности. Даже если выбрать вариант «коллективной работы» и делиться собранными данными, отправляются только три параметра: метка времени, IP-адреса нарушителей и политика, которую они нарушили.
Ещё один интересный момент — инструмент написан на языке программирования Go.
С архитектурной точки зрения система состоит из трёх основных компонентов:
Вот как выглядит архитектура программы из документации [5]:
На данный момент разработано пять модулей интеграции [6] (bouncers):
cs-cloudflare-blocker [7], cs-custom-blocker [8] (пользовательские сценарии), cs-netfilter-blocker [9], cs-nginx-blocker [10] и cs-wordpress-blocker [11]. Например, модуль для Nginx сверяет каждый неизвестный IP-адрес с базой данных, прежде чем веб-сервер ответит на запрос или выдаст ошибку 403. Модуль Netfilter просто «добавляет» вредоносные IP-адреса в чёрный список nftables/ipset.
Для простоты настройки на сайте собраны коллекции [12] и конфигурации [13].
Коллекции — это, по сути, просто наборы парсеров и сценариев для разных ситуаций. Например, в коллекцию Nginx входит парсер логов nginx-logs [14] и базовые http-сценарии для определения типичных вредоносных ботов (агрессивный краулинг, сканирование/пробирование портов, чёрный список user-agent'ов [15], а также определение попыток проведения атаки path traversal [16]).
Полный список коллекций:
Один из вариантов работы с CrowdSec — через консольную программу cscli
:
cscli metrics
Эта команда выдаёт основные метрики о работе парсеров, объёме обработанных логов, количестве обнаруженных и заблокированных угроз по каждой коллекции (перечень коллекций см. выше).
Следующая команда выводит список хостов с указанием причин, почему их забанили, кодом страны, идентификатором автономной сети (AS), количеством нарушений и другой информацией.
cscli ban list
Консольная утилита cscli
поддерживает большой список [27] команд и параметров для подключения/удаления конфигураций, добавления новых правил блокировки и др.
Но кроме cscli
, конфигурацию можно изменить и традиционным способом, путём редактирования текстового файла в формате YAML:
vi /etc/crowdsec/config/profiles.yaml
Естественно, кастомные сценарии тоже поддерживаются.
Что делает этот инструмент больше похожим на платформу, чем на утилиту, так это его многочисленные интеграции с другими инструментами. По крайней мере, разработчики программы ставят ставку именно на это и хотят построить бизнес на этой платформе. Они говорят [28] о «глобальной платформе IP-репутаций» и «поведенческом движке безопасности».
Сейчас компания пытается предложить пользователям платный доступ к «облачному API» и базе данных с репутацией IP-адресов, которая составляется совместными усилиями. При этом поставщики информации в эту базу освобождаются от оплаты, а платят только чистые потребители, которые не хотят делиться информацией из своих логов. Планируется два тарифных плана: premium и enterprise с услугами по поддержке, специальными служебными инструментами (типа развёртывания системы на несколько локаций из одного центрального места), применением дата-майнинга и машинного обучения (обнаружение тенденций в глобальных данных), более продвинутом анализе холодных логов (форензика, криминалистика, расследования — хотя данное направление бизнеса в Европе затруднено из-за закона GDPR).
В любом случае опенсорсный инструмент выпускается под свободной лицензией MIT, так что коммерческие планы разработчиков никак не мешают сообществу использовать его и модифицировать под свои нужды.
Разработчики обращают внимание, что программа пока в бета-версии, но никаких проблем на продакшне ни у кого не возникало. Они также говорят, что программа на Go элементарно портируется на другие платформы вроде Windows и Mac.
По итогу сейчас это добротный опенсорсный инструмент, который можно использовать в качестве альтернативы старому доброму Fail2Ban. А со временем он может превратиться в нечто большее. Разработчики ставят цель в создании своеобразного «коллективного иммунитета», когда клетки организма (серверы) коллективно защищаются от атак, словно иммунная система.
Виртуальные серверы [29] с защитой от DDoS-атак и новейшим железом, серверы размещены в одном из лучших российских дата-центров — DataPro. Всё это про наши эпичные серверы. Максимальная конфигурация — 128 ядер CPU, 512 ГБ RAM, 4000 ГБ NVMe! Поспешите заказать.
Автор: Александр
Источник [30]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/open-source/358892
Ссылки в тексте:
[1] Fail2Ban: https://www.fail2ban.org/wiki/index.php/Main_Page
[2] SSHGuard: https://www.sshguard.net/
[3] CrowdSec: https://github.com/crowdsecurity/crowdsec
[4] Image: https://habrastorage.org/webt/8l/xi/z5/8lxiz5r2rggzli6ttum9gi2onxa.gif
[5] документации: https://doc.crowdsec.net/
[6] пять модулей интеграции: https://hub.crowdsec.net/browse/#bouncers
[7] cs-cloudflare-blocker: https://hub.crowdsec.net/author/crowdsecurity/bouncers/cs-cloudflare-blocker
[8] cs-custom-blocker: https://hub.crowdsec.net/author/crowdsecurity/bouncers/cs-custom-blocker
[9] cs-netfilter-blocker: https://hub.crowdsec.net/author/crowdsecurity/bouncers/cs-netfilter-blocker
[10] cs-nginx-blocker: https://hub.crowdsec.net/author/crowdsecurity/bouncers/cs-nginx-blocker
[11] cs-wordpress-blocker: https://hub.crowdsec.net/author/crowdsecurity/bouncers/cs-wordpress-blocker
[12] коллекции: https://hub.crowdsec.net/browse/#collections
[13] конфигурации: https://hub.crowdsec.net/browse/#configurations
[14] nginx-logs: https://hub.crowdsec.net/author/crowdsecurity/configurations/nginx-logs
[15] чёрный список user-agent'ов: https://hub.crowdsec.net/author/crowdsecurity/configurations/http-bad-user-agent
[16] определение попыток проведения атаки path traversal: https://hub.crowdsec.net/author/crowdsecurity/configurations/http-path-traversal-probing
[17] apache2: https://hub.crowdsec.net/author/crowdsecurity/collections/apache2
[18] base-http-scenarios: https://hub.crowdsec.net/author/crowdsecurity/collections/base-http-scenarios
[19] iptables: https://hub.crowdsec.net/author/crowdsecurity/collections/iptables
[20] linux: https://hub.crowdsec.net/author/crowdsecurity/collections/linux
[21] modsecurity: https://hub.crowdsec.net/author/crowdsecurity/collections/modsecurity
[22] mysql: https://hub.crowdsec.net/author/crowdsecurity/collections/mysql
[23] naxsi: https://hub.crowdsec.net/author/crowdsecurity/collections/naxsi
[24] nginx: https://hub.crowdsec.net/author/crowdsecurity/collections/nginx
[25] postfix: https://hub.crowdsec.net/author/crowdsecurity/collections/postfix
[26] sshd: https://hub.crowdsec.net/author/crowdsecurity/collections/sshd
[27] большой список: https://doc.crowdsec.net/cscli/cscli_ban/
[28] говорят: https://crowdsec.net/2020/09/10/crowdsec-the-community-powered-firewall/
[29] Виртуальные серверы: https://vdsina.ru/cloud-servers?partner=habr171
[30] Источник: https://habr.com/ru/post/521518/?utm_source=habrahabr&utm_medium=rss&utm_campaign=521518
Нажмите здесь для печати.