Funkcje zabezpieczające


ProPolice
Kompilator, a właściwie patch na kompilator GNU GCC
  1. wprowadzony w OpenBSD 3.3
  2. odpowiednik StackGuard dla Linuxa
  3. 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ń
  1. PROT_READ - strona może być tylko czytana
  2. PROT_WRITE - strona może być zapisywana, nie może być wykonywana
  3. 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