2016-10-02 3 views
0

Sur OpenBSD:SIGABRT vs ENOTSUP

Je veux durcir une installation OpenBSD. Pour cette IMHO:

sysctl -w kern.wxabort=1 

serait plus sûr, la valeur par défaut est 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. 

donc:

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

donc pour moi (pas un programmeur) signifie que SIGABRT peut-être est mieux, car il va tuer (?) le processus, pas seulement un message d'information. Du point de vue de la sécurité, tuer le processus qui se comporte mal est plus sûr.

Question: Est-ce vrai? L'utilisation de SIGABRT est-elle plus sécurisée? Est-ce que SIGABRT tue vraiment le processus? Ou ils (SIGABRT vs ENOTSUP) sont presque les mêmes et ne tue pas le processus?

Répondre

1

Prévenir l'opération est l'endroit où vous obtenez la sécurité. Tuer le processus est une punition de bonus. Nous parlons de processus pas de personnes, cependant, donc la punition n'est pas nécessaire.

La question est de savoir si les processus qui vous intéressent traitent bien les erreurs. Si l'obtention d'un code d'erreur les fait dérailler et fait des choses indésirables, vous pouvez leur envoyer un signal. Ou, comme le dit la documentation, si vous voulez un coredump ou si vous voulez entrer dans un débogueur, SIGABRT serait utile. N'oubliez pas que SIGABRT peut être intercepté. Les processus peuvent ignorer le signal s'ils le veulent.

En résumé, l'activation de cette option n'a pas vraiment de sécurité supplémentaire.