教程:设置合并请求审批策略
- 等级:Ultimate
- 服务类型:GitLab.com, GitLab Self-Managed, GitLab Dedicated
本教程将向您展示如何创建和配置 合并请求审批策略。这些策略可以根据扫描结果设置采取相应的操作。 例如,在本教程中,您将设置一个策略:如果在合并请求中检测到漏洞,则需要两位指定用户的审批。
设置合并请求审批策略的步骤:
开始之前
- 本教程使用的命名空间必须至少包含三个用户,包括您自己。如果您没有其他两个用户,必须先创建他们。详细信息请参阅 创建用户。
- 您需要有权在现有组中创建新项目。
创建测试项目
- 在左侧边栏顶部,选择 新建 ( ) 和 新项目/仓库。
- 选择 创建空白项目。
- 填写字段。
- 项目名称:
sast-scan-result-policy。 - 选中 启用静态应用程序安全测试 (SAST) 复选框。
- 项目名称:
- 选择 创建项目。
- 转到新创建的项目并创建 受保护分支。
添加合并请求审批策略
接下来,您将为测试项目添加合并请求审批策略:
-
在左侧边栏,选择 搜索或转到 并找到
sast-scan-result-policy项目。 -
选择 安全 > 策略。
-
选择 新策略。
-
在 合并请求审批策略 中,选择 选择策略。
-
填写字段。
- 名称:
sast-scan-result-policy - 策略状态:已启用
- 名称:
-
添加以下规则:
如果 |安全扫描| 来自 |SAST| 在针对 |所有受保护分支| 的开放合并请求中找到超过 |0| |所有严重性级别| |所有漏洞状态| 的漏洞 -
将 操作 设置为:
THEN 要求以下审批者中的 | 2 | 人批准: -
选择两个用户。
-
选择 通过合并请求配置。
应用程序会创建一个新项目来存储链接到它的策略,并创建一个合并请求来定义该策略。
-
选择 合并。
-
在左侧边栏,选择 搜索或转到 并找到
sast-scan-result-policy项目。 -
选择 安全 > 策略。
您可以看到之前步骤中添加的策略列表。
测试合并请求审批策略
做得好,您已经创建了合并请求审批策略。要测试它,请创建一些漏洞并检查结果:
-
在左侧边栏,选择 搜索或转到 并找到
sast-scan-result-policy项目。 -
选择 代码 > 仓库。
-
从 添加 ( ) 下拉列表中,选择 新建文件。
-
在 文件名 字段中输入
main.ts。 -
在文件内容中,复制以下内容:
// 非字面量 require - tsr-detect-non-literal-require var lib: String = 'fs' require(lib) // 使用变量的 eval - tsr-detect-eval-with-expression var myeval: String = 'console.log("Hello.");'; eval(myeval); // 不安全的正则表达式 - tsr-detect-unsafe-regexp const regex: RegExp = /(x+x+)+y/; // 非字面量正则表达式 - tsr-detect-non-literal-regexp var myregexpText: String = "/(x+x+)+y/"; var myregexp: RegExp = new RegExp(myregexpText); myregexp.test("(x+x+)+y"); // 标记转义已禁用 - tsr-detect-disable-mustache-escape var template: Object = new Object; template.escapeMarkup = false; // 检测 HTML 注入 - tsr-detect-html-injection var element: Element = document.getElementById("mydiv"); var content: String = "mycontent" Element.innerHTML = content; // 时序攻击 - tsr-detect-possible-timing-attacks var userInput: String = "Jane"; var auth: String = "Jane"; if (userInput == auth) { console.log(userInput); } -
在 提交信息 字段中,输入
Add vulnerable file。 -
在 目标分支 字段中,输入
test-branch。 -
选择 提交更改。新建合并请求 表单将打开。
-
选择 创建合并请求。
-
在新的合并请求中,选择
Create merge request。等待流水线完成。这可能需要几分钟时间。
合并请求安全小部件确认安全扫描检测到一个潜在的漏洞。根据合并请求审批策略的定义,该合并请求被阻止并等待批准。
您现在知道如何设置和使用合并请求审批策略来捕获漏洞了!