DDoS 攻撃はウェブサーバーを標的にします。防ぐには、サーバーに届くリクエストを減らします。
flowchart TD;
A[悪意のあるデバイス]-->|アプリケーションへのリクエスト|CDN;
CDN -->|残りのリクエストを送信|Origin;
subgraph CDN
WAF
Cache
end
A --外部接続を防ぐ---x Origin
リクエストがオリジンサーバーに届く経路は 2 つあります。ウェブアプリケーション経由と、サーバーへの直接接続です。
キャッシュは、よくアクセスされるリソース(画像、CSS ファイル)のコピーを保存します。
リソースがキャッシュされている場合(ユーザーのブラウザー、または CDN(Content Delivery Network)サーバー上)、そのリソースへのリクエストはオリジンサーバーへ行く必要がありません。代わりに、キャッシュが直接リソースを返します。
flowchart TD;
User-->|リクエストを送信|Cloudflare;
Cloudflare-->B>キャッシュ済みコンテンツがある?];
B-->|はい - 要求されたコンテンツ|User;
B-->|いいえ|Origin;
Origin-->|要求されたコンテンツ|User;
DDoS 攻撃の文脈では、キャッシュはオリジンサーバーへ向かうリクエスト数を減らし、サーバーがトラフィックで過負荷になりにくくします。
Web Application Firewall(WAF)は、ウェブアプリとインターネットの間にシールドを作ります。このシールドは着信ウェブリクエストを検査し、不要なトラフィックをフィルタして、多くの一般的な攻撃の緩和に役立ちます。
flowchart TD;
User-->|リクエストを送信|WAF;
WAF-->|リクエストをフィルタ|Application;
Application-->|リクエストを送信|OriginServer;
OriginServer-->|コンテンツを返す|Application;
Application-->|コンテンツを返す|User;
一般に、オリジンサーバーはウェブアプリケーションからのリクエストだけを受け入れるべきです。
これはセキュリティの一般的なベストプラクティスですが、DDoS 攻撃の文脈では特に重要です。ウェブアプリケーションを迂回するトラフィックは、WAF やキャッシュも迂回し、オリジンを圧倒する可能性が高くなります。
sequenceDiagram participant Client as クライアント participant DDoS_Protection_Service as DDoS 防御サービス participant Origin_Server as オリジンサーバー Client->>+DDoS_Protection_Service: リクエスト Note right of DDoS_Protection_Service: フィルタ済みトラフィック DDoS_Protection_Service->>+Origin_Server: リクエスト Origin_Server-->>-DDoS_Protection_Service: レスポンス DDoS_Protection_Service-->>Client: レスポンス Client->>+Origin_Server: 直接接続 Note over Origin_Server: DDoS 攻撃の可能性 Origin_Server-->>-Client: エラーレスポンス