Tapasztalatok: Exec Shield for Linux/x86

Címkék

Öt cikkel lejjebb olvashatsz Molnár Ingo "Exec Shield" foltjáról. Kipróbáltam, úgyhogy közzéteszem a tapasztalataimat.

Konfiguráció:

Debian Sarge

2.4.21-RC1 kernel

exec-shield-2.4.21-rc1-B6 folt

A kernelt megfoltozva, lefordítva semmilyen hibaüzenetet nem kaptam. Szépen lefordult, újra bootoltam a rendszert. Többé-kevésbé minden elindult.

Ami működött: ADSL kapcsolat, X, gkrellm, Opera, Xchat, MPlayer, Abiword, OpenOffice.org, Gimp, Apache, Bind, SSH, a játékok közül a Return to Castle Wolfenstein: Enemy Territory

Ami nem működött: Mozilla, Evolution, semmilyen Java alkalmazás, mert a Java VM nem indult, UT2003, Duke Nukem 3D, Xmms, szinte az összes GNOME alkalmazás, Galeon, MySQL

Tapasztalatok: ha kikapcsoltam az exec shield-et

echo 0 > /proc/sys/kernel/exec-shield

, akkor sem működtek a fent említett alkalmazások. Ha bekapcsoltam az X server workaroundot (amit nem úgy kell bekapcsolni ahogy a dokumentációban le van írva), akkor nem indult el az X server.Körülbelül 15 perc használat után érdekes dolgokat vettem észre a filerendszeren: néhány filet (pl. /root/.bash_profile) nem tudott a rendszer megnyitni. Próbáltam a rendszert szabályosan leállítani, (ctrl+alt+del) de nem futottak le a scriptek, csak újraindult a gép. A második újrabootolás során a reiserfsck hibát jelzett, majd a rendszert single módban indítva, a /-t umount-olva futtattam a reiserfsck-t. Az fsck azt mondta, hogy a filerendszert csak a reiserfsck --rebuild-tree kapcsolóval tudja csak helyretenni (ez nagy hibát jelent, ehhez még soha nem kellett folyamodnom, pedig lassan két éve használok reiserfs-t). A reiserfsck NEM tudta a filerendszert helyreállítani, így azon a partíción levő adatok teljesen elvesztek.

Következtetés: amint látszik a patch nem mondható "production enviroment ready"-nek. Nem igazán használható a vele foltozott kernel desktop környezetben. Igazából szerver környezetben sem, hiszen egy olyan egyszerű adatbázis szerver, mint a (MySQL) már nem indult el vele. Arról nem is beszélve, hogy két bootolás után a filerendszer használhatatlanná vált.

Most két dolog lehetséges:

1.) Valóban a patch nem jó, jelenlegi állapotában nem alkalmas komolyabb használatra

2.) Csak a véletlenek szerencsétlen együttállása
eredményezte azt, amit fent leírtam. Amit nem tartok valószínűnek:

a.) pont akkor menjen tönkre egy több éve használt filerendszer - másolata - hehe, azért annyira nem vagyok luzer, hogy éles rendszeren próbáljak ki egy ilyen foltot ;-) - amikor egy új kernellel bootolok

b.) Csak véletlenül ne induljon el pl. a MySQL, ami több éve fut a gépemen (egyébként kipróbáltam a régi kernellel elsőre elindult a MySQL) amikor egy ilyen foltot tesztelek

Ennek ellenére minden lehetséges, a HDD-t most komolyabb vizsgálatnak teszem ki (badblocks, kalapács, flex ;-) Mindenesetre a dolog fokozott óvatosságot igényel.

Ezek után mindenki csak a *saját felelősségére* próbálja ki a foltot! Viszont várom a visszajelzéseket azoktól, akik voltak/lesznek olyan bátrak, és kipróbálják. Már csak azért is, hogy kiderüljön, csak nekem nem volt szerencsém, vagy tényleg jelentkeznek ezek a "tünetek".

Hozzászólások

azert ne felejtsuk el, hogy ez egy fejlesztoi folt.

Elég luser vagy, hogy ReiszFS-t használsz. ;))))

> (ez nagy hibát jelent, ehhez még soha nem kellett folyamodnom, pedig lassan két éve használok reiserfs-t)

nekem azert akadt, ujabb mozillat akartam telepiteni, kozolte h akkor torli a regit, mondtam ok... aztan most van egy konyvtaram amit nem tudok letorolni, attettem a /tmp-be

rm /tmp/lib/ -R

rm: cannot remove `/tmp/lib/bharsets.jar': No such file or directory

rm: cannot remove directory `/tmp/lib': Directory not empty

:)

Helyesbitek: egy ujabb verzioju reiserfsprogs-bol valo reiserfsck rendbetette a filerendszert. A teszteles folytatodik.

Talan az -rc1 kernel pusztit bele a dologba.. Massal nem volt

megpatchelve?

Kiprobalod majd vanilla 2.4.20-szal es ext2-vel?

Felreertettel. A kernelpatch - ismerve Mingo munkait - biztos, hogy maximalis korultekintesel keszult. Eltekintve az FS korrupciotol, ami barmitol lehetett, a patch mukodik. Csak az a baj, hogy ha desktop userek vagyunk, akkor nem biztos, hogy ez nekunk jo. Jo, mondhatjuk, hogy nem otthoni felhasznalasra keszult. De nem megy vele a MySQL ami viszont mar nagyobb baj. Rengeteg site hasznal MySQL-et, nem lehet figyelmen kivul hagyni egy ilyen szervert. Es a fenti megallapitasok csak a naponta hasznalt alkalmazasokra tert ki, a tobbire nem is volt ido.

>Azert van meg c.) lehetoseg is:

A nem mukodo alkalmazasok rosszul vannak megirva, es a kernel-patch nem engedi oket rosszul mukodni.

Marmint biztonsagi szempontbol rosszul. Az latod lehet...

Ez a c) lehetoseg ("rosszul megirt alkalmazas") biztosan nem mindenre

foghato ra. Peldanak okaert, kereken ki lett mondva hogy a

trampoline-okat nem emulaljuk. A gcc trampoline-okat hasznals nested

function-ok megvlositasahoz. Az a programreszlet amit igy irtak meg

nem tekintheto hibasnak, megse fog mukodni (PaX es OpenWall alatt is

csak kulon rugdosassal).