有没有人使用命令行来运行强化?我试图在我的 CI 构建中加入 fortify 运行,但我不知道该怎么做。
6 回答
由于我无法添加评论,因此我必须提供此作为答案。我们公司已将扫描过程集成到我们的 TFS 构建环境中,并且运行良好。
我们使用一系列“调用流程”构建活动来实现这一点。整个安全扫描序列包含在一个条件中,该条件作为构建定义的参数公开。这使我们可以根据需要启用或禁用扫描。我们还公开了一些其他内容,例如 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>
如果有人知道格式,请告诉我。
这里的答案很好,我想补充一点,您可以在扫描时添加日志记录,这非常有帮助。
带记录的扫描
sourceanalyzer -b "构建 ID" -scan -format fpr -f BuildID.fpr -debug -verbose -logfile "C:\logfile.txt"
Fortify has a static code analyzer tool, sourceanalyzer. This tool is command line based, and as such, should be something that you could integrate into a CI system.
As mentioned above, you can use the help option or review the documentation/user guide (named: HP Fortify Static Code Analyzer User Guide) which covers many languages and options.
One point you may need to consider is the speed and resource utilization of performing a such a scan in a CI scenario. You may need to consider running this over night or during off peak hours. The documentation states that the tool uses a decent amount of memory.
You may also have to figure out how to process the output fpr file that the sourceanalyzer tool produces. For example, you could make this an artifact in Team City and upload it manually to a Fortify server or use with the Fortify workbench product. I would imagine you could also get fancy and automate the upload into Fortify server.
如果您在帮助文本中没有看到适当的构建命令,请告诉我们。99% 的真实世界调用都在那里。
根据您尝试构建的源代码类型,有数十种不同的命令行开关和技术可供使用。
我建议您从获取 SCA 用户指南开始。这是一个 PDF 文档,您可以从向您提供 Fortify 安装程序的任何人处获得。
在我的公司,我们创建了一个 docker 镜像来管理 CI 过程中的 Fortify 命令。
基本上,我们开发了一个 python 脚本来帮助我们保持扫描集中,然后在 GitlabCI 的工作中调用这个图像 docker。
正如他们所解释的,sourceanalyzer是进行扫描的工具,我们使用 cloudscan 工具连接 SCC 并下载扫描并检查分析状态。
我们还使用:
- fortifyclient 上传到 * .fpr 文件
- FPRUtility 合并 * .fpr 文件
- ReportGenerator 使用最终结果制作 pdf。
目前我们使用 fortify 19.10。