gpt4 book ai didi

build - 如何根据 Fortify 扫描结果使 TFS 构建失败

转载 作者:行者123 更新时间:2023-12-01 18:04:03 25 4
gpt4 key购买 nike

通过 PowerShell 查询,如何从 .NET 代码的 Fortify 安全扫描中获取新的严重或高度漏洞的计数?查询不应包含 SSC 服务器上已记录为“不是问题”或“已抑制”的任何结果。

我们有 Team Foundation Server 2017u2。作为构建和发布过程的一部分,我们执行 HP/Micro Focus Fortify 安全扫描并将结果上传到 Fortify SSC 服务器。每当扫描仪在代码中检测到新的关键或高发现时,我们都会尝试使构建/发布失败。我们使用 TFS 的 Micro Focus Fortify 插件来配置扫描步骤并上传到 SSC:( Fortify TFS plugin )。我们随后添加了一个 PowerShell 任务来尝试查询结果并在需要时使构建失败。

我们发现的示例和建议使用 FPRUtility 来查询从当前扫描生成的 .fpr 文件。但是,当前的扫描不包括开发人员之前输入的任何记录误报或被抑制问题的内容。这导致我们的构建总是失败。

我尝试查看 REST API 文档,但是,虽然 Swagger 可以轻松查看参数和契约,但我找不到任何好的文档来说明所有不同的 Controller 是什么或我需要如何编排一系列调用获取我想要的数据。

最佳答案

我找到了我需要的答案。扫描并上传到 SSC 完成后,您可以通过以下格式从 PowerShell 脚本调用问题 REST API:

[host:port]/ssc/api/v1/projectVersions/[versionid]/issues?q=[fortify+priority+order]:high+OR+[fortify+priority+order]:critical&qm=issues

因此,在 TFS 构建步骤中执行此操作的简化 PowerShell 脚本如下所示:

    $jsonResults  = Invoke-RestMethod -Method Get -Uri "https://{host:port}/ssc/api/v1/projectVersions/{projectVersionNumberHere}/issues?q=[fortify+priority+order]:high+OR+[fortify+priority+order]:critical&qm=issues" 
$undocumentedFindings = $jsonResults.data | where {$_.primaryTag -eq $null}
if ($undocumentedFindings.Count -gt 0)
{
Write-Error "Fortify detected $undocumentedFindings.Count undocumented critical and high vulnerabilities. These findings must be remediated or documented before the build can continue."
}

关于build - 如何根据 Fortify 扫描结果使 TFS 构建失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47932978/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com