Се­год­ня я рас­ска­жу о сво­ем опы­те работы с Wazuh — опен­сор­сной сис­темой, которая сов­меща­ет в себе фун­кции SIEM и XDR. Это гиб­кая плат­форма, которая лег­ко адап­тиру­ется под раз­ные задачи: от защиты Active Directory и работы с PowerShell до защиты баз дан­ных и быс­тро­го поис­ка уяз­вимос­тей. Wazuh под­держи­вает любые ОС, интегри­рует­ся с Docker и внеш­ними API.

Пред­ставь ситу­ацию: ты вро­де бы все меры защиты уже реали­зовал, необ­ходимые (и дорогос­тоящие) средс­тва купил и даже внед­рил и нас­тро­ил, но неуве­рен­ность все же оста­лась...

Впро­чем, даже это слиш­ком радуж­ная кар­тина. В боль­шинс­тве ком­паний информа­цион­ная безопас­ность толь­ко вста­ет на пря­мые рель­сы, ведущие в свет­лое и безопас­ное будущее. Мно­гие про­цес­сы не опре­деле­ны или даже не работа­ют, про­дук­ты защиты не до кон­ца нас­тро­ены или не внед­рены и так далее. Нет пол­ной инвента­риза­ции ИТ‑акти­вов, непонят­ны сег­менты сети, их защищен­ность и мар­шру­тиза­ция в них.

Имен­но в таком сос­тоянии и были дела в ком­пании, где я недав­но раз­ворачи­вал сис­тему безопас­ности на базе Wazuh. Я работал с этой плат­формой и рань­ше и знал ее потен­циал, так что сом­нений в выборе не было.

С помощью Wazuh мы пер­вым делом про­вели инвента­риза­цию, что­бы понять лан­дшафт: из чего сос­тоит наша инфраструк­тура, где есть или могут быть сла­бые мес­та. Далее нас­тро­или сбор событий безопас­ности и запус­тили сис­тему управле­ния уяз­вимос­тями (Vulnerability Management). Это поз­волило нам получить чет­кое пред­став­ление о текущем сос­тоянии инфраструк­туры и соз­дать осно­ву для даль­нейше­го укрепле­ния.

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

Что такое Wazuh?

Wazuh — это сов­ремен­ная мно­гофун­кци­ональ­ная плат­форма с откры­тым исходным кодом. В ней объ­еди­нены фун­кции обна­руже­ния втор­жений, защиты информа­цион­ных сис­тем от широко­го спек­тра угроз и реаги­рова­ния на инци­ден­ты. Wazuh отсле­жива­ет и дан­ные и ана­лизи­рует кор­реляции в них на осно­ве пра­вил. Это поз­воля­ет выяв­лять ано­маль­ные дей­ствия и получать сво­евре­мен­ную информа­цию об угро­зах.

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

Вот основные типы событий, которы­ми опе­риру­ет Wazuh:

Верхнеуровневая архитектура Wazuh

Верхнеуровневая архитектура Wazuh
Вер­хне­уров­невая архи­тек­тура Wazuh

Да­вай пос­мотрим, какие есть виды вза­имо­дей­ствия ком­понен­тов.

  1. Аген­ты и менед­жер:
    • Аген­ты уста­нав­лива­ются на раз­ных устрой­ствах и пос­тоян­но монито­рят сис­тему на пред­мет изме­нений, потен­циаль­ных угроз или ано­малий.
    • Соб­ранные дан­ные отправ­ляют­ся менед­жеру.
  2. Ме­нед­жер и сер­вис индекса­ции:
    • Ме­нед­жер ана­лизи­рует получен­ные от аген­тов дан­ные и фор­миру­ет опо­веще­ния при обна­руже­нии угроз.
    • Об­работан­ные дан­ные и опо­веще­ния отправ­ляют­ся в сер­вис индекса­ции через API на порт 9200 (TCP) для хра­нения и даль­нейше­го ана­лиза.
  3. Ме­нед­жер и база дан­ных:
    • Ме­нед­жер вза­имо­дей­ству­ет с базой дан­ных для хра­нения нас­тро­ек, политик безопас­ности и дру­гой необ­ходимой информа­ции.
  4. Па­нель управле­ния и менед­жер/сер­вис индекса­ции:
    • Па­нель управле­ния обра­щает­ся к менед­жеру через API на пор­те 55000 (TCP) для получе­ния информа­ции.
  5. Поль­зовате­ли и панель управле­ния:
    • Поль­зовате­ли получа­ют дос­туп к сис­теме через веб‑интерфейс панели управле­ния.

Сценарии использования

Те­перь давай пос­мотрим, как Wazuh мож­но интегри­ровать в лан­дшафт орга­низа­ции.

Схема работы компании
Схе­ма работы ком­пании

На схе­ме выше показа­ны рабочие про­цес­сы орга­низа­ции. Устрой­ства сот­рудни­ков и вир­туаль­ные машины сер­висов обо­рудо­ваны аген­тами Wazuh, которые поз­воля­ют отсле­живать события, свя­зан­ные с безопас­ностью, вклю­чая сбор логов и монито­ринг активнос­ти. Эти дан­ные цен­тра­лизо­ван­но отправ­ляют­ся в основную ана­лити­чес­кую сис­тему Wazuh для деталь­ного ана­лиза.

Со­бытия, получа­емые от фай­рво­ла для веб‑при­ложе­ний (WAF), так­же нап­равля­ются на сер­вер Wazuh. Этот про­цесс помога­ет пос­тоян­но монито­рить ата­ки на веб‑при­ложе­ния.

Ло­ги, пос­тупа­ющие из сис­тем управле­ния иден­тифика­цией и дос­тупом (Identity and Access Management, IAM), тоже интегри­рова­ны с Wazuh. Их ана­лиз поз­воля­ет сис­теме выяв­лять нетипич­ные дей­ствия поль­зовате­лей, а так­же фик­сировать успешные и неудач­ные попыт­ки авто­риза­ции. Это кри­тичес­ки важ­но, что­бы сво­евре­мен­но замечать потен­циаль­ные слу­чаи ком­про­мета­ции уче­ток.

Дан­ные событий от VPN-соеди­нений, переда­ваемые в Wazuh, вклю­чают информа­цию об успешных и неудач­ных попыт­ках под­клю­чения через VPN — полез­но, что­бы выяв­лять ата­ки вро­де под­бора пароля, плюс мож­но выяв­лять попыт­ки вхо­да из необыч­ных стран.

Ито­го у нас есть интегра­ция с WAF IAM и VPN, что, сог­ласись, доволь­но неп­лохо.

Wazuh поз­воля­ет соз­давать поль­зователь­ские декоде­ры и пра­вила для детек­тирова­ния раз­ных событий безопас­ности. Декоде­ры выпол­няют нор­мализа­цию событий, упро­щая их ана­лиз, тог­да как пра­вила поз­воля­ют опе­ратив­но опо­вещать о кри­тичес­ких инци­ден­тах.

Даль­ше раз­берем основные при­меры исполь­зования этих воз­можнос­тей на прак­тике.

Защита Active Directory

Пример событий с базовыми атаками на Active Directory
При­мер событий с базовы­ми ата­ками на Active Directory

С помощью нас­тро­енных пра­вил поль­зовате­ли Wazuh могут ана­лизи­ровать события Directory Replication Service (DRS) из жур­налов событий Windows. Это полез­но, ког­да нуж­но фик­сировать ано­малии в зап­росах реп­ликации, харак­терные для атак DCSync. Зада­ешь под­ходящие пра­вила для опре­делен­ных EventId и их свой­ств, и сис­тема обес­печит сво­евре­мен­ное опо­веще­ние о подоз­ритель­ных дей­стви­ях.

Пра­вила могут извле­кать и ана­лизи­ровать зап­росы к служ­бе Kerberos Ticket-Granting Service (TGS) из жур­налов событий. Пра­вило, отсле­жива­ющее час­тые зап­росы TGS, осо­бен­но если они свя­заны с учет­ными запися­ми служб, помога­ет обна­ружить попыт­ки атак типа Kerberoasting.

Кро­ме того, собирая события аутен­тифика­ции NTLM, Wazuh помога­ет обна­ружи­вать ата­ки pass the hash. Пра­вила, нас­тро­енные для поис­ка харак­терных шаб­лонов дей­ствий, генери­руют пре­дуп­режде­ния, ког­да кто‑то исполь­зует учет­ные дан­ные подоз­ритель­ным обра­зом.

Даль­ше — при­мер, как это может быть нас­тро­ено с помощью пра­вил для Wazuh.

<group name="security_event, windows,">
<rule id="110001" level="12">
<if_sid>60103</if_sid>
<field name="win.system.eventID">^4662$</field>
<field name="win.eventdata.properties" type="pcre2">{1131f6aa-9c07-11d1-f79f-00c04fc2dcd2}|{19195a5b-6da0-11d0-afd3-00c04fd930c9}</field>
<options>no_full_log</options>
<description>Directory Service Access. Possible DCSync attack</description>
</rule>
<rule id="110009" level="0">
<if_sid>60103</if_sid>
<field name="win.system.eventID">^4662$</field>
<field name="win.eventdata.properties" type="pcre2">{1131f6aa-9c07-11d1-f79f-00c04fc2dcd2}|{19195a5b-6da0-11d0-afd3-00c04fd930c9}</field>
<field name="win.eventdata.SubjectUserName" type="pcre2">\$$</field>
<options>no_full_log</options>
<description>Ignore all Directory Service Access that is originated from a machine account containing $</description>
</rule>
<rule id="110002" level="12">
<if_sid>60103</if_sid>
<field name="win.system.eventID">^4769$</field>
<field name="win.eventdata.TicketOptions" type="pcre2">0x40810000</field>
<field name="win.eventdata.TicketEncryptionType" type="pcre2">0x17</field>
<options>no_full_log</options>
<description>Possible Kerberoasting attack</description>
</rule>
<rule id="110003" level="12">
<if_sid>60103</if_sid>
<field name="win.system.eventID">^4624$</field>
<field name="win.eventdata.LogonProcessName" type="pcre2">seclogo</field>
<field name="win.eventdata.LogonType" type="pcre2">9</field>
<field name="win.eventdata.AuthenticationPackageName" type="pcre2">Negotiate</field>
<field name="win.eventdata.LogonGuid" type="pcre2">{00000000-0000-0000-0000-000000000000}</field>
<options>no_full_log</options>
<description>Possible Pass the hash attack</description>
</rule>
</group>

С помощью этих прос­тых дей­ствий мы получа­ем уве­дом­ления о базовых ата­ках на Active Directory. Архи­тек­туру при этом лег­ко мас­шта­биро­вать.

«Бяка» PowerShell

Пример событий с использованием команд PowerShell
При­мер событий с исполь­зовани­ем команд PowerShell

В Wazuh пре­дус­мотре­на воз­можность интегра­ции раз­ных жур­налов и фай­лов с логами, что поз­воля­ет, нап­ример, под­клю­чать события из жур­нала Windows PowerShell.

Пос­ле под­клю­чения нуж­ного жур­нала мож­но соз­дать соот­ветс­тву­ющие декоде­ры и пра­вила, что­бы фик­сировать клю­чевые события. Одна­ко без филь­тра­ции пос­тупа­ющих дан­ных есть риск получить слиш­ком мно­го событий, вклю­чая нереле­ван­тные, так как будут обра­баты­вать­ся все записи жур­нала. Для решения этой проб­лемы на сле­дующем эта­пе соз­дает­ся сло­варь команд, за которы­ми необ­ходимо сле­дить, и под­клю­чают­ся спис­ки команд, пред­став­ляющих потен­циаль­ный риск.

Как это мож­но реали­зовать? Добав­ляем в основной файл нас­тро­ек ossec.conf путь до сло­вари­ка с «опас­ными» коман­дами.

<list>etc/lists/malicious-powershell</list>

Да­лее пишем пра­вила.

<var name="MS_FREQ">8</var>
<group name="windows,">
<rule id="100543" level="12">
<if_sid>100541</if_sid>
<list field="win.eventdata.scriptBlockText" lookup="match_key">etc/lists/malicious-powershell</list>
<description>Malicious Powershell Command $(win.eventdata.scriptBlockText) Executed</description>
<options>no_full_log</options>
</rule>
</group>

Нас­тра­ивая Wazuh на отсле­жива­ние толь­ко потен­циаль­но опас­ных команд, мож­но сок­ратить чис­ло лож­ных уве­дом­лений, что облегча­ет кон­троль и улуч­шает его резуль­таты.

Wazuh и базы данных

Пример событий, связанных с PostgreSQL
При­мер событий, свя­зан­ных с PostgreSQL

Рас­ширя­емая архи­тек­тура монито­рин­га жур­налов в Wazuh под­держи­вает удоб­ную интегра­цию с логами PostgreSQL (postgresql-*-main.log). Под­клю­чаем жур­налы PostgreSQL, и сис­тема смо­жет в режиме реаль­ного вре­мени фик­сировать кри­тичес­ки важ­ные события в базе дан­ных, такие как соз­дание и уда­ление баз дан­ных, изме­нение струк­туры таб­лиц и манипу­ляции с дан­ными.

Wazuh при­меня­ет декоде­ры и пра­вила для монито­рин­га логов PostgreSQL, что­бы отсле­живать и фик­сировать подоз­ритель­ные или несан­кци­они­рован­ные дей­ствия с базой дан­ных.

Нап­ример:

<group name="postgresql,">
<rule id="100080" level="0">
<decoded_as>postgresql</decoded_as>
<description>No alerts.</description>
</rule>
<rule id="100081" level="4">
<if_sid>100080</if_sid>
<match type="pcre2">(?i)create database</match>
<description>A database $(database) has been created by the user $(db_user).</description>
</rule>
<rule id="100082" level="6">
<if_sid>100080</if_sid>
<match type="pcre2">(?i)drop database</match>
<description>A database $(database) has been deleted by the user $(db_user).</description>
</rule>
...
</group>

С такой нас­трой­кой Wazuh будет пре­дуп­реждать и о несан­кци­они­рован­ных манипу­ляци­ях с базами дан­ных.

Быстрое обнаружение трендовых уязвимостей

Список пакетов с агента Wazuh
Спи­сок пакетов с аген­та Wazuh

Ис­поль­зуя Wazuh API, мож­но опе­ратив­но извле­кать дан­ные о вер­сиях пакетов и нас­трой­ки с каж­дого под­клю­чен­ного аген­та. Этот под­ход осо­бен­но полезен, ког­да вен­дор еще не испра­вил уяз­вимость в ОС. Wazuh поз­воля­ет заранее опре­делить уяз­вимые хос­ты на осно­ве вер­сии пакета, содер­жащего извес­тную уяз­вимость. Это мож­но исполь­зовать, пока не вый­дет патч.

Open source и отечественные ОС

Wazuh сов­местим с РЕД ОС, Astra Linux и про­чими дис­три­бути­вами, с которы­ми сей­час мож­но стол­кнуть­ся у заказ­чиков. Для работы с ними мож­но прос­то отре­дак­тировать /etc/os-release, но из‑за несов­падений пакет­ной базы с опи­сани­ем это может выз­вать лож­ные сра­баты­вания.

Пра­виль­ный путь — пересоб­рать пакеты из исходно­го кода и добавить РЕД ОС или Astra Linux в качес­тве новых про­вай­деров в сре­ду Wazuh. Это поз­волит Wazuh точ­но ска­ниро­вать и ана­лизи­ровать оте­чес­твен­ные дис­три­бути­вы.

Wazuh и Docker

Пример событий, связанных с Docker
При­мер событий, свя­зан­ных с Docker

Мо­дуль Wazuh для Docker (Docker-listener) поз­воля­ет отсле­живать события, свя­зан­ные с основны­ми коман­дами и дей­стви­ями Docker, которые вли­яют на управле­ние кон­тей­нерами. В час­тнос­ти, модуль фик­сиру­ет такие коман­ды, как docker push, docker pull, docker kill, а так­же дру­гие важ­ные опе­рации. Эти пра­вила дос­тупны «из короб­ки», оста­нет­ся толь­ко нас­тро­ить модуль Docker-listener.

Интеграция с внешними API

Wazuh Integrator поз­воля­ет под­клю­чать­ся к внеш­ним API и про­чим инс­тру­мен­там. По умол­чанию он нас­тро­ен на нес­коль­ко извес­тных плат­форм, но у Wazuh Integrator гиб­кие нас­трой­ки, так что мож­но нас­тро­ить свои интегра­ции.

Нап­ример, интегра­ция с сис­темой SOAR (Security Orchestration, Automation and Response) поз­волит объ­еди­нить решения в еди­ную сис­тему и авто­мати­зиро­вать реаги­рова­ние на инци­ден­ты. Или для ана­лиза угроз можешь под­клю­чить Wazuh к VirusTotal. И это толь­ко неболь­шая часть воз­можнос­тей это­го модуля.

Wazuh и SCA Benchmark

Security Configuration Assessment (SCA) — это аудит нас­тро­ек безопас­ности всех сис­тем орга­низа­ции и их про­вер­ка на соот­ветс­твие уста­нов­ленным пра­вилам. Одна из глав­ных стра­тегий защиты конеч­ных точек — их укрепле­ние (хар­денинг) за счет миними­зации уяз­вимос­тей.

SCA помога­ет не толь­ко выявить и оце­нить сла­бые мес­та, но и пред­ложить кор­ректи­рующие меры для их устра­нения, тем самым сущес­твен­но сни­жая пло­щадь ата­ки и повышая общую устой­чивость сис­темы.

Мо­дуль SCA в Wazuh регуляр­но ска­ниру­ет кон­тро­лиру­емые конеч­ные точ­ки, выяв­ляя уяз­вимос­ти и откло­нения. Этот про­цесс опи­рает­ся на полити­ки, содер­жащие набор пра­вил для про­вер­ки акту­аль­ных нас­тро­ек сис­темы.

Фай­лы политик зада­ют усло­вия соот­ветс­твия тре­бова­ниям безопас­ности. Нап­ример, SCA про­веря­ет наличие фай­лов и катало­гов, клю­чи и зна­чения реес­тра, запущен­ные про­цес­сы, а так­же рекур­сивно ана­лизи­рует содер­жимое катало­гов для выяв­ления откло­нений.

Wazuh исполь­зует CIS Benchmarks для авто­мати­чес­кой оцен­ки кон­фигура­ции сис­тем на соот­ветс­твие тре­бова­ниям безопас­ности. В ходе ска­ниро­вания он выяв­ляет откло­нения от стан­дартов CIS.

CIS

Центр интернет‑безопас­ности (Center for Internet Security, CIS) — неком­мерчес­кая орга­низа­ция, которая занима­ется повыше­нием уров­ня кибер­безопас­ности. CIS раз­рабаты­вает стан­дарты и рекомен­дации, такие как CIS Benchmarks и CIS Controls, которые широко исполь­зуют­ся для защиты информа­цион­ных сис­тем и дан­ных.

CIS Benchmarks — это инс­трук­ции по безопас­ной нас­трой­ке опе­раци­онных сис­тем, сер­верных при­ложе­ний, облачных сер­висов и прог­рам­мно­го обес­печения. Их раз­рабаты­вают и обновля­ют экспер­ты по безопас­ности, учи­тывая акту­аль­ные угро­зы и тех­нологии.

CIS Controls — это набор при­ори­тет­ных мер для пре­дот­вра­щения наибо­лее опас­ных кибера­так. Они помога­ют орга­низа­циям сос­редото­чить­ся на кри­тичес­ки важ­ных аспектах безопас­ности.

Выводы

Ду­маю, мне уда­лось показать, что Wazuh — это не прос­то еще один инс­тру­мент, а целая плат­форма, которую лег­ко адап­тировать под раз­ные задачи. Это уни­вер­саль­ный инс­тру­мент в арсе­нале безопас­ности: от защиты Active Directory и работы с PowerShell до защиты баз дан­ных и быс­тро­го поис­ка уяз­вимос­тей. Wazuh под­держи­вает любые ОС, интегри­рует­ся с Docker и внеш­ними API.

Ито­го про­фиты для работ­ников ком­паний: осво­ив Wazuh, спе­циалис­ты получа­ют ощу­тимый плюс в копил­ку зна­ний, что дела­ет их более кон­курен­тоспо­соб­ными на рын­ке ИТ и ИБ. Про­фиты для вла­дель­цев ком­паний: спе­циалист по Wazuh в шта­те сущес­твен­но сэконо­мит зат­раты на про­дук­ты ИБ Enterprise, осо­бен­но ког­да про ИБ толь­ко задума­лись.