あのさ、今日、ちょっとヤバい話をしたいんだけど、いい?で、これ、マジでヤバいから、最後まで聞いてほしいんだ。
何の話かっていうと、WordPressのトラックバックとかピンバックっていう機能の話なんだよね。で、「え、トラックバック?ピンバック?何それ?」って思った人、多いと思うんだけど、まあ、知らなくても無理はない。だって、最近、あんまり使われてない機能だから。
でもね、この機能、実は、すごく危険なんだよ。で、危険っていうのは、DDoS攻撃に悪用されるってこと。で、DDoS攻撃っていうのは、サーバーに大量のアクセスを送りつけて、サーバーをダウンさせる攻撃なんだけど、これが、トラックバックとかピンバックを使ってできちゃうんだよ。
これ、実際にあった話なんだけど、ある企業のサイトが、トラックバック・ピンバック機能を悪用したDDoS攻撃の踏み台にされて、すごい目に遭ったことがあるんだよ。で、その話を聞いたとき、「マジか…」って思ったんだけど、でも、これって他人事じゃないんだよね。誰にでも起こりうることなんだ。
そもそもトラックバックとかピンバックって何?
まず、基本的な話から始めるんだけど、トラックバックとかピンバックって、何なのかって話。で、これ、意外と知らない人が多いんだよね。
トラックバックっていうのは
まず、トラックバックっていうのは、自分のブログ記事で、他の人のブログ記事にリンクを張った時に、相手のブログに「あなたの記事にリンクを張りましたよ」っていう通知を送る機能なんだよ。で、相手のブログには、自分の記事へのリンクが表示される。
これ、昔は、結構便利な機能だったんだよ。だって、相手のブログに通知を送ることで、相手のブログとの交流が生まれるから。で、「あ、この人、私の記事を紹介してくれたんだ」って思って、相手のブログを見に行ったりする。
でもね、最近は、あんまり使われてない。だって、SNSとかで記事をシェアすることが多いから。で、トラックバックは、ちょっと古い機能なんだよね。
ピンバックっていうのは
次に、ピンバックっていうのも、基本的にはトラックバックと同じなんだよ。でも、トラックバックは手動で送信する必要があるのに対して、ピンバックは自動で送信される。だから、ピンバックの方が便利。
ピンバックっていうのは、WordPressが自動的に、「あなたの記事にリンクを張りましたよ」っていう通知を送ってくれるんだよ。で、相手のブログには、自分の記事へのリンクが表示される。
これも、昔は、結構便利な機能だったんだけど、最近は、あんまり使われてない。だって、SNSとかで記事をシェアすることが多いから。
WordPressでの実装方法
WordPressでは、トラックバックとピンバックは、デフォルトで有効になってるんだよ。で、「デフォルトで有効」っていうのが、ちょっと問題なんだよね。だって、知らないうちに、トラックバックとかピンバックが有効になってるから。
ピンバックは、XML-RPC APIっていうのを使って実装されてる。で、XML-RPC APIっていうのは、WordPressの機能を外部から操作するためのAPI。で、このAPIを使って、ピンバックの通知を送信する。
このXML-RPC APIっていうのが、実は、すごく危険なんだよ。だって、外部から操作できるってことは、攻撃者にも操作されちゃうってことだから。
どうやってDDoS攻撃に悪用されるの?
次に、トラックバック・ピンバック機能が、どうやってDDoS攻撃に悪用されるのかって話をするんだけど、これが本当にヤバいんだよ。
反射型DDoS攻撃っていう仕組み
まず、反射型DDoS攻撃っていう攻撃の仕組みを理解する必要がある。で、これが結構複雑なんだけど、簡単に説明する。
反射型DDoS攻撃っていうのは、攻撃者が、第三者のサーバーを踏み台にして、標的のサーバーに大量のトラフィックを送りつける攻撃なんだよ。で、攻撃者は、第三者のサーバーに、「標的のサーバーに通知を送ってください」っていうリクエストを送る。で、第三者のサーバーは、標的のサーバーに通知を送る。
この仕組みを使うと、攻撃者は、自分のIPアドレスを隠すことができる。だって、標的のサーバーには、第三者のサーバーからのリクエストしか届かないから。で、標的のサーバーは、「誰が攻撃してるんだ?」って思っても、第三者のサーバーしか見えない。
これ、実際にあった話なんだけど、ある大手サイトが、反射型DDoS攻撃を受けて、サーバーがダウンしたことがあるんだよ。で、そのサイトは、数時間もダウンしてて、すごい損害を受けたんだ。で、「反射型DDoS攻撃って、本当に怖いんだな」って思ったんだよね。
XML-RPC APIがどう悪用されるのか
次に、XML-RPC APIが、どう悪用されるのかって話をするんだけど、これが本当にヤバい。
XML-RPC APIっていうのは、WordPressの機能を外部から操作するためのAPIなんだけど、このAPIには、pingback.pingっていうメソッドがあるんだよ。で、このメソッドを使うと、ピンバックの通知を送ることができる。
攻撃者は、このメソッドを悪用して、DDoS攻撃を行うんだよ。具体的には、攻撃者は、たくさんのWordPressサイトに、「標的のサイトに通知を送ってください」っていうリクエストを送る。で、たくさんのWordPressサイトが、標的のサイトに通知を送る。で、標的のサイトは、大量の通知を受け取って、サーバーがダウンしちゃう。
これが本当にヤバいのは、攻撃者は、自分で大量のトラフィックを送る必要がないってこと。だって、たくさんのWordPressサイトが、代わりに通知を送ってくれるから。で、攻撃者は、少ないリソースで、大きな攻撃ができちゃう。
具体的な攻撃の流れ
具体的な攻撃の流れを説明するんだけど、これが結構複雑なんだよ。
まず、攻撃者は、たくさんのWordPressサイトを探す。で、たくさんのWordPressサイトっていうのは、XML-RPC APIが有効になってるサイトのこと。で、XML-RPC APIが有効になってるサイトは、世界中にたくさんあるんだよ。
次に、攻撃者は、たくさんのWordPressサイトに、pingback.pingメソッドを使って、「標的のサイトに通知を送ってください」っていうリクエストを送る。で、たくさんのWordPressサイトが、標的のサイトに通知を送る。
標的のサイトは、大量の通知を受け取って、サーバーのリソースが消費されちゃう。で、サーバーのリソースが消費されると、サイトが遅くなったり、ダウンしたりする。
これ、実際にあった話なんだけど、ある企業のサイトが、トラックバック・ピンバック機能を悪用したDDoS攻撃を受けて、サーバーがダウンしたことがあるんだよ。で、そのサイトは、数時間もダウンしてて、すごい損害を受けたんだ。で、「トラックバック・ピンバック機能って、本当に危険なんだな」って思ったんだよね。
どんな被害が出るの?
次に、トラックバック・ピンバック機能を悪用したDDoS攻撃で、どんな被害が出るのかって話をするんだけど、これが本当に深刻なんだよ。
1. サーバーリソースの消費
まず、一番わかりやすい被害が、サーバーリソースの消費。で、サーバーリソースっていうのは、CPUとかメモリとか、そういうもの。
大量のピンバック通知を受け取ると、サーバーのリソースが消費されちゃう。で、サーバーのリソースが消費されると、サイトが遅くなったり、ダウンしたりする。
これ、実際にあった話なんだけど、あるブログが、大量のピンバック通知を受け取って、サーバーのCPU使用率が100%になったことがあるんだよ。で、そのブログは、数時間もアクセスできなくなっちゃったんだ。で、「ピンバック通知って、こんなにリソースを消費するのか…」って思ったんだよね。
あと、サーバーリソースが消費されると、他のサイトにも影響が出ることがあるんだよ。だって、共有サーバーを使ってる場合、同じサーバーを使ってる他のサイトも、リソースを共有してるから。で、一つのサイトがリソースを大量に消費すると、他のサイトも遅くなっちゃう。
2. 知らぬ間に攻撃の踏み台にされる
次に、知らぬ間に攻撃の踏み台にされるっていう被害。で、これが本当に怖い。
攻撃の踏み台にされるっていうのは、要するに、自分のサイトが、他のサイトを攻撃するために使われちゃうってこと。で、自分のサイトが、他のサイトを攻撃してるって知らないうちに、攻撃に加担しちゃってるんだよ。
これが本当に怖いのは、自分のサイトが、攻撃者として認識されちゃうってこと。だって、標的のサイトには、自分のサイトからのリクエストが届くから。で、標的のサイトは、「このサイトが攻撃してる」って思っちゃう。
これ、実際にあった話なんだけど、ある企業のサイトが、知らぬ間に攻撃の踏み台にされて、標的のサイトから、「攻撃をやめてください」っていうメールが届いたことがあるんだよ。で、その企業は、「え、攻撃なんてしてないよ」って思ったんだけど、よくよく調べてみたら、自分のサイトが、攻撃の踏み台にされてたんだ。で、「知らぬ間に攻撃に加担してたのか…」って思ったんだよね。
3. ホスティング会社からのサービス停止
次に、ホスティング会社からのサービス停止っていう被害。で、これが本当に深刻。
サーバーリソースを大量に消費すると、ホスティング会社から、「サーバーリソースを大量に消費してるから、サービスを停止します」っていう通知が届くことがあるんだよ。で、サービスが停止されると、サイトがアクセスできなくなっちゃう。
これが本当に怖いのは、自分が悪いことをしてないのに、サービスが停止されちゃうってこと。だって、攻撃の踏み台にされてるだけなのに、ホスティング会社からは、「あなたのサイトが問題を起こしてる」って思われちゃうから。
これ、実際にあった話なんだけど、あるECサイトが、大量のピンバック通知を受け取って、ホスティング会社から、サービスを停止されたことがあるんだよ。で、そのECサイトは、数日もアクセスできなくなっちゃって、すごい損害を受けたんだ。で、「ホスティング会社からサービスを停止されるなんて…」って思ったんだよね。
4. IPアドレスのブラックリスト登録
次に、IPアドレスのブラックリスト登録っていう被害。で、これも結構深刻。
攻撃の踏み台にされると、自分のサイトのIPアドレスが、ブラックリストに登録されることがあるんだよ。で、ブラックリストに登録されると、他のサイトからのアクセスが拒否されたり、メールが届かなくなったりする。
これが本当に怖いのは、ブラックリストから削除されるのが、すごく大変ってこと。だって、ブラックリストに登録されると、「このサイトは危険なサイトです」って認識されちゃうから。で、ブラックリストから削除されるには、ブラックリストの管理者に、「私のサイトは安全です」っていう証明をする必要があるんだよ。
これ、実際にあった話なんだけど、ある企業のサイトが、攻撃の踏み台にされて、IPアドレスがブラックリストに登録されたことがあるんだよ。で、その企業は、ブラックリストから削除されるまでに、数週間もかかったんだ。で、その数週間の間、メールが届かなくなっちゃって、すごい損害を受けたんだよ。
5. 帯域幅の消費
最後に、帯域幅の消費っていう被害。で、帯域幅っていうのは、サーバーとインターネットの間のデータ転送量のこと。
大量のピンバック通知を受け取ると、帯域幅が消費されちゃう。で、帯域幅が消費されると、サイトが遅くなったり、ホスティング会社から、追加料金を請求されたりする。
これ、実際にあった話なんだけど、あるブログが、大量のピンバック通知を受け取って、帯域幅を大量に消費したことがあるんだよ。で、そのブログは、ホスティング会社から、追加料金を請求されたんだ。で、その追加料金っていうのが、数万円だったんだよ。で、「ピンバック通知って、こんなにお金がかかるのか…」って思ったんだよね。
どうすれば防げるの?
ここまで、トラックバック・ピンバック機能を悪用したDDoS攻撃の被害について話してきたんだけど、「じゃあ、どうすれば防げるの?」って思うよね。
答えは簡単。XML-RPCとPingback機能を無効化すること。これだけ。
1. XML-RPCを無効化する
まず、XML-RPCを無効化する方法。で、XML-RPCを無効化すると、ピンバック機能も無効化される。
XML-RPCを無効化する方法は、いくつかあるんだけど、一番簡単なのは、プラグインを使う方法。で、「Disable XML-RPC」っていうプラグインを使うと、簡単にXML-RPCを無効化できる。
あと、.htaccessファイルを編集して、XML-RPCを無効化する方法もある。で、.htaccessファイルに、以下のコードを追加すると、XML-RPCを無効化できる。
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>
これを追加すると、XML-RPCへのアクセスが拒否される。
2. Pingback機能を無効化する
次に、Pingback機能を無効化する方法。で、Pingback機能を無効化すると、ピンバック通知が送信されなくなる。
Pingback機能を無効化する方法は、WordPressの管理画面から設定できる。で、「設定」→「ディスカッション」→「新しい投稿へのリンク通知を受け付ける」のチェックを外すと、Pingback機能が無効化される。
あと、functions.phpファイルに、以下のコードを追加する方法もある。
add_filter('xmlrpc_methods', function($methods) {
unset($methods['pingback.ping']);
return $methods;
});
これを追加すると、pingback.pingメソッドが無効化される。
3. セキュリティプラグインを使う
次に、セキュリティプラグインを使う方法。で、セキュリティプラグインを使うと、XML-RPCとPingback機能を簡単に無効化できる。
おすすめのセキュリティプラグインは、「Wordfence Security」とか「iThemes Security」とか。で、これらのプラグインを使うと、XML-RPCとPingback機能を簡単に無効化できるし、他のセキュリティ対策もできる。
4. ファイアウォールを設定する
最後に、ファイアウォールを設定する方法。で、ファイアウォールを設定すると、不正なアクセスをブロックできる。
ファイアウォールには、いろんな種類があるんだけど、WordPressには、「Web Application Firewall(WAF)」っていうファイアウォールがおすすめ。で、WAFを使うと、XML-RPCへの不正なアクセスをブロックできる。
WAFは、セキュリティプラグインに含まれてることが多いんだよ。だから、セキュリティプラグインを使えば、WAFも使える。
まとめ
今回は、トラックバック・ピンバック機能を悪用したDDoS攻撃の手口について話したんだけど、どうだった?
まとめると、トラックバック・ピンバック機能を悪用したDDoS攻撃の被害は、以下の5つ。
- サーバーリソースの消費:大量のピンバック通知を受け取ると、サーバーのリソースが消費される
- 知らぬ間に攻撃の踏み台にされる:自分のサイトが、他のサイトを攻撃するために使われる
- ホスティング会社からのサービス停止:サーバーリソースを大量に消費すると、ホスティング会社からサービスを停止される
- IPアドレスのブラックリスト登録:攻撃の踏み台にされると、IPアドレスがブラックリストに登録される
- 帯域幅の消費:大量のピンバック通知を受け取ると、帯域幅が消費される
これらの被害を避けるためには、XML-RPCとPingback機能を無効化することが重要。で、無効化する方法は、いくつかあるんだけど、一番簡単なのは、プラグインを使う方法。
「まあ、今のところ問題ないし、無効化は後でいいや」って思ってる人、ちょっと待って。問題が起きてからでは遅いんだよ。問題が起きる前に、無効化しておくことが重要なんだ。
だから、この記事を読んだら、すぐにXML-RPCとPingback機能を無効化してほしい。で、無効化することで、サイトを守ることができるんだよ。
正直、XML-RPCとPingback機能って、最近、あんまり使われてないから、無効化しても問題ないと思う。だから、ぜひ、無効化してほしい。
WordPressのセキュリティ、不安に思っていませんか?
「自分のサイトは大丈夫だろうか…」
「何から手をつければいいか分からない…」
もしあなたが少しでもそう感じているなら、専門家によるセキュリティ診断を受けてみることを強くお勧めします。
上記のサイトでは、WordPressのプロがあなたのサイトの脆弱性を無料で診断してくれます。問題が見つかれば、具体的な対策方法についてもアドバイスをもらえます。手遅れになる前に、一度プロの目でチェックしてもらい、安心を手に入れましょう。