2016-10-02 37 views
0

在OpenBSD:SIGABRT与ENOTSUP

我想硬化OpenBSD的安装。对于这个恕我直言:

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

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

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

请记住,SIGABRT可以被捕获。进程可以忽略信号,如果他们想要的话。

底线,启用此选项没有真正的附加安全性。