Укрепить использование командной строки
Кто-нибудь использовал командную строку для запуска фортификации? Я пытаюсь включить фортификационный прогон в свою сборку CI, и я не знаю, как это сделать.
6 ответов
Поскольку я не могу добавить комментарий, мне придется предложить это в качестве ответа. Наша компания интегрировала процесс сканирования в нашу среду сборки TFS, и он работает довольно хорошо.
Для этого мы используем серию сборок "Invoke Process". Вся последовательность проверки безопасности заключена в условное выражение, которое предоставляется в качестве аргумента для определения сборки. Это позволяет нам включать или отключать сканирование по мере необходимости. Мы также предоставляем несколько других вещей, таких как Fortify Project, Fortify Project Version и еще одно условие для загрузки файла FPR.
Суть этого заключается в следующем:
чистый
sourceanalyzer -b "Build ID" -clean
строить
sourceanalyzer -b "Build ID" devenv BuildID.sln /Rebuild Debug /out "C:\SSCLogs\SSCBuild.log"
сканирование
sourceanalyzer -b "Build ID" -scan -format fpr -f BuildID.fpr
Загрузить в SSC
fortifyclient.bat -url SSCServerUrl -authtoken XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX uploadFPR -file BuildID.fpr -project "MyProject" -version "MyProject v1.0.0"
Если вы хотите полное краткое изложение и / или снимки экрана, я был бы рад предоставить вам кое-что.
Команды для типичного сканирования выглядят примерно так.
- строит код используя
sourceanalyzer -b <build ID> <sourcecode>
- сканирует сборку с
sourceanalyzer -b <build ID> -scan -f <test>.fpr
- (Если вы используете сервер 360) загружает результат для укрепления сервера с
fortifyclient uploadFPR -f <test>.fpr -project <projectname> -version <versionname> -urlhttps://fortify.com/f360 -user <username> -password <password> /// <authtoken>
Тем не менее, я прошу помощи с метками сборки. Когда мы вызываем SCA, мы можем назначить ему метку сборки. Однако я не уверен, какие опции предоставить командам.
sourceanalyzer -b testid codebase -build-label <option>
Если кто-нибудь знает формат, пожалуйста, дайте мне знать.
Fortify имеет инструмент статического анализа кода, sourceanalyzer. Этот инструмент основан на командной строке и поэтому должен быть интегрирован в систему CI.
Как упоминалось выше, вы можете использовать параметр справки или просмотреть документацию / руководство пользователя (названное: Руководство пользователя HP Fortify Static Code Analyzer), которое охватывает множество языков и вариантов.
Вам может потребоваться учесть один момент: скорость и использование ресурсов при выполнении такого сканирования в сценарии конфигурации. Возможно, вам придется подумать о том, чтобы работать в течение ночи или в часы пик. В документации говорится, что инструмент использует приличный объем памяти.
Возможно, вам также придется выяснить, как обрабатывать выходной файл fpr, который создает инструмент sourceanalyzer. Например, вы можете сделать это артефактом в Team City и загрузить его вручную на сервер Fortify или использовать с продуктом Fortify Workbench. Я полагаю, вы могли бы также модернизировать и автоматизировать загрузку на сервер Fortify.
Очень хорошие ответы здесь, я хотел бы добавить, что вы можете добавить протоколирование во время сканирования, это очень полезно.
SCAN с логированием
sourceanalyzer -b "ID сборки" -scan -формат fpr -f BuildID.fpr -debug -verbose -logfile "C:\logfile.txt"
Дайте нам знать, если вы не видите соответствующую команду сборки в тексте справки. 99% вызовов реального мира там.
В зависимости от того, какой тип исходного кода вы пытаетесь создать, существуют десятки различных параметров командной строки и методов, которые следует использовать.
Я рекомендую вам начать с получения Руководства пользователя SCA. Это PDF-документ, который вы можете получить у любого, кто предоставил вам программу установки Fortify.
В моей компании мы создали образ докера для управления командами Fortify в процессе CI.
По сути, мы разработали скрипт на Python, который поможет нам сохранить централизованное сканирование, а затем вызвать этот докер изображения в задании в GitlabCI.
Как объяснили ребята, sourceanalyzer — это инструмент для сканирования, и мы используем инструмент cloudcan для подключения к SCC, загрузки сканов и проверки состояния анализа.
Мы также используем:
- fortifyclient для загрузки в файлы *.fpr
- FPRUtility для слияния файлов *.fpr
- ReportGenerator, чтобы сделать pdf с окончательным результатом.
В настоящее время мы используем фортифай 19.10.