AI Wiki

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

Air-gapped передача коду, artifact registries, GPG signing та безпечні CI/CD pipelines для AI-розробки

code-transferair-gappedGPGsigningCI/CDartifact-registry

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

Безпечна передача коду

В архітектурі Zero Trust передача коду між середовищами -- критична операція, яка потребує верифікації цілісності та автентичності на кожному етапі.


Air-Gapped Code Transfer

Сценарії air-gapped передачі

Air-gapped (ізольовані від мережі) середовища використовуються для:

  • Розробка для оборонного сектору
  • Критична інфраструктура (енергетика, транспорт)
  • Обробка класифікованої інформації
  • Середовища з повним контролем над кодом

Процес передачі

Безпека фізичного носія

ВимогаРеалізація
ШифруванняVeraCrypt або BitLocker для USB
Write-onceВикористання DVD-R або write-protected USB
Chain of CustodyДокументування кожної передачі
ScanningАнтивірус у проміжній зоні
DisposalБезпечне знищення після використання
⚠️Увага

Фізичні носії для air-gapped передачі повинні бути спеціально виділені та контрольовані. Забороняється використовувати особисті USB-накопичувачі.


Artifact Registries

Приватні реєстри

ТипІнструментВикористання
Docker imagesHarbor, Artifactory, Azure ACRContainer images
npm packagesVerdaccio, Artifactory, GitHub PackagesNode.js залежності
Python packagesPyPI Server, ArtifactoryPython залежності
MavenNexus, ArtifactoryJava залежності
UniversalArtifactory, Azure ArtifactsБудь-які артефакти

Налаштування приватного npm registry

bash
# Verdaccio (self-hosted npm registry) # .npmrc registry=https://npm.internal.company.com/ //npm.internal.company.com/:_authToken=${NPM_TOKEN} # Дозвіл на upstream лише для approved packages # verdaccio config uplinks: npmjs: url: https://registry.npmjs.org/ packages: '@company/*': access: $authenticated publish: $authenticated '**': access: $authenticated proxy: npmjs # Лише через proxy з filtering

Vulnerability Scanning для реєстрів

  • Сканування кожного нового артефакту на вразливості
  • Блокування артефактів з critical/high CVE
  • Автоматичне видалення deprecated або вразливих версій

GPG Signing

Підписання артефактів

bash
# Генерація GPG-ключа для CI/CD gpg --full-generate-key # Підписання артефакту gpg --armor --detach-sign artifact.tar.gz # Верифікація підпису gpg --verify artifact.tar.gz.asc artifact.tar.gz

Git Commit Signing

bash
# Налаштування підпису commits git config commit.gpgsign true git config user.signingkey YOUR_GPG_KEY_ID # Верифікація підписаного commit git verify-commit HEAD

Container Image Signing

bash
# Cosign для підписання Docker images cosign sign --key cosign.key registry.com/image:tag # Верифікація cosign verify --key cosign.pub registry.com/image:tag

Безпечні CI/CD Pipelines

Pipeline Security

КонтрольРеалізація
Pipeline as CodeЗберігати pipeline у Git, version control
Secrets ManagementVault, Azure Key Vault, GitHub Secrets
Runner IsolationEphemeral runners, no shared state
Artifact SigningGPG або Sigstore для всіх артефактів
SLSA ComplianceAttestation провenance
Audit TrailЛогування всіх pipeline execution

SLSA Framework

Supply-chain Levels for Software Artifacts (SLSA) визначає рівні захисту:

РівеньВимоги
SLSA 1Автоматизований build process
SLSA 2Version controlled build service, provenance
SLSA 3Hardened build platform, non-falsifiable provenance
SLSA 4Hermetic, reproducible builds
💡Порада

Починайте з SLSA Level 1 та поступово підвищуйте. Більшість організацій можуть досягти SLSA Level 2-3 за допомогою GitHub Actions або GitLab CI.


Див. також

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

SAST, SCA та code signing

Мережеві обмеження

Air-gapped мережі та VPN

Тестування та деплой

Deployment pipelines та approval gates