乗っ取られ中のフォトポタ日記。いつから、鳥ブログになったんだ・・・。
ここ1週間ほど、本ブログ、フォトポタ日記が超不安定な状態になっていましたが、12月12日朝3時頃、ようやく復旧いたしました。
なかなか大変な復旧作業でしたので、メモを残しておきます。ふぅ
おや?おかしいぞ・・・
普段、1~2日に1回ほど、フォトポタ日記を見ているのですが、12月になってから表示が非常に遅くなったり、「Internal Server Error」というエラーが出るようになっていました。
自分が利用しているサーバー(さくら・スタンダード)では、複数処理が重なるとエラーとなることがあるので、フォトポタ日記のアクセス状況を見てみました。
普段は10000ビュー/日なのに、70000近くまで急上昇!♪
すると、アクセス数がうなぎ上りに増えていることが分かりました。
普段は1日で10000弱くらいのページビューが、20000くらいに倍増し、そこからもグングン伸びているのです!
「サーバーが落ちるくらい、人気が出てきたか?(更新してないのに)」と呑気に構えていたのですが、12月10日あたりからはトンデモない数に膨れ上がり、ブログ本体はもちろん、管理画面へのログインすらできなくなってしまいました。
ごくごく稀にブログ本体は開けることもあるのですが、見たこともない怪しい広告(でもアダルトではない。少し残念)が表示されてしまう状況。
なんで、流しを紹介してるんだ、フォトポタ日記は(やりかねないけど・・・)
ここにきて、ようやく事の重大性を認識しました。
「もしかして、どこかからアタックされているかも?」
幸い、確認されている異常は以下の3点で、特段、人命や財産、国家や人類の存亡にかかるようなものではなさそうですが、なんとかせねば・・・
- アクセスが非常に重くなっていて、表示されないことが多い
- 表示されても、変な広告が並んでいる
- 管理画面に入れない
なんじゃ、こりゃ~
不調の原因を調べるべく、とりあえずブログのトップ画面ファイルを確認してみます。
本ブログのトップ画面は、https://fotopota.sakuraweb.com
ですが、ファイルとしての実体は「index.php」というファイルになります(世の中の大多数はそうかと)
こちらを開いてみると、明らかに改ざんされたコードが埋め込まれていました・・・!
健康な時のindex.php
改竄されたindex.php。ひどいもんです・・。
また、ブログの各ページ(≒フォルダ)へのアクセスを規程する「.htaccess」というファイルにも、見たことがない記述が埋め込まれていました。
そして、これらのファイルがサーバー内の無数のフォルダの隅々まで配置されていて、その数は、合計で3万個程度という膨大な数・・・。
これら以外にも見たことないファイルやフォルダ、これまた数千個もシンボリックリンク(Windowsで言うところの「ショートカット」)が格納されたフォルダなど、不審ファイルだらけになっています。
もちろん、人間の手でこんなことができるとは思えないので、何らかの不正プログラムによって書き込まれたものと思われます。
このような不正プログラムは、古くは「ウイルス」、最近では「マルウェア」などと呼ばれるようですが、「ホームページ」や「ハッカー」のように、用語の定義を巡って揉めそうなので、以下では、一般的になじみの深い「ウンコ」または「ウンコファイル」と記載することにしましょう。
途方に暮れつつ、人力でこれらのウンコファイルを削除し始めたのですが、驚いたことに、削除してるそばから新しいウンコが製造されてよみがえってきます・・・!
削除しても削除してもよみがえる、膨大な数のウンコ。
拭いても拭いても出てくるウンコ。
ウンコだらけのフォトポタ日記サーバー。
この先、どうなってしまうのでしょう・・・。
根こそぎウンコを拭き取る!
通常、ブログを運営するには管理ソフト(WordPressが一般的で、フォトポタ日記もそうです)と、画像などのアップロードのためにFTPソフトを用いたりします。
しかし、これらのツールだけで数万個のウンコを見つけ出して、かつ、甦る前に拭きとるのは不可能です。
幸い、自分が契約している「さくらサーバー」では、サーバーへのリモートログイン(SSH)が使えるので、UNIXのコマンドラインで調査・対策が打てます。
そこで、以下のように怪しげなウンコを片っ端から削除するところから戦いを始めてみました。
- 不正に製造されたindex.phpファイル
- 普段いじることのないファイルなので、最近10日以内に更新された、全フォルダのindex.phpを削除します。
find . -type f -mtime -10 -name "index.php" | xargs rm
- 不正に製造された.htaccessファイル
- index.phpと同様、最近10日以内に更新された、全フォルダの.htaccessを削除します。
1万個以上ありました・・・。find . -type f -mtime -10 -name ".htaccess" | xargs rm
- 不正コードが埋め込まれたファイル
- index.php、.htaccess以外にも怪しいコードを埋め込まれたPHPファイルがあったので、「怪しいコード」の一部を目印に、全フォルダのウンコファイルを問答無用で削除。
find . -name "*.php" | xargs grep -l "7Vr5etpIEn8AP0VHYSP" | xargs rm
- 見たことがないファイル・フォルダ
- どう見てもアヤシイ、見たことがないウンコファイルやウンコフォルダがあちこちにあったので、同様コマンドで全部削除。
- about.php、radio.phpなどの身に覚えがないphpファイル
- InstallAnywhereという超アヤシイフォルダー
- ブログルートにあった、謎のフォルダ
- ルートフォルダに数千個のシンボリックを格納したフォルダ(FOXなんとか)が作られていました。このフォルダを見つけたときは、ゴキブリの群れ(またはウンコ)を見たときのように鳥肌が立ちましたが、勇気を出してunlinkとrmコマンドで全部削除。
これらの作業によって、とりあえず怪しいウンコ類は削除できたのですが、念のために、現時点でサーバー上で実行されているプロセスを見ると、身に覚えのない、PHPプロセス(index.php)が大量に実行されていました。
どういう仕組みで起動されているのか謎ですが、killコマンドでぶっ殺しても、すぐに別のIDで甦るのでイタチゴッコ状態。
なので、これも以下のコマンドで一網打尽に退治。
二度とよその家でウンコするんじゃねぇぞ!
$ ps aux | grep index.php | grep -v grep | awk '{ print "kill -9", $2 }'
どうやら、これらのウンコプロセスが、各地に大量のウンコをまき散らしていたみたいなので、上記作業を実施するまでのわずかな時間で、各地に子ウンコが生まれていた模様(もう呆れるよ・・・)
なので、もう一度、全フォルダをサーチして怪しいウンコを拭きとって、作業終了です。
ブログの異常に気が付いたのが23時ごろで、ここまで手作業で対処できたのが3時。
猛烈な徒労感と、とりあえず、皆殺しにできた安堵感で眠りに・・・。
まだ、寝てはいけない!
いやいや、寝てはダメ、ゼッタイ!
今までの作業は、侵入者が残していったウンコを処理しただけなので、そもそもウンコされないようにしなくてはいけないです。
眠くてしょうがないのですが、とりあえず、以下のようにトイレに鍵をかけて寝ることにしました。
- さくらサーバーの契約パスワード変更
- 当該サーバーのパスワード変更
- ブログデータベースのパスワード変更
- ブログ管理WordPressのパスワード変更
- ブログ内各フォルダのパーミッションを適正化
どれもこれも、寿限無寿限無のように長~~~~いパスワードに変更です。覚えるのが大変だ。
これからのウンコ対策
他にも、WordPressのセキュリティホールをふさぐために、使用中の大量pluginを最新版にアップデートする必要があると思いますが、もう何年もやってないので、かえって失敗して大変なことになりそうなので、これは別途実施予定。
苦節4時間。ようやく通常モードに戻りました!
一応、フォトポタ日記は定期的にバックアップを取っているので、最悪、どうにもならなくなったら、全部のファイルを消して入れ直すという荒業も残してはあります。
しかし、その作業は気が狂うほど大変なことも予想されますし、今回のような、ゆるいウンコではなく、もっと深刻な被害をもたらす強毒ウンコだった場合も想定しないといけないですね。
普段、セキュリティソフトウェアが何万もの不正アクセスを防いでくれていると思いますが、その有り難さに甘んじることなく、自分でできる対策をちゃんとしておかないといけないですね。
自戒の念を込めて・・・。
ウンコにまみれてますなぁ(笑