跳转至

GoCD

轻松将针对 Android 和 iOS 移动应用程序的 Ostorlab 自动安全扫描集成到您的 GoCd 构建流程中。

用法:

生成 Ostorlab API 密钥

  1. 访问 API 密钥菜单
  2. 点击新建 (new) 按钮生成新密钥
  3. 复制 API 密钥(您可以为密钥添加名称和过期日期)
  4. 点击保存 (save) 按钮保存您的密钥

Ostorlab API Key Generation

将 Ostorlab 作为命令行阶段添加到 GoCd

  1. 前往您的 GoCd 仪表板并选择您的管道。

    GoCd Dashboard

  2. 点击管道上的 Edit

    GoCd Edit Pipeline

  3. 选择 Stages。

    GoCd Stages

  4. 添加新阶段 (stage) 并填写表单。

    • 初始作业类型选择 Custom Command
    • 并提供以下参数:
    • Command: bash
    • Arguments: |
      -c
      pip install ostorlab
      
    • 点击保存。

    GoCd New Stage

  5. 导航至 JOBS 选项卡并选择新添加的作业。

    GoCd Jobs

  6. 再添加一个任务来运行作业。

    • 点击添加类型为 Custom Command 的 Task。
    • 并提供以下参数:
    • Command: bash
    • Arguments: |
      -c
      ostorlab --api-key=$OSTORLAB_API_KEY ci-scan run --title=$Scan_Title --scan-profile=$SCAN_PROFILE android-apk /path/to/app.apk
      
      请查看下面的 Additional options 以获取完整的选项列表。

    GoCd Add Command

  7. 添加环境变量

    • 导航至 ENVIRONMENT VARIABLES 选项卡。
    • OSTORLAB_API_KEY 添加为 Secure Variable
    • 将其他变量(Scan_Title, SCAN_PROFILE, ...)添加为 Plain Text Variables

    GoCd Environment Variables

其他选项

以下是 ostorlab ci-scan run 命令的完整选项列表:

    ostorlab --api-key ci-scan run --option <asset-type> <target>
  • --api-key: Ostorlab 生成的 API 密钥。

  • --title: 扫描标题 (Scan title)。

  • --scan-profile: 扫描类型。可选选项为:

    1. fast_scan: 仅运行静态分析;
    2. full_scan: 运行静态、动态和后端分析。
  • 测试凭据 (Test credentials):动态分析全面扫描中的自动身份验证:

    • --test-credentials-login: 用于登录字段的用户名;
    • --test-credentials-password: 用于密码字段的密码;
    • --test-credentials-role: 可选的角色字段;
    • 自定义/通用测试凭据:
      • --test-credentials-name: 字段的自定义名称;
      • --test-credentials-value: 字段的自定义值
  • 2FA 凭据 (2FA Credentials):

  • --sbom: sbom 文件的路径。

  • UI 提示(可选): Ostorlab 支持 UI 提示以引导扫描器通过您应用的用户界面。您可以使用:

    • --ui-prompt-name--ui-prompt-action: 通过指定名称和操作来定义 UI 步骤。您可以为一系列步骤添加多个键值对。例如:
      --ui-prompt-name accept-terms --ui-prompt-action "Scroll down and tap the 'Accept Terms' checkbox."
      --ui-prompt-name submit --ui-prompt-action "Tap the 'Submit' button to complete the login process."
      
    • --ui-prompt-id: 通过 ID 引用现有的 UI 提示流。您可以添加多个 ID。例如:
      --ui-prompt-id 123 --ui-prompt-id 456
      
  • asset-type: 要扫描的资产类型。可能的值:

    • android-aab: 扫描 Android .AAB 包文件;
    • android-apk: 扫描 Android .APK 包文件;
    • ios-ipa: 扫描 iOS .IPA 包文件;
  • target: 目标应用程序的路径。