Эксперты BI.ZONE рассказали, как можно выявить атаку Zerologon

Эксперты BI.ZONE рассказали, как можно выявить атаку Zerologon

Эксперты BI.ZONE рассказали, как можно выявить атаку Zerologon

Исследователи из ИБ-компании BI.ZONE изучили опасную уязвимость Windows, получившую известность как Zerologon, и разработали несколько методов обнаружения фактов ее эксплуатации. Эксперты надеются, что использование созданных ими правил позволит также ускорить классификацию киберинцидентов.

Уязвимость Zerologon (CVE-2020-1472) была выявлена в протоколе шифрования, который использует Windows-служба Netlogon. Использование бреши позволяет автору атаки обойти аутентификацию,  повысить свои привилегии до уровня администратора домена и получить доступ на запись к базе данных Active Directory. Уязвимость затрагивает серверные ОС Windows; разработчик уже выпустил патч и опубликовал руководство для пользователей, однако злоумышленники не оставляют попыток проникнуть в сети Windows через эту лазейку.

Эксперты BI.ZONE проанализировали несколько известных концепций атаки (proof-of-concept, PoC) на Zerologon, а также эксплойты, обнаруженные в атаках, и выяснили, что все они работают в целом одинаково. На основании полученных результатов было разработано три способа обнаружения эксплойт-атаки: по событиям журналов аудита Windows, по сетевому трафику и при помощи YARA-правил.

В первом случае администратору Windows придется включить режим отладки Netlogon с помощью команды nltest /dbflag:0x2080ffff. После перезапуска служба начнет сохранять большую часть событий в файл журнала (отыскивается по пути C:\Windows\debug\netlogon.txt). Признаком атаки могут служить следующие события на контроллере домена:

  • 5805 — ошибка аутентификации сессии, доступ запрещен;
  • 5723 — ошибка установления сессии из-за отсутствия доверенного аккаунта в базе данных безопасности;
  • 4742 — изменение учетной записи компьютера контроллера домена (должно насторожить при отсутствии события 5823, говорящего о легитимной смене пароля по истечении заданного срока, либо при регистрации обоих событий с интервалом в 1 минуту).

Для эксплуатации Zerologon злоумышленники зачастую задействуют легитимный инструмент Mimikatz или пользуются виртуальной машиной под управлением ОС Kali Linux, поэтому имена mimikatz и kali в записях событий 5805 и 5723 могут более явно свидетельствовать об атаке.

Для удобства отслеживания Zerologon-событий с помощью SIEM исследователи сформулировали три правила:

  • (EventID = ’5805′ OR EventID = ’5723′) AND (Message contains ’kali’ OR Message contains ’mimikatz’)
  • when both of (EventID = ’4742′ AND TargetUserName IN «Domain_Controller_Accounts_List» AND PasswordLastSet != ’-’) and not (EventID = ’5823′) were detected on the same host within 1 minute (требует внесения списка контроллеров домена в набор Domain_Controller_Accounts_List)
  • when both of (EventID = ’4742′ AND TargetUserName IN «Domain_Controller_Accounts_List» AND PasswordLastSet != ’-’) and (EventID = ’5805′) were detected on the same host within 1 minute

Попытку эксплуатации Zerologon можно выявить и путем анализа сетевого трафика с помощью IDS или IPS. Признаком атаки в данном случае, по словам экспертов, будет служить «аномально большое количество запросов из одного источника по протоколу DCE/RPC с парами методов NetrServerReqChallenge и NetrServerAuthenticate за короткий промежуток времени». Кроме того, выдать вредоносную активность могут уникальные артефакты, но они не всегда присутствуют в трафике.

По итогам исследования было также создано YARA-правило для выявления следов эксплуатации Zerologon в памяти процесса lsass.exe. Обращение к сервису проверки подлинности локальной системы (LSASS) происходит при попытке аутентификации на контроллере домена. В результате в адресном пространстве lsass.exe остаются артефакты, которые тоже могут служить признаками атаки. В ходе тестирования созданное экспертами YARA-правило с успехом отработало на ОС Windows Server 2012 R2 и Windows Server 2016.

Зачем Яндекс Go создал отдельный язык для расчёта стоимости поездок

Цена поездки в Яндекс Go — это не расстояние, умноженное на минуты и километры. В расчёт вмешиваются геозоны, спрос, скидки, платные дороги, дополнительные остановки и требования вроде перевозки кота, велосипеда или лыж. Чтобы управлять этим хозяйством без бесконечных деплоев, разработчики вынесли алгоритм ценообразования из кода сервиса в собственный язык.

Как объяснили разработчики в статье на Хабре, прайсинг работает не только при заказе машины.

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

 

Сначала сервисы параллельно собирают параметры поездки: тарифную категорию, геозоны, скидки, повышенный спрос и дополнительные услуги. Зависимости между источниками выстраиваются в граф, а запросы выполняются асинхронно на базе userver. Если некритичный источник не ответил, весь расчёт не падает.

 

Сам алгоритм раньше можно было бы держать в C++, но он меняется в среднем дважды в неделю. Выкатка сервиса на 50 подов занимает около 40 минут, а лес динамических конфигов быстро превратил бы код в музей условных операторов.

Поэтому Яндекс разработал собственный DSL. В нём есть условия, функции, неизменяемые значения и fold вместо циклов. Правила собираются в последовательную цепочку: каждое преобразование получает текущую цену и параметры, а возвращает новый результат с метаданными. Грамматику описали через ANTLR 4, а верификатор Z3 проверяет, что программа не выдаст некорректную цену.

 

Теперь изменение алгоритма не требует пересборки сервиса, ошибочную версию можно быстро откатить, а каждый расчёт — воспроизвести по входным данным и промежуточным результатам.

 

В итоге прайсинг превратился в отдельную платформу, которой уже пользуются Такси, Доставка и сервис зарядки электромобилей.

RSS: Новости на портале Anti-Malware.ru