Note
Security campaigns are currently in 公共预览版 and subject to change.
创建安全性活动
安全性活动通过组织的“安全性”选项卡创建和管理****。 通过从“概述”仪表板的边栏中选择活动模板,或通过筛选组织的code scanning警报视图上显示的警报,以选择要包含在活动中的警报。
有关筛选警报的详细信息,请参阅“Best practices for fixing security alerts at scale”和“筛选安全概述中的警报”。
通过模板创建活动
活动模板包含针对最常见的警报选择的筛选器。 它们还包括以下要求:包含的所有警报类型都支持 GitHub Copilot Autofix(也就是 autofix:supported
)。
-
在 GitHub 上,导航到组织的主页面。
-
在组织名称下,单击“ 安全性”。
-
在左侧边栏中的“活动”旁边,单击“”图标以开始创建活动。
-
选择其中一个预定义的筛选器模板,以打开“通过 TEMPLATE_NAME 模板新建活动”对话框。
-
如果显示“这看起来像一个大型活动”消息,请单击“返回到筛选器”以显示code scanning警报视图,其中显示了活动模板筛选器****。
- 添加更多筛选器以减少显示的警报数量,例如,按“团队”或自定义属性进行筛选。
- 如果 100 个存储库中的警报少于 1000,请单击“创建活动”以重新显示“新建活动”对话框****。
或者,也可以单击“继续创建活动”并创建活动****。 Alerts will be omitted to until there are fewer than 1000 alerts in fewer than 100 repositories remaining. Alerts in repositories with recent pushes are prioritized for inclusion in the campaign.
-
编辑“活动名称”和“简短说明”,以匹配活动需求并链接到支持该活动的任何资源。
-
定义“活动截止日期”,并选择“活动管理员”作为活动的主要联系人(此组织的所有者或安全管理员)。
-
准备好创建活动后,单击“创建活动”****。
安全性活动随即创建,并显示活动概述页面。
使用自定义筛选器创建活动
-
在 GitHub 上,导航到组织的主页面。
-
在组织名称下,单击“ 安全性”。
-
在左侧边栏的“警报”下,单击“ Code scanning”以显示警报视图****。
-
添加筛选器,为活动选择一部分警报。 如果选择的警报少于 1000 条,并分布在少于 100 个存储库中,便已准备好创建活动。
-
在警报表上方,单击“创建活动”,开始创建活动****。
-
如果显示“这看起来像一个大型活动”消息,请单击“返回到筛选器”以显示带有现有筛选器的code scanning警报视图****。
- 添加更多筛选器以减少显示的警报数量,例如,按“团队”或自定义属性进行筛选。
- 如果 100 个存储库中的警报少于 1000,请单击“创建活动”以重新显示“新建活动”对话框****。
或者,也可以单击“继续创建活动”并创建活动****。 Alerts will be omitted to until there are fewer than 1000 alerts in fewer than 100 repositories remaining. Alerts in repositories with recent pushes are prioritized for inclusion in the campaign.
-
编辑“活动名称”和“简短说明”,以匹配活动需求并链接到支持该活动的任何资源。
-
定义“活动截止日期”,并选择“活动管理员”作为活动的主要联系人(此组织的所有者或安全管理员)。
-
准备好创建活动后,单击“创建活动”****。
有用的筛选器示例
所有模板筛选器都包含以下有用的筛选器:
is:open
仅包括在默认分支中打开的警报。autofilter:true
仅包括出现在应用程序代码中的警报。autofix:supported
仅包含针对 GitHub Copilot Autofix 支持的规则的警报。
包括这些核心筛选器后,通常需要添加筛选器以将结果限制为特定的规则名称、严重性或标记。 例如:
is:open autofilter:true autofix:supported rule:java/log-injection
用于仅显示 Java 代码中日志注入的警报。is:open autofilter:true autofix:supported tag:external/cwe/cwe-117
用于仅显示“CWE 117: 日志的输出中和不当”的警报。 这包括 Java 和其他语言的日志注入。is:open autofilter:true autofix:supported severity:critical
用于仅显示安全严重性为严重的警报
Tip
在搜索字段中输入关键字,后跟冒号时,将显示所有有效值的列表,例如:tag:
。
有关 CodeQL 运行的规则以及对自动修复的支持的详细信息,请参阅“默认查询套件的查询列表”。
启动安全性活动
创建活动时,所有警报都会自动提交到 GitHub Copilot Autofix,以便在容量允许的情况下进行处理。 这可确保在拉取请求中找到的警报建议不会因新活动而延迟。 在大多数情况下,你应该会发现所有可创建的建议都在一小时内准备就绪。 在一天中的繁忙时段或对于特别复杂的警报,将需要更长的时间。
开发人员如何知道安全性活动已启动
对活动中包含的存储库具有写入访问权限的每个人都会收到有关活动的通知,具体取决于他们的通知首选项****。
Note
在公共预览版期间,通知仅发送给已启用电子邮件通知的用户。
除了自动发送的通知外,新活动还会在包含的每个存储库边栏中的“安全性”选项卡中显示。 有关开发人员体验的详细信息,请参阅“Fixing alerts in a security campaign”。
如何提高与安全性活动的参与度
提升活动参与度的最佳方法是将其公布给要进行协作以修正警报的团队。 例如,你可能与工程经理合作,选择一个较安静的开发期来运行一系列安全性活动,每项活动都侧重于不同类型的警报,并具有相关培训课程。 有关详细信息,请参阅“Best practices for fixing security alerts at scale”。
跟踪安全性活动
创建活动时,活动跟踪视图随即显示,并且活动列在组织的“安全性”选项卡的边栏中****。 可随时通过选择边栏“活动”下的活动跟踪视图来重新显示活动跟踪视图。
安全性活动警报状态
活动视图顶部的摘要报告了已关闭、打开和正在进行的警报数。
- 正在进行:当至少创建一个分支或拉取请求以通过活动视图或警报页面修复警报时****。
- 已关闭:当警报得到修复或关闭时,即使开发工作在活动框架之外完成****。
安全性活动视图
可以浏览活动存储库和警报,了解团队参与活动的位置,以及团队可能需要一些额外鼓励才能参与的位置。
- 存储库详细信息:可以展开任意存储库以显示警报修正的进度****。
- 警报详细信息:可以将“分组依据”选项设置为“无”以显示所有警报的列表********。
可以筛选这两个视图,以专注于存储库或警报的子集。 任何正在进行的警报都会先列出来。
编辑安全性活动详细信息
可以编辑活动的名称、说明、截止日期和管理员。 如果当前活动管理员正在休假,并且你需要为开发人员定义新联系人,则此功能特别有用。
-
在 GitHub 上,导航到组织的主页面。
-
在组织名称下,单击“ 安全性”。
-
在边栏中的“活动”下,单击活动名称以显示活动跟踪视图。
-
在活动标题行中,单击“”并选择“编辑活动”****。
-
在“编辑活动”对话框中进行更改,然后单击“保存更改”****。
更改将立即生效。
关闭或删除安全性活动
可用活动的数量限制为 10 个。 活动完成后,或者如果要暂停活动,应将其关闭。 关闭活动后,该活动将不再在存储库“安全性”选项卡中向开发人员显示,但你仍可显示活动跟踪视图以开发最佳做法****。 此外,还可以从“已关闭的活动”视图重新打开已关闭的活动,该视图可从组织“安全性”选项卡的边栏进行访问****。
如果你打开某个活动进行测试,建议删除该活动。 这将完全删除该活动和所有相关数据。
-
在 GitHub 上,导航到组织的主页面。
-
在组织名称下,单击“ 安全性”。
-
在边栏中的“活动”下,单击活动名称以显示活动跟踪视图。
-
在活动标题行中,单击“”并选择所需的选项:
- “关闭活动”用于将其从可用活动列表中删除,并将其显示在“已关闭的活动”视图中****。
- “删除活动”用于永久删除活动****。 在“删除活动”对话框中,单击“删除”以确认要删除该活动****。