サービス妨害攻撃 (DoS)
サービス妨害攻撃 (DoS) とは何ですか?
サービス妨害攻撃 (DoS)システムの帯域・処理能力・メモリ・アプリケーション資源を枯渇させ、正当な利用者がサービスを利用できなくする攻撃。
DoS 攻撃は、サーバー・アプリ・回線・機器といった単一の標的を、1 つまたは少数の送信元から過負荷に追い込み、サービスを劣化または停止させます。多数の分散ホストを動員する DDoS とは異なり、単純な DoS は非対称性に依存します。攻撃者のわずかな労力が、被害者に膨大な処理を強います。
手口はスタック全体に及びます。体積型フラッドは帯域を飽和させます。プロトコル乱用は有限の状態を枯渇させ、SYN フラッドは半開ハンドシェイクで接続バックログを埋め尽くします。SYN cookies はまさにこのために考案されました。低速攻撃は量ではなく粘りを突きます。Slowloris(Robert Hansen、2009)は不完全な HTTP ヘッダーを少しずつ送り、ほぼ帯域を使わずに Apache のようなスレッド型サーバーの全ワーカースレッドを占有します。アプリケーション層のリソース枯渇は 1 件のリクエストを不釣り合いなコストに変えます。高負荷クエリ、zip/XML 爆弾の展開、あるいは ReDoS——攻撃者制御の入力で破滅的バックトラックする正規表現が 1 リクエストあたり数秒 CPU を消費します。アルゴリズム的計算量攻撃(2011 年 28C3 のハッシュフラッディング公表など)は多くの Web フレームワークのハッシュテーブルを最悪計算量 O(n²) に陥れました。Ping of Death、Teardrop、LAND といった不正パケットによる古典的クラッシュや、ローカルの fork bomb もこの系統に含まれます。
防御は重ねて講じます。レートリミットと接続タイムアウト、SYN cookies、リクエストのサイズ・時間予算、容量設計と自動スケール、上流/Anycast でのフィルタリング、WAF ルール、ハッシュシードのランダム化、そして超線形な処理を招く入力に対するコード堅牢化です。
flowchart TD
A[攻撃者: 1 台か少数のホスト] --> B{どの資源を枯渇?}
B -->|帯域| C[体積型フラッド]
B -->|接続状態| D[SYN フラッド - 半開ソケット]
B -->|ワーカースレッド| E[Slowloris - 低速な部分リクエスト]
B -->|CPU / メモリ| F[ReDoS, zip 爆弾,<br/>ハッシュフラッディング, 高負荷クエリ]
B -->|クラッシュ欠陥| G[Ping of Death / Teardrop / LAND]
C --> H[正当な利用者が<br/>サービスを使えない]
D --> H
E --> H
F --> H
G --> H
H --> I[防御: レートリミット, SYN cookies,<br/>タイムアウト, WAF, 自動スケール, 堅牢化]● 例
- 01
1 台のホストから Slowloris 接続を維持して Web サーバーのワーカースレッドを占有し、新規クライアントを受け付けられなくする。
- 02
脆弱性により、1 件の HTTP リクエストで数 GB のメモリを消費させ、サービスをクラッシュさせる。
● よくある質問
サービス妨害攻撃 (DoS) とは何ですか?
システムの帯域・処理能力・メモリ・アプリケーション資源を枯渇させ、正当な利用者がサービスを利用できなくする攻撃。 サイバーセキュリティの 攻撃と脅威 カテゴリに属します。
サービス妨害攻撃 (DoS) とはどういう意味ですか?
システムの帯域・処理能力・メモリ・アプリケーション資源を枯渇させ、正当な利用者がサービスを利用できなくする攻撃。
サービス妨害攻撃 (DoS) からどのように防御しますか?
サービス妨害攻撃 (DoS) に対する防御は通常、上記の定義で述べたとおり、技術的統制と運用上の実践を組み合わせます。