コンテンツにスキップ

Ostorlab GitHub Action

1. 新しいAPIキーを生成する

Ostorlab Github Actionを使用するには、まずAPIキーを生成する必要があります。これを行うには、次の手順に従います。

report.ostorlab.co に移動します。

Menuボタン

Integrations/APIをクリックして展開します。

Integrations/API展開

API Keysをクリックします。

API Keys

Newをクリックして新しいAPIキーを生成します。

新しいAPIキー

APIキーをコピーします。キーに名前と有効期限を追加することもできます。

APIキーをコピー

保存ボタンをクリックしてキーを保存することを忘れないでください。

APIキーを保存

2. ワークフローにOstorlab Github Actionを追加する

APIを生成したら、それをGitHub Secretsに追加します。YAMLファイルのsecrets.に一致する名前であることを確認してください。詳細な手順については、次のリンク のGithubドキュメントの手順に従うことができます。

GitHub Secrets

次のステップは、スキャンをトリガーする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キー。
          break_on_risk_rating: HIGH # スキャン結果を待ち、スキャンのリスクがそれ以上の場合にアクションを強制的に失敗させます
          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アクションは、次の入力を受け取ります。

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」から取得できます。

Ostorlab APIキー

break_on_risk_rating:オプションです。スキャン結果が指定された値以上の場合にパイプラインを中断するためのリスク評価です。

リスク評価での中断

max_wait_minutes:オプションです。最大待機時間(分単位)です。スキャンがタイムアウトした場合、パイプラインは失敗しません。待たずにスキャンを実行したい場合は、このオプションを削除してください。

最大待機時間(分)

extra:オプションです。Ostorlab CLIに渡す追加の引数です。一般的なユースケースは、スキャンのテスト認証情報を渡すことです。

追加の引数

SBOMまたはLockファイルを提供してスキャン解析を強化できます。これを行うには、extra入力を使用してSBOMを渡します。たとえば、package lock dot jsonファイルを追加するには、次の例を使用します。

SBOMの例

ここにサポートされているファイルのリストが表示されます。

サポートされているファイル

Ostorlabは、シンプルなログインパスワード、または名前やラベルで識別されて値を渡すカスタム入力による認証済みテストの実行をサポートしています。GithubのYAML Actionは複雑なオブジェクトの受け渡しをサポートしていないため、テスト認証情報を渡すには、extra入力を使用できます。たとえば、ログインとパスワード、およびカスタム名と値を持つカスタム認証情報を追加するには、次の入力を追加します。

テスト認証情報

アクションの出力については、次の構文を使用して 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のセットアップ方法と使用方法について説明します。

  1. GitHub Appの追加:
  2. Ostorlab Security Scanner App に移動します。
    Ostorlab Security Scanner App
  3. Addをクリックします。
    アプリの追加
  4. アプリをインストールするアカウントを選択します。
    アカウントの選択
  5. Install for freeをクリックします。
    無料でインストール
  6. 必要な権限を提供します。
    • Pull requestsへの Read & Write アクセス。
    • リポジトリの Metadata アクセス。
      権限
  7. Installをクリックしてセットアップを完了します。
    セットアップの完了

  8. 使用方法:

  9. 次のステップは、ステップ1と2で説明したようにスキャンをトリガーするOstorlabステップを追加するためにワークフローを更新することです。 ワークフローの更新
  10. Ostorlabで更新されたワークフローを組み込んだプルリクエストを作成します。 プルリクエストの作成 スキャンが完了すると、Ostorlab Security Scannerは自動的にプルリクエストにコメントし、脆弱性が導入された場所を正確に特定し、修正のコードスニペットを提供します。 PRレビュー スキャン結果

このガイドでは、新しいAPIキーの生成、さまざまなアクション入力の探索、アプリのインストール、結果の表示など、Ostorlab GitHub ActionとOstorlab Security Scanner Appを正常に利用するために必要な手順を説明しました。