11

プログラムの存続期間中に機密情報 (秘密鍵など) を使用するため、機密情報 (秘密鍵など) をメモリに保持するプログラムがあります。このプログラムの製品版では、RLIMIT_CORE を 0 に設定して、機密情報を含む可能性のあるコア ダンプが生成されないようにしています。

ただし、これはcore(8)マンページには記載されていませんが、Ubuntu wiki のレポートのドキュメントには次のように記載されています。

ulimit が無効なコア ファイルに設定されている場合でも (ulimit -c 0 を使用してゼロのコア ファイル サイズを指定することにより)、apport は引き続きクラッシュをキャプチャすることに注意してください。

プロセスのコア ダンプが決して生成されないように、プロセス内で (つまり、システム外部のシステムの構成に依存せずに) 方法はありますか?

注: root 権限またはプロセス所有者権限を持つユーザーが機密データにアクセスできる方法 (以下のコメントで言及されている方法など) がたくさんあることは承知しています。ここで私が目指しているのは、機密データがディスクに保存されたり、Ubuntu バグ追跡システムに送信されたりすることで、意図せず機密データが公開されるのを防ぐことです。(これを明示してくれたBasile Starynkevitchに感謝します。)

4

1 に答える 1

2

POSIX 仕様によると、コア ダンプは、アクションがデフォルト アクションであり、デフォルト アクションが「追加のアクションでプロセスを異常終了させる」ことであるシグナルに応答してのみ発生します。

したがって、signal.h の説明のリストまでスクロールすると、「デフォルト アクション」列に「A」が付​​いているものはすべて、注意が必要なシグナルです。sigactionを使用してそれらすべてをキャッチし、シグナル ハンドラでexit(または) を呼び出すだけです。_exit

これらが POSIX でコア ダンプを生成できる唯一の方法だと思います。おそらく、Linux にはこの目的のために別の「バックドア」があるかもしれません。残念ながら、私は確かにカーネルの専門家ではありません...

于 2012-12-19T05:49:46.327 に答える