WordPressで構築したサイトは外部攻撃を受けるのでその回避・対処方法

3296479313_91a122bd65_b

 

さて、今日はソンクラーン真っ只中ですが、外へ出ずにずっと部屋で仕事してます。
理由は最近断続的にサーバー落ちるというはた迷惑な現象が起きておりまして、
めんどくさい時はサーバーの再起動でいいやとか思ってたんですが、さすがに
一日2,3回あると夜もおちおちバンコク夜遊びに集中出来ないよ!って事で
ずっとログを垂れ流して状況を見ていた所ようやく原因を特定しましたので
ちょっと対策を書いてみたいと思います。

 

なので、本日はエロっ気遊びっけ無しの技術的な話なのであしからず・・・

 

結構タイ関係のブログをやっている方でもwordpressで構築されている方が割と多いと思いますので
将来的に負荷が掛かってサイトが見れないとき等に参考にして下さい。

 

 

今回外部からサーバー(Wordpressのファイル)が攻撃されいる事を特定出来た理由


disk_io

 

まず、レンタルしているサーバーのコンソールより、どういう状況に陥ってるのかを確認した所、
明らかにおかしい感じのグラフなっているのが良く分かります。
サーバー内の負荷が高まっているというデータが見て取れるんだけど、これだけだと
抜本的原因はなんなんかというのが把握出来きづらいので、サーバー内のログを含めて参照する事に

 

DISK/IO値が通常より高いという事は何かしらのサーバー内部でのプログラムに
負荷が掛かっている証拠であり、当初はアクセス過多から来るMYSQL(DB)の負荷的な物かな
とも思ったけどどうやらそうじゃなさそう。

 

というわけで、Linuxサーバー内のコマンドTOPでリアルタイムで監視する

 

top

 

このログで注視しておきたい点はhttpdとmysqldの項目
そして、右上上部のLoad averageの所が重要であり、
今現在の数値は通常稼働の数値という事でまぁ落ちる事がない数値と思われる。

 

通常の数値なのでhttpd(apache)のログを追う事も考えたけど、タイのインターネット環境的に
サーバーからログをダウンロードするのは現実的でないし(2GBくらいあるし)
絞り込み掛けて表示してログ追うのもめんどくさい(´Д´)

 

ので、とりあえず外部アタックが在るまで暫く待ってみる事二時間くらい(笑

 

top_2

 

内部的なlode Averageが爆発的に上昇およそ、通常時の20倍
それに伴いhttpdのプロセスが積み重なって行く・・・・・
これは・・・・何かあるな(;´-´)

 

って事でTOPで監視しつつ、httpdのアクセス状況をリアルタイムでこっちもチェック

 

log

 

単独でphpにダイレクトPOSTアクセスしてくる変なログを発見

 

grepでコイツをリアルタイムに単独抽出。

 

log_2

ほぼ、一秒単位でアクセスしてくる暇人野郎を補足(笑
まぁどうせツールでしょうが。
アクセス元はどうやらアメリカのヴァージニア州らしいですが・・・
踏み台でアクセスしている可能性も捨てきれないので、生IPじゃないだろうから、
直接はどこかは分かりかねますが・・・・とりあえず、google先生にIPと
このファイルの事を聞いてみる事にする

 

 

104.245.97.218
3 months 3 weeks 1 day 21 hours ago
Open Proxy Detection by IP2Proxy.com

This IP address has been detected as open or anonymous proxy. Please visithttp://ip2proxy.com for more information.

Reported on 21 Dec, 2014 12:30:13 AM
104.245.97.218
6 hours ago
Brute Force

they attack WordPress sites; however I brought down their webserver with a responding attack!!!

Reported on 14 Apr, 2015 12:09:50 AM
104.245.97.218
4 hours ago
Abusing xmlrpc.php in WordPress Installation

Hitting (non-vulnerable) xmlrpc.php w/ about 4 requests per second for hours on end… despite receiving 500 response every time.

Reported on 14 Apr, 2015 02:21:09 AM

 

ふむ・・・どうやら、ここからxmlrpc.phpに攻撃して来るぜって感じ書かれているみたい

 

WordPressのxmlrpc.phpを狙ったブルートフォースアタック 


破壊力抜群そうな名前ですけど(笑
どうやらwordpressの外部からの投稿機能の部分を狙ったクラック攻撃みたいですね。
ログイン関係のIDそして、パスワードを総当たりでデータを送りつけて
不正にログインしようとしてる感じでしょうか。

 

全く持ってめんどくさいであります(;´-´)

 

というわけで具体的に対処してました。

 

Google先生に聞いてみた所、先人の方達が色々と対策を講じているみたいです。
Googleマジで神

 

まず、この攻撃手法から起るサーバーの内部的トラブルの一部に
サーバー内のメモリが無くなるという症状が発生するので、httpd(apache)の設定を書き換え
プロセス数を制限する。

 

この設定を

StartServers 8
MinSpareServers 5
MaxSpareServers 20
ServerLimit 256
MaxClients 256
MaxRequestsPerChild 4000

 

下記の設定に書き換え

StartServers 5
MinSpareServers 15
MaxSpareServers 20
ServerLimit 256
MaxClients 50
MaxRequestsPerChild 0

 

Maxclientsの制限と
MaxRequestsPerChildのプロセスの受付の制限を加える
これでメモリが無くなってパンクするという事は無さそうであるらしい。

 

 

xmlrpc.phpのアクセスを根本的に.htaccessで制限する


というわけで、worpdressのディレクトリー直下の.htaccessを編集
xmlrpc.phpへアクセスが在ったら強制的に存在しない所へ飛ばして処理をさせないようにする

 

RewriteRule ^xmlrpc\.php$ “http\:\/\/0\.0\.0\.0\/” [R=301,L]

 

 

現状この対策をした事で、大量にリクエストが送られてきても
スルーして、サーバーは稼働しているみたい。

 

全くもっていい迷惑であるがまぁ・・・久々に疲れた(´・ω・)
皆さんもサーバーが重くなったと感じたらxmlrpc.phpへ不正にアクセスがないかご確認ください。
割とメジャーな攻撃手法らしいですね。

 

知らなかった(笑

 

 

投稿者プロフィール

K.K

タイ・バンコクに移り住んで6年目に突入。WEB/DTP系の仕事のデザイン・プログラム・サーバー保守等を行いつつ夜な夜な夜の街タニヤ・ナナプラザ・ソイカウボーイ・パッポン・スティサン界隈へ出没しています。

基本的な遊び方は飲み専

[`livedoor` not found]
Pocket