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

Зміст
- Використання модулів 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