さて、私のサーバーは先週ハッキングされました。ハッカーは旧式のサードパーティ エディタ (PHP) を攻撃し、PHP にバックドア スクリプトを埋め込んで、私のサイトに深刻な損害を与えました。私は週末全体をかけて、バックドア スクリプトと、彼がサーバーに残した悪意のあるコードを一掃しました。そして、再びハッキングされるのを避けるために、サーバーに対して次のことを行いました。
PHP で file_upload をオフにします。ハッキングされた人が PHP 経由でバックドアをアップロードしたため、php.ini で機能を無効にしました。だから今、私はftp経由でしかアップロードできません。
php で create_function を無効にします。私のソフトウェアはどれもこの機能を使用していません。ハッカーは、この関数を eval() と同じ方法で使用して、コマンドを文字列として実行しました。
php.ini で popen,exec,system,passthru,proc_open,shell_exec,show_source,phpinfo を無効にします。これらの関数は、主にバック ドア スクリプトによって使用され、ファイルとディレクトリが変更されます。
スホシンをインストールします。eval() 内で呼び出される正当な関数を見つけて、それらを suhosin.executor.eval.whitelist に入れます。ハッカーは私のプログラムに悪意のあるコードを挿入し、それを base64_encode で難読化し、eval() 内で実行します。したがって、eval() 内で呼び出されるいくつかの正当な関数のみを許可します。
suhosin.executor.disable_emodifier をオンにします。ハッカーは私のプログラムに難読化された別のコードを挿入し、 preg_replace() e 修飾子を使用して、ブラウザーに入力した PHP コマンドを実行しました。そのため、彼はブラウザを介してサーバー上の任意のファイルをアップロードまたは変更できました。(私が file_upload をオフにしたので、彼はそれ以上アップロードできませんでしたが、ファイルを変更したり削除したりすることはできました)。
create_function、preg_replace() e 修飾子を無効にし、eval() を制限することで、悪意のあるコードがサーバーにクリーンアップされずに残っていても、ハッカーは何もできなくなりました。これらは、PHP で最も危険な 3 つの関数です。
- ルート ディレクトリ以外のすべてのフォルダーに .htaccess を追加し、PHP がブラウザーから直接実行されるのを禁止します。
注文拒否、すべてから拒否を許可
Missing.php.DISABLED という名前のバックドア ファイルを見つけたので、Php の後に別の * を付けましたが、php の後に * を付けなくても実行できます。
ルート ディレクトリ (.php を実行できる唯一の場所) を読み取り専用に設定します。そのフォルダ内のすべてのファイルを読み取り専用に設定します。そのため、ハッカーは新しいバックドア スクリプトを、php を実行できる唯一のディレクトリにアップロードできませんでした。そのディレクトリ内のファイルを変更することもできませんでした。
wordpressログインのために、私は追加しました
注文拒否、すべてから拒否を許可
xxx.xxx.xxx.xxx から許可する
ルート ディレクトリの .htaccess に移動します。ここで、xxx.xxx.xxx.xxx は私の IP です。
- すべての .htaccess を読み取り専用に設定します。
これは、サーバーのセキュリティを強化するために私ができることです。何か見逃しましたか?
アドバイスありがとうございます。