コマンドラインから Maven プロジェクトをスキャンする
Maven プロジェクトのコマンドスキャンでは Maven の dependencyTree
タスクによって依存関係を抽出した出力テキストをスキャンします。
スキャンを行うには、コマンドライン上でスキャン対象の Maven プロジェクトのルートディレクトリに移動し、以下を実行してください。
mvn --projects <Maven のサブプロジェクトの groupId:artifactId> dependency:tree -B -Dverbose=true | PROJECT_GROUP_KEY=<yamory 上のプロジェクトグループ識別キー> YAMORY_API_KEY=xxxxxxxxxxxxxxxxx YAMORY_OPEN_SYSTEM=true YAMORY_DISTRIBUTED=false bash -c "$(curl -sSf -L <https://yamory/script/...>)"
上記の < >
内の箇所は、以下の内容に適宜置き換えてください。
<Maven のサブプロジェクト名>
: スキャン対象の Maven のサブプロジェクト名を groupId:artifactId
の形式で入力します。単一プロジェクトの場合は、--projects <...>
の箇所を削除してください。
サブプロジェクトの情報は、サブモジュールのディレクトリ内の pom.xml の<groupId>
タグと<artifactId>
タグに記載されています。
サブモジュール場所は、Maven プロジェクトのルートディレクトリに含まれる pom.xml の
<yamory 上のプロジェクトグループ識別キー>
:サービス名称などを設定してください(例: yamory)(半角英数記号のみ、半角スペースは入力不可)。
<https://yamory/script/...>
: サイドバーの「アプリライブラリ」>「スキャン」を開き、「新しいプロジェクトをスキャン+」ボタンを押して出てくる案内にしたがって入力を進め、最後に表示されるスキャンコマンドの URL に置き換えてください。
スキャン対象のスコープ
スキャン対象のスコープは、compile
とruntime
です。
yamory では、アプリケーションに含まれ、且つ、実環境で脆弱性としてリスクになり得る脆弱性を検知対象としています。よって、test
スコープや、アプリケーションに含まれないprovided
スコープ(jar などに含まれず、実行環境上のライブラリ)は、スキャン対象外としています。
YAMORY_OPEN_SYSTEM について
yamory 上の「公開サービス(外部ネットワークからパブリックアクセスが可能なアプリケーション、またはサービスとして使用するか)」を指定できます。
公開サービスの場合は true
、非公開サービスの場合は false
を指定します。
YAMORY_OPEN_SYSTEM が未入力の場合、前回スキャン情報があればその状態を引き継ぎ、初回スキャン時は公開サービスとして登録されます。
本パラメータはトリアージレベルの計算に使用されます。
YAMORY_DISTRIBUTED について
yamory 上の「頒布プロジェクト」の状態を指定できます。
頒布プロジェクトの場合は true
、非頒布プロジェクトの場合は false
を指定します。
YAMORY_DISTRIBUTED が未入力の場合、前回スキャン情報があればその状態を引き継ぎ、初回スキャン時は非頒布プロジェクトとして登録されます。