Моделирование угроз

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

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

Что такое моделирование угроз?

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

Моделирование угроз заключается в построении моделей и использовании этих моделей, чтобы помочь вам понять, что может пойти не так. В большинстве вещей есть модели, неявные. Например, в аналитике угроз вы часто получаете IP-адреса, адреса электронной почты и подобные «индикаторы». Подразумевается, что вы подключите эти IP-адреса к своему брандмауэру или IDS или заблокируете эти электронные письма на своем почтовом сервере. Есть также важные детали, которые редко обсуждаются: от какой компании ваш брандмауэр? У каждого свой пользовательский интерфейс, но у каждого есть способ заблокировать IP-адрес.

Моделирование угроз и анализ угроз

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

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

Зачем нужна модель угроз?

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

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

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

Как создавать модели угроз

Самый простой подход к моделированию угроз заключается в ответах на четыре фундаментальных вопроса:

1. Над чем мы работаем?

2. Что может пойти не так?

3. Что мы собираемся с этим делать?

4. Мы хорошо поработали?

Над чем мы работаем?

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

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

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

Что может пойти не так?

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

Если вы проводите много времени в сфере безопасности, вы можете понять, что я говорю об аутентификации. Сбои аутентификации часто называют «спуфингом», а спуфинг — это первый элемент удобной мнемоники STRIDE:

Spoofing

Tampering

Repudiation (denial of the truth or validity of something)

Information Disclosure

Denial of Service

Elevation of Privilege

Вы можете использовать STRIDE, просматривая каждую часть схемы (включая потоки данных!) и спрашивая: «Как кто-то мог подделать это?». Вы также можете просмотреть каждый элемент диаграммы, и пройдитесь по каждой угрозе STRIDE: «Как кто-то мог подделать базу данных?»

Когда вы ответите на вопрос, что может пойти не так, записывайте. Позже запишите ошибки, рабочие элементы или что-то подобное, чтобы отслеживать их вместе с остальной частью проекта. Кроме того, вы обнаружите, что часто говорите: «Я предполагаю». Запишите эти предположения и посмотрите, правы ли вы после того, как закончите.

Как только вы закончите, найдите минутку, чтобы понять, чего вы достигли. Возможно, это было сложно, но вы составили список вещей, которые могут пойти не так в системе, которую вы еще не построили. Слава вам! Обычно это самая сложная часть.

Что мы собираемся с этим делать?

Когда мы работаем с организациями, 80–90% проблем, которые они обнаруживают при моделировании угроз, достаточно просто решить. Организация может применить понятный способ смягчения проблемы, добавив функции или код для защиты от атаки.

Мы хорошо поработали?

Есть легкая и трудная часть оценки того, как вы справились. Легкая часть — проверка вашей работы:

- Посмотрите на схему. Хорошо ли она представляет систему?

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

- Вы сообщали об ошибке для каждой угрозы?

Если вы пропустили что-то из этого, вы плохо поработали. Даже если вы рассмотрели все эти пункты, у вас все еще осталась трудная часть оценки: суждение. Вы хорошо поработали на каждом из них? Если это был ваш первый раз, то вы сделали. Я могу сказать это, потому что я знаю, что вы поступили намного лучше, чем вообще не занимались моделированием угроз!

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

Компания Mainton - разработка и тестирование программного обеспечения под заказ, SEO и реклама в интернете с 2004 года.