スパムボット攻撃を食らってしまったので対策

Warning: simplexml_load_string(): Entity: line 1: parser error : Space required after the Public Identifier in /var/www/wordpress/wp-content/plugins/wp-hamazon/app/Hametuha/WpHamazon/Constants/AmazonConstants.php on line 168 Warning: simplexml_load_string(): in /var/www/wordpress/wp-content/plugins/wp-hamazon/app/Hametuha/WpHamazon/Constants/AmazonConstants.php on line 168 Warning: simplexml_load_string(): ^ in /var/www/wordpress/wp-content/plugins/wp-hamazon/app/Hametuha/WpHamazon/Constants/AmazonConstants.php on line 168 Warning: simplexml_load_string(): Entity: line 1: parser error : SystemLiteral " or ' expected in /var/www/wordpress/wp-content/plugins/wp-hamazon/app/Hametuha/WpHamazon/Constants/AmazonConstants.php on line 168 Warning: simplexml_load_string(): in /var/www/wordpress/wp-content/plugins/wp-hamazon/app/Hametuha/WpHamazon/Constants/AmazonConstants.php on line 168 Warning: simplexml_load_string(): ^ in /var/www/wordpress/wp-content/plugins/wp-hamazon/app/Hametuha/WpHamazon/Constants/AmazonConstants.php on line 168 Warning: simplexml_load_string(): Entity: line 1: parser error : SYSTEM or PUBLIC, the URI is missing in /var/www/wordpress/wp-content/plugins/wp-hamazon/app/Hametuha/WpHamazon/Constants/AmazonConstants.php on line 168 Warning: simplexml_load_string(): in /var/www/wordpress/wp-content/plugins/wp-hamazon/app/Hametuha/WpHamazon/Constants/AmazonConstants.php on line 168 Warning: simplexml_load_string(): ^ in /var/www/wordpress/wp-content/plugins/wp-hamazon/app/Hametuha/WpHamazon/Constants/AmazonConstants.php on line 168
Pocket
LINEで送る
はてなブックマーク - スパムボット攻撃を食らってしまったので対策

このサイトはさくらのVPSでWordpressを運営していますが、先日サーバーに攻撃を受けて 一時スパムメール送信をさせられていたので、対策の記録を残しておきます。

ただし、サーバー運営の知識はあんまりないので、あってるかどうかわかりません。 なんとか止めた感じです。もっと良い対策があれば教えてもらえるとうれしいです。

広告

攻撃に気づくまでと応急処置

このサイトのサーバーは一応監視として次の2つの手段を用意していました。

  • muninによるサーバー状況の閲覧
  • logwatchでサーバー状況を毎日メール

毎日メール見て、あーうちのサーバー暇そうだなあーっていう確認をしてました。 たまにmunin覗いて、あまりに波風のないグラフで心も落ち着くっていうもんです。

数日前、logwatchのメールで、異常な数のメール送信をしていることに気づきます。 これはその時のメールの一部です。

とにかくpostfix関連で数字が多すぎです。いつもはlogwatchのメールで1通分しかありません。 あやしすぎる。

ああーこれはやっちまったぞ。とりあえず他所様に迷惑をかけてるのを止めねば・・・。

ひとまずmuninで状況を確認すると、ディスクアクセスやネットワークスループットが 割と頻繁に動いていることがわかりました。

普段ここはアクセスが殆ど無くグラフも平坦なので、これはおかしい。

サーバーにアクセスしてtopを見ると、smtpプロセスがたくさん。

ああ、これはイカンと思い、その時は時間がなかったので応急処置として メールサーバーのpostfixをストップさせることにしました。これで よその方に迷惑をかけることは止まるはずです。

プロセスを見るとsmtpも消え、大丈夫なようです。その時は時間がなかったので、 本格的な調査はまた後ほどということにしました。

 

外部メールの転送を疑い、ログのチェック

時間が出来たところで色々とチェックします。 証拠として現在のログを全部テンポラリに移動しました。

この時点では、外部からメールの転送を受け付けないようにしていたのが 設定ミスでがオンになっているのではないかと思っていました。

まずメールログを見ると、こんな感じのメール送信エラーがたくさん記録されています。

postfixの設定を外部受付しないようにしていたつもりなのを再度チェックし、 いろんなサイトを元に書き換えてみました。

結果は・・・・だめ。

一瞬postfixをオンにするとまたメールを送ろうとしています。 ああ、また被害が・・・。

このままじゃダメだと思い、送信メールをすべてドロップし、他に転送しないように 設定しました。

で、何回かメールの設定をチェックしてはオンにして、というのを 繰り返しましたが結果は同じです。

改めて他のログを見ます。

スパムの送信元がローカルからの接続になっていました。

これはだめなはずです。外からではなく内側から送ってたのですから。 外部からメールサーバーに直接送信しようとしてたのではないことがわかりました。

内部の送信しているプログラムを探します。

 

 

送信プログラム特定

この時点ではサーバーにスクリプトが設置されているとはまだ思っておらず、 原因不明のまま調べています。

とりあえずこういう時はログを見ろと見たような気がしたのでそちらをチェック。

PHPのログを見てみます。が、PHPからメール送った的な記録がどう書いてあるのかわからない。 それっぽい記述もわからず、何のプログラムからメールを送っているかが特定できません。

次にnginxのログを見てみます。こういうのがたくさんあることに気づきました。

あやしい。Wordpressのフォルダにあったmains.phpをのぞいてみると、普通にメールを送るプログラムでした。 さらにあやしい。

調べると、Wordpressのアーカイブにはこのソースは入っていませんでした。たぶんこれですね。

ついでにそこと同じ所にbrowndoctor, browndoctordanieljacksonっていう フォルダがあることがわかりました。こういう名前のはWordpressの公式フォルダでは ないはず。プラグインの名前ともかぶらないし。

おそらく攻撃をかけてきた人の名前でしょうか。中は一つは空、もう一つはindex.htmlが ありました。このindex.htmlはこのサーバーをスパムサーバーに登録するもののようです。

どうやったのかわかりませんが、公開しているフォルダにスクリプトが設置されていることが わかりました。なんかの設定ミスなのか、脆弱性なのか・・・。

ひとまずこれらの怪しいファイル・フォルダを隔離しました。

もうちょっとログを見ると、一番最初にmains.phpにアクセスしているのは次のログで、 この回だけGETしています。

たぶん、最初のhtmlでスパムボットのリストに入れられ、別のサーバーからmains.phpを アクセスして存在確認し、その後メールを送る指示を送ってきてたんでしょう。

ここまでで、postfixを起動してもスパムメールは送らないようになりました。

 

 

攻撃ファイル設置方法の検証

さて、攻撃ファイルを設置した方法を考えます。

時間的にも異常な動きをしだした時期のログを見ると、次のものが気になりました。

ソースを覗くと難読化されているPHPのようです。これもwordpressには含まれていないみたいです。 多分これがスパムボットの動作に関係有るのでしょう。隔離します。

と、ここまで様々な攻撃ファイルを見つけましたが、設置方法はわかりませんでした。

今のところ、おそらくプラグインのどれかの脆弱性か、テーマの脆弱性を疲れたのではないかと 思っています。

WordPressのログ設定がほとんどしないようになっていたため、足取りがつかめません。

ログを残すように設定し、使用しているプラグインやテーマを整理して様子を見ます。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*