偽 Googlebot がモシャスして WordPress の xmlrpc.php に剣の舞してたお話

エラー!エラー!エラー!

妻は「サイトが止まっている」と言った。

僕は「またぁ?」と答えた。

ブラウザーで妻のサイトにアクセスしてみるが応答がない。ついでに、自分の(この)サイトにもアクセスしてみた。返事がない。サイトは死んでしまった……。

一体何が起こったのだろう?ぼくは、詳しく調べてみることにした。

サイトにアクセス出来ない以上、サーバーに何か起きたのは間違いない。

まずは、サイトをホストしてもらっている Amazon Web Services のコンソールから CloudWatch でリソース状況を確認してみることにした。

CloudWatch の CPU モニターが80%超え!

Oh…orz

CPU 使用率が80%を超えている。たいして人気がない、私ら夫婦のサイトが久々の Yahoo 砲をもらったのかな?

…などといい方向に考えるほど人間ができていない僕が最初に疑ったのは、ログが肥大化しているのかな、ということだった。すぐにnginx のログがあるディレクトリを確認してみると…

error.log が 68.6 MB !!!

うぉぉぃ、またなんかエラーはいてるのか? すぐに vi で表示する。

というエラーが延々と続いている。本当に延々と続いている。変化するのは時刻とエラーの回数だけ。カーソルを動かすと、それはとてもとても綺麗なアニメーションである。いやいや、嬉しくない。

うぉぉぃ、妻よ、またおまえのところか

戦犯が分かったところで、今度は eternal-tears.com のアクセスログを見てみる。

Googlebot が延々と xmlrpc.php にアクセスしていたようだ。しかも尋常な量じゃない。こちらも延々と続いている。こちらは時刻と IP アドレスが変化する。カーソルを動かすと、それはとてもとても綺麗なアニメーションである。全く嬉しくない。リソース不足の原因はこの一連の Googlebot のアクセスのせいのようだ。

xmlrpc.php というのは XML-RPC プロトコルを使うための WordPress のインターフェースである。リモート投稿する場合やトラックバックを投げる時に使うものなのだけど、果たして Googlebot が POST で投げてくるのだろうか?

おまえ、本当に Googlebot か!?

 

とりあえず、ログファイルをアニメーションさせていても始まらない。このログを集計してることにする。

Mac 用のログ解析ソフトは持っていないので、古典的に ピポットテーブルで集計する。

集計の仕方を以下にまとめたので、ぜひご覧頂きたい


Google スプレッドシートでピボットテーブル集計 | 8bitodyssey.com

 

IP アドレス
回数
52.10.165.55
2436
52.24.47.119
3559
52.25.199.249
3573
52.26.48.237
3548
52.26.7.151
3590
52.27.163.28
3496
52.27.179.6
3107
54.148.164.248
3238
54.148.210.66
1230
54.148.9.134
3286
54.149.25.125
1821
54.149.32.142
3503
54.149.51.108
3374
54.149.51.19
3463
54.149.51.205
1439
54.149.6.148
3415
54.149.8.94
3481
54.69.228.145
3678
54.69.229.22
3406
54.69.3.69
3516

ログの量が膨大で Google スプレッドシートが読み込めなかったので、1/4(約10MB 分)に限定してやってみたが、見事に20 IP に収斂した。

散々頑張った後に、以下のようにすればわざわざ Google スプレッドシートで集計しなくてもいいことに気づいた。箸とコマンドラインは使いようって死んだじっちゃんも言ってた。

次にこの IP の正体を暴いてやる。

ターミナルで host コマンドを実行($ dig -x IP アドレス でもいいのだけど、host コマンドのほうが結果がシンプルで見やすい)。それにしても host だの、dig だの、コマンドがいやらしい。

52.10.165.55 の正体は AWS の EC2 らしい。リージョンは海を超えた us-west-2。遠くからわざわざご苦労なこった。

サイトにアクセスすれと ”please fok off. ok thanks.” と表示される。”fok” ってなんだよ。fuck off (失せろ)ってことかな。

本当に Googlebot の時は以下のようになる。

参考:Googlebot かどうかの確認 – Search Console ヘルプ

…というわけで、ひたすら host コマンドを叩いた結果が以下の通り。

IP アドレス
回数
ホスト名
52.10.165.55
2436
ec2-52-10-165-55.us-west-2.compute.amazonaws.com
52.24.47.119
3559
ec2-52-24-47-119.us-west-2.compute.amazonaws.com
52.25.199.249
3573
ec2-52-25-199-249.us-west-2.compute.amazonaws.com
52.26.48.237
3548
ec2-52-26-48-237.us-west-2.compute.amazonaws.com
52.26.7.151
3590
ec2-52-26-7-151.us-west-2.compute.amazonaws.com
52.27.163.28
3496
ec2-52-27-163-28.us-west-2.compute.amazonaws.com
52.27.179.6
3107
ec2-52-27-179-6.us-west-2.compute.amazonaws.com
54.148.164.248
3238
ec2-54-148-164-248.us-west-2.compute.amazonaws.com
54.148.210.66
1230
ec2-54-148-210-66.us-west-2.compute.amazonaws.com
54.148.9.134
3286
ec2-54-148-9-134.us-west-2.compute.amazonaws.com
54.149.25.125
1821
ec2-54-149-25-125.us-west-2.compute.amazonaws.com
54.149.32.142
3503
ec2-54-149-32-142.us-west-2.compute.amazonaws.com
54.149.51.108
3374
ec2-54-149-51-108.us-west-2.compute.amazonaws.com
54.149.51.19
3463
ec2-54-149-51-19.us-west-2.compute.amazonaws.com
54.149.51.205
1439
ec2-54-149-51-205.us-west-2.compute.amazonaws.com
54.149.6.148
3415
ec2-54-149-6-148.us-west-2.compute.amazonaws.com
54.149.8.94
3481
ec2-54-149-8-94.us-west-2.compute.amazonaws.com
54.69.228.145
3678
ec2-54-69-228-145.us-west-2.compute.amazonaws.com
54.69.229.22
3406
ec2-54-69-229-22.us-west-2.compute.amazonaws.com
54.69.3.69
3516
ec2-54-69-3-69.us-west-2.compute.amazonaws.com

全部 EC2 かよ

もう許さん!次回はこの20個の IP アドレスをギッタギタのメタメタにブロックしてやる!

フォームは コメントしてほしそうに こちらを見ている……!

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください