nan.piedey.co.jpで稼働していたサービスであるHTML-LINT RANKINGを終了しました。一応、その経緯の記録です。
- 2012/08/29頃。見慣れないcronからのメールが届く。save_entropyの実行エラーだが、心当たり無し。最初はスルーしたが、侵入されて変なスクリプトを仕込まれ、それが侵入者の意図通りに動作していない可能性に気づいて調査開始
- nan.piedey.co.jpに遠隔ログインできないことが判明。ircdは正常稼働中だが、Tera Termでアクセスしても何も返事が返ってこない
- 侵入者によるログイン妨害という可能性に思い至る
- ネットを検索した結果、save_entropyは特に異常でも不正でもないと分かり、侵入よりも故障を疑う
- サーバ設置場所の管理者に依頼して、電源の入れ直しを依頼する (ログインできないので、通常の再起動は無理と判断)
- 電源を入れ直した結果、ログインできた。Tera Termをログインしたまま放置して寝てしまう
- 2012/08/30朝。開いたままのTera Termを操作すると極端に重いことが判明。1文字打ってからエコーバックされるまで数分以上掛かる。それでもやっとps axすると、HTML LINTのCGIのプロセスが多数実行されていることが判明
- 手間の掛かることは対策としてできないぐらい重いので、HTML-LINT RANKINGのアカウントのフォルダ名を変更してアクセス不能に(/homeでmvを1回)
- CGIにアクセスしているプロセスを1つkill。その後、他のプロセスも終わっているのを確認
- やっとまともに操作できるようになったので、httpdのログをチェック
- アクセス元は複数あることが判明
- 明らかに日本ではない場所にある意図しないサイトのチェックに使用されているが、結果を見ること無く次のアクセスが始まっているので、実際にはチェックのために使用していないと推定
- 1つの解釈として、SEO対策のために他のサイトからアクセスされた風を装う踏み台にされていると想定 (これは単なる想定なので事実か否かは不明)
- どのように解釈するにせよ、意図した使われ方では無い方法で便利に利用されているのは明かなので、サービスの存在意義も終わっていることでもあり、HTML-LINT RANKINGの終了を決断
- mvで変更したフォルダ名は戻さないで、サイト表紙の説明文を更新
- 全終了
考察 §
ログインできない現象は単純に「1文字1つのエコーバックに数分以上かかる負荷状態」ゆえのもので、異常ではなかったと想定できます。save-entropyコマンドの異常も、サーバの過負荷が原因と推定できます。
ですので、以下のようにまとめられます。
- サーバ内部への侵入は無かった
- ハードの故障は無かった
- サーバが過負荷になった結果、様々な機能に不調が起きた
- 何らかの目的でプロキシ的に便利に使われた
匿名プロキシを公開していたわけではありませんが、HTML Lintのチェッカーは単にアクセスがあれば良いという用途には使用できてしまったようで、そこは盲点でした。
save-entropyに関するエラーメールの1つ(参考) §
Subject: Cron <operator@nan> /usr/libexec/save-entropy
Abort trap
override r-------- operator/operator for /var/db/entropy/saved-entropy.6? (y/n [n]) not overwritten
override r-------- operator/operator for /var/db/entropy/saved-entropy.5? (y/n [n]) not overwritten