WordPressを攻撃されたログを解析した結果


WordPressを攻撃されたサーバーのログ解析をしました。その考察をシェア。

解析した内容は、

  • mysqlのquery log
  • access log

特にquery logを確認できたことは本当に重要だった。どういった情報がデータベースから抜かれた可能性があったか、も調べられたから。

wp-adminへの侵入は、おそらくどこかからパスワードが漏れたようで、passwordを推測してアタックしたようなログはなかった。そして、特にデータを抜かれたこともなかった。しかし、悪意のあるコードは埋め込まれていた。

攻撃は機械的に行われていたので、最低限ロボット向けの対策をしておくべきだ。

対策

参照: http://codex.wordpress.org/Hardening_WordPress

* 基本

table prefixは必ず”wp_”から変える
adminは使わない、SALTをちゃんと設定する。

なぜSALTをちゃんと設定するべきかについてはこちら:
http://codeseekah.com/2012/04/09/why-wordpress-authentication-unique-keys-and-salts-are-important/

WordPressのバージョンは明かさない
wp_enqueue_scriptやwp_enqueue_styleなどを使う際には、4つ目の引数をnullとする

readme.html, readme-ja.htmlを消す

# 以下は、あくまでrobotによる攻撃への耐性

* admin権限アカウントの名称を探す
/?author=1 などをして管理人アカウントのidを取得していた形跡があったので、nicknameを設定しておく、authorページを無効にする、idを表示しない、などの対処が有効と思われる。ユーザー名 “admin”は使わないようにする

* wp-login.php へアクセス、パスワード推測
CAPTCHAを入れる 例)http://wordpress.org/plugins/si-captcha-for-wordpress/
→ 連続失敗した場合の対応 http://wordpress.org/plugins/limit-login-attempts/
→ id:adminは使わない、passwordは推測されないようなものを使う
→ Google Authenticatorなどを使う
→ WPをインストールする時点で、ディレクトリをかえておく?
参照: http://wpdocs.sourceforge.jp/Giving_WordPress_Its_Own_Directory

* wp-admin内に入ろうとする
→ wp-admin にBASIC認証などを入れる

* wp-adminにアクセスされたら

プラグインをインストールするのを不可にする
→ ftp/sftpのパスワード入力を必須にする

ftp/sftpなどでファイルをアップしている場合は、apacheとは別でuserを作る。そうしないと、ファイルのpermissionを644にしても、theme editorで書き換えられてしまう
* wp-adminアクセス後の一般的な攻撃
プラグインのなかで、書き換えられるファイルがあるかを一通り試す
→ 使わないプラグインは消しておく
→ permissionは644と755。777とかアリエナイヨ
→ 一切編集を不可にする

define('DISALLOW_FILE_EDIT', true);

レンタルサーバによっては、パーミッション変更できなかったり、変更したら色々不具合があったりするのがある(ロリ○とか)ので、気になるのであればDISALLOW_FILE_EDITを設定しておくか、別のサーバーにしましょう。
* テーマのなかで、書き換えられるファイルがあるかを一通り試す

→ 使わないテーマは消しておく
→ permissionは644と755。777とかアリエナイヨ
※ twentytenなど、デフォルトで入っているであろうテーマから攻撃された形跡あり。不要なら消しておく

* wp-config.php を探す
wp-configにはデータベース情報が入っているので、これを取られるとWP部分以外にも被害が及ぶ可能性がある
→ wp-configをWPの一個上の階層に置いておく(この効果については諸説あり)
→ wp-load.php でwp-config.phpのファイルを指定できるので、名前や場所を変えちゃうのも可能

まあ基本的に、wp-adminに入られたら、もう負けです。

やられた後の処理

改竄されたファイルを調べる。テーマ、プラグインだけでなく、インストールしたWordPress全体について調べておく。Diffmergeなどでちゃんと確認しておくこと。

データベースの中身も書き換えられているかもしれないので、確認しておく。

色々解析させていただき、勉強になりました。

この投稿へのコメント

コメントはありません。

コメントを残す

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

この投稿へのトラックバック

トラックバックはありません。

トラックバック URL