Tenable ブログ
ブログ通知を受信するCVE-2021-44228: Apache Log4j における深刻なリモートコード実行の脆弱性の概念実証 (Log4Shell) が公開される
非常に多くのシステムで使用されているログライブラリである Log4j2 における深刻な脆弱性は、Minecraft、Steam、Apple iCloud などの多くのサービスとアプリケーションに影響を及ぼしています。攻撃者は、この脆弱性を悪用するために活発にスキャンを試みています。
12/21 更新内容: 12 月 17 日に発行された FAQ のブログに Log4Shell と関連した脆弱性に関する情報が掲載されています。最新の情報は、こちらのブログから: CVE-2021-44228、CVE-2021-45046、CVE-2021-4104: Log4Shell 関連の脆弱性についてよくある質問
背景
12 月 9 日、Apache Log4j 2 における深刻な脆弱性に対する概念実証 (PoC) エクスプロイトコードが公開されました。Apache Log4j 2 は、以下のようなアプリケーションやサービスで広く使用されている Java ロギングライブラリです。
Log4Shell と呼ばれているこの脆弱性の発見は、人気の高いサンドボックスビデオゲームである Minecraft のいくつかのバージョンがこの脆弱性を突く攻撃を受けたという報告から始まりました。
今、minecraft のクライアントとサーバーのエクスプロイトが手放しの状態になっていて、log4j のバージョン 2.0 - 2.14.1にある脆弱性を悪用している。POC が既に出回っている。
— ᵃᵈᵃᵐ (@twokilohertz) 2021/12/
さらに、Steam や Apple iCloud などのクラウドサービスも影響を受けているようです。
この脆弱性は非常に深刻であると考えられているため、Cloudflare の CEO はすべてのユーザーに保護を提供することを計画しています。
分析
CVE-2021-44228 は、Apache Log4j 2 におけるリモートコード実行 (RCE) の脆弱性です。認証されていない攻撃者は、脆弱なバージョンの Log4j を実行しているサーバーに特殊な細工が施された要求をリモートから送信することにより、この脆弱性を悪用することができます。細工された要求は、次のようなさまざまなサービスを介してJava Naming and Directory Interface (JNDI) インジェクションを使用します。
- ライトウェイトディレクトリアクセスプロトコル (LDAP)
- セキュアLDAP (LDAPS)
- リモートメソッド呼び出し (RMI)
- ドメインネームサービス (DNS)
脆弱なサーバーが Log4j を使用して要求をログに記録すると、攻撃者が制御するサーバーから上記のサービスの 1 つを使用して JNDI を介して悪意のあるペイロードを要求することができます。ここまで悪用に成功すれば、リモートコードの実行が可能になります。
Minecraft では、ユーザーは Minecraft チャットを介して特殊な細工が施されたメッセージを送信することにより、この脆弱性を悪用することができました。
それからコ―ドの実行?? #log4j #minecraft pic.twitter.com/aSFzhsm87l
— John Hammond (@_JohnHammond) 2021/12/10
GreyNoise と Bad Packets は、Log4j を悪用してサーバーをスキャンする試みを数多く検出しました。
リモートコード実行に対して脆弱な Apache Log4j (Java のロギングライブラリ) を使った大規模なスキャン活動が複数のホストからサーバーに向けて試行されている(https://t.co/GgksMUlf94)。
API に tags=CVE-2021-44228 がないかクエリして、ソースの IP アドレスその他の IOC を探している。 #threatintel— Bad Packets (@bad_packets) 2021/12/10
現在、この脆弱性が暗号通貨マイナーを移植するために使用されているという報告があります。
この log4shell ペイロードは...暗号通貨マイナーです
脆弱性が発生しました pic.twitter.com/XUR7I5ydpP— Kevin Beaumont (@GossiTheDog) 2021/12/10
概念実証
CVE-2021-44228 の最初の POC は、12 月 9 日 CVE の識別子が確定する前にリリースされていました。このブログはまだ発行されていませんでしたが、他の PoC が GitHub で利用可能でした。
ソリューション
Apache はこの脆弱性を修正するために 12 月 6 日にリリース予定のパッチを公開しましたが、それは不完全で、12 月 10 日に 2.15.0 をリリースしました。
Log4j 2.15.0 には Java 8 が必要なので、Java 7 を使用している場合は、パッチが適用されたバージョンの Log4j に更新する前にアップグレードする必要があります。
パッチが適用されたバージョンに今すぐ更新できない場合、Apache は、この脆弱性の悪用を阻止するために以下の 3 つの緩和策を適用することを勧めています。Apache はガイドラインを頻繁に更新しているので、こちらから最新情報を把握されることをお勧めします。
Log4j は多くの Webアプリケーションに含まれており、さまざまなクラウドサービスで使用されているため、この脆弱性の全容についてはまだ明らかになっていません。ただし、このブログ記事が公開された時点では、以下の製品とサービスに脆弱性があることが確認されています。
製品 / サービス | 影響の確認 |
---|---|
Minecraft | 〇 |
Steam | 〇 |
Apple iCloud | 〇 |
Tencent | 〇 |
〇 | |
Baidu | 〇 |
Didi | 〇 |
Cloudflare | 〇 |
Amazon | 〇 |
Tesla | 〇 |
ElasticSearch | 〇 |
Ghidra | 〇 |
この脆弱性のアタックサーフェスに関しては、GitHub リポジトリに情報が維持されているので参照してください。
影響を受けているシステムの特定
この脆弱性を識別するための Tenable のプラグインのリストは、リリースされた時点で こちら に表示されます。さらに、次のプラグインが利用できます (プラグインセット 202112112213 以降で利用可能)。
リモートチェック
- プラグイン ID 156014 - コールバック相関 (ダイレクトチェック HTTP) による Apache Log4Shell RCE 検出-このリモートチェックは、認証なしで脆弱性を特定するために使用できます。このプラグインは Tenable クラウドスキャナーと互換性があります。
- プラグイン ID 155998 - Apache Log4j の「Message Lookup Substitution」機能の RCE (Log4Shell) (直接チェック) -このプラグインは、ターゲットホストからの LDAP BIND 接続をリッスンします。Tenable.io クラウドスキャナーとは互換性がなく、ファイヤーウォールルールまたは他のセキュリティデバイスからの干渉により、特定のネットワークで結果を返さない場合があります。今後もさらなる検出オプションを検討していきます。Tenable.io クラウドスキャナーのユーザーには次の 4 つのプラグインを使用することをお勧めします。
プラグイン ID 156014 と 155998 のコールバックの概要については Tenable コミュニティに掲載の この投稿 をご確認ください。
バージョンチェックとローカル検出 (認証が必要)
- プラグイン ID 155999 - Apache Log4j < 2.15.0 リモートコード実行
- プラグイン ID 156000 - Apache Log4j のインストール (Unix)
- プラグイン ID 156001 - Apache Log4j JAR 検出 (Windows)
- プラグイン ID 156002 - Apache Log4j < 2.15.0 リモートコード実行
さらに、包括的な Tenable.io Web App Scanning (WAS) プラグインがリリースされました。このプラグインを使用すると、Log4Shell の悪用に使用できる入力フィールドをテストできます。
- プラグイン ID 113075 - Apache Log4j リモートコード実行 (Log4Shell)
上記の各プラグインのサポート情報については、Tenable コミュニティのこの記事をご覧ください。
Tenable は、この脆弱性をすばやくスキャンできるように事前構成された Tenable.io、Tenable.sc、および Nessus Professional のスキャンテンプレートをリリースしています。さらに、Tenable.io のユーザーは、ウィジェットライブラリの新しいダッシュボードとウィジェットを使用できます。また、Tenable.sc のユーザーは、新しい Log4Shell ダッシュボードを利用できます。スキャナーに利用可能な最新のプラグインがあることを確認するためには、プラグインセットを手動で更新することをお勧めします。Tenable.io Nessus スキャナーを含む Nessus のユーザーは、次の Nessus CLI コマンドを使用できます。
nessuscli fix --secure --delete feed_auto_last
nessuscli の使用の詳細については、この記事を参照してください。
Tenable.sc のユーザーは、次のスクリーンショットに示すように、プラグイン/フィード設定 UI の [更新] リンクを使用してプラグインを手動で更新できます。
現在、Tenable 製品をお持ちでない場合は、Nessus Professional の無償トライアルにサインアップして、この脆弱性をスキャンできます。
詳細情報
- ウェビナー: 脆弱性アラート - Apache Log4j 内の Log4Shell 対応について
- Apache Log4j2-3201: jNDI が使用できるプロトコルを制限し、LDAP を制限する
- セキュリティアドバイザリ: Apache Log4j2 リモートコード実行の脆弱性 (CVE-2021-44228)
- Log4Shell: 非常に多くのシステムで使用されている Java ベースのロギングパッケージである log4j2 にリモートコード実行のゼロデイ脆弱性が見つかる
- Apache Log4j 2 リリースページ
- Nessus がプラグインとソフトウェアアップデートを受け取る方法
Tenable コミュニティの Tenable セキュリティレスポンスチームに参加してみませんか。
最新のアタックサーフェスを総合的に管理する初のサイバーエクスポージャープラットフォーム、Tenable の詳細情報をご覧ください。
今すぐ Tenable Vulnerability Management の 30 日間無料トライアルをお試しください。
関連記事
- Vulnerability Management