Slow HTTP DoS攻撃

読み:すろーえいちてぃーてぃーぴーどすこうげき / 英語表記:Slow HTTP DoS attack

HTTPの要求の送信や応答の受取りを意図的に遅らせ、Webサーバの接続や処理資源を長時間占有してサービスの利用を妨げるDoS攻撃。少ない通信量でも多数の接続を維持し、正規の利用者の要求を受け付けにくくする。

イマシルちゃんの解説

Webサーバは、利用者からの要求を受け取ったり応答を送ったりする間、接続を管理するための資源を使うんだ。
Slow HTTP DoS攻撃は、このやり取りをわざと引き延ばしてサービスを妨げる攻撃だよ。
例えばHTTPの要求を少しずつ送ると、サーバは残りが届くのを待つことになるの。
応答を受け取る側が極端にゆっくり動く手口もあるよ。
こうした接続を多数保たれると、新しい利用者を受け付ける余裕がなくなることがあるんだ。
通信量が少なくても起こり得るから、待ち続ける接続に資源を使わせすぎない対策が大切なんだね。

より深い解説

定義

Slow HTTP DoS攻撃は、HTTPのリクエストを少しずつ、長い時間をかけて送ることで、Webサーバのセッション(同時に扱える接続)を占有し続けるDoS攻撃である。Webサーバは、リクエストを受け取り終わるまで接続を保持して待つため、接続の上限に達すると、正規の利用者が接続できなくなる。

少ない通信量で攻撃できるので、大量の通信を検知する仕組みでは見つけにくい。

主な手口

手口内容
Slowlorisリクエストのヘッダーを、少しずつ間を空けて送り続け、ヘッダーの終わり(空行)をいつまでも送らない
Slow POST(Slow HTTP POST)大きなContent-Lengthを宣言したうえで、メッセージボディを少しずつゆっくり送る
Slow Readサーバからの応答を、とてもゆっくり受け取る(受信できる量を小さく知らせ続ける)

対策

対策内容
タイムアウトの設定リクエストのヘッダーやボディを受け取り終わるまでの時間に上限を設ける。一定の速度より遅い接続を切る
同時接続数の制限1つの送信元IPアドレスからの同時接続数に上限を設ける
リバースプロキシやロードバランサ前段で接続を受け止め、リクエストを受け取り終わってからWebサーバに渡す
処理方式の見直し1つの接続に1つのプロセスやスレッドを割り当てる方式より、多数の接続を少ない資源で扱えるイベント駆動型のサーバのほうが影響を受けにくい

ほかのDoS攻撃との違い

攻撃特徴
Slow HTTP DoS攻撃少ない通信量で、長時間接続を占有する
SYNフラッド攻撃TCPの接続確立の途中で、大量の接続の準備をさせる
HTTPフラッド攻撃普通のHTTPリクエストを大量に送りつける

実際の試験ではここに出る!全2問

ネットワークスペシャリスト

午前Ⅱ

この用語が出てくる記事

↑