Новый продукт, архитектура ещё на бумаге
Ошибки замысла дешевле всего исправлять до первой строки кода, особенно если сервис хранит чужие данные или принимает платежи через ваш эквайринг.
Моделирование угроз отвечает на вопрос, что может пойти не так в вашем веб-приложении, пока его можно поменять на схеме, а не в коде. Мы рисуем потоки данных и границы доверия, вместе с вашей командой перебираем угрозы по методу STRIDE и оставляем реестр, где у каждой угрозы есть решение, владелец и проверка. Это проектная работа с людьми, а не сканирование: боевые системы мы не трогаем.
От 200 000 ₽, 2–3 недели на приложениеРабота по схеме и описанию, исходники не обязательныРеестр угроз и схемы остаются у вас в исходных форматах
Ошибки замысла дешевле всего исправлять до первой строки кода, особенно если сервис хранит чужие данные или принимает платежи через ваш эквайринг.
Крупный заказчик спрашивает, есть ли документ с угрозами и мерами. Ответ «мы следим за безопасностью» не принимают.
Раньше им пользовались свои, теперь появляются клиенты, партнёры и API. Допущения, которые были безопасны внутри, перестают работать, и их надо найти явно.
Сканер и ревью кода ловят ошибки реализации. А если защиты нет по замыслу (ссылка из письма живёт вечно, отмену заказа может вызвать любой сотрудник партнёра), код выглядит правильным.
Работа сводится к четырём вопросам, и результат нужен не для папки, а для задач разработки.
Аудит и ревью читают то, что уже написано, и отвечают, какие ошибки в нём есть. Модель угроз работает со схемой замысла и отвечает, какие защиты должны быть и где их нет. Поэтому её делают до разработки или перед крупным изменением, а не вместо проверки готового кода. Проверка готовой системы описана на странице «Аудит безопасности веб-приложения», ревью кода — на странице «Secure code review».
Модель угроз не заканчивается документом. Она устаревает при каждой новой интеграции, роли или типе данных, поэтому мы оставляем список изменений, после которых её нужно обновить.
STRIDE — мнемоника из шести категорий. Она не даёт полного перечня, но не позволяет забыть целый класс угроз.
Нужны люди, которые знают, как система устроена на самом деле: разработчик или архитектор, аналитик, владелец продукта, администратор, который её эксплуатирует. Достаточно двух-трёх сессий по паре часов: мы ведём и записываем, вы отвечаете на вопросы.
Сначала активы: что в системе ценно (персональные данные, договорные цены, права на платёж, ключи доступа). Затем потоки данных и границы доверия: там, где данные переходят от менее доверенного участника к более доверенному, чаще всего и живут угрозы. Схема остаётся в формате, который вы редактируете сами.
На схеме клиент в браузере, сервер приложения, база, хранилище файлов и обмен с 1С. Перебор по границам даёт, например, такие угрозы: ссылка на загруженный документ не имеет срока жизни (раскрытие), сотрудник поддержки входит «от имени клиента» без записи в журнале (отказ от действия), в окне загрузки принимается любой тип файла (подмена и повышение привилегий через содержимое). По каждой записывается решение, и это сразу превращается в три задачи.
Заготовка для разбора: в вашей схеме границ будет больше или меньше, вопросы остаются теми же.
Числовая шкала создаёт видимость точности, которой нет. Мы используем три вопроса.
Затем по каждой угрозе записывается решение. Снизить: добавить меру. Передать: платёж принимает провайдер, и данные карт не попадают к вам. Принять: оставить, как есть, с подписью владельца и сроком пересмотра. Избежать: убрать функцию, которая создаёт угрозу. Принятый риск без подписи мы считаем недоделанной работой.
Цены — по тарифам, моделирование угроз идёт по шкале обследования. Остановиться можно после любой ступени; работы дешевле 150 000 ₽ не берём.
Одно приложение с одним-двумя основными процессами и одной-двумя связанными системами. На выходе схема, реестр угроз, требования и сценарии злоупотребления. Вычитается из первого этапа, если продолжаете с нами.
Учёт, платежи, почта, внешний API и кабинет вместе. Добавляется карта источников истины и угрозы на каждой границе обмена.
Требования переносятся в ваш трекер, сценарии злоупотребления становятся тестами, самые серьёзные меры проверяются в коде.
Обновляем модель при новых интеграциях и ролях, участвуем в обсуждении проектных решений. Часы сверх пакета — 5 000 ₽ в час.
Собираем схему архитектуры, список ролей и интеграций, описание развёртывания. Назначаем людей на сессии, с вашей службой безопасности согласуем, что показывать.
Рисуем потоки данных, отмечаем границы доверия, фиксируем, что в системе ценно. Схему подтверждает разработчик.
Перебираем угрозы по каждой границе по методу STRIDE. Записываем всё, включая то, что решили принять.
Определяем решения и владельцев, формулируем требования и сценарии для тестов.
Передаём схему и реестр в исходных форматах, оставляем список событий для пересмотра, при необходимости переходим к пилоту.
Число ролей, процессов и типов данных. Платформа с настраиваемыми правами и несколькими организациями требует отдельных сессий.
Каждая внешняя система добавляет границу доверия, ключ доступа и вопросы о поведении при сбое.
Если схемы нет, первая неделя уходит на восстановление картины.
Модель угроз стоит в начале цепочки. Её результат — список мер и сценариев, которые затем проверяются разными способами. Автоматически: SAST, DAST и SCA ловят типовые ошибки реализации. Человеком: ревью кода на безопасность проверяет права и логику, которые сканер не понимает.
Если нужно встроить безопасность во весь цикл разработки, от требований до эксплуатации, это безопасная разработка, а моделирование угроз в ней первый шаг. Для приложения с публичным API угрозы на границе обмена разбирает страница «Защита API от несанкционированного доступа», а выбор способа входа — SSO и MFA.
Как пройти сессию самим, если пока не нужен подрядчик, описано в статье «Как провести моделирование угроз веб-приложения».
Пошаговый порядок сессии для небольшой команды: что рисовать, как перебирать угрозы, что записывать в итоге.
Десять классов ошибок и вопросы подрядчику. Пригодится, чтобы связать угрозы из модели с тем, что ищут проверки.
Как устроена граница обмена между системами. Пригодится, когда модель показывает много внешних вызовов.
Сорок минут созвона: что за приложение, кто им пользуется, какие системы подключены. По итогам скажем, какой объём работы нужен и в какую вилку он укладывается.
Это структурированный разбор того, что может пойти не так в системе, пока она на схеме. Рисуется схема потоков данных, перебираются угрозы по каждому потоку и границе доверия, по каждой записывается решение. Результат нужен команде как список задач и тестов, а не как отчёт для архива.
Модель одного приложения — 200 000 ₽ за 2–3 недели, приложение с несколькими интеграциями — 350 000 ₽ за 3–4 недели. Сумма вычитается из первого этапа, если продолжаете с нами. Перенос требований в трекер и проверка мер в коде — пилот от 150 000 до 400 000 ₽ за 2–8 недель. Сопровождение модели — 20 000, 60 000 или 120 000 ₽ в месяц.
Хватит схемы и описания: модель работает на уровне замысла. Исходный код помогает сверить схему с реальностью, и мы просим выборочный доступ, но не обязаны получать его весь. Если нужен разбор самого кода, это ревью кода на безопасность, ссылка выше.
Аудит ищет конкретные ошибки в готовой системе. Модель угроз ищет отсутствующие защиты в замысле, поэтому её делают до разработки или перед крупным изменением. Они дополняют друг друга: модель подсказывает, что проверять аудитом.
Да, если он хранит чужие данные или принимает платежи. Для совсем простого сервиса без личных данных и без внешних подключений достаточно чек-листа; тогда лучше не платить за модель, и мы скажем об этом на созвоне.
Не по календарю, а по событиям: новая интеграция, новая роль, новый тип данных, выход в интернет, смена способа входа. Список таких событий мы оставляем в документе и предлагаем вписать его в процесс изменений.
Нет. Это технический документ для разработки. Модель по формам регулятора для государственных информационных систем мы не делаем, лицензии ФСТЭК у нас нет. Обязательства по персональным данным оценивает юрист заказчика, мы даём технические меры.
Мы в Ростове-на-Дону, работаем с заказчиками по всей России: удалённо и в вашем контуре. Доступ к системам и обследование согласуем на старте с вашей службой безопасности.