加强命令行使用

Posted

技术标签:

【中文标题】加强命令行使用【英文标题】:Fortify command line usage 【发布时间】:2011-04-24 22:06:30 【问题描述】:

有没有人使用命令行来运行 fortify? 我试图在我的 CI 构建中加入 fortify 运行,但我不知道该怎么做。

【问题讨论】:

我想我得到了使用 sourcecodeanalyzer -h 获取命令行帮助的起点。 【参考方案1】:

由于我无法添加评论,因此我必须提供此作为答案。我们公司已将扫描过程集成到我们的 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"

如果您想要完整的概要和/或一些屏幕截图,我很乐意为您提供一些东西。

【讨论】:

【参考方案2】:

典型扫描的命令如下所示。

    使用构建代码

sourceanalyzer -b <build ID> <sourcecode>

    扫描构建

sourceanalyzer -b <build ID> -scan -f <test>.fpr

    (如果您使用的是360服务器)将结果上传到fortify服务器

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>

如果有人知道格式,请告诉我。

【讨论】:

当您使用 -build-label 时,您必须提供标签名称,因此在您的示例中:Sourceanalyzer -b testid codebase -build-label MyLabel 接下来,登录到 Fortify 软件安全中心 (SSC) 服务器,双击您的项目版本,单击工件,单击任何分析结果,您应该会看到结果的详细信息。在这些详细信息中,您会看到“构建标签”。【参考方案3】:

Fortify 有一个静态代码分析工具 sourceanalyzer。该工具是基于命令行的,因此应该是可以集成到 CI 系统中的工具。

如上所述,您可以使用帮助选项或查看涵盖多种语言和选项的文档/用户指南(名为:HP Fortify 静态代码分析器用户指南)。

您可能需要考虑的一点是在 CI 场景中执行此类扫描的速度和资源利用率。您可能需要考虑在夜间或非高峰时段运行。文档指出该工具使用了大量的内存。

您可能还需要弄清楚如何处理 sourceanalyzer 工具生成的输出 fpr 文件。例如,您可以在 Team City 中将此作为工件并手动将其上传到 Fortify 服务器或与 Fortify 工作台产品一起使用。我想你也可以看中并自动上传到 Fortify 服务器。

【讨论】:

【参考方案4】:

这里的答案非常好,我想补充一点,您可以在扫描时添加日志记录,这非常有帮助。

使用记录扫描

sourceanalyzer -b "Build ID" -scan -format fpr -f BuildID.fpr -debug -verbose -logfile "C:\logfile.txt"

【讨论】:

【参考方案5】:

如果您在帮助文本中没有看到适当的构建命令,请告诉我们。 99% 的真实世界调用都在那里。

根据您尝试构建的源代码类型,有数十种不同的命令行开关和技术可供使用。

我建议您从获取 SCA 用户指南开始。这是一个 PDF 文档,您可以从向您提供 Fortify 安装程序的任何人那里获得。

【讨论】:

【参考方案6】:

在我的公司,我们创建了一个 docker 镜像来管理 CI 过程中的 Fortify 命令。

基本上,我们开发了一个 python 脚本来帮助我们保持扫描集中,然后在 GitlabCI 的工作中调用这个图像 docker。

正如他们解释的那样,sourceanalyzer 是进行扫描的工具,我们使用 cloudscan 工具连接 SCC 并下载扫描并检查分析状态。

我们也使用:

fortifyclient 上传到 * .fpr 文件 FPRUtility 合并 * .fpr 文件 ReportGenerator 用最终结果制作一个 pdf。

目前我们使用 fortify 19.10。

【讨论】:

以上是关于加强命令行使用的主要内容,如果未能解决你的问题,请参考以下文章

使用pyinotify实现加强版的linux tail -f 命令,并且对日志类型的文本进行单独优化着色显示。

window power shell与命令提示符哪个好用

Linux安装包

如何在 Eclipse 中使用命令行

Fiddler命令行使用

FFmpeg命令行使用