Перейти к основному содержимому

Сценарий 02: ограниченный аудит безопасности

Проведите аудит безопасности в заданной области. Проверьте свежесть графа, полноту анализа и находки до решения об исправлении.

Руководства

Проверьте рабочую область или выбранные изменения на риски безопасности. CodeGraph собирает находки с расположением в исходниках и результатами структурных проверок. По отчёту команда выбирает, что проверить и исправить в первую очередь.

Выберите подходящую точку входа

Аудит текущей рабочей области в OpenCode

Для этого пути нужны установленный OpenCode, подключённый MCP CodeGraph и команда проекта .opencode/commands/audit.md. Открытая папка клиента должна соответствовать проекту, выбранному сервером MCP. Запустите команду:

/audit

Сценарий сначала проверяет готовность контекста проекта и CPG. Для готовой рабочей области он может получить diff, выполнить структурные проверки и запросить привязанные к ревизии пакеты ревью. Для состояний «устарел», «заблокирован», sync_pending и graph_only ответ содержит текущий режим, причину и следующее действие для подготовки проекта.

Детерминированный отчёт CLI

Выполняйте команды в PowerShell из корня исходного репозитория CodeGraph с установленным Python-окружением проекта. Замените PATH путём зарегистрированной базы проекта. Перед запуском подготовьте зарегистрированный проект и CPG. С --skip-persistence устаревший граф требует отдельного обновления.

Передайте явный путь к зарегистрированной базе CPG:

python -m src.cli audit --db 'PATH' --format json --skip-llm-conclusion --skip-persistence

Для команды аудита параметр --db обязателен. База должна соответствовать настроенному проекту с существующим каталогом исходников. --skip-llm-conclusion исключает сгенерированное заключение, а --skip-persistence отключает проекцию находок и сохранение снимков аудита и дашборда.

CLI проверяет актуальность графа. С --skip-persistence он работает в режиме чтения: устаревший граф останавливает аудит с ошибкой audit_cpg_refresh_required. Обновите выбранный проект через разрешённый процесс и повторите аудит. Без этого флага проверка свежести может обновить настроенный CPG перед анализом. Если передать вместе --autofix и --skip-persistence, CLI вернёт код 1 до запуска аудита.

Дополнительно доступны --source-path, --profile, --scopes, --language, --timeout и --output. Перед автоматизацией проверьте их в установленной версии командой python -m src.cli audit --help.

Как проходит аудит в OpenCode

  1. CodeGraph проверяет готовность проекта и актуальность CPG.
  2. Если доступны изменения, команда определяет их область и ревизию.
  3. Структурные проверки собирают находки в выбранной области.
  4. Ревью качества кода и архитектурного влияния дополняют отчёт, когда входят в выбранную проверку.
  5. Для объяснения находок команда обращается к соответствующим участкам исходников.

Проверяйте свидетельства и число находок

Для каждой находки сохраните:

  • принятую область и ревизию;
  • серьёзность и идентификатор правила или проверки;
  • расположение в исходниках и ссылку на свидетельство;
  • известные пробелы покрытия;
  • воспроизводимую следующую проверку;
  • решение: подтверждено, отклонено, требуется проверка или отложено.

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

От находки к исправлению

  1. Откройте указанный участок исходников и проследите, какие входные данные вызывают проблему.
  2. Воспроизведите проблему и добавьте тест, который фиксирует ожидаемое поведение.
  3. Подготовьте исправление, проверьте его на ревью и запустите тесты.
  4. Повторите аудит на обновлённой ревизии и сохраните результат вместе с исходной находкой.

Autofix аудита безопасности помогает подготовить патч для ревью. Руководство объясняет, как получить предложение, проверить его и применить изменение.

Частые ошибки

  • audit commands require explicit --db: передайте путь к настроенной базе.
  • Не удалось определить контекст проекта или исходников: проверьте, что проект зарегистрирован и связан с нужным каталогом исходников, затем повторите аудит.
  • Граф остался устаревшим после обновления: прочитайте причину из статуса CPG и повторите аудит после завершения обновления.
  • Контекст заблокирован или находится в sync_pending: зафиксируйте режим и причину из ответа сервера, затем выполните указанное следующее действие.