Help:Sarif: Difference between revisions

From Svacer Wiki
(Created page with "== Работа с SARIF == === Генерация SARIF === Поддерживается генерация файла SARIF, который может быть прочитан при помощи расширения Microsoft SARIF Viewer, GitHub или DefectDojo. Итоговый файл содержит сопоставление внутренних значений критичности маркеров со значениями уровня SARIF по сле...")
 
mNo edit summary
 
(10 intermediate revisions by 3 users not shown)
Line 1: Line 1:
[[Category:Help]]
== Работа с SARIF ==
== Работа с SARIF ==
=== Генерация SARIF ===
 
Поддерживается генерация файла SARIF, который может быть прочитан при помощи расширения Microsoft SARIF Viewer, GitHub или DefectDojo.
=== 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.
Итоговый файл содержит сопоставление внутренних значений критичности маркеров со значениями уровня SARIF по следующему правилу:
Итоговый файл содержит сопоставление внутренних значений критичности маркеров со значениями уровня SARIF по следующему правилу:
* Critical -> error
* Critical -> error
Line 7: Line 29:
* Minor -> note
* Minor -> note
* Normal -> none
* Normal -> none


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


Общие параметры для импорта:
Общие параметры для импорта:
Line 17: Line 37:
* include-contents — включать контент файлов, в которых обнаружены предупреждения
* include-contents — включать контент файлов, в которых обнаружены предупреждения


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


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


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


==== Генерация из данных с сервера ====
==== Генерация из данных с сервера ====
Line 35: Line 53:
* branch — имя или id ветки (master по умолчанию)
* branch — имя или id ветки (master по умолчанию)
* snapshot — имя или id снимка (last по умолчанию)
* snapshot — имя или id снимка (last по умолчанию)


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


Пример команды для генерации файла SARIF из данных с сервера:
Пример команды для генерации файла SARIF из данных с сервера:
Line 44: 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 (deprecated) ===
=== Загрузка на сервер из SARIF ===
При загрузке данных на сервер используются следующие параметры:
При загрузке данных на сервер используются следующие параметры:
* read-file, r — файл SARIF, из которого необходимо читать данные
* read-file, r — файл SARIF, из которого необходимо читать данные
Line 53: Line 68:
* skip-source — пропускать исходный код файлов с предупреждениями
* skip-source — пропускать исходный код файлов с предупреждениями
* path-prefix — заменять префиксы в названии файлов (prefix:replacement)
* path-prefix — заменять префиксы в названии файлов (prefix:replacement)


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


     ./svacer sarif upload -r <input_file>
     ./svacer sarif upload -r <input_file>

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>