WebサイトやWebサービスを運営する企業は、セキュリティ対策ができていなければなりません。そのためにも、まずはサイバー攻撃について理解しておくことが重要です。本記事では「DoS攻撃」にスポットを当て、その特徴や「DDoS攻撃」との違いなどについて解説します。
DoS攻撃とは?教科書的解説
「DoS」とは「Denial of Service」の略で、「サービス不能攻撃」「サービス妨害攻撃」などと呼ばれるサイバー攻撃の一種です。ターゲットとなるサイトなどに対して、意図的に不正なデータ、あるいは膨大な量のデータを送りつけて攻撃します。これにより、ターゲットが正常に動作できなくすることを狙いとしています。ただ、直接的にはサーバーを攻撃していることになります。
なぜサーバーに対し、このような攻撃をすると機能が止まってしまうのかというと、処理できる能力に限界があるからです。インターネットを利用していれば誰しも経験があるかもしれませんが、サイトにアクセスが集中していると、なかなか処理が進まず閲覧できないことがあります。攻撃を受けているわけではなくても、一時的に多くの人がアクセスしてくるとトラフィックが増大し、大きな負荷がかかってしまうためです。Dos攻撃では、この状態を意図的に再現するために、不正にデータを送りつけます。
攻撃の目的はさまざまです。単に嫌がらせをするために実行することもありますし、競合サイトの邪魔をするため、営利目的で妨害を行うこともあります。また、身代金を要求するための手段として実行されたり、何らかの抗議活動を目的として行われたりすることもあります。このように多様な理由が考えられるため、運営側は上手く対処していかなければなりません。
DoS攻撃には、主に2種類の攻撃方法があります。ひとつは、大量のデータの送りつけや、何らかの処理を連続して繰り返す「フラッド(Flood)攻撃」と呼ばれる方法です。CPUやメモリのリソースを過負荷、あるいはオーバーフロー状態にさせたり、大規模なものでは大量のパケット送信によりネットワーク帯域をあふれさせたりするなども行われます。
送信数が増えるほど大きく影響を受けるため、単純に攻撃者側の規模が大きいほど被害は大きくなってしまいます。しかも、具体的な攻撃手法にもよりますが、発信元のアドレスが偽装されているケースが多いため、簡単には攻撃者の特定ができないという問題もあります。
もうひとつの方法は、サイトやサービスのシステムの脆弱性を突いてダウンさせたり、使えなくしたりする方法です。セキュリティホールを突くことで、OSやアプリを異常終了させるのです。「脆弱性型」の攻撃とも呼ばれます。
DoS攻撃とは?とにかく分かりやすく解説すると
大前提として「サイバー攻撃」とは、「ネットワーク越しにサーバーなどを狙う攻撃」であることをまず整理しておきましょう。ただし、これらを物理的に破壊するのではなく、システム面・機能面に対する破壊活動やデータの窃取などを意味します。
以下では、このサイバー攻撃の一種であるDoS攻撃について、フラッド型・脆弱性型それぞれの攻撃方法をより詳しく解説していきます。
大量のデータを送りつけて不能にする「フラッド型」
DoS攻撃の一手法である「フラッド型」は、「洪水」を意味する「Flood」に由来します。そのため、洪水時における水をデータと捉えてイメージするとわかりやすいでしょう。平時は水量があふれることなく運用できていても、たまたま大雨が降ったり、嵐がやってきたりすると、水位が増して普段の状態では対応しきれない状況に陥ります。これがアクセスの集中した状態です。
別途に水路を設けるなど、何かしらの対応をしなければ洪水が発生し、大量の水によって身動きが取れなくなってしまいます。サーバーも同様に、集中したアクセスに対処しなければ、大量のデータによってトラフィックの振り分けができなくなってしまいます。ここで問題なのが、この洪水が意図的に引き起こされる可能性もあるということです。それがDoS攻撃であり、わざと大量の水を流すようなイメージです。
また、洪水を引き起こすタイプのDoS攻撃にも、手法は色々とあります。主に「SYNフラッド攻撃」「コネクションフラッド攻撃」「UDPフラッド攻撃」などが挙げられます。
「SYNフラッド攻撃」では、攻撃者が「SYNパケット」と呼ばれるものを大量に送りつけます。通常、このパケットを受けたサーバーは、送信者と接続するため反射的にパケットを送り返します。そして、接続を求める側がこれに反応することで、接続が確立します。しかし、攻撃者は接続を要求する最初のパケットのみ送り続けるため、いつまでもサーバーは待たされ、やがてリソースを使い果たしてしまうのです。そうして洪水による身動きが取れない状況を実現します。これは昔からよく使われている手法で、DoS攻撃の代表的な手法といえます。
また「コネクションフラッド攻撃」も、ターゲットとの接続における仕組みを悪用した攻撃です。SYNフラッド攻撃とは異なり、こちらでは実際に接続を確立させます。つまり、接続を求める相手への反応を大量に発生させるのではなく、大量に接続することによって機能を停止させようとしてくるのです。この場合、攻撃をしてきた発信元のアドレスも偽造でない可能性が高いため、かえって攻撃が防ぎにくく被害を受けやすいという特徴があります。
これらに対し「UDPフラッド攻撃」では、サイズの大きなパケットを大量に送り続け、ネットワーク機器に負荷をかけるという特徴を持ちます。
ほかにもさまざまな手法がありますが、まずは簡単に、こういったやり方があると知っておくだけでもよいでしょう。
脆弱性を悪用してサーバーを機能停止させる「脆弱性型」
続いて「脆弱性型」の攻撃について解説します。
まず「脆弱性」そのものについてですが、これはプログラムの設計ミスや不具合が原因となって発生する欠陥、すなわち「バグ」を意味します。この欠陥は狙いどころになってしまうため、脆弱性が残されたまま利用を続けていると、不正アクセスやウイルスの感染を許したり、不正な処理が大量に発生させられたりします。これが脆弱性型のDoS攻撃です。大きな負荷をかけて機能を停止させるという点では、前述のタイプと共通していますが、過剰な負荷をかける方法が異なります。
大量の水を流し込み意図的に洪水を引き起こすのがフラッド型だとすれば、こちらは老朽化したダムや堤防などを破壊し洪水を引き起こすイメージです。必ずしもこのイメージが適合するわけではありませんが、おおよそのイメージとして捉えておくとよいでしょう。
なお、脆弱性を塞ぐには、常にシステムを最新の状態に保つことが大切です。建設当時は安全性の確保されたダムであっても、老朽化や新たな攻撃手法の登場によって、徐々に危険な状態へと変わっていくものです。
また、近年重要視されているのは、事後対応の迅速化です。攻撃の高度化・多様化が進んだことにより、もはや完璧に防ぎきることは困難となっています。そのため、バグなどをなくすことはもちろん重要ですが、事後対応を最適化し、速やかな復旧と損害の最小化を図ることも視野に入れておかなければなりません。
DDoS攻撃とは?DoS攻撃とは何が違う?
DoS攻撃とよく似たものとして「DDoS攻撃」があります。これは「Distributed Denial of Service」攻撃のことで、「分散型サービス拒否攻撃」とも呼ばれます。DoS攻撃を分散して行うことを意味しますが、ターゲットを分散するのではなく、攻撃者を多数用意して実行します。
そもそもDoS攻撃は、大量のデータを送りつけることで成立する攻撃ゆえ、その量が多いほど効果は大きくなります。特にターゲットの規模が大きい場合、1台の端末から多くのデータを送ったとしても、大きな問題とならないことが想定されます。そこで、攻撃を行う端末を多数用意し、大規模な相手に対しても有効に攻撃を実行しようとするのがDDoS攻撃です。
このとき、必ずしも攻撃者所有の端末が利用されるとは限りません。実際、踏み台として数万台もの第三者の端末が利用された事例もあります。利用されるおそれのある端末は何もパソコンだけでなく、インターネットに接続できるものであれば、広くその対象となり得ます。スマホはもちろんIoT機器なども同様に、そのリスクを抱えているのです。
知らず知らずのうちに自分の機器が使われてしまうこともあるため、単にターゲットとされたサイトなどに大きな損害が生じるだけでなく、関係のない人が多数巻き込まれるという特徴もあります。セキュリティツールなども使いつつ、できるだけ被害を最小限に抑えるように努めましょう。
まとめ
DoS攻撃は完全に防ぐことは難しい攻撃ですが、専用の対策ソリューションで対策が可能なです。事前にできる備えはしておくべきでしょう。特に、DDoS攻撃のように規模の大きな攻撃を受けると、アクセスに対する処理能力を高めていても対応しきれないことがあります。過去の手口に万全な準備をしていても、新たな手口で攻撃される可能性もありますので、スムーズな事後対策ができる体制を整えておくことも大切です。
この記事に関するサービスのご紹介
- トピック:
- Imperva
- セキュリティ対策機器
- サイバー攻撃
- ネットワーク
- IT資産/データ