Gradle を使用する Java/Scala/Kotlin プロジェクト: セキュリティスキャンのベストプラクティス
Aikido は、Java の依存関係に存在する既知の脆弱性(CVE)だけでなく、それらの依存関係で使用されている危険なライセンスも検出できます。
Aikido は、それらの依存関係とその推移的なサブ依存関係をどのように見つけるのですか?
Aikido は標準で、以下のファイルをスキャン対象としてサポートしています:
gradle.lockfile
pom.xml
.jar/.war/.ear
build.gradle.*(Gradle マニフェスト)ファイルには、一部の依存関係の正確なバージョンが含まれていない場合があることに注意してください。これにより、Aikido がアプリケーション内のリスクをすべて検出できない可能性があります。
各依存関係およびサブ依存関係の正確なバージョンを含む Gradle ロックファイルを使用することをお勧めします。
Aikido のセキュリティスキャンを容易にする以外にも、ロックファイルを使用する理由はあります:
ロックファイルを使うことで、悪意のあるパッケージを介したサプライチェーン攻撃から保護できます。この種の攻撃はますます一般的になっています
ロックファイルを使うことで、全員がパッケージのまったく同じマイナーバージョンを使用するため、ビルドの予測可能性が高まります。「自分の環境では動く」状況が起こりにくくなります
ビルド時間の短縮: 依存関係の解決が不要になります
Gradle プロジェクトでロックファイルの使用を始めるには?
リポジトリにロックファイルを入れる方法は2つあります:
オプション1: Aikido に作成させる(推奨)
リポジトリに build.gradle または build.gradle.kts 対応する gradle.lockfileがない場合、Aikido はこれを自動的に検出し、 プルリクエストを作成できます あなたのために生成します。 注: AutoFix このオプションを使用するには有効化する必要があります。
ステップ1. ロックファイルがない該当のリポジトリに移動します
ステップ2. 上部のロックファイルの提案を探してクリックします PR を作成

ステップ3. PR を確認してマージします。残りは Aikido が処理します
マージされると、Aikido はすべての推移的依存関係を含む完全な依存関係ツリーをすぐにスキャンできるようになります。
オプション2: 手動で追加する
必要な設定を Gradle マニフェストファイルに追加してください。以下を参照してください: Gradle ロックファイルのドキュメント 追加すべき正確な行について。
次に、以下を実行します:
生成されたロックファイルをリポジトリにコミットしてください。これは package-lock.json Node.js の package-lock.json のように扱い、手動で編集しないでください。
最終更新
役に立ちましたか?