Ostorlab Github Action
1. 生成新的 API 密钥
要使用 Ostorlab Github Action,第一步是生成 API 密钥。为此,只需遵循以下步骤:
前往 report.ostorlab.co
单击 Menu 按钮

单击 Integrations/API 展开

单击 API Keys

单击 New 生成新的 API 密钥

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

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

2. 将 Ostorlab Github Action 添加到您的工作流程
生成 API 后,将其添加到 GitHub Secrets。确保名称与 YAML 文件中的 secrets. 匹配。您可以按照 此链接 的 Github 文档中的步骤获取更详细的说明。

下一步是更新您的工作流程,添加一个 Ostorlab 步骤来触发扫描。以下是在 Android APK 上执行快速扫描,并在遇到 HIGH 严重性漏洞时使管道失败的示例。
on: [push]
jobs:
ostorlab_test:
runs-on: ubuntu-latest
name: Test ostorlab ci actions.
steps:
- uses: actions/checkout@v2
- name: build ostorlab.apk
run: mv InsecureBankv2.apk ostorlab.apk
- name: Launch Ostorlab scan
id: start_scan
uses: Ostorlab/ostorlab_actions@v2.1.0
with:
scan_profile: fast_scan # 指定用于扫描的扫描配置文件(请参阅扫描部分)。
asset_type: android-apk # 要扫描的资产类型。
target: ostorlab.apk # 要扫描的目标的路径。
scan_title: title_scan_ci # 为您的扫描输入标题。
ostorlab_api_key: ${{ secrets.ostorlab_api_key }} # 您的密钥 api key。
break_on_risk_rating: HIGH # 等待扫描结果,如果扫描风险较高,则强制该 action 失败
max_wait_minutes: 30
- name: Get scan id
run: echo "Scan Created with id ${{ steps.start_scan.outputs.scan_id }} you can access the full report at https://report.ostorlab.co/scan/${{ steps.start_scan.outputs.scan_id }}/"
3. 扫描 Web 应用程序
除了移动应用程序外,Ostorlab 还支持通过 GitHub 工作流程扫描 Web 应用程序。要扫描 Web 应用程序,请按如下示例配置您的工作流程:
on: [push]
jobs:
ostorlab_web_scan:
runs-on: ubuntu-latest
name: Test ostorlab web scan.
steps:
- uses: actions/checkout@v2
- name: Launch Ostorlab web scan
id: start_scan
uses: Ostorlab/ostorlab_actions@v2.1.0
with:
scan_profile: full_web_scan
asset_type: link --url
target: https://target1.ostorlab.co --url https://target2.ostorlab.co --url https://target3.ostorlab.co
scan_title: web_scan_ci
ostorlab_api_key: ${{ secrets.ostorlab_api_key }}
break_on_risk_rating: HIGH
max_wait_minutes: 60
- name: Get scan id
run: echo "Scan Created with id ${{ steps.start_scan.outputs.scan_id }} you can access the full report at https://report.ostorlab.co/scan/${{ steps.start_scan.outputs.scan_id }}/"
对于 Web 应用程序扫描:
- 使用 scan_profile: full_web_scan
- 设置 asset_type: link --url
- 对每个额外的 URL 使用 --url 标志列出您的目标 URL
Ostorlab Github actions 采用以下输入:
scan_profile,这是一个必需的选项,它指定扫描配置文件,可以是仅用于快速静态分析的 fast scan,用于全静态、动态和后端覆盖的 full_scan,或者是用于 Web 应用程序扫描的 full_web_scan。

asset_type,一个必需的选项,它指定目标资产类型,例如,Android APK、iOS IPA 或 Web 应用程序的链接。

target,一个必需的选项。这是要扫描的目标文件或 Web 应用程序的 URL。

scan_title,一个可选选项。这是用于标识您的扫描的标题。

ostorlab_api_key,一个必需选项。您可以从 ostorlab 仪表板中获取它,在 Integrations/API 中,然后是 API Keys。

break_on_risk_rating,一个可选选项。如果扫描结果等于或高于提供的值,则此风险等级会中断管道。

max_wait_minutes,一个可选选项。这是最大等待时间(分钟),如果扫描超时,管道不会失败。如果您想在不等待的情况下运行扫描,请删除此选项。

extra,一个可选选项。这是传递给 Ostorlab CLI 的额外参数。常见的用例是传递扫描测试凭据。

您可以提供您的 SBOM 或 Lock 文件以增强扫描分析,要做到这一点,请使用 extra 输入来传递 SBOM,例如要添加 package lock dot json 文件,请使用以下示例:

在这里您可以看到受支持的文件的列表:

Ostorlab 支持执行具有简单登录密码的身份验证测试,或使用名称或标签标识并传递值的自定义输入执行身份验证测试。为了传递测试凭据,由于 Github YAML Action 不支持传递复杂对象,因此您可以使用 extra 输入传递测试凭据。例如,要添加登录和密码以及具有自定义名称和值的自定义凭据,请添加以下输入:

至于 action 的输出,可以使用以下语法访问 scan_id:${{ steps.STEP_ID.outputs.scan_id }}。
3. 使用 Ostorlab Security Scanner GitHub App 直接在您的 PR 中提供可操作的见解
Ostorlab Security Scanner GitHub App 应与步骤 1 和 2 中说明的 Ostorlab Github Actions 工作流程结合使用。
Ostorlab Security Scanner GitHub App 旨在通过直接在 Pull Requests 中提供可操作的见解来帮助开发人员提高其代码安全性。 它将安全性集成到开发工作流程中,主要目标是准确地找出引入漏洞的代码片段, 提供可操作的见解以及您可以自动提交的代码建议。 本文档提供了有关如何设置和使用该 App 的说明。
- 添加 GitHub App:
- 导航至 Ostorlab Security Scanner App。

- 单击 Add。

- 选择您希望在其中安装应用的帐户。
- 单击 Install for free。

- 提供必要的权限:
- 对 pull requests 的 Read & Write 访问权限。
- 存储库的 Metadata 访问权限。

-
单击 Install 完成设置。

-
如何使用:
- 下一步是如步骤 1 和 2 中所述更新您的工作流程,添加一个 Ostorlab 步骤以触发扫描。

- 创建一个包含了使用 Ostorlab 更新的工作流程的 pull request。
扫描完成后,Ostorlab Security Scanner 将自动对您的 pull request 发表评论,准确指出漏洞是在哪里引入的,并提供修复的代码片段。

本指南概述了成功利用 Ostorlab GitHub Action 和 Ostorlab Security Scanner App 所需的步骤,包括生成新的 API 密钥、探索各种 action 输入、安装 app 以及查看结果。