处理事件和非事件问题
支持以下类型的问题:
- 事件问题,可能由于在代码或已部署工件中找到的漏洞或 CVE 而产生。
- 非突发事件问题,这些问题并非由漏洞产生,而是表示与合规性态势的偏差。 例如,单元测试失败和分支保护检查失败。
向问题添加缺省受托人
您可以使用 incident-assignees
管道参数为问题定义多个缺省受托人。 incident-assignees
参数只能与 GitHub 帐户和 GitLab Premium 帐户配合使用。 有关 incident-assignees
参数的更多信息,请参阅 向用户分配问题。
您还可以使用 incident-assignee
管道参数为管道设置缺省问题受理人,但是不推荐使用此参数,将使用 v1 证据 (旧) 集合来除去此参数。
过滤问题
您可以使用缺省标签和定制标签来过滤和搜索问题。 创建或更新时,会将以下缺省标签分配给问题:
- 用于问题处理的 扫描类型 将作为工具标签 (例如,
tool:cra
,tool:va
和tool:sonarqube
) 添加到突发事件问题。 - 还会将严重性标签分配给问题。 严重性类别是根据扫描结果定义的,可以是下列其中一项:
severity:critical
,severity:high
,severity:medium
,severity:low
和severity:informational
。 has-exempt
是特定于 VA 工具的标签,如果根据扫描结果对其进行了豁免,那么会将其分配给问题。 如果exempt
状态未包含在扫描结果中,那么您可以通过分配exempt
标签并在注释中添加指向豁免问题凭单源的链接来手动豁免问题。 有关更多信息,请参阅 免除。 如果问题标记为exempt
,请重新运行 CI 管道。 否则,管道不会生成新证据。
您还可以为 incident-labels
管道参数的问题添加缺省标签。 有关更多信息,请参阅 标记问题。
在 Git Repos and Issue Tracking 上搜索
使用 Git Repos and Issue Tracking时,可以在 UI 中以各种方式搜索问题。 例如,可以按标题,正文或注释中的文本进行过滤。 您还可以按任何标签进行过滤。
有关更多信息,请参阅以下文档:
- 如何 搜索 GitLab。
- 如何 在 GitHub 上搜索。
标记问题
由持续集成 (CI) 或持续合规性 (CC) 管道创建的问题可以具有缺省标签。
任何扫描工具创建的问题都包含缺省 severity
标签。 严重性级别为 informational
,low
,medium
,high
或 critical
。 示例标签如下: severity:informational
,severity:low
,severity:medium
,severity:high
或 severity:critical
。 如果扫描工具中没有严重性信息,那么会将缺省 severity:high
标签附加到问题。
要设置问题的缺省标签,请将 incident-labels
环境属性设置为一个或多个以逗号分隔的标签。 例如,First-Label
或 First-Label,Second-Label
。
管道将这些标签附加到由 collect-evidence
脚本创建的问题。
您可以针对每个触发器定义此环境属性,以便每个触发器可以分配不同的用户。
将问题分配给用户
由持续集成 (CI) 或持续合规性 (CC) 管道创建的问题可能具有缺省受托人。
要分配缺省受托人,请将 incident-assignees
环境属性设置为一个或多个以逗号分隔的用户名。 例如,First-User
或 First-User,Second-User
。 有关 incident-assignees
环境属性的更多信息,请参阅 管道参数。
管道采用这些用户名,并将其分配给 collect-evidence
脚本创建的突发事件问题。 如果用户名无效,那么日志会提供有关分配失败的警告,但证据收集成功。
您可以针对每个触发器定义此环境属性,以便每个触发器可以分配不同的用户。
免除
如果要将问题标记为永久豁免,请将 exempt
标签添加到该问题,以便该问题不会阻止部署。 但是,该问题仍显示在部署的变更请求中。 作为最佳实践,请将豁免的来源 (例如,问题凭单) 链接到注释中的问题,以便复审者了解豁免问题的原因。 具有豁免标签的问题将永久打开。
如果要使用定制标签标记永久免除的问题,请将该标签添加到问题中,然后将 custom-exempt-label
可选参数添加到 CI 和 CC 管道中,该参数的值与定制标签的值相同。
如果将问题标记为已免除,那么需要重新运行 CI 管道。 否则,它不会产生新的证据。
问题管理的最佳实践
扫描工具提供了可隐藏某些问题的排除或忽略列表功能。 建议不要使用这些函数,因为它们会通过在应用程序代码中掩埋忽略列表来绕过正确的风险管理过程。 忽略列表可能不受安全焦点的控制。 相反,使用 DevSecOps CI、CD 和 CC 管道,通过自动跟踪 Git 问题中的偏差和事件,管理安全和合规风险。 管道还会捕获免除,到期日期,受让人和标签,这是透明管理问题的最佳实践。