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

Detect / Руководство по файлам результатов

Руководство по файлам результатов

Состав рабочего каталога, поля отчётов, колонки сводки, SARIF для сборки и для Accent.

Введение

Руководство описывает, что Detect записывает после проверки, что лежит в каждом файле и как этими файлами пользоваться.

Документ нужен, когда отчёт уже получен и требуется понять поле, колонку или причину решения. Запуск проверки описан в руководстве пользователя, настройка и развёртывание — в руководстве администратора.

Какой файл для чего

ВопросФайл
Что нашлиfindings.json или verdicts_sast_ru.json
Какие файлы затронутыverdicts.csv
Показать находки в запросе на слияниеresults.sarif
Передать находки в Accent до проверки модельюtriage-input.sarif
Передать итог Detect в Accentreport.sarif
Почему система решила именно такverdicts_sast.json
Как прошла проверкаrun_summary.json
Почему повторный анализ стал полной проверкойrun_summary.json, поле stage2.incremental.refusal_reason
С моделью ли выполнен анализGET /v1/analyses/{id}/versions, поле analysis_profile
Сходятся ли файлы между собойverdicts_sast_artifact_consistency.json
База для повторного анализаbaseline_manifest.json

Где лежат результаты

Полный набор файлов лежит в рабочем каталоге проверки runtime_runs/<имя>/.

Компактная выдача (--artifact-mode compact). Дополнительно появляется каталог results/<имя>/ ровно с тремя файлами: findings.json, verdicts.csv и results.sarif. Рабочий каталог при этом сохраняется целиком, потому что он служит базой следующей проверке. Файл triage-input.sarif в компактную выдачу не входит.

Через веб-сервис. Файлы скачиваются запросом GET /sessions/{номер}/artifacts/{имя}, компактная тройка — одним архивом по GET /sessions/{номер}/compact.

Через интерфейс v1. Анализы хранятся в runtime_runs/<analysis_id>/, и к ним добавляются report.sarif и detect_v1_report.json. Для анализов через POST /v1/triage/analyses там же лежит triage-input.sarif.

findings.json и verdicts_sast_ru.json

Главный файл. Все находки на русском языке.

Устройство​

РазделСодержимое
scan_idИмя проверки
project_rootКакой каталог проверялся
summaryСводные числа; главные перечислены ниже
findingsСписок находок
errorsОшибки проверки; пустой список означает, что ошибок не было

Поля находки​

ПолеТипЧто значитКак использовать
short_descriptionТекстКраткое название проблемыЗаголовок в списке
descriptionТекстПодробное описание механизмаПонять, в чём опасность
severitycritical, high, medium, low, infoНасколько опасен вид уязвимостиСортировка по важности
rule_nameТекстПравило, которое сработалоПри обращении в поддержку
pathПутьФайл относительно корня проектаОткрыть файл
start_line, end_lineЧислаСтрокиПерейти к месту
start_column, end_columnЧислаКолонкиТочное место в строке
code_snippetТекстФрагмент кода, секреты вырезаныУбедиться, что место то
cwesСписокНомер вида уязвимостиОписание на cwe.mitre.org
owaspСписокКатегория OWASP Top 10 2021Для отчётности; пусто у видов, которых нет в OWASP Top 10
impacthigh, medium, lowОпасность этой находкиПриоритет исправления
likelihoodhigh, medium, lowВероятность атакиПриоритет исправления
confidencehigh, medium, lowУверенность анализатораС чего начать разбор
finding_modeconfirmed, manual_review, advisoryРежим находкиГлавное поле, см. ниже

Режим находки​

ЗначениеЧто значитЧто делать
confirmedНайдены достаточные признаки уязвимостиПроверить и устранить проблему
manual_reviewПризнаки есть, доказательство неполноеПрочитать код
advisoryСправочное наблюдениеУчесть при доработке

Отсеянные правилами кандидаты в режиме suppressed в этот файл не попадают.

Секреты и фрагменты кода​

В отдельных полях отчёта обнаруженные пароли, токены и другие чувствительные значения могут заменяться меткой <REDACTED_SECRET>. Не следует считать любой файл результата автоматически безопасным для пересылки: исходный код, внутренние пути, сведения о проекте и журналы могут содержать конфиденциальные данные.

Фрагмент, составленный из нескольких участков программы, может отличаться от исходного файла по оформлению. В спорной ситуации сверяйте находку с оригиналом кода в разрешённой среде.

Раздел summary​

ПоказательСмысл
files_scannedСколько файлов проверено
findings_countСколько находок в отчёте
confirmed_findings_countПодтверждённых
manual_review_findings_countНа проверку
advisory_findings_countСправочных
suppressed_findings_countОтсеяно правилами
core_sast_findings_countНаходок в коде
project_security_findings_countНаходок уровня проекта: настройки и конфигурация

verdicts.csv

Одна строка на каждый файл проекта, в том числе на файл без находок.

Все 18 колонок​

КолонкаЧто значит
scan_idИмя проверки
signal_identityВнутренний идентификатор данных файла
fileПуть к файлу
languageЯзык
statusok означает, что файл обработан; иначе указана причина
presentЕсть ли находка любого режима
confirmed_presentЕсть ли подтверждённая
advisory_presentЕсть ли справочная
review_requiredНужна ли проверка человеком
any_active_resultЕсть ли хотя бы одна активная находка
final_modeРежим главной находки
best_cwe_idНомер главной находки файла
best_scoreЕё оценка, от 0 до 1
confidenceУверенность
reasonПочему принято такое решение
errorОшибка обработки файла, если она была
active_cwe_idsВсе найденные виды через точку с запятой
confirmed_cwe_idsТолько подтверждённые виды через точку с запятой

best_cwe_id и active_cwe_ids​

Колонка best_cwe_id содержит одну главную находку файла: если в файле найдено три вида уязвимостей, здесь окажется один. Колонка active_cwe_ids содержит все найденные виды, например 306;307;862.

На вопрос «нашёл ли анализатор CWE-89 в этом файле» отвечает active_cwe_ids. По best_cwe_id можно ошибиться, когда находка отнесена к близкому виду.

Работа в табличном редакторе​

В Excel файл открывается через «Данные» → «Из текста/CSV» с кодировкой UTF-8. Фильтр по confirmed_present = True даёт файлы с подтверждёнными находками.

results.sarif

Стандартный формат SARIF 2.1.0. Его понимают GitHub, GitLab, Azure DevOps, Visual Studio Code, среды JetBrains и большинство систем контроля качества.

Одна находка​

ПолеСодержимое
ruleId, ruleIndexПравило и его номер в списке rules
levelerror, warning или note
messageТекст находки
locationsФайл, строки, колонки, фрагмент кода с контекстом
partialFingerprintsОтпечаток для отслеживания находки между проверками
propertiesДополнительные сведения

В разделе properties лежат поля, которых нет в стандарте.

ПолеСмысл
cwesНомер вида
ruleNameПравило
findingModeРежим находки
resultSpaceКод или уровень проекта
severityКритичность
confidenceУверенность
evidenceStrengthСила доказательства
detectionClassКак обнаружено: по потоку данных, по состоянию или по настройке
manualReviewRequiredНужна ли проверка человеком

Что попадает в SARIF​

По умолчанию только подтверждённые находки. Параметр --sarif-include-nonconfirmed добавляет остальные.

Строк кода вокруг находки по умолчанию 2. Параметр --sarif-context-lines 0 уменьшает файл, но некоторые среды разработки используют контекст для подсветки.

triage-input.sarif

Отчёт для Accent, когда решение по находкам принимает он. Создаётся с параметром --triage-sarif в профиле без модели либо запросом POST /v1/triage/analyses.

В файл включаются находки для обработки сервисом Accent в соответствии с форматом обмена выбранной версии.

Поле находкиЧто означает
properties.verified_by_detectВсегда false: модель Detect находку не проверяла
properties.pre_llm_candidateВсегда true: кандидат до проверки моделью
properties.findingModeПолнота доказательства Detect без модели
properties.finding_keyУстойчивый ключ находки

Файл может содержать фрагменты исходного кода, сведения о найденных проблемах и ссылки на связанные участки. Проверьте допустимость передачи получателю и соблюдайте правила обращения с конфиденциальными материалами.

report.sarif

Итоговый отчёт Detect для Accent. Появляется только у анализов интерфейса v1 и скачивается запросом GET /v1/analyses/{id}/report.sarif. Формат — SARIF 2.1.0, как у results.sarif, но у каждой находки добавлены решение модели Detect и текст на русском языке.

Поле находкиЧто означает
detect_verdictРешение Detect: confirmed или needs_review
verified_by_detectПроверила ли находку модель Detect
finding_keyУстойчивый ключ находки
Объяснение и рекомендацияТекст на русском языке, написанный моделью Detect
codeFlowsПуть данных, когда он доказан
relatedLocationsНайденные на пути защиты и очистка данных

Отсеянные правилами кандидаты в файл не попадают. Повторы одной и той же находки объединяются в одну.

Те же решения одним списком, без SARIF, возвращает GET /v1/analyses/{id}/key.

verdicts_sast.json

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

Наружу файл не передают без проверки содержимого. При необходимости выгрузки согласуйте получателя, проверьте содержащийся исходный код и секреты, ограничьте объём передаваемой информации. Для обычного просмотра находок используйте findings.json, verdicts_sast_ru.json или results.sarif.

run_summary.json

Сводный технический отчёт о ходе проверки. Содержит состояние запуска, сведения об ошибках и результаты обработки, необходимые для диагностики.

В первую очередь проверьте поле status, затем идентификатор проверки job_id и сведения об ошибке. В зависимости от версии дополнительные данные могут содержаться в разделах stage2 и stage3.

При обращении в поддержку передавайте только информацию, необходимую для диагностики; предварительно проверьте, нет ли в файле конфиденциальных путей и сведений о проекте.

baseline_manifest.json

Служебный файл для повторной проверки проекта. Предназначен для автоматической работы программы; при обычном использовании открывать и передавать его не требуется. Удаление соответствующих рабочих данных может привести к необходимости полной проверки проекта.

Служебные файлы

Во время проверки могут создаваться дополнительные диагностические данные и журналы. Их состав зависит от режима работы и версии Detect.

Служебные файлы не предназначены для свободного распространения. В них могут содержаться исходные тексты, внутренние пути, сведения о правилах анализа, запросы к языковой модели и другая конфиденциальная информация. Перед передачей в службу поддержки подготовьте минимальный набор сведений по согласованной процедуре.

Техническая поддержка

Если возникли вопросы по работе Detect, обратитесь к администратору системы или в службу поддержки: support@cybear.ru.

Поддержка Cybear

Не нашли ответ в документе?

Техподдержка: support@cybear.ru · +7 (495) 790-66-88, добавочный 3.

Написать в поддержку