Привет! Меня зовут Даниил Нейман, я работаю в Positive Technologies в направлении развития инициатив ИБ-сообществ, где я активно занимаюсь поддержкой и развитием open-source-проектов и сообществ.
Одна из наших целей — продвижение обмена знаниями между специалистами в области информационной безопасности. Для этого мы исследуем различные методы стандартизации экспертизы, чтобы сделать экспертные знания и лучшие практики доступными для всех специалистов в едином формате, способствуя общему развитию информационной безопасности.
В наше время, когда постоянно появляются новые и все более сложные кибератаки, специалистам трудно провести быстрый анализ и выявить сложные закономерности действий киберпреступников, которые приводят к успешной кибератаке. Хорошо продуманные системы, описывающие все возможные действия злоумышленника, называются методами моделирования атак и могут решить эту проблему.
Методы моделирования атак (attack modelling techniques), или AMT, используются для моделирования и визуализации последовательности событий, приводящих к успешной кибератаке. Более подробное описание методов моделирования атак можно найти в статье-первоисточнике. В своей статье я начну краткий обзор методов, описанных в оригинальной статье.
AMT можно условно разделить на три категории:
методы, основанные на диаграммах сценариев использования;
темпоральные методы (акцент на хронологическом порядке и последовательности событий в кибератаке);
методы, основанные на графах.
В этой статье рассмотрим первую из трех категорий — методы, основанные на диаграммах сценариев использования. Методы этой категории основаны на языке UML, поэтому, прежде чем перейти к их рассмотрению, дадим определение языку UML и самим диаграммам сценариев использования.
UML (англ. Unified Modeling Language — унифицированный язык моделирования) — язык, созданный в 1995 году с целью графического моделирования процессов разработки ПО, бизнес-процессов и т. д. В начале 2000-х годов его начали активно изучать, как возможный способ моделирования киберугроз.
Диаграмма сценариев использования — диаграмма, которая является частью языка UML и отражает отношения между акторами и сценариями использования, где:
актор — набор ролей пользователя, взаимодействующего с некоторой сущностью (системой, подсистемой, классом). Обозначается на диаграмме фигуркой человечка;
сценарий использования — выполняемые системой действия, приводящие к наблюдаемым акторами результатам. Обозначается на диаграмме красным прямоугольником с надписью. Надпись может быть именем или описанием того, что делает система.
Основными связями между акторами и сценариями являются:
включает — пунктирная стрелка с надписью «include», выделяющая отдельные сценарии, являющиеся частью другого сценария (в примере ниже человек может воспользоваться сервисами для просмотра погоды, обмена валюты, поиска на карте т. д.);
позволяет — пунктирная стрелка с надписью «extend», означающая возможные последующие действия пользователя (в примере дальнейшим действием человека после регистрации может быть авторизация).
С определениями разобрались, так что теперь мы можем рассмотреть конкретные методы, основанные на этих диаграммах.
Сценарии неправильного использования (misuse cases)
Термин «сценарий неправильного использования» (misuse case), является смысловым перевертышем термина «сценарий использования» (use case) и предполагает выявление того, чего не должно было произойти (то есть речь о негативном сценарии). Впервые метод был предложен еще в 2000 году как возможный способ вовлечения акционеров в процесс обеспечения безопасности инфраструктуры.
Диаграмма сценария неправильного использования создается вместе с соответствующей диаграммой сценариев использования. При этом в модели используются следующие дополнительные элементы:
злоумышленник, проводящий атаку (misuser);
негативное действие, которое может совершить злоумышленник (misuse case);
связь, показывающая, какое легитимное действие пользователя (use case) может затронуть действие злоумышленника (misuse case) (threatens);
какое действие пользователя (use case) может остановить или предотвратить действие злоумышленника (misuse case) (mitigates).
Рассмотрим пример.
На этой диаграмме изображен сценарий атаки, который начинается с отправки злоумышленником фишингового письма жертве с последующим получением доступа к рабочей станции через вредоносное вложение и дальнейшим повышением привилегий.
Далее изображены две атакующие процедуры, нацеленные на получение доступа к учетным данным администратора, а именно:
Дамп NT hash или Kerberos ticket с помощью утилиты mimikatz.
Получение кэшированных учетных данных из реестра Windows (на схеме «Получение секретов LSA из реестра»).
Белым изображены возможные действия легитимного пользователя, красным — действия злоумышленника. Проведенные между ними связи показывают, как злоумышленник может добиться своих целей, и то, как защитник может предотвратить успешную атаку.
Так, например, можно модифицировать параметры групповой политики, чтобы:
Отключить автоматический вход в Windows, чтобы аутентификационные данные не хранились в реестре.
Отключить локальное хранение NT-хешей и ограничить использование протокола NTLM для аутентификации.
Рассмотренный метод моделирования обладает следующими преимуществами:
Позволяет сосредоточиться на безопасности с самого начала процесса проектирования инфраструктуры.
Позволяет выделить верхнеуровневую поверхность атаки.
Улучшает коммуникацию между специалистом и обычными пользователями ввиду своей простоты.
Но у него есть и существенные недостатки:
Отсутствие конкретики в описании действий злоумышленника.
Отсутствие необходимых условий для действий злоумышленника.
Карты сценариев неправильного использования (misuse cases maps)
В 2010 году было предложено дополнение к методу сценариев неправильного использования под названием «карты сценариев неправильного использования», расширяющее описание атаки путем добавления различных новых видов связей с разделением элементов инфраструктуры. Это позволило детальнее описать действия злоумышленника.
Более того, авторы создали специальный редактор для составления диаграмм, но, к сожалению, ввиду давности публикации развернуть его не удалось. Поэтому остается лишь рассматривать предложенный ими пример моделирования реальной атаки на банк, описанной в седьмой главе книги «The Art of Intrusion».
В этом случае описывается пять этапов атаки на инфраструктуру банка:
Злоумышленник нашел в интернете диапазон IP-адресов банка.
Затем он просканировал IP-адреса банка и нашел сервер, на котором работал Citrix MetaFrame (программное обеспечение для удаленного доступа).
Далее он просканировал компьютеры, подключенные к интернету, в поисках открытого порта удаленного доступа к Citrix Terminal Services (порт 1494), через который происходит удаленное подключение.
Так как по умолчанию для удаленного подключения не требуется пароль, находя такие компьютеры, злоумышленник успешно получал к ним доступ и проводил поиск в системе по слову «пароль», пытаясь тем самым получить доступ к другим частям инфраструктуры. С одной из таких рабочих станций атакующему удалось получить доступ к пограничному маршрутизатору, у которого стоял пароль по умолчанию. На нем злоумышленник добавил правило, разрешающее входящие подключения к порту 1723 (VPN), что позволило ему подключиться к внутренней плоской сети банка.
Далее, исследуя сеть, злоумышленник нашел сервер с документацией по анализу защищенности. В этих документах были перечислены все уязвимости инфраструктуры и ее сервисов, что позволило получить контроль над всеми критически важными системами банка.
Преимущества этого метода по сравнению с misuse cases:
Более детальное описание действий злоумышленника.
Разделение разных компонентов инфраструктуры.
Среди недостатков можно выделить:
Большое количество схожих по внешнему виду связей, что затрудняет понимание диаграммы.
Метод опускает возможные действия пользователя для предотвращения атаки.
На одной диаграмме можно изобразить только одну вариацию атаки.
Сценарии безопасного использования (security use cases)
У этого метода существует несколько вариаций: первая была предложена в 2003 году, вторая в 2012 году, но основная идея одинаковая — дополнить модель «Сценарий неправильного использования», добавив динамические функции и условия, в зависимости от которых они смогут выполняться. Это позволит описывать меры по улучшению уровня защищенности инфраструктуры. Рассмотрим более новую вариацию, так как она, так же как и предыдущие методы, предусматривает использование диаграмм UML.
Дополним диаграмму ранее рассмотренного примера с mimikatz и LSA secrets, добавив ограничения на действия пользователя.
На аутентификацию можно наложить, например, ограничения в виде успешной проверки 2FA и также задать допустимые страны, из которых идет соединение.
В случае создания доменной сессии можно установить ограничения на количество одновременных сессий и условие на пройденную двухфакторную аутентификацию.
Преимущества метода по сравнению со сценариями неправильного использования:
Выделение ограничений для действий в качестве дополнительных мер защиты.
Недостатки:
Такие же, как у сценариев неправильного использования.
Диаграммы последовательности неправильного использования (misuse sequence diagrams)
Этот метод появился в 2010 году как альтернатива misuse cases maps. В этом методе определяются две дополнительные сущности: элемент инфраструктуры и атакующий. Взаимодействие между участниками активности представляются в виде другой структуры UML — диаграммы последовательности (англ. sequence diagram), на которой для некоторого набора объектов на единой временной оси показан жизненный цикл объекта и взаимодействие сторон в рамках сценария. В этом методе выделяются следующие сущности и связи.
Попробуем адаптировать пример с дампом секретов LSA и дампом аутентификационных данных с помощью mimikatz, используя этот метод.
Видим, что мы можем выделить конкретные сущности:
рабочая станция, к которой злоумышленник получает доступ через вредоносное вложение;
процесс LSASS, который хранит аутентификационные данные администратора;
доменную сессию администратора, созданную злоумышленником.
При этом такой тип диаграммы не позволяет указать, какие действия обязательны для атаки, так как мы можем разными путями получить учетные данные пользователя.
Плюсы подхода:
Удобное визуальное представление последовательных действий злоумышленника во времени.
Выделение конкретных элементов, а не только абстрактных действий.
Минусы подхода:
На одной диаграмме можно изобразить только одну вариацию атаки.
При увеличении количества элементов становится трудно поддерживать читаемость и понятность диаграммы, что затрудняет анализ действий.
CORAS
Разработанный в 2002 году проект CORAS задумывался как фреймворк для наглядного и эффективного анализа рисков. Сам метод также вдохновлен UML, но при этом выделяет свои собственные элементы и связи. Этот метод концептуально включает в себя восемь формальных шагов.
Основная цель проекта — составление в специальном редакторе диаграммы из определенных элементов (см. рисунок ниже) и связей между этими элементами.
Возможные связи между элементами:
Предполагается, что злоумышленник пытается получить доступ к неким активам в инфраструктуре, добиваясь реализации нежелательных сценариев.
Рассмотрим уже знакомый нам пример, представленный в виде следующей диаграммы.
В CORAS диаграмма строится справа налево. Сначала определяются активы, далее — действия, которые могут повлиять на них, уязвимости в виде замков, реализующие сценарий угрозы, и в конце определяется атакующий.
В этом случае определим актив в виде целостности домена, далее укажем, что он может потерять целостность при успешной компрометации доменного администратора. Далее определим, получение каких учетных данных приведет к его компрометации, а именно NT hash, DCC2 и Kerberos ticket. Далее распишем сценарии их получения — использование mimikatz или получение секретов LSA. В конце выделяем нашего атакующего.
Плюсы этого метода:
Удобный верхнеуровневый анализ потенциальных рисков и способов компрометации.
Возможность определения пререквизитов для сценариев в виде уязвимостей.
Возможность добавления, дополнения различных путей компрометации путем определения новых уязвимостей, сценариев и связей. При этом активы в общем случае остаются неизменными.
Минус:
Нет определения, какие связи обязательны.
Таким образом, мы рассмотрели все методы, основанные на диаграммах сценариев. Обобщая, можно сказать, что они начали появляться и обрели популярность в начале 2000-х годов как расширение диаграммы сценариев из UML для анализа возможных киберугроз. После были представлены различные вариации, либо дополняющие уже разработанные методы, либо переосмысляющие их с помощью других диаграмм UML.
При этом интерес к самому UML пошел на спад с 2004 года в основном из-за его избыточности и сложности использования. Также и сами методы описания угроз, основанные на диаграммах сценариев, не нашли широкого применения и дальнейшего исследовательского интереса среди экспертов.
Но это не значит, что активная разработка методов моделирования атак прекратилась. Исследование этих методов моделирования атак было важно, поскольку они предоставили ценную теоретическую базу для понимания сценариев атак, что, в свою очередь, способствовало созданию и развитию более эффективных методов моделирования кибератак.
В следующей статье я рассмотрю темпоральные методы моделирования атак, таких как популярные Cyber Kill Chain, Diamond Model и Riskit. Они играют важную роль в современном анализе и предотвращении кибератак.
Если вас заинтересовала тема работы со знаниями и составление различных информационных моделей или появились вопросы по этой статье, оставляйте комментарии.
Даниил Нейман
Специалист направления развития ИБ-сообществ, Positive Technologies