跳转至

Ostorlab 与 GitLab 集成

在本指南中,我们将探讨如何轻松地将针对 Android 和 iOS 移动应用程序的 Ostorlab 自主安全测试集成到您的 gitlab 构建流程中。

生成新的 API 密钥

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

前往 report.ostorlab.co

菜单按钮

点击 Integrations/API 以展开

Integrations/API 展开

点击 API Keys

API 密钥

点击 New 生成新的 API 密钥

新 API 密钥

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

复制 API 密钥

不要忘记点击保存(save)按钮来保存您的密钥。

保存 API 密钥

创建 Gitlab-CI 流水线:

可用于您的 .gitlab-ci.yml 的示例

stages:
  - build
  - test

build:
  stage: build
  script:
      - Pre steps to build
      - ./gradlew assembleDebug
  artifacts:
    paths:
    - app/build/outputs/

runScanOstorlab:
  stage: test
  image: ostorlab/gitlab-ci
  variables:
    OSTORLAB_FILE_PATH: app/build/outputs/apk/debug/app-debug.apk
    OSTORLAB_PLATFORM: android
    OSTORLAB_UI_PROMPT_NAMES: "shop;profile;cart;settings"
    OSTORLAB_UI_PROMPT_ACTIONS: "search for a product named 'laptop' and add it to cart;open the profile tab and update email;review cart and proceed to checkout;open settings and enable notifications"
    OSTORLAB_UI_PROMPT_IDS: "123;456"
  script:
    - run_ostorlab.sh

必需的环境变量

  • OSTORLAB_API_KEY=API_KEY - 指定您的 API 密钥
  • OSTORLAB_FILE_PATH=FILE_PATH - 指定 Android apk 或 IOS ipa 的路径
  • OSTORLAB_PLATFORM=PLATFORM - 指定平台,android 或 ios

可选的环境变量

以下是可以从环境变量中设置的可选参数:

  • OSTORLAB_PLAN=free or static_dynamic_backend - 指定您的扫描计划(免费的社区扫描使用 free,全面分析使用 static_dynamic_backend)。
  • OSTORLAB_TITLE=My Title - 指定扫描标题。
  • OSTORLAB_WAIT_FOR_RESULTS=true - 如果您想等待扫描完成并检索结果,请设置为 true。
  • OSTORLAB_WAIT_MINUTES=30 - 指定等待的分钟数 DEFAULT=30min。
  • OSTORLAB_BREAK_BUILD_ON_SCORE=true - 设置为 true 以在扫描风险评级(risk rating)高于阈值时生成异常。
  • OSTORLAB_RISK_THRESHOLD=medium - 指定您的风险评级(risk rating)阈值。
  • OSTORLAB_UI_PROMPT_NAMES - 一个由分号分隔的 UI 提示(UI prompt)名称列表。例如:shop;profile;cart;settings。每个名称都按位置对应 OSTORLAB_UI_PROMPT_ACTIONS 中的一个操作。
  • OSTORLAB_UI_PROMPT_ACTIONS - 一个由分号分隔的 UI 提示操作列表。例如:search for a product named "laptop" and add it to cart;open the profile tab and update email;review cart and proceed to checkout;open settings and enable notifications。每个操作都按位置对应 OSTORLAB_UI_PROMPT_NAMES 中的一个名称。
  • OSTORLAB_UI_PROMPT_IDS - 一个由分号分隔的 UI 提示流 ID 列表,用于重用现有的提示流。例如:123e4567-e89b-12d3-a456-426614174000;abcdef12-3456-7890-abcd-ef1234567890。您可以除了名称/操作变量之外或者代替它们使用此项。可以提供多个 ID。 注意: 名称和操作的数量必须匹配,并且每一对名称/操作都是基于位置对应的。您可以将名称/操作和 ID 变量结合在一起使用。

在 Gitlab 流水线中添加环境变量

要在您的 Gitlab 流水线中添加环境变量,请导航至 Settings,然后进入 CI/CD,接着跳至 Variables 部分为您的流水线添加环境变量,如下所示:

添加环境变量

之后,您可以看到变量被添加到了变量列表中。

变量列表

当作业完成后,如果您选择等待扫描结果并在风险评级高于阈值时中断,那么如果其风险评级等于或高于阈值,作业可能会失败。否则,作业将成功,并显示一行指示扫描风险评级的文本。

扫描结果

本指南涵盖了将针对 Android 和 iOS 移动应用程序的 Ostorlab 自主安全测试有效且轻松地集成到您的 gitlab 构建流程中所需的步骤。