/var/log/data/
リモートの場所(httpなど)からデータを受信し、いくつかのmydirにローカルに保存するローカルサービスを持つホストがあります。
$ ls -al /var/log/data
drwxr-sr-x+ 4 root datalog 4096 Feb 4 18:59 .
drwxr-xr-x 4 root root 4096 Feb 4 18:59 ..
drwxr-sr-x+ 2 root service 4096 Feb 4 19:07 mydir
ローカルサービスはservice:serviceの所有権で実行されます。
次の場所でエクスプロイトの実行をブロックしたいとします/var/log/data/mydir
。
-rwxr-sr-x 1 root service 133156 Jul 19 2014 exploit
エクスプロイトファイルの「s」(setgid)ビットに注意してください。これにより、サービスグループ権限(ローカルサービスと同じ)で実行することができます。
潜在的な脆弱性が実行されるのを防ぐ方法は?そして(go-x)から
「x」を削除しますか?サービスの操作に支障をきたすこともあります...?別のアイデアがありますか?/var/log/data/
/var/log/data/mydir
答え1
私が見ることができるように、グループや他の人は書き込み権限を持っていないので、ここにファイル/ディレクトリを作成することはできません。
ルートから書き込み権限を削除すると、どうなるかを確認できます。
答え2
ACLを使用して、すべてのユーザーの書き込みおよび実行権限を拒否し、サービスアカウントユーザーにのみrwx全体を持つことを明示的に許可できます。http://linux.die.net/man/1/setfacl
答え3
サービスがどこからでも実行可能ファイルを生成できないようにすることで、継続的な悪用のリスクを軽減できます。これを行うには、サービスがアクセスできるすべてのファイルシステムが次の条件の1つ以上を満たしていることを確認してください。
- 読み取り専用でマウント
- インストール
noexec
オプション - サービスが書き込むことができるディレクトリは含まれていません。
サービスを実行chroot 刑務所サービスが表示できるファイルシステムの一部を減らすのに役立ちます。あなたはそれを使用することができますバンドルのインストール別の場所にあるファイルシステムの一部を表示します。
ここで setgid はほとんど赤ニシンです。攻撃者が実行可能ファイルを生成し、サービスがそれを実行する可能性がある場合、脆弱性はとにかくそのサービスグループで実行されます。 Setgidは、攻撃者がサービスを介して実行可能なsetgidファイルを作成してなりすましている可能性がある場合にのみ問題になります。他のユーザー実行可能ファイルを入力してください。
また、この方法では非常に少量の保護しか受けられないことに注意してください。攻撃者が自分のアップロードしたファイルを実行するようにシステムをだましている可能性がある場合は、すでにランダムなコードを実行する方法がある可能性があります。 1つは、攻撃者が実行可能ファイルに書き込めない場合、サービスを再起動しても脆弱性が持続しない可能性があることです。しかし、これは、エクスプロイトベクトルが、例えばファイル解析の脆弱性ではなく、いくつかのネットワークの脆弱性であると仮定します。
サービスを制限するもう1つの方法は、次のセキュリティフレームワークを使用することです。SELinux。ポリシーを作成するのは難しいかもしれませんが、より多くのコントロールを持っています。