Бот працює, портал відкривається, замовлення приходять. Питання «а чи безпечно» не має видимого приводу — рівно до того дня, коли він з'явиться. Це і робить тему незручною: перевірка виглядає витратою, поки не стане очевидно, що вона була дешевою.
Розрахунок ручної перевірки
Мінімальний чекліст, за яким варто пройтись:
- секрети й токени в коді та в історії репозиторію;
- підстановка команд і SQL там, де приймається чужий текст;
- хто взагалі має право на адмінські дії й чим це перевіряється;
- вебхуки: чи можна їх викликати ззовні від чужого імені;
- підстановка розмітки в місцях, де показується введене користувачем;
- обмеження частоти запитів;
- персональні дані, які тихо потрапляють у журнали;
- права доступу до файлів і сховищ;
- що саме бачить користувач у тексті помилки.
Помірні припущення: 15 пунктів, 20–40 хвилин на пункт із перевіркою в коді, тобто 6–10 годин на одну систему. Якщо систем три — множте.
І це за умови, що перевіряючий знає, що шукати. Пункт, про який не подумали, коштує нуль хвилин і саме тому лишається відкритим.
Асиметрія, через яку тема взагалі існує
Захист має бути правильним у всіх точках одночасно. Атаці достатньо однієї.
Тому арифметика тут не така, як в інших розрахунках: ви порівнюєте не «години проти годин», а години перевірки проти події, у якої немає верхньої межі. Токен, залишений у репозиторії, не викликає збою — він просто дає комусь ваші можливості, і дізнаєтесь ви про це не від системи.
Що дає регулярна перевірка
| Разово, коли згадали | За чеклистом | |
|---|---|---|
| Що перевіряється | що згадали | весь список, щоразу однаково |
| Нові зміни в коді | не перевіряються | перевіряються перед виходом у роботу |
| Результат | «начебто нормально» | звіт із пріоритетами |
| Що робити далі | незрозуміло | список від найважливішого |
Звіт має сенс лише тоді, коли з нього видно порядок дій: що закрити сьогодні, що можна за тиждень, а що прийнятний ризик. Список із тридцяти рівнозначних зауважень не закривають ніколи.
Коли перевіряти
- перед першим запуском — поки користувачів ще немає;
- після великих змін — нові можливості приносять нові двері;
- коли систему робив хтось інший — і ви не знаєте, що там усередині;
- коли з'явились гроші або персональні дані — з цього моменту ставки інші.
Два формати
Аудит — перевірка й звіт із пріоритетами. Аудит із виправленнями — те саме, але знайдене закриваємо ми, а ви отримуєте систему, а не список претензій до неї.
Обговорити в Telegram або залишити заявку — почнемо з того, що у вас уже працює.
