Используйте autofix, чтобы подготовить вариант исправления находки безопасности в одном методе. При необходимости ограничьте выборку идентификатором CWE — типом уязвимости. CodeGraph возвращает unified diff и метаданные проверки. Предварительный просмотр доступен только для чтения и не применяет diff к исходникам. CLI-аудит может обновить настроенный CPG и сохранить данные аудита, как описано ниже.
CLI: предложения из отчёта аудита
Выполняйте команду в PowerShell из корня исходного репозитория CodeGraph с установленным Python-окружением проекта. Замените PATH путём зарегистрированной базы CPG — графа свойств кода; если в пути есть пробелы, заключите его в кавычки. База должна быть связана с нужным проектом и существующим каталогом исходников.
Подготовка окружения описана в руководстве CLI, а получение базы проекта — в руководстве по импорту.
python -m src.cli audit --db PATH --autofix --skip-llm-conclusion
Аудит собирает находки безопасности и передаёт доступные свидетельства о taint-path движку autofix в режиме dry-run. Если в отчёте нет пригодных путей распространения данных, команда сообщит, что предложения сформировать нельзя. Флаги --autofix и --skip-persistence несовместимы: CLI возвращает код 1 до запуска аудита. При использовании --autofix аудит может обновить настроенный CPG и сохранить проекции и снимки, но исходники проекта не меняются. Запускайте команду в разрешённом процессе этого проекта.
Если результат нужен как свидетельство ревью, сохраните стандартный вывод команды в выбранный файл.
REST: предварительный diff для одного метода
Текущий маршрут — POST /api/v1/security/autofix. Он использует контекст проекта, выбранный средой API.
Выполняйте пример в Bash с curl версии 7.76 или новее и запущенным локальным API, контекст
которого указывает на нужный CPG. До запроса настройте аутентификацию, требуемую установкой:
пример не передаёт учётные данные. Замените process_query методом своего проекта.
Для удалённого API используйте одобренный адрес HTTPS. Проверьте HTTP-статус и тело ответа.
curl --fail-with-body -X POST http://localhost:8000/api/v1/security/autofix \
-H "Content-Type: application/json" \
-d '{
"method_name": "process_query",
"cwe": "CWE-89"
}'
method_name выбирает находки одного метода. cwe задаёт необязательный фильтр. Если совпадений нет, запрос успешно вернёт пустой список results и count: 0. В примере параметр source_path не указан, поэтому API использует корень исходников из контекста выбранного проекта.
MCP: предварительный diff для ассистента
Инструмент входит в ролевой профиль AppSec для чтения. В Codex выберите профиль codex:role:codegraph_appsec:read. Передайте инструменту нативные строковые аргументы:
codegraph_security_autofix_preview(method_name="process_query", cwe="CWE-89")
Инструмент сам определяет базу среды исполнения. Агентский вызов не должен передавать сырой путь к базе.
MCP возвращает предложения в массиве fixes, а REST — в results. Оба интерфейса отбирают находки сканера по методу и фильтру CWE и используют их расположение для подготовки предложений. Перед применением патча проследите путь данных от входа до опасной операции по исходникам и результатам анализа потоков данных.
Как читать ответ
Сформированный элемент может содержать:
file_pathиline_number— место предлагаемого изменения;strategyиconfidence— способ формирования и его оценку уверенности;validated— прошёл ли diff встроенную структурную проверку;cwe_id,vulnerability_typeиseverity— классификацию находки;explanation— причину предложения;diff_patch— unified diff для ревью.
Поле validated: true фиксирует результат предварительной проверки diff. Перед применением проверьте его вручную, выполните сборку и точечные с регрессионными тестами, получите архитектурное ревью и одобрение AppSec.
Безопасное применение
- Сохраните исходную находку, ревизию и ссылку на свидетельство.
- Проверьте весь
diff_patchвручную, включая окружающий код и границы доверия. - Воспроизведите уязвимость или добавьте падающий тест безопасности.
- Внесите минимальное согласованное изменение обычным процессом разработки.
- Запустите точечные и регрессионные тесты, затем повторите проверку безопасности.
- Получите заключение ответственной линии AppSec, прежде чем закрывать находку.
Отклоните предложение, если оно меняет поведение за пределами согласованной области, требует отсутствующую зависимость, ослабляет валидацию, скрывает симптом без устранения потока данных или не допускает проверки тестом.
Ошибки и границы полномочий
- Пустой результат показывает, что для выбранного метода и фильтра не создан предварительный diff. Отсутствие уязвимости проверяется отдельным security-анализом.
- Если API не находит исходники, проверьте, что выбрал нужный контекст проекта.
- Если инструмент недоступен, проверьте его наличие и правила вызова в активном каталоге профиля.
- Autofix возвращает diff для ревью. Применение исправления и выпуск выполняются в отдельном процессе.
Связанные материалы
Процесс работы с находками и границы свидетельств описаны в аудите безопасности.