Files
progcode/editorial/reviews/2023-01-draft.md
T
huncode 31ed7053e7
Build and deploy / deploy (push) Successful in 16s
revise January 2023 threat model articles
2026-07-31 14:24:50 +03:00

32 lines
5.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# П59 · 2023-01 · Модель угроз — три прохода саморевью
## Рамка пакета
- Slug: `editorial-2023-01-practice-threat-model`, `editorial-2023-01-mechanism-threat-model`, `editorial-2023-01-field-threat-model`.
- Голос: М6, начало 2023 года. Прагматичный системный практик говорит коротко: один учебный поток данных, asset, trust boundary, abuse, control, evidence и rollback.
- Граница: это не security review, pentest, аттестация, аудит соответствия, browser/API run, криптографическая реализация, сканирование, trace или измерение. Fixture создаёт только детерминированные объекты в памяти; все actor/asset/boundary/abuse вручную заданы строками.
- Sidecar содержит ровно пять новых файлов: этот review, один upgrade-скрипт и три локальных SVG. Registry, README, `articles.json`, очередь, документация, Git, чужие файлы и прежние месяцы не менялись.
## Проход 1 — факты и техника
- Источники перепроверены 31.07.2026 по HTTP 200 и их статусам/датам, исторически они были доступны к январю 2023: [NIST SP 800-154 Initial Public Draft, 14.03.2016](https://csrc.nist.gov/files/pubs/sp/800/154/ipd/docs/sp800_154_draft.pdf), [NIST SP 800-218 SSDF v1.1 Final, 03.02.2022](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-218.pdf) и [NIST SP 800-53 Rev. 5, 2020](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-53r5.pdf). SP 800-154 везде назван именно initial public draft, не final.
- `planTeachingThreatModel()` принимает только явные `actor`, `asset`, `boundary`, `abuse` и один известный `control`; отсутствие asset или boundary и неизвестный control детерминированно отклоняются. Valid branch связывает один control с одним evidence. `rollbackTeachingThreatModel()` восстанавливает лишь snapshot учебной записи и возвращает `assessment: not-performed`.
- `runThreatModelFixture()` содержит 13 assertions только о локальной модели: обязательные поля, boundary, связь threat/control/evidence, три отрицательные ветки, отсутствие system assessment/environment observation и предел rollback. Нет assertions о безопасности endpoint, подписи, сети, пользователях или продуктивной системе.
## Проход 2 — голос, полнота и объём
- В первых двух абзацах всех трёх статей названы проблема и цена: чек-листовый control без asset/boundary создаёт непроверяемое изменение и опасный откат. Маршрут везде построен как «симптом → причина → проверка → действие».
- У каждой статьи есть доступная таблица, исполнимый code/example, упорядоченный маршрут, фигура с содержательными alt/caption, ограничения, rollback и следующий шаг. Слово threat model не подменяет доказательство: рядом названы asset, злоупотребление, control и evidence.
- Внутренний revision builder считает основной текст без списка источников и удерживает диапазон 5 000–15 000 знаков. Фактический объём: 7 269 / 8 048 / 7 701 знак; зрелость соответствует 2023 году: системная точность без выдуманного опыта и метрик.
## Проход 3 — визуал, безопасность и выпуск
- SVG разделяют роли: DFD-поток, контракт threat/control/evidence и маршрут диагностики/rollback. В них нет `script`, `foreignObject`, внешних URL, `data:image`, пользовательского ввода или интерактивного поведения. Подписи явно отделяют схему от реальной сети, протокола, incident report и deployment.
- До интеграции выполнены: `node --check web/scripts/upgrade-2023-01.mjs` — PASS; `node web/scripts/upgrade-2023-01.mjs --verify-fixture` — PASS 13/13; `cd web && npm run audit:draft -- scripts/upgrade-2023-01.mjs` — PASS для всех трёх slug; import-safe export без `date`/`author` — PASS; `xmllint` — PASS; SVG safety scan — PASS; Sharp-review всех SVG на 375 px — PASS.
## Интеграционная приёмка
- Ревизии добавлены в `web/data/editorial-revisions.mjs` поверх трёх исходных slug. `web/data/articles.json`, даты и авторы не изменялись; в registry 172 уникальные ревизии без дубликатов.
- Строгий аудит `npm run audit:articles -- editorial-2023-01-practice-threat-model editorial-2023-01-mechanism-threat-model editorial-2023-01-field-threat-model` — PASS: у каждой статьи 1 figure, 1 table и 1 code example.
- Production-сборка `cd web && npm run build` — PASS: 374 статические страницы. README обновлён с 178/358 до 181/358 принятых материалов; осталось 177.