web-dev-qa-db-ja.com

自分のサイトでボット攻撃を止めるにはどうすればよいですか?

現在、ボット攻撃を受けている(wordpressで構築された)サイトがあります(私が知る限り)。ファイルは何度も要求され、リファラーは(ほぼ毎回)turkyoutube.org/player/player.swfです。要求されているファイルは私のテーマファイルの奥深くにあり、常に「?v=」と長い文字列(つまり、r.php?v=Wby02FlVyms&title=izlesen.tk_Wby02FlVyms&toke)が続きます。

そのリファラーに.htaccessルールを設定しようとしましたが、動作しているようですが、今では404ページが何度もロードされ、まだ多くの帯域幅を使用しています。私の側で帯域幅の使用を必要としない.htaccessルールを作成する方法はありますか?

Robots.txtファイルも作成しようとしましたが、攻撃はそれを無視しているようです。

#This is the relevant part of the .htaccess file:
RewriteCond %{HTTP_REFERER} turkyoutube\.org [NC]
RewriteRule .* - [F]
14

少しはどうですか corbomite maneuver

RewriteEngine on
RewriteCond %{HTTP_REFERER} ^http(s)?://(www\.)?turkyoutube.org.*$ [NC]
RewriteRule ^(.*)$ http://127.0.0.1/$1 [R=401,L]

注:untestedですが、401 Not Authorizedステータスコードを使用して、要求を自分自身にリダイレクトする必要があります。つまり、ボットがリダイレクトを処理する場合でも(非常に低い)、ステータスコードは表示されます。 404ステータスコードの方が効果的です。どちらかがボットに、おそらくgiveめるべきだと伝える必要があります。

ホストをより一致させるために表現を広げると、コメントに投稿したルールも十分です。 libwww-Perlに一致するユーザーエージェントをブロックするために(実際のルールに関する限り)近いものを使用します。

RewriteCond %{HTTP_USER_AGENT} libwww-Perl.*
RewriteRule .* - [F,L]
8
Tim Post

IPブロッキングとは別に、要求されているファイルを精査します。 WordPressやJoomlaなどのオープンソースシステムが悪用されるのはかなり一般的なことであり、これが頻繁に更新される理由の1つです。いくつかの更新を怠った場合、誰かがあなたのサイトに侵入した可能性があります。

このシナリオは2回発生しました。1回は完全にデプロイされなかった(ただしそのままでした)テストサイトで、もう1回は有効なアクセス権を持つ従業員が家族のためにphpBBを「スナック」する会社のWebサイトです。更新することで問題を回避できたはずです。どちらの場合も、問題は分析で発見されました。あなたの場合は真実だと思われます。 Joomla攻撃は、ユーザーのブラウザにソフトウェアをロードさせるjavascriptを挿入しました。後者は、ハッカーが、ユーザーを毎回p * rnに導く分散「代替」Googleサイトの一部であるサーバーにファイルをアップロードできるようにしました。完全に一般的なハックではありませんが、念のため、DBユーザーテーブルを確認してください。

私は確かに警告を発するつもりはありませんが、何が起こっているかを正確に知るために時々あなたのサイトを掘り下げるために時間をかけることは決して痛いことではありません。時々、あなたはあなたが見つけたものに驚くでしょう。

2
bpeterson76

攻撃が毎回同じIP番号(または少数のIP番号のセット)から発生している場合、ファイアウォールでそのIP番号をブロックする必要があります。そのため、帯域幅やWebサーバーの負荷がかかりません。

ルートアクセス権があるLinuxマシンでホストしている場合 この記事 これを行う方法を説明します。

1
Kris

すべてのサーバーでDenyHosts [1]を使用しています。 DenyHostsは、n回ログインに失敗したすべてのIPを許可しません。通知を送信することもできます。それで、ログインが来たIP /ホストの概要がわかります。また、Webアップデート機能やその他の優れた機能も備えています。ただし、インストールは非常に簡単です。

他の方法は、中国またはターゲットグループではない他の国からのすべてのIP範囲/ブロック(たとえば)を許可しないことです。これは、オンラインの「ブラックリスト」またはhosts.denyファイル(DenyHostsなど)を使用して実行できます。

[1] http://denyhosts.sourceforge.net/

0
fwaechter