最近、Webサイトがハッキングされ、次のようなPHPコードがindex.phpファイルに挿入されました。
eval(gzinflate(base64_decode( 's127ezsS/... bA236UA1')));
このコードにより、別のphpファイル(cnfg.php)が含まれ、医薬品関連のスパムが表示されていました(ただし、googlebot et alにのみ表示されていました)。これはワードプレスの製薬会社のハックのように見えますが、上記のソフトウェアを実行していない点が異なります。その後、コードは削除されましたが、今後このような事態が発生しないようにしたいと思います。
これはかなり広範囲の問題であり、原因となる無数のセキュリティホールが存在する可能性があることを理解していますが、過去にこのような問題の経験がある人がいる場合に備えて、これを公開したいと思いました。
これらのphpファイルのアップロードを可能にする潜在的なセキュリティホールは何ですか?そして、これが将来起こらないようにするにはどうすればよいですか?
乾杯
それがどのようにしてそこに到達したかを知る必要があります。
ただの警告。
FTPクライアントとしてFileZillaを使用している場合、FilezillaプレーンテキストファイルからFTP資格情報を取得し(そうです!)、その情報を使用してそのマルウェアコード(#b58b6f#タイプのコードで示されます)を挿入するマルウェアがあります。 「gzinflate(base64_decode)」コマンドの周り。これにより、ファイルが攻撃/侵害されます。
%APPDATA%/ Roaming/Filezillaフォルダーを調べます。そこにあるXMLファイルの1つには、すべてのFTP Webサイトの資格情報(ユーザー/パスワード/その他)がプレーンテキストで含まれています!そして、FileZillaの人々はその明らかなセキュリティホールを修正することを拒否します。
私の推奨事項:コンピューターからFileZillaを削除します(APPDATAフォルダー内のフォルダーを手動で削除する必要があります)。
安全なFTPクライアントが必要な場合は、WinSCP(www .winscp .net)を使用します。マスターパスワードを設定すると、サイトのすべての資格情報が暗号化されます。
ただの警告....リック... J
これがどのようにして発生する可能性があるかについては、非常に大きな可能性があります。これを制限するのに役立つ情報の1つは、所有しているホスティングのタイプ(共有、専用、仮想)とホストの種類です。いくつかの潜在的なエントリポイントは
サイトのPHP)におけるアプリケーションレベルの脆弱性:
<?php include $_GET['page'] . '.php'; ?>
再発を防ぐ方法は?
このコードのアップロードを許可した脆弱性を見つける必要があります。
私は同様のハッキングを経験しましたが、FTPアップロードを許可するサードパーティのJoomla拡張機能によってアップロードされていることが確認されました。
私の場合、Joomla拡張機能を削除し、Web開発者に再度インストールしないように指示しました。
状況によっては、eval、base64_decode、gzinflateを無効にすることをお勧めします。
あなたは行を探すことによってphp.iniでこれを行うことができます
disable_functions =
に設定します
disable_functions = eval, base64_decode, gzinflate
変更を有効にするには、Webサーバーを再起動する必要があります。
感染したファイルをclamscanでスキャンしたところ、マルウェアであると識別されたことにも言及する価値があります。 ClamAVバージョン0.96.1を実行しています
現在、手元にあるメモがないため、正確な結果をお伝えすることはできません。
そうすることが現実的である場合は、コードに対してclamscanを定期的に(おそらく1時間ごとに)実行して、将来の感染を監視するジョブをスケジュールできます。
http://www.hardened-php.net/suhosin/ を試してみることもできます。これにより、とりわけeval()が無効になる可能性があります。 cnfg.phpがリモートでホストされていた場合、それが含まれることもできなかった可能性があります。
可能であれば、phpファイルへの書き込みアクセスとしてWebサーバーが実行されているユーザーを許可しないでください。