Метод декомпозиции каналов: проверяемая полнота
Зачем этот документ. Карта цели защиты держится на перечне каналов нарушения, и весь её авторитет упирается в один вопрос: «а все ли каналы вы рассмотрели?» Пока перечень строится воображением («какие бывают атаки?»), вопрос неотвечаем, а тревога законна. Этот документ заменяет открытое перечисление закрытыми конструкциями: полнота перечня становится свойством построения, проверяемым по чек-листу, а неустранимая неполнота самой модели — застрахованной структурно, а не замолчанной.
1. Честная рамка: какой полноты не бывает
Абсолютной полноты перечня угроз не существует. Противник креативен, система меняется, модель всегда беднее мира; любая методика, обещающая «гарантированно все каналы», лжёт. Из этого не следует капитуляция — из этого следует точная постановка: полнота существует только относительно модели. Тогда задача распадается на две, решаемые разными средствами:
- Задача 1. Сделать полноту внутри модели механически проверяемой — чтобы пропуск был находимым дефектом конструкции, а не упущением воображения.
- Задача 2. Структурно застраховаться от неполноты самой модели — чтобы неизвестный канал был обнаруживаемым, а модель — самокорректирующейся.
Для сравнения: деревья атак (Шнайер, 1999) — полезный язык записи, но ветви в них порождаются воображением аналитика, поэтому полнота дерева непроверяема. Метод ниже совместим с деревьями как нотацией, но строит ветвление иначе.
2. Задача 1: четыре закрытые конструкции
2.1. Разбиение через отрицание инварианта
Цель защиты формулируется как инвариант — конечный предикат с объявленным уровнем (SEC-FOUND-0001): «смысл D извлекают только субъекты из множества S и только через интерфейсы I». Нарушение цели — логическое отрицание предиката, а отрицание конечной конъюнкции полно по построению:
извлекает не-член S · член S извлекает вне I · D существует в представлении, не покрытом инвариантом.
Тот же приём порождает исчерпывающие разбиения субъектов. Трихотомия «не имеет легального доступа / администрирует, не имея права читать / имеет право читать» исчерпывает всех людей по их отношению к авторизации — четвёртой категории не существует логически. Это разбиение не кажется полным — оно доказуемо полно, и в этом отличие от списка «хакеры, инсайдеры, подрядчики…», который всегда можно продолжить.
Требование к разбиению: классы взаимоисключающие и совместно исчерпывающие; основание деления — одно на каждом шаге. Нарушение этого (деление одновременно по мотиву и по доступу) — типовой дефект, возвращающий перечень в открытое состояние.
2.2. Базис на законе сохранения
Для конфиденциальности существует жёсткий факт: извлечь смысл можно только из существующего представления. Представления конечны и инвентаризируемы: боевая база, реплики, бэкапы, выгрузки, отчёты и агрегаты, кэши, экраны, бумага, память людей (физлицо — носитель защищаемой информации и по ГОСТ Р 50922). Тогда:
канал = представление × путь извлечения из него,
и невозможная творческая задача «вообразить все атаки» сводится к проверяемой эмпирической: полна ли инвентаризация представлений и путей. Инвентаризацию верифицируют инструментально (discovery данных, анализ конфигураций, схемы потоков), её дефект — конкретный находимый артефакт («забытая реплика»), а не философская тревога. Уровень инварианта управляет охватом: инвариант на уровне смысла включает в базис представления, где форма не копируется (отчёты, агрегаты, головы сотрудников), — см. каналы 3.3–3.4 в SEC-TASK-0001.
Аналогичные законы сохранения существуют для других целей: нарушить целостность можно только через существующий путь записи; нарушить доступность — только через элемент, от которого функция фактически зависит (граф зависимостей как базис).
2.3. Фиксированная таксономия, применяемая механически
Инженерия опасных производств решила задачу полноты до ИБ. HAZOP (МЭК 61882): конечный список управляющих слов (нет / больше / меньше / наоборот / иначе…) прикладывается к каждому элементу схемы без исключений. Анализ деревьев отказов: верхнее событие раскладывается через логические вентили, и полнота входов каждого вентиля — предмет явной проверки. В ИБ тот же приём — STRIDE-per-element: шесть классов нарушений × каждый узел и поток диаграммы.
Полнота здесь возникает из произведения «конечная модель × конечная таксономия», и пропуск становится адресуемым: либо элемента нет в модели (дефект инвентаризации, ловится 2.2), либо не заполнена клетка таблицы (дефект дисциплины, ловится ревизией). Творчество вытеснено в правильное место — в построение модели, где оно проверяемо.
2.4. Анализ структуры управления (STPA-Sec)
Самая сильная конструкция — и самая близкая философии Секьюритики. STAMP/STPA (Левесон, MIT; адаптация к безопасности — Young, Leveson, STPA-Sec) вообще не перечисляет угрозы. Строится структура управления значимой деятельностью: контроллеры, управляемые процессы, управляющие воздействия, обратные связи. Множество управляющих воздействий конечно. К каждому механически прикладываются четыре типа опасного проявления:
воздействие не выдано, когда требовалось · выдано опасное/неверное · выдано не вовремя или в неверном порядке · прекращено преждевременно / длится слишком долго.
Каналы нарушения выводятся из потери управления, а не угадываются. Для методики, определяющей ИБ как сохранение управляемости, это не заимствованный инструмент, а родной: «принцип» Секьюритики (конститутивный инвариант) и security constraint в STPA-Sec — одно и то же понятие, пришедшее из двух независимых традиций. STPA-Sec особенно силён там, где слаб базис представлений: для целостности и доступности процессов, для OT/АСУ ТП, для организационных контуров.
Выбор конструкции по типу цели: конфиденциальность — отрицание инварианта (2.1) + базис представлений (2.2); целостность/доступность процесса — структура управления (2.4) + граф зависимостей; везде — таксономия (2.3) как дисциплинирующая решётка поверх модели. Конструкции дублируют друг друга частично — это достоинство: расхождение их результатов указывает на дефект одной из моделей.
3. Задача 2: страховка от неполноты модели
3.1. Канало-независимое обнаружение
Превентивные меры полны лишь относительно модели; обнаружение последствий от модели не зависит. Класс мер, реагирующих на состоявшееся нарушение инварианта, каким бы путём оно ни произошло: канарейки (записи-маркеры, сигнализирующие при обращении извне), watermarking выгрузок, мониторинг внешних площадок, поведенческие аномалии на уровне события. Поэтому в каждой карте цели обязательна строка «остаточный канал: неизвестный», закрываемая только мерами этого класса, — встроенное в конструкцию признание неполноты. Карта без этой строки методике не соответствует.
3.2. Фальсифицируемость модели каналов
Каждый инцидент и каждая находка красной команды классифицируется двухуровнево:
- «канал был в модели — отказала мера» → операционный дефект, чинится мера;
- «канала в модели не было» → дефект модели, обязательный пересмотр карты с повышением версии и публичной записью в истории.
Модель не претендует на вечную полноту — она сходится к полноте под давлением опыта, и это единственная честная гарантия, которая существует. Срабатывание контура обнаружения (3.1) при «всех закрытых каналах» упреждающего контура — штатная команда на пересмотр, а не парадокс (двухконтурная проверка — см. карту цели, раздел 5).
4. Процедура: шесть шагов
- Инвариант. Цель защиты сформулирована как конечный предикат; объявлен уровень (носитель/форма/смысл).
- Верхнее разбиение построено отрицанием инварианта и/или логической дихотомией; полнота доказуема, основание деления едино.
- Базис построен на законе сохранения: инвентаризация представлений / зависимостей / управляющих воздействий, верифицированная инструментально.
- Таксономия применена к каждому элементу базиса; матрица «элемент × класс нарушения» заполнена без пустых необъяснённых клеток.
- Остаточный канал объявлен и закрыт канало-независимым обнаружением с оценкой чувствительности.
- Триггер пересмотра определён: классификация инцидентов и находок по 3.2, версионирование карты.
Шесть условий заменяют тревогу «а всё ли мы учли» проверкой конструкции. Ответ на вопрос критика становится предъявляемым: «полнота верхнего уровня — по построению, вот разбиение; полнота базиса — вот инвентаризация и метод её верификации; неполнота модели застрахована — вот контур обнаружения и правило пересмотра».
5. Типовые дефекты применения
- Смешанное основание деления («внешние, инсайдеры, фишинг») — классы пересекаются, полнота недоказуема.
- Категория «прочее» как мусорный ящик — симптом того, что разбиение не построено, а набросано; «прочее» допустимо только как остаточный канал из 3.1, с мерами обнаружения.
- Таксономия поверх неверифицированной модели — аккуратно заполненная матрица на неполной инвентаризации; решётка 2.3 без фундамента 2.2.
- Инвентаризация как разовый проект — базис устаревает быстрее годового цикла; инвентаризация — процесс с владельцем.
- Уровень инварианта не объявлен — каналы смысла молча выпадают (диагноз версии 1.0 карты SEC-TASK-0001).
- Остаточный канал без обслуживания — канарейки развёрнуты и забыты: страховка, по которой не платят взносы.
6. Что опровергло бы метод
- Систематические находки красных команд и инцидентов класса «канала в модели не было» в картах, построенных по процедуре, при заполненных шести условиях — признак того, что закрытые конструкции не покрывают реальный порождающий механизм атак.
- Демонстрация, что трудозатраты процедуры систематически превышают выигрыш по сравнению с экспертным мозговым штурмом той же длительности (сравнительные данные по моделированию угроз скудны; их появление — повод для пересмотра).
- Вырождение на практике: если шесть шагов в реальных организациях выполняются формально (матрицы заполнены, инвентаризация фиктивна), метод воспроизводит комплаенс — болезнь, против которой создавался.
7. Источники для разборов в Библиотеке
Полный список с выходными данными — в разделе «Источники» в конце документа. Разборы этих работ стоят в очереди Библиотеки: на русском языке их систематических разборов не существует.
8. История пересмотров
| Версия | Дата | Изменения |
|---|---|---|
| 1.0 | 2026-06-10 | Первая публикация: две задачи полноты, четыре закрытые конструкции, два механизма страховки, процедура шести шагов, типовые дефекты. Цикл пересмотра 24 месяца; драйвер — опыт применения в картах целей и накопление сравнительных данных по моделированию угроз. |
Источники
- Leveson N. Engineering a Safer World: Systems Thinking Applied to Safety. MIT Press, 2011
- STPA Handbook. MIT Partnership for Systems Approaches to Safety and Security
- Young W., Leveson N. An Integrated Approach to Safety and Security Based on Systems Theory. Communications of the ACM, 2014
- МЭК 61882. Исследования опасности и работоспособности (HAZOP)
- Shostack A. Threat Modeling: Designing for Security. Wiley, 2014
- Schneier B. Attack Trees. Dr. Dobb's Journal, 1999
- NUREG-0492. Fault Tree Handbook. U.S. NRC, 1981