OstorlabとJenkinsの統合
1. 新しいAPIキーを生成する
最初のステップは、APIキーを生成することです。これを行うには、次の手順に従います。
report.ostorlab.co に移動します。
Menuボタンをクリックします。

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

API Keysをクリックします。

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

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

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

2. OstorlabのAPIキーをJenkinsのCredentialsに追加する
Jenkinsのメインダッシュボードから、Add Credentialsボタンをクリックします。

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

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

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

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

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

Freestyleプロジェクト
freestyleプロジェクトでjenkinsジョブを定義するには、次の手順に従います。
Build Environmentで、Jenkinsプロジェクト構成にSecret textバインディングを追加し、次の情報を入力します。

Jenkinsプロジェクト構成に「Run Ostorlab 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: (オプション)スキャンタイトルを入力します。