← cd ~
ogurexxx@root:~$ tree --threat-model
Живая архитектура
Модель угроз этого сайта: из каких частей он состоит, где проходят границы доверия и что случится при взломе каждой из них. Цель не в том, чтобы взлом был невозможен, а в том, чтобы он ничего не давал.
Край
Сюда приходит весь интернет.
Обратный прокси
● работает · 2026-10-31
TLS, заголовки, защита от перебора
При взломе: Перехват трафика сайта. Закрытые ключи сертификатов только здесь.
Блокировщик атак
● работает · 2026-10-31
Банит адреса по поведению
При взломе: Атаки перестают блокироваться, но сайт продолжает работать.
Приложение
Минимум прав, запись только в папку данных.
Сайт
● работает · 2026-10-31
PHP в контейнере, строгая CSP
При взломе: Подмена страниц. Контроль целостности заметит изменение файлов и пришлёт тревогу.
Данные
● сигнала нет
Контент и сводки, без адресов атакующих
При взломе: Утечка содержимого сайта. Пароли хранятся только как хеши.
Изолированные ловушки
Считаются уже взломанными. Исходящие соединения запрещены.
SSH-ловушка
● работает · 2026-10-31
Записывает поведение ботов
При взломе: Ничего: настоящей системы там нет, а выйти из контейнера в сеть нельзя.
Смоляная яма и приманки
● работает · 2026-10-31
Тратят время ботов
При взломе: Ложные счётчики на сайте. Службы работают без прав и с лимитом памяти.
Надзор
Работают отдельно от сайта. Сайт их только читает.
Внешнее сканирование
● работает · 2026-10-31
Ищет уязвимости снаружи
При взломе: Ложная картина на /pentest. На сам сайт не влияет.
Проверка образа
● работает · 2026-10-31
Уязвимости в компонентах
При взломе: Пропущенные обновления.
Пересборка
● работает · 2026-10-28
Еженедельно собирает образ с откатом
При взломе: Подменённый образ — самый опасный случай, поэтому сборка не зависит от сайта.
Контроль целостности
● работает · 2026-10-31
Сверяет файлы с эталоном
При взломе: Эталон недоступен контейнеру сайта, поэтому взлом сайта его не подделает.
Потоки данных
- Посетитель → край → сайт: только чтение страниц и формы с лимитами.
- Ловушки → журналы → сводка → сайт: сайт получает очищенные числа, текст атакующих проходит проверку.
- Надзор → сайт: только в одну сторону. Сайт не может управлять проверками.