私はある種のwebappを構築していて、現在すべてが私のマシンで実行されています。私は自分のログをくまなく調べていて、少し妄想的になるいくつかの「奇妙な」ログエントリを見つけました。ここに行きます:
***.***.***.** - - [19/Dec/2010:19:47:47 +0100] "\x99\x91g\xca\xa8" 501 1054
**.***.***.** - - [19/Dec/2010:20:14:58 +0100] "<}\xdbe\x86E\x18\xe7\x8b" 501 1054
**.**.***.*** - - [21/Dec/2010:15:28:14 +0100] "J\xaa\x9f\xa3\xdd\x9c\x81\\\xbd\xb3\xbe\xf7\xa6A\x92g'\x039\x97\xac,vC\x8d\x12\xec\x80\x06\x10\x8e\xab7e\xa9\x98\x10\xa7" 501 1054
血まみれの地獄...これは何ですか?!
サーバーからの奇妙な新しいファイル、変更されたシステムファイル、またはその他の奇妙な動作に気付いていない限り、これらの奇妙なログエントリについてはあまり心配しません。サーバーがインターネットに公開されている場合、誰でも不正な形式のHTTPリクエストをサーバーに送信できますが、非常に多くの人(またはボット)がそれを実行します。
なぜ彼らはそれをするのでしょうか?一部のWebサーバーには、「適切な」種類の要求を送信することで悪用される可能性のある既知の脆弱性があります。したがって、おそらく表示されているのは、既知の(または未知の)脆弱性のプローブです。安全だと感じた場合は、不正な形式または不明な要求を送信するIPをブロック/禁止する(iptables、fail2banなどを使用)などの遡及的対策を講じることができます。 )。
個人的には、「悪い」IPをブラックリストに登録することは、実際には価値がないという立場をとっています。ログファイルにトレースが表示されるまでに、彼らはあなたが脆弱ではないことを知っているか、すでにハッキングされているからです。 より良いアプローチは、セキュリティを備えたプロアクティブであると私は信じています:
サーバーソフトウェアに完全にパッチを適用し、最新の状態に保ちます。常に。しっかりと。宗教的に。
攻撃プロファイルをできるだけ小さくします。サーバーに不要なソフトウェアをインストール/実行しないでください。そして、 オッカムのウィリアム がかつて言ったように、「ユーザーアカウントを不必要に増やしないでください」。
サーバーをファイアウォールで保護します。 ( またはしないでください 、しかしあなたが何をしているのか知っています。)
[〜#〜] aid [〜#〜] 、 [〜#〜] ossec [〜#〜] 、または のような侵入検知システムを実行しますsamhain 。これにより、システムファイルが予期せず変更されたときに警告が表示されます。多くの場合、サーバーが危険にさらされているというヒントが表示されます。
munin 、 cacti 、 collectd などのシステム監視/グラフ作成ソフトウェアを実行します。グラフを定期的に見て、通常のシステム負荷がどのように見えるか、および通常の傾向がどのように見えるかを確認してください。次に、グラフにこれまでに見たことのないものが表示されたら、さらに調査する必要があります。
webalizer または awstats のようなWebログアナライザー/グラファーを実行します。繰り返しになりますが、通常の操作がどのように見えるかをよく理解してください。そうすれば、物事が正常でないときをすばやく認識できます。
別のログサーバーを実行します---できれば、他に何も実行していない最小限のセキュリティ強化システムで---ログを送信するようにサーバーを構成します。これにより、侵入者が自分の足跡を隠すことがはるかに困難になります。
どのようなサーバーを実行していますか? Apache?
IISエクスプロイト....コードレッド/ NIMDA
公的にアクセス可能なすべてのWebサーバーは、このような要求を1日中受信します。彼らはあなたのサーバーに対して既知のエクスプロイトを盲目的に試みているだけです。私がよく行うことは、IPへの要求を受信したときに空白のページを表示するようにWebサーバーを構成することです(つまり、 http://10.0.0.1 )。正しい仮想ホストドメインが要求された場合にのみ、サイトの表示を許可します。
ドメイン名ではなくIPでWebサーバーにアクセスしたときに表示されるサイトを確認します。ネッターチューブをクロールするエクスプロイトスクリプトのほとんどは、有効な仮想ホスト要求(適切な仮想ホストヘッダー)を実行していません。
また、不正な要求を試みるIPアドレスを自動的にブロックするさまざまなユーティリティを調べることもできます。
これらのIPアドレスが外部アドレスではなく独自のものであると仮定すると、それは単にWebアプリのログジャンクである可能性があります。
これは、PHPデータをUTF8に記録し、その後、エンコード/エスケープしてASCIIになり、非常によく似たメッセージを表示するのを見た状況を思い出させます。 。