Статья также доступна на украинском (перейти к просмотру).
Содержание
- Использование модулей Bitninja
- Получение лицензии
- Развертывание Bitninja на сервере Ubuntu
- Использование Панели управления Bitninja Dashboard
Программный инструмент Bitninja предназначен для защиты серверов общего назначения от атак разного уровня и направления – DoS, SQL-инъекции, межсайтовый скриптинг и многие другие. По уровню функционала и возможностям средство можно с уверенностью отнести к программам защиты нового поколения. Он объединяет почти неограниченные возможности управления сервером с помощью CLI-интерфейса и «облачной» Панели управления Dashboard, являющаяся результатом успешной реализации функции CloudConfig в рамках сервиса, позволяющего организовать управление защитой на уровне отдельного сервера, группы серверов или учетной записи. Рассмотрим назначение основных модулей программы, процесс ее развертывания на сервере Ubuntu и методы управления ею с помощью CLI и Dashboard.
Использование модулей Bitninja
Функционально приложение состоит из набора модулей, каждый из которых выполняет определенные функции – выполнение обновлений, управление лицензией, отправка статистических данных и многие другие.
Для управления модулями с помощью CLI-интерфейса предусмотрено наличие набора общих команд и опций. Ниже приведены некоторые из них.
--module=ModuleName – указывается название нужного модуля;
--start – запуск;
--stop – остановка;
--restart – перезагрузка.
Наибольший интерес представляют модули, обеспечивающие непосредственное обнаружение и устранение опасностей на сервере. Представим основные из них:
- Anti-Malware;
- Site Protection;
- WAF;
- Defense Robot;
- Log Analysis;
- Port Honeypot;
- Web Honeypot.
Anti-Malware. Модуль осуществляет защиту системы от кода злоумышленников на основе анализа файлов при их загрузке. Для управления им с помощью CLI используется идентификатор MalwareDetection и ряд опций. Примеры некоторых вариантов приведены ниже.
--module=MalwareDetection --whitelist-file=/path/to/file – занесение указанного в команде файла в белый список вредоносного кода для дальнейшего анализа;
--module=MalwareDetection --list-signatures [--type] [--list] [--state] [--level] – фильтрация сигнатур файлов по разным параметрам;
--module=MalwareDetection --create-signature --path=/path/to/file – создание сигнатуры вредоносного файла и его распространение в автоматическом режиме на все серверы.
Site Protection. Модуль предназначен для защиты сайта, разработанного на базе одной из наиболее распространенных систем управления контентом – CMS Wordpress. Для этого он должен быть подключен в панели управления CMS в качестве расширения.
Для возможности управления им с помощью CLI-интерфейс используется идентификатор с именем SiteProtection. Примеры использования некоторых опций приведены ниже.
--module=SiteProtection --install-extension – установка модуля для всех инсталляций Wordpress, размещенных на сервере;
--module=Защита сайта --reinstall-wp-plugin --domain=<значение> – переустановка модуля для указанного в команде домена.
WAF. Модуль реализует функции исходного брандмауэра веб-приложений. Он обнаруживает и сканирует трафик исходящих соединений. В случае обнаружения подозрительного соединения он может заблокировать сценарий или выдать предупреждение. Для возможности управления модулем из командной строчки используется идентификатор WAFManager. Примеры использования некоторых опций приведены ниже.
--module=WAFManager --status – вывод информации о состоянии модуля, в частности, о осуществленных им перенаправлениях и их результатах;
--module=WAFManager --generate-honeypots – созданиеWAF ловушки для обнаружения и последующей блокировки IP-адреса злоумышленника.
Defense Robot. Получает информацию от модуля Anti-Malware и на ее основе производит поиск данных в журнале, связанных с загрузкой подозрительного кода. Идентификатор – DefenseRobot.
Пример применения:
--module=DefenseRobot --collect --path=/path/to/file – осуществляется сбор информации о корреляции модуля для указанного в команде файла.
Log Analysis. Анализирует файлы журналов во время выполнения и проявляет любую подозрительную активность.
Port HoneyPot. Используется для обнаружения атак на открытых портах на ранних стадиях. Сразу после развертывания программа открывает сто случайных портов и отслеживает их состояние и использование. В случае подозрительной активности со стороны определенного хоста, его IP-адрес, автоматически вносится в серый список, исключающий в дальнейшем заражение сервера.
Web HoneyPot. Принцип использования тот же, что и для предыдущего модуля. Только вместо портов в качестве приманки выступают файлы – сценарии honeypot. Это позволяет найти код злоумышленника на ранних стадиях.
Получение лицензии
Лицензию на программу Bitninja можно получить непосредственно у компании-разработчика или у реселлеров, одним из которых является компания Дата-центр FREEhos.UA. Преимуществом будет получение дополнительной услуги по настройке программы на VPS или арендованном сервере. Обращаться можно в отдел продаж по электронному адресу: service@freehost.com.ua. Для демонстрации возможностей продукта воспользуемся Trial-версией программы, предоставляемой компанией-разработчиком на семь дней. Процесс получения лицензионного ключа приведен ниже.
Нам были предоставлены команда запуска инсталлятора и ключ активации программы:
curl https://get.bitninja.io/install.sh | /bin/bash -s - --license_key=47732E2C81CE74B6
Развертывание Bitninja на сервере Ubuntu
Ниже приведены минимальные системные требования для установки программы, представленные на сайте разработчиков.
Наш VPS-сервер Ubuntu 22.04 полностью им отвечает. Имя хоста – dedicated.
Установка программы может быть осуществлена ??как с помощью инсталлятора, так и в ручном режиме с помощью соответствующих команд. Выбираем второй способ, как более гибкий и прозрачный.
Процесс развертывания Bitninja разобьем на следующие этапы:
- Подготовительный этап;
- Установка программы;
- Запуск и отладка.
Подготовительный этап
Создадим пользователя с именем testing_bitninja и добавим его в группу sudo. Для этого введем в терминале:
$ adduser testing_bitninja
$ adduser testing_bitninja sudo
Изменим аккаунт:
$ su -l testing_bitninja
Сконфигурируем репозиторий Bitninja с помощью следующей команды:
sudo su -c "echo deb http://apt.bitninja.io/debian/ bitninja non-free >> /etc/apt/sources.list.d/bitninja.list"
Воспользуемся GPG-ключем Bitninja для шифрования:
sudo su -c "apt-key adv --keyserver keyserver.ubuntu.com --recv-key 7F8B47DC"
Результат: ключ успешно импортирован.
Давайте обновим список локальных пакетов. Это позволит системе зафиксировать внесенные нами изменения. Для этого введем в терминале:
sudo apt-get update
Результат: Reading package lists... Done. Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg). Итак, список пакетов обновлен и ключ сохранен в указанном месте.
Установка программы
Запустим процесс инсталляции с помощью следующей команды:
$ sudo apt-get install bitninja
Подтверждаем выделение дополнительных 717 MB, после чего процесс развертывания продолжается.
Результат:
Unpacking bitninja (3.10.18-1) ...
Setting up selinux-utils (3.3-1build2) ...
Setting up bitninja-node-dojo (1.0.1-1) ...
Setting up bitninja-mq (1.0.0-1) ...
Thank you for installing bitninja-mq!
Setting up bitninja-dojo (2.8.2-1) ...
Setting up bitninja-process-analysis (1.0.4-1) ...
Created symlink /etc/systemd/system/multi-user.target.wants/bitninja-process-analysis.service → /etc/systemd/system/bitninja-process-analysis.service.
Setting up daemon (0.8-1) ...
Setting up bitninja-threat-hunting (1.0.2-1) ...
Setting up libipset13:amd64 (7.15-1build1) ...
Setting up bitninja-dispatcher (1.0.4-1) ...
Setting up bitninja-python-dojo (1.0.1-1) ...
Setting up ipset (7.15-1build1) ...
Setting up bitninja (3.10.18-1) ...
Created symlink /etc/systemd/system/multi-user.target.wants/bitninja.service → /etc/systemd/system/bitninja.service.
Итак, программа успешно установлена. Ее версия – Bitninja 3.10.18. Перейдем к этапу использования.
Запуск и отладка
Установим полученный нами ранее лицензионный ключ Bitninja с помощью следующей команды:
sudo bitninja-config --set license_key=47732E2C81CE74B6
Ключ успешно установлен.
Запустим главный процесс программы в качестве службы:
$ service bitninja start
Результат: AUTHENTICATION COMPLETE. То есть процесс аутентификации успешно пройден. Это является обязательным условием использования программы на сервере.
Чтобы убедиться в том, что процесс активен, воспользуемся командой просмотра запущенных юнитов. Для этого введем в терминале:
$ systemctl list-units --type=service
Результат:
UNIT LOAD ACTIVE SUB DESCRIPTION
bitninja-process-analysis.service loaded active running BitNinja Process Analysis Servi
bitninja.service loaded active running BitNinja service
Можно убедиться, что сервис запущен и сейчас есть активным.
Просмотреть список доступных команд и примеры их использования можно с помощью следующей управляющей конструкции:
$ sudo bitninjacli –help
Здесь содержится полная информация по каждому из рассмотренных нами ранее модулей, а также по многим другим.
Любой из модулей программы можно настроить с помощью .ini файла, который содержится в соответствующей директории, путь к которой следующий:
/etc/bitninja/ModuleName/
Здесь ModuleName – имя соответствующего модуля.
Для примера рассмотрим содержимое директории модуля WAFManager:
$ sudo ls /etc/bitninja/WAFManager/
Файл для настройки модуля называется config.ini. Просмотрим его содержимое:
$ sudo nano /etc/bitninja/WAFManager/config.ini
По умолчанию файл содержит четыре раздела и примеры опций и их значения для настройки соответствующего модуля:
[nginx] [redirect_options] [honeypots] [actionmanager]
Так же и для любого другого модуля можно установить требуемые настройки.
Закроем файл и выйдем из редактора.
Использование Панели управления Bitninja Dashboard
Начиная по версии BitNinja 3.4.0 пользователям программы стала доступна «облачная» Панель управления, позволяющая управлять всеми конфигурациями на уровне учетной записи, группы серверов, а также отдельного сервера. Что касается приоритетности настроек, сделанных в Панели и на локальном сервере, то наивысший приоритет всегда имеют настройки, сделанные в Панели.
Существует специальная команда для синхронизации изменений, внесенных на локальном сервере с настройками Панели:
$ bitninjacli --syncconfigs
Кроме того, разработчики рекомендуют перезагружать конфигурацию модуля в случае изменения файла его конфигурации напрямую. Это гарантирует, что внесенные изменения немедленно будут активированы. Ответная команда выглядит следующим образом:
$ bitninjacli --module=ModuleName --reload
Здесь ModuleName – имя модуля, в конфигурацию которого вносились изменения.
Для доступа к Панели управления необходимо воспользоваться следующим адресом:
В появившемся окне необходимо ввести свои учетные данные на сайте разработчика и подтвердить их.
Сразу после входа вам предлагается выбрать нужную функцию, связанную с обслуживанием сервера и/или получением нужной информации (см. скрин).
Из приведенного ниже скрина видно, что наш хост с именем dedicated уже «поставлен на учет». За последние сутки программа уже успела заблокировать 353 подозрительных соединений с нашим сервером. График представлен здесь же. На нем можно определить время проведения атак и их интенсивность.
Выбирая поочередно представленные над графиком модули, можно просматривать положение с атаками, связанными с соответствующим модулем.
Сейчас мы видим общую картину для всех наших серверов, сколько бы их ни было. Чтобы получить подробную информацию по отдельному серверу, необходимо кликнуть по соответствующему блоку с названием сервера. В нашем случае это – dedicated. В результате откроется окно, представленное ниже.
Здесь представлена ??основная конфигурационная информация по серверу – IP-адрес, версия ОС, оличество пользователей, версия BitNinja и прочее. А также представлен график атак с возможностью выбора нужного модуля, как и на странице с общей информацией по акаунту. Кроме того, выводятся данные о территориальном местонахождении источников атак с указанием названия страны (см. скрин ниже). Например, к нашему серверу за последние сутки наиболее часто подсоединялись из КНР, Украины и США – 55, 54 и 50 соединений соответственно. Здесь даже приведена карта с нанесенными цветами в соответствии с концентрацией соединений – чем интенсивнее атаки, тем темнее цвет выделенной области.
На другой диаграмме представлено распределение атак между соответствующими «обрабатываемыми» модулями. В нашем случае это – Port Honeypot, Log Analysis и CAPTCHA-Web, что дает полную картину, отображающую типы атак.
Теперь перейдем к модулю Log Analysis и просмотрим журнал логов (см. скрин).
Это также позволяет уверенно чувствовать себя в случае любой атаки.
При наличии еще нескольких серверов с установленным приложением их можно объединить в соответствующие группы, которые можно контролировать отдельно друг от друга. При этом определена иерархия приоритетов:
- Уровень сервера;
- Уровень группы;
- Уровень аккаунта.
Это позволяет более гибко управлять конфигурациями и получить наивысший уровень эффективности применения BitNinja в повседневной работе.
Заказывайте выделенный или облачный сервер с поддержкой. Большой список конфигураций, доступная стоимость, поддержка 24/7. Мы можем установить пробную версию Bitninja на 7 дней, чтобы вы смогли оценить все возможности продукта по защите сайта, а в дальнейшем Вы будет формироваться общий счет на продление основной услуги вместе с лицензией Bitninja.
Подписывайтесь на наш телеграм-канал https://t.me/freehostua, чтобы быть в курсе новых полезных материалов.
Смотрите наш канал Youtube на https://www.youtube.com/freehostua.
Мы в чем ошиблись, или что-то пропустили?
Напишите об этом в комментариях, мы с удовольствием ответим и обсуждаем Ваши замечания и предложения.
Дата: 12.06.2024 Автор: Александр Ровник
|
|
Авторам статьи важно Ваше мнение. Будем рады его обсудить с Вами:
comments powered by Disqus