大量のアクセスや負荷を集中させてサービスを停止させる攻撃。
DoS攻撃(Denial of Service attack=サービス妨害攻撃)とは、大量のアクセスや負荷を集中させてサービスを停止させる攻撃のことです。サーバ(=サービスを提供するコンピュータ)に処理しきれないほどの要求を送りつけ、本来の利用者が使えない状態に追い込みます。
身近な例で考えると、1つの店に偽の客が押し寄せて行列を作り、本当の客が入れなくなる状態に似ています。商品を盗むわけではないのに、店は機能しなくなります。DoS攻撃も情報を盗むのではなく「使えなくする」ことを狙う点が特徴です。
上のツールで▶ボタンを押すと、攻撃者が大量のリクエストを送り、サーバの負荷が上がってやがてサービスが停止し、正常な利用者がアクセスできなくなる流れを確認できます。
DoS攻撃は、サーバの処理能力の上限を超える要求を送りつけることで成立します。サーバが1秒間に処理できる件数には限りがあるため、それを上回る量を浴びせれば、応答が遅れたり止まったりします。
代表的な手口には次のようなものがあります。
・大量リクエスト型:Webページの取得要求などを短時間に大量に送り、処理を飽和させる
・資源枯渇型:接続を中途半端なまま大量に作り、CPUやメモリといった資源(=処理に使う部品)を使い果たさせる
・帯域消費型:巨大なデータを送りつけ、通信回線(=データの通り道)を埋め尽くす
いずれも共通するのは、正常な要求と見分けがつきにくい点です。だからこそ単純に「拒否すればよい」とはいかず、対策が難しい攻撃として知られています。上のツールで負荷ゲージが上限まで埋まる様子を確認してみてください。
DoS攻撃への対策は、怪しい通信を見つけて遮断することと、多少の負荷増では止まらない余裕をもたせることの両面で行います。
主な対策は次のとおりです。
・通信量の監視と遮断:異常に多いアクセスを検知し、ファイアウォールやIPS(=侵入防止システム)で遮断する
・レート制限:1つのIPアドレス(=ネット上の住所)からのアクセス回数に上限を設ける
・処理能力・帯域の増強:サーバや回線に余裕をもたせ、ある程度の負荷に耐えられるようにする
・負荷分散:複数のサーバに処理を振り分け、1台に集中しないようにする
ビルの入口に警備員を立て、明らかに迷惑な人だけを通さないようにするイメージです。なお、DoSはログインを破る攻撃ではないので、パスワードを強くしても防げません。攻撃の種類に合った対策を選ぶことが大切です。
DoS攻撃をさらに大規模にしたものがDDoS攻撃(Distributed DoS=分散型サービス妨害攻撃)です。DoSが1台から攻撃するのに対し、DDoSは乗っ取った多数のコンピュータ(踏み台)から一斉に攻撃します。
両者の違いは次の点に表れます。
・攻撃元の数:DoSは1台、DDoSは多数(ボットネット=乗っ取られた機器の集まり)
・遮断のしやすさ:DoSは送信元を特定して止めやすいが、DDoSは発信元がバラバラで見分けにくく止めにくい
・規模:DDoSのほうが桁違いに大量の通信を浴びせられる
身近な例で考えると、DoSは1人が何度も電話をかけて回線をふさぐイメージ、DDoSは無関係な大勢に一斉に電話させるイメージです。かけてくる相手がバラバラなぶん、DDoSのほうが「誰を止めればよいか」が分からず対処が難しくなります。
情報セキュリティでは、守るべき性質を頭文字で CIA と呼びます。機密性(C)・完全性(I)・可用性(A)の3つです。DoS攻撃が脅かすのは、このうち可用性(使いたいときに使えること)です。
3つの性質とDoSの関係を整理すると、次のようになります。
・機密性:情報が漏れないこと → DoSは情報を盗まない
・完全性:情報が改ざんされないこと → DoSは書き換えない
・可用性:必要なときに使えること → DoSはこれを奪う
だからDoSの被害は「データが盗まれた・壊れた」ではなく、「サービスが止まって使えない」という形で現れます。対策も、情報を隠す・守る系ではなく止まらないようにする系(処理能力の増強・通信の遮断・負荷分散)が中心になります。金庫の中身は無事でも、店のシャッターを塞がれて営業できない状態だと考えると分かりやすいです。