AI Wiki

Валідація AI-коду

SAST/DAST інструменти, SCA для AI-залежностей, code signing та захист supply chain для AI-розробки

SASTDASTSCAcode-signingsupply-chainвалідаціябезпека

📎ОФІЦІЙНА ДОКУМЕНТАЦІЯ

Валідація AI-згенерованого коду

Автоматизована валідація AI-коду через SAST, DAST, SCA та supply chain security -- критичний елемент безпечної AI-розробки.


SAST (Static Application Security Testing)

SAST аналізує вихідний код без його виконання, виявляючи вразливості на ранніх етапах.

Інструменти SAST

ІнструментМовиЦінаОсобливості
SonarQube30+Community (free) / EnterpriseКомплексний аналіз
Semgrep20+OSS (free) / TeamШвидкий, custom rules
CodeQL10+Free для OSSГлибокий семантичний аналіз
Snyk Code15+Free tier / TeamAI-powered, real-time
Checkmarx25+EnterpriseПовний SDLC coverage

Налаштування SAST для AI-коду

Рекомендовані правила для AI-згенерованого коду:

yaml
# Приклад конфігурації Semgrep rules: - id: hardcoded-secret pattern: | $KEY = "..." message: "Потенційний hardcoded secret" severity: ERROR - id: sql-injection pattern: | $QUERY = f"SELECT ... {$INPUT} ..." message: "Потенційна SQL injection" severity: ERROR - id: unsafe-deserialization pattern: | yaml.load($DATA) message: "Небезпечна десеріалізація -- використовуйте yaml.safe_load()" severity: WARNING
💡Порада

Налаштуйте SAST для запуску на кожному PR. AI-код потребує суворіших правил, ніж ручний код, оскільки AI не має розуміння контексту безпеки.


DAST (Dynamic Application Security Testing)

DAST тестує працюючий додаток, симулюючи атаки.

Інструменти DAST

ІнструментТипЦіна
OWASP ZAPProxy-basedFree (OSS)
Burp SuiteProxy-basedCommunity (free) / Professional ($449/рік)
NucleiTemplate-basedFree (OSS)
StackHawkCI/CD integratedFree tier / Team

DAST для AI-компонентів

Додаткові тести для AI-ендпоінтів:

  • Prompt injection -- спроби маніпуляції через вхідні дані
  • Rate limiting -- перевірка обмежень на запити
  • Input validation -- тестування граничних значень
  • Output sanitization -- перевірка виходу на XSS/injection
  • Authentication bypass -- спроби обійти автентифікацію

SCA (Software Composition Analysis)

SCA сканує залежності проєкту на відомі вразливості.

Чому SCA критично для AI-коду

AI часто додає залежності, які можуть бути:

  • Застарілими з відомими CVE
  • Малопопулярними та непідтримуваними
  • Шкідливими (typosquatting)
  • Несумісними за ліцензією

Інструменти SCA

ІнструментEcosystemЦіна
Dependabotnpm, pip, Maven та ін.Free (GitHub)
Snyk10+ ecosystemsFree tier / Team
Renovate40+ ecosystemsFree (OSS)
FOSSA20+ ecosystemsFree tier / Enterprise
Socketnpm, PyPIFree tier / Team

SBOM (Software Bill of Materials)

Генеруйте SBOM для кожного релізу:

bash
# Генерація SBOM у форматі CycloneDX npx @cyclonedx/cyclonedx-npm --output-file sbom.json # Або у форматі SPDX syft . -o spdx-json > sbom.spdx.json
ℹ️Інформація

SBOM стає вимогою для багатьох compliance-стандартів (Executive Order 14028, NIS2). Генеруйте його автоматично в CI/CD pipeline.


Code Signing

Підписання коду

Підписуйте артефакти для верифікації цілісності:

  1. Git commit signing -- GPG або SSH підписи для commits
  2. Container signing -- Cosign для Docker images
  3. Binary signing -- Sigstore для бінарних файлів
  4. SLSA provenance -- атестація походження артефактів

Налаштування Git Commit Signing

bash
# Налаштування GPG-підпису git config --global commit.gpgsign true git config --global user.signingkey YOUR_KEY_ID # Або SSH-підпису git config --global gpg.format ssh git config --global user.signingkey ~/.ssh/id_ed25519.pub

Supply Chain Security

Захист від supply chain атак

Private Registry

Для критичних проєктів використовуйте приватні реєстри:

  • Artifactory -- universal artifact manager
  • Azure Artifacts -- для Azure DevOps
  • GitHub Packages -- для GitHub
  • Verdaccio -- self-hosted npm registry

CI/CD інтеграція

yaml
# Приклад GitHub Actions з security checks name: Security Pipeline on: [pull_request] jobs: sast: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: returntocorp/semgrep-action@v1 sca: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: snyk/actions/node@master env: SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }} secrets-scan: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: gitleaks/gitleaks-action@v2

Див. також

Code Review AI-коду

Ручний review та чеклісти

Управління вразливостями

Сканування, патчі та Dependabot

Передача коду

Безпечна передача артефактів