SIGABRT与ENOTSUP

时间:2016-10-02 16:43:20

标签: security unix sigabrt openbsd

在OpenBSD上:

我想强化OpenBSD安装。对于这个imho:

sysctl -w kern.wxabort=1

会更安全,默认值为0.

W^X violations are no longer permitted by default.  A kernel log message
is generated, and mprotect/mmap return ENOTSUP.  If the sysctl(8) flag
kern.wxabort is set then a SIGABRT occurs instead, for gdb use or
coredump creation.

这样:

SIGABRT         Abnormal termination
ENOTSUP         Operation not supported (POSIX.1)

所以对我来说(不是程序员)意味着SIGABRT可能更好,因为它会杀死(?)过程,而不仅仅是信息消息。从安全角度来看,杀死行为不当的过程更加安全。

问题:这是真的吗?使用SIGABRT更安全吗? SIGABRT真的杀了这个过程吗?或者他们(SIGABRT与ENOTSUP)几乎相同并且不会杀死这个过程?

1 个答案:

答案 0 :(得分:1)

防止操作是获得安全性的地方。杀死这个过程就是奖励惩罚。我们谈论的是流程而不是人,所以惩罚是没有必要的。

问题是您感兴趣的流程是否能很好地处理错误。如果收到错误代码会导致它们脱轨并做出不良后果,那么您可能需要向它们发送信号。或者,正如文档所说,如果你想要一个coredump或者想要使用调试器,SIGABRT会很有用。

请记住,可以捕获SIGABRT。如果需要,进程可以忽略信号。

最重要的是,启用此选项并没有真正增加的安全性。