我有一個程序可以將安全敏感的信息(如私鑰)保存在內存中,因爲它在程序的整個生命週期中都使用它們。該程序的生產版本將RLIMIT_CORE設置爲0,以確保永遠不會生成可能包含此敏感信息的核心轉儲。如何確保我的Linux程序不會產生核心轉儲?
然而,雖然這不是在core(8)
手冊頁提到的,apport documentation on the Ubuntu wiki索賠,
請注意,即使ulimit設置爲禁用核心文件(通過使用的ulimit specyfing零 核心文件大小-c 0),apport仍然會捕獲 這次事故。
在我的過程中(即,不依賴於系統外部配置),我可以確保永遠不會生成我的進程的核心轉儲嗎?
注意:我知道有很多方法(如下面的評論中提到的那些方法),具有根或進程所有者權限的用戶仍然可以訪問敏感數據。我在這裏瞄準的是通過將敏感數據保存到磁盤,發送到Ubuntu bug跟蹤系統或類似的東西來防止敏感數據的無意暴露。 (感謝Basile Starynkevitch作出明確說明。)
請注意,一個確定的用戶可以修補他自己的內核來運行你的應用程序,仍然可以獲得核心轉儲。 –
和進程內存也可以通過'/ proc /' –