Apache エラー ログにファイルが見つかりません

Apache エラー ログにファイルが見つかりません

Apacheのエラーログに「ファイルが存在しません」というエラーが大量に記録される理由を解明しようとしています。例:

ファイルが存在しません: /home/FTPUSER/public_html/category、リファラー:http://www.DOMAIN.co.uk/category/epson-stylus-c40sx/497/0-0-0-0-0-0-0-0/1

(FTPUSER は cpanel ユーザー名です)

コードのどこにも /home/FTPUSER/public_html/category への参照がありません。何か提案はありますか?

また、/category/epson-stylus-c40sx/497/0-0-0-0-0-0-0-0/1 は cat.php?id=497 などの mod 書き換えルールであることにも注意してください。

答え1

これは、Web サーバーに対する何らかの自動/意図的な攻撃の結果であると思われます。誰かまたは何らかのプログラムが、パスワードなしまたはデフォルトのパスワードでインストールされたアプリケーション、または既知の脆弱性を持つアプリケーションを探しています。

私たちがホストしている Web サイトでは、このようなエラーが頻繁に発生します。このようなエラーには対応できません。カスタム 404 ページを用意するか、問題のサイトのホームページにカスタム 301 を発行します。

答え2

そのドメインのアクセス ログを調べて、特定のリクエストとエラーの生成の間に相関関係があるかどうかを確認できます。

ログを見つけるには、次のようにしてください:

grep CustomLog /etc/httpd/conf/httpd.conf

ログファイルは次のようになります:

/usr/local/apache/domlogs/domain.co.uk

次に、このファイルで Apache エラー ログの時間を grep して、何か表示されるかどうかを確認します。

答え3

私の通常の経験則では、ファイルが私のサーバー上に存在せず (そしてこれまで存在したことがなく)、かつ参照元 URL が膨大な文字数 (自分のサイトのものではない) である場合、それがエクスプロイトの試みである可能性はかなり高いです。

ericmayo と同様に、mod_rewrite を使用して 404 をメイン サイトに転送します。過去には、referer.log を解析してエクスプロイトの試みを検出し、疑わしいエントリを「拒否」リストに入れるコーディングを行ったことがあります。(.htaccess が役に立ちます)

Apache を使用している場合、これが役立つかもしれません。

答え4

私も k3ri と ericmayo に賛成です。これは自動化されたエクスプロイトの試みです。

10年以上にわたってログで同様の攻撃の試みを何度も見てきたので、私はずっと前にリファラIPを拒否リストに追加しようと試みることをあきらめました。数百万大規模から小規模のボットハーダーによって乗っ取られたWindowsクライアントは、検索オーバーヘッドを生み出すことになります。リクエストが頻繁に送信されるため、常に変化する攻撃元をフィルタリングすることで得られるメリットよりもサーバーのレイテンシが増大します。

関連情報