| 情報セキュリティと サイバーセキュリティ |
|---|
| 対象別カテゴリ |
| 隣接領域 |
| 脅威 |
| 防御 |
DoS攻撃(ドスこうげき、英: denial-of-service attack、Dosアタック)は、情報セキュリティにおける可用性を侵害する攻撃手法のひとつ。
ウェブサービスを稼働しているサーバやネットワークなどのリソース(資源)に意図的に過剰な負荷をかけたり脆弱性をついたりすることでサービスを妨害する。
DoS攻撃には2種類の類型がある。
第1の類型は、ウェブサービスに大量のリクエストや巨大なデータを送りつけるなどしてサービスを利用不能にするフラッド攻撃(Flood=「洪水」)である。
第2の類型は、サービスの脆弱性を利用して例外処理をさせることでサービスを利用不能にする攻撃である。
主な目的はサービスの可用性を侵害する事である。具体的には、トラフィックの増大によるネットワークの遅延、サーバやサイトへのアクセス不能といったものがあげられる。
しかし、被害者に経済的ダメージを負わせる事を目的として行われる場合には、EDoS攻撃 (Economic DoS Attack) と呼ばれることもある。EDoS攻撃の一種であるヨーヨー攻撃(Yo-yo Atack)では、大量のトラフィックを送信する(スケールアップを引き起こす)ことと、そのバーストを停止する(結果としてスケールダウンを引き起こす)ことを繰り返すことで、クラウドサービスの利用者に高額な課金を発生させることができる 。

フラッド型のDoS攻撃には、大量のマシンから1つのサービスに、一斉にDoS攻撃を仕掛けるDDoS攻撃(ディードスこうげき、分散型サービス妨害攻撃、Distributed Denial of Service attack)という類型がある。DDoS攻撃は、複数のシステムを使用して、サーバー、ネットワークデバイス、またはトラフィックとリンクして、利用可能なリソースを圧倒し、正当なユーザーに応答できないようにする攻撃である。
DDoS攻撃の類型は2つある。
第1のものは、攻撃者がマルウェアなどで大量のマシン(踏み台)を不正に乗っ取った上で、それらのマシンから一斉にDoS攻撃を仕掛ける協調分散型DoS攻撃である。通常、異なるネットワーク上の約3〜5ノード以上が関与する。
第2の類型は、DRDoS攻撃(Distributed Reflective Denial of Service attack。DoSリフレクション攻撃、分散反射型DoS攻撃) と呼ばれる。DRDoS攻撃では、攻撃者が攻撃対象のマシンになりすまして大量のマシンに何らかのリクエストを一斉に送信する。するとリクエストを受け取ったマシン達は攻撃対象のマシンに向かって一斉に返答を返すことになるので、攻撃対象のマシンには大量の返答が集中し、高負荷がかかることになる。DRDoS攻撃は協調分散型DDoS攻撃と異なりマルウェアなどで踏み台を乗っ取らなくても実行可能なため攻撃が発覚しづらい。また、DRDos攻撃の中には、リクエストした情報よりも送信される応答の情報のほうが多くなる性質を利用した増幅攻撃(AMP攻撃)というものもある。
例えば、Domain Name System(DNS)を利用したDNSリフレクター攻撃(DNSリフレクター攻撃、DNS amplification attacks、DNS amp攻撃、DNSリフレクション攻撃とも)では、攻撃者が1つ以上の公開DNSサーバーにDNS名前解決リクエストを送信し、標的の被害者の送信元IPアドレスを偽装する。攻撃者はできるだけ多くの情報を要求しようとし、それによって標的の被害者に送信されるDNS応答を増幅する。リクエストのサイズは応答よりも大幅に小さいため、攻撃者は容易に標的に向けられるトラフィック量を増加させることができる。
他にも主なDRDoS攻撃として、 ICMP echoを利用したSmurf攻撃などがある。
DRDoS攻撃に使える主なプロトコルとして、TCPのSYN、ACK、DATA、NULL、ICMPのECHO Request、Time Stamp Request、Address Mask Request、およびUDP、IP pkt (low TTL)、DNS query がある。
Simple Network Management Protocol (SNMP) や Network Time Protocol (NTP) 、NetBIOSネームサーバやRPCポートマップなどへのリクエストを利用する攻撃も観測されている。
協調分散型DDoS攻撃とDRDoS攻撃が組み合わされることもある。DDoS攻撃の規模は近年拡大し続けており、2016年には毎秒テラビットを超えるまでになった。
フラッド型のDoS攻撃は、ウェブ上に公開されている様々なサービスに対して行うことができるので、攻撃対象となるサービスごとにフラッド攻撃が存在する。
HTTPは、Webページの閲覧やフォーム送信など、ブラウザベースのインターネットリクエストの基盤となっており、悪意のあるトラフィックと通常のトラフィックを区別するのが難しい。攻撃者は通常、ボットネットを利用して、大量の攻撃トラフィックを発生させる。HTTP GET攻撃では、攻撃者は、複数のコンピューターやデバイスを使って、標的のサーバーに対し画像やファイルなどへのリクエストを大量に送信する。HTTP POST攻撃では、大量のPOSTリクエストを直接サーバーに送りつけることで、サーバーの処理能力を飽和させ、サービス拒否を引き起こす。
HTTPフラッド攻撃の中でも、ウェブブラウザに備わっているページの再読み込み機能を使用し、Webサーバに大量にリクエストを送りつける攻撃はF5アタック(F5攻撃)と呼ばれることがある。この名称は、「F5キーを連打する攻撃」であることに由来する。Windows上で動作するウェブブラウザでは、F5キーが更新機能に割り当てられていることが多いため、F5キーを押下するたびにWebサーバにリクエストが送られることになる。なお、Ctrl+RでもF5アタックと同じリクエストを送ることができる。
TCPの3ウェイ・ハンドシェイクでは2つのマシンA,BがTCP接続をする際、Aが通信要求SYNパケットを送信し、BがSYN/ACKパケットを送信し、最後にAがACKパケットを送るという手順をたどる。SYNフラッド攻撃では攻撃者が攻撃対象のマシンに対しSYNパケットを大量に送りつけ、それらすべてに対するSYN/ACKパケットを攻撃対象に発行させる。しかし攻撃者はそれらのSYN/ACKパケットに対しACKパケットを返信しない。これにより攻撃対象はタイムアウトになるまでいつまでもACKパケットを待ち続けることとなり、リソースを食いつぶされてしまう。対策としてはRFC 4987にファイアーウォールやプロキシの利用といった一般的手法の他、SYN cookies、TCP half-open、SYN Cacheといった手法が記載されている。
ティアドロップ攻撃(Teardrop attack)は、重複した、または大きすぎるペイロードを持つ、不正なIPフラグメントを標的マシンに送信することを含む。これは、TCP/IPのフラグメンテーション再構築コードのバグのために、さまざまなオペレーティングシステムをクラッシュさせる可能性がある 。Windows 3.1x、Windows 95、Windows NTオペレーティングシステム、およびバージョン2.0.32および2.1.63より前のLinuxのバージョンがこの攻撃に対して脆弱である。
IPヘッダのフィールドの1つに「フラグメントオフセット」フィールドがあり、これはフラグメント化されたパケットに含まれるデータの開始位置などの情報を、元のパケットのデータに対して示す。1つのフラグメント化されたパケットのサイズやオフセットなどの情報が、次のフラグメント化されたパケットのものと異なる場合、パケットを再構築できず、サービス拒否状態に陥る。
また、攻撃者が送り主と送信先を一致させたパケットを送りつけると無限ループにはまるなどの脆弱性を利用したLand攻撃というものも存在する。
ICMPは発信元の偽装が容易なので、DoS攻撃を行う攻撃者にとって身元がわかりにくいという利点がある。
ICMPを利用したものにはICMP echo request (を利用したping)を攻撃対象に大量に送り続けるICMP echoフラッド攻撃(pingフラッド攻撃)や、踏み台にICMP echo requestをブロードキャストする事でICMP echo replyを攻撃対象に集めるDRDDoS攻撃であるSmurf攻撃がある。
Smurf攻撃は、特定のマシンではなく、ネットワークのブロードキャストアドレスを介して特定のネットワーク上のすべてのコンピュータホストにパケットを送信できる、誤って設定されたネットワークデバイスに依存している。攻撃者は、送信元アドレスを被害者のアドレスに見せかけて偽装した大量のIPパケットを送信する 。ネットワーク上のほとんどのデバイスは、デフォルトで、送信元IPアドレスに返信を送信することでこれに応答する。これらのパケットを受信して応答するネットワーク上のマシンの数が非常に多い場合、被害者のコンピュータはトラフィックで溢れかえることになる。これにより被害者のコンピュータが過負荷になり、このような攻撃中には使用不能になることさえある。
Pingフラッドは、被害者に圧倒的な数のpingパケットを送信することに基づいている。通常、Unix系ホストの「ping」コマンドが使用される。これは非常に簡単に開始でき、主な要件は被害者よりも大きな帯域幅へのアクセスである。Ping of deathは、被害者に不正な形式のpingパケットを送信することに基づいており、脆弱なシステムではシステムクラッシュを引き起こす。BlackNurse攻撃は、必要なDestination Port Unreachable ICMPパケットを利用する攻撃の一例である。1996年に発見されて以降この脆弱性は防がれているため、この手法はほぼ通用しなくなっている。
UDPはコネクションレスのサービスであるため発信元の偽装が容易である。DoS攻撃を行う攻撃者にとって身元がわかりにくいという利点がある。
UDPに対してもUDPポートに対して大量のトラフィックを送信するUDPフラッド攻撃があり、UDPを利用したDRDDoS攻撃をUDPベース増幅攻撃(UDP-Based Amplification Attack)と呼ぶ。
UDPベース増幅攻撃の中でもNTPの実装であるntpdのmonlistコマンドを使った攻撃は増幅率が高く、19倍から206倍の増幅率に達する。このコマンドはNTPサーバが過去にやり取りしたアドレスを最大で600件返すものであり、ntpdにおけるコマンドを利用した攻撃が2013年に観測されている。なおntpdのバージョン4.2.7p26以降はこのコマンドを悪用できないよう修正されている。
Nuke(ニューク)は、断片化された、またはその他の無効なICMPパケットを標的に送信する、コンピュータネットワークに対する旧式のサービス妨害攻撃である。これは、変更されたpingユーティリティを使用してこの破損データを繰り返し送信することによって達成され、影響を受けたコンピュータを完全に停止するまで遅くする。ある程度の知名度を得たNuke攻撃の具体例としてWinNukeがあり、これはWindows 95の「NetBIOS over TCP/IP」の脆弱性を悪用したものである。帯域外データの文字列が被害者のマシンのTCPポート139に送信され、ロックアップしてBlue Screen of Deathを表示させた。
長時間にわたってWebサーバがコネクションを維持してくれることを悪用して能力を浪費する。次のような攻撃がある。
RUDY攻撃は、ウェブアプリケーションに対し、ウェブサーバー上で利用可能なセッションを枯渇させることで攻撃を行う。前述のSlowlorisとよく似ており、RUDYは終わりのないPOST送信と任意に大きなcontent-lengthヘッダ値を送信することでセッションを停止状態に保つ。
スローリード攻撃は、正当なアプリケーション層リクエストを送信するが、応答を非常にゆっくりと読み取ることで、接続をより長く開いたままにし、サーバーの接続プールを枯渇させることを狙う。スローリードは、TCP受信ウィンドウサイズに非常に小さな値を通知し、同時にクライアントのTCP受信バッファをゆっくりと空にすることで達成され、非常に低いデータフローレートを引き起こす。
リフレクション攻撃は分散型サービス妨害攻撃は、ある種の偽造されたリクエストを非常に多数のコンピュータに送信し、それらのコンピュータがリクエストに応答するように仕向けることを含む場合がある。IPスプーフィングを使用して、送信元アドレスは標的の被害者のものに設定される。これは、すべての応答が標的に送られ(そしてフラッディングする)ことを意味する。この反射攻撃の形態は、時に「分散反射型サービス妨害(DRDoS)」攻撃と呼ばれる。 ICMPエコーリクエスト攻撃(Smurf攻撃)は、フラッディングホストが誤って設定されたネットワークのブロードキャストアドレスにエコーリクエストを送信し、それによってホストが被害者にエコーリプライパケットを送信するように誘い込むため、反射攻撃の一形態と見なすことができる。いくつかの初期のDDoSプログラムは、この攻撃の分散形式を実装していた。
単純に所定のメールアドレスに対して、サイズの大きいメールや大量のメールを大量発信することを意味する。メール発信時には単に電子メールクライアント(メールの送受信用ソフトウェア・メールの受信や閲覧といった機能を備える)から送信する場合もあれば、クラッキング用のマルウェアなどを利用してメールサーバに同一メッセージの大量送信を直接指示する方法や、更にはDDoS攻撃(分散DoS攻撃)のように複数コンピュータをリモート操作して送信を指示する場合もある。
パルシングゾンビとは、ウェブサイトをクラッシュさせるのではなく、単に遅くすることを目的として、断続的かつ短時間のフラッディングを開始するよう指示された侵害されたコンピュータのことである。このタイプの攻撃は「サービス低下攻撃」と呼ばれ、検出がより困難な場合があり、長期間にわたってウェブサイトへの接続を妨害し、サービス妨害攻撃よりも全体的により大きな混乱を引き起こす可能性がある 。サービス低下攻撃の露見は、サーバーが本当に攻撃されているのか、それとも通常よりも高い正当なトラフィック負荷を経験しているのかを識別する問題によってさらに複雑になる。
2015年、DD4BCのようなDDoSボットネットが台頭し、金融機関を標的にした 。サイバー恐喝者は通常、低レベルの攻撃から始め、ビットコインで身代金が支払われなければより大規模な攻撃が実行されるという警告を発する 。セキュリティ専門家は、標的とされたウェブサイトに身代金を支払わないよう推奨している。攻撃者は、標的が支払う準備ができていると認識すると、長期的な恐喝計画に移行する傾向がある。
チャレンジ・コラプサー(CC)攻撃は、標準的なHTTPリクエストが標的のウェブサーバーに頻繁に送信される攻撃である。リクエスト内のURIは、複雑で時間のかかるアルゴリズムやデータベース操作を必要とし、標的のウェブサーバーのリソースを枯渇させる可能性がある。 2004年、KiKiというニックネームの中国人ハッカーが、Collapsarという名前のNSFOCUSファイアウォールを攻撃するためにこの種のリクエストを送信するハッキングツールを発明し、そのハッキングツールはチャレンジ・コラプサー、略して「CC」として知られるようになった。その結果、このタイプの攻撃は「CC攻撃」という名前が付けられた。
恒久的サービス妨害(PDoS)は、俗にフラッシング(phlashing)としても知られ、システムに深刻なダメージを与え、ハードウェアの交換または再インストールを必要とさせる攻撃である。 分散型サービス妨害攻撃とは異なり、PDoS攻撃は、被害者のハードウェア(ルーター、プリンター、その他のネットワーク機器など)の管理インターフェースに対するリモート管理を許可するセキュリティ上の欠陥を悪用する。攻撃者はこれらの脆弱性を利用して、デバイスのファームウェアを改変、破損、または欠陥のあるファームウェアイメージに置き換える。このプロセスは、正当に行われる場合は「フラッシング」として知られている。その目的は、デバイスをブリック化し、修理または交換されるまで本来の目的のために使用できなくすることである。PDoSは純粋なハードウェア標的の攻撃であり、DDoS攻撃でボットネットを使用するよりもはるかに速く、必要なリソースも少ない。これらの特徴と、ネットワーク対応の組み込みデバイスにおけるセキュリティエクスプロイトの可能性と高い確率のため、この技術は多くのハッキングコミュニティの注目を集めている。BrickerBotは、IoTデバイスを標的としたマルウェアで、PDoS攻撃を使用して標的を無効化した 。PhlashDanceは、Rich Smith(ヒューレット・パッカードのシステムセキュリティラボの従業員)によって作成されたツールで、2008年に英国ロンドンで開催されたEUSecWest応用セキュリティ会議でPDoSの脆弱性を検出および実証するために使用された。
Miraiボットネットは、コンピュータワームを使用してインターネット上の何十万ものIoTデバイスに感染させることで機能する。このワームはネットワークやシステムを通じて広がり、サーモスタット、Wi-Fi対応の時計、洗濯機など、保護が不十分なIoTデバイスを乗っ取る 。所有者やユーザーは通常、デバイスが感染したときにすぐには気づかない。IoTデバイス自体が攻撃の直接の標的ではなく、より大きな攻撃の一部として使用される。 ハッカーが望む数のデバイスを奴隷化すると、それらのデバイスにISPに接続しようとするよう指示する。2016年10月、MiraiボットネットがTwitterやNetflixなどのサイトのISPであるDynを攻撃し、 数時間アクセス不能になった。
最大セグメントサイズと選択的確認応答(SACK)を操作することで、リモートのピアがLinuxカーネル内で整数オーバーフローを引き起こし、サービス拒否を発生させ、潜在的にカーネルパニックを引き起こす可能性がある。 Jonathan Looneyは2019年6月17日にCVE-2019-11477, CVE-2019-11478, CVE-2019-11479を発見した。
シュルー攻撃は、攻撃者が中間者攻撃の技術を用いるTCPに対するサービス妨害攻撃である。これは、TCPの再送タイムアウトメカニズムの弱点を悪用し、短く同期されたトラフィックのバーストを使用して、同じリンク上のTCP接続を妨害する。
高度な低帯域幅DDoS攻撃は、より少ないトラフィックを使用し、被害者のシステム設計の弱点を狙うことでその効果を高めるDoSの一形態である。つまり、攻撃者はシステムに複雑なリクエストからなるトラフィックを送信する 。基本的に、高度なDDoS攻撃は、使用するトラフィックが少ないためコストが低く、サイズが小さいため特定がより困難であり、フロー制御メカニズムによって保護されているシステムに損害を与える能力を持っている。
TTL値が1以下のパケットを破棄する方が、より高いTTL値を持つパケットを転送するよりも多くのルーターリソースを消費する。TTL失効によりパケットが破棄されると、ルーターのCPUはICMP時間超過応答を生成して送信する必要がある。これらの応答を多数生成すると、ルーターのCPUが過負荷になる可能性がある。
UPnP攻撃は、Universal Plug and Play(UPnP)プロトコルの既存の脆弱性を利用して、ネットワークセキュリティを迂回し、標的のネットワークとサーバーをフラッディングする。この攻撃はDNS増幅技術に基づいているが、攻撃メカニズムは、ある外部ソースからのリクエストを別の外部ソースに転送するUPnPルーターである。UPnPルーターは、偽のIPアドレスから予期しないUDPポートでデータを返し、トラフィックのフラッドを停止するための単純なアクションを取ることをより困難にする。インパーバの研究者によると、この攻撃を阻止する最も効果的な方法は、企業がUPnPルーターをロックダウンすることである。
2014年、Simple Service Discovery Protocol(SSDP)が「SSDP反射攻撃」として知られるDDoS攻撃で使用されていることが発見された。多くのデバイス(一部の家庭用ルーターを含む)には、UPnPソフトウェアに脆弱性があり、攻撃者はUDPポート1900からの応答を自分の選択した宛先アドレスに取得できる。数千台のデバイスからなるボットネットを使用すると、攻撃者は十分なパケットレートを生成し、帯域幅を占有してリンクを飽和させ、サービスの拒否を引き起こすことができる。 この弱点のため、ネットワーク企業のCloudflareはSSDPを「Stupidly Simple DDoS Protocol(とてつもなく単純なDDoSプロトコル)」と表現している。
Voice over IPは、発信者番号偽装を通じて通話の発信元を偽装することを可能にしながら、大量の電話音声通話の不正な発信を安価かつ容易に自動化できるようにした。米国の連邦捜査局によると、電話サービス妨害(TDoS)は、さまざまな詐欺計画の一部として現れている。
TDoSはインターネット電話がない場合でも成立する。2002年ニューハンプシャー州上院議員選挙電話妨害スキャンダルでは、テレマーケティング業者が選挙日に電話バンクを妨害するために政敵に偽の通話を大量に発信するために使用された。関連する悪用には、SMSフラッディング攻撃や、送信側で紙のループを使用したブラックファックスまたは連続ファックス送信が含まれる。
この節の加筆が望まれています。 |
コンピュータネットワークセキュリティでは、スプーフィングされたDoS攻撃の副作用としてバックスキャッターが発生する。この種の攻撃では、攻撃者は被害者に送信されたIPパケットの送信元アドレスをスプーフィング(偽造)する。一般に、被害者のマシンはなりすましパケットと正当なパケットを区別できないため、被害者は通常どおりになりすましパケットに応答するが、この応答がバックスキャッターと呼ばれる。
攻撃者が送信元アドレスをランダムにスプーフィングしている場合、被害者からのバックスキャッター応答パケットはランダムな宛先に送信される。バックスキャッターの観測は、DoS攻撃の間接的な証拠となる。
「バックスキャッター分析」とは、IPアドレス空間の統計的に有意な部分に到着するバックスキャッターパケットを観察して、DoS攻撃と被害者の特性を判断することである。