私はある種の Web アプリケーションを構築しており、現在そのすべてが私のマシン上で実行されています。ログを精査していたところ、いくつかの「奇妙な」ログ エントリが見つかり、少し不安になりました。以下をご覧ください。
***.***.***.** - - [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
まったく…これは何だ?!
答え1
サーバーから奇妙な新しいファイル、変更されたシステム ファイル、またはその他の奇妙な動作に気付かない限り、それらの奇妙なログ エントリについてはあまり心配する必要はありません。サーバーがインターネットに公開されている場合、誰でも不正な HTTP 要求をサーバーに送信することができ、実際に多くの人 (またはボット) がそれを行っています。
なぜそんなことをするのでしょうか? ウェブサーバーの中には、適切なリクエストを送るだけで悪用される既知の脆弱性を持つものがあります。つまり、あなたが見ているのは、既知の(あるいは未知の)脆弱性の調査である可能性があります。より安心したい場合は、遡及的不正なリクエストや不明なリクエストを送信する IP をブロック/禁止するなどの対策 (iptables、fail2ban などを使用)。
個人的には、「悪質な」IPをブラックリストに登録することはあまり意味がないと考えています。なぜなら、ログファイルにその痕跡が残っている時点で、あなたは脆弱ではないとわかっているか、すでにハッキングされているからです。より良いアプローチは積極的になることですセキュリティ付き:
サーバー ソフトウェアにパッチを完全に適用し、最新の状態に保ってください。常に、細心の注意を払って、厳格に。
攻撃プロファイルをできるだけ小さく保ちましょう。サーバーに不要なソフトウェアをインストールしたり実行したりしないでください。そして、ウィリアム・オッカムかつて「ユーザーアカウントを不必要に増やさないでください」と言いました。
サーバーにファイアウォールを設定します。(あるいはしないただし、自分が何をしているのかを理解しておく必要があります。
侵入検知システムを実行する。補助、オセック、 またはサムハインこれにより、システム ファイルが予期せず変更された場合に警告が表示され、サーバーが侵害されたことを示すヒントとなることがよくあります。
システム監視/グラフ作成ソフトウェアを実行する。ムニン、サボテン、収集するなどです。定期的にグラフを観察して、通常のシステム負荷がどのようなものか、また、通常の傾向がどのようなものかを把握します。その後、グラフにこれまで見たことのない何かが示されたら、さらに調査を進める意欲が湧きます。
ウェブログアナライザー/グラファーを実行する。ウェブアライザーまたはawstats繰り返しになりますが、正常な動作がどのようなものかをよく理解しておけば、異常な状態になったときにすぐに認識できるようになります。
別のログ サーバー (できれば他に何も実行されていない最小限のセキュリティ強化されたシステム) を実行し、サーバーがログをそのサーバーに送信するように構成します。これにより、侵入者が痕跡を隠すことがはるかに困難になります。
答え2
どのようなサーバーを実行していますか? Apache ですか?
これは IIS のエクスプロイトのようです...Code Red/NIMDA
答え3
公開されているウェブサーバーは、このようなリクエストを一日中受信しています。彼らはあなたのサーバーに対して既知の攻撃を盲目的に試みているだけです。私がよく行うのは、IP(つまり、http://10.0.0.1)。正しい仮想ホストドメインが要求された場合にのみ、サイトが表示されるようにしています。
ドメイン名ではなく IP で Web サーバーにアクセスしたときに、どのようなサイトが表示されるかを確認します。netter-tubes をクロールするエクスプロイト スクリプトのほとんどは、有効な仮想ホスト要求 (適切な仮想ホスト ヘッダー) を実行していません。
不正なリクエストを試みる IP アドレスを自動的にブロックするさまざまなユーティリティを調べることもできます。
答え4
これらの IP アドレスが外部アドレスではなく独自のものであると仮定すると、それは単に Web アプリのログのジャンクである可能性があります。
これは、PHP が UTF8 でデータをログに記録し、その後 ASCII にエンコード/エスケープされて、非常に似たメッセージが表示される状況を思い出させます。