惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
Cisco Blogs
爱范儿
爱范儿
有赞技术团队
有赞技术团队
博客园 - 【当耐特】
Jina AI
Jina AI
Project Zero
Project Zero
宝玉的分享
宝玉的分享
Martin Fowler
Martin Fowler
WordPress大学
WordPress大学
Simon Willison's Weblog
Simon Willison's Weblog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Tenable Blog
F
Fortinet All Blogs
大猫的无限游戏
大猫的无限游戏
Last Week in AI
Last Week in AI
月光博客
月光博客
雷峰网
雷峰网
G
Google Developers Blog
V
V2EX
T
Tor Project blog
罗磊的独立博客
Schneier on Security
Schneier on Security
Know Your Adversary
Know Your Adversary
W
WeLiveSecurity
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
P
Privacy International News Feed
S
Securelist
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
P
Proofpoint News Feed
Blog — PlanetScale
Blog — PlanetScale
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
小众软件
小众软件
Scott Helme
Scott Helme
I
Intezer
T
Threat Research - Cisco Blogs
The GitHub Blog
The GitHub Blog
N
Netflix TechBlog - Medium
C
CERT Recently Published Vulnerability Notes
Security Archives - TechRepublic
Security Archives - TechRepublic
酷 壳 – CoolShell
酷 壳 – CoolShell
L
LINUX DO - 最新话题
N
News | PayPal Newsroom
L
Lohrmann on Cybersecurity
T
Troy Hunt's Blog
Google DeepMind News
Google DeepMind News
P
Proofpoint News Feed
人人都是产品经理
人人都是产品经理
Latest news
Latest news
AWS News Blog
AWS News Blog
Apple Machine Learning Research
Apple Machine Learning Research

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
Моделирование угроз для тех, у кого лапки (и ручки)
servzin · 2026-05-29 · via Все публикации подряд на Хабре

Моделирование угроз для тех, у кого лапки (и ручки)

Средний

12 мин

11K

Привет, Хабр! Меня зовут Сергей Зиновьев, я бизнес-партнёр по информационной безопасности в Авито. Если какие-то сканы на безопасность кода легко автоматизировать, то с уязвимостями на этапе проектирования всё обстоит сложнее. Для превентивного выявления подобных проблем организации и сообщества вроде NIST и OWASP рекомендуют использовать моделирование угроз в рамках своих гайдлайнов и фреймворков. В нашей практике это довольно творческий процесс, требующий понимания как продуктовой, так и технической стороны.

В Авито мы масштабировали этот процесс на 2500+ инженеров, и сегодня я расскажу, как мы к этому пришли — с какими сложностями столкнулись, какой фреймворк выработали и как адаптировали его под реальные потребности продуктовых команд.

В этой статье

  • Суть процесса и практическая ценность

  • Методологии моделирования угроз и международная практика

  • Методологии и инструменты

  • С какими сложностями мы сталкивались при выборе методологии

  • Выработка решения

  • Ключевые вопросы и abuse cases

  • Приоритизация угроз и артефакты

  • Библиотека атак

  • Улучшение процесса

  • Изменение процесса для отдельных случаев (межкомандное взаимодействие, мобильное приложение)

  • Регулярность процесса

  • Вместо итогов

Суть процесса и практическая ценность

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

Моделирование угроз обычно проводят в формате мозгового штурма. Команда экспертов обсуждает модель программной системы и отвечает на вопрос «Что может пойти не так?» Главное — не просто найти возможные проблемы, а заранее спланировать, как их избежать. То есть суть процесса заключается в следующем:

1. Нужно построить модель системы

2. Найти слабые места

3. Определить, что и в каком порядке необходимо исправить.

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

Аналогия

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

  • расположение ящика (чтобы его нельзя было вытащить сверху);

  • тип замка (чтобы его нельзя было сбить);

  • материал тумбы (чтобы нельзя было проломить стенки);

  • крепление к полу или стене (чтобы тумбу нельзя было унести).

Большинство этих пунктов можно сразу учесть ещё на этапе проектирования тумбы.

То же самое происходит при разработке ПО: на этапе технического дизайна для оценки угроз ИБ достаточно листочка бумаги и пары разноцветных карандашей — дёшево и не требует тестового стенда.

Тут еще больше контента

Тут еще больше контента

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

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

Ценности и участки в доме предполагают разные векторы рисков

Ценности и участки в доме предполагают разные векторы рисков

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

1. Определяем основные ценности на участке и в доме.

Например, это сам дом, находящиеся в нём люди, автомобиль в гараже и сейф в спальне.

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

Угрозы могут быть как очень вероятные (например, проникновение на территорию обманом, разрушение забора, природные катаклизмы), так и маловероятные (например, подкоп или падение акулы на крышу). При этом стоит помнить, что «маловероятные» — не значит невозможные.

3. Особенно отметим возможные угрозы для наших ценностей.

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

4. Приоритизируем угрозы, от которых хотим защититься (так как ресурсы ограничены).

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

Управление рисками

Управление рисками

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

Почему моделирование угроз полезно и необходимо в Авито

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

Секция ИБ в TDR. В Авито есть процесс TDR (Technical Design Review): команды защищают предложенную архитектуру, получают обратную связь и согласуют решения. Это лучший момент для оценки угроз ИБ: код ещё не написан, корректировки стоят дешевле.

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

Моделирование угроз выгодно всем:

  • для Авито — удобный и масштабируемый способ снижения рисков ИБ;

  • для инженера — рост компетенций и шаг к роли фича-лида.

Методологии моделирования угроз и международная практика

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

• компания Microsoft десятилетиями продвигает свой подход к оценке угроз ИБ под названием STRIDE:

• американский институт NIST начал стандартизацию моделирования угроз в 2015–2016 годах и постоянно расширяет набор рекомендаций;

• проект OWASP имеет отдельный  стрим по моделированию угроз;

Что такое OWASP?

OWASP (Open Worldwide Application Security Project) — онлайн-сообщество, публикующее открытую информацию и ресурсы по информационной безопасности. Они составляют материалы-гайдлайны по безопасной веб-разработке, стояли у истоков разработки инструмента для пентеста OWASP ZAP и публикуют список Топ-10 уязвимостей.

• моделирование угроз требуется уже на первом уровне зрелости ИБ в моделях BSIMM и OWASP SAMM;

• гуру мира Computer Science Мартин Фаулер и его последователи очень детально описали внедрение этой практики в Agile-разработку в гайде.

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

Методологии и инструменты

MITRE ATT&CK®

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

Однако в этом преимуществе кроется и недостаток фреймворка: для неподготовленного человека он будет сложен в освоении, потребует большого объёма технических знаний и временных трудозатрат в попытках «примерить» всю библиотеку атак на своё решение.

Elevation of Privilege

Это карточная игра, которая позволяет сделать процесс моделирования угроз более интерактивным и креативным. Требует модератора-ведущего, организующего игровые раунды.

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

Карты организованы в виде покерной колоды пяти мастей, разделённых по группам атак из методологии STRIDE — чем выше номинал карты, тем более критичная атака. Каждый из участников сессии может подключиться и предложить эту же сыгранную атаку в другом контексте рассматриваемой области, что позволяет организовать совместное сотворчество.

Что такое STRIDE?

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

Категории угроз:
Spoofing подмена подлинности
Tampering несанкционированное изменение данных
Repudiation отказ от действий
Information Disclosure раскрытие информации
Denial of Service
отказ в обслуживании
Elevation of Privilege
повышение привилегий

Таким образом, процесс моделирования угроз становится гораздо более динамичным и коллективным, а описания атак — более понятными для команд продуктовой разработки. Но есть у этого подхода и свои минусы. Карточки из колоды могут быть неприменимы к конкретному контексту команды (например, физическая безопасность при работе с облачными сервисами), а ограниченность сессии во времени и произвольное вытягивание карт из колоды вносят дополнительную неопределённость в результатах: может оказаться, что наиболее критичные уязвимости просто не попадут игрокам в руки, а вместо них команды будут высасывать из пальца малоприменимые к ним атаки.

Алгоритм Elevation of Privilege

Алгоритм Elevation of Privilege

С какими сложностями при выборе методологии мы сталкивались

К числу наиболее очевидных проблем можно отнести:

  • необходимость встраивания моделирования угроз в текущие процессы разработки, дополняя их, а не перекраивая с нуля;

  • систематизация процесса;

  • возможность проведения ретроспективного моделирования угроз наравне с проактивным;

  • требуемый порог вхождения в процесс.

При этом существует соблазн отложить моделирование угроз на «потом», когда будет известно больше данных. Однако это будет противоречить подходу shift-left, когда мы стараемся внедрить наши процессы на как можно более ранних этапах проектирования и разработки. Тем более, что даже с такой ограниченной информацией нам есть, о чём подумать.

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

Выработка решения

В первую очередь, ответили на вопросы: когда стоит проводить моделирование угроз и кто за него отвечает? Затем собрали фреймворк, который с одной стороны понятен инженерам, а с другой — не является таким уж трудоёмким и формализованным. Мы получаем такое подобие чеклиста, который понятен инженерам, но при этом не превращается в формальность.

Также важно встроить этот процесс в существующие процессы разработки, чтобы он дополнял их, а не создавал дополнительных трудностей. В нашем случае в первую очередь это этап ревью технических дизайн-документов (TDR). Команды при этом работают в привычных им инструментах и обогащают контекст аспектами информационной безопасности.

Жми сюда!

Жми сюда!

Ключевые вопросы и abuse cases

На одном из вопросов хочется остановиться отдельно: «Что может произойти, если решение будет использовано не по назначению?» (abuse cases).

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

Чтобы избегать подобных ситуаций, на этапе проектирования стоит задуматься, а как можно использовать наше решение иначе — не так, как было изначально задумано?

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

Приоритизация угроз и артефакты

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

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

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

  • схема или описание фичи с указанием потенциальных угроз, привязанных к возможным точкам их появления;

  • задокументированные угрозы, которые были приняты или отложены до лучших времён;

  • задачи в Jira с указанием DoD для наиболее критичных угроз.

Библиотека атак

Библиотека атак состоит из нескольких разделов:

  1. Раздел атак через бэкенд. Здесь мы рассматриваем атаки на недостаточно изолированные микросервисы; атаки, связанные с обработкой входных данных (различные инъекции, получение небезопасных данных и их дальнейшее выполнение на сервере, и прочие валидации) и атаки, основным вектором которых является неавторизованное получение различной служебной и конфиденциальной информации.

  2. Раздел атак на фронтэнд-компоненты. Часть из них опять же посвящена работе с предоставленными извне данными; часть — получению и отображению лишней информации. Кроме того, здесь добавляются атаки на уровне DOM-дерева, выполнения скриптов на клиентской стороне, кросс-доменных запросов и прочей автоматизации, позволяющей перенаправлять интересующие злоумышленника данные на сторонние ресурсы и вводить пользователя в заблуждение.

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

  4. Атаки на мобильные платформы. Как правило, угрозы для мобильных приложений таятся на рубеже границ видимости и автоматически исполняемого кода, то есть в JS, WebView и межпроцессном взаимодействии. Использование нестандартных компонентов и переадресация данных между приложениями расширяют потенциальную поверхность атаки по сравнению с более привычным фронтендом, который можно запускать в том числе и из мобильного браузера. 

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

Улучшение процесса

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

Изменение процесса для отдельных случаев

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

Межкомандное взаимодействие

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

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

Мобильное приложение

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

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

Регулярность процесса

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

Вместо итогов

Мы масштабировали решение на 2500+ инженеров, сделав ставку на гибкость подхода, интеграции с другими процессами и обучение. Мы разобрали ключевые типичные ошибки и уязвимости, научили команды их выявлять. В итоге мы перераспределили около 15% трудозатрат на моделирование угроз на команды продуктовой разработки — и снизили порог входа в процесс настолько, что он стал доступен «даже тем, у кого лапки».

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

Кликни здесь и узнаешь

Кликни здесь и узнаешь