Log4j脆弱性アラ,ト:Maven Centralに脆弱な数百パッケ,ジが存在

Maven中心中的Log4j易受攻击包

人気の高いApache Log4jライブラリに新たに発見された脆弱性(cve - 2021 - 44228(別名:Log4Shell)およびcve - 2021 - 45046)に関連するリスクの高さから,通常とは異なる規模と緊急性のセキュリティ騒動が発生しています。開発者やセキュリティチームは,Log4jの脆弱性が自社のソフトウェアに与える影響を調査するよう迫られ,その過程で複数の技術的課題が明らかになりました。

Log4Shellが公表されて以来,JFrogセキュリティ・リサーチ・チームは,開発者コミュニティが新しい脅威にできるだけ迅速かつ効率的に対処できるようにすることに着手しました。この問題を分析した結果,コードに含まれる可能性のあるLog4jを検出するためにプロジェクトの依存関係を使用することは有益であるものの,使用されているLog4jコードのすべてのインスタンスを検出するわけではないことが判明しました。まり,依存関係のスキャンだけに頼っていると,脆弱なアプリケ,ションが気づかれないままになる可能性があります。より完全な検出機能を提供するために,私たちは,ソースコードとバイナリの両方からApache Log4jの存在とその利用を検知するように設計された独自のLog4j脆弱性スキャンルをリリ,スしました。

先日のブログ”JFrog OSSスキャンルによるLog4j検出“では,パッケージの依存関係を超えてスキャンすることで,Log4jの脆弱性検出を改善するために実施したアプローチについて説明しました。以下は,JFrogの新しいOSSツールを使用して,Maven中央リポジトリのJavaパッケージをスキャンした際に得られた新しい発見です。

Log4Shellを徹底的にスキャンすることの重要性

Log4Shellにさらされているかどうかをチェックする明白な(しかし不完全な!)方法は,脆弱なバージョンのLog4jがビルド構成(‘pom.xml’,‘gradle.buildなど)でプロジェクトの依存関係としてリストされているかどうかを見ることです。より正確ですが,より時間のかかるアプローチは,Log4jが間接的な依存関係として含まれているかどうかをチェックすることです(“gradle q依赖性”またはmvn依赖性:树)。驚くべきことに,この方法も不完全で,最終製品に脆弱なLog4jコードが含まれていないことを確認するためには,より深い調査が必要です。

完全な依存関係リストをスキャンするという方法では,含まれているLog4jコードのインスタンスを見逃してしまうことがある理由は,依存関係は単にその対象アーティファクトを構築または実行するために必要な外部パッケージを指定しているにすぎないからです。脆弱なコ,ドがコ,ドベ,スに直接挿入されている場合,それは依存関係ではありません。したがって,脆弱なLog4jコードをより正確に検出するためには,コード自体を検査する必要があります。

パッケ,ジへのLog4jの混入,Maven Centralでの調査結果

かての調査では,Maven中央リポジトリの約17000のJavaパッケージに,脆弱なlog4j-coreライブラリが直接または間接的な依存関係として含まれていることが判明しています。JFrogの調査では,依存関係のスキャンでは検出されない,Log4jの脆弱性を含むパッケージをさらに特定することに重点を置きました。Log4j。

Maven Centralでパッケ,ジの最新バ,ジョンを調査し,その数をある程度把握しました。全体として,アーティファクトにLog4jコードを直接含めることは,依存関係を介したLog4jの使用ほど一般的ではありません。しかし,Log4jコードを直接含むパッケージは数百(400年~)に上り,これらのパッケージはLog4jの脆弱性にさらされます。すべてのケースの半分以上(~ 65%)でLog4jコードはクラスとして直接含まれています(ダイレクトインクルージョン/シェーディング)。それ以外では典型的に,完全なLog4j . jarファイル(いわゆる脂肪jar)を含みます。これらの数字は,完全な. jarファイルのみを検索するツールではLog4jが直接含まれているケースのほとんどを見逃してしまうことを示しています。

調査結果のもう1つの興味深い指標は,Log4jがアーティファクトに含まれるだけでなく,間接的な依存関係としても含まれるケースの数です。このケスでは2のコドに直接的なリンクはありません。コードの包含は1つのバンドルされたライブラリの要件から生じるかもしれませんし,外部依存としてLog4jを必要とするかもしれません。JFrogの調査では,Log4jコードが完全な. jarファイルではなくクラスとしてアーティファクトに直接含まれているケースのが約30%,アーティファクトの依存関係リストに表れません。これらのケースは,依存関係ツリーでのライブラリ名の明示的な言及,または完全な. jarファイルの含有を探すツールによって発見されません。

推奨

JFrogセキュリティ・リサーチ・チームは,すべての開発者が細心の注意を払い,自社のソフトウェア製品が,自社が開発したファーストパーティ・コードとアプリケーションで使用されているサードパーティ・コードの両方で,パッチが適用されていないバージョンのLog4j2を使用していないかどうかを注意深くチェックすることを推奨しています。

自動化されたディープスキャンツールを使用して,リリースされた成果物にLog4jを含める可能性のあるすべての方法がカバーされていることを確認しながら,Log4jの脆弱性の検出を加速し,簡素化することをお勧めします。

Log4jの脆弱性とその影響にいて,さらに詳しい内容を発信しています。

JFrogセキュリティ·リサ,チ·チ,ムの以下のリソ,スをご覧ください。
Log4Shellゼロデesc:知っておくべきこと-ブログ
Log4j Log4Shell漏洞解释-ウェビナ
Log4j Log4Shell脆弱性に関する问答-ブログ
JFrog OSSスキャンルによるLog4j検出-ブログ