IntelliJ IDEA 2024.3 ヘルプ

脆弱で悪意のある依存関係を見つける

大規模で複雑なプロジェクトには通常、共通のライブラリとフレームワークの機能を拡張することで生産性を向上させる、多数のサードパーティ依存関係があります。

ただし、サードパーティのコードに依存すると、プロジェクト内で脆弱な依存関係が使用される可能性があるため、セキュリティ上の懸念が生じます。

バンドルされている IntelliJ IDEA パッケージチェッカープラグインは、OSV(英語) を利用しています。このプラグインは、Gradle、Maven、NPM、PyPI、NuGet の依存関係を分析して、既知の脆弱性を検出します。これにより、脆弱な依存関係に関する情報を取得し、最新のリリースバージョンに更新することで、このようなケースに対処できます。

パッケージチェッカープラグインを有効にする

この機能は、デフォルトで IntelliJ IDEA にバンドルされて有効になっているパッケージチェッカー(英語)プラグインに依存しています。関連する機能が利用できない場合は、プラグインを無効にしていないことを確認してください。

  1. Ctrl+Alt+S を押して設定を開き、プラグインを選択します。

  2. インストール済みタブを開き、パッケージチェッカープラグインを見つけて、プラグイン名の横にあるチェックボックスを選択します。

脆弱性のある依存関係

エディターで脆弱な依存関係を表示する

  1. エディターで pom.xml または build.gradle を開きます。

    IDE は、脆弱性があると考えられるパッケージをハイライトします。

  2. ハイライトされたパッケージにカーソルを置き、Alt+Enter を押すと、提案された修正が表示されます。安全なバージョンに更新すること、OSV Web サイトにアクセスして特定の脆弱性の詳細を確認すること、または脆弱性を無視することが提案される場合があります。

Change dependency

コードを分析して脆弱な依存関係をすべて見つける

さらに、インスペクションを実行して、プロジェクト内で宣言およびインポートされたすべての脆弱な依存関係のリストを表示できます。

  • メインメニューで、コード | コードの解析 | 脆弱性のある依存関係に移動します。

  • または、プロジェクトツールウィンドウ Alt+1 (たとえば、pom.xml または build.gradle) でフォルダーまたはファイルを右クリックし、分析 | 脆弱性のある依存関係を選択します。

結果は、問題ツールウィンドウ ( 表示 | ツールウィンドウ | 問題または Alt+6) の脆弱性のある依存関係タブに表示されます。

Vulnerable Dependencies

それぞれの脆弱性について、重大度の指標を確認できます。特定の依存関係をクリックすると、その依存関係で見つかった脆弱性に関する詳細情報が表示されます。

脆弱性を無視する

無視された脆弱性は、インスペクション設定のリストに追加されます。必要に応じて、このリストを含むプロファイルをチームの他のメンバーと共有できます。

  1. エディターで pom.xml または build.gradle を開き、ハイライトされたパッケージにキャレットを置き、Alt+Enter を押します。

  2. 提案のリストから脆弱な <パッケージ name and version> を無視するを選択し、開いたダイアログで依存関係を無視する理由を選択します。無視をクリックします。

    Ignoring vulnerability

無視された脆弱性のリストにアクセスするには、Ctrl+Alt+S を押して IDE 設定を開き、エディター | インスペクションを選択します。セキュリティノードを展開し、脆弱な宣言済みの依存関係をクリックします。このリストは、インスペクションの詳細のオプションセクションにあります。

コンピューター間でプロファイルを同期するからインスペクションプロファイルを共有する方法を学びます。

脆弱な API を見つける

脆弱な API の使用インスペクションは、コード内の脆弱な API とオープンソースライブラリを自動的にハイライトします。インスペクションを手動で実行して、プロジェクト内のすべての脆弱な API およびオープンソースライブラリに関するレポートを取得することもできます。

脆弱な API をエディターに表示する

  1. エディターで検出された問題の上にマウスを置きます。

    脆弱性の詳細を示すポップアップが表示されます。

  2. 問題にキャレットを置き、を押して、宣言済みの依存関係を含むファイルに移動を選択します。

    依存関係が定義されているファイルが表示されます。

  3. ハイライトされたパッケージにカーソルを置き、Alt+Enter を押すと、提案された修正が表示されます。安全なバージョンに更新すること、OSV Web サイトにアクセスして特定の脆弱性の詳細を確認すること、または脆弱性を無視することが提案される場合があります。

コードを分析して脆弱な API をすべて見つける

  1. Ctrl+Alt+Shift+I を押すか、メインメニューでコード | コードの解析 | インスペクション名を指定して実行に移動します。

  2. Vulnerable API usage と入力し、インスペクションをダブルクリックして、設定を含むダイアログを開きます。

  3. 分析するファイルの範囲を選択します。

    ファイルマスクオプションは、インスペクションするファイルの数を絞り込むのに役立ちます。分析するファイルの名前に一致する文字とワイルドカードのパターンを指定します。複数のファイルマスクを区切るには、コンマを使用します。

  4. インスペクションを実行するには、OK をクリックします。

結果は問題ツールウィンドウ ( 表示 | ツールウィンドウ | 問題または Alt+6) に表示され、そこから脆弱な依存関係が宣言されたファイルに移動したり、インスペクションを抑制したり、レポートを生成したりできます。

誤検知の報告

脆弱であると特定された依存関係が安全であると思われる場合は、誤検知を報告できます。

  1. 問題ツールウィンドウ ( 表示 | ツールウィンドウ | 問題または Alt+6) の脆弱性のある依存関係タブで依存関係をクリックして、その説明を開きます。

  2. 報告する脆弱性を見つけて、「誤検知の報告」をクリックします。

    確認の通知が表示されます。

Report false vulnerable dependency

悪意のある依存関係

パッケージチェッカープラグインには、プロジェクトで宣言された悪意のある NPM および PyPI 依存関係を検出する悪意のある依存関係 インスペクションが搭載されています。報告された問題を修正することで、攻撃者によるソフトウェアの侵害を防止できます。

悪意のある依存関係を表示する

  • NPM または PyPI の依存関係が宣言されているファイルを開きます。

    IDE は悪意があると見なされる依存関係をハイライトします。

検出された依存関係を削除することをお勧めします。悪意のある依存関係データは OSV.dev(英語) によって提供されています。

コミット時に悪意のある依存関係を見つける

  1. Alt+0 を押してコミットツールウィンドウを開き、コミットオプションを表示 the Settings button をクリックします。

  2. 悪意のある依存関係を確認オプションを有効にします。

advanced commit options popup

セキュリティの構成インスペクション

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

  1. Ctrl+Alt+S を押して設定を開き、エディター | インスペクションを選択します。

  2. 右側のオプションから、セキュリティノードを選択し、インスペクションの名前を選択します。

    必要に応じて、重大度、範囲、ハイライトを変更します。「OK」をクリックして変更を保存します。

関連ページ:

プロファイルを構成する

インスペクションプロファイルは、有効なインスペクション、これらのインスペクションが分析するファイルのスコープ、およびインスペクション重大度設定に関する情報を保持します。IntelliJ IDEA には、2 種類のプロファイルがあります。プロファイル IDE に保管は、IntelliJ IDEA 構成ディレクトリの inspection フォルダーに保存され、すべてのプロジェクトで使用できます。プロジェクトにコピーオプションを使用して、IDE プロファイルを現在のプロジェクトにコピーできます。プロファイル...

結果の取得と問題の解決

インスペクションがあなたのコードに問題を検出した場合、すぐにエディターで修正を適用することができます。ハイライトされたコード部分にキャレットを置き、を押します。IntelliJ IDEA では、一部のインスペクションのクイックフィックスの横に対話型プレビューが表示されます。を押すと、このプレビューを非表示にしたり表示したりできます。問題ツールウィンドウで修正を適用する:インスペクションを手動で起動した場合は、解析が終了した後に自動的に開く問題ツールウィンドウで結果を調べることができます。検

Git

Java 開発環境 IntelliJ IDEA の使い方や高等テクニック満載の JetBrains 日本語公式ヘルプ。最新の英語版ヘルプ内容が随時反映されます。

Mercurial

Mercurial のサポート:Mercurial と IntelliJ IDEA の統合が有効になっている場合、オプションがメニュー、エディターのコンテキストメニュー、およびプロジェクトツールウィンドウに表示されます。Mercurial にあるフォルダー内のファイルは、その状態に応じてハイライトされます。ファイルステータスのハイライトの規則については、ファイルステータスのハイライトを参照してください。変更結果は、コミットツールウィンドウに表示されます。Mercurial 統合を使用す...

インスペクションの重大度を変更する

インスペクション重大度レベルは、検出されたコードの問題がプロジェクトに与える影響の深刻度を示します。IntelliJ IDEA には、定義済みの一連の重大度レベルがあります。エラー構文エラー警告バグを引き起こす可能性がある、または拡張が必要なコードの断片弱い警告改善または最適化できるコードの断片 (冗長なコード、重複したコードフラグメントなど) サーバーの問題外部ビルドサーバー (TeamCity など) に起因する問題文法エラー文法の間違い。この重大度は、バンドルされている Grazie Lite...

モジュール依存関係ダイアグラム

大規模なマルチモジュールプロジェクトで作業するときは、モジュールとその依存関係がグラフでどのように関連しているかを確認するほうが便利なことがあります。次のモジュールの UML ダイアグラムを表示、分析、管理できます。プロジェクトモジュール - これはあなたのマルチモジュールプロジェクトの一部です。Java モジュール - JDK 9 に付属の Jigsaw プロジェクトの一部です。このようなダイアグラムを表示および管理するには、JDK 9 以降のバージョンがインストールされていることを確認してください。モ...