最近、私たちのウェブサイトが危険にさらされる機会がありました-あるときはリンクファームがいくつかのページに追加され、別のときは大きくて厄介なaspxファイルがサーバーに置かれました。ホストの名前(Hostway)については言及しませんが、誰かがこれを実行できたことにかなり悩まされました。いいえ、それは漏洩パスワードではありませんでした-連続したIPアドレスを持つHWがホストする約10のサイトがゴミになりました。
とにかく。必要なのは、Webサイトのコンテンツのスナップショットを取得し、不正な変更や追加がないかファイル(サイズと日付スタンプ)を定期的に監視し、アラートを出すユーティリティまたはサービス(できれば無料)です。 1つのファイルの変更を監視するWebサービスを使用しましたが、もう少し積極的なものを探しています。
これを使用してきました Monitor Hacked Files 、これはサーバーにインストールするPHPスクリプトです。サイトに変更があった場合、変更されたファイルのリストを記載したメールを送信します。これにより、少なくともどこを見ればよいかがわかります。 Googleやクライアントがあなたよりも前に見つけるよりも間違いなく優れています!
私たちのサイトの1つが最近ハッキングされ、Google検索でスパムの単語が表示されているサイトに気付くまで、何も壊れていなかったため、しばらく気付きませんでした。私たちのサイトはgit
を使用していたため、git diff
コマンドを使用してサイトの不正なファイルの変更を監視するための迅速で汚れたソリューションを思いつきました。
cron
のようなものを介して定期的に実行されるbashスクリプト(ただし、Windows環境のバッチスクリプトに変更するのに十分なほど単純です)。
#!/bin/bash
# change the following two params,
# set up a cron job and there you go!
email="[email protected]"
site="your site"
cd "$(dirname "$0")"
if [ ! -f snitch.log ]; then
touch snitch.log
fi
# if git diff finds a difference between
# HEAD and what we have now, snitch!
if [[ -n $(git diff --name-only HEAD) ]]; then
git diff --name-only HEAD > snitchtemp.log
if [[ -n $(diff snitch.log snitchtemp.log) ]]; then
git diff --name-only HEAD > snitch.log
cat snitch.log | mail -s "snitch@$site" "$email"
fi
else
echo "OK"
fi
それは非常に簡単です。呼び出しごとに、git diff
を使用して、最後のコミット以降にファイルが変更されているかどうかを確認し、変更されている場合は、改ざんされたファイルのリストをメールで送信します。注意を払うまで同じメールを何度も送信しないように、最後に実行されたときに改ざんされたファイルのリストを保存し、それに対してファイルのリストが変更されたかどうかを確認します。別のメール。
git diff
はgit
が追跡している変更されたファイルのみをリストすることに注意してください。したがって、侵入者が新しいファイルを作成しても、それらは捕捉されません。ただし、最初に新しいファイルを作成するには、少なくとも1つの既存のファイルを改ざんする必要があるため、このスクリプトは問題ありません。
Google Alert を設定して、サイトでジャンクの可能性を検索できます。たとえば、「viagra site:example.com」のアラート検索があります。 Googleアラートは、検索対象が見つかった場合にメールで通知します。
Windowsで実行される2つのツールが機能する場合があります md5deep および AFICK-別のファイル整合性チェッカー 。監査を許可し、新しいファイルを認識します。
AFAICKにはWebインターフェイスがありますが、とにかくツールが警告にフラグを立てた瞬間から、電子メールでレポートを送信することができます。