web-dev-qa-db-ja.com

分析のために着信HTTP要求をキャプチャするにはどうすればよいですか?

私は、ユーザー名「Admin」でさまざまなパスワードを「試行」することで、Adminパスワードを総当たり攻撃できる可能性があると考えているボットスクリプトにかなり打撃を受けるサイトを持っています。これが私のログからの抜粋です。

uname   password     IP-address
-------+--------+-------------------
'Admin' '300283' IP: 220.250.61.78
'Admin' '300284' IP: 94.255.35.226
'Admin' '300281' IP: 176.108.152.178
'Admin' '300191' IP: 109.162.54.139
'Admin' '300280' IP: 213.87.138.83
'Admin' '300193' IP: 2.242.0.165

ボットからの典型的なリクエストは、Apacheのaccess_logにこのように記録され、POSTであるため、興味深いビット(つまり、管理ユーザーでログインしようとする)はヘッダーにありません。

 109.162.54.139 - - [08/Sep/2013:17:52:44 +0200] "POST /user HTTP/1.1" 200 20571 "http://example.org/user" "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.72 Safari/537.36"

ボットは1秒あたり約8回のログイン要求を行い、これをこれまで4日間行ってきました。

攻撃されたサイトは、完全に議論の余地のないNGOによって所有されています。小さな共有ホストで無料で実行します。この種の設定は、実際にはうまくスケーリングされないため、パフォーマンスが低下します。私のIP以外のすべての人からeveryリクエストに403を返信するようにApacheを設定すると、何も変更がなかったため、そのまま継続して実行されるため、これは明らかにかなり愚かなスクリプトです。 (そうすることでパフォーマンスが回復したので、Apacheでこれをブロックできれば、勝ちました。)

ログの抜粋からわかるように、これを実行しているユーザーは、膨大な数のIPアドレスを持つボットネットにコマンドを送信します。ログを調べてみると、IPアドレスを再利用することはめったにないので、この質問に対する賛成の回答で示唆されているように、IPアドレスをブロックしています。はnotオプションです。

ところで、システム上にユーザー名「Admin」のアカウントはなく、システム上に機密情報や貴重な情報もありません。だから誰がこれをしているのか、私には困惑しています。

試してみたいことの1つは、着信要求を分析することです。何らかのパターンを発見できることを願っています。そして、パターンを見つけたら、Apacheにルールを設定して、パターンに一致するリクエストをブロックします。しかし、分析のために着信要求をキャプチャする方法がわからないので、私の質問は次のとおりです。分析のために着信HTTP要求のPOST部分をキャプチャするにはどうすればよいですか。

6
Free Radical

分析のために着信HTTP要求のPOST部分をキャプチャするにはどうすればよいですか?

ModSecurity -のドキュメントから HTTPトラフィックロギング を使用してみてください:

Webサーバーは通常、マーケティング分析に役立つ形式でトラフィックをログに記録するのに適していますが、Webアプリケーションへのトラフィックは不足しています。特に、ほとんどはリクエスト本文を記録することができません。敵はこれを知っているので、ほとんどの攻撃はPOSTリクエストを介して実行され、システムが盲目になります。 ModSecurityは完全なHTTPトランザクションロギングを可能にし、完全な要求と応答をログに記録します。また、ログ機能により、ログに記録する内容とタイミングをきめ細かく決定できるため、関連データのみが記録されます。

ARGS_POSTARGS で説明されているように使用すると、分析のために着信HTTPリクエストのPOST部分をキャプチャできます。

ARGSはコレクションであり、単独で(POSTペイロードを含むすべての引数を意味する)、静的パラメーター(その名前の引数に一致する)、または正規表現(名前のあるすべての引数に一致する)で使用できます正規表現に一致します)。クエリ文字列またはボディ引数のみを確認するには、ARGS_GETおよびARGS_POSTコレクションを参照してください。

他のModSecurity機能を参照してください here など、リアルタイム監視、攻撃検出、攻撃防止など...


...これを行う人は、膨大な数のIPアドレスを持つボットネットにコマンドを送信します。ログを調べてみると、IPアドレスを再利用することはめったにないことに気付きました

悪意のあるボットは、それぞれが異なるIPアドレスを持つ オープンプロキシ 世界中(通常 許可なし )を介して接続できます。また、ハイジャックされたクライアントコンピューター/サーバーで トロイの木馬 およびウイルスを使用して作業を行うこともできます。したがって、不正なIPアドレスのデータベースを提供しようとする this のような ハニーポットプロジェクト がありますが、IPアドレスをブロックすることはこれらを防ぐオプションではないことは正しいです。

4
dan