Інтеграція Wazuh+Mikrotik
Коли виникає потреба ми шукаємо різні шляхи реалізації.
Так сталося, що виникла потреба в зборі і аналізі логів з мережевого обладнання Mikrotik.
Оскільки я вже не перший рік (з 2018 року) використовую SIEM #wazuh — почав шукати рішення в цьому напрямку. В блозі Wazuh було знайдено відповідну статтю
Оскільки парк мікротів може бути різний я вніс зміни до rsyslog, де створив власний шаблон:
1 | template(name="CustomLogFormat" type="string" string="%timegenerated% %FROMHOST-IP% %syslogtag%%msg%\n") |
далі додав
1 | if $fromhost-ip startswith 'ip mikrotik' then /var/log/mikrotik.log;CustomLogFormat & ~ |
Тепер в лог падає IP обладнання, що можна використовувати для побудови більш детальних дашбордів.
Після зміни лог набуває наступний вигляд
1 | Jun 1 10:31:33 ххх.ххх.ххх.ххх user ххххххххх logged in from yyy.yyy.yyy.yyy via ssh |
де:
ххх.ххх.ххх.ххх — srcip, ip адреса мережевого пристрою
ххххххххх — dstuser, логін користувача під яким коннект yyy.yyy.yyy.yyy — dstip, ip адреса з якої підключення
Переходимо до mikrotik_decoders.xml
Змінюємо наступне
1 2 3 4 5 | <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> |
замінити на
1 2 3 4 5 | <decoder name="mikrotik1"> <parent>mikrotik</parent> <regex type="pcre2">(\S+(.*?)\w+ \d+:\d+:\d+) (\d+.\d+.\d+.\d+) user (\S+) (.*?) from (\d+.\d+.\d+.\d+) via (\w+)</regex> <order>logtimestamp, month, srcip, dstuser, action, dstip, protocol</order> </decoder> |
додаємо невдалу спробу входу:
1 2 3 4 5 | <decoder name="mikrotik2"> <parent>mikrotik</parent> <regex type="pcre2">(\S+(.*?)\w+ \d+:\d+:\d+) (\d+.\d+.\d+.\d+) (.*?) for user (\S+) from (\d+.\d+.\d+.\d+) via (\w+)</regex> <order>logtimestamp, month, srcip, action, dstuser, dstip, protocol</order> </decoder> |
Переходимо до mikrotik_rules.xml, додаємо правило для невдалого входу
1 2 3 4 5 | <rule id="110006" level="10"> <if_sid>110000</if_sid> <match>login failure</match> <description>MikroTik login failure for $(dstuser) in from $(dstip) via $(protocol)</description> </rule> |
Після збереження правил перейдемо до перезавантаження wazuh
1 | systemctl restart wazuh-manager |
Генеруємо невдалу спробу і отримуємо наступне:
PS: дану статтю надав дозвіл на публікування мій друг, та автор оригіналу –
Ви маєте увійти, щоб оприлюднити коментар.