ネイティブ・イメージ検査ツール
ネイティブ・イメージ検査ツールは、ネイティブ実行可能ファイルから埋込みソフトウェア部品表(SBOM)を抽出します。クラス・レベル・メタデータを抽出するための機能は非推奨になりました。
埋込みSBOMの抽出
ネイティブ・イメージは、ビルド時にSBOMを埋め込んで、既知のセキュリティの脆弱性の影響を受ける可能性のあるライブラリを検出できます。ネイティブ・イメージには、SBOMをネイティブ実行可能ファイルに埋め込むための--enable-sbom
オプションが用意されています(Oracle GraalVMでのみ使用可能)。
ネイティブ・イメージ検査ツールは、次のコマンドに示すように、オプションの--sbom
パラメータを使用して、圧縮されたSBOMを抽出できます: $JAVA_HOME/bin/native-image-inspect --sbom <path_to_binary>
。
クラス・レベル・メタデータの抽出(非推奨)
native-image-inspect
を使用したクラス・レベル・メタデータの抽出は非推奨です。GraalVM for JDK 24では、非推奨の警告がstderr
に出力されます。この機能はGraalVM for JDK 25で削除される予定です。--enable-sbom=class-level,export
をnative-image
ビルダーに渡すことで、かわりにクラス・レベルSBOMを使用するように移行してください。これにより、同じ種類のクラス・レベル・メタデータ情報を含むSBOMが生成されます。
ネイティブ・イメージは、ネイティブ実行可能ファイルまたはネイティブ共有ライブラリに含まれるすべてのクラス、フィールドおよびメソッドをリストする検査ツールを提供します。コマンド$JAVA_HOME/bin/native-image-inspect <path_to_binary>
を実行して、native-image-inspect-schema-v0.2.0.json
で定義されたJSONスキーマに対して検証されるクラス、メソッド、フィールドおよびコンストラクタをJSON形式でリストします(Oracle GraalVMでのみ使用可能)。
native-image
ビルダーでは、デフォルトでネイティブ実行可能ファイルにメタデータが含まれ、これによって、検査ツールで含まれるメソッドをリストできるようになります。
含まれるデータの量はイメージ全体のサイズと比較してかなり小さくなりますが、-H:-IncludeMethodData
オプションを設定して、メタデータの発行を無効にできます。このオプションでコンパイルされたイメージは、ツールで検査できません。
ソフトウェア部品表(SBOM)
ネイティブ・イメージは、ビルド時にソフトウェア部品表(SBOM)を埋め込んで、既知のセキュリティの脆弱性の影響を受ける可能性のあるライブラリを検出できます。ネイティブ・イメージには、SBOMをネイティブ実行可能ファイルに埋め込むための--enable-sbom
オプションが用意されています(Oracle GraalVMでのみ使用可能)。
このツールは、$JAVA_HOME/bin/native-image-inspect --sbom <path_to_binary>
からアクセス可能なオプションの--sbom
パラメータを使用して、圧縮されたSBOMを抽出できます。