ハッカーを遅くする方法


17

インドのデリーにあるスクリプトキディは、昨夜からサイトをハッキングしようとしています。彼は、太陽の下ですべてを試みて、私たちのサーバーの要求を大規模なネストされたループで行うブラウザースクリプトを書きました。

彼はどこにも行かず、基本的な防御さえも通過していません(しかし、彼はログファイルをいっぱいにしています)。

403 Unauthorizedリクエストが届くとすぐに返信しますが、リクエストをより速くブロックするほど、スクリプトはより速く実行されます。

403応答を送り返す前に、何らかの「遅延」を導入したいと思います。長いほど良い。

質問:サイトの他の部分に影響を与えることなく、ハッキングの試みをどのように遅らせることができますか?

  • 彼のスレッドのSleep(15000)は、他のサイト訪問者にとっては悪いニュースだと思います。
  • 彼のためだけに新しいスレッドを作成するのは、やり過ぎのようです。
  • 遅延応答を送信する別の方法はありますか?
  • 彼のブラウザをどれだけ待つことができますか?彼が403 Unauthorizedエラーを受け取ったり、最終的にタイムアウトになるかどうかはあまり気にしないので、おそらく無期限/無限の待機を行うこともできます。

36
彼のIPアドレスからのトラフィックをドロップするようにファイアウォールを設定できない理由はありますか?この問題は、アプリケーションレベルよりもネットワークレベルで解決する方が適切です。トラフィックをドロップすると、接続要求がタイムアウトするまでそこに座らなければなりません。また、「無許可」の応答を返すよりも、応答しないことの方がはるかに効果的です。検査する情報が事実上ないためです。
cdhowie

3
なぜ彼のIPをブロックしないのですか?
ホーガン

2
サーバーのプラグを抜きます。
イブラヒム橋見と言う

私の答えを見てください。これは標準的なことです。以前の侵入検知システムを指す答えが得られなかったことに驚いています。
Unreason

@Sayed、サーバーのプラグを抜くことはあなたができる最悪のことの一つです。DoSingに加えて、security.stackexchange.com
q / 181/33

回答:


37

Webサーバーの前のどこかに別のファイアウォールがあるはずです。リクエストがサーバーに到達するのをブロックしたいので、彼のIPに関する限り、サーバーはもう存在しません。


1
こんにちは、ジョエル、これは「受け入れられた」答えですが、質問はStackOverflowから転送されたため、実際にそれを受け入れる権限がないようです。あなたの答えに+1を付けました。これは私がやることです。
フリップスター

2
名前を@flipクリックしてから、右側のページの途中で「アカウント」リンクをクリックします。これにより、これをスタックオーバーフローアカウントに関連付けて、質問の所有権を取り戻すことができます。
ジョエルCoel

1
しかし、あなたもそれを自動的にしたい-ケースバイケースでそのような問題に対処する意味はありません。(私の答えを参照)
Unreason

5

さまざまなフィルター、ハニーポット、その他のメカニズムに応じて、これを自動的に行う大小さまざまな実際の侵入検知システムがあります。

たとえば、ログの分析に基づいてアクションを実行するように構成できるfail2banを参照してください。

このようにして

  • サイトの他のユーザーに影響を与えることなく、攻撃の発信元である単一のIPアドレスを簡単にフィルタリングします
  • 独自の正規表現を作成してログを分析できます
  • 独自のアクション(禁止の代わりにスロットルなど)を定義できます

他にも大きなツールがあります。ウィキペディアのセクションも参照してください。

あなたの質問はasp.netとしてマークされているので、サーバープラットフォームはWindowsであると仮定します。それでも、Linuxファイアウォールを使用するオプションがある場合は、上記を試すことができます

  • WANとサーバーの間にLinuxファイアウォールを配置する
  • ファイアウォールマシンへのアクセスをIISログに与える
  • 正規表現を書いて分析する
  • 禁止のために既存のテンプレートにプラグインする

このようなファイアウォールは、非常に控えめなハードウェア上で実行できます- 非常に適切なリンク帯域幅については、linksysルーター(ここを参照)のようなものも考えてください。


4

特定のIPアドレスまたはアドレスブロックからのものである場合、ブラックホールルートを追加することができます。

ip ro add blackhole 10.69.96.0/24
ip ro flush cache

iptablesルールを使用してこれを達成することもできますが、iptablesルールは直線的にトラバースされるため、やってくるすべての悪人にiptablesルールを追加し始めると、大量のCPUを使い果たしてしまいます。ルーティングテーブルは、多数のエントリを処理するために最適化されています。たとえば、私のボックスの1つには、問題なくルーティングテーブルに350Kのエントリがあります。しかし、もし3Kのiptablesルールがあれば、箱はほぼ確実に倒れます。

これらの接続でアプリケーションが何秒間もスリープするようなことをしようとすると、正当なリクエストがリソースを取得できないほど十分なリソースを使用してしまう可能性があります。


1
+1。この状況でのルーティングとネットフィルターの相対的な効率に関する情報が気に入りました。機能iptablesipset備えたカーネルでは、膨大なIPアドレスのリストを非常に効率的に一致させることができますが、カーネルで有効にipsetしている主要なディストリビューションはないようです。
スティーブン

良い点は、ipsetはこの種のことには役立つように思えますが、すぐには利用できないということです。そこより一般的なiptablesのオプティマイザたNF-HIPACと呼ばれる別のシステムですが、メーリングリストと最後のリリースの最後のポストは2005年からである
ショーンReifschneider

3

あなたはないではない、あなたのスレッドがこの人の要求を処理する「忙しい」となりますので、それはDoS攻撃下にあったかのように、誤って彼を遅くすると、あなたのサイトをダウンされますので、彼を遅くしたいです。あなたがしたいのは、彼のIPをブロックして、それでやり遂げることです。それをしている人を餌にする理由はありません。


2

探しているのはApacheモジュールmod_evaisveです。

Debianベースのディストリビューションでは、次を使用してインストールします

apt-get install libapache2-mod-evasive

CentOS / RHEL

yum install mod_evasive

mod_evasiveは、Apacheへのリクエストを追跡し、しきい値を渡すiptablesを使用してIPを禁止します。これは、HTTPベースのDoS攻撃、さらには数千の異なるIPを備えた巨大なボットネットの標的にされた場合の分散DoS攻撃に対する究極のツールです。

個別のデーモンとしてではなく、実行時にロードされるApacheモジュールとして実行されます。

ただし、巨大なボットネットを制御している賢明な攻撃者は、ボットネット内の各ゾンビが送信するリクエストのタイミングを調整することでWebサーバーを停止させ、IPがしきい値を超えないようにすることができます。

その場合、異常ベースのIDSを使用し、おそらくシステムを自分でトレーニングする必要があります。しかし、これはあなたが本当の大きな敵または企業のアジェンダを持つ誰かを持っていない限り起こりそうにない。


0

Linuxを使用している場合は、iptablesを使用して、大きな遅延のある1バイト/秒が好きになるように男を制限し、1回のリクエストを取得するために永遠にかかるようにします。配布されている場合、それはあまり役に立ちません。

Windowsでどのように実行するかはわかりませんが、ルーターまたはハードウェアファイアウォールがある場合は、同様のオプションを見つけることができます。

編集:上記に同意し、これはサーバー障害の質問のようなものです。


2
この手法は、DDoS攻撃で攻撃者によって使用されることがあります。サーバーでこれを行うと、逆効果になります。<_ <
p-static

DDoS攻撃で使用されていると言うのは本当に正しくありません。この種の効果はDDoS攻撃の目標です。サーバー/ファイアウォールで実行しますが、攻撃しているコンピューターに対してのみ実行することが唯一の本当の防御です(AFAIK)。
Unreason

0

男のIPアドレスがかなり一定である場合は、カスタムHttpModuleを作成し、web.configファイルを変更してプラグインし、このIPアドレスとして認識されたときに遅延を設定できます。または、404コードを返送するか、別の場所にリダイレクトすることができます。


0

あなたは彼らがインドにいることを知っています。あなたのサイトには、フローが停止するまでファイアウォールレベルでIP範囲全体を単純にブロックすることを妨げるインドの重要な後援者がいますか?確かな解決策ではありませんが、典型的な「スクリプトキディ」だけを扱っている場合は、それらを落胆させて別のターゲットに送信するだけで十分です。

さらに良いことに、それが1つのIPからのものである場合は、独自のサービス拒否攻撃で返信できます。


それは本当に解決策ではなく、ゼリーをaで切ることです。そして、B、DDOSは本当に良い推奨ではありません(冗談だと思いますが)。
Trufa

0

受け取った回答に加えて、ドキュメント(ログ、トレース)を保存し、サービスプロバイダーに提供します。プロバイダーが侵入を目撃できるため、これはインシデント中に最も効果的です。対策に成功したとしても、さらに試行を減らすことが重要であり、プロバイダーが攻撃者のサービスプロバイダーにリクエストをエスカレートするのに役立ちます。おそらく最も効率的なアクションは、攻撃者のプロバイダーが、特定された攻撃者である顧客へのサービスを拒否することです。


0

プログラマーなら、.net Begin_Requestイベントを操作して、そこに「スリープ」を入れることができます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.