コンテンツにスキップ

OstorlabとJenkinsの統合

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

最初のステップは、APIキーを生成することです。これを行うには、次の手順に従います。

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

Menuボタン

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

Integrations/API展開

API Keysをクリックします。

API Keys

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

新しいAPIキー

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

APIキーをコピー

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

APIキーを保存

2. OstorlabのAPIキーをJenkinsのCredentialsに追加する

Jenkinsのメインダッシュボードから、Add Credentialsボタンをクリックします。

Add Credentialsボタン

Kindのドロップダウンリストで、Secret textを選択します。

Secret textの選択

IDフィールドに apiKey を入力します。

APIキーIDの入力

SecretフィールドにAPIキーを入力します。

APIキーSecretの入力

キーを識別するための説明を入力します。

説明の入力

createをクリックして認証情報を保存します。

Credentialsの作成

Freestyleプロジェクト

freestyleプロジェクトでjenkinsジョブを定義するには、次の手順に従います。

Build Environmentで、Jenkinsプロジェクト構成にSecret textバインディングを追加し、次の情報を入力します。

Secret textバインディングの追加

Jenkinsプロジェクト構成に「Run Ostorlab Security Scanner」ビルドステップを追加します。

Security Scannerステップの追加

そして、次の情報を入力します。

スキャンしたいモバイルアプリケーションファイルへの file_path

ファイルパスの入力

Advanced settingsをクリックして、実行を構成します。

高度な設定

scan_title を入力します。

スキャンタイトルの入力

platform がAndroidかiOSかを選択します。

プラットフォームの選択

スキャンに使用する scan_profile を選択します。迅速な静的解析のためのFast Scanか、完全な静的、動的、バックエンド解析のためのFull Scanを選択できます。

スキャンプロファイルの選択

セキュリティ分析が完了するかタイムアウトするまでジョブを一時停止する wait_for_results

結果の待機

ジョブがタイムアウトするまでの待機時間である max_wait_minutes

最大待機時間(分)

選択されている場合、検出結果のリスクが指定されたしきい値以上の場合にJenkinsジョブが失敗する break_build_on_higher_security_risk_threshold

リスクしきい値でのビルドの中断

ビルドを失敗させる最小のリスクしきい値である security_risk_threshold

セキュリティリスクしきい値

動的テスト中に使用される credentials

名前は、ビューのフィールドのIDまたはラベル(usernameやpasswordなど)に対応します。

値は、フィールドに入力する入力値に対応します。

認証情報

モバイルビルドを開始すると、artifactsフォルダにスキャンのリスクが表示されます。

アーティファクトのスキャンリスク

Jenkinsパイプライン

さらに、Jenkins Pipelineの場合でも統合を行うことができます。

以下は、スキャンを実行するためのサンプルステップです。

パイプラインステップ

pipeline {
    agent any
    environment {
        apiKey = credentials('apiKey')
        jsonCredentials = "${params.Credentials}"
    }
    parameters { string(name: 'Credentials', defaultValue: '[{"name": "username", "value": "MyUsername"}, {"name": "password", "value": "MyPassword"}]', description: '') }
    stages {
        stage('security-test') {
            steps {
                step([$class: 'OPlugin', apiKey:env.apiKey, Jsoncredentials:env.jsonCredentials, filePath: '/home/asasas/IdeaProjects/ostorlab-plugin/work/workspace/as/InsecureBankv2.apk', 
                scanProfile: 'Fast Scan', platform: 'android'])
            }
        }
    }
}

サポートされているパラメータのリスト:

  • filePath: (必須)モバイルアプリケーションのパスを入力します。
  • apiKey: (必須)APIリクエストを認証するためのAPIキーを入力します。
  • scanProfile: 実行するスキャンプロファイルを選択します。迅速な静的解析のためのFast Scanか、完全な静的、動的、バックエンド解析のためのFull Scanを選択できます。
  • platform: プラットフォームタイプ [android, iOS] を設定します。
  • waitForResults: (オプション)セキュリティ分析が完了するかタイムアウトするまでジョブを一時停止します。
  • waitMinutes: (オプション)ジョブがタイムアウトするまでの待機時間。
  • breakBuildOnScore: (オプション)trueに設定すると、検出結果のリスクがしきい値以上の場合にステップが失敗します。
  • riskThreshold: (オプション)ビルドを失敗させる最小のリスクしきい値。
  • JsonCredentials: (オプション)動的テストに使用する認証情報。有効なJSONの文字列である必要があります: [{"name": "username", "value": "MyUsername"}, {"name": "password", "value": "MyPassword"}]
  • title: (オプション)スキャンタイトルを入力します。