DoS攻撃とは

DoS攻撃とは、意図的にサーバーに負荷をかけてサーバーをダウンさせる、ネットワーク通信を悪用したサイバー攻撃です。サーバーがダウンすることで、DoS攻撃を受けた組織では、ホームページが表示されなくなったり、Webサービスが利用できなくなるといった実害が発生します。 インターネットが普及しはじめた2000年代前半から攻撃の報告が増えており、著名なサービスも攻撃の対象になっています。
DoS攻撃では、攻撃者自身の個人端末を使い、インターネットに公開されているホームページを含むWebサービスへ多量の通信を行います。DoS攻撃といっても複数の攻撃手法があり、通信手法(プロトコル)も多岐にわたります。ここからは、主要な攻撃手法を3つほど紹介します。

ICMPを使ったDoS攻撃

ICMPのecho requestを使ったPingコマンドは、一般的にはサーバーやネットワーク機器の死活監視を行うために利用されます。しかし、ICMPによるリクエストは送信元の偽装が容易なため、DoS攻撃に悪用されるケースがあります。

TCP3ウェイハンドシェイクを使ったDoS攻撃

インターネットで利用されているTCPプロトコルの仕組みを活用したDoS攻撃も存在します。TCPでは「3ウェイハンドシェイク」という仕組みにより、アクセス元とアクセス先が互いに確認し合い、インターネット通信を実現しています。

3ウェイハンドシェイクによる通信の仕組み

自宅のパソコン(A)で、とあるホームページがあるサーバー(B)に3ウェイハンドシェイクで通信開始することを想定します。
①A→BにSYNパケット(通信要求)を送付
②B→AにSYN/ACKパケットを送付
③A→BにACKパケットを送付
①~③の手順が完了後、双方の通信が開始します。
3ウェイハンドシェイクでは、上記の③の応答が無い場合、②の手順が繰り返し行われます。つまり、攻撃者が意図的にACKパケットを送付しない設定をしている場合、Bは永遠とSYN/ACKパケットを送付し続けます、これにより、Bのサーバーのリソースがパンクし、障害が発生します。

ブラウザリフレッシュ機能を使ったDoS攻撃

どのブラウザにも、開いているページをリフレッシュ(更新)する機能があります。一般的にはF5キーを押すことでこの機能を利用できます。F5キーを連打することで、多くの通信リクエストを接続先のサーバーに対して行えるため、DoS攻撃の手法として悪用されます。

DDoS攻撃との違い

DoS攻撃とDDoS攻撃の違いは、攻撃元となる端末の違いで用語が分かれています。
DDoS攻撃は、Distributed Denial of Service attackの略で、日本語的な意味で「分散サービス拒否攻撃」と訳されます。「分散」という言葉から連想できるように、複数の端末から攻撃対象のサーバーに多量の通信を行う手法です。

DoS攻撃対策

上記で紹介しました通り、DoS攻撃ではICMPやTCPなど、正常な通信に使われるプロトコルを悪用し攻撃が行われます。そのため、プロトコルの種類などで検知することが難しく、まずはそのふるまいを検知し、DoS攻撃が疑われる場合はより詳細な分析をするという手順を踏む必要があります。ここからは、その手順を紹介します。

検知

まずDoS攻撃の対策で行うべきなのは検知です。具体的には、DoS攻撃が疑われる挙動がネットワークにないか、ということを検知します。 DoS攻撃が疑われる挙動としては、通信がバースト(異常な量の通信がネットワークで発生している)が発生している場合や、ネットワーク遅延などの障害発生が該当します。 遅延などの障害は、実際に「ネットワーク遅い」などの事象として気づけます。 一方で通信のバーストについては、日ごろから通信量を定期監視していなければ、検知することができません。
つまり、DoS攻撃への対策第一歩は、通信量の定期監視を通して、通信のバーストを検知することです。この監視は、一般的にはSNMPなどの監視用プトロコルと専用ツールを用いて行われます。

分析

DoS攻撃が疑われる挙動を検知したら、次はその挙動が本当にDoS攻撃によるものか分析する必要があります。例えば、DoS攻撃ではなく、OSのアップデートプログラムが多くの社員の端末で一斉に発生し、一時的に通信がバーストしている可能性もあります。ですので、バーストなどのDoS攻撃が疑われる挙動を検知した場合は、そのバーストを分析し本当にDoS攻撃によるものなのかを見極める必要があります。

具体的には、バーストが起こっている間に発生した通信について、その内訳情報を分析します。内訳情報とは、一定期間の通信について、どんなアプリケーション/プロトコルを利用した通信が通信全体のどれだけを占めていたのか、どの送信元IPアドレスからの通信がどれだけ占めていたのか、といった詳細情報になります。例えば、特定のIPアドレスからの通信が継続して多くの割合を占めている場合は、DoS攻撃が疑われます。こういった詳細情報を様々な視点で考慮し、DoS攻撃なのかを結論付けて行きます。

このような通信の詳細分析を行うのによく用いられるものが「フロー」と呼ばれる技術です。 NetFlowやsFlowに代表されるフロー技術は、ネットワーク機器上で動作する機能で、パケットから通信分析に必要なデータを抽出しフローデータというデータを生成します。

このフローデータを専用ツールであるフローコレクタ―というツールで可視化することで、上記で紹介したような通信の詳細分析ができます。 例えば、以下のような詳細な分析を数クリックで実現できます。

フローデータの分析

対応

分析が終了したら、次は対策を実施します。ここでは、判断内容に応じたおすすめの対応を紹介します。

DoS攻撃と判断した場合

ある通信をDoS攻撃と判断した場合は、一般的にその通信の送信元IPアドレスを元に通信の遮断を行います。

DoS攻撃ではないと判断した場合

通信遮断などの対応は必要ありませんが、今後DoS攻撃の被害を受けた場合に備え、DoS攻撃が疑われる挙動を迅速に検知し分析できる運用体制を、継続して確立していくことをおすすめします。
これによりDoS攻撃を受けた場合でも、迅速に必要な対応をすることができます。

低価格フローコレクタ―

ManageEngineではNetFlow Analyzerという低価格フローコレクタ―を提供しています。 年間17.8万円から利用可能で、クリックのみでアプリケーションや送信元/宛先IPアドレス毎などの詳細な通信分析を実現できます。いつ・誰が・どんな通信を・どれだけ行っていたのかという分析を、誰でも簡単に実現できます。