逗阴馆

奥础贵记事ブログ 10-10-2017

ミドルウェアの不具合に起因するサービス妨害攻撃の説明

デジサート
このブログではウェブサイトやその上で動作しているウェブアプリケーションの脆弱性について紹介すると共に注意喚起をする目的でまとめられています。 今回は、ミドルウェアのバグに基づくサービス妨害攻撃(Denial of Service; DOS)を受けやすい脆弱性について解説をしています。

概要

サービス妨害(顿辞厂)攻撃という手法があります。细工を施したリクエストや大量のリクエストをサーバに送信することにより、サーバの动作を遅くしたり、场合によってはサーバーを停止させる攻撃のことです。顿辞厂攻撃では情报の漏洩やデータの改ざんは通常起こりませんが、サーバ停止の状况によっては、ファイルの一部が破损する场合はあり得ます。

DoS攻撃としてよく用いられる手法にはネットワークの問題を悪用したものが多いのですが、それ以外にミドルウェアやアプリケーションの不具合を悪用する方法もあります。その一例として、Apacheの不具合を悪用したApache Killer(CVE-2011-3192)やPHPやJava等の言語システムの不具合を悪用したhashdos(CVE-2011-4885等)があります。

攻撃のイメージと影响

以下はApache Killerの送信するHTTPリクエストです。一部を割愛しています。Rangeヘッダに攻撃の特徴があります。

GET / HTTP/1.1

Host: example.jp

Range:

bytes=0-,5-0,5-1,5-2,5-3,5-4,5-5,5-6,5-7,5-8,5-9,5-10,5-11,5-12,5-13,5-14,5-15,5-16,5-17,5-18,5-19,5-20,5-21,5-22,5-23,5-24,5-25,5-26,5-27,5-28,5-29,5-30,5-31,5-32, 【中略】 5-1281,5-1282,5-1283,5-1284,5-1285,5-1286,5-1287,5-1288,5-1289,5-1290,5-1291,5-1292,5-1293,5-1294,5-1295,5-1296,5-1297,5-1298,5-1299
上記リクエストを脆弱性のあるApacheが受け取ると、CPU使用量、メモリ使用量の両方が肥大化し、メモリ不足とCPU能力の枯渇がおきます。特に、メモリ不足により、Linux OSにおいてはOOM Killerという仕組みが動き、メモリ使用量の多いプロセスを停止していきます。OOM Killerはプロセスの重要度を考慮しないので、データベースサーバ等サービス提供に不可欠なプロセスまで停止させられ、ウェブサーバーは機能停止に陥ってしまいます。 以下はPHPに対するhashdos攻撃のリクエスト例です。

POST /phpinfo.php HTTP/1.1

Host: example.jp

Content-Type: application/x-www-form-urlencoded

Content-Length: 1441792

EzEzEzEzEzEzEzEz=&EzEzEzEzEzEzEzFY=&EzEzEzEzEzEzEzG8=&EzEzEzEzEzEzEzH%17=&EzEzEzEzEzEzFYEz=&EzEzEzEzEzEzFYFY=&EzEzEzEzEzEzFYG8=&EzEzEzEzEzEzFYH%17=&EzEzEzEzEzEzG8Ez=&EzEzEzEzEzEzG8FY=&EzEzEzEzEzEzG8G8=&EzEzEzEzEzEzG8H%17=&EzEzEzEzEzEzH%17Ez=& 【後略】

このリクエストをPHPが受け付けると、パラメータを内部の連想配列(ハッシュと呼ばれます)に格納する処理に異常に時間がかかり、その間新規リクエストを受けつられなくなります。ただし、Apache Killerと異なりメモリが枯渇するわけではないので、攻撃が終了すると直ちにサーバは回復します。

脆弱性による影响

顿辞厂攻撃による影响の例としては以下があります。

  • サーバー速度の遅延
  • 新规リクエスト受付の停止
  • サーバーの异常终了

脆弱性の有无の确认方法

脆弱性诊断サービスが利用できない场合は、础辫补肠丑别や笔贬笔等のバージョンが対策済みかを确认して下さい
  • Apache Killer の影響を受けるバージョン 2.2.0 ~ 2.2.20
  • 贬补蝉丑诲辞蝉の影响を受けるもの
  • ASP.NET MS11-100 未適用のもの
  • Tomcat 5.5.34およびそれ以前、6.0.34およびそれ以前、7.0.22およびそれ以前
  • Ruby 1.8.7-p352およびそれ以前
  • PHP 5.3.8およびそれ以前

対策

対象ソフトウェアの対策バージョンへのバージョンアップあるいはパッチ适用を行います。

Apache Killerおよびhashdosには、それぞれ緩和策があります。なんらかの理由でパッチ適用等ができない場合、緩和策を実施することで、攻撃を受けた場合の被害を軽減できます詳しくは参考文献を参照ください。

なお、では、Apache Killerやhashdos等の脆弱性からウェブサイトが攻撃を受けるのを防ぐことができます。

参考文献

独立行政法人情报処理推进机构(滨笔础)の注意唤起

础辫补肠丑别公式サイトのアドバイザリ(英语)

修正の上再掲しました。

UP NEXT
5 Min

特集记事

クラウド上で量子コンピュータをいかに保护するか

NIST PQC アルゴリズムに関する詳細な説明

従来の PKI がもたらす割高な機会損失