Практические разборы l2_integration

Публичный AI-сайт без утечек: build → scan → deploy

Практический выпуск CodeVibers: пишем artifact scanner, специально блокируем небезопасную frontend-сборку, исправляем секрет, internal URL, email и source map, затем подтверждаем PASS тестами.

Видео по теме

Открыть видео на YouTube

Практический выпуск CodeVibers: пишем artifact scanner, специально блокируем небезопасную frontend-сборку, исправляем секрет, internal URL, email и source map, затем подтверждаем PASS тестами.

Таймкоды

  • 00:00 Что строим
  • 00:35 Риск в production artifact
  • 00:55 Пишем scanner и policy
  • 01:45 Fail, fix и повторный запуск
  • 02:35 Отчет и deploy rule

Shorts

Источники выпуска

  • {'title': 'GitHub Push protection', 'url': 'https://docs.github.com/en/code-security/concepts/secret-security/push-protection'}
  • {'title': 'GitHub custom patterns', 'url': 'https://docs.github.com/en/code-security/secret-scanning/using-advanced-secret-scanning-and-push-protection-features/custom-patterns/defining-custom-patterns-for-secret-scanning'}

Исходники проекта из выпуска

Это тот же воспроизводимый проект, который собирается и тестируется в видео.

  • policy.json — Topic-specific release policy.
  • release_gate.py — Artifact scanner and redacted reports.
  • build_site.py — Reproducible bad and fixed frontend bundles.
  • run_demo.py — Fail/fix/pass end-to-end demo.
  • test_release_gate.py — Regression checks for every blocking rule.

Команды запуска и проверки

python3 run_demo.py
python3 -m unittest -v test_release_gate.py

Скачать проект ZIP

Практический материал из выпуска

Артефакт: Рабочий artifact scanner для production frontend bundle с fail/fix/pass демонстрацией.

Что должно получиться: Python scanner, policy, bad/fixed builders, regression tests и redacted HTML report.

Видимый результат: В терминале bad build блокируется, fixed build проходит; в браузере открывается redacted audit report.

Вход для демо: Синтетический AI lead-score frontend с фиктивным token, email, internal URL и source map.

Выход демо: reports/bad.json, reports/fixed.json, reports/fixed.html и reports/summary.json.

Проверка результата: Bad fixture exits 2 with findings; fixed fixture exits 0; five regression tests pass; report never exposes complete values.

Как собрать

  1. Создать policy с блокирующими типами утечек.
  2. Написать scanner production artifact с redaction.
  3. Собрать небезопасный frontend и получить ожидаемый release block.
  4. Исправить build: backend proxy, no source map, synthetic public data.
  5. Повторить scan, запустить tests и открыть итоговый HTML report.

Шаблон: approval gate и журнал решений

Используйте этот фрагмент как минимальную политику для действий, которые видит клиент или которые меняют учетную систему.

approval_rule: if action.external_visible == true or action.crm_write == true -> require_human_approval
decision_log: request_id, source_data, ai_recommendation, human_edit, final_action, rejection_reason

Чеклист перед пилотом

  • Bad build exit 2.
  • Fixed build exit 0.
  • Five tests pass.
  • Privacy OCR passed for every recording.

Требования и рекомендации

Требования

  • Gate запускается после build и до deploy.
  • Отчет содержит файл, строку, finding code и безопасный preview.
  • Тест доказывает, что bad fixture падает, а fixed fixture проходит.
  • Секреты не печатаются целиком ни в console, ни в HTML report.

Рекомендации

  • Сканировать именно production artifact, а не только исходники.
  • Возвращать ненулевой exit code при blocking finding.
  • Считать source maps, localhost/internal URLs и PII отдельными типами риска.
  • Хранить allowlist узкой и проверяемой, а не игнорировать целые каталоги.

Суть темы

Практический выпуск CodeVibers: пишем artifact scanner, специально блокируем небезопасную frontend-сборку, исправляем секрет, internal URL, email и source map, затем подтверждаем PASS тестами.

Что важно забрать

  • Добавить python3 release_gate.py dist --policy policy.json между frontend build и deploy.
  • Зритель получит рабочий pre-deploy gate и увидит настоящий fail/fix/pass цикл.
  • Проверяем не репозиторий, а конечный production artifact, который реально уходит пользователю.
  • Заменить ручной security checklist на исполняемый release contract.

Как применять на практике

Используйте материал как отправную точку: сформулируйте задачу, ограничьте область применения, выберите метрику качества и проверьте результат на небольшом сценарии до внедрения в production.

Практические шаги

  1. Создать policy с блокирующими типами утечек.
  2. Написать scanner production artifact с redaction.
  3. Собрать небезопасный frontend и получить ожидаемый release block.
  4. Исправить build: backend proxy, no source map, synthetic public data.
  5. Повторить scan, запустить tests и открыть итоговый HTML report.

Рекомендации

  • Сканировать именно production artifact, а не только исходники.
  • Возвращать ненулевой exit code при blocking finding.
  • Считать source maps, localhost/internal URLs и PII отдельными типами риска.
  • Хранить allowlist узкой и проверяемой, а не игнорировать целые каталоги.

Требования и ограничения

  • Gate запускается после build и до deploy.
  • Отчет содержит файл, строку, finding code и безопасный preview.
  • Тест доказывает, что bad fixture падает, а fixed fixture проходит.
  • Секреты не печатаются целиком ни в console, ни в HTML report.

Примеры

  • PUBLIC_AI_KEY в app.js блокирует релиз.
  • bundle.js.map и api.internal.example также блокируют релиз до исправления.

Антипримеры

  • Проверить только .env в репозитории и считать production bundle безопасным.

Как проверить готовность

  • bad build возвращает exit code 2 и четыре категории findings.
  • fixed build возвращает exit code 0 и zero blocking findings.
  • HTML report показывает обе попытки без раскрытия найденного значения.

Навигация по выпуску

  • 00:00 Что строим
  • 00:35 Риск в production artifact
  • 00:55 Пишем scanner и policy
  • 01:45 Fail, fix и повторный запуск
  • 02:35 Отчет и deploy rule