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

В пре­дыду­щих стать­ях мы научи­лись извле­кать события раз­лично­го типа из обра­за иссле­дуемо­го компь­юте­ра, фор­мировать тай­млайн, а так­же нас­тро­или сис­тему сов­мес­тно­го ана­лиза и разоб­рались с ее базовы­ми воз­можнос­тями. Если ты вни­матель­но изу­чил интерфейс Timesketch, то уже понял, что эта шту­кови­на может перева­рить не толь­ко файл Plaso, но и абсо­лют­но про­изволь­ную CSV, содер­жащую тай­млайн событий. Глав­ное, что­бы в ней при­сутс­тво­вали клю­чевые для Timesketch поля datetime, timestamp_desc и message. Таким обра­зом, нам пре­дос­тавля­ется шикар­ная воз­можность добавить в один тай­млайн све­дения из раз­ных источни­ков.

Чем боль­ше источни­ков событий (до которых Plaso прос­то не име­ет физичес­кой воз­можнос­ти доб­рать­ся) мы соберем, тем более точ­ную кар­тину про­изо­шед­шего пос­тро­им. Нап­ример, мы можем заг­рузить в наш скетч логи с сетево­го фай­рво­ла, Surricata или веб‑прок­си, жур­нал событий из Moloch или резуль­тат работы сто­рон­них ути­лит, которые могут дать мно­го полез­ной инфы при динами­чес­ком выпол­нении (типа autorunsc).

В резуль­тате порой получа­ется доволь­но насыщен­ный тай­млайн, ког­да на одну минуту инци­ден­та при­ходит­ся до 250 тысяч событий. И если бы у нас было 250 тысяч сот­рудни­ков, то сов­мес­тный ана­лиз был бы быстр и незатей­лив. Реаль­ность же, к сожале­нию, такова, что 249 997 человек еще где‑то надо най­ти.

Од­нако ИБ‑бой­цы — это край­не ленивый народ. А лень, как извес­тно, дви­гатель прог­ресса. Бла­года­ря ей у нас появи­лись стан­дарты и про­токо­лы ана­лиза инци­ден­тов и такие кру­тые инс­тру­мен­ты, как Yara и Snort, которые живут и раз­вива­ются за счет кол­лектив­ного разума. Не так дав­но свет уви­дел новый про­ект, который называ­ется Sigma. Давай раз­бирать­ся, как он может облегчить нашу жизнь.

 

Sigma

Стар­товал про­ект в 2016 году, и год спус­тя на гит­хабе появил­ся пер­вый релиз. Соз­датели позици­они­руют свое детище так: «Sigma для логов — это как Snort для тра­фика или Yara для фай­лов». Задумы­вал­ся он в качес­тве уни­вер­саль­ного фор­мата опи­сания пра­вил детек­тирова­ния, осно­ван­ного на дан­ных из логов. Еще он может слу­жить в качес­тве кон­верте­ра, который поз­волит перевес­ти эти пра­вила в фор­мат любой под­держи­ваемой SIEM-сис­темы, в том чис­ле сфор­мировать зап­рос к Elasticsearch (даль­ше буду исполь­зовать сок­ращение ES). Этот кон­вертер работа­ет, если для него есть соот­ветс­тву­ющий кон­фигура­цион­ный файл, который объ­ясня­ет Sigma, как перег­нать то или иное пра­вило под кон­крет­ный бэкенд. По сути сво­ей это обыч­ный файл фор­мата YAML, где ука­зыва­ется соот­ветс­твие исполь­зуемых в пра­вилах полей реаль­ным дан­ным в бэкен­де.

Сей­час бла­года­ря ста­рани­ям заин­тересо­ван­ных людей в репози­тории Sigma хра­нит­ся око­ло 1200 пра­вил для раз­личных ситу­аций (что поч­ти на два поряд­ка боль­ше име­ющих­ся по дефол­ту ана­лиза­торов в Timesketch). Дан­ные пра­вила поз­воля­ют задетек­тить вся­кую вся­чину, начиная от исполь­зования mimikatz и обна­руже­ния сле­дов экс­плу­ата­ции ProxyShell в Exchange до выяв­ления сле­дов работы APT-груп­пиров­ки Silence. В боль­шинс­тве пра­вил есть ссыл­ки на соот­ветс­тву­ющие тех­ники MITRE.

На нашей вир­туал­ке с Timesketch кон­фигура­цион­ный файл для кон­верте­ра хра­нит­ся по пути /opt/timesketch/etc/timesketch/sigma_config.yaml. Бла­года­ря ему Sigma и работа­ет (или иног­да нем­ножко не работа­ет) с Timesketch. Давай заг­лянем в него.

$ nano /opt/timesketch/etc/timesketch/sigma_config.yaml

В раз­деле backends мы можем наб­людать все бэкен­ды, с которы­ми Sigma дол­жна работать, дабы пра­вила завелись на Timesketch:

backends:
- es-dsl
- es-qs
- es-qr
- es-rule

А даль­ше идут два самых боль­ших бло­ка logsources и fieldmappings, в которых мап­пятся те самые типы источни­ков логов из бэкен­да на кон­крет­ные типы, исполь­зуемые в пра­вилах (пос­мотрим на них ниже).

В рам­ках интегра­ции Sigma в Timesketch раз­работ­чики напили­ли нам отдель­ный ана­лиза­тор во вклад­ке Analyzer и чуть мень­ше месяца назад сде­лали одно­имен­ную вклад­ку с воз­можностью прос­мотреть и при­менить каж­дое отдель­ное пра­вило пря­мо в веб‑интерфей­се.

info

Ес­ли ты пом­нишь, в пер­вой статье я говорил, что уста­нов­ка Sysmon поз­воля­ет сущес­твен­но упростить жизнь адми­нам и кри­мина­лис­там. Так вот, в Sigma поч­ти две тре­ти пра­вил для Windows опи­рают­ся имен­но на события Sysmon. К сожале­нию, далеко не все адми­ны поль­зуют­ся одним из самых кру­тых инс­тру­мен­тов тов. М. Рус­синови­ча. Соот­ветс­твен­но, не удив­ляй­ся, что очень час­то не все пра­вила будут давать ожи­даемый детект.

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

$ git clone https://github.com/SigmaHQ/sigma.git

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Вариант 2. Открой один материал

Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.


Подписаться
Уведомить о
3 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии