PHP eval base64_decode 攻撃とその対処方法

症状

FirefoxChromeなどのブラウザでサイトにアクセスすると、このサイトは危険という
表示がされる。

サイトを調べると、以下のようなPHPのコードをPHPスクリプト内(index.phpの一番上など)に入れられている。

eval(base64_decode("DQplcnJvcl9yZXBvcnRpbmcoMCk7DQ..." ));

攻撃方法

どうやら、 ローカル・ファイル・インクルード攻撃: LFI (Local File Include) attack と
言われる攻撃の模様
PHPスクリプト内で、include 方法に脆弱性があり、外部のファイルを持ってきて実行してしまう模様。
# 以下のStack Overflowより判断

大まかな修正の流れ

以下の答えのトップにある10の手順が参考になります。(英語)

eval base64_decode php virus - Stack Overflow
http://stackoverflow.com/questions/5922762/eval-base64-decode-php-virus

WordPressマルウェアスクリプト攻撃の削除方法

削除前にすること(サイト停止やバックアップなど)が色々あるので、上記を見てまず実施しましょう。

削除方法には、2つ方法があります。

以下サイトからスクリプトをダウンロードして、Wordpressサイトのトップに置き、
Webから実行します。
こちらのスクリプトの方がお勧めです。

How to fix WordPress Malware Script Attack. | Lightrains Technolabs
http://www.lightrains.com/blog/fix-wordpress-malware-script-attack

2つ目は、下記サイトから、cleaner スクリプトをダウンロード実行する

[Solve] Wordpress Malware Script Attack Fix | PHP Tutorials for Beginners
http://www.php-beginners.com/solve-wordpress-malware-script-attack-fix.html

WordPressマルウェアスクリプト攻撃を防ぐ方法

以下のサイトより

How to prevent WordPress Malware Script Attack | Lightrains Technolabs
http://www.lightrains.com/blog/prevent-wordpress-malware-script-attack

php.ini に以下のようにする
disable_functions は、既存のPHPスクリプトと調整してやりましょう。

allow_url_fopen = off
allow_url_include = off
disable_functions = "apache_child_terminate, apache_setenv, define_syslog_variables, escapeshellarg, escapeshellcmd, eval, exec, fp, fput, ftp_connect, ftp_exec, ftp_get, ftp_login, ftp_nb_fput, ftp_put, ftp_raw, ftp_rawlist, highlight_file, ini_alter, ini_get_all, ini_restore, inject_code, mysql_pconnect, openlog, passthru, php_uname, phpAds_remoteInfo, phpAds_XmlRpc, phpAds_xmlrpcDecode, phpAds_xmlrpcEncode, popen, posix_getpwuid, posix_kill, posix_mkfifo, posix_setpgid, posix_setsid, posix_setuid, posix_setuid, posix_uname, proc_close, proc_get_status, proc_nice, proc_open, proc_terminate, shell_exec, syslog, system, xmlrpc_entity_decode,eval, base64_decode, gzinflate"