このサイトのドメインは running-dog.net ですが、DDoS 攻撃を受けました。そのときに取れた情報をちょっとまとめてみましたのでここに公開してみたいと思います。
まず、第一にですが、running-dog.net はさくらのレンタルサーバ上にあります。 このサービスはそれなりに制約があって、その範囲内で DDoS 対応するのですが、以下に制約についてまとめてみました。
・root 権限は無いため全てを .htaccess で行う必要がある
・ログは一日一回前日分が 00:05 頃に蓄積される
・ssh ログインはできるので Jail の ps -ef とか ファイル名変更などは行える
こんな感じで DDoS に対応した。と、いう感じです。
では今回の DDoS について色々情報が取れたので順番に見ていくことにしましょう。
1. DDoS の時間帯
開始時間: 2013/08/13 22:42 に第一発目
収束時間: 2013/08/14 04:40 ころ
完全終了: 2013/08/14 07:21 ころ
夜中から始まって、僕が DDoS を受けているのに気がついたのは 23:00 頃です。そこから色々対応して行きました。と、いってもそんなに色々できませんけど;-)。
ちなみに DDoS 受けている時はウェブの表示はしてくれません。 さくらインターネット側で特定のプログラムが負荷をかけていると Server Error (Code:500) を返すようにしています。
2. DDoS 対応第一弾
まず、DDoS は WordPress の wp-login.php に対して大量のアクセスを行う。ってことでした。 Jail 環境下のさくらのレンタルサーバでは ps(1) ではいまいち解らないのですが、ロードアベレージが 15 とかまで上がっているので「何かあるな。」と、言う状態です。
まずは少ない情報ながらも index.php を index.html (現在メンテナンス中)に差し替えます。そして wp-login.php も名前変更して Not Found (Code:404) を返すようにしてあげます。 wp-login.php は MySQL へアクセスするので、その負荷を軽減しました。
第一段はここまで。時間的には 13 日 23:45 くらいでしょうか。apache のログは 00:05 ごろに蓄積されるはずなので続きはそのログを見てから。
3. DDoS 対応第二弾
風呂に入ってさっぱりした後、13 日分のログが蓄積されたようなのでいよいよログを解析してみます。あとでまとめた情報を公開しますが大体 2,500 箇所くらいからアクセスがあるようですね。分間 20 アクセスくらいでしょうか。少ないように感じますが、レンタルサーバなのでサーバ負荷はドドドと上がります。
アクセス元が 2,500 箇所もあるのでもうアドレスでの Deny from 制御は諦めました。で、ログを眺めていたら User-Agent が固定的だということに気付いたので、それでブロックすることにしました。まずは .htaccess に以下の設定投入です。
|
これで Forbidden (Core:403) が返るようになったはず。まぁ、今回はこれでヨシとしましょう。ちなみにこの設定を入れていると Windows を使っている人で Firefox19 を利用している人は(今でも)僕のサイトは閲覧できないのではないかなぁ。と思います。 ESR 系か Firefox23 にバージョンアップしましょう;-)。
この設定を入れたので wp-login.php が MySQL にアクセスすることはなくなったので名前変更していたファイルをもとに戻して index.php も設定して実質的にサイトは復活しました。復活したのは大体 14 日 00:13 頃です。
4. ログの解析結果
さてさて。今回は貴重なログが取れました。ログを解析した結果をちょっと見て行きましょう。まぁ、 root 権限が無いサーバなのでその他の情報とか取れないんですけどね。
・DDoS の時間は 2013/08/13 22:42 から 14 日 04:40:38 までだとして約 6 時間
・DDoS 攻撃の回数は 18,832 回
・DDoS の攻撃元 2,451 箇所
このサイトはついこの間 Movable Type から WordPress に変更したばかりです。 Movable Type はエントリ投稿時に全ての html を生成する静的コンテンツなのですが、 WordPress は php でデータベースアクセスしてコンテンツを出力する動的コンテンツなので DDoS には弱いですね。
さてさて、今回は 2,451 箇所から攻撃を受けましたが、一番多かったのは以下の二つから。
101 dynamic.vdc.vn
129 200.13.91.183-ftth.cmcti.vn
左側が回数で右側がドメインです。ベトナムですね。
もう一つ情報を。日本のドメインからもアクセスがありました。以下になります。ログには FQDN が残りましたが、今回は省いています。
2 .rev.home.ne.jp
2 .kanagawa.ocn.ne.jp
3 .dy.bbexcite.jp
3 .nagoya1.commufa.jp
3 .ap.plala.or.jp
3 .au-net.ne.jp
3 .zaq.ne.jp
5 .ap.yournet.ne.jp
6 .t-com.ne.jp
6 .nagasaki.ocn.ne.jp
12 .ppp11.odn.ad.jp
上記 ISP さんで、連絡頂ければ正確な FQDN をお教えしますよ;-)。 上記の 11 個の PC は BotNet に取り込まれている。と、いうことですね。
5. 最終的な対応策
やはり .htaccess でしか対応できないので、以下のようにしました。
|
さくらのレンタルサーバは IPv6 には対応してないので IPv6 の設定の記述するとサーバエラーになります。
DDoS 攻撃のログを見てもログインしてアカウントを取得するようなログは残ってなかったのでただ単にサービス妨害にしか見えなかったのですが、それにしてもこのサイトのサービスを妨害してどうなるんだぁ?と思うのですけどね。
って話は横道にそれましたが wp-login.php はアクセスするのはほぼ僕だけなので、僕が利用するグローバルアドレス以外からのアクセスは止めることにしました。
httpd の負荷の軽減ではなく httpd から接続する MySQL の負荷の軽減を目標としています。
User-Agent の Firefox19 ですが、自分が 19 を利用するようになったときに考えてみたいと思います。もしくは再度 DDoS が来て User-Agent が変わっていたらそれに合わせて変更したいと思います;-)。
しかし、どうして running-dog.net が DDoS 受けるんだろうねぇ? それが不思議でしょうがないですが、僕に恨みを持っている人のシワザとか?;-)。
root 権限があればもっと色々できるとは思いますが、それにしても今回は貴重な体験をさせて頂きました;-)。
そして、こんなエントリ書いたら再度攻撃受けるかな? f(^^;;。