首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何确保我的Linux程序不会产生核心转储?

如何确保我的Linux程序不会产生核心转储?
EN

Stack Overflow用户
提问于 2012-12-19 05:20:35
回答 1查看 658关注 0票数 11

我有一个程序将安全敏感信息(如私钥)保存在内存中,因为它在程序的生命周期内使用这些信息。此程序的生产版本将RLIMIT_CORE设置为0,以确保永远不会生成可能包含此敏感信息的核心转储。

然而,虽然core(8)手册中没有提到这一点,但关于Ubuntu wiki的apport文档声称,

请注意,即使ulimit设置为禁用的核心文件(通过使用ulimit -c 0指定核心文件大小为零),apport仍将捕获崩溃。

在我的流程中(即,不依赖于外部系统的配置),是否有一种方法可以确保我的进程的核心转储永远不会生成?

注意:我知道有很多方法(如下面的注释中提到的),具有根用户或进程所有者特权的用户仍然可以访问敏感数据。我在这里的目标是防止无意中暴露敏感数据,通过它保存到磁盘,被发送到Ubuntu错误跟踪系统,或类似的事情。(感谢巴希尔·斯金克维奇使其显式化。)

EN

回答 1

Stack Overflow用户

发布于 2012-12-19 05:49:46

根据POSIX规范,核心转储只在响应其操作为默认操作和其默认操作是“异常终止进程的附加操作”的信号时发生。

因此,如果您向下滚动到信号的描述中的列表,那么“默认操作”列中带有"A“的所有内容都是您需要担心的信号。使用印字作用捕获所有这些信息,只需在信号处理程序中调用exit (或_exit)即可。

我相信这是POSIX允许您生成核心转储的唯一方法。可以想象,Linux可能会有其他的“后门”来实现这个目的;不幸的是,我还没有足够的内核专家来确定.

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13945984

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档