web-dev-qa-db-ja.com

セキュリティ管理者向けの探索的質問(/ etc / passwd + PHP)

最近、いくつかのサーバーで、古いスクリプトを介してアカウントがハッキングされ、ハッカーがアカウント内にcPanel/FTPブルートフォーシングPHPスクリプトをアップロードするという問題がいくつか発生しています。

PHPファイルは/ etc/passwdを読み取ってユーザー名を取得し、passwd.txtファイルを使用して127.0.0.1:2082にブルートフォース攻撃を試みます。

私はこれをブロックする方法を考えようとしています。 POST "GET /path/phpfile.php"以外は何もしないので、mod_securityを使用してこれをブロックすることはできません。

/ etc/passwdのアクセス許可を600に変更することを考えていましたが、ユーザーに関してこれがどのように行われるかはわかりません。

Localhost接続を:2082にレート制限することも考えていましたが、mod_proxyが影響を受けるのではないかと心配しています。

助言がありますか?

3
JPerkSter

LDAPなどのユーザー名の/ etc/passwdを参照しない何らかの形式の認証を実行します。また、SELinuxをアクティブ化して、そのようなハッキングがステップ1ですぐに中断するようにすることをお勧めします(httpdはデフォルトのルールで/ etc/passwdを読み取ることができません)が、cPanelはシステムをロックダウンする高度な試みを嫌います。

何よりもまず有効にする cPHULK 、それはブルートフォースからcPanelを保護するのに役立ちます。 [〜#〜]決して[〜#〜]/ etc/passwdと/ etc/shadowのアクセス許可を変更しないでください。これらは、理由。 SELinuxは、セキュリティのextraレイヤーを追加し、エクスプロイトによるコード実行の取得を阻止しますが、この攻撃を阻止しない可能性があります。ポート番号を2082から2083などに変更します。彼らが使用しているスクリプトは、それほどスマートではない可能性があります。

mod_securityは素晴らしいですが、この攻撃を阻止するために何もしません。

より良いパスワードルールを適用することもできます。 THC-Hydraでブルートフォース攻撃を試みてください。アカウントが壊れている場合は、アカウントを無効にして、ユーザーに適切なパスワードを選択させるようにしてください。

0
Rook

したがって、最初に、ハッカーにcPanel/PHPスクリプトを最初にアップロードする特権と機能を与えた古いスクリプトを修正/削除します。その後はすべて bodge (悪い修正)実際の問題の周りで踊っています。それが修正されるまで、さまざまな問題が発生し続けます。

システムは、/etc/passwdがワールドおよびグループで読み取り可能であることを期待します(つまり、644または444ですが、それでも問題が発生する可能性があります)が、パスワードハッシュを格納する/etc/shadowshould600owner read/write、group and everybody no accesso+rw,g-,a-)。

CPanelの経験がないので、PAM認証モジュールを介して制限して、パスワードチェックの試行をレート制限し、パスワードブルートフォーシングの試行を無駄にすることができるかどうかはわかりません。私が考えていたPAMモジュールはpam_faildelayと呼ばれ、複数の試行を遅くします。

Apache and mod_security を使用したtarpitスタイルのソリューションが、cPanelログインへのアクセスをレート制限する手段になるかどうかはわかりません。

0
mctylr