跳转至

Ostorlab 与 Jenkins 集成

1. 生成新的 API 密钥

第一步是生成 API 密钥。为此,只需遵循以下步骤:

前往 report.ostorlab.co

Menu 按钮

单击 Integrations/API 展开

Integrations/API 展开

单击 API Keys

API 密钥

单击 New 生成新的 API 密钥

新 API 密钥

复制 API 密钥。您还可以为密钥添加名称和到期日期。

复制 API 密钥

不要忘记单击保存按钮来保存您的密钥。

保存 API 密钥

2. 将 Ostorlab 的 API 密钥添加到 Jenkins 凭据中

在 Jenkins 主仪表板中,单击 Add Credentials 按钮。

Add Credentials 按钮

在 Kind 下拉列表中,选择 Secret text。

选择 Secret Text

在 ID 字段中输入 apiKey

输入 API 密钥 ID

在 Secret 字段中输入您的 API 密钥。

输入 API 密钥 Secret

输入描述以识别该密钥

输入描述

单击 create 保存凭据。

创建凭据

Freestyle 项目

要在您的 freestyle 项目中定义 jenkins 作业,请按照以下步骤操作:

在您的 Build Environment 中,将 Secret text 绑定添加到您的 Jenkins 项目配置中,并输入以下信息:

添加 Secret text 绑定

向您的 Jenkins 项目配置添加一个 "Run Ostorlab Security Scanner" 构建步骤。

添加 Security Scanner 步骤

并输入以下信息:

您要扫描的移动应用程序的 file_path

输入文件路径

单击 Advanced settings 以配置您的运行:

高级设置

输入 scan_title

输入扫描标题

选择 platform 是 Android 还是 iOS。

选择平台

选择用于扫描的 scan_profile。您可以选择用于快速静态分析的 Fast Scan,或用于全静态、动态和后端分析的 Full Scan。

选择扫描配置文件

wait_for_results,该选项会暂停作业直到安全分析完成或超时。

等待结果

max_wait_minutes,这是作业超时前要等待的时长。

最大等待分钟数

break_build_on_higher_security_risk_threshold,如果选择该选项,如果发现结果的风险等于或超过指定的阈值,Jenkins 作业将会失败。

在达到风险阈值时中断构建

security_risk_threshold,将导致构建失败的最低风险阈值。

安全风险阈值

credentials,在动态测试期间使用。

名称对应于视图中字段的 ID 或标签(例如 username 或 password)。

值对应于要在字段中键入的输入内容。

凭据

启动您的移动构建,您将在 artifacts 文件夹中看到扫描风险。

Artifacts 中的扫描风险

Jenkins 流水线

此外,您也可以在 Jenkins Pipeline 的情况下进行集成。

下面是一个用于运行扫描的示例步骤:

Pipeline 步骤

pipeline {
    agent any
    environment {
        apiKey = credentials('apiKey')
        jsonCredentials = "${params.Credentials}"
    }
    parameters { string(name: 'Credentials', defaultValue: '[{"name": "username", "value": "MyUsername"}, {"name": "password", "value": "MyPassword"}]', description: '') }
    stages {
        stage('security-test') {
            steps {
                step([$class: 'OPlugin', apiKey:env.apiKey, Jsoncredentials:env.jsonCredentials, filePath: '/home/asasas/IdeaProjects/ostorlab-plugin/work/workspace/as/InsecureBankv2.apk', 
                scanProfile: 'Fast Scan', platform: 'android'])
            }
        }
    }
}

支持的参数列表:

  • filePath:(必填)输入移动应用程序的路径。
  • apiKey:(必填)输入用于验证 API 请求的 API 密钥。
  • scanProfile:选择要运行的扫描配置文件。您可以选择用于快速静态分析的 Fast Scan,或用于全静态、动态和后端分析的 Full Scan。
  • platform:设置平台类型 [android, iOS]。
  • waitForResults:(可选)暂停作业直到安全分析完成或超时。
  • waitMinutes:(可选)作业超时前要等待的时长。
  • breakBuildOnScore:(可选)如果设置为 true,如果发现结果的风险等于或超过阈值,该步骤将失败。
  • riskThreshold:(可选)将导致构建失败的最低风险阈值。
  • JsonCredentials:(可选)用于动态测试的凭据。它应该是一个作为有效 JSON 的字符串: [{"name": "username", "value": "MyUsername"}, {"name": "password", "value": "MyPassword"}]
  • title:(可选)输入扫描标题。