Написать
← Безопасный вайбкодинг
01

Модель угроз маленького проекта

Урок 1 из 7 · Урок · ~15 минут
Зачем этот урок

Защищать всё одинаково нельзя: не хватит сил. Урок учит сначала понять, что у тебя можно украсть и кто этого хочет, и только потом выбирать защиту.

Защита начинается с вопроса не «как закрыться», а «что у меня есть, что с этим могут сделать и что случится потом». Это и есть модель угроз.

Что защищаем

Сквозной пример курса — кофейня «Зерно» в Алматы: сайт-визитка, форма заявки с отправкой в Telegram, Instagram, почта владелицы. Кофейня учебная, оценки в примерах выдуманные. Своё подставишь на практике.

Актив

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

ПримерАктивы «Зерна»: почта владелицы, Instagram, сайт на Vercel, домен, токен бота заявок, ноутбук.

Угроза

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

ПримерУгроза для Instagram «Зерна»: владелица ввела пароль на поддельной странице входа.

Атакующий

Тот, кто пытается получить актив: бот, который перебирает чужие пароли, мошенник, обиженный бывший подрядчик, а иногда просто собственная ошибка. Для маленьких проектов обычно опасны массовые автоматические атаки, а не охота лично за тобой.

ПримерБот, который подбирает пароли к тысячам аккаунтов подряд, не знает, что «Зерно» — маленькая кофейня.

Модель угроз

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

ПримерТаблица из пяти строк на одной странице.

Как нас взламывают

Фишинг

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

ПримерСообщение «ваш Instagram будет заблокирован, подтвердите вход» со ссылкой на поддельную страницу.

Повторный пароль

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

ПримерПароль от форума и от почты совпадал. Форум утёк — почту открыли за минуты.

Кража сессии

Когда у тебя забирают не пароль, а «пропуск», который сайт выдал после входа. С ним сайт считает человека уже вошедшим, и даже двухфакторка не спрашивается. Бывает через вредоносную программу на компьютере.

ПримерУстановил «бесплатный плагин» из непроверенного источника, и программа вытащила из браузера сохранённые входы.

Социальная инженерия

Обман человека, а не программы: звонок «из банка», просьба «срочно скинуть код», письмо «от директора». Нужно запомнить, что защита не помогает, если человек сам отдаёт коды.

ПримерЗвонок: «Это поддержка, назовите код из СМС». Код называть нельзя никому.

Почта — главное звено

К почте привязано восстановление всего остального: Instagram, GitHub, Vercel, регистратор домена. Кто получил почту, получает ссылки «сбросить пароль» ко всем остальным аккаунтам. Поэтому первой защищают почту.

Восстановление доступа

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

ПримерДля Instagram указана старая почта подрядчика. Он может сбросить пароль, когда захочет.

Считаем риск

Риск

Оценка того, насколько стоит бояться. Формула словами: вероятность × ущерб. Каждое число по шкале от 1 до 3. Нужна, чтобы ранжировать, а не спорить на глаз.

ПримерПочта «Зерна»: вероятность 3, ущерб 3 — риск 9. Ноутбук: вероятность 1, ущерб 3 — риск 3.

Разбор «Зерна»: почта — 3 × 3 = 9; Instagram — 3 × 2 = 6; сайт на Vercel — 2 × 3 = 6; токен бота — 2 × 2 = 4; ноутбук — 1 × 3 = 3. Порядок защиты: почта, затем Instagram и сайт, затем токен, затем ноутбук. Шкалы личные, важна не точность, а порядок.

  1. Выпиши все активы проекта, по одной строке
  2. Рядом укажи, как каждый актив могут потерять
  3. Оцени вероятность и ущерб от 1 до 3, перемножь
  4. Отсортируй по убыванию риска
  5. Возьми первые три строки и придумай по одному действию на каждую
  • Защищают то, что легче, а не то, что важнее
  • Забывают про почту и ставят сложный пароль только на сайт
  • Думают, что их проект слишком мал, чтобы им интересовались, а боты не выбирают
  • Считают риск один раз и не пересматривают, когда проект вырос
  • Оценивают всё как «высокий риск» и не знают, с чего начать
  • Выписаны активы проекта вместе с почтой и доменом
  • Для каждого актива названа главная угроза
  • Риск посчитан как вероятность × ущерб, список отсортирован
  • На три первых строки есть действия со сроком

Сначала почта и домен. К ним привязано восстановление всех остальных входов.

Таблица рисков: сверху то, с чего начинать защиту
Таблица рисков: сверху то, с чего начинать защиту
Проверь себя

Риск считается как вероятность × ущерб по шкале 1–3. Почта: вероятность 3, ущерб 3. Instagram: вероятность 3, ущерб 2. Сайт: вероятность 2, ущерб 3. Что защищать первым?