DDoS攻撃の対策を考えてみる » 履歴 » リビジョン 2
リビジョン 1 (sylow castle, 2018/07/08 01:28) → リビジョン 2/3 (sylow castle, 2018/07/08 01:37)
# 金銭的DDoS攻撃の対策を考えてみる ### 背景 仕事で考えなきゃいけなくなった。[とりあえず試算もしてみた](https://www.sylow-castle.work/redmine/projects/public/wiki/DDoS%E6%94%BB%E6%92%83%E3%81%AE%E9%87%91%E9%8A%AD%E7%9A%84%E6%90%8D%E5%AE%B3%E3%82%92%E8%A9%A6%E7%AE%97%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B)し諦めて考えてみる。 仕事で考えなきゃいけなくなった。とりあえず試算もしてみたし諦めて考えてみる。 ## 金銭的DDoS? 通常のDDoS攻撃はサービス断を狙ってくる。パブリッククラウドを利用したらこれは解消されるかもしれない。 通常のDDoS攻撃はサービス断を狙ってくる。パブリッククラウドを利用したらこれらは解消されるかもしれない。 ただ、ネットワークの使用量やリクエスト数に対する従量課金があるからその費用が発生する。この金銭的被害を減らしたい。 ただ、ネットワークの従量課金やリクエスト数に対する従量課金があるのでそこの金銭的被害を減らしたい。 ### 攻撃手法と切り口 まずは攻撃方法を知らないと対策建てられん。以下から引用: https://www.shadan-kun.com/blog/measure/1426/#05 > DDoS攻撃の概要 > SYNフラッド攻撃、FINフラッド攻撃 > ACKフラッド攻撃 > UDPフラッド攻撃 > > UDPフラッド攻撃 — ランダム・ポート・フラッド攻撃 > UDPフラッド攻撃 — フラグメント攻撃 > > HTTP GET/POST Flood攻撃 > Slow HTTP DoS Attack > Connection Exhaustion攻撃 > Stream Flood攻撃 > DNS Flood attacks(DNSフラッド攻撃) > #### レイヤー SYNフラッド、ACKフラッド、UDPフラッドなどはL4を狙った攻撃。 HTTP GET/POST Flood、Slow HTTP DoSなんかはHTTPとついている通りL7を狙った攻撃。 L4の攻撃だとWebアプリ側まで到達しないのでファイアウォールとか使ったネットワーク的な対処がメインになる感じ。 L7の攻撃だとTCP的には正常なのでWAF入れるとか、Webサーバの設定とかそこら辺が登場してくる感じ。 #### 洪水と旱魃 どっちもリソースの枯渇を狙ってくるのには違いないけど、面白いことに2種類ある。技術的には、 「大量の要求を送り付けて相手の資源枯渇させる」パターンと、「長期間使い続けて資源を相手の資源を枯渇させる」パターン。 前者のパターンは〇〇フラッド攻撃全般が該当する。後者のパターンはSlow HTTP DoSが該当かな。HTTPだけじゃなくてTCPのパターンもあったはず。 今回問題になるのは前者かな、後者はトラフィックは自体が少なくなる金銭的な被害は少なくなる。 ### ネットワークとサーバ 通常はサーバを狙ってくる攻撃だけど、その前段にあるネットワークが先に枯渇するケースもある。 ロードバランサやファイアウォールが高級でも接続されてる回線がしょぼいと意味がない。 今回はパブリッククラウドが想定なのでどっちも枯渇はしない。枯渇するのはお財布。 ## ポイントと対策 L4以下の攻撃はWAF(AWS WAF、GCP Cloud Armor)なんかを挟むことで対処できそう。パブリッククラウド事業者が元々敷いてるセキュリティで対処してくれたりするっぽい。 金銭的に問題になるのはDNSやHTTP POST Floodを利用するケース。なんでかっていうと、パブリッククラウドの課金は * 利用回数・リクエスト回数 * ネットワーク使用容量・ネットワークの使用帯域 に対して発揮されるから。大量のDNSリクエストとか、大量データの送付とかされるとそれが金銭的な攻撃になる。 ネットワークの料金はおおざっぱに言って「クラウドの内側同士は無料」、「外側が関わると有料」なケースが多い。被害を減らすには通信自体を減らす。 なので以下が主な対策になるかと思う。 * 受け口のトラフィック料金を安くする。 * 敵対的なトラフィックは受け口に近い部分で遮断する。 前者はサービス・料金表とにらめっこするしかないかなぁ。関係してくるのはDNS、CDN、ロードバランサ、インターネットからの接続を受けるサーバあたりだと思う。 後者は、例えばサービスへのトラフィックがCDN→ロードバランサ→サーバって受け渡されるとすると、CDN部分で締め出せばトラフィックがロードバランサまで到達しなくなるから、ロードバランサの料金が増えなくなる。 ### まとめ やれそうなことは。 * 課金アラームの設定。検知しなければそもそも対処できない。 * L4以下はクラウド事業者で弾いてもらうような構成 * WAFを適応的に(アクセス過多なIPを検知したら、そのイベントでWAFルールを自動で変更(ブラックリストに追加)) * CDNを利用する。 CDNの利用する。 * クラウド側ネットワークのファイアウォールを設定 * 金銭補償サービスの導入(ひらたく言えばサイバー保険) * 受け口となるサービスを解除(当然サービス断) とかだろうか。根絶とか被害ゼロを目指すのは不可能だと思うなぁこれ…。 http://www.digitalattackmap.com/ ただ、こういうの見ると、DDoS攻撃はL4以下を狙うのが主流っぽいのでこれらを排除するだけでも被害にあう可能性が減るんじゃないかなぁ。ボスにはそう伝えよう。 ただ、こういうの見ると、DDoS攻撃はL4以下を狙うのが主流っぽいのでこれらを排除するだけでも被害にあう可能性が減るんじゃないかなぁ。 ## 参考 攻撃手法の解説: https://www.shadan-kun.com/blog/measure/1426/#05 DDoS攻撃の可視化サービス: http://www.digitalattackmap.com/