MySQLのパスワードを変更してlolipopでの被害を防げ!

先の「ロリポップ!レンタルサーバー」ユーザーサイトへの第三者による大規模攻撃だが、lolipopの発表によると、やはりMySQLを直接書き換えられたことによるものらしい。

本件の改ざんは、WordPressの設定ファイルであるwp-config.phpからデータベース接続に必要な情報を抜き出して情報を書き換えられたもので、それ以外のデータに影響はございません。

これが意味するのは何かというと、これまで被害を受けていないサイトもwp-config.phpからMySQLの情報を抜き出されている可能性がある、ということだ。つまり、沈静化したように見えても、実はまだ火種は消えていないってこと。

この対策にはMySQLのパスワード変更が必要だ。しかし、lolipopはphpMyAdminへのログインパスワードは変更できるが実際のMySQLへの接続パスワードは変更できない。こりゃ困った。

ということで、とりあえず俺が行った対策を披露。やり方は簡単。ちなみにこれはデータベースを複数持てるチカッパプランでの話なので悪しからず。

A、phpMyAdminでデータベースのバックアップを取る。
1、 phpMyAdminにログインしたら、左カラムで該当するデータベースをクリック

2、エクスポートをクリックして実行

B、新しいデータベースを作る。
1、ロリポップのユーザー専用ページから WEBツール→データベース→作成 で新しくデータベースを作成する。
2、 phpMyAdminで新しいデータベースにログインし、先に取ったバックアップデータをインポートする。

その後、wp-config.phpを新しく作ったデータベースの情報に書き換えれば終了。とりあえずこれで新しいデータベースとパスワード、つまり抜き取られていない情報での運用を開始できる。

データベースがひとつしか持てないロリポプランの場合はどうするかだが、これは実際に試したわけじゃないので推奨はできないけれど、データベースのバックアップが終わったら一旦データベースを削除して新しく作れば行けるかもしれん。いずれの場合も自分で作ったデータベースだけをバックアップすること。ココ重要ね!データベースを選択しないでバックアップを取るとエラーが出てインポートできないからね。絶対に自分で作ったデータベースだけをバックアップすること。大事なことなので2回言いましたよ、ええ。

【追記】
MySQLパスワードの書き換えは、現在順次ロリポップが行っている模様。だから普通のユーザはそのままロリポップに任せていたほうが無難かもしれん。このエントリはパスワード書き換えが必要になった時にでも参照してもらえればこれ幸い。

lolipopのWordPressへの大規模攻撃 続報

かなりのところで話題になっているlolipopサーバのWordpressサイトへの大規模攻撃だが、lolipopの発表によると、なんと8438件も攻撃による被害を受けていたらしい。発覚したのが昨日だから、たった1日であちこちやられてしまったことになる。

ここもNucleusを稼働させるまで仮店舗でWordpressを使っていた。恥ずかしながら問題になっているwp-config.phpのパーミッションは644とかのままで、ハッキングされる可能性は十分にあった。しかし、なぜかここは被害を免れた。理由はよくわからないが単純に運が良かったのだろう。昨日のエントリにも書いたが、Wordpressと同じようにMySQLを使った動的生成タイプのCMSであるNucleusはインストール直後にセキュリティ上重要なファイルのパーミッションを変更しないと使えないように出来ている。Wordpressもそのような「お約束」があってもいいような気がする。

今回の攻撃はWordpressのwp-config.phpから得た情報でサイトを改ざんしたものと思われる。だから、サイトの被害を受けていないところでも、wp-config.phpのパーミッション644とかであったところは大事な情報が抜き取られている可能性がある。lolipopはwp-config.phpのパーミッションを400に変更したりウイルススキャンをかけたりと対策を施してくれているのであるが、まだまだ収束しない可能性も残っているってことだ。

さあて、ヤラれる前にデータベースのパスワード変更しておくか。

lolipopのWordPressサイトが改ざんされているらしい

なにやらlolipopのWordpressサイトが改ざんされているらしい。

ロリポップのWordPressサイトが次々と『Krad Xin』にハッキングされている様子 | room402

WordPress › フォーラム » サイト改ざん?

改ざんされると文字コードが「UTF-7」に変更されたり、サイトタイトルが「Hacked by Krad Xin」に変更されたりする模様。

管理画面へのログイン画面はこんなふうに書き換えられてしまうようだ。

フォーラムでも書かれているが、WordpressというよりMySQLを直接いじられているような感じがしないでもない。Wordpressはつかいやすいっちゃぁ使いやすい。だけど、Nucleusでは確認出来る管理操作履歴が確認できなかったり、初期導入時にセキュリティ上重要なファイルのパーミッションを変更しなくても使えたりと、少々脇が甘い感じもする。

とはいえ、MySQLのサーバ情報を何らかの形で抜かれたのだとしたら、これはちょっとヤバイ状況かもしれん。念のためMySQLのパスワード変えておこうかなぁ。

カテゴリ問題も解決

カテゴリを指定するとエラーが出た問題も、やっぱりプラグインが悪さしていた。該当のプラグインはインストールしてあるもののほとんど機能としては使っていなかったのであっさり削除。これでほぼ完璧にNucleusのサイトは移行できた。

あと設定したいのがアクセスログ解析とRSSリーダ。これは前はcronで動かしていたのだけれど、出来るかどうか調べてみないとわからない。まぁ、とりあえずこのサーバはプランを変更したのでSSH接続も可能になったから、スクリプトでも組めばどうにかなるだろ。

そこまで出来たらもう完璧だな。

祝!ほぼ復活

とりあえずほぼ復活したので告知。エントリが出来なかったのはプラグインのひとつが邪魔をしていたからだった。そのプラグインを削除したら問題なく動いた。

ということで、過去に遡って、Wordpressでのエントリもこっちに移す予定。

ただ、問題が1つだけあって、カテゴリでの抽出とかができなくなってる。ちょっと意味わからんのだけど、これもプラグインのような気がするので、不要なプラグインを削除すればどうにかなるかもしれん。

サーバ復旧メモ4(WordPress)

あれから色々やってみたが、新規エントリは未だに出来ない。困ったなー。

ということで、今度はsakura Internetに仮登録してチャレンジしてみた。やってみたのは、

  1. Nucleus3.65の新規インストール
  2. Nucleus3.65上から、LolipopのNucleusで作成したDBバックアップを復元

これでやったら見事にうまくいった。こりゃ使えるかも・・・ということで、こっちのサーバでもまずNucleus用のDBを全部削除し、Nucleus3.65を新規インストール、その後バックアップしておいたデータを読み込ませてみた。しかし、Lolipopでは見事に失敗。なんでこうなるのか意味がわからん。もしかしたらDBを別なものにしないとダメなのかも・・・などと思ったのでLolipopのプランをもうワンランク上げて試してみた。しかしこれもダメ。なんなんだよLilopop。無駄金使っちゃったじゃねーか。

実際使ってみると、sakura InternetのほうがFTPの転送スピードも早いし、なによりサーバーらしい挙動というかなんというか、かっちりしている感じで宜しい。これもいらねー事すると無駄金になりかねないので、まずはお試し期間で全てチャレンジしてみることに。sakura Internetのほうがうまくいく確率は高いから、多分またすぐにサーバ移管だと思う。なんだかトホホな感じだなぁ。

サーバ復旧メモ3(WordPress)

昨日の段階ではRewrite Modでの個別URLの変換は出来ないと思っていたのだが、先ほど.htaccessにその記述をしたらきちんと動くことを発見。Nucleusの文字化けもアップグレードしたら解決。前と同じ環境にほぼ移行できたメデタシメデタシ。

のはずだったんだが、仮説サイト(つまりココ)のエントリをNucleusに移動させようとしたらNucleusで新規エントリが書き込めないことを発見。ちょっと意味わからんのだが、エントリの書き込みのみが出来ない状況のようなのでほぼMySQLでの問題だと思う。さぁ困った。どうしていいかわからないぞっと。

とりあえずNucleusのフォーラムとかで質問してみようかと思う。

参ったなぁ。

サーバ復旧メモ2(WordPress)

Ext2Fsdを使って、無事旧サーバのディスクからVMwareの仮想ディスクイメージを取り出す事ができた。まずはVMwarePlayerで仮想マシンを立ちあげ、必要なデータを吸い出す。というつもりだったのだが、なぜかVMwarePlayerで仮想マシンが立ち上がらない。おかしいなと思いつつ、エラーメッセージを見るとロックファイルが云々みたいなことが書かれている。フーンと思いながら仮想ディスクのディレクトリを見ると確かにロックファイルが残っているようだ。これらのファイルを削除して再チャレンジしたらあっけなく起動した。

移行に必要なデータはMySQLの中身とNucleusの設定ファイルだ。その前に新サーバに以前まで使っていたヴァージョンのNucleusを入れてみないといけない。だけどそんな古いやつは日本のNucleus本家には置いていないので、本家本元のサイトから探しだして入れてみた。当然英語版ね。で、先ずはそれを入れる。これは問題なくアップロード出来た。

次にMySQLのデータをインポート。まずは旧サーバからデータを取り出す。Linuxのコマンドプロンプトから

mysqldump データベース名 -umity -u ユーザ名 -p> 出力ファイル名

とやって、パスワードを入れればデータ取り出し完了。それを新サーバのphpMyAdminからインポートする。簡単簡単・・・のはずだったのだが、ここでつまずいた。どうしてもデータが読み込めないのだ。エラーメッセージなどで調べてみると、MySQLバージョン4.x以前からエクスポートしたsqlファイルはTYPE = MyISAM を ENGINE = MyISAM に変更するのがお作法で、すでにMySQL4の頃から推奨されていたらしい。だが、どうやらNucleusはしばらくTYPE = MyISAMでやっていたようで、ここが引っかかってインポート出来なかった模様。エディタでこれをすべて置換してやったらバッチリ読み込んだ。メデタシメデタシ。

その後、よーく考えたらMySQL以外は旧サーバのデータをどんどん新サーバにぶち込めばいいだけだったので、Nucleusの各種ファイルも含めてどーんとアップする。結構なサイズがあって驚くが、まー、9年も貯めたデータだからこんなものか。

旧ヴァージョンでNucleusのサイトを見たら文字化けの嵐でどうなることかと思ったけれど、Nucleusをアップグレードして最新にしたらいままで通り綺麗に表示された。バンザイ。

問題は個別エントリのURLで、いままではApacheでURLをRewriteしていたのがこれからは使えないことが判明。一ヶ月も放置していたのでGoogleのインデックスはほとんど消えちゃっているようだけど、はてブとかは残っているのでとりあえずはどうにか対処しないとダメだな。

サーバ復旧メモ1(WordPress)

まずはぶっ飛んだサーバからHardDiskを外し、いろんなことができる環境が揃っているメインマシンに接続。接続はUSB-IDEコネクタで。どういうアレかわからんが、3.5インチ用の電源を忘れたので、PC電源から電気をもらう。こんな感じで接続終了。

メインマシンには予めVMwarePlayerを入れて、旧サーバのディスクイメージから起動できるようにしておく。

問題は旧サーバのHDからどうやってディスクイメージを抜き取るかだ。旧サーバはLinuxで動かしていたのでファイルシステムはEXT3を使っている。WindowsはそのままではEXT3は読めない。抜き出す方法は大きく分けて2つ。ひとつはUbuntuなどCDで立ち上がるLunuxディストリを用意し、CDなどからLinuxを立ちあげて抜き出す方法。もう一つはWindows上からEXT3を読めるようにしちゃうこと。最初の方はあまり芸がないので、いままでやったことのないWindowsから直接EXT3を読めるようにしてみよう。

調べてみると、ソフト上でLinuxのファイルシステムを展開する方法と、Windowsのエクスプローラで直接操作できるようにするものがあるらしい。で、ちょっと調べたらLinuxマシンのバックアップと、ext3に潜む罠というのを発見。その中でExt2Fsdってのが良さげだったのでチャレンジ。

WindowsでLinuxパーティションを読み書きするには(Ext2Fsd編)

まずはExt2Fsd Projectに行ってソフトをダウンロード。ダウンロードリンクはページの中ほどにあるようだ。ダウンロードしてインストール以降は上の参考ページの通り。少々戸惑ったが無事操作できるようになった。

旧サーバは、ハードを作ってからケースを変えたりCPUを変えたりしたものの、内部はほとんどいじっていない。だから何処に何を入れてあったのかさえ忘れてしまっていてた。というか、Linux自体が久々で、ディレクトリ構造さえ忘れかけている始末。それでも記憶を辿ってどうにかディスクイメージにまでたどりつく。見つけたディスクイメージをとりあえずメインマシンにコピーする。マウントされた状態なので、オリジナルのディスクイメージをそのまま使うこともできるのだけれど、元が飛んだら元も子もないのでコピーで操作することにしたのだ。

つづく

相変わらずWordPressはスパムが多いね(WordPress)

Nucleusの時は、あるプラグインと設定でスパムコメントはほぼ完全にシャットアウト出来ていた。それに比べ、MovableTypeとこのWordpressは本当にスパムコメンが多くて驚く。あまりにスパムが来るので、Akismetを有効にした。これでとりあえずは手間はかからない状態になった。

ターゲットになりやすいかどうかは多分に普及率が影響しているのだろうと思う。そのため、普及率の高いMTやWPはスパムコメント等の対策用のプラグインなども強力なものがあるが、なんつーか、攻撃されやすくて対策用のプラグインが必須ってのはなんだか気分が悪い。PCとかで言うと、そのままじゃ遅いからグラボを入れ替えなきゃダメだとかって話のような気がするからだ。

WordPressは使いやすいしアップデートもしやすい。とにかく簡単だ。だけどやっぱりNucleusに戻ろうと思う。

サーバ復活のためのメモ(WordPress)

サーバ復活のために調べておくことなどをメモしておく。

  1. MySQLのデータのインポート、エクスポート
  2. Nucleusのスキン、CSS等の移行

1についてはいろんなサイトに書かれてあるので、基本的にはどうにかなると思う。問題はデータ自体よりもエントリナンバーもそのまま引き継がれるのかということ。前のサーバのURLはエントリナンバーをそのまま使っていたので、その番号が変わると内部リンクとかが無茶苦茶になってしまう。

もしナンバーが引き継がれないとしたら、これはもう大問題で、.htaccessなどで4000近くあったエントリを全てリダイレクトしてやらにゃならん。これは前のサーバを動かしてエントリ一覧をテキストベースで抽出すればやって出来ないことではない。だけどあまりやりたくない作業なのは事実。

2についてはNucleus自体のヴァージョンが大きく違うので、もしアレだったら前のサーバで動かしていたヴァージョンでとりあえず移行を完成させた後にCMS自体をアップグレードしていくという手法を取らざるを得ないかもしれん。このやり方が出来るかどうかはやってみないとわからない。まずは最新ヴァージョンでの移行を試しダメだったらこの方法をとるか、それとも最初から以前のヴァージョンで移行を試みるか悩むところだ。最新ヴァージョンのNucleusがこのサーバで動くのは確認済みなので、要は「どっちが簡単で確実なのか」ということだけだ。

冷静に考えると、今まで使っていたヴァージョンで移行をしたほうが確実と思える。なぜならこの方が旧サーバと新サーバの相違点が少なくなるからだ。この方法だと注意すべきはデータベースの移行だけからだ。とにかく以前の状態に近づけてサイトを作り直し、その後Nucleusのアップデートをすればいい。

と、とりあえず書いていくと何らかの結論は出るもんだなーと思った。まる。

CMSをインストールしてみる(WordPress)

このロリポップ!サーバではWordpressやMovabletypeは帳簡単にインストール出来るようになっていて、ほとんど苦労なしに使えるようになる。あまりに簡単なので仮設サイトはWordpressで運用することにした。

WordPressにした理由はもうひとつある。今まで使っていたNucleusがFTPでうまくアップロード出来なかったのだ。アップロードしても一部のファイルだけアップロード出来ないのである。この原因はさっぱりわからなかったのだが、このロリポップ!サーバはWebDAVも簡単に使えるようなので、そっちを使ってアップしてみるととりあえずアップできた。これでデータ移管の下準備もほぼ完了だ。

仮運用サイトはいままでのURLと若干違うので、ルートディレクトリと今までと同じURLに誘導用の簡単なHTMLを入れて大雑把な設定は終了。

と、言いたいところなんだが、実はDNSの更新が進んでいない段階でWordpressのURLとかの設定を変えてしまったり、誘導用のHTMLとサブドメインでのルートディレクトリの設定がおかしくてリダイレクトがループしちゃったりと、あまり大きな声で言えないようなミスもあった。トホホ。

ついでにWordpressにGoogle Analytics やAdsenseを入れようとしたら、これがまた慣れないCMSにしばらくいじっていないのでほぼ忘れたCSSとかで四苦八苦するはめに。一番困ったのはAdsenseの導入用プラグインを入れて登録したら403エラーが出てしまったこと。これはまじめにマイッた。全く原因がわからず悶々としていたのだが、こういう時に頼りになるのはやっぱりGoogle先生だ。先生に「ロリポップ WordPress Adsense プラグイン 403エラー」で尋ねたら一発回答してくれた。さすが先生!原因はWAF(ウェブアプリケーションファイアウォール)だったようで、これを無効にしたらすんなり動いた。WAF(ウェブアプリケーションファイアウォール)でトップページとかのサイトに変なコードを埋め込まれないようにガードしているんだろうね。今回はそれが逆作用しちゃったわけ。Nucleusの一部ファイルが転送できなかった理由も多分これだろうね。

新サーバを選んでみた(WordPress)

ここからしばらくは備忘録も含めて新サーバ稼働までの道のりを書いていこう。

昨日のエントリの通りサーバが死亡してにっちもさっちも行かない状態になったので、まずはレンタルサーバと契約してサーバを確保する。

価格.comで調べてみると、会社はさくらインターネットかロリポップ!のどちらかが良さそう。ブログごときではさほどサーバの容量は必要ない。実際自宅サーバは80GBのHDで、それもVMwareで動かした仮想サーバは30GBくらいの容量しか持たせていなかったが、それでも余裕すぎる容量だった。容量よりもNucleusなどのCMSを動かすため、MySQL・PHPが動くことが必須条件だ。

さすがにいずれの会社も一番安いプランではMySQLは動かない。当然といえば当然だが、ちょっと残念。金額の面からロリポップ!のロリポプランに決定。申し込みフォームに必要な項目を入力してとりあえず登録完了。

今までのサーバといえばコンソールでの操作がほとんどだったので、最初は少々戸惑った。しかしさすがに有料だけあってあらゆるところが至れり尽くせり。こんなに便利だったら自宅サーバなんてやめて最初からこっちにしておけばよかったと思ったくらい。だけど自宅サーバの経験があるからこっちでも簡単に立ち上げられたんだけどね。

次はWordpress稼働まで。

サーバ死亡したので仮運用(WordPress)

【仮運用でのエントリ】
昨日17:00頃、自宅サーバにアクセス出来ないことに気がついた。

最初はADSLのリンク切れだと思ったのでDDNSが更新されるのを待っていたが、待てど暮らせどサーバから「DNS更新しました」メールが来ない。ここで想定されるのはサーバがダウンしたか家のネットワークがおかしくなったかどちらかである。家に帰ればすぐわかるのだが、「俺のサーバがダウンしたんで仙台まで帰るっちゃ」なんて言えるはずもなく、ガキどもを遠隔操作して調査することにした。

だが、ガキどもの対応は冷たく、ほぼ無視された。泣ける。仕方ないので怒りのメールを送ったところやっと対応。しかし埒があかない。少しは機械とかいじれるようになれよ(泣)。そんなもどかしい状況の中、判明したのは「家内ネットワークは問題なし」ということと「サーバの電源が落ちている」ということだった。

電源を入れてみるよう頼んだが電源は入らず、電源ユニットのスイッチを一旦切って再度ONしてもダメ。自宅サーバは組み上げて1年以上放置状態だったので、何かが壊れてもおかしくはないが、どうも電源ユニット自体が死亡した感じがする。ああ、ついに逝ってしまった・・・

今の状況では、新たにサーバを組み立てる財力も気力も無い。更には自宅サーバと言えどもサーバダウンだネットワーク障害だといった問題は確実に発生し、自宅にいない今じゃその対処も出来ない。そろそろ自宅サーバも卒業かもしれん。

ということで、自宅サーバからレンタルサーバに鯖移管した。過去のコンテンツは自宅に戻った時でないとデータも吸い上げられないのでしばらく仮運用、それもレンタルサーバでお気楽極楽に使えるWordpressdで仮運用しよう。自宅に戻るまでにこのサーバに以前から使っていたNucleus環境を整え、データ移管して本格運用再開する予定。多分来月以降だな。

2013年06月のブラウザシェア

7月は北海道も暑いぜ。こんなに暑いとは予想もしていなかったぜ。暑いのは大嫌いだぜ。という心の叫び声でますます暑くなる今日このごろ、北海道なんだからせめて湿度だけは低くあって欲しいと願いながら6月のブラウザシェア、行ってみよう。

[pdf]

6月は全体として大きな動きはなかったが、ほぼFXの一人負けで終わった。過去は最大で40%弱のシェアを誇ったFXだが、今では2年半くらい前にchromeに抜かれ、ついにはsafariにも抜かれて4番目に転落してしまった。このペースで行くとIEのシェアNo.1転落も時間の問題だろう。ネットにアクセスする機器のWinodws離れが顕著に読み取れて面白い。

各ブラウザシェアは次の通り。
IE 38.7%(+0.2%)、chrome+Android 30.1%(+0.4%)、safari 13.8%(+0.2%)、FX 13.2%(▲0.7%)

[pdf]

ブラウザヴァージョン別ではIE9からIE10への乗り換えが進んでいるのが顕著に出ている。IEの中でシェアが分散したため、一位に踊りでたのはchromeだった。

このブラウザヴァージョン別、もともと余りにもシェアの大きかったIEをもう少し細かく見てみようと思って始めたものだが、ここまでIEのシェアが落ちてしまったこと、FXがヴァージョンインフレ状態でブラウザヴァージョン別調査はほとんど意味をなさなくなっていることなどもあって、そろそろ続ける意味もなくなってきたように思う。IE10のシェアの動向によってはそろそろ調査終了かもしれん。

上位の個別ブラウザシェアは次のとおり。
1位 chrome 19.7%(前月+1.7%)、2位 IE9 14.9%(前月▲4.2%)、3位 safari 13.8%(前月+0.2%)、4位 FX4以降 13.0%(前月▲0.7%)、5位 IE10 11.6%(前月+5.3%)、6位 android 10.4%(前月▲1.3%)