web-dev-qa-db-ja.com

PHP-FPMをダウンさせるHTTP攻撃

誰かが数分前に私のサイトを攻撃し始め、それによりPHP-FPMが私のvpsのすべてのコア(4)を最大にし、NGINXは現在すべてのユーザーに502を提供しています。

たくさんの異なるエージェントからのリクエストがたくさんあります

xx.xxx.xx.xx--[10/Nov/2014:5:14:35 -0500] "POST/HTTP/1.1" 502 574 "-" "Mozilla/5.0(Windows NT 6.1; WOW64)AppleWebKit/536.11 (GeckoのようなKHTML)Chrome/20.0.1132.47 Safari/536.11 "

さまざまなWordPressサイトからのリクエストもたくさんあります。

xxx.xx.xxx.xxx--[10/Nov/2014:5:14:35 -0500] "GET/HTTP/1.0" 502 172 "-" "WordPress/3.9.2; http:/ /www.xxxxxxx.com ; xx.xxx.xxx.xxxからのpingbackを確認しています "

これはどのような攻撃であり、どうすれば軽減できますか?ある種のボットネットのようであり、その膨大な数のリクエストは、すべての異なるIPとエージェントからの1秒です。

私はフォーラムを実行しているので、私のサイトはnginxをphpに渡すことに大きく依存しています。私はNGINX 1.7.7を使用しており、PHP 5.6.2必要な場合)。攻撃の間、NGINXの負荷は実質的にゼロです。

編集:どうやら私は十分な情報を提供しなかったようです。

私はかなり小さなフォーラムを運営しています。通常は非常に負荷が非常に低い-キャッシュと設定はかなりうまく行っています。誰かが私のサイトに来て、彼が私のウェブサイトを削除しようとするつもりだと私に言った。数分後、私のログは数百(1秒あたり)のこれらのPOSTと、すべての異なるIPおよびさまざまなwordpressブログからのGETです。 502エラーを処理するために、HTOPを使用してサーバーの使用状況を確認し、VPSの4コアすべてのほぼ100%を使用してphp5-fpmを確認しました。すぐにnginxをシャットダウンすると、負荷がすぐにゼロになりました。数時間待ってから元に戻し、攻撃が停止したことを確認します。

現在アクティブな攻撃はありませんが、このユーザーが実行できることを軽減する手助けをしたいと思います。私はOVHのネットワークを使用しているので、Anti DDoS VAC=システムでカバーされています。ただし、これはアプリケーションレベルにあるようで、明らかにここでは役に立ちません。

私はWebサーバーをあまり使いこなしていないので、これらのPOSTリクエストの内容を「チェック」する方法がわかりません。アクセスログからわかるのは、ドメインのルートにPOSTをすべて実行している一意のIPのフラッドです。

5
Maxriff

DDoS攻撃に関連する特性:

これは間違いなく分散型サービス拒否(DDoS)攻撃の特徴があり、これが私が最初に疑うことです。私がこれを信じるように導いた項目は次のとおりです。

  1. さまざまなソース(配布済み)

たくさんの異なるエージェントからのリクエストがたくさんあります

(ログポストに表示されるxxx.xxx.xxx.xxxは、さまざまなIPアドレスからのものであることを示します)

  1. リクエストの類似性

さまざまなWordPressサイトからのリクエストもたくさんあります。

リクエストの類似性は、分散型サービス拒否を信じる原因にもなります。たとえば、ボットネットの所有者がこの特定のタイプのリクエストでサーバーを攻撃するコマンドを発行している可能性があります。

  1. リクエストの「フラッディングボリューム」(サービス拒否)

さらに、リクエストの量が非常に多いため、リソースを使い果たしてしまいます。これがボリュームの急激な増加である場合、それは攻撃またはおそらくバグである可能性があります。また、サイトが人気になり、より多くのリソースが必要になる場合もあります(特に、トラフィックが急激に増加するのではなく、着実に増加している場合)。

DDoS攻撃の実行方法:DDoS攻撃では、悪意のあるボットネットユーザーがマルウェアに乗っ取られた無実のユーザーのコンピューターのボットネットを利用することがよくあります特定のサイトを攻撃する。多くの異なるソースからのあるタイプのリクエストのフラッドは、DDoS攻撃の特徴です。

その他の可能性:

注:ケースはDDoS攻撃のようであり、明確化に基づくと、これらのその他の可能性はありません(特に、男がそうするつもりだと言ったので!)

  1. コードのバグ:TidalWaveが言及したように、コードに問題がある可能性がありますが、私は実際に真のDDoS攻撃である傾向があります。 。あなたのコードがどこにあるかについて私が考えることができる1つの例は、あなたのコードがいくつかのサイトに何かを送信して、このトラフィックをあなたに送り返すことです。おそらく、ブロードキャストすべきではないときに、ブロードキャストを介して何かを送信している可能性があります。注意すべき点の1つは、更新を行った直後にこれが発生した場合、コードの問題である可能性が高くなります。

  2. ウェブサイトトラフィックの増加:サイトの人気が高まる可能性があります。これは、トラフィックが着実に増加し、最終的にリソースを使い果たしている場合に当てはまります。ただし、アクティビティの急激な増加(現在開催されているコンテストの抽選など、Webサイト上の特定の「イベント」に関連していない)は、DDoS攻撃を示している可能性が高くなります。

  3. それは私たちの誰もが考えたことのない何かかもしれません。

緩和策:

DDoS攻撃の防止を調査しているときに見つけたいくつかのサイトを次に示します。 http://www.itbusinessedge.com/slideshows/show.aspx?c=96534http://www.Cisco .com/c/en/us/support/docs/security-vpn/kerberos/13634-newsflash.htmlhttp://www.networkworld.com/article/2170051/tech-primers/four -ways-to-defend-against-ddos-attacks.html

潜在的な緩和策に関する限り、私は彼らから集めたものです:

  • DDoSに対する保護を提供し、帯域幅の使用量ごとに課金しないインターネットサービスプロバイダー(ISP)を使用します。
  • ファイアウォールの設定を調整します(特に法執行機関のためにログに記録します)
  • 自分で行う(DIY)(この分野の専門家でない限り、おそらくそれほど良くありません)
  • エンタープライズDDoS防止ソリューション(コストがかかり、それでも機能しない可能性があります)
  • DDoS攻撃を防ぐように設計されたクラウドサービス
3
Jonathan