aaaiiuie

学習(備忘録)のため運用

情報処理安全確保支援士 2.7 DoS攻撃

DoSとは「Denial of Service」の略であり、日本語ではDoS攻撃を「サービス不能攻撃」「サービス拒否攻撃」「サービス妨害攻撃」などと呼ぶ。DoS攻撃とは、ターゲットサイトに対して意図的に不正なパケットや膨大なパケットを送りつけることで、特定のサービスやターゲットサイトのネットワーク全体が正常動作できない状態に陥れる行為をいう。ここでは、DoS攻撃についてその仕組みと対策を解説する。

2.7.1 DoS攻撃の種類と対策

DoS攻撃には次のような種類がある

  1. CPUやメモリなどのシステムリソースを過負荷状態、またはオーバーフロー状態にする
  2. 大量のパケットを取り付け、ネットワークの帯域を溢れさせる
  3. ポストのセキュリティホールをついて、OSや特定のアプリケーションを異常終了させる

この中で比較的よく行われているのが 2 の手法である。2の攻撃は、攻撃する側の規模が大きくなればなるほど、より大きな被害を与える可能性が高まる。なお、2.3.1項及び2.3.2項で解説したバッファオーバーフロー攻撃は、ターゲットとなったサービスを強制的に終了させるため、3に該当する。
また、1のシステムリソースに対する攻撃と、2のネットワーク帯域に対する攻撃など、種類の異なる攻撃を同時に行う手法をマルチベクトル型DoS攻撃/DDoS攻撃と呼ぶ。
以降ではDoS攻撃に用いられるオモのあ手法を取り上げ、合わせてその対策も解説する。

- SYN Flood攻撃

SYN Flood攻撃とは、TCPの接続開始要求でSYNパケットを大量に送りつけることで正常なサービスの提供を妨害するというもので、上記分類では1に該当する(規模によっては2)手法である。

攻撃者はターゲットホストでサービスを提供しているTCPポートに対し、発信元アドレスを偽装したSYNパケットを次々に送信する。SYNパケットを受け取ったホストはSYN/ACKパケットを返して一定時間もつが、接続を確立するACKパケットが帰ってくることはなく、次々にSYNパケットばかりがひたすら送りつけられてくる。ホストはそれらをテーブルにセットし、タイムアウトになるまで持ち続けるが、やがてはホストのシステムリソースを使い尽くし、正当な接続要求が受付けられなくなるというものである。
この攻撃では、発信元アドレスが偽装されているため、攻撃者を特手するのは困難である。

SYN Flood攻撃のイメージ

対策

  • SYNクッキーやSYN Floodプロテクション機能を持つOSやファイアウォールを用いる
  • コネクション確立時のウェイトタイムを短くする
  • ルーターやスイッチによってはSYNパケットの帯域制限を行う

SYNクッキーとはTCP通信の正当性を確認するために、SYN/ACKパケットのシーケンス番号に埋め込まれるデータであり、通常はTCPヘッダをハッシュ課した値が用いられる。
SYNクッキー方式では、クライアントからSYNパケッとぉ受け取った段階ではTCPソケットをオープンにせず、SYNクッキーをセットしたSYN/ACKパケットをクライアントに返す。その後、クライアントから送られてきたACKパケットを確認し、正当な通信であることが確認できたらソケットをオープンし、TCPコネクションを確立する
SYN Floodは古くから用いられている手法であり、DoS攻撃の代表格と言える。現在一般的に使用されているサーバーOSやファイアウォールではこの手法への対策は行われているが、万全なものではないため、いまだに被害が発生している。

- UDP Flood攻撃

UDP Flood攻撃とは、ターゲットホストのUDPポートに対し、サイズの大きなパケットを大量に送り続けるもので、冒頭に記載した分類1、または規模によっては2に該当する。またサイズの非常に小さなUDPパケットを大量に送りつけるという手法もあり、こちらは主にファイアウォールなどネットワーク機器に負荷をかける攻撃となる。UDPはコネクションレスでもあるため、発信元アドレスの偽装は容量であり、この攻撃でもまず間違いなく偽装されている。したがって攻撃者を特定するのは困難である。

対策

  • 不要なUDPサービスを停止する
  • 不要なUDPサービスへのアクセスをファイアウォールでフィルタリングする
  • ルータやスイッチによってUDPパケットの帯域制限を行う

- ICMP Flood攻撃

ICMP Flood攻撃(Ping Flood攻撃)とは、ターゲットホストに対し、サイズの大きなICMP echo request (ping)を大量に送り続けるもので、冒頭に記載した分類の1、規模によっては2に該当する。ICMPもUDPも同様にコネクションレスであるため、発信元アドレスの偽装は容易であり、この攻撃でもまずは間違いなく偽装されている。したがって、攻撃者を特定するのは困難である。

対策

  • ルータやファイアウォールでICMPパケットを遮断する(全てのICMPパケットを遮断できない場合は、タイプコード別に中継可否を設定する)
  • 上記が不可の場合には、ルーターやスイッチによってICMPパケットの帯域制限を行う

- smurf 攻撃

smurf攻撃とは、発信元アドレスを偽装したICMP echo requestによってターゲットホストが接続されたネットワーク帯域を溢れさせる攻撃で、冒頭に記載した分類では2に該当する。 smurf攻撃の仕組みを次に示す。

smurf攻撃のイメージ
  1. 攻撃者は、最終的なターゲットとなるホストのIPアドレスを発信元アドレスにセットした上で、攻撃に加担させる(踏み台)ネットワークセグメントのブロードキャストアドレス宛にICMP echo requestを送りつける
  2. ICMP echo requestを受け取ったネットワークセグメント上の各ホストは、偽装された発信元アドレス(最終的なターゲットホスト)に対して一斉に応答(ICMP echo reply)を返す

応答を返すホストの数が多ければ多いほど大量のパケットが一斉に送りつけられることになり、その結果、ターゲットホストが接続されたネットワークが輻輳状態に陥り、正当なアクセス要求が受け付けられなくなる。

輻輳(ふくそう)とは、さまざまな物が1箇所に集中する状態を指します。通信分野では、インターネット回線や電話回線にアクセスが集中することを輻輳と呼びます。インターネット回線や電話回線で輻輳が発生すると、通信速度が低下する、あるいは通信システムそのものがダウンするといった弊害が生じます。

対策

  • ルーターやファイアウォールでICMPパケットを遮断する(攻撃を受けないためには少なくともICMP echo replyを遮断する必要がある)
  • 上記が不可の場合にはルータやスイッチによってICMPパケットの帯域制限を行う
  • ブロードキャストアドレス宛のパケットを遮断する(踏み台にならないための対策)

- Connection Flood攻撃

Connection Flood攻撃とは、ターゲットホストのTCPポートに対し、次々にコネクションを確立し続けることで大量のプロセスを起動し、ソケットを占拠するもので、131ページの分類では1に該当する。ターゲットホストのコネクション数に制限があれば、この攻撃によってソケットを占拠されてしまう可能性がある。一方コネクション数に制限がない場合は、システムリソースを使い尽くすまでコネクションを確立し続けることになる。

この攻撃ではターゲットホストと攻撃者がコネクションを確立するため、発信元アドレスを偽装することはほぼ不可能である。反面、攻撃の規模次第で、ターゲットホストに対して確実に影響を与える可能性の高い手法と言える。

対策

  • ホストのソケットオープンすうやTCPキューの割り当て数を増やす
  • ホストの設定によって同じIPアドレスからの同時接続数を制限する
  • ホストの冗長構成にするとともに、ロードバランサーを用いて負荷分散を図る
  • ルーターやファイアウォールで攻撃もとアドレスからのパケットを遮断する

- DDoS攻撃

DDoS攻撃(Distributed Denial of Service attack:分散型サービス不能攻撃)とは、インターネット上にある多数の踏み台サイトにあらかじめ仕掛けておいた攻撃プログラムから、一斉にDoS攻撃を仕掛けさせることでターゲットサイトのネットワーク帯域を溢れさせるもので、冒頭に説明した2に該当する。
近年DDoS攻撃はボットネットによって実行されるケースが大半となっている。2009年7月には、米国政府機関や、韓国国的機関、民間企業などのwebサイトがDDoS攻撃を受けたことが報じられてが、この事件では13万台以上もボットに感染したPCが攻撃に悪用されたようである。

対策

  • 十分な帯域を持つネットワークを使用する
  • 公開サーバおよび経路上のネットワーク機器の処理能力を増強する
  • 発信元(ソース)アドレスが明らかに偽装されている(プライベートアドレスなど)パケットや、ブローdキャストアドレス宛パケットをファイアウォールで遮断する
  • 不要なICMPパケット、UDPパケットの遮断、もsくは帯域制限をおkなう
  • コンテンツデリバリーネットワーク(CDN)サービスを利用する
  • CDNプロバイダなどが提供するDDoS攻撃対策サービスを利用する

CDNとはWebサイトの静的コンテンツをCDNサービスプロバイダが管理運営する複数のサーバー(CDNサーバ)にキャッシュし、分散配置することにより、表示速度の高速化や負荷分散を図る技術がある。実際にどのCDNサーバに振り分けるかはDNSによってコントロールされており、その仕組み上、DNSを経由したWebサイトに対するDDoS攻撃を分散・緩和させる効果がある
CDNサービスプロバイダにより、DDoS攻撃攻撃対策に特化したサービスを提供しているケースもある。例えばCDN大手のAkamai社が売春したProlexic社では世界中のTier1プロバイダにDDoS攻撃を除去するためのスクラピングセンターを設置しており、DDoS攻撃を検知すると攻撃もとに近い場所で攻撃パケットを遮断し、正常なパケットだけを通過させるサービス提供している。

- 反射・増幅型DDoS攻撃

反射・増幅型DDOS攻撃とは、TCP・UDP・ICMPなど、TCP/IPプロトコルの基本的な通信手段やアプリケーションの仕様において生成される様々な応答パケットを大量に発生させてDoS攻撃を行う反射型のDDoS攻撃である。したがって、前述したDNSリフレクション攻撃(「DNSリフレクター攻撃」、「DNS amp攻撃」とも呼ばれる)やsmurf攻撃も反射・増幅型DDoS攻撃の一種である。また、近年ではNTP(Network Time Protocol)サーバを踏み台として実行されている「NTPリフレクター攻撃」が数多く観測されたことから、警視庁などから注意喚起が差されている。反射・増幅型DDoS攻撃の例を次に示す。

  1. 攻撃者は、C&Cサーバを通じて、ボットに感染した無数のPC(ゾンビPC)に攻撃命令を出す
  2. ゾンビPCは最終的なターゲットとなるホストのIPアドレスを発信元あドレエスにセットした上で、攻撃に利用するNTPサーバ、オープンリゾルバなど(Reflector)にリクセストを送りつける
  3. Reflectorは偽装された発信元アドレス(最終的なターゲットホスト)に対して、増幅した応答パケットに大量に送りつける
  4. ターゲットサイトの上位ISPを含めインターネット接続回線が輻輳状態に陥り、正常なリクエストが受け付けられなくなる。
反射・増幅型DDoS攻撃のイメージ

DDoS攻撃ではあらかじめ踏み台サイトに攻撃用のエージェントを仕掛けておく必要があるが、反射・増幅型DDoS攻撃はTCP/IPの基本的な通信手段を利用しているだけなので、特別な仕掛けなどは一切必要ない。そのため、攻撃に利用できるReflectorはインターネット上に数多く存在する。 なお、要求パケットのサイズに対し、応答パケットのサイズが多いくなるものほど、攻撃の効率が良いため、悪用されやすい。禁煙観測されているNTPリフレクター攻撃では、NTPサーバがかこにやり取りした最大600件のアドレスを回答する「monlist」コマンド(状態確認機能)により、増幅率を数十倍から数百倍にまで高めるという手口が使われている。そのため、その後リリースされたNTPのサーバプログラムでは、このコマンドを脆弱であるとして無効にしている。

対策

  • 反射・増幅型DDoS攻撃の対象となる可能性のあるサーバを外部に公開する必要がない場合は、適切なアクセス制限を施してインターネットからのアクセスを遮断する
  • 反射・増幅型DDoS攻撃に悪用されやすいコマンドなどを無効にする
  • DDoS攻撃の対応と同様、十分な回線帯域を確保するとともに、ネットワーク機器、サーバの負荷分散などを含めたサイト全体の再構成やパフォーマンスチューニングなどを行う

- IoT機器を悪用したDDoS攻撃

近年、IoT機器の脆弱性を悪用して感染を広げ、C&Cサーバからの命令を受けてDDoS攻撃を行うマルウェアが出現し、大きな脅威となっている。2016年に確認された「Mirai」と呼ばれるマルウェアは、工場出荷時の脆弱なパスワードが設定されたIPカメラなどのIoT機器にログインを施工して完成を拡大したあと、C&Cサーバからの命令を受けて大規模なDDoS攻撃を行う。実際に攻撃が観測されたケースでは、攻撃の規模は620Gbpsにまで達したと報じられた。
Miraiのソースコードは公開されており、その後も様々な亜種が出現している。

- EDoS攻撃

EDoS攻撃(Economic Denial of Service attack, Economic Denial of Sustainability attack)とは、ストレージ容量やトラフィック量に応じて課金されるクラウドの特性を悪用し、クラウド利用企業の経済的な損失を狙ってリソースを大量消費させる攻撃である。EDoS攻撃には有効な対策がないのが実情である。

2.7.2 DoS攻撃への総合的な対策

予防・防止

  • ルータやファイアウォールで不要なパケット(UDP、ICMPなどの単位)を遮断する
  • 十分な帯域を持つネットワークを用いる
  • 十分な処理能力を持つサーバやネットワーク機器を用いる
  • ルータやスイッチを用いてプロトコルごとの帯域制限を行う
  • 疑似的なDoS攻撃を実践し、ホストやネットワークへの影響を確認する
  • CDNサービスを利用する
  • CDNプロバイダなどが提供するDDoS攻撃対策サービスを利用する

検知・追跡

  • ネットワーク監視型IDS、IPSを用いてDoS攻撃を検知する

回復

  • ルータやファイアウォールで攻撃パケットを遮断する
  • 攻撃経路が判明すれば、上位プロバイダに依頼して当該経路からパケット帯域制限を行う
  • 攻撃者のIPアドレスが判明すれば、ルータやファイアウォールで攻撃パケットを遮断する
  • その他、予防・防止にあげた対策を実施する

Check!

  1. DoS攻撃にはどのような種類があるか
  2. 実害を及ぼす可能性のあるDoS攻撃としては何があるか
  3. 攻撃者の特定が困難な手法にはどのようなものがあるか
  4. 攻撃者の特定が可能な手法にはどのようなものがあるか
  5. DoS攻撃で用いられる手法にはどのような対策があるか

確認問題1

DoS攻撃の一つであるSmurf攻撃はどれか

ア ICMPの応答パケットを大量に発生させ、それが攻撃対象者に送られるようにする
イ TCP接続要求であるSYNパケットを攻撃対象に大量に送りつける
ウ サイズが大きいUDPパケットを攻撃対象に大量の送りつける
エ サイズの大きい電子メールや大量の電子メールを攻撃対象に送りつける

解答・解説
Smurf攻撃とは、最終的なターゲットホストのIPアドレスを発信元アドレスとして偽装したICMP応答要求(ICMP echo request)を攻撃に加担させる(踏み台)ネットワークセグメントのブロードキャストアドレス宛に送ることにより、大量nICMP応答(ICMP echo request)パケットを発生させ、サービスを妨害する攻撃手法である。したがってアが正解。 イ SYN Flood攻撃の説明
ウ UDP Flood攻撃の説明
エ メールボム(email bomb)の説明

確認問題2

ICMP Flood攻撃に該当するものはどれか

ア HTTP GETコマンドを繰り返し送ることによって、攻撃対象のサーバにコンテンツ送信の負荷をかける
イ pingコマンドを用いて大量の要求パケットを発信することによって、攻撃対象のサーバに至るまで回線を過負荷にしてアクセスを妨害する
ウ コネクション開始要求にあたるSYNパケットを大量に送ることによって、攻撃対象のサーバに接続要求ごとに応答を返すための課題な負荷をかける
エ 大量のTCPコネクションを確立することによって、攻撃対象のサーバに接続を維持させ続けてリソースを枯渇させる

解答・解説
ICMP Flood攻撃(Ping Flood攻撃)とは、ターゲットとなるサーバに対し、ICMP echo request(Pingコマンド)を大量に送り続けることにより、当該サーバが接続されている回線を過負荷状態にして正常なアクセスを妨害する攻撃である。したがってイが正解。 ア HTTP GET Flood攻撃(Connection Flood攻撃の一種)の説明である
ウ SYN Flood攻撃の説明である
エ Connection Flood攻撃の説明である

確認問題3

マルウエア Miraiの動作はどれか

ア IoT機器などで動作するWebサーバの脆弱性を悪用して感染を広げ、Webサーバのウェブページを改竄し、決められた日時に特定のIPアドレスに対してDDoS攻撃を行う
イ Webサーバの脆弱性を悪用して企業のウェブページに不正なJavaScriptを挿入し、当該webページを閲覧した利用者を不正なウェブサイトへ誘導する
ウ ファイル共有ソフトを使っているPC内のマルウェアの実行ファイルを利用者が誤って実行するとPC内の情報をインタネット上のウェブサイトにアップロードして不特定多数の人に公開する
エ ランダムなIPアドレスを生成してtelnetポートにログインを試行し、工場出荷時の弱いパスワードを使っているIoT機器などに感染を広げるとともに、C&Cサーバから命令にしたがって標的に対してDDoS攻撃を行う

解答・解説
MiraiはIPカメラなどのIoT機器に感染を広げ、C&Cサーバから指令を受けて大規模なDDoS攻撃を行うマルウェアである。多くのIoT機器が工場出荷時の脆弱なパスワードが設定されたままで放置されていたことが、Miraiによる感染が広がる原因となった。したがってエが正解。