WordPressのブログが乗っ取られた(クラッキングされた)話

このブログ、1回のっとり(クラッキング)の被害にあってしまって、作り直しているのです。
当時はテンパってしまってスクショもなにも残っていないのですが、備忘録的にメモしておきます。

久々に見たら、文字化け?していた

ブログの更新がしばらくとまっていた時期がありまして、ある時ふとサイトを見てみたのです。
すると、なにやら文字化けしている様子。

はて、と思い、とりあえずブラウザ側で文字コードなどをいじってみても、いっこうに改善しません。
(この時初めて知ったんですが、Chromeって文字コードの設定なくなったんですね)

知らない記事が爆増している!

不思議に思い、WordPressのダッシュボードにログインしてみます。

とくにおかしなところはないけど……と首をかしげつつ、いろいろな設定をチェック。

そして、見つけました。
身に覚えのない記事が、めちゃくちゃ投稿されている……!

もう、何千件とかそういうレベルで投稿されているのです!

怖くてちゃんと読んでいませんが、英語でなにやら怪しげなサプリの宣伝をしているらしい内容の記事。
もちろん心当たりなんてありません。

ここでようやく気づいたのです。
このWordPress、乗っ取られている!!!!

固定ページも改ざん

しかし、ふと疑問が。

その時のブログはすべて固定ページで書いていたので、いくら記事が投稿されたところで影響ないのでは?

そう思って、既存の固定ページをみてみたら……。
中身が改善されている!

既存の内容はほぼ残っておらず、文字化けした文章と、不審なサイトへのリンクにまみれた汚記事へと変貌をとげておりました。
リンクは踏んでいませんが、やはり怪しげなサプリのページにでも飛ばされるのでしょう。

なるほど、文字コードが狂ったとかではなく、完全に内容が改ざんされていたわけですね(遠い目)
おそらくスクリプトで挿入する文章の文字コードがあってなかったのでしょう。

ぼくたちのブログは完全に乗っ取られて、アヤシゲな広告をばらまく魔窟となっていたのでした……。

ノーガード戦法をとっていた

なんでこんなことになったかというと……、心当たりはまぁありました。

まず、WordPressのダッシュボードへのログインURLがデフォルトのままだったということ。
デフォルトだと、サイトのURLに/wp-admin/とつけるだけで管理画面が開いてしまいます。
つまり、このブログの場合は
http://やくみとえんじ.com/wp-admin/
でログイン画面までいけてしまうわけですね。(もう対策しているので入れませんよ!)

さらに、パスワードが超適当でした。
ユーザー名から簡単に類推されてしまう系の、完璧にアカンパスワードを使っておりました。

つまるところ、ノーガードだったわけです(猛省)

だって正直、こんなPVのないブログが狙われるなんて思いもしなかったので……。

とりあえずなんとかせにゃあ!

ブログの閉鎖

まず何をするか、と考え、とりあえず世間様にご迷惑をかけてはいかんということで、ブログを閉鎖状態に。

サイトにアクセスしてしまってウイルス等に感染するユーザーさんが出てしまってはまずいですし、グーグルさんがクローリングしてきてドメインに悪い評価をされたりしたら今後の活動もやりづらくなりかねませんからね。

wp-maintenance-modeというプラグインを使って、サイトを閉鎖します。

WP Maintenance Mode

記事のサルベージ

ブログサイト自体は、まぁ作り直せば良いのですが、それよりも書きためたブログ記事の方が痛い。
ということで、なんとか内容だけでもバックアップできないかと試みます。

まず、なぜか下書き状態の記事は改ざんされずに残っていたので、これはそのまま内容をバックアップ。
きっと公開されていない下書き記事を改ざんしても旨味がないのでほっておかれるのでしょう。

次に、すでに公開済みのブログ記事。
こちらは、完全に中身が改ざんされてしまっているので難しい。
前述の通り、ぱっとみは文字化けしているだけっぽいので、あるいは復元できるのでは?とも思ったのですが、どうも完全に中身が違う様子。
改竄後の文章をいじるのも怖いので、そのセンは諦め。

結局、グーグルのキャッシュからサルベージできるだけサルベージをすることにしました。

記事を検索すると、▼のところにでてくるやつです。

グーグルさんは、いろんなサイトのキャッシュを一定期間保持しているので、ここから古い状態の記事を見ることができます。

幸いにも、今回は乗っ取りに気づくのが早かったか、キャッシュにはまだ無事だった頃のブログ記事が残っていました。

こうして、下書き記事とキャッシュから復元できた記事は、無事にバックアップを取ることができました。
とはいえ、いくつかの記事は間に合わなかったですし、キャッシュの記事も画像までは残っていなかったので完全ではありませんでしたが……。

サーバごと破棄

バックアップが完了したら、あとはもう簡単。
1度乗っ取られてしまったものをいくら取り繕ってももう怖くて使えないので、サーバごと破棄しました。

このブログはAmazonのAWSのec2で構築しているので、インスタンスを破棄するのはボタン1つで簡単なものです。

こんな感じで、クラッキングされたブログは闇へと葬り去られたのでした……。なむ。

WordPressの構築を1から作り直し

新たにAWSでインスタンスを立て直し、また1からWordPressを構築します。
さすがに懲りたので、セキュリティ対策もいくらか施します。

ログインURLの変更

前述した通り、デフォルト設定だとURLの末尾に/wp-admin/と入れるだけで管理ページへのログイン画面が開いてしまいます。
これを、だれにもわからないURLに変更します。
SiteGuard WP Plugin というプラグインを使うと、その辺を含めていろいろ対策をすることができます。

SiteGuard WP Plugin

ログインフォームにCAPTCHAを追加

こちらもSiteGuardでできるのでついでにしておいたのですが、ログインフィームにCAPTCHAを追加します。
これで、ログインを突破する難易度がぐっと上がります(突破されちゃうこともあるらしいですが)

パスワードを堅牢なものに

基本にして最大の防御。
パスワードをちゃんと堅牢なものにします。

自動生成されたものを使うのが理想ですが、それだと忘れてしまったりしたときに面倒なので、記憶できる範囲でセキュリティレベルの高いものを設定します。
間違ってもaaaaaとか12345とかにはしてはいけません。

ついでに、デフォルトで入っているuserというユーザーも削除しておきます。
ユーザー名がバレちゃうだけでも突破されやすくなってしまいますからね。

そのほか、やろうと思えばいくらでもセキュリティ対策は可能です。
気になる方は、いろいろと調べて見れば詳しく書いた記事がたくさん出てくると思いますので、参考になさってください、

ドメインを再設定

おそらくセキュリティ的に問題ないと思うので、前のブログで使っていた「やくみとえんじ.com」というドメインは、そのまま新しいインスタンスに流用しました。
こちらも、AWSのRoute53を使っているので、さくっとインスタンスを付け替えるだけですみました。

さいごに

セキュリティ対策はとても大切です。
大切なブログを壊されるだけならまだしも、別の攻撃の踏み台にされたり、閲覧した人に被害が及ぶ可能性がありますからね。

きりっ。

と、頭でわかってはいましたが、実際には
「こんな弱小ブログ、誰も狙わないべw」
と完全に舐めてノーガードをきめこんでいました.猛省。

結局、こういうWordPressの初期設定の脆弱性を使った攻撃は、数打ちゃいくらでも当たるので自動で片っ端から攻撃しているのでしょう。
弱小だからーとか関係なく、セキュリティ対策は必要です。

作り直すのすごいめんどくさいんだからな!!
ただでは転ばず、さらに良いブログをつくってやらねばなりません。

……余談ですが、グーグルさんのキャッシュからブログを復元した時、やくみが
「うわ、なんかプロっぽい。ほんとにエンジニアだったんだね」
と、褒めてるんだかなんだかよくわからないコメントをくれました。

投稿者: enji