Перейти к содержанию

Всё что нужно знать про CrowdSec

Ну вот и обзор. В большей части это вольный перевод официального сайта приложения и картинки оттуда, но есть вставки с моей инсталляции. Ссылки на многие описания сохранены.

Я не использую весь потенциал продукта - это прям сто процентов.

Для меня это защита сервера от перебора (bruteforce) и просто сканов от скрипткиддис по ssh. Других сервисов открытых наружу я не держу. НО! Если мне понадобится затащить такое "под ноги" в продуктив, то наверняка я буду продвигать их.

Поехали!

Обзор Security Engine

CrowdSec Security Engine — это легковесное программное обеспечение с открытым исходным кодом, которое обнаруживает и блокирует доступ злоумышленников к вашим системам на разных уровнях, используя анализ журналов и HTTP-запросов с шаблонами угроз, называемыми сценариями. CrowdSec — это модульный инструмент безопасности, предлагающий обнаружение на основе поведения, включая правила AppSec и дополнительные компоненты для блокировки угроз, называемые компонентами исправления(Remediation Components или Bouncers)

Аспект краудсорсинга позволяет делиться атаками, которые они обнаружили и заблокировали. Участники этой краудсорсинговой разведки по угрозам автоматически получают через механизм безопасности проверенный список проверенных злоумышленников (черный список сообщества), что повышает их возможности защиты в реальном времени за счет принятия упреждающих мер против известных угроз.

О чем речь - в общем всё что все в комьюнити заблочили объединяется в списки, которые можно использовать уже использовать из коробки.

Основные характеристики

В дополнение к основному механизму «обнаружения и реагирования» CrowdSec придерживается нескольких других ключевых аспектов:

  • Простая установка: простая установка «из коробки» на всех поддерживаемых платформах.
  • Упрощенные ежедневные операции: у вас есть доступ к веб-интерфейсу через консоль CrowdSec или мощный инструмент командной строки cscli для легкого обслуживания и поддержания ваших механизмов обнаружения в актуальном состоянии.
  • Воспроизводимость: Security Engine может анализировать не только живые журналы, но и холодные журналы, что упрощает обнаружение потенциальных ложных срабатываний, проведение форензики или создание отчетов.
  • Универсальность: Security Engine может анализировать системные журналы и HTTP-запросы для полной защиты вашего периметра.
  • Наблюдаемость: предоставление ценной информации об активности системы:
    • Пользователи могут просматривать/управлять оповещениями из (Консоли).
    • Операционный персонал имеет доступ к подробным показателям Prometheus (Prometheus).
    • Администраторы могут использовать удобный интерфейс командной строки (cscli).
  • API-ориентированный: все компоненты взаимодействуют через HTTP API, что упрощает настройку нескольких машин.

Архитектура

Под капотом Security Engine есть различные компоненты: - Log Processor отвечает за обнаружение: он анализирует журналы из различных источников данных или HTTP-запросы с веб-серверов. - Функция Appsec является частью Log Processor и фильтрует HTTP-запросы с совместимых веб-серверов. - Локальный API выступает в качестве посредника: - Между Обработчиками журналов и Компонентами исправления, которые отвечают за исполнение решений. - И с Центральным API для обмена оповещениями и получения списков блокировки. - Компоненты исправления - также известные как баунсеры - блокируют вредоносные IP-адреса на выбранном вами уровне — будь то через iptables, брандмауэры, веб-серверы или обратные прокси-серверы. Полный список см. на нашем сайте CrowdSec Hub.

Варианты развертывания

Эта архитектура допускает как простые/автономные установки, так и более распределенные, включая те, что проиллюстрированы ниже: - Одна машина? Следуй нашему руководству по началу работы - Несколько машин? Используй руководство по распределенной настройке - Есть лог-пит (например, rsyslog или loki)? Запусти crowdsec рядом с ним, а не на проде - Юзаешь Kubernetes? Посмотри на наш helm chart - Запускаешь контейнеры? Источник данных docker может быть тем, что нужно - Просто ищешь WAF? Смотри наш краткий старт

Пример распределенной архитектуры:

В целом, на этом наверное можно было бы закончить пост и следующую часть сделать новым постом. Посмотрим, как будет) Далее как поставить пепяку.

Начало работы

Создание учетной записи консоли

Чтобы начать свой путь в CrowdSec, оптимальной отправной точкой будет настройка учетной записи консоли, поскольку она предоставляет вам доступ к дополнительным функциям, которые легко интегрируются с вашим Security Engine.

Консоль CrowdSec служит веб-интерфейсом, позволяющим вам удобно контролировать все ваши экземпляры CrowdSec из централизованного хаба. Чтобы начать, просто зарегистрируйтесь здесь.

Ну ясно-понятно, зарегай учетку у нас, будет тебе блэк-джек и шлюхи =) Не обязательно, в общем.

Развертывание

Пошаговое руководство

Security Engine

В обновленной документации теперь называется CrowdSec «Security Engine», а Bouncers — «Remediation Components», чтобы лучше описать их роли в экосистеме.

Предварительные условия

Security Engine по умолчанию использует следующие порты:

  • 8080/tcp для API
  • 6060/tcp для метрик Prometheus/отладки

Если эти порты недоступны в вашей системе, вы можете изменить их в файле конфигурации после установки. См. Конфигурация для получения дополнительной информации.

Обратите внимание, что API является обязательным для вашего security engine, не удаляйте его из конфигурации.

Использование репозитория

Для наиболее простой установки Security Engine используйте официальный репозиторий, гарантирующий, что у вас всегда будет последняя версия. Ознакомьтесь с соответствующей документацией для вашей ОС: - Linux - FreeBSD - Windows

Установка из исходного кода

Если вы выберете установку из исходного кода, вы можете выполнить шаги, описанные здесь.

Компонент исправления(Remediation Component)

После установки Security Engine можете приступить к установке компонента исправления, который отвечает за выполнение действий на основе решений, принятых Security Engine. Конкретный компонент исправления для установки может отличаться в зависимости от конфигурации вашей сети и операционной системы. Если вы не уверены, какой из них установить, обратитесь к разделу Компоненты исправления или присоединитесь к нашему Discord и спросите сообщество.

Регистрация

Поскольку вы создали свою учетную запись на консоли CrowdSec, теперь вы можете зарегистрировать свой Security Engine в своей учетной записи. Для этого вы можете найти шаги, описанные здесь.

Подытожим, ставится разными способами и не сложно. Если не регистрируете учетку, не привязываете к ней движок, то и данные в сообщество не посылаете.

Linux

Тем, кто предпочитает практический подход, можно также установить crowdsec вручную.

Установка из репозиториев

Установка наших репозиториев позволяет вам получить доступ к последним пакетам Security Engine и Remediation Components. Мы используем сервис packagecloud.io. Хотя curl | sudo shell может быть удобным для некоторых, доступны альтернативные методы установки.

curl -s https://install.crowdsec.net | sudo sh

Установка Security Engine

Перед установкой пакета вы можете проверить порты, которые будут использоваться. - Debian/Ubuntu - EL/Centos7/Amzn Linux 2 - EL/Centos Stream 8 - SUSE Linux - OpenWRT - CloudLinux

apt install crowdsec

Теперь у вас работает Security Engine! Вы можете двигаться дальше и установить компонент исправления или заранее ознакомиться с туром программного обеспечения!

Каталоги: - Приложение находится в папке /etc/crowdsec. - Данные хранятся в папке /var/lib/crowdsec/data.

Компонент исправления(Remediation Component)

Помните, что пакет CrowdSec отвечает только за «обнаружение» и сам по себе ничего не блокирует. Вам необходимо развернуть Компонент исправления для обеспечения принятия решений.

Запуск CrowdSec на Raspberry Pi OS/Raspbian

Помните, что Raspberry Pi OS предназначена для работы на всех версиях Raspberry Pi. Даже если целевой порт известен как armhf, это не совсем то же самое, что и порт armhf в Debian.

Лучший способ получить версию CrowdSec для такой архитектуры — сделать следующее: 1. установить golang (подойдут все версии от 1.20) 2. export GOARCH=arm 3. export CGO=1 4. Обновить переменную GOARCH в Makefile на arm 5. установить кросс-компилятор arm gcc (в Debian пакет — gcc-arm-linux-gnueabihf) 6. Скомпилировать CrowdSec с помощью обычной команды make

Также варианты: FreeBSD, плагин OPNsense, pfSense, Windows, компиляция из исходников

Имеются Python SDK и PHP для взаимодействия с API, в общем для тех, кто хочет интегрировать его куда-нибудь еще.

Crowdsec Tour

Список установленных конфигураций

sudo cscli hub list

Это список установленных парсеров, сценариев и/или коллекций. Они представляют то, что ваша настройка CrowdSec может анализировать (логи) и обнаруживать (сценарии). Добавление -a выведет список всех доступных конфигураций в хабе.

Смотрите больше здесь.

Пример моего листинга концентратора

Установка конфигураций

sudo cscli <configuration_type> install <item>
configuration_type может быть collections, parsers, scenarios или postoverflows. Скорее всего, вы установите только те коллекции, которые содержат необходимые парсеры и сценарии для покрытия технического стека:
sudo cscli collections install crowdsecurity/nginx
Их можно найти и просмотреть на Hub.

Обновление конфигураций

sudo cscli hub update
sudo cscli hub upgrade
Это обновит ваши существующие парсеры, сценарии и коллекции до последней доступной версии. Вы также можете использовать более детальный подход, например sudo cscli <configuration_type> upgrade <item>. configuration_type может быть parsers, scenarios, collections, hub или postoverflows.

Их можно найти и просмотреть на Hub. Смотрите больше здесь.

Список активных решений

sudo cscli decision list
Если вы только что развернули CrowdSec, список может быть пустым, но не волнуйтесь, это просто означает, что вас еще не атаковали, поздравляю! Добавление флага -a также выведет список решений, которые вы получили из списка блокировок сообщества.

Проверьте управление решениями для получения дополнительной информации!

Пример моего списка решений

Существуют различные решения SOURCE:

  • crowdsec : решения, инициированные локально агентом crowdsec
  • CAPI : решения, полученные из API Crowdsec Central
  • csli : решения, добавленные через sudo cscli decision add

Добавить/удалить решения

cscli decision add -i 192.168.1.1
cscli decision delete -i 192.168.1.1
Эти команды соответственно добавят ручное решение для ip 192.168.1.1 (с параметрами по умолчанию, такими как продолжительность и т. д.) и удалят все активные решения для ip 192.168.1.1.

Список оповещений

sudo cscli alerts list
Хотя решения больше не будут отображаться после истечения срока их действия (или будут удалены вручную), оповещения останутся видимыми, что позволит вам отслеживать прошлые решения. Здесь вы увидите оповещения, даже если соответствующие решения истекли.

Пример моего списка оповещений

Мониторинг текущей активности (prometheus)

sudo cscli metrics

Отображаемые метрики извлекаются из CrowdSec prometheus. Индикаторы сгруппированы по области действия: - Buckets: узнайте, какие buckets созданы и/или переполнены (эффективность сценария) - Acquisition: узнайте, какие файлы создают логи и анализируются ли они (или попадают в bucket) - Parser: узнайте, как часто запускаются отдельные парсеры и их успешность - Local Api Metrics: узнайте, как часто использовалась каждая конечная точка локального API CrowdSec

Пример моего листинга метрик

Чтение метрик

Эти метрики — отличный способ узнать, правильно ли настроена ваша конфигурация: Acquisition Metrics — отличный способ узнать, правильно ли настроены ваши парсеры:

  • Если у вас 0 ПРОАНАЛИЗИРОВАННЫХ СТРОК для источника: у вас, вероятно, отсутствует парсер или у вас есть пользовательский формат журнала, который не позволяет парсеру понимать ваши журналы.
  • Однако вполне нормально иметь много НЕПРОАНАЛИЗИРОВАННЫХ СТРОК: Crowdsec не является SIEM и анализирует только те журналы, которые имеют отношение к его сценариям. Например, парсер ssh заботится только о неудачных событиях аутентификации (на момент написания).
  • LINES POURED TO BUCKET говорит вам, что ваши сценарии соответствуют вашим источникам журналов: это означает, что некоторые события из этого источника журналов попали в реальный сценарий

Parser Metrics позволит вам устранять возможные ошибки в настройках парсера: - HITS — это количество событий, переданных этому конкретному парсеру - PARSED и UNPARSED указывают, сколько событий успешно вышло из парсера

Например, если у вас есть пользовательский формат журнала в nginx, который не поддерживается парсером по умолчанию, вы в конечном итоге увидите много UNPARSED для этого конкретного парсера и 0 для PARSED.

Для более глубокого понимания метрик ознакомьтесь со специальной документацией prometheus.

Развертывание панели мониторинга

Запуск метабазы (панель мониторинга, развернутая с помощью cscli dashboard setup) требует 1-2 ГБ ОЗУ. Контейнер метабазы ​​доступен только для amd64.

sudo cscli dashboard setup --listen 0.0.0.0

Контейнер docker метабазы можно развернуть с помощью cscli dashboard. Требуется docker, инструкции по установке доступны здесь.

Да, есть web морда, но я не использую, ресурсов жалко, vps маленький) Но вы попробуйте, че нет то. Потом пришлете свои красоты.

Журналы

sudo tail -f /var/log/crowdsec.log
- /var/log/crowdsec.log — это основной журнал, он показывает текущие решения и ошибки получения/анализа/сценария. - /var/log/crowdsec_api.log — это журнал доступа локального API (LAPI)

Масштабируемость

CrowdSec использует go-рутины для анализа и обогащения журналов, заливки событий в контейнеры и управления выходными данными. По умолчанию существует одна процедура каждого типа (должно быть достаточно для обработки ~1 тыс. EP/с), и ее можно изменить в crowdsec_service основного файла конфигурации с помощью директив parser_routines, buckets_routines и output_routines. Пожалуйста, помните, что благодаря http API рабочую нагрузку по анализу журналов можно разделить между несколькими агентами, отправляющими данные на один LAPI.

Security Engine

Security Engine — это IDS/IPS (система обнаружения вторжений/система предотвращения вторжений) CrowdSec. Это механизм обнаружения правил и поведения, состоящий из Log Processor и локального API.

Security Engine может работать независимо или распределенным образом, адаптируясь к конкретным потребностям и ограничениям вашей инфраструктуры. Для получения дополнительной информации о распределенном подходе CrowdSec посетите нашу документацию по совместным операциям и распределенным развертываниям.

Log Processor (LP)

Log Processor — это часть Security Engine, отвечающая за обнаружение ненадлежащего поведения на основе ваших журналов или вашего HTTP-трафика.

Log Processor (сокращенно LP) обнаруживает некорректное поведение с помощью двух основных функций:

Оповещения, возникающие в результате срабатывания сценариев или правил Appsec, отправляются в LAPI.

Локальный API (LAPI)

Локальный API является частью Security Engine, выступающей в качестве посредника между обработчиками журналов, компонентами исправления и центральным API.

Локальный API (сокращенно LAPI) имеет несколько функций: - Получать оповещения от обработчиков журналов и создавать решения на основе настроенных профилей - Предоставлять решения компонентам исправления - Взаимодействовать с центральным API для отправки оповещений и получения списков блокировки

Компоненты исправления (Remediation Component или Bouncers)

Компоненты исправления (также называемые Bouncers) являются внешними компонентами, отвечающими за исполнение решений.

Компоненты исправления полагаются на локальный API для получения решений о блокировке вредоносных IP-адресов (или других поддерживаемых типов или исправлений, таких как Captcha, поддерживаемых некоторыми из наших Bouncers). Обратите внимание, что они также поддерживают Список блокировки CrowdSec как услугу.

Эти решения могут быть основаны на поведенческом обнаружении, выполненном LP или из списков блокировки. Компоненты исправления используют существующие компоненты вашей инфраструктуры для блокировки вредоносных IP-адресов там, где это наиболее важно. Вы можете найти их в нашем ХАБЕ компонентов исправления

Центральный API (CAPI)

Центральный API (CAPI) служит шлюзом для участников сети для подключения и связи с сетью CrowdSec.

Центральный API (сокращенно CAPI) получает сигналы атак от всех участвующих механизмов безопасности и партнеров по сигналам, а затем перераспределяет им курируемые решения сообщества (Список блокировок сообщества). Он также лежит в основе централизованных служб списков блокировокCrowdSec.

Консоль

Консоль CrowdSec — это веб-интерфейс, предоставляющий функции отчетности, оповещения, управления и качества жизни для использования продуктов CrowdSec: от вашего парка модулей безопасности до управления действиями, связанными с CTI

Консоль позволяет вам:

Ну вот в общем то и все, что хотел рассказать. Так сказать - познакомить. Надеюсь зайдет! Всем добра!

ㅤЧитать первым в Телеграм

Комментарии