Védekezés a legutóbbi Linux kernel sebezhetőséggel szemben
Július 12-én reggel James Troup bejelentette, hogy feltörték a gluck.debian.org kiszolgálót. Mint később kiderült az exploit a CVE-2006-2451 hibajegyben leírt GNU/Linux sebezhetőséget használta ki. A 2.6.13 és a 2.6.17.4 közötti kernel verziók érintettek. Akinek nincs lehetősége új kernel frissítésére, annak itt egy pár gyors fix.
A Debian projekt esetében használt exploit a prctl() rendszerhívásban lévő bug-ot használta ki. Ez a sebezhetőség lehetővé teszi, hogy helyi támadó core fájlokat helyezzen el tetszőleges könyvtárakban. A közkézen forgó exploit ezt kihasználva core fájl hozott létre az /etc/cron.d könyvtárban, melyet a cron értelmezett és futtatott.
Ahhoz, hogy elkerüljük ezt a támadást használhatjuk a Linux kernel paramétereinek a core fájlokra vonatkozó tagjait:
echo /dev/null >/proc/sys/kernel/core_pattern
Ezeket változtatásokat az /etc/sysctl.conf fájlban tehetjük véglegessé.
A core_uses_pid paraméter engedélyezi, hogy a coredumpot létrehozó processz PID-jét a core fájlhoz fűzze a kernel. A 0 értéket beállítva csak core néven keletkeznek a core fájlok. Ez a lehetőség akkor lehet hasznos ha könyvtáranként kontrollálni akarjuk a core fájlok létrehozását. Ha nem akarjuk, hogy egy könyvtárban core fájlok keletkezzenek, akkor egy írásvédett core nevű fájlt helyezzünk el benne:
A core_pattern paraméterrel szabályozhatjuk, hogy hol és milyen néven keletkezhetnek a core fájlok. Az alapértelmezett érték általában core, ami a folyamat aktuális munkakönyvtárában hozza létre a core fájlt.
A fenti változtatásokat az /etc/sysctl.conf fájlban tehetjük véglegessé.
Nézzük az exploitot a beállítások nélkül:
mx1[stefan]> ./a.out
Linux Kernel 2.6.x PRCTL Core Dump Handling - Local r00t
By: dreyer & RoMaNSoFt
[ 10.Jul.2006 ]
[*] Creating Cron entry
[*] Sleeping for aprox. one minute (** please wait **)
[*] Running shell (remember to remove /tmp/sh when finished) ...
sh-2.05b# rm /tmp/sh
A paraméterek beállítása után:
Linux Kernel 2.6.x PRCTL Core Dump Handling - Local r00t
By: dreyer & RoMaNSoFt
[ 10.Jul.2006 ]
[*] Creating Cron entry
[*] Sleeping for aprox. one minute (** please wait **)
[*] Running shell (remember to remove /tmp/sh when finished) ...
sh: line 1: /tmp/sh: Nincs ilyen fájl vagy könyvtár
Szemmel láthatóan ezen sebezhetőség ellen megvéd minket a fenti két paraméter. Azonban mindenképpen érdemes a terjesztés biztonsági kernel frissítését feltenni, vagy ha saját kernelünk van akkor foltozni.
- A hozzászóláshoz belépés szükséges

Friss hozzászólások
1 év 11 hét
1 év 50 hét
2 év 11 hét
2 év 11 hét
2 év 11 hét
2 év 11 hét
2 év 12 hét
2 év 12 hét
2 év 15 hét
2 év 15 hét