Ahogy közel egy éve írtam róla, az IT ipar évtizedek óta küzd a puffer túlcsordulás és a hozzá hasonló memóriakorrupciós hibák ellen. Az információbiztonság offenzív és defenzív oldala örök harcban áll ezeknek a hibáknak a kihasználása miatt. A hacker életműdíjjal is jutalmazott pipacs a PaX Team név mögött, több mint másfél évtizedes munkássága nagy befolyást gyakorolt a szoftveriparra és mára a hardveriparra egyaránt. Fejlesztései nagyban befolyásolták a mai modern operációs rendszerek védelmi képességeit és a legújabb processzorok biztonsági funkcióit. Az ötletei manapság megtalálhatók a legújabb Android, Apple iOS és Windows verziókban egyaránt. A szoftverek azonban egyre bonyolultabbak és univerzalitásuk, funkciógazdagságuk a blackhat hackerek malmára hajtja a vizet. Manapság egy Windows már nagyon sok proaktív biztonsági megoldással rendelkezik, azonban – ahogy a Pwn2Own versenyeken folyamatosan bizonyítják – a rendszerek bonyolultsága és a védelmek tökéletlensége még mindig lehetőséget teremt egy sandbox mechanizmusokkal is ellátott böngésző kompromitációjához és rajta keresztül a teljes oprendszer feletti irányítás átvételéhez.
A lokális privilégium eszkalációs hibák kihasználása (“kernel root exploitok”) mára egyre fontosabb kérdéskörré nőtték ki magukat. Volt idő, amikor még mosolyogtunk, hogy két hetente jöttek ki ilyen sebezhetőségek az akkori Linux 2.4 és 2.6 kernelekhez. Manapság a Linux kernel kódbázisa már a sokszorosa az akkoriaknak és így a biztonsági hibák száma is a sokszorosára nőtt. A lokálisan kihasználható kernel hibák értéke pedig szintén nagyságrendekkel emelkedett, ahogy az ipar elkezdte használni az OS-alapú virtualizációs mechanizmusokat és a sandboxing eljárásokat (LXC, Docker és egyéb Linux namespaces alapú szeparációk a “felhőben”, seccomp filtering a böngészőkben, androidos selinux korlátozások, stb.). Ezek a virtualizációs technikák és biztonsági megoldások ugyanis könnyedén kijátszhatók egy megfelelő kernel hiba által. Amennyiben egy támadó kódot tud végrehajtani a kernel privilégiumaival, úgy át tudja venni az irányítást a teljes rendszer felett és minden védelmi mechanizmust képes kikapcsolni, egy homokozóból/konténerből pedig ki tud törni és mindenhez hozzáférni.
A kernel önvédelmének biztosítása régóta téma a PaX projektben. 2003-ban először készült a PaX jóvoltából olyan biztonsági megoldás (KERNEXEC), amely megvalósította, hogy a kernel memórialapok vagy írhatók, vagy futtathatók legyenek, de sose mindkettő egyszerre (W^X elv, amelyet az OpenBSD átvett és híressé tett, azonban csak néhány éve sikerült ezt az OpenBSD fejlesztőknek a kernel memóriaterületén is elérniük), így biztosítva azt, hogy egy egyszerű puffer túlcsordulással ne lehessen kapásból kódot futtatni a kernel adatmemória területén. A támadások azonban egyre szofisztikáltabbak lettek és manapság már szinte minden modern operációs rendszer kernele hasonló biztonsági alapokkal rendelkezik, azonban a támadók a már meglévő kódokat felhasználva is rávehetik a kernelt (és bármilyen más programkódot) arra, hogy saját igényeik szerinti sorrendben hajtsák végre azt (ROP – Return Oriented Programming). Ennek megszüntetésére jött létre a PaX RAP biztonsági megoldása, a Reuse Attack Protector, amely most már publikusan is elérhető teljes védelemmel rendelkezik a Linux kernel 4.9 verziójához.
A prweb bejelentés a Grsecurity mögött álló Open Source Security Inc. vállalatról
Eredeti Grsecurity bejelentés itt található a témában.
A 4.9 Linux kernelhez készített patch innen tölthető le.
Bővebben [0day] Új mérföldkő a biztonságban: Grsecurity a 4.9 Linux kernelhez, világelső teljes CFI-védelemmel a PaX/RAP jóvoltából →