-DoS攻撃の基礎からその対策方法、トレンドなどをひも解く本連載。前回は、DNSを中心としたインフラレイヤを狙う攻撃とその対策を説明しました。今回は、アプリケーションレイヤを狙ったDDoS攻撃とマルチベクトル型のDDoS攻撃を紹介します。Webサーバを狙った攻撃あらためてになりますが、サイバー攻撃対策を検討する際は、攻撃対象とその攻撃の目的を理解することが重要です。攻撃者がWebサーバを標的にする場合、HTTPプロトコル、ウェブプログラムの脆弱性を狙った攻撃を用いることが考えられます。特定のサービスを不能にする目的がある場合、攻撃者はWebシステムの脆弱性を狙う攻撃、大量のHTTPリクエストを送信してセッション飽和させることでリソースを枯渇させるフラッド型の攻撃、もしくはその反対にコネクションに時間をかけることでセッションテーブルを解放させずリソースを枯渇させることを狙ったスロー攻撃を用いることが考えられます。今回は、Webサーバを狙うDDoS攻撃で利用されるフラッド型とスロー型の攻撃の詳細とその対策を中心に解説します。HTTPフラッド攻撃の対策方法HTTPフラッド攻撃は、Webサーバから情報を得るためのGETリクエストを大量に発生させる攻撃です。GETは、TCPやHTTPプロトコル上では正常な通信のため、プロトコルの異常を判定できず、攻撃に悪用されると正常なユーザー通信かボット通信かを判定することが難しくなります。特定の端末からHTTPリクエストを大量に送信されるような単純なフラッド攻撃であれば、ルータやファイアウォールなどで特定のソースIPに制限をかけることで、Webサーバを保護できます。ボットネットのように複数の端末から攻撃を仕掛け、1台当たりのHTTPリクエスト数を正規に近いリクエスト数で抑えた場合は、リクエストの割合で制限をかけることが難しくなります。制限をかける以外の対策として、HTTP認証でDDoS緩和装置から特定のアクションを起こして送信元が正規ユーザーかどうかを判定する方法があります。これにはHTTPリダイレクトやJavascriptを利用します。HTTPリダイレクトを利用する方法では、HTTPリクエストを送信したユーザーを、DDoS緩和装置側でCookieにレスポンスコード302または307の応答コードを含めてリダイレクトさせます。クライアントが同じCookieの値で特定の時間内(1秒から30秒など)にリダイレクトしてきたら、正規のIPとしてホワイトリストに登録し、一定時間アクセスを許可します。Cookie発行により認証するのはDDoS緩和装置側で、Webサーバ側には認証に通過したアクセスのみ転送されます。HTTPリダイレクトによるHTTPフラッド攻撃の対策Javascriptオブジェクトを返す方法では、Cookieを挿入してリロードさせる時に同じCookie値でリクエストが来た場合に正規のユーザーと見なし、ホワイトリストに登録します。JavascriptによるHTTPフラッド攻撃の対策いずれの対策方法も、ボットからリクエストが送信された場合、正常な反応を返さないため、その挙動で接続元の正当性を判定できます。スロー攻撃の検知スロー攻撃は、時間をかけて複数のリクエストを送信することでリソースを枯渇させる攻撃です。スロー攻撃の1つとして、時間をかけてHTTPヘッダーを送信することでWebサーバのリソースを解放させず、リソースを枯渇させる方法があります。時間をかけてHTTPヘッダーを送信するツール「slowloris」は非常に有名な攻撃ツールです。スロー攻撃は、対策がとれていないサーバを簡単にサービス不能にでき、また1台の攻撃端末から複数台のWebサーバをサービス不能にできます。このスロー攻撃に対してはソースIP単位で接続数を制限する対処法もありますが、ヘッダー受信完了までの時間を制限する方法がもっとも効果的です。以下はDDoS緩和装置の画面の一部ですが、スロー攻撃に対してはアイドルコネクション数を制限したり、リクエストボディの受信時間を制限したりすることで対策できます。DDoS攻撃装置による、スロー攻撃の対策設定画面SSLへの攻撃プライバシー保護、安全なWeb通信を確保するため、多くのWebサーバではHTTPS通信が採用されています。HTTPSプロトコルを利用している場合、SSLに対するDDoS攻撃にも対策をとることが必要です。SSLの鍵交換などのネゴシエーション処理には、CPUなどのサーバリソースにより多くの負荷がかかります。攻撃者は、そのリソースを枯渇させるために大量のSSL接続リクエストを送信したり、再ネゴシエーションを繰り返したりして攻撃を行います。SSLへの攻撃対策としては、ソースIP単位でSSLの接続リクエスト数を制限したり、再ネゴシエーション数を制限したりする方法があります。今回のアプリケーションレイヤへの攻撃を含めて、これまで各レイヤの攻撃とその対策方法について解説してきました。マルチベクトル型攻撃は複数のDDoS攻撃手法を組み合わせた攻撃で、各レイヤに対するさまざまな攻撃手法を組み合わせ、その合わせ技で標的のシステムをサービス不能にします。REPORT」を見ると、約半数のDDoS攻撃が、2種類以上の攻撃手法を組み合わせていることがわかります。第2回で紹介したロシアの銀行を狙ったDDoS攻撃は、複数のネットワークレイヤに対して行われ、回線からOS、アプリケーションのリソース枯渇を同時に狙った、典型的なマルチベクトル型の攻撃になります。マルチベクトル型攻撃に対抗するには、保護する対象のシステムが、異なる攻撃に同時に対応できる能力を備えている必要があります。これまで解説してきた各レイヤに対する攻撃への耐性をまんべんなく高めることが、これからのDDoS攻撃対策において重要となります。ビジネスソリューション開発部セキュリティビジネスディベロップメント&アライアンスビジネスマネージャセキュリティ業界での18年の経験を生かし、製品やソリューションに捉われない、セキュリティ投資の方向性について講演やメディアを通じて啓蒙活動を行っている。エバンジェリストとして、企業のセキュリティリスク、対策、課題に精通している。WGにてクラウドセキュリティ啓蒙に力を入れている。(GCIA)セキュリティーベンダーのプリンシパルアーキテクト、コンサルティングファームのシニアマネージャを経て、2016年よりA10ネットワークスのセキュリティビジネスの責任者に着任。イベントでの講演、書籍や寄稿記事の執筆などセキュリティの啓発活動にも従事。※本記事は掲載時点の情報であり、最新のものとは異なる場合があります。Corporation。