Никогда еще так остро не ощущалась необходимость в опытных специалистах по информационной безопасности. В условиях новых вспышек атак криптовымогателей, целенаправленных вторжений и прочих непрекращающихся угроз каждая отрасль старается «нарастить мышцы» и как можно быстрее укрепить ИБ-защиту.

Говорят, нужно 10 000 часов, чтобы стать экспертом, — в случае с ИБ это означает, что придется потратить эти часы на сортировку алертов, изучение угроз и реагирование на инциденты. А ведь информационная безопасность — это чуть ли не единственная область, которая может выиграть от сокращения времени, необходимого специалисту для овладения этим мастерством. Однако постоянная конкуренция между коммерческими решениями, разнородность и возрастающая сложность технологий и политика секретности производителей не помогают в этом развитии. В ИБ все более распространенным становится открытый подход, который может придать безопасникам необходимое ускорение.



В этой статье рассказывается, как специалисты ИБ могут учиться вместе, делиться опытом и навыками — и выигрывать время. Таким образом каждый специалист сможет достичь уровня эксперта. Я называю этот подход «гитхабификацией информационной безопасности». Он состоит из трех компонентов: знания, аналитика и анализ. Давайте рассмотрим каждый из них и разберем их значимость на примерах.

Организованные знания


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

С разработкой фреймворка MITRE ATT&CK ситуация существенно изменилась. MITRE ATT&CK представляет собой классификацию тактик и техник атак, используемых реальными злоумышленниками. Для примера рассмотрим технику «Специальные возможности», доступную по идентификатору T1015. Она содержит общее описание, примеры ее использования преступными группировками, способы обнаружения, а также ссылки на публикации с дополнительной информацией.

MITRE ATT&CK позволяет упростить обучение специалистов благодаря трем принципам:

  • Организованность. Работать с ATT&CK совсем несложно: техники можно упорядочить на основании целей атакующего, сгруппировать по схожим признакам или соотнести с затронутыми платформами.
  • Открытость для сообщества. В последнем обновлении большинство новых техник были разработаны исследователями, не являющимися сотрудниками корпорации MITRE. Поскольку ATT&CK документирует техники, наблюдаемые в реальных атаках (а не только теоретически возможные), вовлечение сообщества необходимо: ведь исследователи из разных стран сталкиваются с разными атаками.
  • Расширяемость. Самая популярная версия ATT&CK предназначена для корпоративных инфраструктур, но уже сейчас ведется работа по адаптации ATT&CK к облачным технологиям, мобильным платформам, интернету вещей, АСУ ТП и сетевым устройствам. Это значительно упрощает специалистам ИБ процесс освоения новых областей.
  • Многие исследователи и большинство ведущих производителей систем информационной безопасности уже взяли на вооружение этот фреймворк. Вот несколько способов его использования:
  • ATT&CK описывает преступные группировки с помощью используемых ими техник. Благодаря этому специалисты ИБ могут оценить свои средства защиты, сопоставив их с техниками киберпреступников, с которыми они сталкиваются. Например, Palo Alto так описывает техники ATT&CK, используемые преступной группировкой Sofacy:

  • Инструмент ATT&CK Navigator позволяет сравнить несколько преступных группировок. В этом примере показана APT 28 (оранжевым цветом) и дополнительные техники, используемые APT 29:

  • Проект компании Red Canary с открытым исходным кодом Atomic Red Team представляет собой тесты для симуляции техник, описанных в ATT&CK. В основе проекта лежит принцип «доверяй, но проверяй», позволяющий специалистам ИБ своевременно находить «слепые зоны» в своих системах защиты. Ниже приведено покрытие матрицы ATT&CK тестами Atomic Red Team, представленными в проекте на момент написания статьи (выделены красным):


Подведем итог: MITRE ATT&CK — это организованное хранилище информации о техниках атакующих, которое помогает ИБ-специалисту повысить защиты от реальных угроз, которые стоят перед его компанией.

Действенная аналитика


Организация знаний — это замечательно, но это только начало пути. Нужно уметь превращать эти знания в меры по защите — например, поиск следов вредоносной активности в логах. ИБ-специалисты выстраивают системы мониторинга, изучая основные модели данных и превращая идеи по обнаружению угроз в конкретные поисковые запросы. Давайте рассмотрим этот процесс на примере техники T1015, к которой мы обращались ранее.

Техника T1015 включает в себя установку ключей реестра для утилит специальных возможностей, которые изменяют штатное исполнение на запуск этих утилит под отладчиком. При помощи данных ключей на место отладчика устанавливается утилита cmd.exe. В результате вместо запуска отладчика winlogon.exe запустит терминал с привилегиями SYSTEM на экране входа в систему. Это позволит злоумышленнику сбросить пароль и получить полный доступ к системе.

После того как специалист ИБ изучит теорию об этой технике, ему нужно понять, как обнаружить ее на практике, в реальной инфраструктуре. Обычно для этого требуется написать правило обнаружения на языке используемого инструмента для анализа логов (SIEM/LM системы) в соответствии с используемой в нем моделью данных.

У каждого инструмента свой язык: Splunk использует Search Processing Language (SPL), ElasticSearch — Domain Specific Language (DSL), а Microsoft Defender ATP — Keyword Query Language (KQL). Вот если бы только существовал универсальный язык для поиска в логах, такой как Yara для файлов и Snort для сетевого трафика…

В последние годы приобрел популярность проект Sigma, нацеленный на решение проблемы унификации. Sigma — это проект с открытым исходным кодом, созданный Флорианом Ротом (@cyb3rops) и Томасом Патцке (@blubbfiction) и представляющий собой общий формат правил обнаружения угроз с помощью логов. Кроме того, он содержит набор конвертеров, которые переводят правила обнаружения на языке Sigma в языки популярных инструментов для анализа логов, таких как Splunk, ElasticSearch, QRadar. Команда SOC Prime также выпустила онлайн-инструмент Uncoder.IO. Это графический интерфейс конверторов Sigma, упрощающий конвертацию правил. Таким образом, правила Sigma можно применять, даже если инструмент для анализа логов не поддерживает Sigma. Это делает Sigma настоящим мультитулом для работы с логами.

Давайте посмотрим, как выглядит правило в Sigma, конвертируемое в различные языки запросов, на примере техники ATT&CK T1015. Вот один из вариантов правила для обнаружения изменения ключей реестра и выполнения атаки:



Зачем специалисту ИБ писать запрос в формате Sigma, а не на языке своей системы анализа логов? Есть несколько причин:

  • Правило Sigma содержит не только логику обнаружения, но и дополнительный контекст — источники логов, платформы, техники MITRE ATT&CK — и его легче читать, чем большинство языков запросов, специфичных для конкретного вендора. Таким образом, правило не нужно описывать, оно «документирует» само себя, его проще передать и объяснить другими участниками команды.
  • Sigma дает возможность поделиться разработанной техникой обнаружения с более широкой аудиторией. Идея распространяется среди других ИБ-специалистов, и для этого не требуется больших усилий с их стороны. Разработчик может предустановить правила Sigma в своем продукте, предупреждая ИБ-специалистов о серьезных проблемах (ошибках, аномалиях, критически важных операциях). Исследователи, создающие инструменты для red team, могут обозначить отправную точку атаки в виде правил Sigma, воплощая тем самым принципы работы в «фиолетовой команде» (purple team).
  • Специалисты ИБ не желают привязываться к конкретному поставщику. В бюллетенях по безопасности нет такой привязки — в них только дана информация, которая должна ускорить работу специалистов ИБ. Правила Sigma могут дополнить использование Yara и Snort.
  • В то время как MITRE ATT&CK предоставляет отличное хранилище информации о техниках, используемых преступными группировками, Sigma может превратить эти знания в защитные меры, позволяя самостоятельно документировать логику обнаружения, для того чтобы специалисты ИБ могли применить ее на практике.

Воспроизводимый анализ


Независимо от того, как начинается расследование, оно всегда включает в себя поиск по данным. Поиск является той частью анализа, которая способствует решению самых сложных задач. В ходе анализа требуется ответить на множество вопросов. Какие опорные точки используются для разработки новых версий расследования? Как обогатить данные, чтобы упростить их фильтрацию? Кто-то исследовал угрозу и описал свои выводы о ней — каковы были его шаги? Как исследователь может воспроизвести анализ, проведенный другим экспертом на аналогичном наборе данных?

Чтобы «демократизировать» анализ, обеспечить его доступность большему количеству ИБ-специалистов, нужно сорвать с него печать тайны и повысить возможность его воспроизводимости. Представьте себе, что лучший в мире специалист по определенному виду атак воплотил свои исследовательские ноу-хау таким образом, чтобы каждый мог воспроизвести их в своей среде. Давайте рассмотрим, какую пользу в этой области может принести Jupyter Notebook.

Что такое Jupyter


Jupyter — это набор взаимодополняющих технологий с открытым исходным кодом, который возник в профессиональных кругах, специализирующихся на научных вычислениях и науке о данных. Вот что нужно знать о нем практикующим специалистам ИБ:

  • Основным компонентом является Notebook — файл, в котором сочетаются разметка, код и данные. Разметка используется для описания и представления. Notebook может загружать данные из различных источников, осуществлять поиск по ним, используя команды для анализа данных, а затем визуализировать их с помощью разнообразного набора мощных инструментов визуализации. Notebook обычно пишется на Python (хотя и не обязательно) и опирается на широкий набор библиотек с открытым исходным кодом для обработки данных, таких как Pandas. Помимо простого поиска по данным, Notebook позволяет реализовать проекты в области науки о данных или машинного обучения. Технология Jupyter распространена довольно широко: только на GitHub более 5 миллионов опубликованных Notebook.
  • Notebook можно делиться. Notebook — это файлы, поэтому их можно опубликовать где угодно. GitHub располагает встроенной поддержкой Notebook, так что пользователи могут без труда просматривать их. Если кто-то загрузил Notebook, другие могут разобрать методику анализа или перезапустить ее, чтобы применить к своим данным. Возможность выполнять анализ на аналогичных данных является мощной концепцией, которая позволяет объединять опыт. Теперь любой автор Notebook — это не только учитель, но и член команды.
  • Jupyter Notebook можно запускать где угодно. Для запуска Jupyter Notebook в веб-браузере требуется «ядро» — программа, которая выполняет код из Notebook (на Python, .NET и других языках) и возвращает результат в пользовательский интерфейс. Notebook можно запускать практически в любом браузере на Windows, Linux, macOS и на мобильных платформах. Ядра могут работать локально или удаленно, в вашей инфраструктуре или в облаке, и каждый крупный поставщик облачных вычислений поддерживает их.

Пример Jupyter Notebook


Notebook состоит из ячеек. Ячейка для ввода — это ячейка, в которой вводятся команды, а ячейка для вывода выдает результат. Давайте разберем конкретный сценарий: Специалист ИБ обнаружил обфусцированную команду PowerShell, помеченную правилом. Злоумышленники используют инструменты обфускации, такие как Magic Unicorn, чтобы скрыть свои намерения и избежать детекта. Этот Notebook показывает обработку обфусцированной командной строки, извлечение кодированной Base64 командной строки, ее декодирование и нахождение встроенного шеллкода. Затем он ищет сетевые индикаторы и использует дизассемблированный вывод CyberChef для описания функциональности в шеллкоде.



Обфусцированная команда PowerShell, на которую сработало правило.



После декодирования команды Base64 будет найден следующий шеллкод:



Ищем строки, чтобы найти домен отстука (callback domain):



Разбираем шеллкод и описываем API, чтобы понять его функциональность:



Итак, шеллкод использует Windows API для подключения к домену (InternetConnectA, HttpSendRequestA) и загрузки команд, которые он запускает непосредственно в памяти (VirtualAlloc), что соответствует описанию: «Magic Unicorn — это простой инструмент для использования downgrade-атаки PowerShell и внедрения шеллкода прямо в память» (Дэйв Кеннеди (@HackingDave)).

Это показывает, что опыт можно инкапсулировать в Notebook, чтобы другие могли запускать его на своих данных. Если эта тема вам незнакома, почитайте серию публикаций в блоге Роберто Родригеса (Roberto Rodriguez) о том, как использовать Notebook для этой цели. Проект ThreatHunterPlaybook помогает начать работу с Jupyter и предварительно записанными наборами данных. У Netscylla также имеется блог, который входит в один из Notebook автора для использования в сценарии реагирования на инциденты. Есть несколько Notebook, которые можно запустить через браузер в этом репозитории на GitHub, на что указывает иконка запуска:



Jupyter поддерживается оживленной экосистемой профессионалов, работающих в области науки о данных, научных вычислений, машинного обучения, визуализации данных и других сферах. Специалисты ИБ могут опираться на их работу, адаптируя ее к собственным сценариям. Jupyter Notebook является мощным инструментом, при помощи которого специалисты ИБ применяют анализ данных и без усилий обмениваются его методиками.

Продвижение сообщества


Все ключевые элементы, упомянутые в этой статье, существуют благодаря ИБ-сообществу. Технологии, конечно, необходимы, но обучение не может происходить без преподавания, а преподавание построено на сотрудничестве. MITRE ATT&CK принимает вклад сообщества, и недавнее обновление, в котором представлены облачные технологии (включая Office 365), было почти полностью обеспечено сообществом.



Матрица атак на Office 365, включенная в MITRE ATT&CK



Пример техники, разработанной Светхой Прабакаран (сбор почты, размещенной в облаке).

Флориан Рот (@cyb3rops) создал открытый репозиторий правил Sigma на GitHub. Внести свой вклад в них так же просто, как создать pull request — запрос на включение в репозиторий. Вот пример запроса на добавление нового правила Sigma.



Еще одна общественная активность — Open Security Collaborative Development (OSCD). Это открытая международная инициатива специалистов по компьютерной безопасности. Осенью 2019 года прошел двухнедельный спринт, посвященный разработке правил проекта Sigma с целью улучшения покрытия MITRE ATT&CK. Исследователи со всего мира увеличили набор правил Sigma более чем на 40%.



Подробнее об инициативе и прошедшем спринте можно прочитать на Habr.

Гитхабификация информационной безопасности


Слишком часто мы обнаруживаем атаки вместе, практически одновременно, но все еще учимся защищаться в одиночку. В данной работе показано, как подходы к информационной безопасности в рамках глобального сообщества могут ускорить процесс обучения специалистов. Представьте себе мир, в котором знания об угрозах хранятся в MITRE ATT&CK. Затем для обнаружения каждой угрозы разрабатываются правила Sigma. Затем срабатывание этих правил запускает процесс расследования с применением специально подготовленных Jupyter Notebook.

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

Что такое гитхабификация информационной безопасности? Это три компонента:

  • Использование открытых подходов, которые в сочетании друг с другом приводят к объединению навыков и повышению эффективности.
  • Сотрудничество, при котором вклад можно метафорически представить как виртуальный pull request (запрос на внесение изменений на GitHub).
  • Сайт GitHub.com, предоставляющий инструменты для совместной работы. Конечно, для применения концепций гитхабификации не обязательно размещать проекты именно на GitHub, однако GitHub упрощает совместную работу и повышает прозрачность проектов.



Заключение и призыв к действию


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

Что делать дальше? Вот несколько возможных шагов:

Если вы специалист ИБ:

  • Пишите и применяйте правила Sigma.
  • Делитесь правилами в репозиториях с открытым исходным кодом.
  • Попробуйте Jupyter Notebook на mybinder.
  • Обучайтесь языку Python на онлайн-курсах.

Если вы инженер по продуктам безопасности:

  • Поддерживайте правила Sigma в ваших продуктах, так же как JoeSecurity.
  • Публикуйте Notebook, использующие данные вашего продукта.
  • Обеспечивайте поддержку интерфейса для доступа к данным с помощью библиотек на Python.

Если вы исследователь в области безопасности:

  • Публикуйте Notebook, демонстрирующие техники.
  • Вносите правила Sigma в репозитории.
  • Добавляйте новые техники или примеры атак в MITRE ATT&CK.
  • Публикуйте наборы данных, полезные для тестирования правил Sigma, такие как проект MORDOR.

Если вы менеджер ИБ:

  • Попросите одного из членов вашей команды изучить эти технологии и поделиться опытом с коллегами.
  • Спросите у аналогичных компаний, есть ли у них опыт работы с ATT&CK, Sigma или Jupyter Notebook.
  • Отправьте членов своей команды на обучение Python или Jupyter Notebook.
  • Активно рекомендуйте своим поставщикам поддержку технологий MITRE ATT&CK, Sigma и Jupyter.

Если вы представитель ИБ-компании или CERT:

  • Публикуйте рекомендации с правилами Sigma.
  • Указывайте ссылки на техники MITRE ATT&CK в рекомендациях и руководствах.

Благодарности


Автор благодарит Фредди Дизюра (@FDezeure), Флориана Рота (@cyb3rops), Томаса Пацке (@blubbfiction), Лию Лиз (@LeahLease), Тима Баррелла (@TimbMsft), Йена Хеллена (@ianhellen) и Роберто Родригеса (@Cyb3rWard0g) за комментарии к черновикам этой публикации.

Ссылки



Планы на будущее


Все технологии, упомянутые в этой статье, находятся на стадии разработки.
Ниже приведен список идей, разработку которых может взять на себя любой член ИБ-сообщества.

ATT&CK


  • Добавить связи с правилами Sigma и Yara.
  • Предоставить логи, демонстрирующие TTP (tactics, techniques, and procedures — тактики, техники и процедуры), так же как это сделано в проекте MORDOR.
  • Задокументировать примеры атак для техник, о которых недостаточно информации в свободном доступе.
  • Увеличить покрытие способов обнаружения техник на сетевом уровне.
  • Улучшить информацию по способам предотвращения атак в репозитории ATT&CK.

Sigma


  • Добавить поддержку более сложных типов правил, таких как правила корреляции, объединения (join), агрегации, — и увеличить количество базовых парсеров.
  • Добавить поддержку графического интерфейса для создания правил и проверки их логики.
  • Упростить модель данных для распространенных типов событий (например, «process_creation» вместо Sysmon Event ID 1 или Windows Event ID 4688).

Jupyter


  • Участвовать в создании библиотек Python для специалистов ИБ.
  • Улучшить визуализацию для типовых сценариев ИБ: древовидный режим для визуализации цепочки процессов и временная шкала для визуализации активности атакующих.
  • Функции расстояния для алгоритмов кластеризации распространенных типов данных (IP-адреса, домены, командные строки процессов).
  • Слой доступа к данным, позволяющий сделать запросы к бэкенду более абстрактными, решить вопросы аутентификации.



Автор статьи: Джон Ламберт, JohnLaTwC, ведущий инженер, Microsoft Threat Intelligence Center