コンテンツにスキップ

4. DoS攻撃/DDos攻撃

4.1. DoS攻撃の基礎

4.1.1. DoS攻撃とは

DoS(Denial of Service)攻撃(サービス拒否攻撃)はユーザによるシステムに対するアクセスを低下/制限、阻害する攻撃のこと。 攻撃対象はホストだけではなくネットワークも対象となる。

4.1.2. DoS攻撃の攻撃対象

DoS攻撃はターゲットに対する経済的損失や信用失墜を目的とした攻撃となる。 つまりサービス提供機能への損害を目的としている。 そのため企業などの営利組織のホストやネットワークが攻撃される傾向がある。

4.1.3. DoS攻撃の特徴

DoS攻撃は攻撃の有効性を上げるために通信が工夫されているため通信パターンにわかりやすいシグネチャ(特徴)がある。 そのためIDS/IPSやFWなどの侵入検知に引っ掛かりやすい

そのためDoS攻撃は見つかりやすくとても防がれやすい。 この上記性質を生かして監視や分析(フォレンジック)を行う人員の目をごまかすのには使用できるという面もある。

運用監視者オペレータの対応への応用

システム運用監視オペレータは大規模なシステムだと24時間システムを監視している。 DoS攻撃などがあるとIDSなどが検知してアラートが鳴る

その際彼らは対応業務に追われることになり、その際の対応手順が複雑で頻度が多い場合は監視レベルを下げることをする可能性もある。(実際これを行うのは邪道) つまりアラートや該当する項目を監視しないようにするなどを行う可能性がある。これを繰り返すことでセキュリティホールの多いシステムとシステム管理者側にさせるという方法として使えたりもする。

また常にアラートを鳴らさせることによりカモフラージュとして使用するということも使えたりもする。

フォレンジック調査員の対応への応用

これは無意味なログでログを埋めることでフォレンジック調査の手間を増やすというもの。 またIPアドレスの偽装をすることで捜査を攪拌することもできる。

またこの際に捜査に時間をかけさせることによりログの保管期限を過ぎることを狙うこともできる。

後処理段階でDoS攻撃を活用する

DoS攻撃は権限昇格できない場合の痕跡消去としても利用できる。

これはログを塗りつぶすことでログを汚すことが根本になる。 そのためIPスプーフィングがとても重要となる。

4.2. DoS攻撃の種類

DoS攻撃は攻撃対象から以下のタイプに分類される。

  • 帯域幅消費タイプ
  • システムリソース消費タイプ
  • アプリケーションのロジックエラータイプ

4.2.1. 帯域幅消費タイプ

帯域幅消費タイプではネットワークやサービスの帯域幅を大量のリクエストを送ることにより消費させるタイプの攻撃。

このタイプは現在では多くのシステムが対応されているため、そのまま使うのは難しい。 そのためこの手法で行う場合は様々な工夫が必要となる。

4.2.2. システムリソース消費タイプ

システムリソース消費タイプはシステムのリクエストを処理する能力やロジックの不備を突いてシステムのリソース/CPUに過剰負荷をかけるタイプの攻撃。

4.2.3. アプリケーションのロジックエラータイプ

アプリケーションのロジックエラータイプではアプリケーションのロジックエラーをついて無限ループや過剰な負荷をかけるタイプの攻撃。

4.3. DoS攻撃とIPスプーフィング

DoS攻撃においてIPスプーフィングはとても重要になる。 これは攻撃元の特定を阻害、攻撃の効果を増加させるのに効果的である。

またDoS攻撃は攻撃のカモフラージュや捜査誘導、痕跡の消去を目的として使われる場合がある。

4.4. DoS攻撃のメカニズム

4.4.1. 帯域幅消費型DoS攻撃

帯域幅消費型DoS攻撃は通常のリクエストやパケットを大量に送り付けることで帯域を消費させる攻撃のこと。 この手法は通常、1~2台の少ないホストでこの攻撃を試みても企業などの運営する大規模サーバでは対応されて攻撃が難しいという問題がある。 そこで攻撃を有効的にするためのアプローチとして以下の方法がある。

  • 送信するパケットや送信方法を工夫する
  • 1台ではなく複数台で送信する(DDos攻撃)

この攻撃には以下攻撃が含まれる。

  • SYNフラッド攻撃
  • ICMPフラッド攻撃
  • UDPフラッド攻撃
  • ARPフラッド攻撃
  • IPアドレス増幅攻撃
  • PING OF DEATH攻撃

4.4.2. SYNフラッド攻撃

SYNフラッド攻撃はTCPの3ウェイハンドシェイクを悪用した攻撃手法。

これはサーバ側がTCPの接続要求を受け取った際にTCP+ACK信号を返すが、そのときに接続テーブル上にACKが戻ってくるまでそこにバッファとして待機させることを悪用したものである。これはデフォルトでは75秒間保存される。 攻撃者側はこの際にACK信号を返さないようにするため、相手のサーバは接続テーブル上にデータを確保したままとなる。 この確保している間に攻撃者は新しくTCP+ACKを送り、同様に接続テーブルを確保させる。 これを繰り返すことにより接続テーブルを圧迫し、繋がらないようにするのがこの攻撃の仕組みとなっている。

そのためこの攻撃はSYNフラグを送り続ける必要IPアドレスを偽装してSYNフラグを送り付ける必要がある。 これは接続テーブルが既存に確保したIPアドレスからのTCP通信要求だと接続を確保しないためである。

4.4.3. 増幅系攻撃

増幅系攻撃は偽装したIPアドレスにより特定のネットワーク内での応答を増幅させる攻撃手法。 この攻撃はICMPやUDP/TCPなどの様々なプロトコルに応用できる。

ICMP/ARP/UDPフラッド攻撃

ICMP/ARP/UDPフラッド攻撃はブロードキャストする性質を悪用した攻撃手法。 具体的にはICMP場合は攻撃対象の内部ネットワークのすべてに対して送信元をネットワークのエッジノードのIPアドレスに偽装したpingを送り、その際に返るエコー応答がネットワークのエッジノードに集中的に返ってくることを悪用したものとなる。 このときエコー要求/エコー応答合わせて要求の2倍パケットを生成できる。つまり1つの攻撃でパケットが内部ネットワークのホスト数2倍のパケットを生成するため非常に効率が良いものとなっている。

この場合は例えばネットワークのエッジノードが192.168.1.1の場合、攻撃者は送信元IPアドレスを192.168.1.1に偽装して192.168.1.0/24などネットワーク全体(ネットワーク内部マシンすべて)にPingを送るということになる。

なおICMP/UDPフラッド攻撃はIPv6ではブロードキャストアドレスがないためこの攻撃はできない

IPアドレス増幅攻撃

IPアドレス増幅攻撃は上記のフラッド系攻撃にIPアドレスを偽装することで効果を高めることを目指すもの。 代表的なものにはSmurf攻撃Fraggle攻撃がある。

4.4.4. アプリケーションロジックエラータイプの攻撃

アプリケーションロジックエラーはアプリケーションの脆弱性を攻撃するもの。 この攻撃は基本的にアクセス権の取得を目的に使われることがある。

Ping of Death攻撃(現在使用不能)

pingとして送るパケットを65535Byteにして送る攻撃。 これはICMPのデータ格納領域を悪用して65535Byteを超えるICMPパケットを送り送信し、受け取った相手のホストをダウンさせるものであった。 この攻撃は現在ほとんどのOSで対応されているため利用不可能となっている。

WinNuke攻撃(現在ほとんど使用不能)

WinNuke攻撃は139/tcpにOOB(Out Of Bounds)というリクエストを送る攻撃。 受け取ったOSが古いWindows OSだとWindowsがハングアップするものとなっている。

E-mail Bombing攻撃

E-mail Bombing攻撃(メール爆弾攻撃)は大きなサイズのメール(添付ファイルを含む)を大量にメールサーバに送ることによりメールサーバのリソースを消費させる攻撃。

SLOW HTTP攻撃

SLOW HTTP攻撃はウェブサーバに対する攻撃手法。 この攻撃は攻撃者がウェブサーバに対して大量のHTTPリクエストを送り、そのリクエストを処理する際にサーバのリソースを消耗させることを目的としてる。 攻撃者はこの際に通常、サーバのリソースを過度に消費するリクエストを意図的に遅らせ、サーバーのリソース枯渇を引き起こすことを試みる。

特徴は以下の通り。

  • 遅延されたリクエスト ... 攻撃者はリクエストを遅らせるために、リクエストヘッダーの送信を遅くするか、リクエストボディのデータ送信を遅くして送信する
  • 持続的な接続 ... 攻撃者は通常リクエストを保持する持続的な接続を使用して攻撃を実行する
  • リソースの消耗 ... サーバはリクエストを待機中にリソース(CPU、メモリ、ネットワーク帯域幅)を浪費し、正規のクライアントへのサービス提供に支障をきたすことがある

またSLOW HTTP攻撃の対策は以下内容を目指すことで実現できる。

設定内容 説明
リクエストタイムアウトの設定 サーバー側でリクエストの最大処理時間を設定し遅延リクエストに対処できるようにする。
リクエスト数の制限 単一のIPアドレスからのリクエスト数を制限することで過剰なリクエストをブロックできる。
リクエストヘッダーの検証 異常なヘッダーを持つリクエストをフィルタリングすることで攻撃を検出および防御できる。

4.5. DDoS攻撃の基礎

4.5.1. DDoS攻撃とは

DDos攻撃(Distributed Denial Of Service Attack)は分散型サービス拒否攻撃とも呼ばれる複数台で行う帯域幅消費型DoS攻撃手法のこと。 特徴は以下の通り。

  • 送るパケットは通常のパケット
  • TCPリクエストを使う
  • サービス運営側は通信を止めにくい(防衛が難しい)
  • 複数のホストからタイミングを合わせて送信することで攻撃を実現する

DDos

4.5.2. DDoS攻撃の特徴

攻撃者はたくさんのボットを仕込んだマシン(ゾンビマシン)で構成されるボットネットを用意し、ハンドラ(C&Cサーバ)と呼ばれるツールを用いてボットネットに通信支持を行うことで攻撃を実現する。

そのため攻撃者のホストは直接攻撃を行わない。

4.5.3. DRDoS攻撃

DRDoS攻撃(Distributed Reflection Of Service Attack)は分散型反射サービス拒否攻撃とも呼ばれるDDoS攻撃とIPスプーフィングを混合した攻撃手法のこと。

この攻撃ではボットネットは中間標的ターゲットのIPアドレスでリクエストをする特徴がある。 中間標的はこのリクエストにこたえるためにレスポンスをターゲットに送り付けるものとなっている。

DRDOS

4.5.6. DDoS攻撃の要素

DDoS攻撃を構成する要素には以下のようなものがある。

  • ボット
    • DoS攻撃を行うように設定されたプログラム
    • 外部からの指令やセットされたトリガーに基づき動作する
    • マルウェアの一種
  • ハンドラ
    • 複数のボットを制御するプログラム
    • 攻撃者の使用するボットに指令をするためのもの
  • ボットネット
    • ボットネットは複数のボットに感染したホストで構成されるネットワーク

4.5.6. DDoS攻撃を取り巻く現状

DDoS攻撃を行う攻撃者は組織化/エコシステム化していることが近年問題になっている。 これはボットネットを持つ攻撃者グループを犯罪組織/テロ組織/特定国家が支援していることが背景になる。 またそれらの団体は相互にボットネットを援助したりも行っている。

エコシステムは攻撃によって得られた情報をダークウェブ上の市場で共有したりする経済圏を指す。 これはダークウェブにおけるアンダーグラウンドが活性化する問題を孕んでいる。