セキュリティー

知り合いのサイトがWordPressの改ざん攻撃を食らった話

2月に話題になってたWordPressの脆弱性問題、知り合いのサイトが当選して改ざんされました。

ログを見てみると怪しいアクセスが色々ありますね、、

この画像はxmlrpc.phpを狙った攻撃、2月に話題になってたREST API攻撃の画像ではありません。

こちらはログインフォームのブルートフォースアタック攻撃

WordPressの運用って実はちょっと難しくて、セキュリティーを高めるならWordPressディレクトリにウェブサーバーからの書き込み権限を与えないほうが良いのですよね。

なぜなら、書き込み権限を与えておくと脆弱性を突かれた時に、記事の改ざんにとどまらず、WordPress本体のソースコードを改ざんされたり、最悪の場合サーバー自体を乗っ取られたり、root権限取られたりする可能性もあるからです。

そんなわけで、WordPress本体へのウェブサーバーからへの書き込み権限は外しておくのがセキュリティー的には良いのですが、問題は書き込み権限がないとWordPressのアップデートができないんですよね。

WordPressのアップデートができないと脆弱性のあるバージョンのWordPressを使ってると攻撃をくらう事になります。当たり前ですが(´・ω・`)

それと、WordPressのアップデートを常に許可してしまうと、脆弱性のあるWordPressのバージョンアップも許可することになるので、脆弱性が発覚したら直ちにアップデートという体制を取らないといけなくなるわけです。

ウェブ屋さんならITニュースを每日チェックするので良いかもしれませんが、ユーザーさんはそこまで敏感じゃないので、こういう仕事は保守でやることになります。

例えば僕の場合は既存のテーマを改造してデザインを変えたり機能を追加したりするわけですが、何かれ構わずアップデートされると、せっかく改造したテーマがリセットされる恐れもあったりして、トラブルの原因になったりします。
さらにWordPressのクソなところは、テーマの情報などをDBに保存したりしやがるので、いくらgitでバージョン管理してgit stashとかgit checkoutやらで更新前のバージョンに戻しても、元に戻らないんですよね。

ってことで、DBのバックアップを取って戻せば良いという話になると思いますが、コマンドラインでバックアップを取れない人だとGUIでバックアップを取ることになります。

その場合phpMyAminやらを導入することになりますが、これがまた脆弱性になりうる頭の痛い問題だったりします。

phpMyAdmin他、色々なGUI系のツールを狙った攻撃

こんな感じでGUIのツールを攻撃するアクセスが山ほどきます。

ロシア、台湾、アメリカ、ヨーロッパあたりのIPが多いですが、無差別に攻撃してきてますね。

上記は特にツールを入れてない状態なので、URLから404が返るとおとなしく帰っていくのですが、401とか200のステータスが返ると、またガンガン攻撃してくるので大変うざいのです。

そうなるとIPアドレスでアクセスを許可したり拒否したりって仕組みを導入する必要が出てきたりして、でもGUIでIPアドレス管理できないならCLIでhtaccessとか作ってやらざるを得ないですよね。

誰でも簡単にバックアップできる環境を作ると、さらに攻撃できる環境を作ることになるのでできる限り余計なツールは入れたくないわけです。

バックアップ取るなら、別サーバーから3306でリモートアクセスしてcronで自動バックアップが理想なのですが、そうすると別サーバー用意しないといけなくなって管理が面倒なんですよね。

と、ポピュラーなゆえに色々攻撃を喰らいやすいWordPressなのですが、ちゃんと運用しようとしたらちゃんとした保守体制を用意するか、いっそのこと共用サーバーの方がいいんじゃないかと思ったりしてたりします。

まとまりない記事になってしまいましたが、WordPressをまともに運用するならそれなりにCLIでごにょごにょやらないといけないし、それができないなら古いバージョンでも安定したWordPressのバージョンを入れて更新できないようにするのが折衷案的に理想かなぁと思いました。

何かベストプラクティスがないものか。。

The following two tabs change content below.

SNS