脅威アラート:CVE-2021-44228(Log4Shell)の脆弱性の説明 #aqua #セキュリティ #脆弱性 #java #CVE202144228 #log4shell
この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。
本ブログは「Aqua Security」社の技術ブログで2021年12月12日に公開された「 CVE-2021-44228 aka Log4Shell Vulnerability Explained 」の日本語翻訳です。
脅威アラート:CVE-2021-44228(Log4Shell)の脆弱性の説明
先週の金曜日(2021/12/10)に発生した重大なゼロデイ脆弱性「Log4Shell」は、基本的な機能に隠された問題が、企業のセキュリティに大きな影響を与えることを示しています。今後も今回のような脆弱性が発生する可能性がある以上、インシデントへの対応と修復が完了した後、企業はどのようにして検出と対応を改善できるかを評価する必要があります。
CVE 2021-44228とは
この問題の最初の兆候は、金曜日の早朝に Twitter 上で現れた、人気の高い Java ロギングフレームワークである Log4j の脆弱性をゼロデイで悪用したという投稿でした。この問題の核心は、特別にフォーマットされた文字列が使用された場合、単にデータをログファイルに書き込むのではなく、Log4j がその文字列を解釈してしまうことにあります。これにより、リモートコード実行(RCE)が行われ、ターゲットシステムが危険にさらされます。CVE-2021-44228 として追跡されているこの脆弱性は、Log4Shell と名付けられ、最高の深刻度である10の評価を受けています。
ログシステムは膨大な数のソースからデータを取り込むため、この問題が発生する可能性のあるベクターを追跡し、パッチを適用することは非常に困難です。また、Log4j は、他のソフトウェアの一部として使用されたり、ブラックボックス型のアプライアンスにバンドルされたりすることが多いため、企業が脆弱性の可能性のあるシステムをすべて把握していることは期待できません。
金曜日には、攻撃者がブラウザのユーザエージェントを悪用文字列に設定したり(ユーザエージェントはウェブサーバによって記録されることが多い)、自宅の Wi-Fi の SSID を変更して Apple が運営するクラウドサービスを悪用するなど、いくつかの新しい悪用手段が提案されました。
この問題の悪用と防御に関する技術的な詳細については、blueteamsec のサブレディットで、情報を集約するためのメタスレッドが立ち上げられています。
インシデントプロセスの迅速化
今回の問題で特筆すべき点は、その展開の早さです。脆弱性や悪用に関する情報が Twitter で公開された後、数時間のうちに検出・悪用ツールが導入されました。人気の高いウェブアプリケーションスキャンツール「Burp」のプラグインや、スキャンフレームワーク「nuclei」の新しいモジュールが開発されました。
問題の緩和
攻撃側の動きが早かった一方で、防御側にも迅速な対応が見られたのは良かったことです。Akamaiは、Cloudflare と同様に、この問題の最初の悪用を阻止するためのルールを提供し、多くの組織が採用している多層防御の利点を示しました。
多くの企業にとって、この問題への対応はいくつかのカテゴリーに分類されます。最初の対応としては、ウェブアプリケーションファイアウォール(WAF)の機能を利用して、ある程度の保護を提供することです。ただし、すでに多くの WAF のバイパスが指摘されているため、これにはチューニングが必要となります。
この問題と並行して、パッチ作業を成功させるためには、脆弱性のあるソフトウェアを特定する必要があります。Oracle 社や VMware 社などのベンダーは、自社の製品がどこで影響を受けているかという情報をすでに提供しています。しかし、パッチの提供にはテストが必要なため、しばらく時間がかかると思われます。
AquaによるLog4Shellの脆弱性の検出と緩和
Aqua は、Log4Shell の脆弱性があるワークロードを特定し、ブロックできます。
Aqua Platform では、環境内の Log4Shell の影響を受けたコンテナイメージと、その稼働中のワークロードをすべて確認できます。
さらに、ポリシーを作成して、これらのワークロードを非準拠とし、その実行をブロックすることも可能です。
また、Aqua Scanner を CI/CD プロセスの一部として組み込むことで、Log4Shell の脆弱性を持つ新しいビルドを特定してブロックし、セキュリティをシフトレフトすることができます。
ランタイムにおける緩和
Log4Shell のエクスプロイトが悪意のあるペイロードの実行に使用された場合、その実行されたエクスプロイトは検出され、ランタイム中に追加されたファイルの実行を防止する Aqua の DriftPrevention によりブロックされます。
Aqua の Advanced Malware Protection は、Log4Shell の脆弱性を悪用して攻撃者が仕掛けようとする既知のマルウェアを検出できます。さらに、Aqua CNDR は、クリプトマイニング、メモリからの実行、ホストへのエスケープなど、ペイロードによって実行される悪意のあるアクティビティを検出できます。
Aquaは影響を受けているか
Aqua 社は Java を使用していないため、この脆弱性の影響を受けていません。
Aqua のすべての成果物は、Aqua のソリューションでスキャンし、Log4j が使用されていないことを確認しました。
将来の課題を回避するために
今回の問題がひと段落したら、組織は今後の問題のリスクにどう対処するかを検討する必要があります。ソフトウェアのサプライチェーンが複雑化しているため、このようなセキュリティリスクに再び直面することは避けられません。
企業は、この種の問題の影響を軽減するために、いくつかの方法を検討することが必要です。
- 優れたソフトウェアサプライチェーンセキュリティの導入 -ソフトウェア部品表(SBOM)は、脆弱なソフトウェアを特定するのに役立ちます。サプライヤーに SBOM を要求することで、企業は特定のソフトウェアパッケージがどこで使用されているかを把握できます。
- 多層防御策 - WAF のような技術はセキュリティの万能薬ではありませんが、WAFを導入することで、セキュリティアクティビティを遅くさせ、その間に有益な緩和策を講じることができます。
- アウトバウンドファイアウォールの設定 -今回の問題の主な悪用経路の1つは、感染したシステムが外部システムにリクエストしてエクスプロイトコードを引き出すことです。サーバが任意のインターネットシステムへの接続を開始できないようにすることで、この問題をはじめとする多くの問題のリスクを低減できます。
まとめ
Log4Shell の脆弱性は、現代社会におけるサイバーセキュリティの動きの速さと、脆弱性のリスクと影響を軽減するための多層的なセキュリティ対策の必要性を示すもう1つの例です。また、一見安全そうに見えるソフトウェアが、新たな悪用技術の源となり得ることを示しています。