脆弱で悪意のある依存関係を見つける
大規模で複雑なプロジェクトには通常、共通のライブラリとフレームワークの機能を拡張することで生産性を向上させる、多数のサードパーティ依存関係があります。
ただし、サードパーティのコードに依存すると、プロジェクト内で脆弱な依存関係が使用される可能性があるため、セキュリティ上の懸念が生じます。
バンドルされている IntelliJ IDEA パッケージチェッカー プラグインは、 https://www.mend.io/jetbrains-lp/?utm_source=JetBrains(英語) を利用しています。 このプラグインは、Gradle、Maven、NPM、PyPI、NuGet、SBT の依存関係を分析して、既知の脆弱性を検出します。 これにより、脆弱な依存関係に関する情報を取得し、最新のリリースバージョンに更新することで、このようなケースに対処できます。
パッケージチェッカープラグインを有効化
この機能は、デフォルトで IntelliJ IDEA にバンドルされて有効になっている パッケージチェッカー(英語)プラグインに依存しています。 関連機能が利用できない場合は、プラグインを無効化していないことを確認してください。
Ctrl+Alt+S を押して設定を開き、 を選択します。
インストール済み タブを開き、 パッケージチェッカープラグインを見つけて、プラグイン名の横にあるチェックボックスを選択します。
脆弱性のある依存関係
エディター内の脆弱な依存関係を修正
エディターで pom.xml または build.gradle を開きます。
IDE は、脆弱性があると考えられるパッケージをハイライトします。
ハイライト表示されたパッケージにカーソルを置き、 Alt+Enter を押すと、修正案が表示されます。 安全なバージョンへのアップデート、 Mend.io(英語) Web サイトにアクセスして特定の脆弱性の詳細を確認する、または脆弱性を 無視するといった提案が表示される場合があります。

コードを分析して脆弱な依存関係をすべて見つける
さらに、インスペクションを実行して、プロジェクト内で宣言およびインポートされたすべての脆弱な依存関係のリストを表示できます。
メインメニューで、 に移動します。
または、 プロジェクト ツールウィンドウ Alt+1 (たとえば、 pom.xml または build.gradle ) でフォルダーまたはファイルを右クリックし、 を選択します。
結果は、 問題 ツールウィンドウ ( または Alt+6) の 脆弱な依存関係 タブに表示されます。

それぞれの脆弱性について、重大度の指標を確認できます。 特定の依存関係をクリックすると、その依存関係で見つかった脆弱性に関する詳細情報が表示されます。
脆弱性を無視する
無視された脆弱性は、インスペクション設定のリストに追加されます。 必要に応じて、このリストを含むプロファイルをチームの他のメンバーと共有できます。
エディターで pom.xml または build.gradle を開き、ハイライトされたパッケージにキャレットを置き、 Alt+Enter を押します。
提案のリストから 脆弱な <パッケージ名とバージョン> を無視する を選択し、開いたダイアログで依存関係を無視する理由を選択します。 無視 をクリックします。

無視された脆弱性のリストにアクセスするには、 Ctrl+Alt+S を押して IDE 設定を開き、 を選択します。 セキュリティ ノードを展開し、 脆弱な宣言済みの依存関係 をクリックします。 このリストは、インスペクションの詳細の オプション セクションにあります。
コンピューター間でプロファイルを同期する からインスペクションプロファイルを共有する方法を学びます。
脆弱な API を見つける
脆弱なAPI の使用 インスペクションは、コード内の脆弱な API とオープンソースライブラリを自動的にハイライトします。 インスペクションを手動で実行して、プロジェクト内のすべての脆弱な API およびオープンソースライブラリに関するレポートを取得することもできます。
脆弱な API をエディターに表示する
エディターで検出された問題の上にマウスを置きます。
脆弱性の詳細を示すポップアップが表示されます。
問題にキャレットを置き、を押して、 宣言済みの依存関係を含むファイルに移動 を選択します。
依存関係が定義されているファイルが表示されます。
ハイライト表示されたパッケージにカーソルを置き、 Alt+Enter を押すと、修正案が表示されます。 安全なバージョンへのアップデート、 Mend.io(英語) Web サイトにアクセスして特定の脆弱性の詳細を確認する、または脆弱性を 無視するといった提案が表示される場合があります。
コードを分析して脆弱な API をすべて見つける
Ctrl+Alt+Shift+I を押すか、メインメニューで に移動します。
Vulnerable API usageと入力し、インスペクションをダブルクリックして、設定を含むダイアログを開きます。分析するファイルの範囲を選択します。
ファイルマスク(A) オプションを使用すると、インスペクションするファイルの数を絞り込むことができます。 分析するファイルの名前に一致する文字とワイルドカードのパターンを指定します。 複数のファイルマスクを区切るには、コンマを使用します。
インスペクションを実行するには、 OK をクリックします。
結果は 問題 ツールウィンドウ ( または Alt+6) に表示され、そこから脆弱な依存関係が宣言されたファイルに移動したり、インスペクションを抑制したり、 レポートを生成したりできます。
誤検知の報告
脆弱であると特定された依存関係が安全であると思われる場合は、誤検知を報告できます。
問題 ツールウィンドウ ( または Alt+6) の 脆弱な依存関係 タブで依存関係をクリックして、その説明を開きます。
報告する脆弱性を見つけて、「誤検知の報告 」をクリックします。
確認の通知が表示されます。

悪意のある依存関係
パッケージチェッカー プラグインには、プロジェクトで宣言された悪意のある NPM および PyPI 依存関係を検出する 悪意のある依存関係 インスペクションが搭載されています。 報告された問題を修正することで、攻撃者によるソフトウェアの侵害を防止できます。
悪意のある依存関係を表示する
NPM または PyPI の依存関係が宣言されているファイルを開きます。
IDE は悪意があると見なされる依存関係をハイライトします。
検出された依存関係を削除することをお勧めします。 悪意のある依存関係データは Mend.io(英語) によって提供されています。
コミット時に悪意のある依存関係を見つける
Alt+0 を押して コミット ツールウィンドウを開き、 コミットオプションを表示
をクリックします。
悪意のある依存関係の確認 オプションを有効にします。

セキュリティの構成インスペクション
設定で、 セキュリティ インスペクションの 重大度を変更したり、有効化 / 無効化したり、問題のハイライトを構成したりできます。