Apache HTTP ServerのPath Traversal脆弱性 CVE-2021-41773 と後続のRCE脆弱性 CVE-2021-42013 の技術解説:アップデート遅延が招く深刻なリスクシナリオ
導入: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
が有効な環境において、容易に任意のファイル読み取りやリモートコード実行に悪用される可能性がありました。
具体的な悪用方法の例:
-
任意ファイル読み取り (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
これにより、攻撃者はシステムの構成情報、ユーザーアカウント情報、さらには設定ファイルに含まれる認証情報などを窃取できる可能性があります。 -
リモートコード実行 (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: 100echo 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: 100echo Content-Type: text/plain; echo; whoami; ``` これにより、攻撃者はWebサーバー上で動作するユーザーの権限で、任意のシステムコマンドを実行し、ファイルシステムの操作、マルウェアのダウンロードと実行、バックドアの設置など、Webサーバーを完全に制御する可能性があります。
システムアップデート遅延による具体的なリスクシナリオ:
- 不正侵入とデータ漏洩: 攻撃者がRCEを成功させると、Webサーバーに格納されている機密データ(顧客情報、製品情報、認証情報など)にアクセスし、外部へ漏洩させる可能性があります。また、データベースや他のバックエンドシステムへのアクセスを許し、より広範なデータ漏洩に繋がることも考えられます。
- Webサイトの改ざん: Webサーバーのファイルが改ざんされ、企業の公式Webサイトがフィッシングサイトに利用されたり、悪意のあるコンテンツが埋め込まれたりするリスクがあります。これにより、企業の信頼性やブランドイメージが著しく損なわれます。
- 踏み台としての利用と横展開: 侵害されたWebサーバーが、内部ネットワークへの侵入の足がかり(踏み台)として利用される可能性があります。これにより、攻撃者はWebサーバーから他のシステムへ横展開し、より広範なシステム侵害やランサムウェア感染の起点となるリスクが高まります。
- サービス停止とDoS攻撃への加担: サーバーがマルウェアに感染し、ボットネットの一部としてDoS攻撃に加担させられたり、Webサーバー自体が不安定になりサービス停止に追い込まれたりする可能性があります。
- 持続的なアクセス(永続化): 攻撃者は脆弱性を悪用してシェルアクセスを確立した後、WebシェルやSSHキーを設置するなどして、脆弱性が修正された後もシステムへのアクセスを維持する手法(永続化)を試みるでしょう。
実際の事例
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ボットネットなどのマルウェアが、これらの脆弱性を悪用して感染を広げようとしていた事例も観測されています。これは、アップデートの遅延が現実世界でいかに迅速かつ広範囲な影響を及ぼすかを示す典型的な例と言えます。
影響範囲と深刻度
- 影響を受けるバージョン:
- CVE-2021-41773: Apache HTTP Server 2.4.49
- CVE-2021-42013: Apache HTTP Server 2.4.50
- CVSSv3スコア: どちらの脆弱性も9.8(Critical)と評価されています。これは、ネットワーク経由で攻撃が可能であり(AV:N)、特別な認証を必要とせず(AC:L, PR:N)、攻撃が成功すれば機密性、完全性、可用性の全てに重大な影響を与える(C:H, I:H, A:H)ことを意味します。
- 影響範囲: Webサーバーの稼働するOSレベルでの任意のコード実行が可能となるため、Webサーバー上の全てのデータ、アプリケーション、およびサーバーがアクセス可能な内部ネットワークのシステムにも影響が及ぶ可能性があります。特に、Webサーバーが重要な企業情報や顧客データを扱っている場合、その影響は甚大です。
推奨される対策
最も効果的かつ推奨される対策は、速やかなパッチ・アップデートの適用です。
-
Apache HTTP Serverのアップデート: 影響を受けるバージョンのApache HTTP Serverを使用している場合は、直ちにバージョン2.4.51以降へのアップデートを実施してください。これは、CVE-2021-41773およびCVE-2021-42013の両方に対応した修正が含まれています。
-
回避策と緩和策: アップデートが直ちに困難な場合や、多層防御の一環として以下の対策も検討してください。
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権限での実行は絶対に避けてください。
-
脆弱性の存在や悪用を検知するための方法:
- アクセスログの監視: Webサーバーのアクセスログを定期的に監視し、URLパスに不正なエンコード(
%2e%2e
、%252e%252e
)や、通常アクセスされないシステムパス(/etc/passwd
,/bin/sh
など)へのアクセス試行がないか確認します。 - セキュリティアラートの監視: WAFやIPS/IDSのアラートを監視し、これらの脆弱性に関連する攻撃パターンが検知された場合に迅速に対応できる体制を構築します。
- アクセスログの監視: Webサーバーのアクセスログを定期的に監視し、URLパスに不正なエンコード(
アップデート管理の重要性
Apache HTTP ServerのPath TraversalおよびRCE脆弱性は、ゼロデイに近い状態で活発に悪用された典型的な事例であり、システムのアップデート遅延がいかに現実的な脅威となり得るかを明確に示しました。このようなクリティカルな脆弱性が発見された際には、ベンダーからの情報公開後、数時間から数日のうちにPoCが公開され、すぐに実世界での悪用が始まるのが常です。
この迅速な攻撃のサイクルに対抗するためには、以下のアップデート管理の考え方が重要です。
- 脆弱性情報の継続的な収集と評価: CVE, NVD, JVN, JVNRTA, CERT情報、主要なセキュリティベンダーのレポートなどを継続的に監視し、自社で利用しているソフトウェア・サービスに関する新たな脆弱性情報を網羅的に収集します。
- 緊急度と影響の迅速な評価: 新たな脆弱性情報が公開された際には、自社のシステム構成と照らし合わせ、その脆弱性が自社にとってどの程度の緊急度と影響を持つのかを迅速に評価できる体制を構築します。特に、インターネット公開資産に影響を及ぼす高深刻度脆弱性には最優先で対応できるよう、SLA(Service Level Agreement)を設定することが推奨されます。
- パッチ適用プロセスの効率化: 迅速なパッチ適用を実現するためには、パッチ適用計画、テスト、デプロイメントのプロセスを効率化し、可能であれば自動化を導入することも検討します。特に、本番環境への影響を最小限に抑えつつ、緊急パッチを適用できるような柔軟な運用体制が求められます。
- 資産管理の徹底: 自社で運用している全てのシステムとソフトウェアのバージョン情報を正確に把握し、脆弱性情報との紐付けを迅速に行えるようにすることが、効果的な脆弱性管理の基盤となります。
まとめ
Apache HTTP ServerのCVE-2021-41773とCVE-2021-42013は、Webサーバーのアップデート遅延がPath Traversalからリモートコード実行へと容易に繋がり、組織に深刻な影響をもたらすことを明確に示した事例です。これらの脆弱性は、Webサーバーの構成ミスとパッチ適用遅延が重なることで、機密情報の漏洩、Webサイトの改ざん、そしてシステム全体の乗っ取りといった最悪のシナリオを引き起こす可能性がありました。
セキュリティアナリストの皆様には、本記事で解説した脆弱性の技術詳細、悪用方法、そして具体的なリスクシナリオを深く理解し、自社のWebサーバー環境における潜在的なリスクを評価する際に活用していただきたいと思います。また、これらの情報を基に、システム担当者に対して脆弱性の技術的リスクを分かりやすく説明し、迅速なパッチ適用や適切な緩和策の導入を促すことで、組織全体のセキュリティレベル向上に貢献できることを期待しております。アップデート管理は、進化し続けるサイバー脅威からシステムを守るための継続的な取り組みであり、その重要性を改めて認識し、日々の業務に活かしていただくことが不可欠です。