• База знаний
  • /
  • Блог
  • /
  • Wiki
  • /
  • ONLINE CHAT
+380 (44) 364 05 71

Статья также доступна на украинском (перейти к просмотру).

Защита сайта с помощью Bitninja

Содержание

Программный инструмент 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-версией программы, предоставляемой компанией-разработчиком на семь дней. Процесс получения лицензионного ключа приведен ниже.

Получение ключа лицензии Bitninja

Получение ключа лицензии Bitninja

Нам были предоставлены команда запуска инсталлятора и ключ активации программы:

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

Добавление пользователя в группу 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"

Конфигурирование репозитория Bitninja

Воспользуемся GPG-ключем Bitninja для шифрования:

sudo su -c "apt-key adv --keyserver keyserver.ubuntu.com --recv-key 7F8B47DC"

Использование GPG-ключа

Результат: ключ успешно импортирован.

Давайте обновим список локальных пакетов. Это позволит системе зафиксировать внесенные нами изменения. Для этого введем в терминале:

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, после чего процесс развертывания продолжается.

Процесс инсталяции Bitninja

Процесс инсталяции Bitninja

Завершение инсталяции

Результат:

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

Просмотр команд Bitninja

Здесь содержится полная информация по каждому из рассмотренных нами ранее модулей, а также по многим другим.

Любой из модулей программы можно настроить с помощью .ini файла, который содержится в соответствующей директории, путь к которой следующий:

 /etc/bitninja/ModuleName/

Здесь ModuleName – имя соответствующего модуля.

Для примера рассмотрим содержимое директории модуля WAFManager:

$ sudo ls  /etc/bitninja/WAFManager/

Просмотр содержимого директории

Файл для настройки модуля называется config.ini. Просмотрим его содержимое:

$ sudo nano /etc/bitninja/WAFManager/config.ini

Просмотр файла config.ini

По умолчанию файл содержит четыре раздела и примеры опций и их значения для настройки соответствующего модуля:

[nginx]
[redirect_options]
[honeypots]
[actionmanager]

Так же и для любого другого модуля можно установить требуемые настройки.

Закроем файл и выйдем из редактора.

Использование Панели управления Bitninja Dashboard

Начиная по версии BitNinja 3.4.0 пользователям программы стала доступна «облачная» Панель управления, позволяющая управлять всеми конфигурациями на уровне учетной записи, группы серверов, а также отдельного сервера. Что касается приоритетности настроек, сделанных в Панели и на локальном сервере, то наивысший приоритет всегда имеют настройки, сделанные в Панели.

Существует специальная команда для синхронизации изменений, внесенных на локальном сервере с настройками Панели:

$ bitninjacli --syncconfigs

Кроме того, разработчики рекомендуют перезагружать конфигурацию модуля в случае изменения файла его конфигурации напрямую. Это гарантирует, что внесенные изменения немедленно будут активированы. Ответная команда выглядит следующим образом:

$ bitninjacli --module=ModuleName --reload

Здесь ModuleName – имя модуля, в конфигурацию которого вносились изменения.

Для доступа к Панели управления необходимо воспользоваться следующим адресом:

https://admin.bitninja.io

В появившемся окне необходимо ввести свои учетные данные на сайте разработчика и подтвердить их.

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

Вибор функции

Из приведенного ниже скрина видно, что наш хост с именем dedicated уже «поставлен на учет». За последние сутки программа уже успела заблокировать 353 подозрительных соединений с нашим сервером. График представлен здесь же. На нем можно определить время проведения атак и их интенсивность.

Выбирая поочередно представленные над графиком модули, можно просматривать положение с атаками, связанными с соответствующим модулем.

График модуля активности

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

Информация по конкретному серверу

Здесь представлена ??основная конфигурационная информация по серверу – IP-адрес, версия ОС, оличество пользователей, версия BitNinja и прочее. А также представлен график атак с возможностью выбора нужного модуля, как и на странице с общей информацией по акаунту. Кроме того, выводятся данные о территориальном местонахождении источников атак с указанием названия страны (см. скрин ниже). Например, к нашему серверу за последние сутки наиболее часто подсоединялись из КНР, Украины и США – 55, 54 и 50 соединений соответственно. Здесь даже приведена карта с нанесенными цветами в соответствии с концентрацией соединений – чем интенсивнее атаки, тем темнее цвет выделенной области.

Страны с которых подключались к серверу

На другой диаграмме представлено распределение атак между соответствующими «обрабатываемыми» модулями. В нашем случае это – Port Honeypot, Log Analysis и CAPTCHA-Web, что дает полную картину, отображающую типы атак.

Распределение атак между модулями

Теперь перейдем к модулю Log Analysis и просмотрим журнал логов (см. скрин).

Журнал логов модуля 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
navigate
go
exit
Спасибо, что выбираете FREEhost.UA