Безпечний SDLC
Безпечний SDLC з AI: моделювання загроз, безпечне кодування, тестування безпеки та deployment gates
📎ОФІЦІЙНА ДОКУМЕНТАЦІЯ
Безпечний SDLC з AI
Інтеграція безпеки в кожний етап Software Development Life Cycle (SDLC) особливо важлива при використанні AI-інструментів для генерації коду.
Етапи безпечного SDLC
1. Requirements (Вимоги)
Security Requirements
На етапі збору вимог визначте:
- Класифікація даних -- які дані обробляє система (PII, фінансові, медичні)
- Compliance -- які стандарти та регуляції застосовуються (GDPR, SOC 2, ISO 27001)
- Threat actors -- хто може атакувати систему та з якою мотивацією
- AI-специфічні вимоги -- обмеження на використання AI, вимоги до аудиту AI-коду
Abuse Cases
Додатково до use cases, визначте abuse cases:
- Як зловмисник може використати prompt injection
- Як AI-згенерований код може створити вразливості
- Як дані можуть витекти через AI-інструменти
2. Design (Проєктування)
Threat Modeling
Проводьте threat modeling на етапі проєктування:
- STRIDE -- аналіз загроз за категоріями (Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service, Elevation of Privilege)
- Attack trees -- моделювання шляхів атаки
- Data Flow Diagrams -- аналіз потоків даних
Включіть AI-інструменти в діаграми потоків даних. AI-агент, який має доступ до файлової системи та мережі, є потенційним вектором атаки.
Архітектура безпеки
- Визначте trust boundaries
- Плануйте шифрування даних at rest та in transit
- Проєктуйте систему автентифікації та авторизації
- Визначте мережеву сегментацію
3. Implementation (Реалізація)
Безпечне кодування з AI
При використанні AI для генерації коду:
| Правило | Опис |
|---|---|
| Не довіряйте AI-коду сліпо | Завжди переглядайте згенерований код на вразливості |
| Перевіряйте залежності | AI може додати застарілі або вразливі бібліотеки |
| Валідуйте SQL-запити | AI-код може бути вразливим до SQL injection |
| Перевіряйте обробку помилок | AI часто генерує недостатню обробку помилок |
| Контролюйте секрети | AI може вставити hardcoded credentials |
SAST (Static Application Security Testing)
Запускайте SAST на кожному commit:
- SonarQube -- комплексний аналіз якості та безпеки коду
- Semgrep -- легковагий та швидкий SAST
- CodeQL -- глибокий аналіз від GitHub
- Snyk Code -- AI-powered SAST
AI-згенерований код потребує більш ретельного SAST-аналізу, оскільки AI може генерувати складні вразливості, які важко виявити візуально.
4. Testing (Тестування)
Security Testing
- DAST -- тестування працюючого додатку (OWASP ZAP, Burp Suite)
- IAST -- гібридний підхід (Contrast Security)
- Penetration Testing -- ручне тестування безпеки
- Fuzzing -- автоматизований пошук вразливостей через невалідні дані
AI-специфічне тестування
- Тестування на prompt injection
- Перевірка обробки adversarial inputs
- Тестування rate limiting для AI-ендпоінтів
- Верифікація data leakage prevention
5. Deployment (Розгортання)
Security Gates
Перед деплоєм обов'язково:
- Всі SAST-знахідки critical/high -- виправлені
- DAST-сканування пройдено
- Dependency scan без критичних вразливостей
- Code review завершено (включно з AI-кодом)
- Penetration test пройдено (для major releases)
Secure Configuration
- Вимкніть debug-режим у production
- Налаштуйте HTTPS та HSTS
- Обмежте CORS
- Налаштуйте Content Security Policy
- Видаліть default credentials
6. Operations (Операції)
Моніторинг
- Відстежуйте аномальну активність AI-компонентів
- Моніторинг використання API-ключів
- Алерти на підозрілі патерни запитів
Patch Management
- Оновлюйте AI-залежності регулярно
- Моніторьте CVE для використовуваних бібліотек
- Автоматизуйте оновлення через Dependabot або Renovate
Інтеграція в CI/CD
# Приклад pipeline з security gates
stages:
- lint
- sast # SonarQube, Semgrep
- unit-tests
- build
- sca # Snyk, Dependabot
- dast # OWASP ZAP
- security-gate # Блокування при критичних знахідках
- deploy
Див. також
Чеклісти та інструменти для перевірки AI-коду
SAST, DAST та SCA для AI-залежностей
STRIDE та AI-специфічні поверхні атак