Залежності, логування та процес
Безпека - це не одноразова перевірка. Ці пункти стосуються коду, який ти не писав (твоїх залежностей), і звичок, які тримають застосунок у безпеці після запуску.
Чек-лист
- Закріплюй і скануй залежності. Коміть lockfile і запускай сканер вразливостей (та аудит своєї платформи) у CI. Оновлюй пакети з відомими вразливостями.
- Стеж за галюцинованими пакетами. Інструменти ШІ іноді імпортують пакет, якого не існує; зловмисники реєструють такі назви зі шкідливим ПЗ ("slopsquatting"). Перед встановленням переконайся, що кожна залежність є справжньою і потрібною.
- Не запускай недовірений код або кроки збірки наосліп. Завантажений репозиторій або згенерований скрипт postinstall може виконати довільний код. Перевір його перед запуском.
- Логуй події безпеки, а не секрети. Фіксуй входи, невдалі спроби, спрацювання обмежень частоти та дії адміністратора для аудиту. Ніколи не логуй паролі, токени, ключі чи повні номери карток.
- Обробляй помилки без витоку. Перехоплюй винятки, повертай загальне повідомлення, а трасування стеку та запити лишай лише в серверних логах.
- Проводь статичний аналіз у CI. Інструменти на кшталт Semgrep ловлять помилки ін'єкцій та авторизації до злиття.
- Тестуй як зловмисник. Твій набір тестів має включати некоректний ввід і випадки неавторизованого доступу, а не лише основний сценарій. Після того як набір пройшов, запусти чорнокутний сканер (наприклад, OWASP ZAP) на розгорнутій URL.
- Отримай незалежний огляд. Самоаудит пропускає речі, особливо сліпі плями самого автора. Перед ширшим запуском замов зовнішній тест на проникнення і розглянь відповідність стандарту на кшталт OWASP ASVS.
- Для функцій ШІ тестуй шар моделі. Якщо твій застосунок вставляє недовірений вміст у промпт, проведи red-team на предмет ін'єкцій промптів і витоку даних між користувачами або тенантами. Справжній захист тримай у коді (обмежуй кожен інструмент і кожен запит поточним користувачем), а не в інструкціях промпту.
- Май план повернення. Зберігай резервні копії, з яких ти справді відновлювався, і план ротації секретів та відкликання сесій на випадок витоку.
Як тестувати
- Запусти аудит залежностей і сканування секретів у CI і прочитай результат.
- Направ чорнокутний сканер на staging.
- Попроси когось, хто не писав код, спробувати його зламати.