setuid プログラムのメモリには、機密データが含まれている可能性があります (その可能性さえあります)。そのため、コア ダンプは root だけが読み取れるようにする必要があります。
コア ダンプがルートによって所有されている場合、カーネルは既存のファイルを上書きしないように注意する必要がありますが、明らかなセキュリティ ホールは見当たりません。
Linux は setxid プログラムのコア ダンプを無効にします。それらを有効にするには、少なくとも次のことを行う必要があります (これで十分かどうかは確認していません):
fs.suid_dumpable
を設定して、一般的に setuid コア ダンプを有効にします。 sysctl を 2 にします。echo 2 >/proc/sys/fs/suid_dumpable
で . (注:1 ではなく 2 です。1 は「システム全体をデバッグしていて、すべてのセキュリティを削除したい」という意味です。)prctl(PR_SET_DUMPABLE, 1)
に電話する プログラムから。
コア ダンプには、障害発生時にメモリにあったすべてのコピーが含まれています。プログラムが suid を実行している場合、それは、ユーザーとしてアクセスできない何かにアクセスする必要があることを意味します。プログラムがその情報を取得してコア ダンプすると、その特権情報を読み取ることができます。
上記の例から、ルートとして実行している場合、または権限昇格を削除した場合、コア ダンプを取得できるようです。
setuid プログラムからコアダンプに簡単にアクセスできると便利かもしれませんが (開発者のみが考えます)、これはセキュリティ ホールであり、そのままにしておく必要があります。