跳转至

Harness 集成指南

轻松将适用于 Android 移动应用程序的 Ostorlab 自动化安全扫描集成到您的 Harness CI 管道中。


生成 Ostorlab API 密钥

  1. 导航至 API 密钥菜单
  2. 点击 New 按钮以生成新密钥
  3. 复制 API 密钥(您可以为密钥添加名称和过期日期)
  4. 点击 Save 按钮以保存您的密钥

API 密钥创建


将 API 密钥添加为 Secret

  1. 导航至 Projects settings
  2. 导航至 Secrets
  3. 将 Ostorlab API 密钥添加并保存为 secret

添加 Secret


在您的 Harness CI 管道中添加运行步骤

  1. 导航至您的管道
  2. 如果您还没有 build 阶段,请添加一个
  3. 添加新的运行步骤并将脚本插入到命令部分
python3 -m venv $HARNESS_WORKSPACE/venv

$HARNESS_WORKSPACE/venv/bin/pip install ostorlab

$HARNESS_WORKSPACE/venv/bin/ostorlab \
  --api-key=<+secrets.getValue("OSTORLAB_API_KEY")> \
  ci-scan run \
  --title="SCAN_TITLE" \
  --scan-profile="$SCAN_PROFILE" \
  android-apk $HARNESS_WORKSPACE/$APP_PATH

添加运行步骤


在您的运行步骤设置中的 Optional Configurations 里,您可以添加环境变量来配置扫描。

添加环境变量

在 yaml 中添加步骤

除了在 Harness UI 中手动添加步骤,您也可以在 yaml 中如下添加:

- step:
    type: Run
    name: ostorlab scan
    identifier: Run_1
    spec:
      shell: Bash
      command: |-
        python3 -m venv $HARNESS_WORKSPACE/venv
        $HARNESS_WORKSPACE/venv/bin/pip install ostorlab
        $HARNESS_WORKSPACE/venv/bin/ostorlab \
          --api-key=<+secrets.getValue("OSTORLAB_API_KEY")> \
          ci-scan run \
          --title="$SCAN_TITLE" \
          --scan-profile="$SCAN_PROFILE" \
          android-apk $HARNESS_WORKSPACE/$APP_PATH
      envVariables:
        SCAN_TITLE: from harness ci
        SCAN_PROFILE: fast_scan
        APP_PATH: app.apk

附加选项

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

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

  • --title:扫描标题。

  • --scan-profile:扫描类型。可用选项包括:

    1. `fast`:仅运行静态分析;
    2. `full`:运行静态、动态和后端分析。
  • 测试凭据:全扫描动态分析中的自动身份验证:

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

  • --sbom:sbom 文件的路径。sbom 文件也应按步骤 3 中指定的那样挂载。

  • --ui-prompt-name:传递给 Ostorlab CLI 的 UI 提示的名称。

  • --ui-prompt-action:传递给 Ostorlab CLI 的 UI 提示的操作。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:传递给 Ostorlab CLI 的现有 UI 提示 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:目标应用程序的路径。应用程序应按步骤 3 中指定的那样挂载。