「突然サイトが落ちた」「サービスにアクセスできない」というトラブルに直面したとき、DDoS攻撃が原因だったというケースは決して珍しくありません。大企業だけの話と思いがちですが、中小企業や個人が運営するサービスも標的になる時代です。
この記事では、DDoS攻撃の仕組みと種類、実際の防御手順について、現場で使えるレベルで解説します。「攻撃を知ることで、守り方が見えてくる」というスタンスで読み進めてください。

DDoS攻撃とは?(概要・なぜ重要か)
DDoS攻撃(Distributed Denial of Service attack)とは、多数のコンピュータから特定のサーバーやネットワークに対して大量のリクエストを一斉に送りつけ、サービスを停止させる攻撃です。DoS攻撃(1台から行う)を大規模・分散型にしたものがDDoSと覚えておくとよいでしょう。
攻撃者は、マルウェア(悪意あるソフトウェア)に感染させた多数のコンピュータ(ボットネット)を遠隔操作し、一斉攻撃を仕掛けます。被害を受けたサービスは、正規のユーザーからのアクセスも処理できなくなり、実質的に「閉鎖状態」に追い込まれます。
IPAの報告によると、DDoS攻撃による被害は中小企業にも広がっており、ECサイトや問い合わせフォームを持つ企業が標的になるケースが増えています。「うちは小さいから大丈夫」という過信は禁物です。
DDoS攻撃の仕組み(敵を知る)
DDoS攻撃がどのように実行されるか、攻撃の流れを順に見ていきましょう。
1. ボットネットの構築
攻撃者はまず、フィッシングメールやソフトウェアの脆弱性を利用して、多数のコンピュータにマルウェアを仕込みます。感染したコンピュータ(ボット)は攻撃者の指令に従って動く「踏み台」になります。被害者のPCが知らない間に加害者側になっていることもあります。
2. 攻撃の指令と実行
攻撃者はC&Cサーバー(コマンド&コントロールサーバー)からボットに一斉攻撃の指令を送ります。数千〜数万台のボットが一斉に標的サーバーへリクエストを送りつけるため、通常のトラフィックとの区別が難しくなります。
3. 主なDDoS攻撃の種類
DDoS攻撃には複数の手口があります。代表的なものを整理します。
| 攻撃の種類 | 手口の概要 | 狙われる層 |
|---|---|---|
| ボリューム攻撃 | 大量のパケットで帯域幅を使い尽くす | ネットワーク層 |
| プロトコル攻撃(SYN Flood) | TCPのハンドシェイクを完了させずにリソースを枯渇させる | トランスポート層 |
| アプリケーション攻撃(HTTP Flood) | 正規に見えるHTTPリクエストを大量に送信してWebサーバーを過負荷にする | アプリケーション層 |
| 増幅攻撃(DNSリフレクション) | DNS・NTPサーバーを悪用して攻撃トラフィックを増幅させる | ネットワーク層 |
特にHTTP Flood(アプリケーション層攻撃)は通常のアクセスと見た目が似ているため、検出が難しく、Webアプリを持つ中小企業にとっても脅威となっています。

DDoS攻撃への具体的な防御手順
1. CDNとDDoS対策サービスを活用する
最も効果的な対策の一つが、CDN(コンテンツデリバリーネットワーク)の活用です。Cloudflareなどのサービスは、DDoS対策機能を標準で備えており、攻撃トラフィックをエッジサーバーで吸収・遮断します。
無料プランでも基本的なDDoS防御が利用でき、中小企業でも導入しやすいのが特徴です。
# Cloudflare利用時のDNS設定(例) # ドメインのAレコードをCloudflareのプロキシ経由に設定する # → 実際のサーバーIPが隠蔽され、直接攻撃を受けにくくなる # 管理画面: DNS設定でプロキシ有効(オレンジ色の雲マーク)を確認
2. レートリミットを設定してリクエスト数を制限する
WebサーバーにIPアドレス単位のリクエスト制限(レートリミット)を設定することで、一部のフラッド攻撃を軽減できます。Nginxでの設定例を示します。
# /etc/nginx/nginx.conf の http{} ブロック内に追加 limit_req_zone $binary_remote_addr zone=req_limit:10m rate=10r/s; # サイトの設定ファイル(/etc/nginx/conf.d/your-site.conf)内 server { location / { # 1IPアドレスあたり秒10リクエストを上限に設定 # バースト20まで許可(超過はエラーを即返す) limit_req zone=req_limit burst=20 nodelay; } }
3. ファイアウォールでACLを設定して不審なIPを遮断する
攻撃元のIPレンジが判明している場合は、ファイアウォールでブロックします。LinuxのiptablesやfirewalldのIPセットを使うと、大量のIPを効率よく管理できます。
# firewalld でIPセットを使った一括ブロック(例) # IPリストファイル(blocked-ips.txt)を作成しておく # IPセット作成 sudo firewall-cmd --permanent --new-ipset=blocked_ips --type=hash:ip # IPアドレスを一括追加 while read ip; do sudo firewall-cmd --permanent --ipset=blocked_ips --add-entry=$ip done < blocked-ips.txt # IPセットにマッチするトラフィックをDROP sudo firewall-cmd --permanent --add-rich-rule='rule source ipset=blocked_ips drop' sudo firewall-cmd --reload
4. トラフィック監視でいち早く異常を検知する
攻撃を受けていることに気づくのが遅れると、被害が拡大します。普段からアクセスログやネットワークトラフィックを監視し、異常なスパイクを検知できる仕組みを整えておきましょう。
・Netdata / Zabbix: サーバーリソースのリアルタイム監視、閾値アラート
・GoAccess: Nginxアクセスログのリアルタイム分析(過剰なリクエスト元を発見)
・Cloudflareダッシュボード: CDN利用時はトラフィック統計で攻撃の痕跡を確認可能
中小企業でも今日からできること
DDoS対策は「お金をかければかけるほどよい」ものですが、限られた予算でも有効な施策はあります。
・Cloudflare無料プランの導入: DNSをCloudflare経由にするだけで基本的なDDoS防御が有効になります
・サーバーIPの隠蔽: CloudflareのプロキシをONにしてサーバーの実IPを公開しない
・Webサーバーのレートリミット設定: NginxやApacheに1〜2行追加するだけで実装可能
・ホスティング事業者のDDoS対策を確認: 利用中のVPSやレンタルサーバーにDDoS緩和機能があるかチェックする
・インシデント対応フローの整備: 攻撃を受けたとき「誰が何をするか」をあらかじめ決めておく
Linuxサーバー側のファイアウォール設定については、姉妹サイトLinuxMaster.JPでも詳しく解説しています。
よくある誤解と注意点
【注意1】DoSとDDoSは別物
DoS攻撃は1台のコンピュータから行うため、攻撃元のIPをブロックすれば対処できます。一方、DDoSは分散した多数のIPから行われるため、単純なIPブロックでは対処しきれません。同じ「サービス拒否攻撃」でも対策が異なる点に注意が必要です。
【注意2】「自分はターゲットにならない」は危険な思い込み
DDoS攻撃の動機は競合他社による妨害、ハクティビズム(主義主張に基づく攻撃)、金銭的恐喝など様々です。規模の小さなサービスが「攻撃の練習台」として狙われるケースもあります。
【注意3】完全な防御は存在しない
十分な規模の攻撃に対して100%防御できる手段はありません。大切なのは「いかに被害を最小化するか」「いかに早く復旧できるか」という視点で対策を組み合わせることです。
【注意4】自社のサーバーがボットとして加害者になることもある
マルウェアに感染したサーバーが攻撃の踏み台(ボット)として悪用される可能性があります。定期的なマルウェアスキャンとOS・ソフトウェアのアップデートは、自分を守るだけでなく他者への加害を防ぐためにも重要です。

本記事のまとめ
| 対策 | 効果 | 難易度 |
|---|---|---|
| Cloudflare(無料プラン)の導入 | DDoS緩和 + IPアドレス隠蔽 | 低(設定30分) |
| Nginxレートリミット設定 | HTTP Flood攻撃の緩和 | 低(設定2〜3行) |
| firewalldのIPセットブロック | 既知の攻撃元を遮断 | 中(スクリプト作成が必要) |
| トラフィック監視ツールの導入 | 攻撃の早期検知 | 中(ツール選定・設定) |
| インシデント対応フローの整備 | 被害拡大の防止・迅速な復旧 | 低(フロー作成のみ) |
DDoS攻撃への備えは「完璧な防御」ではなく、「被害を最小化する層状の防御」を積み上げることが現実的なアプローチです。まずはCloudflareの無料プランとレートリミット設定から着手してみてください。
自社サービスのセキュリティ、見直すきっかけはありましたか?
「攻撃を受けてから対策する」では遅すぎます。情シス1人体制でも実践できるセキュリティ対策を、体系的に学びたい方へ。
正しいセキュリティ知識を体系的に身につけたい方へ、メルマガで実践的なセキュリティ対策ノウハウをお届けしています。


コメント