Log4jの脆弱性をスキャンして修正する方法は?

公開: 2022-05-10

Log4jの脆弱性は、最新のシステムで最も致命的なセキュリティ問題の1つです。

ロギングは最新のアプリケーションの重要な機能であり、ロギングライブラリLog4jはこの分野のリーダーです。

このライブラリは、ほとんどのアプリケーション、サービス、およびシステムで使用されます。 したがって、Log4jが使用されているすべてのアプリケーションは、昨年見つかったこのLog4jの脆弱性の影響を受けます。

世界中でサイバーセキュリティへの懸念が高まる中、組織や個人は、アプリケーション、システム、およびデータを保護するための措置を講じています。

そして、この脆弱性が発見されたとき、それは専門家や企業にさらにストレスを与えました。

したがって、Log4jの脆弱性を検出して修正することは、データ、ネットワーク、レピュテーション、および顧客の信頼を保護するために不可欠です。

この記事では、Log4jの脆弱性とは何か、およびそれを検出して修正する手順について説明します。

Log4jとそれが必要な理由を理解することから始めましょう。

Log4jとは何ですか?

Log4jは、Javaで記述されたオープンソースのログユーティリティであり、主にアプリケーションやシステムによって生成されたログレコードを保存、フォーマット、公開し、エラーをチェックするために使用されます。 レコードは、Webページやブラウザのデータから、Log4jが実行されるシステムの技術的な詳細まで、さまざまなタイプにすることができます。

開発者は、コードを最初から作成する代わりに、コードをアプリに統合することでLog4jライブラリを使用できます。

Log4jを使用すると、開発者はアプリケーションに関連するすべてのイベントを正確なログ情報で追跡できます。 これは、アプリケーションを監視し、問題を時間どおりに特定し、パフォーマンスやセキュリティの面でより大きな問題に変わる前に問題を修正するのに役立ちます。

このJavaベースのライブラリはCekiGulcuによって作成され、ApacheLicense2.0の下で2001年にリリースされました。 Javaネーミングおよびディレクトリインターフェイス(JNDI)サービスを利用して、アプリがLDAP、DNS、CORBAなどの他のアプリと対話し、Javaベースのアプリケーションのディレクトリおよびネーミング機能を取得できるようにします。 Log4jには、タスクを実行するための3つのコンポーネントがあります。

  • ロギングレコードをキャプチャするロガー
  • さまざまなスタイルでロギングレコードをフォーマットするためのレイアウト
  • ロギングレコードをさまざまな宛先に公開するアペンダー

Log4jは、実際、Web上で最も有名なロギングライブラリの1つであり、複数の業界や国の組織で使用されています。 彼らはこのロギングライブラリを、Google、Microsoft、Apple、Cloudflare、Twitterなどのトップクラウドサービスを含む多くのアプリケーションに統合しています。

その開発者であるApacheSoftwareFoundationは、以前のリリースで見つかった問題に対処するためにLog4jへのアップグレードであるLog4j2を開発しました。 昨年、Log4jに脆弱性が発見されました。この脆弱性に対処しないと、攻撃者がアプリケーションやシステムに侵入したり、データを盗んだり、ネットワークに感染したり、その他の悪意のある活動を実行したりする可能性があります。

もっと理解しましょう。

Log4Shell – Log4jの脆弱性とは何ですか?

Log4Shellは、Log4jライブラリの重大なサイバーセキュリティの脆弱性であり、ライブラリのコア機能に影響を及ぼします。 攻撃者は、リモートでコードが実行されることにより、インターネットに接続されたデバイスまたはアプリケーションを制御できます。 彼らがそれに成功すると、彼らは次のことができます。

  • デバイスまたはシステムで任意のコードを実行する
  • すべてのネットワークとデータにアクセスする
  • 影響を受けるアプリまたはデバイス上のファイルを変更または暗号化する

この脆弱性は、2021年11月24日に、Alibaba(中国のeコマースの巨人)のセキュリティ研究者であるChenZhaojunによって最初に報告されました。 この脆弱性は、Alibabaのクラウドセキュリティチームが12月9日に発見したMinecraftサーバーに影響を及ぼしました。

次に、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)を介してすべてのLog4j2バージョンに影響を与えます

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バージョンを使用していない場合でも、サードパーティの統合がそれを使用している可能性があり、アプリが攻撃に対して脆弱になります。

Log4j2.17.0より前のすべてのLog4jバージョンに注意してください。 影響を受けます。 したがって、ロガーを使用する場合は、ロガーをアップグレードする必要があります。 また、このLog4jの脆弱性の影響を受ける有名なベンダーは、Adobe、AWS、IBM、Cisco、VMware、Okta、Fortinetなどです。これらのいずれかを使用する場合は、アプリを継続的に監視し、セキュリティシステムを使用して問題を修正します。発生します。

Log4jの影響を受けるプログラムを検出して問題を修正する方法

Log4Shellの脆弱性のCVSSスコアは10です。 したがって、Log4jのすべての問題にはまだパッチが適用されていません。 ただし、アプリケーションで使用したLog4jをユーザーまたはサードパーティベンダーが使用している可能性があります。

したがって、データ、システム、およびネットワークを保護する場合は、いくつかの修復手順に従うようにしてください。

#1。 Log4jバージョンを更新する

Log4jの脆弱性の結果としてデバイスとアプリを攻撃から保護したい場合は、現在のLog4jバージョンをLog4j2.17.1に更新することが最も効果的な修復手法です。

Log4Shellは、ソフトウェアエコシステムに影響を与える可能性のあるゼロデイ攻撃の一種です。 Apacheは最近のバージョンでいくつかの脆弱性を修正しましたが、アップグレード前にシステムが危険にさらされた場合でも、リスクがあります。

したがって、これを想定すると、バージョンをアップグレードするだけでなく、インシデント対応手順をすぐに開始して、システムやアプリに脆弱性がないことを確認し、攻撃を軽減する必要があります。 また、すべてのサーバーログを確認して、侵入の痕跡(IOC)を見つけ、システムとネットワークを常に監視する必要があります。

#2。 最新のファイアウォールとセキュリティシステムを使用する

Webアプリケーションファイアウォール(WAF)や次世代ファイアウォールなどのファイアウォールは、着信および発信データパケットをスキャンし、疑わしいパケットをブロックすることで、攻撃者からネットワーク境界を保護するのに役立ちます。 そのため、ネットワークで最新のファイアウォールを使用し、サーバーに厳格な送信ルールを設定して、Log4jの脆弱性に関連する攻撃を防止します。

攻撃者はファイアウォールをバイパスできますが、攻撃者の要求をブロックできるファイアウォールを使用すると、ある程度のセキュリティを確保できます。

さらに、侵入検知システム(IDS)、侵入防止システム(IPS)などのすべてのセキュリティシステムを最新の署名とルールで更新します。 これらのシステムは、RMIおよびLDAPトラフィックが悪意のあるLDAPサーバーに接続するのをブロックまたはフィルタリングするのに役立ちます。

#3。 MFAを実装する

アプリケーションとシステムに多要素認証(MFA)を設定すると、攻撃者からのセキュリティが向上します。 攻撃者が第1層を破ることができたとしても、第2層のセキュリティを提供します。 指紋、虹彩スキャンなどの生体認証、セキュリティの質問の設定、またはセキュリティPINの有効化を通じてこれを行うことができます。

MFAを使用すると、攻撃者が本格的な攻撃を実行するのが難しくなり、時間が長くなります。 その間、それはまたあなたがまだ時間があるときにあなたが必要な是正措置をとることができるようにあなたに事件をすぐに知らせることができます。

さらに、データ侵害を減らすために、厳格なVPNポリシーも適用する必要があります。 これにより、ユーザーは攻撃者を恐れることなく、どこからでも安全にシステムにアクセスできるようになります。

#4。 システムプロパティの変更

Log4jライブラリの最新バージョンにアップグレードできない場合、Log4j2.10からLog4j2.14.1の範囲のバージョンを使用する場合は、Javaシステムのプロパティをすぐに変更する必要があります。

攻撃者が脆弱性を検出し、それらを悪用する方法を見つけるために使用するルックアップを防ぐような方法で設定する必要があります。

#5。 JNDIを削除します

この重大なセキュリティの脆弱性の理由は、その設計にあります。 JNDIルックアッププラグインには、攻撃者が攻撃を実行できる設計上の欠陥があります。

JNDIは、ログの入力データに基づいてコードを実行するために使用されます。ロガーは検証なしで要求を受け入れるため、誰でも簡単に操作できます。

セキュリティ研究者は、このプラグインが2013年にリリースされて以来、常に未解析のデータを許可しており、それをLog4jライブラリに送信していることを発見しました。

したがって、Log4jの脆弱性は、単純な文字列インジェクションで悪用される傾向があります。 攻撃者がそれを注入すると、ロガーは文字列で要求された操作を受け入れ、検証なしで即座に実行します。

したがって、システムとアプリケーションを保護する場合は、クラスJndiLookupを無効にする必要があります。 これにより、ロガーがログデータに基づいてアクションを実行できなくなります。

実際、JNDIルックアップは、アプリケーションとシステムを保護するために、デフォルトでLog4j2.16.0ですでに無効になっています。

したがって、2.16.0より前のバージョンのLog4jを使用している場合は、JNDIルックアップが無効になっていることを確認してください。

#6。 ベンダーと話してください

すべてが正しく行われている場合、ファイアウォールとセキュリティシステムが更新されている、Log4jバージョンが更新されている、JNDIルックアップが無効になっているなどの場合は、まだリラックスしないでください。

アプリケーションで脆弱なLog4jバージョンを使用していない場合でも、サードパーティベンダーがそれを使用している可能性があります。 したがって、実際の問題はサードパーティの統合にあるため、アプリケーションまたはシステムがどのようにハッキングされたかを知ることはできません。

したがって、ベンダーと話し合い、ベンダーもLog4jを最新バージョンにアップグレードし、上記で説明した他のセキュリティプラクティスを実装していることを確認してください。

#7。 Log4j脆弱性スキャナーを使用する

システムやアプリケーションのLog4jの脆弱性を簡単に検出できるようにするために、市場には多くのLog4j脆弱性スキャンツールがあります。

したがって、これらのツールを探すときは、それらの多くが誤検知を生成するため、それらの正解率を確認してください。 また、Log4jの脆弱性の特定、エクスポージャーの報告、および脆弱性の修正に重点を置いている可能性があるため、ニーズに対応できるツールを見つけてください。

したがって、検出に重点を置いている場合は、問題を検出できるLog4j脆弱性スキャナーを見つけるか、問題を検出して修正できるものを使用してください。

最高のLog4jスキャンツールのいくつかは次のとおりです。

  • Microsoft 365 Defende r:Microsoftは、ネットワークでのLog4jエクスプロイトの検出と防止に役立つさまざまなセキュリティソリューションとツールを提供しています。 WindowsおよびLinuxデバイスのLog4jの脆弱性から保護し、リモートでコードが実行および悪用される試みを見つけることができます。
  • Amazon InspectorとAWS: Amazonは、AmazonEC2インスタンスとAmazonECRのLog4jの脆弱性を見つけるためのスキャンツールを作成しました。
  • CloudStrikeアーカイブスキャンツール(CAST): CloudStrikeは、Log4jの脆弱性を検出する優れたスキャンツールも作成し、攻撃者が悪用する前に問題を時間どおりに修正できるようにしました。
  • Googleクラウドロギング検出: Googleのクラウドロギング検出ソリューションを使用すると、LogsExplorerを使用してLog4jエクスプロイトを検出できます。 このツールでログクエリを作成し、潜在的なエクスプロイト文字列をスキャンできます。
  • Googleは、Log4jの脆弱性を検出するためのオープンソースのファイルシステムスキャナーであるlog4jscannerも作成しました。
  • BurpSuite Log4jスキャナー:これは、専門家や企業がLog4jの脆弱性を検出するのに役立つセキュリティプラグインです。
  • Huntress Log4Shell Vulnerability Tester:このツールは、入力フィールドのテスト中に使用できる一意の識別子をランダムに生成します。 アプリケーションまたは入力フィールドに脆弱性が見つかると、その安全なLDAPサーバーは悪意のある接続を即座に終了し、ユーザーを安全に保ちます。
  • WhiteSource Log4j Detect: WhiteSourceは、Log4jの脆弱性(CVE-2021-445046およびCVE-2021-44228)の検出と修正を支援するために、GitHubでホストされる無料のCLIツールであるWhiteSourceLog4jDetectを作成しました。
  • Log4j用のJFrogオープンソーススキャンツール: JFrogは、バイナリとソースコードのLog4jの脆弱性を見つけるためのさまざまなオープンソースソリューションとツールを作成しました。

結論

Log4jの脆弱性は重大なセキュリティ問題です。 このロギングライブラリはさまざまなアプリケーションやシステムで広く使用されているため、Log4jの脆弱性が蔓延し、攻撃者がさまざまなシステムやアプリを悪用できるようになっています。

したがって、システムとアプリケーションをこの脆弱性から保護する場合は、Log4jライブラリを最新バージョンにアップグレードし、上記のセキュリティ対策のベストプラクティスを実装してください。