はじめに
最近よく耳にするDos攻撃。情報工学を学ぶ学生として必要最低限のことは整理しておこうと思い、ここに備忘録として記しておくことにしました。
参考資料
情報処理教科書 情報処理安全確保支援士2019版-翔泳社
Dos攻撃とは
Dos攻撃には様々な種類があり、近年多く見かけるものとして挙げられるのが「大量にパケット(データ)を送信することによってネットワーク上の特定帯域をパンクさせるもの」です。その他の定義としては「コンピュータのCPUやメモリなどのリソースを高負荷状態やオーバーフロー状態にするもの」、「セキュリティホールを利用して相手のコンピュータを強制終了させるようなもの」があります。
Dos攻撃の中でもターゲットがネットワーク帯域であるものと特定のシステム・システムリソースであるものに分類することができます。
また、近年ではこれら複数のターゲットを同時に攻撃するマルチベクトル型DoS攻撃が多くなってきています。(ネットワーク帯域とシステムリソースの両方に高負荷を与えるなど。)
SYN Flood攻撃
TCP通信の接続開始要求(SYN)を大量に送信することで相手のサーバを攻撃するものです。
送信元を偽ったSYNパケットを大量に送信することによって、サーバは接続許可(SYN/ACK)を返信したのち一定時間の待機時間に入る動作を何度も行う必要が出てくるため、サーバはやがてシステムリソースを使い果たし、正常な稼働が困難になります。
<対策>
- SYNクッキー機能をもつOSやファイアウォールを使用する。
- SYNを受けとった後のコネクション確率時の待機時間を短縮する。
- SYNパケットの帯域制限を行う。
ICMP Flood攻撃
標的に対してデータ量の大きいICMP echo request(ping)を大量に送信することで相手のサーバを攻撃するものです。
ICMPはコネクションレスであり、送信元の偽造が容易なため、送信元の特定が困難となります。同じICMP echo requestを利用した攻撃としてsmurf攻撃があります。
<対策>
- ICMPパケットの遮断を行う。
- ICMPパケットの帯域制限を行う。
UDP Flood攻撃
標的のUDPポートにデータ量の大きいパケットを大量に送信することで相手のサーバを攻撃するものです。標的がファイアウォールなどのネットワーク機器の場合はデータ量が非常に小さいパケットを大量に送信する手法が使われることがあります。ICMP同様、コネクションレスであり、送信元の偽造が容易なため、送信元の特定が困難となります。
<対策>
- 不要なUDPサービスは停止する。
- 不要なUDPサービスへのアクセスは制限する。(ファイアウォールによるフィルタリング)
- UDPパケットへの帯域制限を行う。
connection Flood攻撃
標的のTCPポートに対して、立て続けにコネクションを確立し続けることで相手のソケットを占拠するものです。標的のコネクション数に一定の制限がある場合、この攻撃によってソケットが完全に占領されてしまう恐れがあります。コネクション数に制限がない場合でもシステムリソースを食い尽くすまでコネクションを確立し続けてしまいます。これは攻撃者と標的がコネクションを確率するため、送信元の偽造は不可能に近い反面、攻撃の規模によっては標的に大きな損害を与える攻撃です。
<対策>
- ソケットオープン数を増やす。
- 同じIPアドレスからの同時接続数を制限する。
- 送信元アドレスからのパケットを遮断する。
DDos攻撃
インターネット上にある複数のサイトに予め仕掛けておいた攻撃プログラムから一斉にDos攻撃を仕掛けることで標的のネットワーク帯域を溢れさせるものです。この攻撃はボットネットによって実行されるパターンが多いです。
<対策>
- 帯域の広いネットワークを使用する。
- サーバと経路上のネットワーク機器の処理能力を強化する。
- 明らかに送信元アドレスが偽造されているものは遮断する。
- CDNサービスを利用する。
EDos攻撃
ストレージ容量やトラフィック量に対応して課金されるクラウドの特性を利用して、クラウドを利用する利用者のリソースを大量消費させることで経済的な損失を狙う攻撃です。海外と比べると、日本国内ではクラウド課金サービスの利用者自体が少ないため、被害数も他の攻撃と比べて少ないです。
<対策>
- EDos攻撃による損失を補償しているサービスを選択する。
- 予め課金額に上限を設けておく。
対策のまとめ
- ルータやファイアウォールで不要なパケットは遮断する。
- 帯域の広いネットワークを使用する。
- ネットワーク機器の処理能力は十分なものにしておく。
- ルータやスイッチでプロトコルごとに帯域制限を設定する。
- 事前にDos攻撃のテストを行い、各部分への影響を確認・改善をしておく。
- CDNサービスを利用する。