tag:crieit.net,2005:https://crieit.net/tags/DDoS/feed 「DDoS」の記事 - Crieit Crieitでタグ「DDoS」に投稿された最近の記事 2018-11-07T01:20:27+09:00 https://crieit.net/tags/DDoS/feed tag:crieit.net,2005:PublicArticle/14593 2018-11-06T09:29:58+09:00 2018-11-07T01:20:27+09:00 https://crieit.net/posts/Cloudflare-DDoS CloudflareのDDoS攻撃対策を調べてみた <p>CloudflareはCDNだけでなくDDoS対策も行っているというのは知っていたのですが、具体的にどういう機能があるのかよく分かっていなかったので調べてみました。</p> <p>というのも先日からQrunchが攻撃を受けて非常に辛い状態が続いていたようです。個人開発のサービスに攻撃が来ると正直対処のしようがないというのが現実です。サーバーを使っていたりするともう止まるしかありませんし、サーバーレスにしていたら今度はクラウド破産の危険性があります。こういう時はこういったファイアウォールサービスに頼るしかなさそうです。</p> <p>正直こういうことはどのサービスにも起こりうることで、考えれば考える程恐ろしいのでざっとCloudflareのDDoS対策について調べてみました。</p> <h2 id="Firewallの設定"><a href="#Firewall%E3%81%AE%E8%A8%AD%E5%AE%9A">Firewallの設定</a></h2> <p>Firewallの設定画面を開くとSecurity Levelの設定があります。恐らくここが一番シンプルなベースとなるセキュリティ設定項目になりそうです。</p> <p><a href="https://crieit.now.sh/upload_images/e8a79a122784f28ffc9aff2003ba8b425be0dac2f2eb1.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/e8a79a122784f28ffc9aff2003ba8b425be0dac2f2eb1.png?mw=700" alt="Firewall crieit net Alphabrend gmail com s Account Cloudflare Web Performance Security.png" /></a></p> <p>初期設定はMediumとなっています。 Essentially Off から I'm Under Attack! までのレベル設定があり、上から順番に低いレベルのようです。</p> <h3 id="Essentially off"><a href="#Essentially+off">Essentially off</a></h3> <p>最も脅威となる攻撃にのみ対処します。</p> <h3 id="Low"><a href="#Low">Low</a></h3> <p>そこそこ脅威となるアクセスを防御します。</p> <h3 id="Medium"><a href="#Medium">Medium</a></h3> <p>最も脅威となる攻撃とそこそこ脅威となるアクセスを防御します。</p> <h3 id="High"><a href="#High">High</a></h3> <p>14日間に脅威を与えた全ての閲覧者に対して防御を行います。ここからその場限りでなく過去の行動も見ての防御となるようです。</p> <h3 id="I'm Under Attack!"><a href="#I%27m+Under+Attack%21">I'm Under Attack!</a></h3> <p>現在攻撃を受けている場合の防御のようです。全ての閲覧者はサービスにアクセスする前に間に1ページ確認用の画面が表示され、問題ないと判断された場合のみにサービスにアクセスできるというもののようです。</p> <p>Qrunchも現時点の最もひどい状況で利用していたものと思われます。確かにこれであれば連続アクセスが不可能のため、確実に防御はできそうです。そのかわりOGP等も表示できなくなっているようですし、他にも色々と影響がありそうですのでなかなか辛いところではありそうです。</p> <h2 id="その他"><a href="#%E3%81%9D%E3%81%AE%E4%BB%96">その他</a></h2> <p>上記のようなベースの設定以外にもいくつかの機能があります。</p> <h3 id="Firewall Rules"><a href="#Firewall+Rules">Firewall Rules</a></h3> <p>こちらは独自にルールを設けて攻撃を遮断できます。ただ、IP、国等、攻撃者の情報がある程度分かる場合のみに限られそうです。</p> <h3 id="Rate Limiting"><a href="#Rate+Limiting">Rate Limiting</a></h3> <p>おかしな頻度でアクセスしてくるユーザーを遮断できます。軽い設定にしすぎると普通のユーザーも排除してしまいそうですので使う場合はきっちり考えたほうが良さそうです。</p> <p>あとは強力な設定を使いたい場合は有料になるようです。</p> <p>ただこちらもIPを大量に持っている攻撃者の場合は対策が難しいかもしれません。</p> <h2 id="まとめ"><a href="#%E3%81%BE%E3%81%A8%E3%82%81">まとめ</a></h2> <p>その他もいくつか設定がありそうですが、汎用的な設定は他にはなさそうですので、攻撃者の特性を把握しつつ設定を行っていく必要があるのかもしれません。</p> <p>あとは並行してサーバーを強化したり、攻撃しにくい構成にしたりする必要があるのかもしれませんが、個人開発ではなかなか厳しそうです…。個人開発だけでなく、最近は質問箱も攻撃を受けて止まっていたりするようですので、ユーザーや関係者が穏やかな心で見守ってあげるというところが一番重要なのかもしれません。</p> <p>あとは攻撃を受けて止まってしまっても、情報が閲覧できるようにTwitterの公式アカウントや、ステータスだけ確認できるページなどを用意してあげるのが良さそうです。</p> だら@Crieit開発者