DDoS攻撃の主な攻撃手法8つの特徴をまとめてみた

2017.11.24

セキュリティ対策

DDoS-Attack-techniques

webセキュリティを真剣に考えるのであれば、サイバー攻撃の対策に備えることが欠かせません。以前であればDos攻撃というものが主流で、対策ツールやサービスが普及しています。しかし、最近ではDDos攻撃というものが多く報告されています。近年の傾向としては利用している方も多い「仮想通貨」などでも被害が少なくありません。

今回は今後の対策がさらに求められるDDos攻撃とDDos攻撃に有効な対策方法について紹介します。

目次

DDoS攻撃の概要

DoS(Denial Of Service)攻撃は、攻撃対象のWebサイトやWebサーバへ大量のトラフィックを送信しサービスを停止させる攻撃です。通信プロトコルのデータ通信を用いて処理を促すことでシステムに負荷をかけて、脆弱性を引き起こすことが狙いです。しかし、単独IPの攻撃が特徴で、攻撃を仕掛ける送信元を特定すればアクセスを遮断することが可能で、対応に困ることはありません。しかし、攻撃を仕掛ける側にとって、攻撃の仕方や攻撃拠点の数にバリエーションを与える方法がDDos攻撃です。

対して、DDoS(Distributed Denial Of Service)攻撃は、攻撃者が負特定多数のコンピュータなどを踏み台(ボット)として利用し、DoS攻撃を分散(Distributed)して行うものです。遮断するIPを特定することが難しく、セキュリティ対策に苦戦しているというのが現状です。

DDoS攻撃には複数の攻撃手法があります。対策を考えるのであれば、単調な防御方法だけでは不十分です。今回はDDoS攻撃の中のSYNフラッド・FINフラッド・ACKフラッド・UDPフラッドの4パターンについてご紹介します。

SYNフラッド攻撃、FINフラッド攻撃

まずDDos攻撃を理解するためには、データを送受信する仕組みであるTCPを理解する必要があります。TCPはサーバやユーザーであるクライアントがお互いに行う、通信プロトコルの一種です。お互いに送受信を繰り返すことで成り立っています。

通常のTCPで接続を確立、終了する手順は以下の図のようになります。
接続を確立するためには、①SYN→②SYN/ACK→③ACK、接続終了するには①FIN→②FIN+ACK→③ACKという手順を踏みます。

攻撃者が接続元IPを偽ってボットから接続要求(SYN)を大量に送信するのがSYNフラッド攻撃、切断要求(FIN)を大量に送信するのがFINフラッド攻撃です。SYN・FINを送信された接続先では、大量の接続元IPに対して②の応答処理をします。接続元IPが存在しない場合は、③の確認応答を待ち続け、これがサーバのリソースが枯渇する原因となります。

負荷がかかりやすく、このすきをついて不正アクセスを仕掛けられます。強制的にシステムやサーバの脆弱性が発生するので、復旧するにも時間がかかります。

ACKフラッド攻撃

ACKフラッド攻撃は、ACKを大量に送信することで接続のためのリソースを使用させる攻撃です。
接続先へACKを連続して送信すると通信ログがACKパケットでいっぱいになることから、別の攻撃のカモフラージュとして使われる可能性もあります。
この攻撃ではACKをいきなり送信しますが、送信元と接続先の間にアクティブなTCP接続がないため、パケットは廃棄されて接続拒否(RST)を返します。接続先のサーバはパケット廃棄を大量に行わなければならないため、リソースが枯渇する原因となります。

UDPフラッド攻撃

UDPフラッド攻撃とは、偽ったIPアドレスからDDoS攻撃をするものです。UDPとはTCPと同じく、データ受信をする仕組みの一つです。

しかしUDPはTCPのような接続手順を省略した(コネクションレス)通信であるため、一方的にパケットを送信できます。UDPはオーバーヘッドが低いという特徴から、チャットやVoIPなどのチェックや再チェックが不要なトラフィックに利用されています。UDPは悪用されやすく、攻撃者は比較的少ないリソースで攻撃できる特徴があります。
UDPフラッド攻撃には、ランダム・ポート・フラッド攻撃、フラグメント攻撃の2種類の手法があります。この二つの攻撃方法について紹介します。

UDPフラッド攻撃 — ランダム・ポート・フラッド攻撃

ランダム・ポート・フラッド攻撃とは、サーバのランダムなポートに対してUDPデータグラムを含むパケットを大量に送信することで、サーバを停止させようとする攻撃です。
これにより、サーバはそのポートで待機しているアプリケーションを繰り返し確認し、(アプリケーションが見つからない場合は)ICMPの「Destination Unreachable」パケットで応答します。そして、このプロセスを大量に処理することによりサーバリソースを消費します。

UDPフラッド攻撃 — フラグメント攻撃

UDPフラッド攻撃としてのフラグメント攻撃とは、突然大きなサイズのUDPパケットを大量に送信する攻撃です。逆に、極端に短いパケットのデータを大量に送信することで、ネットワークデバイス(特にファイアーウォール)に負荷をかけることもできます。いずれにしても送信先は大量の処理をするためにリソースを消費します。

HTTP GET/POST Flood攻撃

ブラウザとWebサーバの間ではHTTP(Hyper Text Transfer Protocol)と呼ばれる通信方式で情報をやりとりしています。HTTPのリクエストメッセージはリクエスト行、ヘッダ、ボディで構成されていて、リクエスト行にHTTPリクエストのメソッドであるGETかPOSTが入ります。
GETとPOSTはサーバへ送るパラメータの送り方が異なり、GETはURLに付加して、POSTはボディに含めて送ります。

HTTP GET Flood攻撃とは、事前に多数の端末やサーバに不正にインストールしたBotを使い、ターゲットのWebサーバに大量のHTTP GETリクエストを実行する攻撃です。HTTP POSTコマンドを実行する攻撃をHTTP POST Flood攻撃といいます。
攻撃を受けたWebサーバは大量のHTTP GETコマンドを処理しきれなくなります。HTTP GET Flood攻撃は、HTTP GETリクエストにランダムなパス等を入れ、正常なリクエストに似せる工夫がされている事が多く、攻撃と判別することが難しいと言われています。

Slow HTTP DoS Attack

Slow HTTP DoS Attackとは、比較的少ないパケット数で長時間に渡りTCPセッションが継続するようにWebサーバのTCPセッションを占有することで、正規のサイト閲覧者がアクセスできないように妨害する攻撃です。
継続時間の延長を試みる通信の対象により、さらに「Slow HTTP Headers Attack」「Slow HTTP POST Attack」「Slow Read DoS Attack」の3種類に分類されます。

Connection Exhaustion攻撃

サイバー攻撃の一つにConnection Exhaustion攻撃というものがあります。Connectionとは、TCPのコネクション(=接続)のことです。
この接続の仕組みをついて行うのが、Connection Exhaustion攻撃です。

ロードバランサー、ファイアウォール、アプリケーションサーバーなどネットワークに接続する多くの機器は、接続状態をメモリなどに所定量分だけ保持しています。
Connection Exhaustion攻撃はメモリ配分が少ないTCPのコネクションに狙いをつけて、リソースが消費しやすいことを悪用しています。

Connection Exhaustion攻撃は、大量のTCP通信のコネクション確立のみを行い、その後はデータ転送を行わないことで接続状態テーブルを消費しようとします。 この攻撃によりサーバは新たなTCPコネクション確立を受け入れられなくなり、サービスを提供できない状態に陥ります。
Connection Exhaustion攻撃では、標的となるサーバへのコネクション確立を目的とするため、ファイアウォールなどポリシーベースでアクセス制御を行うセキュリティ製品では、攻撃を意図した通信も通過させてしまいます。

Stream Flood攻撃

スマホなどでもデータ通信の一つとしてパケット通信が知られています。パケット通信を利用したサイバー攻撃として、Stream Flood攻撃にも注意が必要です。

偽の送信元IPアドレス、ポート、RST(接続拒否)フラグが設定されたパケットを大量に送信することで、過剰なパケットでネットワークやサーバへ負荷をかける攻撃です。

DNS Flood attacks(DNSフラッド攻撃)

DNS Flood attacksとは、1つまたは複数のDNS(Domain Name System)サーバを対象へ、大量の名前解決のためのリクエストを送信することで、正当なユーザからの名前解決を妨害しようとする攻撃です。
DNSは一度実行した名前解決の内容を一定期間キャッシュに保管しておき、再度同じ名前で解決する場合はキャッシュの内容をユーザに返信することにより、DNSサーバ間トラフィックやDNSサーバのリソースを節約します。
しかし、攻撃者が名前解決できない大量のリクエストを一方的に送信することにより、①DNSサーバのキャッシュは無効な内容で満される②DNSサーバ間のトラフィックを攻撃通信で溢れる。①②によりDNSサーバへ負荷をかける攻撃です。

まとめ

今回はサイバー攻撃について、いくつか紹介しました。DDos攻撃をはじめとして、サイバー攻撃には種類が多く、巧妙かつ悪質化しています。このようなDDoS攻撃を防ぐにはどのような対策をすれば良いのでしょうか。

以下のような対策方法が挙げられます。

・同一IPからのアクセス回数を制限する。
・サービス対象者が国内のみのWebサイトの場合は、海外からのアクセスを制限する。
・DDoS攻撃を防ぐことが出来るセキュリティ製品を導入する。

攻撃方法や負荷がかかるポイントをおさえること、セキュリティ対策は難しくありません。セキュリティに役立つ方法やサービスも多いです。お使いの環境に合わせて対策を検討してはいかがでしょうか?

効果的なDDoS攻撃対策

DoS攻撃への有効な対処法としてWAFの導入をおすすめする声が多くなっています。WAFは企業や団体が提供するコンテンツが保管されているネット上のWebアプリケーションの前面におかれるシステムのため、セキュリティ効果が高く、外部からの攻撃に対しては強力な盾として攻撃を防ぐことが出来ます。

クラウド型WAFも選択肢が多いですが、導入しやすいものとしておすすめするものに「攻撃遮断くん」があります。

クラウド型WAF「攻撃遮断くん」もDDoS攻撃に対応しており、DDoS攻撃だけでなく、Webアプリケーションの脆弱性を悪用するサイバー攻撃対策もすることができます。不正ログインが成功するとサイトの信用を含めて大ダメージになるので、この機会にWebセキュリティ対策を検討してみてはいかがでしょうか。

「攻撃遮断くん」の詳細資料は、こちらからダウンロード頂けます。

 

(2017/11/24執筆、2019/02/07修正・加筆)

この記事と一緒に読まれています