分散型サービス拒否(DDoS)攻撃は、システムのグループが不正なトラフィックでサーバを溢れさせるときに発生します。最終的にサーバは持ちこたえられなくなり、ダウンするか、正当なリクエストに対してさえ応答不能になります。
2020年初頭から2021年にかけて、DDoS攻撃の数は341%増加しました。これは主に、パンデミックにより多くの企業がデジタル化を余儀なくされ、その結果、必然的にサイバー攻撃の影響を受けやすくなったことが原因です。
DDoS攻撃は、最も懸念されているサイバー攻撃の1つであり、これにはもっともな理由があります。巧妙に実行されるDDoS攻撃は、防ぐことが事実上不可能であり、阻止することも非常に困難です。いつでも開始でき、最も高度なIT企業のサーバですら活動不能にできます。2018年、GitHubは当時最大のDDoS攻撃を受け、毎秒1億2千万を超えるデータパケットでサーバが溢れかえりました。
攻撃の規模に関係なく、根本的なテーマは常に同じです。それは、可能な処理量よりも多くのリクエストでサーバを攻撃することです。サーバがクラッシュするか、応答が停止するまで攻撃を続けます。サービスの停止は修復までに数時間かかることがよくあり、莫大な財務的損失を引き起こします。
技術的な詳細を掘り下げる代わりに、たとえ話で考えてみましょう。テイクアウトのハンバーガー店を経営しているとします。顧客は電話で注文し、料理ができたら受け取りに来ます。ある日、いたずら者が何度も電話をかけ、合計100個のハンバーガーを注文しました。
これだけの数の調理をこなすため、新しい注文を受けるのを停止します。しかし、いたずら者はハンバーガーを受け取りに現れません。偽の注文に対応するためにすべてのリソースを無駄にしただけでなく、本当の顧客に料理を提供できませんでした。
これは迷惑なことですが、簡単に防止できます。すべての偽の注文を出しているのは1人の人物だけだからです。この人の電話番号をブロックして、問題は解決です。同じ状況がサーバにも発生する可能性があります。1人の悪意のあるクライアントがサーバに大量の偽のリクエストを送信して、本物のユーザに対応できなくする可能性があります。
しかしハンバーガー店の例と同様に、1つの偽のクライアントを検出することは簡単です。サーバはただ、そこからのリクエストをブロックすればいいのです。このタイプの攻撃は、サービス妨害(DoS)攻撃として知られており、現代のDDoS攻撃の先駆けです。
それでは、ハンバーガー店に電話しているいたずら者が複数いた場合はどうなるでしょうか。店の固定電話は鳴りやまず、本物の顧客と偽の顧客を区別することは事実上不可能です。実際の顧客が含まれる可能性があるので、番号を単純にブロックすることもできません。店の運営は完全に麻痺します。サーバがDDoS攻撃にさらされると、まったく同じことが起こります。ハッカーは本物のように見える複数のマシンから偽のトラフィックを発生させ、サーバ/ネットワーク/Webサイトは否応なく機能停止に陥ります。
DDoS攻撃の主な理由を、いくつか示します。
DDoS攻撃の最終目標はシステムを機能不全にすることですが、目標を達成するための手段は異なる場合があります。DDoS攻撃には、大きく分けて3つのタイプがあります。
アプリケーションレイヤは、サーバがクライアントからのリクエストに対する応答を生成する場所です。例えば、ユーザがブラウザでhttp://www.xyz.com/learning/と入力すると��サーバにlearningページを要求するHTTPリクエストが送信されます。サーバはページに関連するすべての情報をフェッチして、応答としてパッケージ化し、ブラウザに送り返します。
この情報のフェッチとパッケージ化がアプリケーションレイヤで実行されます。アプリケーションレイヤ攻撃は、ハッカーがさまざまなボット/マシンを使用してサーバに同じリソースを繰り返しリクエストすることで発生し、最終的にサーバを機能不全に陥らせます。
アプリケーションレイヤ攻撃の最も一般的なタイプは、HTTPフラッド攻撃です。この攻撃は、犯罪者がさまざまなIPアドレスを使用してサーバにさまざまなHTTPリクエストを送信し続けます。例えば、サーバにPDFドキュメントの生成を繰り返し要求したりします。リクエストのたびにIPアドレスとその他のIDが変更されるので、サーバは攻撃されていることを検出できません。
プロトコル攻撃は、サーバのリソースや、ファイアウォール、ルーティングエンジン、ロードバランサなどのネットワークシステムのリソースを使い果たさせようとします。プロトコル攻撃の例はSYNフラッド攻撃です。
2台のコンピュータが安全な通信チャネルを開始する前に、TCPハンドシェイクを実行する必要があります。TCPハンドシェイクは、2台が予備情報を交換するための手段です。SYNパケットは、一般的にTCPハンドシェイクの最初のステップであり、クライアントが新しいチャネルを開始したいことをサーバに示します。
SYNフラッド攻撃では、攻撃者はそれぞれがスプーフィングされたIPを含む大量のSYNパケットでサーバを溢れさせます。サーバは各パケットに応答し(SYN-ACK経由)、ハンドシェイクを完了するようにクライアントに要求します。しかし、クライアントは応答しないので、サーバは待ち続けます。結局、あまりにも多くの応答をあまりにも長く待ったあと、サーバはクラッシュします。
ボリューム攻撃は、サーバの帯域幅を完全に使い果たすほどの大量のトラフィックでサーバを攻撃することで実行されます。ボリューム攻撃の最も一般的な例は、DNSアンプ攻撃です。
この攻撃では、犯罪者がDNSサーバに、ターゲットのスプーフィングされたIPアドレスを使用してリクエストを送信します。DNSサーバはその応答をターゲットサーバに送信します。これが大規模で行われると、大量のDNS応答によってターゲットサーバに大規模破壊がもたらされる可能性があります。
DDoS攻撃を阻止できるようにするには、最も一般的な症状を知っている必要があります。
DDoS攻撃を特定したら、迅速に行動することが重要です。これにより、深刻なダウンタイムを防げる機会を得られるからです。じっくり検討していると、サーバはクラッシュし始め、完全に回復するまでに何時間も要する可能性があります。
DDoS攻撃の軽減に関して最も難しい点は、正当なトラフィックに影響を与えずに行うことがほとんど不可能なことです。これは、攻撃者が偽のトラフィックを本物に見せかけるために相当な労力をかけているからです。それでも、いくつか対応方法があります。
GDPRによると、侵害が人々の権利と自由にリスクをもたらす場合、プライバシー監視機関(ICO)に通知する必要があります。リスクの可能性が低いと判断した場合は、報告する義務はありません。ただし、侵害を報告しないことを決定した場合、後で正当化を求められる可能性があるので、その決定を文書化する必要があります。
アクティブなDDoS攻撃を阻止することは非常に難しく、正当なユーザに影響を与える可能性があります。このため、予防的アプローチを取ることが重要です。以下の予防的措置に加えて、緊急DDoS攻撃対応計画を作成する必要があります。最高の防御でさえも高度な攻撃に屈する場合があるからです。