[Я]ハッキング被害に遭いました。ヘコみまくりつつやった調査&作業まとめ

スポンサーリンク

 
20130829 catch

心がズタズタになりましたわ。

昨日(8月28日)の午前、当ブログはハッキング被害に遭い、一時的にブログが表示されない状態となっておりました。最初はサッパリ意味が分からなかったのですが、調査していくうちに背筋の凍る思いがしました。戦慄の恐怖って、ああいうのを言うんだな、と。

相当ヘコみました。セキュリティとかほとんど分かっておらず無知なため、効果的なのか、絶対やるべきなのか、あるいはさほど今回の問題と関係なくて無意味なのかは今も分からないけれど、「やらないよりはやっておこう」と考え、いろいろ対策を講じました。

ハッキング被害が判明した経緯と、復旧までの暫定的な対応

★管理画面が文字化けしていた

最初に気付いたのは、8月28日の午前9時頃。WordPressの管理画面をいつものように開いてみると、文字化けしていました。

PCブラウザ(Chrome)のエンコードを見ると「日本語(Shift-JIS)」になってる。なんで?と不思議に思いつつ文字コードを「Unicode(UTF-8)」に変更。

確かそれで管理画面の文字化けは解消した記憶があります(自信なし)。

★ブログ名の改ざんに気付く

管理画面は元に戻ったのに、なぜブログ表示がおかしいのか。管理画面をにらみ続けるうちに、一つの異変に気付きました。ブログ名が「りくまろぐ」になってない

Screenshot 201308 0081

管理画面の左上、いつもなら「りくまろぐ」と表示される部分が「Hacked by Krad Xin」に改ざんされてました。「Hacked」という単語を見た時点で怖くて震えた。うわ、マジか…。

この文字列を頼りにGoogleで検索。午前9時過ぎの段階で、このハッキング現象について論じてるサイトやブログは、たった1つ、「WordPressフォーラム」だけしか存在しませんでした。他に検索ヒットしたのは、私と同様にハッキング被害に遭ったらしく改ざんされたサイトやブログばかり。

★文字コードをUTF-8に戻した

私が最初にフォーラムを見た時はコメントがまだ3つだけでした。「文字コードがUTF-7に変更」されてないかという記述があったので確認。

WordPress管理画面「設定」→「表示設定」を見ると、「フォロワー設定」欄の上に「文字コード」欄があり、そこがフォーラムの記述通りUTF-7になってました。

手入力でUTF-8に変更して保存すると、管理画面の「文字コード」欄は消えてしまった。現在も表示されていません。通常は表示されない欄なのだろうか…?

★しかしブログは真っ白のまま

文字コードを変更したことで「もう大丈夫かな」と思いブログを確認すると、まだダメ

更に調べていくと、「WordPressのテーマが原因でハッキングされる場合がある」との情報を見つけました。うちのブログは自作テーマなので、作り方をミスっててそこを突かれたのだろうか…。

テストとしてWordPress標準の「Twenty Thirteen」や「Twenty Twelve」等に変更してみたのですが、またしてもおかしな現象。

テーマを変更した直後、0.5秒ほど一瞬だけブログがパッと表示されるんですけど、すぐにブログ全体が真っ白になってしまいます。どのテーマに変更しても同じ現象。以後はリロードしても二度と表示されない。

真っ白な画面でHTMLソースを表示させると、キチンとHTMLは出力されてるんですよ。なのに真っ白。もう意味が全く分からない。完全にパニック。

★見覚えのないウィジェットを発見

何をどうすればいいのか全く分からず、管理画面のあちこちを眺めていたら、異変に気付きました。

管理画面「外観」→「ウィジェット」を見ると、サイドバーやフッターに設置していた自作のウィジェットは全て消失していて、代わりに見覚えのないウィジェットが1個だけ表示されていました

ん? と思ってソースを覗くと、全く見覚えのないスクリプトコード。

うわ!これやん。絶対これが何か悪さしてるんやん!と勢いに任せて削除。パニック中だったのでスクショは撮ってません。

不審なウィジェットを削除してからブログを確認すると、PCでもiPhoneでもようやくブログが表示されました。ただし、破壊されてしまったサイドバーとフッターは何もないまま。

勢いに任せて削除した不審なウィジェットの正体ですが、WordPressフォーラムで報告されてました。

<script>document.documentElement.innerHTML = unescape(”);</script>

上記コードの書かれたウィジェットがハッキングで追加されていたようです。JavaScriptでBODYタグの中身を動的に消してしまう悪さをするんだとか。だから他のテーマに変更するテストをした際、一瞬だけ表示されてから消えてたんでしょうね。一つ謎が解けました。

★一部ウィジェットの復旧作業

全て消失してしまったウィジェットですが、サイドバーの一部とフッターの全てに関してはローカル環境に同じ内容のものを作っていたので、それをWeb環境にコピーすることで復旧できました。前にあったけど現在ないウィジェットは「コピーがなかった」か「今回を機に廃止した」ものになります。

フッターの全ウィジェット(カテゴリーリストやタグリストなど)も現状は意図的に復旧させていません。作り変えるか廃止する予定。

★ブログ名とキャッチフレーズを復旧

Screenshot 201308 0071

↑管理画面「設定」→「一般」を見ると、サイトのタイトルとキャッチフレーズが改ざんされていました。後で教えてもらいましたが、WordPressのデータベース(MySQL)にある、ここの情報を管理しているデータ(テーブル)を直接改ざんされた可能性があるそうです。あくまで推測です。

この内容が改ざんされていたせいで、サイトのDescriptionやTitleなどのSEOデータもおかしくなり、FacebookやGoogle+に送信するOGP情報も改ざんされてました。

ここを本来の内容に修正して保存することでSEOデータもOGP情報も元に戻りました。

Skitched 20130829 104410

しかし、まだ復旧されてない時間帯にGoogleのロボットが拾っちゃったんでしょうね。現在もGoogleで検索するとハッキングの傷跡が検索結果に残ってます。上の画像にある当該エントリーのソースをチェックしましたが、現在ハッキングされた際のコードは存在しません。

WordPressの管理者情報を変更

ブログ表示が復旧するまでの経緯は以上ですが、その後も不安な点が幾つか残ってたので対策を講じました。

まず、何といってもパスワードとアカウント情報

以前、アカウントが「admin」のままだと危険ですよ、という記事を拝見しましたが、私は当初から「admin」は使用していませんでした。しかし、ドメイン名から容易に想像のつくアカウント名だった…。猛省。

パスワードは、他のツールなどと使い回しなのでもなかったし、そんな簡単にバレるような内容でもなかったはずなんだけど…。いずれにしても気持ちが悪いので変更しました

http://ushigyu.net/2013/04/13/wordpress-admin-change/

上記記事の通り、「まず新しい管理者アカウントを作成」→「従来の管理者アカウントを削除」という手順で対策完了。間違って操作すると記事データが完全消失しちゃいますので、作業される方は上記記事をシッカリお読み下さい。

パスワードは生成ツールで新しいのを作って保存。

Exploit Scanner でコアファイルが改ざんされていないかチェック

WordPressフォーラムに「コアファイルが改ざんされていないか確認を」との記載があったので、念のためチェックしました。

まずWordPress管理画面で新規プラグイン「Exploit Scanner」を追加し、有効化。

後は上記記事の通り作業しました。私がやったのは「WordPress3.6用のハッシュファイルをダウンロード」→「プラグインのフォルダにアップロード」→「管理画面でバージョンを確認後、スキャン開始」。WordPressのバージョンが3.6じゃない場合は3.6のハッシュファイルだと無意味ですのでご注意を。

コアファイルに改変があった場合はDescriptionに「Modified core file」と書かれた項目が表示されるようですが、私は大丈夫でした(昨日と今日の2回確認しました)。

プラグイン「Crazy Bone」の導入

自分以外に不正なアカウントからのログイン(侵入や攻撃)がないか記録を取ってくれるとのことなので、プラグイン「Crazy Bone」をインストールし、有効化させました。

ハッキング被害の後に導入したので、ログイン履歴を確認しても当然ながら私のログイン記録しか表示されていません。しかし他の方々から話を聞いた限りでは、このログイン記録にいろんな国からの不正なアクセスが記録されているとのことです。

防いでくれるというよりは「監視する」意味合いのプラグインになるようですが、事前に異変を察知することが出来るかもしれないし、入れておくべきプラグインではないかと。

ロリポップの各種パスワードを変更

今回被害に遭ってる大半のサイトはロリポップのようです。私もロリポップ。

WordPressのパスワードは作成時に自分で考えたものを設定しましたが、そういえばロリポップのは契約時に指定されたデフォルトのものをそのまんま使ってた…。これではイカン。

ということで「ロリポップにログインするパスワード」と「ロリポップサーバのFTPパスポート」を念のため変更しました。変更はロリポップの管理画面で出来ます。

WordPressデータのバックアップ

WordPressデータのバックアップは「BackWPup」というプラグインを使用しています。当ブログでも幾つかエントリーを書いてます。

一時期、これまたロリポップの設定が原因でBackWPupが正常動作しないという現象がありました。その後、動くようになったので安心して自動保存させてたのですが…。

今回、バックアップデータから復元できないかなと考え、BackWPupのデータをダウンロードしてみたら、肝心のMySQLデータがどこにもない!

簡単に言えば、BackWPupは再び失敗を繰り返していて、それに私が気付いてなかった、ということ。もう自分が情けなくて絶望しちゃった。

だからと言ってボーッとしてるわけにもいかないので、手動でバックアップ作業をしました。

まずWordPressのテーマなどファイル関連は、FTPソフトを使ってローカル環境に全てコピー。画像データも全てダウンロードで保存しました。

肝心のMySQLデータは、

http://rensaba-karuma.net/paperboy/lolipop/1973/

↑まず上記記事の通り、ロリポップのphpMyAdminから全データをエクスポート。

http://pc-karuma.net/mamp-phpmyadmin-db-import/

↑続いてローカル環境に構築しているWordPressのMySQLに上記記事の通りインポート。記事では「MAMP」で解説されてますが、「XAMPP」でも基本的にやることは同じです。

バックアップ自体はこれでOKなのですが、Web環境にあったデータがそのまんまローカル環境に入るため、ローカル環境のブログ表示がおかしなことになってしまいます。ローカル環境用にデータを修正してあげないといけません。(単にバックアップしておきたいだけなら何もしなくていいですが…)

http://rensaba-karuma.net/wordpress/how2use/5162/

↑修正方法は上記記事「MySQLデータベースのドメイン名書き換え」に詳しく解説されています。私もこの通り作業して成功しました。

ログイン時のアカウントやパスワードもWeb環境のものに変わってしまってるので、ローカル環境独自のものにしたい場合は適宜変更が必要になります。

それにしても、BackWPupには困った…。バックアップが成功してくれないなら意味がない…。早急に対策を考えねば。

パーミッションの変更

WordPressフォーラムにて「再発やハッキングを防ぐため」パーミッションの見直しが推奨されてました。私もチェックしたところ、推奨されるパーミッションになってなかった…。ダメダメです。

フォーラムの記載に従い、

◆「wp-config.php」 → パーミッション「404」に変更
→【追記】ロリポップから注意喚起があったので本日「400」に再設定しました
◆「.htaccess」 → パーミッション「604」に変更
→【追記】「404」に再設定しました

なお、フォーラムに

「.htaccess」ファイルが書き換えられる事例が多発いたしております。

との記載があったので確認してみたところ、私のブログも「.htaccess」が改ざんされてました。現在は復旧済みです。

その他、参考にさせて頂いたサイト

とにかく少しでも多くの情報が欲しかったので、Googleで検索しまくって、いろんなサイトやブログの記事にお世話になりました。

http://www.landerblue.co.jp/blog/?p=8402

↑私の知る限り、フォーラム以外で最も速く今回の件を記事にされてたのは「More Access! More Fun!」さんでした。

http://d.hatena.ne.jp/ozuma/touch/20120503/1335975957

↑今回見た中で最も気になった記事

私がこのあたり無知なので詳しいことは分からないのですが、素人なりに思うのは、パスワードやアカウント名などを分かりづらいものに変更したとしても、アッサリとロリポップのMySQLをハッカーに覗かれちゃう、ということなのでしょうか…。メッチャ不安になるのだけど。

http://webshufu.com/wordpress-krad-xin-hacked-many-japanese-sites/

↑随時速報が更新されてます。フォーラム同様に私も都度チェックさせて頂いてます。

記事内にもある通り、ハッカーによる犯行声明の中に

R.I.P lolipop

という表記があります。「R.I.P」は「Rest In Peace」の略で、和訳すると「安らかに眠れ」。解釈は別れるでしょうが、何らかの意思表明がロリポップに対して成されてます。

りくま的まとめ

私がハッキングに遭った昨日(8月28日)は、犯行声明によれば576ものサイトがハッキング被害に遭ったようです。更に今朝(8月29日)判明したのですが、攻撃の第2弾として新たに約3,000ものサイトがハッキング被害に遭っているようです。

ロリポップの公式発表によれば、本日の段階で約4,800のサイトが被害に遭ったとされています。以下一部を引用します。

[2013/08/29 10:57 掲載]
現在、当社が提供しているサービス「ロリポップ!レンタルサーバー」において、第三者からの大規模攻撃によりWordPressをご利用中のお客様のサイトが改ざんされる被害が発生いたしました。「ロリポップ!レンタルサーバー」をご利用のお客様には、多大なるご迷惑をおかけしており大変申し訳ございません。

現在までに当社で把握できた被害状況についてご報告いたします。

[対象のお客さま]
「ロリポップ!レンタルサーバー」のユーザーサーバーにおいて
WordPressをインストールされている一部のお客さま(4,802件)

[現在までに判明している被害状況]
大規模な攻撃によりWordPressをご利用中のお客様の管理画面から
不正アクセスにより、データの改竄や不正ファイルの設置がされた。

[対策について]
1)セキュリティ面の強化の為、上記のお客様のサーバー領域に設置されているWordPressにおいて、wp-config.php のパーミッションを「400」に変更いたしました。

本対策の対象となったお客様におかれましては、ご登録メールアドレス宛に別途、メールでも本件をご報告しておりますので、ご一読くださいますようお願い申し上げます。

引用中の「対策について」で、「wp-config.phpのパーミッションを400に変更した」「対象となった人にメール送信した」という旨の発表がありますが、確認したところメールも届いてないし、パーミッションも変わっていなかったので、自分で400に変更しました。

http://www.landerblue.co.jp/blog/?p=8416

私自身、今回の件で「セキュリティに対する考えが甘かった」と猛省しましたが、上記記事を読んで感じたのは、特にロリポップ利用者やWordPress利用者は、他人事ではないかもしれないと。

公式発表にしても、他の記事やフォーラムにしても(今回の私の記事も含み)、内容が理解できず「うわ、怖い。何かしなきゃ。でも何をどうすればいいんだよ…」と、どう対応すればいいか分からず不安ばかりが増長してしまったら?

昨日の時点でハッキングの概要がある程度表面化していれば、もしかしたら今朝の第2弾攻撃で約3,000もの被害は発生しなかったかもしれない。「おお、自分とこはセーフだった…」と安心し、今日になって被害に遭われた方が、もしかしたらいるかもしれない。

ただ、私自身も実際に調べていて思ったのですが、昨日の段階では分かってる情報が本当に乏しく、WordPressフォーラムしか頼れる場所がない状態でした。第1弾の被害に遭われた方々はどうすればいいか分からずパニックになってたかもしれません。私は大パニックでした。

私のブログも、再び攻撃されるかもしれません。現在は復旧できていますが、全く安心できていません。ただ、やれることは全部やろうと思ってます。関係あろうがなかろうが、不備は今のうちに直しておかないと。

特にロリポップ利用者で、まだ何も対応されてない方々は、今のうちにファイルのパーミッションやパスワードを変更しておいた方がいいです。ハッキングを喰らってからでは遅いです。

私も引き続きフォーラムロリポップ公式発表を注視し、何かあれば追加対策を講じていきます。

http://blog.hash-c.co.jp/2012/12/how-to-protect-your-wordpress-on-lolipop.html

こちらの対策も併せてやっておいた方がいいですね。

最後に、名前を挙げることでご迷惑をおかけするといけないので伏せますが、昨日の午前に被害が判明して以降、TwitterやFacebookで的確なアドバイスを頂いたり、落ち込んでいたところを励まして頂いたりしました。本当に助かりました。この場をお借りして感謝の言葉を述べさせて頂きます。ありがとうございました。

【追記1】
今回のハッキング騒動を機に作成されたWordPress Codexのページにて、「.htaccess のパーミッションを 404 に変更する」との記載がありましたので、パーミッションを再変更しました。
【追記2】
ロリポップからの「wp-config.phpのパーミッションを400に変更した」旨の連絡メールは17時過ぎに受信しました。
【追記3】
プラグイン「Crazy Bone」導入の件を書き忘れていたので追加しました。
【追記4】
今回の一件で脆弱性の元凶かもしれないと話題に上がってた「timthumb」がWordPress内に残っていないかをチェックできるプラグインが紹介されていたのでエントリーを書きました。よろしければ併せてお読みください。
[Я]ハッキング被害を受けた方、心配な方はTimthumbをチェックしましょう
スポンサーリンク
この記事がお気に召したら
「いいね!」をお願いします!
「りくまろぐ」の最新情報を
Facebookにお届けします
コメントComments Off
CATEGORY :