Slow HTTP DoS攻撃

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

HTTPのリクエストを非常にゆっくり送り続けて、Webサーバとの接続を長時間占有し、ほかの利用者が接続できないようにするDoS攻撃。

イマシルちゃんの解説

レストランで席に着いたまま、注文を1分に1文字ずつ、すごくゆっくり伝え続けるお客さんがいたらどうかな?
店員さんはずっとそのお客さんにつきっきりで、ほかのお客さんを案内できないよね。

Slow HTTP DoS攻撃は、それをWebサーバにやる攻撃なんだ。
大量の通信を送らなくても、少しずつ送るだけでサーバを困らせられるのがやっかいなんだよ。

より深い解説

定義

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リクエストを大量に送りつける

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

この用語が出てくる記事

↑