Начало работы со средством моделирования угроз

В сентябре 2018 г. выпущена общедоступная версия Microsoft Threat Modeling Tool 2018, которую можно свободно скачать. Изменение в механизме доставки позволяет нам отправлять новейшие усовершенствования и исправления клиентам каждый раз при запуске средства, что упрощает обслуживание и использование. В этой статье описан процесс начала работы с использованием подхода моделирования угроз Microsoft SDL и показано, как с помощью этого средства можно разрабатывать модели рисков в качестве основы процесса обеспечения безопасности.

В этой статье используются имеющиеся знания о подходе с использованием моделирования угроз SDL. Краткий обзор см. в статье Threat Modeling Web Applications (Веб-приложения моделирования угроз) и архивированной версии статьи MSDN Uncover Security Flaws Using the STRIDE Approach (Выявление брешей в системе защиты с использованием подхода STRIDE), опубликованной в 2006 г.

Короче говоря, подход подразумевает создание схемы, выявление угроз, их устранение и проверку каждого устранения угроз. Ниже приведена диаграмма, на которой показан этот процесс.

SDL Process

Запуск процесса моделирования угроз

При запуске средства моделирования угроз вы увидите несколько вещей, как показано на рисунке:

Blank Start Page

Раздел Threat model (Модель рисков)

Компонент Сведения
Кнопка Feedback, Suggestions and Issues (Отзывы, предложения и проблемы) Вы перейдете на форум MSDN, где обсуждается все, что касается SDL. Таким образом вы получите возможность прочитать о том, что в таких случаях делают другие пользователи, а также узнать способы решения проблем и рекомендации. Если вам по-прежнему не удается найти то, что ищете, отправьте письмо по адресу tmtextsupport@microsoft.com, чтобы получить помощь от нашей группы поддержки.
Создание модели Откроется пустой холст для рисования диаграммы. Выберите шаблон, который необходимо использовать для модели.
Шаблон для новых моделей Перед созданием модели необходимо выбрать шаблон, который будет использоваться. Наш основной шаблон — шаблон моделирования угроз Azure, который содержит наборы элементов, угрозы и способы их устранения, относящиеся только к Azure. Для универсальных моделей выберите базу знаний TM SDL в раскрывающемся меню. Хотите создать собственный шаблон или отправить его всем пользователям? Дополнительные сведения см. в нашем репозитории шаблонов на странице GitHub.
Открытие модели

Открываются ранее сохраненные модели рисков. Функция Recently Opened Models (Недавно открытые модели) отлично подходит, если необходимо открыть самые последние файлы. При наведении указателя мыши на выделенные модели вы увидите два способа открытия:

  • Open From this Computer (Открыть на этом компьютере) — классический способ открытия файла с помощью локального хранилища;
  • Open from OneDrive (Открыть в OneDrive) — команды могут использовать папки в OneDrive, чтобы сохранить и совместно использовать свои модели рисков в одном расположении с целью повышения производительности и улучшения совместной работы.

Руководство по началу работы Откроется основная страница средства моделирования угроз Microsoft.

Раздел Template (Шаблон)

Компонент Сведения
Create New Template (Создать шаблон) Откроется пустой шаблон для создания модели. При отсутствии обширных знаний о создании шаблонов с нуля мы рекомендуем создавать модели на основе уже имеющихся.
Open Template (Открыть шаблон) Откроются имеющиеся шаблоны, в которые нужно внести изменения.

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

Создание модели

В этом разделе мы понаблюдаем за следующими людьми:

  • Кристина (разработчик);
  • Рикардо (руководитель программы);
  • Ашиш (тестировщик).

Они собираются разработать свою первую модель рисков.

Рикардо: "Привет, Кристина. Я работал над диаграммой модели рисков и хотел убедиться, что мы получили правильные сведения. Поможешь мне просмотреть их?" Кристина: "Конечно. Давай посмотрим". Рикардо открывает средство и предоставляет общий доступ к нему Кристине.

Basic Threat Model

Кристина: "Хорошо, все выглядит просто, но можешь помочь мне разобраться? Рикардо: "Конечно! Вот какая здесь структура:

  • наш реальный пользователь изображен в виде внешней сущности — квадрата;
  • он отправляет команды на наш веб-сервер — круг;
  • веб-сервер связывается с базой данных (две параллельные линии).

То, что Рикардо показал Кристине, — это DFD, сокращение для диаграммы потока данных. С помощью средства моделирования угроз пользователи могут указывать границы доверия, обозначенные красными пунктирными линиями, чтобы показать, в каких местах различные сущности находятся под контролем. Например, для проверки подлинности ИТ-администраторам требуется система Active Directory, таким образом она находится за пределами их контроля.

Кристина: "Похоже, это мне подходит. Как насчет угроз?" Рикардо: "Давай покажу".

Анализ угроз

Щелкнув представление анализа в меню значков (файл с увеличением стекла), он перейдет в список созданных угроз инструмент моделирования угроз, найденный на основе шаблона по умолчанию, который использует подход SDL с именем STRIDE (Спуфинга, незаконное изменение, раскрытие информации, раскрытие информации, отказ в обслуживании и повышение привилегий). Идея заключается в том, что программное обеспечение подвергается прогнозируемому набору угроз, которые можно найти с помощью этих 6 категорий.

Этот подход имеет сходство с охраной дома, при которой на окна и двери устанавливается механизм блокировки перед добавлением сигнализации или преследованием вора.

Basic Threats

Рикардо начинает с выбора первого элемента в списке. Происходит следующее:

Во-первых, улучшается взаимодействие между двумя наборами элементов.

Screenshot shows two stencils and the curved arrow connecting them in a heavier weight of line.

Во-вторых, в окне свойств угроз появляются дополнительные сведения об угрозах.

Screenshot shows the Threat Properties window, which contains Title, Category, Description, Interaction, and Priority.

Созданная угроза помогает ему понять потенциальные изъяны проектирования. Классификация STRIDE дает ему представление о потенциальных векторах атаки, тогда как в дополнительном описании содержатся сведения о том, что именно идет не так, и возможные способы решения проблемы. Он может использовать изменяемые поля для записи примечаний в сведениях об обосновании или изменения порядка приоритета в зависимости от шкалы ошибок его организации.

В шаблонах Azure есть дополнительные сведения, с помощью которых пользователи могут не только выявить проблему, но и узнать способы ее устранения путем добавления описаний примеров и гиперссылок в документации Azure.

В описании содержатся сведения о важности добавления механизма проверки подлинности, чтобы пользователи не подвергались спуфингу, в результате чего выявлена первая угроза, которую необходимо устранить. Через несколько минут разговора с Кристиной они понимают важность применения управления доступом и ролей. Рикардо делает несколько заметок, чтобы убедиться в том, что они реализованы.

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

Для угроз, неприменимых для разработки из-за имеющихся устранений рисков или гарантий безопасности, можно выбрать значение "Неприменимо" из раскрывающегося списка "Состояние". Есть три варианта: "Не запущено" — выбор по умолчанию, "Требуется исследование" — позволяет отслеживать элементы и Mitigated (Устранено) — после полной отработки.

Отчеты и совместное использование

Как только Рикардо проходит по списку с Кристиной и добавляет важные примечания, исправления и обоснования, изменения приоритета и состояния, он выбирает "Отчеты" -> Create Full Report (Создать полный отчет) -> "Сохранить отчет", чтобы распечатать отчет для себя и коллег и убедиться в реализации надлежащей защиты.

Screenshot shows a representative Threat Modeling Report.

Если вместо этого Рикардо хочет предоставить общий доступ к файлам, он сохраняет их в учетной записи OneDrive своей организации. После этого он может скопировать ссылку на документ и поделиться ею с коллегами.

Собрания на тему моделирования угроз

Когда Рикардо отправил свою модель рисков своей коллеге с использованием OneDrive, Ашиш, тестировщик, был разочарован. Казалось, Рикардо и Кристина упустили довольно много важных моментов, которые легко скомпрометировать. Его скепсис относится и к моделям рисков.

В этом сценарии после того, как Ашиш перехватил модель рисков, он назначил два собрания по моделированию угроз: одно собрание по синхронизации процесса и рассмотрению диаграмм, а затем второе собрание по обзору угроз и выходу.

На первом собрании Ашиш потратил 10 минут на объяснение всем процесса моделирования угроз SDL. Затем он начал подробно объяснять диаграмму модели рисков. В течение пяти минут был выявлен недостающий важный компонент.

Несколькими минутами позже Ашиш и Рикардо начали подробно обсуждать создание веб-сервера. Это не самый лучший вариант продолжения собрания, но все согласились, что обнаружение проблемы на раннем этапе поможет сэкономить время в будущем.

На втором собрании команда рассмотрела угрозы, способы их устранения, а также закончила работу с моделью рисков. Они поместили документ в систему управления версиями и продолжили разработку.

Размышления о ресурсах

Многие читатели, работавшие с моделированием угроз, могут заметить, что мы не затрагивали ресурсы вообще. Мы узнали, что многие разработчики понимают свои программы лучше, чем концепцию ресурсов и ресурсы, в которых злоумышленники могут быть заинтересованы.

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

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

Next Steps

Отправляйте свои вопросы, комментарии и проблемы по адресу tmtextsupport@microsoft.com. Скачайте средство моделирования угроз, чтобы начать работу.