Log4j の脆弱性は、最新のシステムにおける最も致命的なセキュリティ問題の 1 つです。
ロギングは最新のアプリケーションの重要な機能であり、ロギング ライブラリである Log4j はこの分野のリーダーです。
このライブラリは、ほとんどのアプリケーション、サービス、システムで使用されます。したがって、Log4j が使用されているすべてのアプリケーションは、昨年発見されたこの Log4j 脆弱性の影響を受けます。
世界中でサイバーセキュリティへの懸念が高まる中、組織や個人はアプリケーション、システム、データを保護するための措置を講じています。
そして、この脆弱性が発見されたとき、専門家や企業はさらにストレスを受けることになりました。
したがって、データ、ネットワーク、評判、顧客の信頼を保護したい場合は、Log4j の脆弱性を検出して修正することが不可欠です。
この記事では、Log4j の脆弱性とは何かと、それを検出して修正する手順について説明します。
まずは Log4j とそれが必要な理由を理解することから始めましょう。
Log4jとは何ですか?
Log4jは Java で書かれたオープンソースのログ ユーティリティで、主にアプリケーションやシステムによって生成されたログ レコードを保存、フォーマット、公開し、エラーをチェックするために使用されます。レコードには、Web ページやブラウザーのデータから、Log4j が実行されるシステムの技術的な詳細に至るまで、さまざまな種類があります。
開発者は、最初からコードを記述する代わりに、そのコードをアプリに統合することで Log4j ライブラリを使用できます。
Log4j を使用すると、開発者はアプリケーションに関連付けられたすべてのイベントを正確なログ情報で追跡できます。これは、アプリケーションを監視し、問題を時間通りに特定し、パフォーマンスやセキュリティの点で大きな問題に発展する前に問題を修正するのに役立ちます。
この Java ベースのライブラリは Ceki Gülcü によって作成され、Apache License 2.0 に基づいて 2001 年にリリースされました。 Java ネーミングおよびディレクトリ インターフェイス (JNDI) サービスを利用して、アプリが LDAP、DNS、CORBA などの他のアプリと対話し、Java ベースのアプリケーションのディレクトリとネーミング機能を取得できるようにします。 Log4j には、タスクを実行するための 3 つのコンポーネントがあります。
- ログ記録を取得するロガー
- さまざまなスタイルでログ記録をフォーマットするためのレイアウト
- ロギング レコードをさまざまな宛先に公開するためのアペンダー
実際、Log4j は Web 上で最も有名なログ ライブラリの 1 つであり、複数の業界や国の組織で使用されています。彼らはこのロギング ライブラリを、Google、Microsoft、Apple、Cloudflare、Twitter などのトップ クラウド サービスを含む多くのアプリケーションに統合しました。
その開発者である Apache Software Foundation は、以前のリリースで見つかった問題に対処するために、Log4j へのアップグレードである Log4j 2 を開発しました。昨年、Log4j に脆弱性が発見されました。この脆弱性を放置すると、攻撃者がアプリケーションやシステムに侵入し、データを盗み、ネットワークに感染し、その他の悪意のある活動を実行できる可能性があります。
もっと理解しましょう。
Log4Shell – Log4j の脆弱性とは何ですか?
Log4Shell は Log4j ライブラリの重大なサイバーセキュリティ脆弱性であり、ライブラリのコア機能に影響を与えます。これにより、攻撃者はリモートでコードを実行することで、インターネットに接続されたデバイスやアプリケーションを制御できるようになります。これに成功すると、次のことが可能になります。
- デバイスまたはシステム上で任意のコードを実行します
- すべてのネットワークとデータにアクセスする
- 影響を受けるアプリまたはデバイス上のファイルを変更または暗号化する
この脆弱性は、2021 年 11 月 24 日に Alibaba (中国の電子商取引大手) のセキュリティ研究者である Chen Zhaojun によって最初に報告されました。この脆弱性は同社の Minecraft サーバーに影響を及ぼし、Alibaba のクラウド セキュリティ チームが 12 月 9 日に発見しました。
次に、NIST はこの脆弱性を National Vulnerability Database で公開し、CVE-2021-44228 と名付けました。 Apache Software Foundation は、この脆弱性の CVSS 重大度を 10 と評価しました。これはめったに割り当てられず、広範囲かつ簡単に悪用される可能性があり、組織や個人に多大な被害をもたらす可能性があるため、非常に深刻です。
これに応じて、Apache はこの脆弱性に対するパッチを発行しましたが、依然としていくつかの部分は未解決のままであり、他の脆弱性を引き起こしています。
- JNDI ルックアップを通じてサービス拒否 (DoS) 攻撃を助長する CVE-2021-45046
- CVE-2021-45105 により、ハッカーがスレッド コンテキスト マップ情報を制御し、細工された文字列を解釈して DoS 攻撃を引き起こすことが可能になります。
- CVE-2021-44832 は、リモート コード インジェクション (RCE) を介してすべての Log4j 2 バージョンに影響します。
Log4Shell はどのように機能しますか?
その重大度と Log4Shell が及ぼす害の程度を理解するには、この Log4j 脆弱性がどのように機能するかを知ることが重要です。
Log4Shell の脆弱性により、攻撃者は任意のコードをリモートからネットワークに挿入し、ネットワークを完全に制御できるようになります。
このサイバー攻撃シーケンスは、Log4j などのログ ライブラリがログ情報を収集して保存することから始まります。ログ ライブラリがない場合、サーバーからのすべてのデータは、データが収集された後すぐにアーカイブされます。
ただし、このデータを分析したい場合、または特定のログ情報に基づいて何らかのアクションを実行する必要がある場合は、アーカイブされる前にログ データを解析するためのログ ライブラリが必要になります。
Log4j の脆弱性により、Log4j を使用するシステムやアプリはサイバー攻撃に対して脆弱になります。ロギング ライブラリは、入力に基づいてコードを実行します。ハッカーはこの脆弱性により入力を操作できるため、ログ ライブラリに有害なコードを強制的に実行させる可能性があります。
その間、バックグラウンドでは多くのことが起こります。 Log4j に特別に作成された文字列が渡されると、コードを実行するために、LDP サーバーを呼び出し、そのディレクトリにホストされているコードをダウンロードします。このようにして、攻撃者は、コードが実行されるサーバーの制御に役立つ悪意のあるコードを保存する LDAP サーバーを作成できます。次に、悪意のあるコードを標的のアプリまたはシステムに誘導する文字列を送信し、それを完全に制御します。
Log4j の脆弱性は次のように悪用される可能性があります。
- 攻撃者は、脆弱な Log4j バージョンを持つサーバーを発見します。
- 彼らは、悪意のある LDAP サーバーのリンクを含む get リクエストを標的のサーバーに送信します。
- ターゲットのサーバーは、リクエストを検証する代わりに、この LDAP サーバーに直接接続します。
- 攻撃者は、悪意のあるコードを含む LDAP サーバー応答を標的のサーバーに送信します。 Log4j にはコードを受信して検証なしで実行できる脆弱性があるため、ハッカーはこの弱点を利用してターゲット サーバーに侵入し、接続されているシステム、ネットワーク、デバイスを悪用する可能性があります。
Log4j の脆弱性はユーザーにどのような損害を与える可能性がありますか?
Log4j の脆弱性は、幅広いソフトウェア アプリケーションやシステムで使用されているため、懸念されています。
ログ記録はほとんどのソフトウェア アプリで不可欠な機能であり、Log4j はこの分野の主要なソリューションであるため、Log4j はさまざまなソフトウェア システムでアプリケーションを見つけます。
Log4j を使用する人気のあるサービスやアプリには、Minecraft、AWS、iCloud、Microsoft、Twitter、インターネット ルーター、ソフトウェア開発ツール、セキュリティ ツールなどがあります。したがって、攻撃者は、ホーム ユーザー、コード開発者、サービス プロバイダー、その他の関連専門家や個人からの多数のアプリケーション、サービス、システムを標的にすることができます。
さらに、Log4j の脆弱性は、攻撃者にとって非常に簡単に悪用されます。プロセス全体では、攻撃を実行するために必要なスキル セットは少なく、専門家レベルではありません。このため、この脆弱性を悪用した攻撃が増加しています。
Log4j 脆弱性の影響は次のとおりです。
- DoS攻撃
- サプライチェーン攻撃
- コインマイニング
- ランサムウェアやトロイの木馬などのマルウェアの注入
- 任意のコードインジェクション
- リモートコード実行
もっと。
これらの攻撃の結果、アプリケーション、システム、デバイスを失う可能性があり、データが攻撃者の餌食となり、データが販売されたり、操作されたり、外部に公開されたりする可能性があります。したがって、コンプライアンス リスクは言うに及ばず、顧客データのプライバシー、信頼、組織の機密、さらには売上や収入の面でもビジネスが損害を受ける可能性があります。
レポートによると、世界の企業ネットワークの 40% 以上がこの脆弱性による攻撃を受けています。
そのため、アプリケーションで脆弱な Log4j バージョンを使用していない場合でも、サードパーティの統合でそれが使用されている可能性があり、その結果、アプリケーションが攻撃に対して脆弱になります。
Log4j 2.17.0 より前のすべての Log4j バージョンに注意してください。影響を受けています。したがって、ロガーを使用する場合は、それをアップグレードする必要があります。また、この Log4j 脆弱性の影響を受ける有名なベンダーは、Adobe、AWS、IBM、Cisco、VMware、Okta、Fortinet などです。これらのベンダーのいずれかを使用している場合は、アプリを継続的に監視し、問題が発生したらすぐにセキュリティ システムを使用して問題を修正してください。が生じます。
Log4j の影響を受けるプログラムを検出し、問題を修正する方法
Log4Shell の脆弱性は、CVSS スコアで 10 です。したがって、Log4j のすべての問題にはまだパッチが適用されていません。ただし、アプリケーションで使用したことのある Log4j を、ユーザーまたはサードパーティ ベンダーが使用している可能性があります。
したがって、データ、システム、ネットワークを保護したい場合は、必ずいくつかの修復手順に従ってください。
#1. Log4j バージョンを更新する
Log4j の脆弱性による攻撃からデバイスとアプリを保護したい場合は、現在の Log4j バージョンを Log 4j 2.17.1 に更新することが最も効果的な修復手法です。
Log4Shell はゼロデイ攻撃の一種であり、ソフトウェア エコシステムに影響を与える可能性があります。 Apache は最近のバージョンでいくつかの脆弱性を修正しましたが、アップグレード前にシステムが侵害された場合、依然として危険にさらされています。
したがって、これを前提として、バージョンをアップグレードするだけでなく、システムやアプリに脆弱性がないことを確認し、攻撃を軽減するために、インシデント対応手順を直ちに開始する必要があります。また、すべてのサーバー ログを確認して侵害の痕跡 (IOC) を見つけ、システムとネットワークを常に監視する必要があります。
#2.最新のファイアウォールとセキュリティ システムを使用する
Web アプリケーション ファイアウォール (WAF) や次世代ファイアウォールなどのファイアウォールは、送受信データ パケットをスキャンし、疑わしいパケットをブロックすることで、ネットワーク境界を攻撃者から保護するのに役立ちます。したがって、ネットワークで最新のファイアウォールを使用し、サーバーに厳密な送信ルールを設定して、Log4j の脆弱性に関連する攻撃を防止してください。
攻撃者はファイアウォールをバイパスする可能性がありますが、攻撃者のリクエストをブロックできるファイアウォールを使用しても、ある程度のセキュリティは得られます。
さらに、侵入検知システム (IDS)、侵入防御システム (IPS) などのすべてのセキュリティ システムを最新のシグネチャとルールで更新します。これらのシステムは、RMI および LDAP トラフィックが悪意のある LDAP サーバーに接続するのをブロックまたはフィルタリングするのに役立ちます。
#3. MFA の実装
アプリケーションとシステムに多要素認証 (MFA) を設定すると、攻撃者に対するセキュリティが強化されます。攻撃者が第 1 層を突破できたとしても、第 2 層のセキュリティが提供されます。これは、指紋、虹彩スキャンなどの生体認証、秘密の質問の設定、またはセキュリティ PIN の有効化を通じて行うことができます。
MFA を使用すると、攻撃者の難易度が高まり、本格的な攻撃を実行する時間が増加します。それまでの間、インシデントをすぐに通知して、時間のあるときに必要な修復手順を実行できるようにすることもできます。
さらに、データ侵害を減らすために厳格な VPN ポリシーを適用する必要もあります。これにより、ユーザーは攻撃者を恐れることなく、どこからでもシステムに安全にアクセスできるようになります。
#4.システムプロパティの変更
Log4j 2.10 から Log4j 2.14.1 までのバージョンを使用している場合は、Log4j ライブラリの最新バージョンにアップグレードできない場合に備えて、Java システム プロパティをすぐに変更する必要があります。
攻撃者が脆弱性を検出し、それを悪用する方法を見つけるために使用する検索を防止するように設定する必要があります。
#5. JNDIの削除
この重大なセキュリティ脆弱性の理由はその設計にあります。 JNDI Lookup プラグインには、攻撃者が攻撃を実行できる設計上の欠陥があります。
JNDI は、ログ内の入力データに基づくコードの実行に使用されます。ロガーは検証なしであらゆるリクエストを受け入れるため、誰でも簡単に操作できます。
セキュリティ研究者は、このプラグインが 2013 年にリリースされて以来、常に未解析データを許可しており、それを Log4j ライブラリに送信していることを発見しました。
したがって、Log4j の脆弱性は、単純な文字列インジェクションによって悪用される傾向があります。攻撃者がそれを挿入すると、ロガーは文字列で要求された操作を受け入れ、検証なしで即座に実行します。
したがって、システムとアプリケーションを保護したい場合は、クラス JndiLookup を無効にする必要があります。これにより、ロガーがログ データに基づいてアクションを実行できなくなります。
実際、アプリケーションとシステムを保護するために、Log4j 2.16.0 では JNDI ルックアップがデフォルトですでに無効になっています。
したがって、2.16.0 より前の Log4j バージョンを使用している場合は、JNDI ルックアップを無効にしていることを確認してください。
#6.ベンダーに相談してください
ファイアウォールとセキュリティ システムが更新され、Log4j バージョンが更新され、JNDI Lookup が無効化されているなど、すべてが正しく行われている場合でも、まだリラックスする必要はありません。
アプリケーションで脆弱な Log4j バージョンを使用していない場合でも、サードパーティ ベンダーがそれを使用している可能性があります。したがって、実際の問題はサードパーティの統合にあったため、アプリケーションやシステムがどのようにハッキングされたのかを知ることはできません。
したがって、ベンダーと相談して、ベンダーも Log4j を最新バージョンにアップグレードし、上記で説明したその他のセキュリティ対策を実装していることを確認してください。
#7。 Log4j 脆弱性スキャナーを使用する
システムやアプリケーションの Log4j 脆弱性を簡単に検出できるように、市場には Log4j 脆弱性スキャン ツールが多数提供されています。
したがって、これらのツールを探すときは、その多くが誤検知を生成するため、その精度率を確認してください。また、Log4j の脆弱性の特定、暴露の報告、脆弱性の修復に重点を置いている可能性があるため、ニーズを満たすことができるツールを見つけてください。
したがって、検出に重点を置いている場合は、問題を検出できる Log4j 脆弱性スキャナーを見つけるか、問題を検出して修復できるものを使用してください。
最高の Log4j スキャン ツールには次のようなものがあります。
- Microsoft 365 Defender : Microsoft は、ネットワーク内の Log4j エクスプロイトの検出と防止に役立つさまざまなセキュリティ ソリューションとツールを提供しています。リモートでのコードの実行や悪用の試みを特定し、Windows および Linux デバイスの Log4j の脆弱性から保護できるようになります。
- Amazon Inspector と AWS: Amazon は、Amazon EC2 インスタンスと Amazon ECR の Log4j 脆弱性を見つけるためのスキャン ツールを作成しました。
- CloudStrike アーカイブ スキャン ツール (CAST): CloudStrike は、Log4j の脆弱性を検出する優れたスキャン ツールも作成しました。これにより、攻撃者が悪用する前に問題を期限内に修正できるようになります。
- Google Cloud Logging の検出: Google のクラウド ロギング検出ソリューションを使用すると、ログ エクスプローラーを使用して Log4j エクスプロイトを検出できます。このツールでログ クエリを作成し、潜在的なエクスプロイト文字列をスキャンできます。
- Google は、Log4j の脆弱性を検出するためのオープンソース ファイル システム スキャナーである log4jscanner も作成しました。
- BurpSuite Log4j Scanner:これは、専門家や企業が Log4j の脆弱性を検出するのに役立つセキュリティ プラグインです。
- Huntress Log4Shell Vulnerability Tester:このツールは、入力フィールドのテスト中に使用できる一意の識別子をランダムに生成します。アプリケーションまたは入力フィールドに脆弱性が見つかると、安全な LDAP サーバーが悪意のある接続を即座に終了し、ユーザーの安全を確保します。
- WhiteSource Log4j Detect: WhiteSource は、Log4j の脆弱性 (CVE-2021-445046 および CVE-2021-44228) の検出と修正を支援するために、GitHub でホストされている無料の CLI ツール WhiteSource Log4j Detect を作成しました。
- Log4j 用の JFrog オープンソース スキャン ツール: JFrog は、バイナリやソース コード内の Log4j の脆弱性を見つけるためのさまざまなオープンソース ソリューションとツールを作成しました。
結論
Log4j の脆弱性は重大なセキュリティ問題です。このログ ライブラリはさまざまなアプリケーションやシステムで広く使用されているため、Log4j の脆弱性が広まり、攻撃者が幅広いシステムやアプリケーションを悪用できるようになりました。
したがって、システムとアプリケーションをこの脆弱性から保護したい場合は、Log4j ライブラリを最新バージョンにアップグレードし、上記で説明したセキュリティのベスト プラクティスを実装してください。