Мож­но бес­конеч­но наб­людать за тре­мя вещами: горящим огнем, текущей водой и событи­ями в опе­раци­онной сис­теме. И если в Windows средс­тва монито­рин­га и жур­налиро­вания уже хорошо изу­чены поль­зовате­лями и сис­темны­ми адми­нис­тра­тора­ми, то в macOS с этим не все так прос­то. Сегод­ня мы погово­рим о бес­плат­ных инс­тру­мен­тах отсле­жива­ния событий в «маке» и их прак­тичес­ком при­мене­нии.

Как мы при­вык­ли к событи­ям Windows… С ними все понят­но, в сети дос­тупно огромное количес­тво матери­алов о нас­трой­ке цен­тра­лизо­ван­ного сбо­ра событий с исполь­зовани­ем Windows Event Forwarding. Мно­гие гай­ды пред­лага­ют пошаго­вые инс­трук­ции с отве­тами на воп­росы из серии «Сколь­ко WEC (Windows Event Collector) нуж­но для пар­ка в 4000 машин?».

Од­нако край­не мало вни­мания уде­ляет­ся компь­юте­рам на базе macOS. При­чины оче­вид­ны: нем­ногие орга­низа­ции сей­час готовы закупать «маки» для сво­их сот­рудни­ков. Это дорого, непонят­но, как эти машины адми­нис­три­ровать, воз­ника­ет ворох проб­лем с сов­мести­мостью. Кро­ме того, на рын­ке дос­тупно не так мно­го спе­циалис­тов, которые зна­ют, как обуз­дать эту опе­раци­онную сис­тему и как обе­зопа­сить ее, ведь для macOS так­же сущес­тву­ют угро­зы. Одна­ко решение проб­лемы с монито­рин­гом есть, и оно уже встро­ено в сис­тему, начиная с вер­сии 10.15 Catalina.

 

Способы мониторинга

Все­го сущес­тву­ет три спо­соба монито­рин­га событий в macOS:

  1. Ком­мерчес­кий EDR.
  2. Osquery.
  3. Eslogger (ESF).

О пос­леднем мы и погово­рим, попытав­шись разоб­рать­ся, как устро­ен этот инс­тру­мент.

info

Ра­нее для монито­рин­га событий в macOS исполь­зовалась под­систе­ма ауди­та OpenBSM. Она была раз­работа­на ком­пани­ей McAfee Research по инди­виду­аль­ному заказу Apple в 2004 году. Поз­днее исходный код переда­ли в TrustedBSD для нужд комь­юни­ти. Этот инс­тру­мент был убран из macOS в вер­сии Big Sur и боль­ше не под­держи­вает­ся.

Endpoint Security Framework (ESF) — это натив­ный ком­понент macOS, который слу­жит для про­активно­го поис­ка событий и реаги­рова­ния на них. Инс­тру­мент поз­воля­ет под­писывать­ся на события Notification и Authorization. Прин­цип его работы мож­но срав­нить с Event Tracing For Windows (ETW). Он поз­воля­ет прос­матри­вать низ­коуров­невые события, свя­зан­ные с про­цес­сами, фай­лами, нем­ного с сетью и памятью, а так­же мно­го чего еще!

 

Как это работает?

Рань­ше, если какая‑то ком­пания бра­лась за раз­работ­ку решения Endpoint Security, ей при­ходи­лось делать так называ­емое Kernel Extension (модуль для ядра). При­мера­ми таких решений слу­жат OpenBSM, Kauth KPI, MAC Framework. Решения на базе Kernel Extension было тяжело раз­рабаты­вать и под­держи­вать. Нез­начитель­ные баги мог­ли при­вес­ти к kernel panic, а несовер­шенный код про­бивал новые дыр­ки в безопас­ности macOS.

В Apple это прек­расно понима­ли и поэто­му в 2019 году (луч­ше поз­дно, чем никог­да) замени­ли Kernel Extensions, которые работа­ли в прос­транс­тве ядра, System Extensions, которые работа­ют в поль­зователь­ском прос­транс­тве. Теперь у раз­работ­чиков раз­вязаны руки. Все ста­ло гораз­до удоб­нее.

info

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

 

Актуальная схема работы Endpoint Security

Су­щес­тву­ет два типа событий: Notification и Authorization. Они оба пре­дос­тавля­ют оди­нако­вую информа­цию, но меж­ду ними все же есть раз­ница.

  • Notification — этот тип нужен для информи­рова­ния об активнос­ти. При­мер: запуск бинаря.
  • Authorization — этот тип нужен для бло­киро­вания активнос­ти. При­мер: при нас­тупле­нии события ядро сту­чит­ся в System Extension анти­вирус­ного ПО для про­вер­ки, мож­но ли запус­кать про­цесс. Если отве­та нет, то про­цесс при­бива­ется на мес­те, так и не запус­тившись в поль­зователь­ском прос­транс­тве.
Схема работы Endpoint Security
Схе­ма работы Endpoint Security

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

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

 

Red Canary Mac Monitor

Од­на из нем­ногих ком­паний, которая занима­ется в том чис­ле и безопас­ностью macOS, — Red Canary. В мае 2023 года она выпус­тила ути­литу под наз­вани­ем Mac Monitor. Эта прог­рамма отлично подой­дет для демонс­тра­ции того, как вооб­ще выг­лядят события ESF и как с ними мож­но работать. Так­же она будет очень полез­на тем, кто про­водит live response в сис­теме.

В нас­трой­ках мож­но уста­новить филь­тры и под­писки на кон­крет­ные типы событий.

Mac Monitor
Mac Monitor

Так выг­лядит событие запус­ка коман­ды curl пос­ле пар­синга.

Тут мы можем уви­деть события, которые отно­сят­ся к глав­ному событию.

А вот про­цесс‑ини­циали­затор.

Со­бытие запус­ка коман­ды curl в сыром виде.

Заг­рузить ути­литу мож­но по ссыл­ке с GitHub.

 

Только для live response

Для реали­зации пол­ноцен­ного монито­рин­га Red Canary Mac Monitor нам не подой­дет по сле­дующим при­чинам:

  1. Это при­ложе­ние при­дет­ся рас­катывать по всем сис­темам.
  2. Ха­кер может лег­ко при­бить этот про­цесс.
  3. Его, как при­ложе­ние, проб­лематич­но замас­кировать и пос­тавить в бэк­гра­унд.
  4. Ути­лита собира­ет далеко не все типы событий и мно­гое упус­кает из виду.

Сле­дующий инс­тру­мент — хорошая бес­плат­ная аль­тер­натива вен­дор­ско­му EDR. Ска­жу по сек­рету, ком­мерчес­кие EDR под капотом поголов­но исполь­зуют ESF.

 

Ну и как же мониторить?

Пе­рей­дем к натив­ным средс­твам. Ути­литы вро­де Red Canary Mac Monitor исполь­зуют Endpoint Security API и дела­ют упор на визу­али­зацию и кра­соту. Решение, которое мы зап­ряжем в наш SOC, ори­енти­рует­ся на натив­ность, пол­ноту и безопас­ность.

Это eslogger, ути­лита коман­дной стро­ки, она пре­дос­тавля­ет пря­мой дос­туп непос­редс­твен­но к генери­руемым ядром событи­ям и пос­тавля­ется со все­ми вер­сиями macOS выше Ventura. Эта­кий поис­ковик сре­ди событий.

Плю­сы eslogger:

  • уже есть на каж­дой macOS Ventura;
  • не гру­зит сис­тему при исполь­зовании;
  • вы­дает лог в тек­сто­вом фор­мате, а не бинар­ном;
  • да­ет отличную видимость активнос­ти.

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

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

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

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

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


  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Межтекстовые Отзывы
    Посмотреть все комментарии