TeamCity
使用 TeamCity 轻松将 Android 和 iOS 移动应用程序的 Ostorlab 自动化安全扫描集成到您的构建过程中。
使用方法:
生成 Ostorlab API 密钥
- 转到 API keys 菜单
- 点击 "new" 按钮生成一个新密钥
- 复制该 API 密钥(您可以为密钥添加名称和过期日期)
- 点击保存按钮以保存您的密钥

在 TeamCity 上将 Ostorlab 添加为命令行步骤 (Command Line Step)
-
前往您的
TeamCity项目设置并添加一个新的构建步骤 (build step)。
-
选择
Command LineRunner。
-
填写步骤配置
- 步骤名称 (Step name):选择一个名称以将此构建步骤与其他步骤区分开来;
- 选择
Custom script作为运行类型 (Runtype); - 添加以下命令作为
Custom script;请查看下方的ostorlab --api-key=%env.OSTORLAB_API_KEY% ci-scan run --title=%Scan_Title% --scan-profile=%env.SCAN_PROFILE% android-apk /tmp/OstorlabInsecureApp.apk附加选项以获取完整的选项列表。 - 该步骤应在 ostorlab 容器内运行:
- 在
Run step within container字段中添加ostorlab/oxo:latest; - 选择
Linux作为镜像平台 (Image platform); - 点击
Additional run arguments步骤中的Edit arguments; - 将应用程序挂载到 ostorlab 容器中,
-v source_path:destination_path确保-v /opt/buildagent/work/OstorlabInsecureApp.apk:/tmp/OstorlabInsecureApp.apkdestination_path与前面定义的ostorlab ci-scan run命令中的相同。
- 在

-
添加步骤参数: 例如:前一个命令使用了参数:
--title=%Scan_Title%,您可以通过以下方式定义它:- 点击
Parameters; - 点击
Add new parameter; - 填写
Name,将Kind设置为Configuration parameter,以及值和它的类型; - 点击
Save。

- 点击
-
添加环境变量 您还可以添加环境变量供
ostorlab命令使用,步骤与步骤 4 相同, 但选择Environment variable (env.)作为Kind。
所有参数:

附加选项
以下是 ostorlab ci-scan run 命令的完整选项列表:
ostorlab --api-key ci-scan run --option <asset-type> <target>
-
--api-key:Ostorlab 生成的 API 密钥。
-
--title:扫描标题
-
--scan-profile:扫描类型。可能的选项包括:
fast_scan:仅运行静态分析;full_scan:运行静态、动态和后端分析。
-
测试凭据 (Test credentials):动态分析全扫描中的自动身份验证:
- --test-credentials-login:要在登录字段中使用的用户名;
- --test-credentials-password:要在密码字段中使用的密码;
- --test-credentials-role:可选的角色字段;
- 自定义/通用测试凭据:
- --test-credentials-name:字段的自定义名称;
- --test-credentials-value:字段的自定义值
-
2FA 凭据:
- SMS 2FA:
- --sms-2fa-sender:了解有关 SMS 2FA 的更多信息
- Email 2FA:
- --email-2fa-sender-email-address, --email-2fa-email-address, --email-2fa-password:了解有关 Email 2FA 的更多信息
- TOTP 2FA:
- --totp-2fa-seed:了解有关 TOTP 2FA 的更多信息
- SMS 2FA:
-
--sbom:sbom 文件的路径。该 sbom 文件也应按照步骤 3 中指定的那样进行挂载。
-
UI 提示 (UI Prompts)(可选):Ostorlab 支持 UI 提示以引导扫描器浏览应用程序的 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
- --ui-prompt-name 和 --ui-prompt-action:通过指定名称和操作来定义一个 UI 步骤。您可以为一系列步骤添加多个键值对。例如:
-
asset-type:要扫描的资产类型。可能的值包括:
android-aab:扫描 Android.AAB包文件;android-apk:扫描 Android.APK包文件;ios-ipa:扫描 iOS.IPA包文件;
-
target:目标应用程序的路径。该应用程序应按照步骤 3 中指定的那样进行挂载。