CloudFlareのセキュリティ対策について日本一詳しく解説

セキュリティ
この記事は約11分で読めます。
この記事は、最終更新日(2022-01-16)から1年以上経過しています。
記事の情報が古い可能性があります。ご了承ください。

この記事では、CloudFlareを使用してDDoS(分散型サービス拒否)について、CloudFlareのDDoSプロテクションを回避する攻撃の仕組み、CloudFlareの無料プランでもDDoS攻撃を90%ブロックするファイヤーウォール設定について全部説明します。おそらく日本初です。是非ご覧下さい!

>>私が勉強に使った本

スポンサーリンク

DoS/DDoS攻撃とは?

毎年増加傾向にあるサイバー攻撃の一種であるDoS/DDoS攻撃

この2つは特にウェブサイト管理者,サーバー管理者には切っても切れない存在とまで言える悪名高い攻撃です。

DoS攻撃

DoS攻撃とは1台の発信源から一方的にターゲットサーバーへ負荷を掛ける攻撃です。

日本ではF5アタック何て呼ばれたりします。

この攻撃はデメリットの方が多くて最近はあまり用いられる事は無くなりました。

攻撃者側のメリット

  • 攻撃が簡単

攻撃者側のデメリット

  • IPをブロックされる
  • 身元の特定がされやすい
  • 自分の回線にも高負荷が掛かる
  • キャリアに検知される

そして最も利用されているであろうDoSツールを紹介します。

  • LOIC(10年以上前のソフトウェアです)
  • HULK(Githubでオープンソース公開されている)
  • XOIC(無料で提供されている)

無料で提供されているものはFBIが利用者を追跡する為の囮とも言われています。

この辺りは日本を含むスクリプトキディに使われてるのではないでしょうか。

私が公開している別のウェブアプリにもLOICで攻撃されたログが残っていた事があったので、IPとログを警察とサーバー会社に提供しました。サーバー管理者、ウェブサイト運営者はログをキチンと管理,記録しましょう。

LOICや一部の攻撃ツールにはUA情報にツール名や開発者の名前などが記載されていることが有ります。

F5アタックにはIPブロックして対策する事が可能です。ただ定期的にブラックリストからIPを外す事をオススメします。

理由は動的IPのユーザーが多いからです。動的IPのユーザーをブロックしてしまうとそのIPを使った別のユーザーがサイトへアクセス出来ない問題になってしまいます。

動的IPv4は空きをみんなで使い回してる状態です。

DDoS攻撃

DDoS攻撃とは複数の発信源からサーバーへ負荷を与えるDoS攻撃の進化版です。

この発信源と言うのは様々有ります。

DDoS攻撃の主な発信源

  • BotNet(マルウェアに感染したIoT機器やPCを利用して攻撃をする)
  • VPS(VPSサーバーやProxyサーバーから攻撃する)
  • 嫌がらせ(複数のユーザーでDoS攻撃を実行する)

大企業などセキュリティがしっかりしているサイトへの攻撃に最も使われるのがBotNetです。

BotNetはサイバー犯罪者が好んで利用します。

その理由として挙げられるのは、ダークウェブ上でBotNetが売られているからです。

利用するたびに有料契約するVPSなどと比べて、一度購入してしまえば無料で攻撃に利用出来るからと悪い意味でコスパがいい上に攻撃時の匿名性が高いのが主な要因です。

基本指令者がストップさせるまでは永遠に攻撃が実行されてしまう為「止めて欲しければビットコインを送金しろ」何ていう身代金を要求してくる事もあります。

あと子供でも簡単にDDoSを利用できるのも年々増えている要因です。

DDoSを指定されたサイトへ行う代行サービスが存在します。

自動販売機の様な感覚で中小企業のサイトが閲覧できなくなるレベルの攻撃を買えてしまうのです。

恐ろしい事に月額数千円払えば数百Gbpsの攻撃を実行可能なサービスはゴロゴロ有ります。

中には無料で利用する事が可能なサービスもあるため子供がそう言った業者を利用するケースが多いです。代行業者は匿名性が高いですが、実際は逮捕者もたくさん出て居ます。

代行サービスが摘発されたケースも多くあります。

この様に匿名が高いことを売りにした代行サービスも毎年摘発されています。

CloudFlare DDoS プロテクションとは?

クエリ
クエリ

CloudFlareってあのDNSサーバーで有名な企業?

Anon
Anon

1.1.1.1で有名な企業だね

クエリ
クエリ

その企業がDDoS対策を提供してるの?

Anon
Anon

CloudFlareはCDNサービスがメインなんだ。

Webサイトの高速化,キャッシュ,セキュリティ強化

これらを無料(有料プランあり)で提供してるんだ。

CloudFlare DDoS プロテクションの種類

CloudFlareで利用できるDDoSプロテクションの種類は大きく分けて3種類あります。

  1. JavaScriptチャレンジ(普通)
  2. キャプチャー(強い)
  3. ブロック(強過ぎる)

JavaScriptチャレンジは恐らく一度は目にしたことがあると思います。こんな感じの画面見たことありませんか?

JavaScriptチャレンジの仕組みと回避される仕組み

ユーザーがウェブサイトにアクセスする前に5秒間JavaScriptチャレンジと呼ばれる(上記画像)ページが表示されます。

ではこのJavaScriptチャレンジの仕組みってどうなっているのでしょうか?

まずユーザーはブラウザでサイトにアクセスするとJavaScriptやCookieが有効になっているかをCloudFlareは5秒間の間で検証します。なのでJavaScriptやCookieが無効になっているBotやスクレイピングのアクセスはブロックされてアクセス出来なくなります。要するに5秒間待てる&JavaScript,Cookieなどが有効になっているリクエストは何も問題は無いと判断されてしまう訳です。

ついでにデフォルトではCloudFlareのチャレンジに成功すると30分間はチャレンジが出てこなくなります。一度チャレンジに成功した訪問者は30分間一時的なホワイトリストに登録されるわけです。

その為、この仕組みを悪用したDDoSプロテクション回避するDDoS攻撃が可能になってしまいます。

回避する仕組み(簡単に説明)

HTTPヘッダーを通常ブラウザと同じ物に書き換える➡攻撃の実行前に悪意あるアクセスと判断されない程度で、攻撃させるサーバーでサイトにアクセスする➡︎悪意ある攻撃元のCookieで通行許可証をCloudFlareに発行させます

他にも、JavaScriptを実行できるHeadlessブラウザを使用することでJavaScriptチャレンジを回避することができます。

一度発行してしまえば再度CloudFlareに悪意あるリクエストだと検知されるまではDDoS攻撃が可能になります。

JavaScriptチャレンジを回避する攻撃はDoS攻撃だけとは限りませんので注意。

こうなるとCloudFlareが再検知してブロックするまで待つしか無いのか…と思われますが、攻撃用に取得されたCookieは先ほども言いましたがデフォルトで30分で無効になります。検出されにくい攻撃が続いてたとしても30分でその攻撃はブロックされます。Cookieの有効時間を15分にする方法も有りますがUXが悪くなるのでオススメしません。

キャプチャーの仕組みと回避する方法

キャプチャーはJavaScriptチャレンジよりもDDoS攻撃をブロックするのには向いています。

と言うのもキャプチャーの場合JavaScriptチャレンジにある5秒間待てばアクセス出来る様な安易なものではありません。

キャプチャーは種類が有りますが今回は3種類に分けます。

  1. 画像を選択する認証
  2. 文字を入力する認証
  3. 認証をスキップするもの

が有ります。

画像を選択するチャレンジは結構嫌いな人が多い“Botではないことを証明”するやつです(語彙力)

文字入力認証も同様に人間だけが読み取れる英数字を入力する認証です。

どちらも認証に失敗し続けるとアクセスはブロックされます。

そして気になるスキップですが、これが許可されるのはIPがCloudFlareのブラックリストに登録されていない、以前にもアクセスした事があるユーザーでホワイトリストに登録されている場合のみです。一瞬チャレンジページが表示されますが自動で認証をスキップされます。

ではこのキャプチャーを回避した攻撃はあるのでしょうか?

結論から言うと現状は無いです。

最初のJavaScriptチャレンジと同じ仕組みを利用できそうな気もしますが、キャプチャーの場合は人間以外を9割ブロックするので攻撃者が手作業で攻撃元のCookieを一々取得することになります。回避する脆弱性などが見つかれば話は別ですが現状は無いので安心してください。

CAPTCHAを回避するためには、OCR(Optical Character Recognition)技術を使用して自動的に解決する方法があります。

OCR とは簡単に言うと、画面上のテキストを認識したり出来る技術のことです。

ようするにOCRは認証パズルやテキスト入力を解ける為、上記のバイパス手段を組み合わせたスクリプトを作ることによりキャプチャ認証も突破可能になりました。

ブロック

ブロックの場合はError 1020を返します。

403でもなく1020と言う「あんたはオリジンサーバにはアクセスすらさせねーよ!!」って事です。

403の場合はオリジンサーバがアクセス禁止を返しているエラーですが、エラー1020はオリジンサーバに到達する前のCloudFlareとの通信の段階で既にブロックされている事を意味します。

回避する攻撃方法はありません。

このブロックはファイヤーウォールによって国レベルでブロックされたのか、IP指定でのブロックなのか、その他のファイヤーウォール設定によるブロックなのかは第三者には分かりません。

国レベルでブロックの場合は、アクセスが許可されている国のVPNやProxyサーバーに繋ぐ事でアクセス可能にはなりますが、アクセス者はどの国がブロックされていて、どの国が許可されてるのかは分かりません。ひたすら色んな国のIPを試していくしかないです。

CloudFlareでDDoS攻撃をブロックするおすすめWF設定

ファイヤーウォールルールを設定していないサイトはDDoS攻撃をほぼ全部喰らうので、CloudFlareにサイト登録したからと言って安心しないでください。

まずはCloudFlareのダッシュボードにアクセスして“ファイヤーウォール”タブをクリックして“ファイヤーウォール ルール”を開いてください。

*1日のアクセス数少ないのはこの記事を書いてる数日前にブログを開設したばかりだからです(言い訳)

次にファイヤーウォールルールを作成をクリックします。

そうするとこの様なファイヤーウォールルール設定画面が出るので画像と同じ様にしてください。

ファイヤーウォールルールの名前は分かりやすい物にします。

フィールドは国を選択してオペレーターは次と等しくないを選択値はJapanを選択してください。

次にANDをクリックして追加のルールも設定します。(ここが一番大事)

フィールドは既知のボットを選択してボタンがオンになっているのでオフにしてください。

この画面で言う既知のBotとはGoogleやYahoo!などの危険性の無いクローラーや見回りBotのことを指します。その為海外IPを使ったGoogleのBotなども上記のファイヤーウォールルールに従ってブロックされてしまいますので必ずオフにしてください。

そして実行するアクションですが、JSチャレンジもしくはキャプチャー、マネージドチャレンジのどれかをオススメします。海外IPは絶対にブロックしたい!と言う方はブロックでいいですが、何の威勢もない海外訪問者を完全ブロックしてしまう事になるのでSEO的にも海外ユーザーにとっても良くないと思います。

改めて実行アクションのおさらい

  • JavaScriptチャレンジはアクセス前に5秒間プロテクションページが表示される
  • キャプチャーは画像を選択もしくは英数字を入力したらアクセス出来るモード
  • マネージドチャレンジはCloudFlareの判断に任せるモード

マネージドチャレンジとは、キャプチャーを解くために費やされる訪問者の時間を短縮するの事が出来ます。リクエストの特徴に応じてCloudflareは以下のアクションを実行します。

  1. 何も表示されない
  2. 一瞬表示されるものの認証がスキップされる
  3. 必要に応じてJSチャレンジが表示される
  4. 必要に応じてキャプチャーが表示される

この必要に応じてとは、悪意あるBotやDDoS攻撃のリクエストを受け取った際です。

その際は自動で上記アクションがCloudFlareの判断により実行されるのでマネージドチャレンジが一番おすすめです。悪意のない海外ユーザーはファイヤーウォールルールの条件をスキップされるのはいいですね。

ただし、どの程度のリクエスト送信でキャプチャーが表示されるかはCloudFlareしかわかりません。

いよいよ最後の設定です。

先ほど作成したファイヤーウォールルールがオンになっている事を確認出来たら、左のメニューからボットをクリックしてください。当サイトは24時間で6千回以上の攻撃を受けてるようです…

↑この記事が役に立てたら「いいね」ボタンを押してください!
この記事を書いた人
ウェブホスティング運営中|FreeHostBox.net
Anon

■20歳
・ウェブアプリ開発
・ホスティングプロバイダ運営者
・22年1月4日ブログ開設
■好きなもの
・猫
・お寿司
・夜明け前の景色

Anonをフォローする
セキュリティ
Anonをフォローする

コメント

タイトルとURLをコピーしました