DoS攻撃のうち、脆弱性を悪用する攻撃は、OpenVASのような脆弱性スキャナーや、攻撃コードを使った手動診断が可能なMetasploitなどを使って、ある程度の調査ができる。

 ただし脆弱性スキャナーは、対象の脆弱性を診断する項目があっても、その多くは取得したバージョン情報を基に判定しているだけだ。実際に疑似攻撃パケットを送っているわけではない。そのため例えば、バージョンは古いままだがDoS攻撃に悪用される機能については無効化してある、という場合は、正しい調査結果にならないので注意しよう。

擬似攻撃パケットで手動調査

 以下ではMetasploitを使って、実際にDoS攻撃で悪用される脆弱性を手動で調査する方法を紹介しよう。

 脆弱性を悪用した攻撃には、不正な文字列を含むリクエストによってサービスに負荷を与えるものと、すぐさまサービスを停止するものがある。

 負荷を与える攻撃に悪用される典型的な脆弱性には、2011年に公開された「Apache Killer」がある。Apacheのバージョン2系に存在した脆弱性だ。Apache Killerは、データを分割して配送するときに使うRangeヘッダーやRequest Rangeヘッダーの不備を利用して攻撃する。メモリーやCPUを圧迫するため、最悪の場合はOS自体に影響が及ぶ。

Apache Killerの仕組み
Apache Killerの仕組み
2011年に公表されたApache HTTP Serverの脆弱性。RangeヘッダーやRequest Rangeヘッダーの不備を利用して、サーバーがサービスを提供できない状態にする。Apacheのユーザーは多いため、脆弱性が発見された当時は話題になった。2017年時点でも、この脆弱性を悪用した攻撃が多く観測されている。
[画像のクリックで拡大表示]

 即座にサーバーが停止してしまう脆弱性は、近年、BINDで複数見つかっている。攻撃コードが公開され、世界的に影響を与えた脆弱性としては、CVE-2015-5477とCVE-2016-2776がある。いずれも、パケットを一つ送信するだけでサーバーの機能を停止できる。

▼送っているわけではない
脆弱性によっては、実際に疑似攻撃パケットを送信して実害の有無を調査できるものもある。
▼BIND
DNSサーバーの機能を提供するソフトウエア。世界的に広く普及している。
▼CVE-2015-5477
TKEYという暗号鍵を生成する機能での情報の取り扱いの不備に起因する脆弱性。
▼CVE-2016-2776
応答値の作成過程の不備に起因する脆弱性。