レート制限 れーとせいげん
ブルートフォース攻撃アカウントロックDoS攻撃スロットリングAPI保護不正ログイン対策
レート制限について教えて
簡単に言うとこんな感じ!
「一定時間に何回までしかできないよ」ってルールを設けることだよ!たとえばログインを1分間に5回以上失敗したらブロック、みたいな感じ。パスワードを総当たりで試すハッカーを「多すぎ!」って弾く仕組みなんだ!
レート制限とは
レート制限(Rate Limiting)とは、ある操作を「一定時間内に実行できる回数」に上限を設ける仕組みのことです。たとえば「ログイン試行は1分間に5回まで」「APIへのリクエストは1時間に100回まで」といったルールを設定し、それを超えた場合はエラーを返したり、一定時間アクセスをブロックしたりします。
セキュリティの文脈では特に、パスワードを大量に試して突破しようとする「ブルートフォース攻撃」や「パスワードスプレー攻撃」への対策として重要です。攻撃者がプログラムを使って1秒間に何千回もパスワードを試しても、数回でブロックされれば攻撃が成立しなくなります。またAPIサービスでは、特定ユーザーによるサーバー過負荷(DoS的な使い方)を防ぐ目的でも広く使われています。
レート制限は「完璧な防御」ではなく、攻撃者が試行できる回数を現実的に無意味になるまで絞り込む「速度を落とさせる防御」です。他のセキュリティ対策(多要素認証・CAPTCHAなど)と組み合わせることで、はじめて強力な防御になります。
レート制限の主な種類と設定パターン
| 種類 | 対象 | 具体例 |
|---|---|---|
| ログイン試行制限 | 認証エンドポイント | 5回失敗で15分ロック |
| IPアドレスベース | 同一IPからのアクセス | 1分間に10リクエストまで |
| アカウントベース | 同一ユーザーID | 1時間に50回のAPI呼び出しまで |
| グローバル制限 | サービス全体 | 全体で毎秒1万リクエストまで |
| エンドポイント別 | 特定のURL・操作 | パスワードリセットは1日3回まで |
覚え方:「速度を下げて、攻撃を防げ」
レート(Rate)=速度・頻度。「速度に制限をかける」というイメージで覚えましょう。自動車のスピードリミッターと同じで、「それ以上出るのを物理的に止める」装置だと考えると直感的です。
ブロック戦略の比較
| 戦略 | 内容 | 長所 | 短所 |
|---|---|---|---|
| ハードブロック | 上限超過で即アクセス拒否 | シンプルで強力 | 正規ユーザーも誤ってブロックされることがある |
| スロットリング | 超過後はレスポンスを遅くする | ユーザー体験を保ちやすい | 攻撃者も低速で試行を続けられる |
| CAPTCHAへ誘導 | 超過後は人間確認を要求 | 正規ユーザーへの影響が少ない | 実装コストがかかる |
| 段階的ロック | 失敗回数に応じてロック時間を延長 | バランスが良い | 設定が複雑になる |
歴史と背景
- 1990年代後半〜2000年代初頭:ブルートフォース攻撃によるパスワード解読が問題になりはじめる。初期のWebシステムはログイン試行回数に制限がなく、自動化ツールで簡単に突破されるケースが増加。
- 2000年代中盤:多くのWebアプリケーションフレームワークが「アカウントロック」機能を標準搭載しはじめる。ただし「ロックアウト攻撃(意図的に他人のアカウントをロックさせる)」という悪用が問題化。
- 2010年代:APIエコノミーの拡大に伴い、APIゲートウェイでのレート制限が標準的な設計要件に。AWSやGCPなどのクラウドサービスがスロットリング機能を組み込み提供。
- 2012年頃〜:パスワードスプレー攻撃(少ない試行回数で大量アカウントを狙う)の台頭により、IPベース・アカウントベースを組み合わせた多層的なレート制限が求められるようになる。
- 2020年代:クラウドWAF(Web Application Firewall)やCDN(Cloudflare等)がレート制限機能を標準提供。設定なしでも一定の保護が受けられる環境が整う。
レート制限と関連する防御技術の全体像
レート制限は、不正アクセスへの対策として使われる複数の仕組みの一つです。それぞれの役割を整理すると:
レート制限 vs アカウントロック:何が違う?
よく混同されますが、アカウントロックとは少し違います。
| 比較軸 | レート制限 | アカウントロック |
|---|---|---|
| 対象 | IPアドレスやAPIキー | ユーザーアカウント |
| ロック解除 | 時間経過で自動解除が基本 | 管理者操作や時間経過 |
| 悪用リスク | 比較的低い | 意図的ロックアウト攻撃に使われることがある |
| 正規ユーザーへの影響 | IPが変わると継続利用可能 | アカウントごとブロックされる |
関連する規格・RFC
| 規格・RFC番号 | 内容 |
|---|---|
| RFC 6585 | HTTPステータスコード 429 Too Many Requests の定義。レート制限超過時に返すべきレスポンスコードを規定 |
| RFC 6749 | OAuth 2.0の仕様。APIアクセストークンに対するレート制限の実装基盤となる |
| RFC 8446 | TLS 1.3。レート制限と組み合わせて通信保護を行う際の基盤プロトコル |
関連用語
- ブルートフォース攻撃 — パスワードを総当たりで試して突破しようとする攻撃手法
- パスワードスプレー攻撃 — 少数のパスワードで大量アカウントを狙う攻撃。レート制限をかいくぐる工夫をしてくる
- 多要素認証(MFA) — パスワード以外の認証要素を追加してアカウントを守る仕組み
- CAPTCHA — ロボットと人間を区別するための画像・チェックボックス式の認証
- アカウントロック — 一定回数のログイン失敗でアカウントを凍結する仕組み
- WAF(Webアプリケーションファイアウォール) — Webへのリクエストをフィルタリングするセキュリティツールでレート制限機能を持つことも多い
- APIゲートウェイ — APIへのアクセスを集中管理する仕組み。レート制限の実装場所として多く使われる
- DoS攻撃 — サービスを過負荷状態にして使えなくさせる攻撃。レート制限で一定程度防御できる