Моніторинг мережевих пристроїв за допомогою Wazuh

Мережевий пристрій – це апаратний або програмний компонент, який допомагає у передачі даних та інформації між вузлами в мережі. До поширених типів таких девайсів належать роутери, комутатори, концентратори, модеми, точки доступу та брандмауери.

Мережеві пристрої можуть стати точками входу для зловмисників, що прагнуть отримати несанкціонований доступ до систем, організувати витік даних або спричинити збої в мережі. Тому заходи безпеки, регулярні оновлення та пильний моніторинг є обов’язковими для захисту як локальних, так і глобальних мереж.

Мережеві девайси, які підтримує Wazuh

SIEM і XDR рішення Wazuh підтримує такі пристрої, надаючи out-of-the-box правила та декодери:

  • VMWare ESXi 4.x
  • Міжмережеві екрани Huawei USG
  • pfSense
  • Пристрої Junos

Всі версії:

  • Міжмережеві екрани Cisco PIX
  • Cisco ASA (прилади адаптивної безпеки)
  • Cisco FWSM (модулі служб брандмауера)
  • Роутери Cisco IOS
  • Juniper Netscreen
  • Брандмауери SonicWall
  • Брандмауери Checkpoint
  • Системи виявлення та запобігання вторгненням (IDS/IPS) Sourcefire (Snort)
  • Модулі IDS/IPS Cisco IOS
  • Мережеві системи виявлення вторгнень (NIDS) Dragon
  • Checkpoint Smart Defense
  • Проксі Bluecoat
  • VPN-концентратори Cisco

Ця публікація демонструє, як використовувати Wazuh, щоб проводити моніторинг роутера MikroTik.

Інфраструктура

  • Попередньо впроваджена та готова для використання остання версія віртуальної машини Wazuh OVA, що включає основні компоненти рішення (сервер, indexer, дешборд).
  • Встановлена та зареєстрована на сервері Wazuh кінцева точка Ubuntu 22.04 з агентом Wazuh.
  • Роутер MikroTik з версією ПЗ 7.13 [stable].

Конфігурація

Кінцева точка Ubuntu

Rsyslog – це утиліта на Ubuntu 22.04 для отримання подій системного журналу. У цьому розділі розглянуто кроки для ввімкнення Rsyslog на кінцевій точці Ubuntu та налаштування агента Wazuh для надсилання даних системного журналу на сервер Wazuh.

1) Вставити наступний фрагмент коду внизу файлу /etc/rsyslog.conf на кінцевій точці Ubuntu. Цей код дозволяє UDP-порту 514 прослуховувати системні журнали та додає місце для зберігання подій безпеки:

$ModLoad imudp
$UDPServerRun 514

#Storing Messages from a Remote System into a specific File
if $fromhost-ip startswith '<YOUR_MIKROTIK_IP_ADDRESS>' then /var/log/mikrotik.log
& ~

Замінити <YOUR_MIKROTIK_IP_ADDRESS> на IP-адресу пристрою MikroTik.

2) Створити файл mikrotik.log у каталозі /var/log для зберігання подій системного журналу:

# touch /var/log/mikrotik.log

3) Змінити право власності файлу /var/log/mikrotik.log на syslog і групу на adm:

# chown syslog:adm /var/log/mikrotik.log

4) Перезапустити утиліту rsyslog, щоб зміни набули чинності:

# systemctl restart rsyslog

5) Вставити код нижче у блок <ossec_config> файлу конфігурації агента Wazuh /var/ossec/etc/ossec.conf:

<localfile>
  <log_format>syslog</log_format>
  <location>/var/log/mikrotik.log</location>
  <out_format>RouterOS7.1-logs: $(log)</out_format>
</localfile>

6) Перезапустити агент Wazuh, щоб застосувати зміни:

# systemctl restart wazuh-agent

Конфігурація MikroTik

У цьому кейсі роутер MikroTik буде налаштовано для віддаленого надсилання повідомлень системного журналу агенту Wazuh, застосовуючи порт 514. Потрібно реалізувати наведену нижче конфігурацію за допомогою інструменту MikroTik Winbox в операційній системі Windows або WebUI, використовуючи IP-адресу пристрою MikroTik.

1) Увійти у роутер за допомогою утиліти Winbox або WebUI.

2) Клацнути на вкладку System > Logging > Actions та додати нове правило, у якому біля Topics обрано system, а поряд з Action remote. Натиснути Apply.

Створення правила для MikroTik

3) Натиснути на вкладку System > Logging > Actions та створити нові або змінити наявні правила, у яких біля error, info, warning обрано remote.

Правила MikroTik

4) Клацнути на вкладку System > Logging > Actions, щоб відредагувати опцію remote. У поле Remote address вписати IP-адресу агента Wazuh, а у графу Remote port – порт прослуховування Rsyslog.

Редагування remote

Необхідно переконатися, що Syslog BSD увімкнено, і біля Syslog Facility обрано daemon, а поряд з Syslog Severityemergency.

5) Натиснути Apply.

6) Клацнути System > Identity та переконатися, що в Identity стоїть MikroTik.

7) Натиснути Apply.

Сервер Wazuh

Потрібно створити кастомні декодери та правила для витягнення необхідних полів із системного журналу MikroTik та генерування сповіщень на основі їх релевантності.

Декодери MikroTik

1) Створити кастомний файл декодера mikrotik_decoders.xml у каталозі /var/ossec/etc/decoders:

2) Додати наведені нижче кастомні декодери для MikroTik до файлу /var/ossec/etc/decoders/mikrotik_decoders.xml:

<decoder name="mikrotik">
  <prematch>^RouterOS7.1-logs: </prematch>
</decoder>

<decoder name="mikrotik1">
  <parent>mikrotik</parent>
  <regex type="pcre2">\S+ (\w+ \d+ \d+:\d+:\d+) MikroTik user (\S+) (.*?) from (\d+.\d+.\d+.\d+) via (\w+)</regex>
  <order>logtimestamp, logged_user, action, ip_address, protocol</order>
</decoder>

<decoder name="mikrotik1">
  <parent>mikrotik</parent>
  <regex type="pcre2">\S+ (\w+ \d+ \d+:\d+:\d+) MikroTik dhcp-client on (\S+) (.*?) address (\d+.\d+.\d+.\d+)</regex>
  <order>logtimestamp, interface, action, ip_address</order>
</decoder>

<decoder name="mikrotik1">
  <parent>mikrotik</parent>
  <regex type="pcre2">\S+ (\w+ \d+ \d+:\d+:\d+) MikroTik router (\S+)</regex>
  <order>logtimestamp, action</order>
</decoder>

3) Зберегти декодер і перезапустити менеджер Wazuh:

# systemctl restart wazuh-manager

Правила MikroTik

1) Створити кастомний файл правил mikrotik_rules.xml у каталозі /var/ossec/etc/rules/:

2) Додати наступні кастомні правила для MikroTik до файлу /var/ossec/etc/rules/mikrotik_rules.xml:

<group name="Mikrotik,">

  <rule id="110000" level="0">
    <decoded_as>mikrotik</decoded_as>
    <description>Mikrotik-Event</description>
  </rule>


  <rule id="110001" level="5">
    <if_sid>110000</if_sid>
    <match>dhcp-client on ether</match>
    <description>MikroTik dhcp-client received an IP address $(ip_address)</description>
  </rule>

  <rule id="110002" level="5">
    <if_sid>110000</if_sid>
    <match>rebooted</match>
    <description>MikroTik router rebooted</description>
  </rule>

  <rule id="110003" level="5">
    <if_sid>110000</if_sid>
    <match>logged out from</match>
    <description>MikroTik user logged out via $(protocol)</description>
  </rule>

  <rule id="110004" level="5">
    <if_sid>110000</if_sid>
    <match>logged in from</match>
    <description>MikroTik user logged in from $(ip_address) via $(protocol)</description>
  </rule>

</group>

Де спрацьовують правила, коли Wazuh виявляє:

  • ID 110000 – нову подію MikroTik.
  • ID 110001 – отримання IP-адреси пристроєм MikroTik за допомогою протоколу dhcp-client.
  • ID 110002 – перезавантаження пристрою MikroTik.
  • ID 110003 – користувач MikroTik вийшов із системи.
  • ID 110004 – користувач MikroTik увійшов у систему.

3) Зберегти правило та перезапустити менеджер Wazuh:

# systemctl restart wazuh-manager

Приклад роботи

Сповіщення генеруються на дешборді Wazuh, коли певні події відповідають наведеним вище правилам. Щоб створити події, можна виконати SSH-вхід і перезавантажити роутер MikroTik.

1) Виконати наступні команди з будь-якої кінцевої точки в тій же мережі, що й роутер MikroTik:

$ ssh <MIKROTIK_USER>@<MIKROTIK_IP_ADDRESS>
> /system/reboot

Замінити:

<MIKROTIK_USER> на юзернейм акаунту, який використовується для адміністрування на пристрої Mikrotik.

<MIKROTIK_IP_ADDRESS> на IP-адресу пристрою MikroTik.

2) Перейти до Security events кінцевої точки Ubuntu на дешборді Wazuh. На зображенні нижче показано сповіщення, згенеровані на основі виконаних вище дій:

Сповіщення на дешборді Wazuh

Деталі сповіщень MikroTik

Підписатися на новини