ブログ|NRIセキュア

【検証】Apacheのパストラバーサルの脆弱性 (CVE-2021-41773、CVE-2021-42013)を悪用する攻撃通信

作成者: NeoSOC|2021/10/12

 2021年10月4日(現地時刻)、Apache Software Foundation よりApache HTTP Server(以下 Apache)にパストラバーサルが可能な脆弱性(CVE-2021-41773)が公開されました。CVE-2021-41773 は Apache 2.4.50 で修正済みとされていましたが、その修正内容が不十分であったため、2021年10月7日(現地時刻)に新たなパストラバーサルの脆弱性(CVE-2021-42013)があると公開されました。これらの脆弱性は、Apacheが不正なURLリクエストを適切に処理できないことにより影響を受けるものであり、Apache 2.4.51 で修正されました。

 

 本脆弱性は、パストラバーサルが可能な脆弱性として公開されていますが、環境の設定内容によってはリモートコード実行も可能な脆弱性です。

 

 

 脆弱性を検証するコードは実環境で公開されており、当社SOCでも脆弱性を悪用する通信を多数検知しているため、脆弱性の検証結果や当社SOCでの検知傾向について解説します。

 

 

報告されているApache HTTP Server のパストラバーサル可能な脆弱性

 公式コミュニティより報告されている、本脆弱性の影響バージョンは以下のとおりです。

 

CVE-2021-41773

CVE-2021-42013

Apache 2.4.48

影響なし

影響なし

Apache 2.4.49

影響あり

影響あり

Apache 2.4.50

影響なし

影響あり

Apache 2.4.51

影響なし

影響なし

 当該バージョンを使用し以下の設定がなされている場合、脆弱性の影響を受ける可能性があります。

  • ドキュメントルート外のファイルが"require all denied"によって制限されていない
  • mod_cgiが有効化されている。

Apacheのパストラバーサル可能な脆弱性の検証結果

 本脆弱性の有無を調査する方法や任意のコード実行を行う手法はすでに公開されています。当社での検証の結果、以下のことを確認しました。

  • 本脆弱性を有する環境において、エイリアスが設定されているパスを通じて公開を意図していないファイルの閲覧やリモートから任意のコマンド実行が可能である。
  • 本脆弱性を対策したバージョンにアップデートすることで攻撃は成立しなくなる。

 

 以下に、脆弱な設定別に確認した影響度を表にします。また、公式コミュニティから公開されたバージョン別の影響度に相違ないことも検証によって確認しました。

 

mod_cgiの設定

無効

有効

ドキュメントルート外に対する
"require all denied"の設定

あり

影響なし

影響なし

なし

・ 意図しないファイル参照 (図1)

・ 意図しないファイル参照
・ コード実行 (図2、3)

検証環境

 検証環境に用意したのは以下のとおりです。

  • Apache 2.4.48
    Apache 2.4.49
    Apache 2.4.50
    Apache 2.4.51

 それぞれのバージョンにおいて脆弱な設定を施し検証を行いました。

検証結果

意図しないファイル参照の検証

 図1 は ドキュメントルート外のファイルが"require all denied"によって制限されていない環境で、本脆弱性を悪用するリクエストで公開を意図しないファイルの閲覧が可能であることを確認した様子です。


 この際の、ステータスコードは200 応答であり、レスポンス内容から攻撃対象の /etc/passwd の内容が取得可能であることを確認しました。なお、このような攻撃は、Apacheでエイリアスが設定されているパスにおいて影響することを確認しています。

図1  公開を意図しないファイルの閲覧が可能であることを確認した例  (Apache2.4.49)

リモートコード実行の検証

 図2~4 は ドキュメントルート外のファイルが"require all denied"によって制限されていなく、mod-cgiが有効になった環境で、本脆弱性を悪用するリクエストで任意のコマンド実行が可能であることを確認した様子です。

 

 確認したリクエストでは、idコマンドが実行され200応答とともにWebのレスポンスに攻撃成功を示すコマンドの応答内容が返されます。

図2  任意のコマンド実行が可能であることを確認した例 (Apache 2.4.49)

 

 また、本脆弱性はリクエスト内容によっては攻撃成功時のWebサーバの応答が変化することを確認しています。

 

 図3 は、任意のコマンドの実行結果をファイルに書き出すリクエストです。本リクエストではWebサーバが500応答を返しており、エラーメッセージのみ出力されていることからレスポンス内容から攻撃の成否は確認できません。
しかしながら、図4にあるように図3で書き出したファイルの内容を確認すると、悪意のリクエストにより書き出されたコマンドの応答内容がファイルに格納されており、攻撃が成立していることがわかります。

図3  任意のコマンド実行結果をファイルに書き出すリクエスト例 (Apache 2.4.49)

 

図4  図3で作成を試みたファイルが存在することを確認した例 (Apache 2.4.49)

脆弱性修正バージョンに対する検証

 これらの攻撃は、脆弱性が修正された Apache 2.4.51 において脆弱性を悪用するリクエストが成功しないことを確認しました。(図5)
Apache 2.4.51 では、攻撃リクエストに対し400応答を返すため、任意のファイルの参照等はできませんでした。

図5 脆弱性が修正されたことで任意のファイルの参照が失敗することを確認した例 (Apache 2.4.51)

当社SOCのパストラバーサル攻撃の検知傾向

 当社SOCでは本脆弱性の認知後、直ちに監視デバイスでの検知検証を行い、既存のパストラバーサルのシグネチャにて本脆弱性を悪用する通信を検知可能であることを確認しました。

パストラバーサル攻撃の検知推移

 図6に当社SOC環境下におけるパストラバーサル攻撃の検知件数の推移を示します。
CVE-2021-41773 の脆弱性公開日から攻撃の検知件数は増加しており、多数の送信元から本脆弱性を悪用する通信を確認しました。


 このような傾向は、攻撃者が本脆弱性を認知し、即座に攻撃通信を実行したことが原因と推察できます。

図6  パストラバーサル攻撃の検知推移

攻撃通信例

 図7-8 に当社SOC環境で確認した本脆弱性を悪用するリクエストを示します。

 

 図7に示す攻撃通信では、本脆弱性を悪用し、echoコマンドを実行させることで、ランダム文字のmd5値をWebの応答に出力させます。表示させる文字列に意味はなく、攻撃者は攻撃対象ホストの脆弱性の有無を調査していると考えられます。

図7  当社SOC環境下における任意のコマンド実行の攻撃通信例①

 

 また、攻撃対象ホストの情報収集を試みる攻撃も検知しています。
図8に示す攻撃では、idコマンドをWebの応答に出力することで、Webサーバの実行ユーザ情報の取得を試みていると考えられます。

図8  当社SOC環境下における任意のコマンド実行の攻撃通信例②

 

 当社SOC監視環境では、本脆弱性を悪用し様々なファイルへのアクセス試行を確認しています。2021年10月11日までに確認した対象ファイルの一覧を以下に示します。


 これらの攻撃は、攻撃対象の Apache 利用有無に関わらず検知しており、なかにはWindowsホストを対象とするようなリクエストも観測しています。


 また、攻撃を行う送信元は複数の脆弱性をスキャン的に悪用するのではなく、本脆弱性にターゲットを絞って攻撃を試みている傾向があります。

 

  • ・ 本脆弱性を悪用しアクセスが試行されたファイル例
    /bin/bash
    /boot.ini
    /etc/hosts
    /etc/passwd
    /etc/resolv.conf
    /etc/services
    /windows/win.ini
    /winnt/win.ini
    /winnt/system32/cmd.exe

運用者で可能な影響の確認方法

 本脆弱性は攻撃成功する条件があります。そのため、Apache を運用中の場合以下の観点でホストが脆弱な設定であるかご確認ください。

  • 脆弱性の存在する Apache 2.4.49 または Apache 2.4.50 を使用している。
  • ドキュメントルート外のファイルが"require all denied"によって制限されていない。
  • mod_cgiが有効化されている。

 

また、当社の確認できている範囲では、Webサーバに以下のログが存在する場合、攻撃の影響を受けている可能性があります。

 

  • エイリアスを設定したパスへのアクセスに対する「%2e」、「%2E」などを含んだパストラバーサルであり、200または500応答を返している

Apacheのパストラバーサル攻撃への対策

 Apache を利用している環境において脆弱性に該当するバージョンを利用している場合は早急に公式コミュニティから公開されている修正済みバージョンにアップデートすることを推奨いたします。


 早急なアップデートが困難な場合は、前述した本脆弱性における脆弱な設定が入っているかをご確認頂き、ドキュメントルート外のファイルに対し"require all denied"によって制限することを推奨いたします。


 また、IPS/WAFといった監視デバイスでURLにパストラバーサル文字(「../」)が含まれるアクセスをブロックする対策も有効ですのでご検討ください。
なお、本脆弱性は「.」をパーセントエンコードした%2eやこれらを二重にパーセントエンコードした文字列でも影響を受けますので、URLの正規化後に検査する必要がありますので注意してください。