親プロセスで setuid を呼び出す

親プロセスで setuid を呼び出す

私が知っている限り、カーネルのアドレス空間を操作しなければ、親プロセスuidを変更できます。より良い方法はありますか?カーネルメモリのみを変更できる場合はどうすればよいですか?

注:子プロセスにはルートがありますが、親プロセスにはルートはありません。

ベストアンサー1

他のプロセスのUIDは変更できません。

実際には、デバッガを使用して権限を放棄させることはできますが、この方法で権限を上げることはできません(デバッガは、プログラムに通常行わない操作を実行させることはできますが、権限のない操作は実行できません)。 )。

はい、/dev/mem一部のコードをカーネルにロードしたり、カーネルデータ構造に直接アクセスして、必要なすべての操作を実行できます/dev/kmem。しかし、正しい住所を見つけることは難しく、正しい修正はさらに困難です。これは、セキュリティ抜け穴以外の作業を実行する合理的な方法ではありません。

特権のないプロセスと特権のあるサブプロセスが必要である場合は、その子プロセスが特権のないプロセスからの要求を受け取り、代わりにその要求を実行するようにします。子プロセスが実行したいことには非常に注意してください。要求が期待されるプロセスから来るのか、偽のプロセスから来るのかは実際にはわかりません。すべてのセキュリティチェックは、権限のあるプロセス内で実行する必要があり、権限のないプロセスのデータは信頼できません。

おすすめ記事