こんにちは。不可思議絵の具です。
先日、うちのサイト(が入ってるサーバー)がDDoS攻撃にやられました。
ムカつく話ですが、せっかくなんでネタにさせてもらいましょう。
DDoS攻撃を知らない人向けに、
- DDoS攻撃って何なのか
- 対策に何があるのか
をできるだけ、やさしく解説したいと思います。
うちも噂のDDoSを喰らいました
先日、当サイトが入っているエックスサーバーが「DDoS攻撃」を受けました。
夜中の0時過ぎから急にページが開かなくなりまして、そのときは
「たまにはこんな時もあるやろ。
インターネットやし、自分のプロバイダーの問題かも知れんし」
とタカをくくって寝ましたが、次の日の夕方になっても繋がりにくい。
これは何かトラブルなのかも、とエックスサーバーの公式サイトを確認すると、自分の使っているサーバー番号について「DDoS攻撃を受けているので対応中」と書かれていました。oh…
メールもエックスサーバーから届いていました。
トラブル発生直後にすぐ送られていましたが、自分が読んでいないだけでした(^_^;)
利用者としてはエックスサーバーの対応を待つしかなく、辛いものです。
攻撃が夜中がメインだったことと、エックスサーバーが素早く対応を始めてくれたことで、被害は最小限で収束しましたが、それでも結局その日はアクセス数が2割ほど少なくなってしまいました。
どこのどいつが犯人で、
何が目的か知らんが、
マジでムカツク話です(怒)
と、感想で終わっても仕方がないのでブログのネタにします。
そもそも、DDoS攻撃って何?
DDoS攻撃って何やねん、という方に向けて概念を簡単に説明します。
その前にDoSについて
まず、インターネットでの攻撃手法にDoS(Denial of Service:サービス拒否攻撃)というものがあります。
※DDoSに対してDが1つ足りないです。
早い話、サーバーにアクセスを殺到させたり変なデータを送ることで機能停止させたり、動作を遅くさせる嫌がらせです。
1台のマシンから攻撃対象に「圧倒的な物量のアクセス」や「サーバーが混乱する、不正なパケット」を仕掛けます。
これに関しては
- 攻撃者のIPアドレスを無視・回数制限するようにする
- 極端な話、サーバーのスペックを攻撃者より上げて処理を捌けるようにする
こういった形の対策が打てます。
DoSの発展形=DDoS
DoSの対策はそう難しいものではありませんでした。
しかし、悪知恵の働く陰湿カス野郎…もとい、攻撃者は
「じゃあ、複数マシンからDoSを仕掛ければ攻撃力上がるし、防ぎにくくね?」
とDoSを改良し、DDoS(Distributed Denial of Service attack:分散型サービス拒否攻撃)へと発展させました。
名前の通り、DoSを多数のマシンによって分散して行う手法で、DoSが「波動砲」だとすると、DDoSは「拡散波動砲」です。
(例えが…戦艦ヤマトでも…R-TYPEだとしても…古いか^^;)
事前にセキュリティ対策のずさんなサーバーやパソコンを乗っ取り、遠隔で操作できる状態にしておきます。
乗っ取られたマシンは「ボット(又はゾンビ)」と言われます。
近年はクラウドの進歩もあり、AWS等のクラウドサービス自身がボットに使われることもあります。
参照 「ほとんどのDDoS攻撃は米国のアマゾンから」――アカマイの最新セキュリティレポート(businessnetwork.jp)
さらに今後は、IoTの進歩により増え続けている、プリンター・防犯カメラ・畑のセンサー・冷蔵庫などなど、メンテナンスされにくいIoT機器もボットにされてゆくでしょう。
参照 Miraiが露呈するIoT機器の危うい現状、総括報告書で指摘(ITmedia)
さて。
ボットの準備が整ったら、攻撃者はボットに攻撃司令を与え、ターゲットを一斉に攻撃します。
この攻撃のイヤらしい所は下記2点になります。
- 1台でも厄介な攻撃が、多方面(通常、数千~数万台の規模)からやってくる
- 元々サーバーは様々なマシンからアクセスされるもの。
「正常なアクセス」と「悪意のあるアクセス」の区別がつかないので対策が取りにくい
特に2.が本当に厄介で、ボットは世界規模で作られますので、国籍や所属団体で弾けませんし、特定のOSに偏るという訳でもないので、正常なアクセスと区別が全くつきません。
これから対策を語る前なのに身も蓋もありませんが、基本的にDDoSは攻撃が止むのを待つしか打つ手がありません。
緩和する程度が精一杯の、本当に恐ろしい攻撃なのです。
技術的な対策は何?
技術的な対策は大きく2つあります。
WAF
WAF(Web Application Firewall)はWebサーバーの手前に設置し、攻撃的なアクセスを検知したら自動的にシャットアウトする仕組みです。
WAFはDDoS攻撃以外にブルートフォースアタック(パスワード破り)やSQLインジェクション(システムのバグを突いた情報流出や消去のイタズラ)を防ぐことができる、パソコンで言うファイヤーウォールのようなものです。
DoSや小規模のDDoSには絶大な効果がありますが、大規模なDDoSの場合、WAFで防御する以前に回線がパンクしてしまうのが弱点です。
そういう状況になってしまうと、犯人の目標達成を防ぐことができません。
無いよりは有ったほうが良いのは明らかですので、誤解なさらぬよう、お願い致します。
参考までに、WAFが無料で付いているレンタルサーバーを紹介します。
参考 mixhost
参考 ロリポップ!
CDN
CDN(Content Delivery Network)は世界中のサーバーに自分のサイトのコピーを準備して、訪問者に一番近いサーバーを使って見てもらう仕組みです。
アクセスを世界中に分散させ、安定した表示速度を得ることが主目的です。
WAFとは目的が違うのでセキュリティ機能はありませんが、DDoS攻撃を世界中に分散させることで、攻撃を和らげる効果があります。
しかし、CDNの許容量を超える攻撃があれば、やがてはCDNや回線がパンクしてしまうため、やはり犯人の目標を防ぐことができません。
誤解なさらぬよう、お願い致します。
CDNで代表的なものはCloudflareです。
英語がネックですが、無料で利用できるので個人でも導入しやすいです。
参考 Cloudflare
業務用途ではCDNにWAFを組み合わせた合わせ技もあるようです。
これだとかなり攻撃を押さえ込めそうです。
運用的な対策は何?
回線容量の太いレンタルサーバーを契約する
残念ながら現時点ではDDoSに対する特効薬というものはありません。
(ご存じの方が居ましたら記事を訂正しますので教えてください)
上記の技術的な対策を施しても、やられる時はやられます。
そういう意味では「落ちにくい」サーバーを使うしかありません。
その点で「最大規模のレンタルサーバー」と言えるのは世界規模で展開するAWSでしょう。
恨みを買うようなことをしない(割とマジで言ってる)
何とも身も蓋もない話ですが、犯人も人間です。
何らかの理由が無い限り、見ず知らずの相手を狙ってくるようなことは無いはずです。
- 公式の場で誰か(特にクラッカー)を刺激する発言をした
- 政治的信条の対立
- 身代金目的
今まで起きた大規模なDDoS攻撃は上記いづれかの理由が必ずあります。
(愉快犯も無くはないですが…)
裏マーケットには「有料DDoSサービス」があり、個人がDDoSを仕掛けることができる人間にお金を払って依頼できるそうです。
恨みを買うようなことをしないのが、一番の防御かもしれません。
DDoS攻撃は対策が本当に限られている
今回の私の例で言うと、ターゲットはあくまで「エックスサーバー社(のサーバーのどれか)」だったので、サーバーのIPアドレスを直接指定しての攻撃のようでした。
それに対するエックスサーバーの対抗策は
「サーバーのIPアドレスを変える」
というものでした(実際は代替機を準備したり、もっと複雑だと思う)。
IPアドレスを直接指定しての攻撃は、実際これしか対策が無いと思います。
仮に、ターゲットが「ドメイン(個人)」だったらどうだったでしょう?
そうなると、かなりヤヤコシイことになります。
サーバーを変えても攻撃の矛先が変わらないので止むことはありません。
ドメインはそう簡単に変更するわけには行きませんので、基本的には攻撃が止むまで耐え忍ぶしかありません。
しかし、ドメイン(個別サイト)への攻撃となると、レンタルサーバー業者からしたら個人の問題なので、「面倒事は困るから、ヨソに行ってほしい」というのが本音でしょう。
下手をするとレンタルサーバーを追い出されることもあります。
参考 GMOクラウドでの例
DDoS攻撃されたらそこで試合終了!? レンサバから利用停止を宣告される前にできる8つの対策 (Qiita)
業者との緊迫したやり取りが記事の最後「付録:DDoS攻撃を受けた時のGMOクラウドPublicと私のやりとり」にありますので、ここだけでもお読みください。
なお、この記事はサーバートラブル対応事例としても最高の読み物だと思いますので、Webサイト管理者の方は全部読むことをお薦めします。
参考 ConoHaの例
DDoS攻撃を喰らったらConoHaを解約する羽目になった話 (トコトコ日記 (Wayback Machine))
まとめ
以上、DDoS攻撃の概要と対策でした。
私は結構、真面目に「恨みを買うようなことをしない」しか根本対策は無いと思っています。(個人レベルで低コストにDDoSへ対抗できる方法をご存じの方は、ぜひ教えてください。
知りたいです)
また、普段からコンテンツのバックアップを取り、いつでも別のサーバーに引越しできる準備をしておくことが肝要かと思います。
今回の件に関してはエックスサーバーが頼もしかったですが、出来る限りの自衛が欠かせない、とも痛感しました。
とりあえずはCDN(CloudFlare)を利用してみようかな、と思っています。
では(^O^)/