Knihovna Glibc 2.3.4 v roce 2004 zavedla přepínač překladače __FORTIFY_SOURCE=
, který mohl mít hodnotu 1, nebo 2. Kontroluje se přetečení vyrovnávací paměti u některých funkcí jako třeba printf
, memcpy
a strcpy
. Od Glibc 2.35 z února loňského roku a GCC 12 je tu nová úroveň ochrany 3, která kontroluje více věcí. Podobně __FORTIFY_SOURCE=
funguje i v Clangu.
Doposud Fedora kompilovala s nastavením 2 a nově od verze 38 bude mít bezpečnější __FORTIFY_SOURCE=3
. Výsledný kód bude patrně o trochu větší, dopad na rychlost podle testů SPEC je malý. Podobně 3 již používá openSUSE ALP a Gentoo v profilu hardened.
(zdroj: phoronix)