アップデート:Java log4j の脆弱性について(CVE-2021-44228) #aqua #セキュリティ #脆弱性 #java #CVE202144228 #log4shell
この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。
2021年12月10日に公開された Apache Log4j の脆弱性(CVE-2021-44228)に関して、Aqua 社からの更新と Aqua を使用した際の推奨事項を提供するため、ここに文書化致します。
脆弱性ファイルの更新
最初の脆弱性は、12月9日に GitHub のアドバイザリーで報告されました。このアドバイザリーでは、log4j-api と log4j-core の両方に脆弱性があることが報告されています。しかし Apache によるレビューと確認の結果、log4j-api ファイルは本脆弱性に対して脆弱ではないことが判明しました。一方 log4j-core ファイルは、当初の報告通り、脆弱性が存在します。log4j-core が脆弱なファイルであると指定した、この問題の Apache セキュリティトラッカーは、ここで確認できます。
Aqua CyberCenter はこの変更を反映済みのため、イメージの再スキャンにより、log4j-api ファイルには CVE-2021-44228 の脆弱性があるとするフラグが付けられなくなります。
Aquaのイメージスキャンによる緩和施策
イメージスキャン機能でこのエクスプロイトを軽減するために、Aqua は CVE's Blocked というコントロールを提供しています。このコントロールを追加することで、CI/CD パイプラインを失敗させることができます。もし CI/CD パイプラインでスキャンをしていない場合は、この CVE を含むイメージを非準拠としてマークできるため、ワークロードで実行されないようにブロックすることもできます。
Image Assurance Policy を使用して、環境内の脆弱なイメージにフラグを立てる方法は、こちらでご覧いただけます。
Aquaによるランタイム保護
ランタイム保護機能でこのエクスプロイトを軽減するために、Aqua はいくつかのコントロールを提供しています。以下は、本脆弱性に対して有効な Runtime Policy コントロールのリストです。
-
Aqua v5.3 ~ v6.0
- Drift Prevention
- IP Reputation
- Block Non-Compliant Images
-
Aqua v6.2 ~
- Drift Prevention
- IP Reputation
- Block Reverse Shell
- Block Cryptocurrency Mining
- Block Non-Compliant Images
これらのコントロールを活用することで、不変性を確保し、悪意のあるコードやマルウェアが環境で使用されるのを防ぐことができます。
改善策
この脆弱性に関する直接的な改善策は以下が挙げられます。
- Log4j ライブラリをアップグレードする。
- アップグレードできない場合、v2.10 から v2.14.1 までのバージョンで、この欠陥に対する2つの緩和策が考えられます。
- システムプロパティ log4j2.formatMsgNoLookups を true に設定する。
- クラスパスから JndiLookup クラスを削除する。(例:zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class)
まとめ
脆弱性として公開されていない未知のリスクもまだまだ存在する可能性はあるため、今後も今回のような深刻度の高い脆弱性が発見されることは十分に考えられます。Aqua などのセキュリティソリューションを導入し、先回りの対策をご検討ください。