脆弱性ウォッチ

Apache HTTP ServerのPath Traversal脆弱性 CVE-2021-41773 と後続のRCE脆弱性 CVE-2021-42013 の技術解説:アップデート遅延が招く深刻なリスクシナリオ

Tags: Apache HTTP Server, Path Traversal, RCE, CVE-2021-41773, アップデート遅延

導入:Webサーバーの脆弱性とアップデート遅延の深刻な影響

Apache HTTP Serverは、世界で最も広く利用されているWebサーバーソフトウェアの一つであり、その堅牢性と柔軟性から多くの企業や組織のWebインフラストラクチャを支えています。しかし、その普及度ゆえに、Apache HTTP Serverに発見される脆弱性は、サイバー攻撃者にとって非常に魅力的な標的となり得ます。特に、パッチがリリースされても適用が遅延する環境は、攻撃者にとって格好の機会を提供します。

本記事では、2021年後半に相次いで公開され、短期間に多数のPoC(Proof of Concept)や悪用が確認されたApache HTTP ServerのPath Traversal脆弱性であるCVE-2021-41773、およびそのパッチを回避する形で発見された後続のRCE(Remote Code Execution)脆弱性CVE-2021-42013に焦点を当てます。これらの脆弱性の技術的な詳細、具体的な悪用方法、そしてシステムアップデートが遅延した場合に組織が直面する具体的なリスクシナリオについて深く掘り下げて解説いたします。これにより、セキュリティアナリストの皆様が、社内でのリスク評価や対策推進、システム担当者への技術リスク説明に役立つ情報を提供できることを目指します。

脆弱性の技術詳細:Path TraversalからRCEへ

CVE-2021-41773:Apache HTTP Server 2.4.49 Path Traversal

この脆弱性(CVE-2021-41773)は、Apache HTTP Serverのバージョン2.4.49に存在しました。攻撃者が特別に細工されたURLを送信することで、Webサーバーのドキュメントルート外のファイルにアクセスできるPath Traversal(ディレクトリトラバーサル)の脆弱性です。

根本原因と技術的仕組み: Apache HTTP Server 2.4.49では、URL正規化処理の変更により、URLパスのエンコーディング処理に不備が生じました。具体的には、%2e(ピリオド.のURLエンコード)が適切に処理されず、/%2e%2e/のようなシーケンスを使用して親ディレクトリに移動することが可能でした。

この脆弱性の深刻度を特に高めたのは、Webサーバーの設定によってはリモートコード実行(RCE)に繋がる可能性があった点です。具体的には、mod_cgiモジュールが有効化されており、かつCGIスクリプトの実行を許可するOptions ExecCGIディレクティブが設定されている場合、ドキュメントルート外のcgi-binディレクトリや他の実行可能ファイルへのPath Traversalを通じて、任意のコマンドを実行することが可能でした。

脆弱性が悪用される条件: * Apache HTTP Server 2.4.49が稼働していること。 * ファイルシステム上のWebサーバーのドキュメントルート外にあるファイルにアクセスが可能な設定、特にデフォルトのRequire all deniedディレクティブが上書きされているか、適用されていないディレクトリが存在する場合。 * RCEに繋がる場合、mod_cgiまたはmod_cgidモジュールが有効化されており、CGIスクリプトの実行が許可されていること。

CVE-2021-42013:Apache HTTP Server 2.4.50 Path TraversalおよびRCE

CVE-2021-41773のパッチとしてApache HTTP Server 2.4.50がリリースされましたが、このパッチには不完全な点があり、これを回避する形でCVE-2021-42013が発見されました。この脆弱性もPath TraversalおよびRCEの可能性を秘めていました。

根本原因と技術的仕組み: CVE-2021-41773のパッチは、%2e%2e/のような単一エンコードされたシーケンスをブロックするものでした。しかし、攻撃者は%252e%252e/のように二重URLエンコードされたシーケンス(%25%のエンコード)を使用することで、パッチを回避して再度Path Traversalを実行できることが判明しました。

この二重エンコーディングは、サーバーがURLをデコードする過程で、まず%25%にデコードし、次に%2e.にデコードするため、最終的に../として解釈されてしまうことに起因します。これにより、CVE-2021-41773と同様に、Webサーバーのドキュメントルート外のファイルへのアクセスや、mod_cgiが有効な環境でのリモートコード実行が可能となりました。

脆弱性が悪用される条件: * Apache HTTP Server 2.4.50が稼働していること。 * CVE-2021-41773と同様に、ドキュメントルート外のファイルへのアクセスが可能な設定であること。 * RCEに繋がる場合、mod_cgiまたはmod_cgidモジュールが有効化されており、CGIスクリプトの実行が許可されていること。

悪用方法とリスクシナリオ

これらの脆弱性は、特にmod_cgiが有効な環境において、容易に任意のファイル読み取りやリモートコード実行に悪用される可能性がありました。

具体的な悪用方法の例:

  1. 任意ファイル読み取り (Path Traversal): 攻撃者は、以下のようなリクエストを送信することで、Webサーバーのドキュメントルート外にあるシステムファイル(例:/etc/passwd)を読み取ることが可能です。 GET /cgi-bin/.%2e/.%2e/.%2e/.%2e/etc/passwd HTTP/1.1 Host: vulnerable.example.com CVE-2021-42013の場合は、二重エンコードを利用します。 GET /cgi-bin/.%252e/.%252e/.%252e/.%252e/etc/passwd HTTP/1.1 Host: vulnerable.example.com これにより、攻撃者はシステムの構成情報、ユーザーアカウント情報、さらには設定ファイルに含まれる認証情報などを窃取できる可能性があります。

  2. リモートコード実行 (RCE): mod_cgiが有効化され、CGIスクリプトの実行が許可されている場合、攻撃者はCGIスクリプトとして任意のシステムコマンドを実行させることができます。 例えば、以下のようなリクエストを送信し、/bin/sh(シェル)にコマンドをパイプすることで、リモートから任意のコマンドを実行可能です。 ``` POST /cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh HTTP/1.1 Host: vulnerable.example.com Content-Length: 100

    echo Content-Type: text/plain; echo; id; CVE-2021-42013の場合は、二重エンコードを利用します。 POST /cgi-bin/.%252e/.%252e/.%252e/.%252e/bin/sh HTTP/1.1 Host: vulnerable.example.com Content-Length: 100

    echo Content-Type: text/plain; echo; whoami; ``` これにより、攻撃者はWebサーバー上で動作するユーザーの権限で、任意のシステムコマンドを実行し、ファイルシステムの操作、マルウェアのダウンロードと実行、バックドアの設置など、Webサーバーを完全に制御する可能性があります。

システムアップデート遅延による具体的なリスクシナリオ:

実際の事例

CVE-2021-41773は、2021年10月5日に公開され、PoCコードが公開された直後から悪用が急増しました。Apache Software Foundationが2.4.50をリリースし、すぐにCVE-2021-42013が発見され、2.4.51が緊急リリースされるという、非常に迅速な攻撃と対応のサイクルが展開されました。

特に、CVE-2021-41773は、NVDでCVSSv3スコア9.8(Critical)と評価され、公開直後から広く利用可能なPoCが出回ったため、インターネットに公開されている脆弱なApacheサーバーが短時間でスキャンされ、悪用されました。セキュリティベンダーや研究機関は、多くのWebサーバーがこれらの脆弱性の影響を受け、実際にシステムファイルが読み取られたり、RCEに繋がる攻撃が確認されたと報告しています。

CISA(Cybersecurity and Infrastructure Security Agency)は、これらの脆弱性を悪用する攻撃が活発に行われていることを警告し、組織に対して速やかなパッチ適用を推奨しました。一部の報告では、Miraiボットネットなどのマルウェアが、これらの脆弱性を悪用して感染を広げようとしていた事例も観測されています。これは、アップデートの遅延が現実世界でいかに迅速かつ広範囲な影響を及ぼすかを示す典型的な例と言えます。

影響範囲と深刻度

推奨される対策

最も効果的かつ推奨される対策は、速やかなパッチ・アップデートの適用です。

  1. Apache HTTP Serverのアップデート: 影響を受けるバージョンのApache HTTP Serverを使用している場合は、直ちにバージョン2.4.51以降へのアップデートを実施してください。これは、CVE-2021-41773およびCVE-2021-42013の両方に対応した修正が含まれています。

  2. 回避策と緩和策: アップデートが直ちに困難な場合や、多層防御の一環として以下の対策も検討してください。

    • mod_cgiおよびmod_cgidの無効化: CGIスクリプトを使用していない場合は、これらのモジュールを無効化することでRCEのリスクを大幅に低減できます。
    • 厳格なアクセス制御設定: httpd.confなどで、Webサーバーのドキュメントルート外のディレクトリに対するアクセスをRequire all deniedで明示的に拒否する設定が適切に適用されているか確認してください。例えば、Webルートに.git.svnなどのバージョン管理システムの隠しディレクトリが存在しないように注意し、存在する場合にはアクセスを厳しく制限します。
    • WAF/IPS/IDSシグネチャの適用: WAF(Web Application Firewall)やIPS/IDS(Intrusion Prevention System/Intrusion Detection System)を導入している場合、これらの脆弱性を悪用するパターン(例:%2e%2e/%252e%252e/を含むリクエスト、/bin/shなどのシステムパスへのアクセス試行)を検知・ブロックするシグネチャを適用してください。
    • 最小権限の原則: Webサーバープロセスが動作するユーザーアカウントには、必要最小限の権限のみを付与し、root権限での実行は絶対に避けてください。
  3. 脆弱性の存在や悪用を検知するための方法:

    • アクセスログの監視: Webサーバーのアクセスログを定期的に監視し、URLパスに不正なエンコード(%2e%2e%252e%252e)や、通常アクセスされないシステムパス(/etc/passwd, /bin/shなど)へのアクセス試行がないか確認します。
    • セキュリティアラートの監視: WAFやIPS/IDSのアラートを監視し、これらの脆弱性に関連する攻撃パターンが検知された場合に迅速に対応できる体制を構築します。

アップデート管理の重要性

Apache HTTP ServerのPath TraversalおよびRCE脆弱性は、ゼロデイに近い状態で活発に悪用された典型的な事例であり、システムのアップデート遅延がいかに現実的な脅威となり得るかを明確に示しました。このようなクリティカルな脆弱性が発見された際には、ベンダーからの情報公開後、数時間から数日のうちにPoCが公開され、すぐに実世界での悪用が始まるのが常です。

この迅速な攻撃のサイクルに対抗するためには、以下のアップデート管理の考え方が重要です。

まとめ

Apache HTTP ServerのCVE-2021-41773とCVE-2021-42013は、Webサーバーのアップデート遅延がPath Traversalからリモートコード実行へと容易に繋がり、組織に深刻な影響をもたらすことを明確に示した事例です。これらの脆弱性は、Webサーバーの構成ミスとパッチ適用遅延が重なることで、機密情報の漏洩、Webサイトの改ざん、そしてシステム全体の乗っ取りといった最悪のシナリオを引き起こす可能性がありました。

セキュリティアナリストの皆様には、本記事で解説した脆弱性の技術詳細、悪用方法、そして具体的なリスクシナリオを深く理解し、自社のWebサーバー環境における潜在的なリスクを評価する際に活用していただきたいと思います。また、これらの情報を基に、システム担当者に対して脆弱性の技術的リスクを分かりやすく説明し、迅速なパッチ適用や適切な緩和策の導入を促すことで、組織全体のセキュリティレベル向上に貢献できることを期待しております。アップデート管理は、進化し続けるサイバー脅威からシステムを守るための継続的な取り組みであり、その重要性を改めて認識し、日々の業務に活かしていただくことが不可欠です。