コンテンツにスキップ

Harness統合ガイド

Androidモバイルアプリケーション向けのOstorlabの自動化されたセキュリティスキャンをHarness CIパイプラインに簡単に統合できます。


Ostorlab APIキーの生成

  1. API keysメニューに移動します。
  2. Newボタンをクリックして、新しいキーを生成します。
  3. APIキーをコピーします(キーには名前と有効期限を追加できます)。
  4. Saveボタンをクリックしてキーを保存します。

APIキーの作成


APIキーをSecretとして追加する

  1. Projects settingsに移動します。
  2. Secretsに移動します。
  3. Ostorlab APIキーをシークレットとして追加し、保存します。

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のリスト。これにより、以前に定義したUIプロンプトフローをそのIDによって再利用できます。引数を複数回追加することで、複数のプロンプト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で指定したようにマウントする必要があります。