STRIDE
STRIDE — это мнемоническая аббревиатура, используемая в области информационной безопасности для классификации угроз безопасности компьютерных систем и приложений. Название образовано от первых букв английских названий шести категорий угроз: Spoofing (подмена), Tampering (вмешательство), Repudiation (отказ от авторства), Information Disclosure (раскрытие информации), Denial of Service (отказ в обслуживании) и Elevation of Privilege (повышение привилегий). Модель STRIDE была разработана в конце 1990-х годов двумя инженерами корпорации Microsoft — Лореном Кольфельдом (Loren Kohnfelder) и Прадипом Гарой (Pradeep Gara) — и с тех пор является одним из базовых инструментов для анализа угроз (threat modeling) в процессе разработки безопасного программного обеспечения.
История и происхождение
Модель STRIDE была впервые представлена в 1999 году в документе Microsoft «The STRIDE Threat Model». Разработка была вызвана необходимостью создания систематического подхода к идентификации угроз на ранних этапах жизненного цикла разработки ПО. До появления STRIDE анализ безопасности часто проводился интуитивно или на основе чек-листов, что не гарантировало полноты охвата. Кольфельд и Гара предложили простую, но эффективную таксономию, которая позволяла разработчикам и тестировщикам последовательно проверять систему на наличие уязвимостей шести основных типов. Впоследствии модель была интегрирована в методологию Microsoft Security Development Lifecycle (SDL) и стала стандартом де-факто для многих компаний, занимающихся разработкой программного обеспечения.
Категории угроз STRIDE
Каждая буква в аббревиатуре STRIDE обозначает конкретный тип угрозы, направленный на нарушение одного или нескольких свойств безопасности информации (конфиденциальность, целостность, доступность, аутентичность, неотказуемость).
Spoofing (Подмена)
Угроза подмены заключается в попытке злоумышленника выдать себя за другого пользователя, процесс или устройство. Целью является нарушение свойства аутентификации. Примеры: подделка IP-адреса (IP spoofing), фишинг с подделкой страницы входа, использование украденных сертификатов, подмена идентификатора пользователя в HTTP-запросе. В контексте модели STRIDE эта угроза обычно рассматривается на уровне пользователей, внешних сущностей и процессов.
Tampering (Вмешательство)
Угроза вмешательства (или несанкционированного изменения) подразумевает модификацию данных или кода без разрешения. Она направлена на нарушение свойства целостности. Примеры: изменение содержимого базы данных через SQL-инъекцию, подмена передаваемого пакета данных в сети (man-in-the-middle), модификация исполняемого файла вредоносным кодом, изменение конфигурационных файлов.
Repudiation (Отказ от авторства)
Угроза отказа от авторства (или неотказуемости) возникает, когда пользователь или система может отрицать совершение определённого действия, а у системы нет возможности доказать обратное. Это нарушает свойство неотказуемости (non-repudiation). Примеры: отсутствие или недостаточность журналов аудита (логов), возможность удаления логов без последствий, отсутствие цифровых подписей на критических транзакциях. В отличие от других угроз, Repudiation часто требует не столько технических, сколько организационных мер (например, ведение защищённых логов).
Information Disclosure (Раскрытие информации)
Угроза раскрытия информации означает несанкционированный доступ к данным, которые должны быть защищены. Она нарушает свойство конфиденциальности. Примеры: чтение файлов, к которым нет доступа, перехват трафика (sniffing), утечка данных через ошибки в логике приложения (например, IDOR — Insecure Direct Object Reference), раскрытие паролей в открытом виде в исходном коде.
Denial of Service (Отказ в обслуживании)
Угроза отказа в обслуживании (DoS) направлена на то, чтобы сделать систему, ресурс или сервис недоступным для легитимных пользователей. Она нарушает свойство доступности. Примеры: перегрузка сервера большим количеством запросов (DDoS-атака), исчерпание оперативной памяти приложения, блокировка файлов, атака на протоколы (например, SYN flood). В модели STRIDE также рассматриваются DoS-атаки на уровне приложения (например, бесконечный цикл в обработчике запроса).
Elevation of Privilege (Повышение привилегий)
Угроза повышения привилегий возникает, когда пользователь или процесс получает доступ к функциям или данным, на которые у него нет прав. Это нарушение политики авторизации. Примеры: эксплуатация переполнения буфера для выполнения кода с правами администратора, получение доступа к учётной записи администратора через уязвимость в механизме смены пароля, обход проверок прав доступа (например, через path traversal). Эта угроза часто является конечной целью многих других атак.
Применение модели STRIDE
Модель STRIDE применяется в процессе моделирования угроз (threat modeling), который обычно состоит из нескольких этапов:
- Построение диаграммы потока данных (DFD): Разработчики создают диаграмму, описывающую архитектуру системы, её компоненты (процессы, хранилища данных, внешние сущности) и потоки данных между ними.
- Идентификация угроз: Для каждого элемента диаграммы (процесс, хранилище, поток, внешняя сущность) систематически проверяется, подвержен ли он каждой из шести угроз STRIDE. Например, для хранилища данных проверяются угрозы Tampering (изменение данных) и Information Disclosure (чтение данных). Для потока данных — Spoofing (подмена отправителя) и Tampering (изменение данных в пути).
- Оценка рисков: Выявленным угрозам присваивается приоритет на основе вероятности реализации и потенциального ущерба.
- Разработка контрмер: Для каждой приоритетной угрозы разрабатываются меры защиты (например, шифрование для защиты от раскрытия, аутентификация для защиты от подмены, логирование для защиты от отказа от авторства).
Критика и ограничения
Несмотря на широкую распространённость, модель STRIDE не лишена недостатков. Основные ограничения включают:
- Отсутствие приоритизации: STRIDE сама по себе не оценивает серьёзность угрозы. Она лишь идентифицирует её тип. Для оценки риска требуются дополнительные методологии (например, DREAD — Damage, Reproducibility, Exploitability, Affected Users, Discoverability, также разработанная Microsoft).
- Ориентация на приложения: Модель изначально создавалась для анализа угроз в программном обеспечении и может быть менее эффективна для анализа угроз на уровне сети, физической безопасности или социальной инженерии.
- Сложность для больших систем: Применение STRIDE к очень сложным, распределённым системам с сотнями компонентов может быть трудоёмким и требовать автоматизации.
- Субъективность: Качество идентификации угроз сильно зависит от опыта и квалификации команды, проводящей анализ.
Альтернативные модели
Существуют и другие подходы к классификации угроз, которые могут дополнять или заменять STRIDE в определённых контекстах:
- PASTA (Process for Attack Simulation and Threat Analysis): Более ориентированная на бизнес-риски методология, включающая симуляцию атак.
- LINDDUN: Специализированная модель для анализа угроз конфиденциальности (Privacy).
- OWASP Top 10: Список наиболее критичных рисков безопасности веб-приложений, который, в отличие от STRIDE, фокусируется на конкретных уязвимостях, а не на типах угроз.
- Attack Trees: Метод, использующий иерархические диаграммы для описания возможных путей достижения цели атакующего.
Интересные факты
- Аббревиатура STRIDE была выбрана не случайно: она легко запоминается и образует полный набор угроз, которые, по мнению авторов, покрывают все основные нарушения безопасности.
- Изначально модель не включала угрозу Repudiation (отказ от авторства). Она была добавлена позже, чтобы охватить аспекты неотказуемости.
- В Microsoft модель STRIDE активно используется не только разработчиками, но и командами по безопасности (Red Teams) для тестирования на проникновение.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →