Help:Sarif: Difference between revisions

From Svacer Wiki
(make path to project optional)
mNo edit summary
 
(6 intermediate revisions by 3 users not shown)
Line 1: Line 1:
[[Category:Help]]
[[Category:Help]]
== Работа с SARIF ==
== Работа с SARIF ==
=== Генерация SARIF ===
 
=== SARIF2 ===
Начиная с релиза 8.0.0 добавлена команда '''sarif2''' с подкомандами '''import''' и '''export'''. Рекомендуется использовать данную функциональность вместо старой команды '''sarif'''. Новый импорт обеспечивает создание детекторов в Svacer из reporting descriptor-ов в sarif, что обеспечивает корректную работу фильтров. Новая функциональность импорта поддерживает большую часть опций, которые могут быть использованы при импорте svres-файлов.
 
Пример импорта c включением содержимого файлов (при наличии его в самом sarif-файле или возможности найти файл в процессе импорта):
  svacer sarif2 import --store /tmp/sarif --include-contents /path/to/sarif/file.sarif
 
Если sarif файл содержит относительные пути, то можно указать опцию <code>--base-dir</code> для поиска файлов относительно указанной директории.
 
Далее полученный intermediate store можно загрузить командой upload как и для импорта svres. Также можно скомбинировать import с upload:
  svacer sarif2 import --upload --store /tmp/sarif --include-contents /path/to/sarif/file.sarif
 
Пример экспорта с включением содержимого файлов в артефакты:
  svacer sarif2 export --host localhost --user admin --password admin --include-contents --project bash --out /tmp/out.sarif
 
При экспорте включается разметка предупреждений в пользовательские атрибуты (properties). Также включается информация об ID снимка, проекта и прочая дополнительная информация.
 
Полный список опций может быть получен при выполнении команд:
  svacer sarif2 import --help
  svacer sarif2 export --help
 
=== Генерация SARIF (deprecated) ===
Поддерживается генерация файла в формате [https://sarifweb.azurewebsites.net SARIF], который может быть прочитан при помощи расширения Microsoft SARIF Viewer, GitHub или DefectDojo.
Поддерживается генерация файла в формате [https://sarifweb.azurewebsites.net SARIF], который может быть прочитан при помощи расширения Microsoft SARIF Viewer, GitHub или DefectDojo.
Итоговый файл содержит сопоставление внутренних значений критичности маркеров со значениями уровня SARIF по следующему правилу:
Итоговый файл содержит сопоставление внутренних значений критичности маркеров со значениями уровня SARIF по следующему правилу:
Line 16: Line 37:
* include-contents — включать контент файлов, в которых обнаружены предупреждения
* include-contents — включать контент файлов, в которых обнаружены предупреждения


==== Генерация из .svres ====
==== Генерация из .svres (deprecated) ====
При импорте из файла svres используются дополнительные параметры:
При импорте из файла svres используются дополнительные параметры:
* svace — путь к исполняемому файлу svace
* svace — путь к исполняемому файлу svace
* svace-dir — интерпретировать путь, как путь к директории .svace-dir
* svace-dir — интерпретировать путь, как путь к директории .svace-dir
* path_to_project_or_svace-dir — путь к директории проекта или к .svace-dir. Его можно не указывать, тогда в качестве пути к проекту будет использована текущая директория.
* path_to_project_or_svace-dir — путь к директории проекта или к .svace-dir. Его можно не указывать, тогда в качестве пути к проекту будет использована текущая директория


Пример команды для генерации файла SARIF:
Пример команды для генерации файла SARIF:
Line 39: Line 60:
     ./svacer sarif -o <path_to_result_file> --from-server --user <user> --password <password> --project <project_name>
     ./svacer sarif -o <path_to_result_file> --from-server --user <user> --password <password> --project <project_name>


=== Загрузка на сервер из SARIF ===
=== Загрузка на сервер из SARIF (deprecated) ===
При загрузке данных на сервер используются следующие параметры:
При загрузке данных на сервер используются следующие параметры:
* read-file, r — файл SARIF, из которого необходимо читать данные
* read-file, r — файл SARIF, из которого необходимо читать данные

Latest revision as of 13:09, 4 June 2024

Работа с SARIF

SARIF2

Начиная с релиза 8.0.0 добавлена команда sarif2 с подкомандами import и export. Рекомендуется использовать данную функциональность вместо старой команды sarif. Новый импорт обеспечивает создание детекторов в Svacer из reporting descriptor-ов в sarif, что обеспечивает корректную работу фильтров. Новая функциональность импорта поддерживает большую часть опций, которые могут быть использованы при импорте svres-файлов.

Пример импорта c включением содержимого файлов (при наличии его в самом sarif-файле или возможности найти файл в процессе импорта):

 svacer sarif2 import --store /tmp/sarif --include-contents /path/to/sarif/file.sarif

Если sarif файл содержит относительные пути, то можно указать опцию --base-dir для поиска файлов относительно указанной директории.

Далее полученный intermediate store можно загрузить командой upload как и для импорта svres. Также можно скомбинировать import с upload:

 svacer sarif2 import --upload --store /tmp/sarif --include-contents /path/to/sarif/file.sarif

Пример экспорта с включением содержимого файлов в артефакты:

 svacer sarif2 export --host localhost --user admin --password admin --include-contents --project bash --out /tmp/out.sarif

При экспорте включается разметка предупреждений в пользовательские атрибуты (properties). Также включается информация об ID снимка, проекта и прочая дополнительная информация.

Полный список опций может быть получен при выполнении команд:

 svacer sarif2 import --help
 svacer sarif2 export --help

Генерация SARIF (deprecated)

Поддерживается генерация файла в формате SARIF, который может быть прочитан при помощи расширения Microsoft SARIF Viewer, GitHub или DefectDojo. Итоговый файл содержит сопоставление внутренних значений критичности маркеров со значениями уровня SARIF по следующему правилу:

  • Critical -> error
  • Major -> warning
  • Minor -> note
  • Normal -> none

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

Общие параметры для импорта:

  • out-file, o — имя выходного файла или «-» для вывода в stdout
  • scheme — печать примера схемы выходного файла SARIF
  • include-contents — включать контент файлов, в которых обнаружены предупреждения

Генерация из .svres (deprecated)

При импорте из файла svres используются дополнительные параметры:

  • svace — путь к исполняемому файлу svace
  • svace-dir — интерпретировать путь, как путь к директории .svace-dir
  • path_to_project_or_svace-dir — путь к директории проекта или к .svace-dir. Его можно не указывать, тогда в качестве пути к проекту будет использована текущая директория

Пример команды для генерации файла SARIF:

   ./svacer sarif -o <path_to_result_file> --svace <path_to_svace> [path_to_project_or_svace-dir]

Генерация из данных с сервера

При импорте из данных с сервера используются следующие дополнительные параметры:

  • from-server — опция для получения данных с сервера
  • project — имя или id проекта
  • branch — имя или id ветки (master по умолчанию)
  • snapshot — имя или id снимка (last по умолчанию)

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

Пример команды для генерации файла SARIF из данных с сервера:

   ./svacer sarif -o <path_to_result_file> --from-server --user <user> --password <password> --project <project_name>

Загрузка на сервер из SARIF (deprecated)

При загрузке данных на сервер используются следующие параметры:

  • read-file, r — файл SARIF, из которого необходимо читать данные
  • project — название проекта на сервере (по умолчанию совпадает с именем файла)
  • branch — название ветки на сервере (по умолчанию master)
  • snapshot — название снимка на сервере (по умолчанию время загрузки)
  • skip-source — пропускать исходный код файлов с предупреждениями
  • path-prefix — заменять префиксы в названии файлов (prefix:replacement)

Пример команды для загрузки на сервер:

   ./svacer sarif upload -r <input_file>