Funkcje zabezpieczające
ProPolice
Kompilator, a właściwie patch na kompilator GNU GCC
- wprowadzony w OpenBSD 3.3
- odpowiednik StackGuard dla Linuxa
- działa na większosci architektur
Niewykonywalny stos
Pamięć przeznaczona na stos nie może być wykonywana. Zmusza to programistów do pisania
programów zgodnych z zasadami bezpieczeństwa.
strlcpy() i strlcat()
int strlcpy(char* dest,char* source,int size)
int strlcat(char* dest,char* source,int size)
Funkcje działające podobnie do strncpy() i strncat(), ale pozbawione ich wad. Strlcpy zawsze
wstawia NULL na końcu tego co napisał, co czyni ją bezpieczniejszą. Stlncpy jest też wydajniejsza
niż strlcat, bo jesli strlen(source) jest mniejsze niż size, to na koncu wstawi jeden znak, a nie
(size-strlen(source))znakow zero.
System PROT
Każda strona ma jedno z trzech uprawnień
- PROT_READ - strona może być tylko czytana
- PROT_WRITE - strona może być zapisywana, nie może być wykonywana
- PROT_EXEC - strona może być wykonywana, nie może być zapisana
WxorX
W OpenBSD nie jest możliwe by strona była jednocześnie do zapisu i do wykonania.
Rodata
Wumuszenie podziału na segmenty kodu programu na segmenty do zapisu i do wykonania (dane procesu,
rzeczywisty kod programu). Stosowane binaria ELF.
dalej