apparmor hu

Upload: pgabor016494

Post on 09-Jan-2016

212 views

Category:

Documents


0 download

DESCRIPTION

Apparmor

TRANSCRIPT

  • Novell AppArmor

    T E R M K I S M E R T E T

    www.novell.hu

    2005.09.28

  • Novell AppArmor Termkismertet 1. oldal

    TartalomjegyzkRendszervdelem a Novell AppArmor szoftvervel............................................................... 2

    Bevezets..................................................................................................................... 2Vlaszthat alkalmazsprofilok............................................................................................2Hlzati gynkk........................................................................................................... 3Hlzati alkalmazsok...................................................................................................... 3Webalkalmazsok............................................................................................................ 4Parancsfjl-nyelvek..........................................................................................................4Setuid programok............................................................................................................ 4Cron-nal idztett feladatok............................................................................................... 5Profilkszts................................................................................................................. 5A genprof......................................................................................................................5A logprof...................................................................................................................... 5Az eredmnyek visszaigazolsa............................................................................................6

    OpenOffice.org 1.1.4 Novell Magyarorszg

  • Novell AppArmor Termkismertet v1 2. oldal

    Rendszervdelem a Novell AppArmorszoftvervel

    Alkalmazsbiztonsg Linuxon

    Az Immunix alapjaira pl Novell AppArmor a ma kaphat leghatkonyabb s legknyel-mesebben hasznlhat Linux alkalmazsbiztonsgi rendszer. Az AppArmor megvdi az opercisrendszert s az alkalmazsokat a tmadsok, vrusok s rosszindulat szoftverek hatsaitl.Hasznlatval minimalizlhatk a vllalkozst r fenyegetsek, megvdhetk a kulcsfontossgadatok, cskkenthetk a hlzat adminisztrcis kltsgei s teljesthetk a trvnyi elrsok.

    Az AppArmor rvn biztonsgi irnyelvek kszthetk a vdelmet ignyl Linux-alkalmazsokhoz;ezek kidolgozst a program egy robusztus eszkzkszlettel segti, amely a Linuxparancskonzolbl vagy a SUSE LINUX YaST felletrl rhet el.

    Ebben a dokumentumban lerjuk, hogyan alakthatk ki a biztonsgi irnyelvek a Linuxparancskonzol hasznlatval.

    BevezetsNhny klasszikus jtancs annak rdekben, hogy az alkalmazsok fltt a tmadk nevehessk t a hatalmat:

    rdemes lezrni azokat a portokat, amelyekre nincs szksg

    Amennyire csak lehetsges, erstsk meg a nyitott portokkal rendelkez alkalmazsokbiztonsgt

    A lehet legkevesebb setuid root alkalmazst hasznljuk

    ltalban is a lehet legkevesebb szoftvert teleptsk

    Ezek a lpsek jelents erfesztseket kvetelnek, s vgrehajtsuk utn a megerstett gpkevsb knyelmesen hasznlhat. A Novell AppArmor megknnyti e tennivalk vgrehajtst,valamint biztonsgosabb s knyelmesebben hasznlhatv teszi a vdett gpet. Az AppArmorhatkonyan vdi a szksges alkalmazsokat, s lnyegesen nagyobb biztonsgi rtket knlannl, mint amit pusztn a veszlyeztetett alkalmazsok szmnak cskkentse jelent.

    Vlaszthat alkalmazsprofilokA Novell AppArmor egyik legfontosabb hasznlatknnyt funkcija a mretezhet biztonsg. Msmegoldsok esetben a biztonsgi irnyelveket a teljes rendszerre alkalmazni kell, s szmosesetben lehetetlen brmilyen rsz kizrsa az irnyelvek hatlya all. Ha az irnyelv rossz, akkorelfordul, hogy ott llunk egy srlt rendszerrel, ami letiltja a sajt szmtgpre trtnbejelentkezst.

    Az AppArmor mretezhet biztonsgi szolgltatsval eldntheti, hogy melyik programokatszeretn vdeni. Ezzel jelentsen cskkenthet a szmtgp vdelmre fordtott munkamennyisge, mivel csak azokhoz a programokhoz kell profilt kszteni, amelyek az adottkrnyezetben ki vannak tve a tmadsoknak.

    A szmtgpes rendszer hatkony megerstse megkveteli a jogosultsgokat ellenrzprogramok szmnak minimlisra cskkentst, majd a programok lehet legnagyobb mrtkbiztostst. Az AppArmor profilok kiknyszertik az irnyelvek betartst annak biztostsra,hogy a programok azt tegyk, ami a feladatuk, s semmi mst. Hozzon ltre AppArmor profiltminden jogosultsgellenrz programhoz:

    OpenOffice.org 1.1.4 Novell Magyarorszg

  • Novell AppArmor Termkismertet 3. oldal

    Hlzati gynkk: A szerver- s kliensprogramok nyitott portokkal rendelkeznek, ahlzati gynkk pedig olyan szerverprogramok, amelyek ezeken a hlzati portokonvlaszolnak. A felhasznli kliensek (pldul a levelezkliensek s a webbngszk)szintn rendelkeznek nyitott portokkal s szintn ellenriznek jogosultsgokat. Ezek aprogramok megfelel jogosultsggal futnak ahhoz, hogy rhassanak a felhasznl sajtknyvtraiba s feldolgozhassk a potencilis veszlyt jelent tvoli forrsok (pldulellensges webhelyek vagy e-mailben rkezett krtkony kdok) bemeneteit.

    Webalkalmazsok: A webbngszkn keresztl meghvott CGI PERL parancsfjlok, PHP-oldalak s mg sszetettebb webalkalmazsok.

    Setuid programok: A setuid vagy setgid programok a programfjl tulajdonosakntszerepl felhasznl vagy csoport nevben futnak, nem pedig az azokat meghvfelhasznl nevben.

    Cron-nal idztett feladatok: Azok a programok, amelyeket a cron dmon rendszeresenlefuttat, elolvassk bizonyos fajta forrsok bemenett. Ezeknek specilisjogosultsgokkal, nha akr root jogosultsggal kell futniuk (a cron pldul napontalefuttatja a /usr/bin/updatedb feladatot azrt, hogy az slocate adatbzisbabekerljenek a legfrissebb adatok, s elegend jogosultsggal rendelkezik az sszesrendszerfjl nevnek elolvasshoz).

    Hlzati gynkkA profilokat ignyl hlzati szerverdmonok megkeresshez vizsglja meg a gp nyitottportjait, gondolja vgig az ezeken vlaszol programokat, s adjon meg profilokat minl tbbprogramhoz. Ha minden nyitott hlzati porttal rendelkez programhoz profilt rendel, akkor atmadk nem juthatnak be a gp fjlrendszerbe anlkl, hogy ne tallkoznnak egy NovellAppArmor profillal.

    A szerver nyitott hlzati portjait kzzel is megkerestetheti a gpen kvlrl egy keresvel (pl.:nmap) vagy bellrl a netstat hasznlatval, majd ttekintheti a gpet annak meghatrozsra,hogy mely programok felelnek a nyitott portokon.

    Hlzati alkalmazsokEgy sokkal jobban automatizlt mdszer a Novell AppArmor unconfined nev programjnakhasznlata. Ez az eszkz a netstat nlp parancs hasznlatval vgignzi a szmtgp nyitottportjait, felderti a hozzrendelt programokat, megvizsglja a betlttt AppArmor profilokat sjelenti a programokat s a hozzjuk tartoz profilokat. Ha egy program nincs vdrizetben,nem kerl be a jelentsbe.

    Megjegyzs: Az unconfined eszkz futtatshoz root jogosultsg kell, s nem futhat egy AppArmor profilonbell. Nem klnbzteti meg egymstl a hlzati csatolkat, vagyis minden vdrizet nlkli folyamatrljelentst ad, mg azokrl is, amelyek a bels LAN-csatoln figyelnek. Ha egy program tbb hlzaticsatoln is figyel, akkor tbbszr is jelentsre kerlhet, gy a kimenetben egy bejegyzs tbbszr isszerepelhet.

    OpenOffice.org 1.1.4 Novell Magyarorszg

  • Novell AppArmor Termkismertet v1 4. oldal

    WebalkalmazsokA webalkalmazsok megkeresshez elemezni kell a webszerver-belltsokat. Az Apachewebszerver rendkvl jl konfigurlhat s a webalkalmazsok szmos knyvtrban trolhatk ahelyi belltsoktl fggen. A SUSE LINUX Enterprise Server 9 alaprtelmezsben a /srv/www/cgi-bin/ mappban trolja a webalkalmazsokat.

    Az egyes webalkalmazsok sajt Novell AppArmor profilokkal vgzett korltozsa a lehetlegkisebbre cskkenti azok jogosultsgait, s ezzel a tmad lehetsgeit arra, hogy a programfelett tvegye az uralmat. Vlaszthatja azt is, hogy kevesebbet energit fordt a rendszerbiztostsra (a biztonsg cskkense rn), s ehelyett az Apache AppArmor profilon bellfuttatja a webalkalmazsokat.

    Annak a kivlasztsa, hogy egy webalkalmazs sajt profillal rendelkezik, vagy az Apacheprofiljt hasznlja, a genprof s logprof profilkezel segdprogramokban trtnik, amelyeklersa a Profilkszts rszben tallhat. Amikor az Apache vgrehajt egy folyamatot, akkor aprofilkezel segdprogram rkrdez, hogy rendeljen-e profilt ehhez a folyamathoz, vagy azrklje az Apache profiljt.

    Parancsfjl-nyelvekSzmos webalkalmazst rnak rtelmezett parancsfjl-nyelvekben; ilyen pldul a PERL, a PHPvagy a Python.

    A teljestmny fokozsra szmos webhely hasznlja a mod_perl, mod_php s mod_pythonmodulokat, hogy ezeknek a programnyelveknek az rtelmezjt kzvetlenl az Apachewebszerverben helyezze el. gy gyorsabb vlik a mkds, mivel az Apache szoftvernek nemkell vgrehajtania egy nagy rtelmezprogramot egy kicsi parancsfjl futtatsra, csakmegnyitja a parancsfjlt s kzvetlenl rtelmezi. Ez azonban veszlyezteti a biztonsgot, mivela webalkalmazsok az Apache processzen bell futnak, az Apache jogosultsgait hasznlva. ANovell AppArmor hatkony lehetsget knl az egyes webalkalmazsok vdrizetre mg akkoris, ha azok az Apache ltal hasznlt modulokon (pldul a mod_perl, mod_php vagy mod_pythonmodulokon) bell futnak.

    Az AppArmor Apache mod_change_hat modul meghvja az AppArmor change_hat() API-t, gy azApache a vgrehajthat parancsfjl nevnek megfelelen egy alprofilra vlthat. Ha nem tallspecifikus profilt a parancsfjlhoz, akkor az rtelmezhz rendelt alaprtelmezett profilhasznlhat. Ez javthatja a biztonsgot pldul azzal, hogy minden PHP-oldalt egy hasonlprofilhoz rendel, amely elegend jogosultsggal rendelkezik az sszes PHP-oldal mkdshez,de sokkal korltosabb, mint az Apache profil.

    Setuid programokA fjlrendszer tvizsglsval megkereshetk a setuid programok. A kvetkez parancs pldulmeg fogja tallni a setuid root belltssal fut programokat:

    find/-user root -perm -4000 print

    A setuid vagy setgid programokat rdemes vdrizetbe helyezni a Novell AppArmorhasznlatval, mivel minden felhasznl szmra engedlyezik a setuid vagy setgid belltsokjogosultsgait. E jogosultsgok vdelmnek egyetlen garancija a programok hibtlansga; hahiba van a szoftverben, akkor egy jogosultsgokkal nem rendelkez felhasznl knyszertheti aprogramot egy tetszs szerinti kd lefuttatsra azzal, hogy kellkppen kreatv bemenetetbiztost, s ezzel root jogosultsgra tehet szert. Az AppArmor vdrizet biztostja, hogy aprogram csak a szksges feladatokat lssa el, s ezzel eredmnytelenn teszi ajogosultsgokkal nem rendelkez felhasznlk hasonl tmadsait.

    OpenOffice.org 1.1.4 Novell Magyarorszg

  • Novell AppArmor Termkismertet 5. oldal

    Cron-nal idztett feladatokA cron dmon ltal futtatott feladatok megkeressre t kell tekinteni a helyi cronkonfigurcit. Ez azonban sajnos elgg sszetett feladat, mivel szmos fjlt kell megvizsglni.Az ismtld cron feladatok a kvetkez fjlokbl futnak:

    /etc/crontab

    /etc/cron.d/*

    /etc/cron.daily/*

    /etc/cron.hourly/*

    /etc/cron.monthly/*

    /etc/cron.weekly/*

    A root felhasznl cron-nal idztett feladatainak esetben a feladatok mdosthatk a crontab-e, illetve kilistzhatk a crontab -l paranccsal.

    ProfilksztsHa kivlasztotta a megfelel programokat, akkor ltre kell hozni azokhoz a profilokat. A NovellAppArmor genprof s logprof segdprogramok ennek a folyamatnak a nagy rsztautomatizljk: krdseket tesznek fel, amelyekre vlaszolva interaktv mdon dnthet abiztonsgi szolgltatsokrl s gy vglegestheti a programprofilokat.

    A genprofA kiindulsi hely a genprof segdprogram. A root parancsrtelmezbe rja be a genprof fooparancsot, ahol a foo a profillal elltni kvnt program neve. A genprof megkeresi a fooprogramot, s egy indul becslst ad a program becslhet profiljrl, majd tanul mdralltja be a profilt, amikor is a profilszablyok mg nem kerlnek kiknyszertsre, de amegsrtsk mr naplzva van. A genprof ezutn felkri nt a program elindtsra egy msikablakban, s ahogy a szoftver a hasznlat sorn vgigfut a mveletein, a segdprogram sszelltegy naplfjlt, amely lerja a program helyes mkdsi mdjt.

    Futtassa vgig a programot egy teljes minsgbiztostsi (QA) cikluson, prblja ki az sszesfontos funkcit s legyen vatos azzal kapcsolatban, hogy ne futtasson semmilyen tmadst aprogram ellen. Ha vgzett, trjen vissza a genprof ablakba s nyomja meg az s billentyt azelemzs (scan) elindtsra. A genprof ezutn feltesz egy sor krdst arra vonatkozlag, hogyhogyan reagljon bizonyos fjlhozzfrsi esemnyekre.

    A foo program ltalban hozznyl bizonyos fjlokhoz, s a genprof megkrdezi, hogy pontosanmeghatrozott jogokat kvn-e rendelni a bet szerint megadott fjlnevekhez, vagy inkbbbizonyos fjlmintkhoz rendelne jogokat. A minta tartalmazhat helyettest karaktereket vagyegy #include utastssal egy szablykszletet is, hogy ne csak erre az esemnyre vonatkozzon,hanem a naplfjlban tallhat tbb msikra s a jvbeli esemnyekre is.

    A logprofA logprof segdprogram mkdse nagyon hasonlt a genprof-hoz azzal a kivtellel, hogy aNovell AppArmor profilok tovbbi tkletestsre terveztk, nem pedig a kiindulltrehozshoz. A logprof a futtats sorn tvizsglja az aktulis rendszernaplt az AppArmoresemnyek utn; rkrdez, hogy melyik esetben mi a teend s a genprof-nl emltettekhezhasonl mintkat javasol.

    OpenOffice.org 1.1.4 Novell Magyarorszg

  • Novell AppArmor Termkismertet v1 6. oldal

    A minsgbiztostsi vizsglat akr kln is vlaszthat a profilksztstl. A mretesminsgbiztostsi tesztcsomagokkal rendelkez nagy alkalmazsok esetben egyszerenelkldheti az alkalmazst s egy sor AppArmor profilt tanulsi mdban a minsgbiztostsiosztlynak tesztelsre. Az AppArmor profilok nem vltoztatjk meg a tesztelt alkalmazsmkdsi mdjt, br a naplzsi mveleteket a profil nyltan nem engedlyezi. A naplfjlok aminsgbiztostsi vizsglat vgn sszegyjthetk s e-mailben visszakldhetk a biztonsgiprofilok fejlesztinek. k ezutn ezeket offline, a vizsglt programtl elklntve is futtathatjks egyre tkletesthetik a programok logprof profiljt anlkl, hogy brmilyen mdon hozzkellene frnik a minsgellenrzst vgz gpekhez vagy a tesztcsomaghoz.

    Az eredmnyek visszaigazolsaAz AppArmor alapelve szerint a szmtgpvdelem megerstsnek utols lpse a belltsokbiztonsgossgnak ellenrzse. A profilksztsi munka hatkonysgnak vizsglatra futtassale ismt az unconfined programot (lsd: Hlzati gynkk) s vizsglja meg a kimenetet annakmegtekintsre, hogy a tmadsnak kitett programoknak van-e mr profiljuk.

    Ha a szmtgp hlzati kiszolglknt mkdik, akkor a tmadsok valsznleg a hlzatrlrkeznek. gy az unconfined programnak a hlzati portokat figyel hlzati szolgltatsoktlrkez szabvnyos kimenete pontosan tkrzi azokat a fenyegetseket, amelyeknek a gp ki vantve. Ha az unconfined jelentseket produkl sszes program ssze van rendelve AppArmorprofilokkal, akkor a tmad szmra lehetetlen, hogy kzvetlenl elrje a fjlrendszert anlkl,hogy bele ne tkzne a belltott AppArmor irnyelvekbe.

    A legrosszabb eset (pldul a szmtgpes rendszerben tmadssal okozhat krok) elemzsrevizsglja meg az unconfined program ltal kilistzott profilokat. Erre a vim az idelis eszkz,mivel ez sznekkel kiemelve mutatja a profilokat (a srgval jellt szablyok az rsi szablyok).Azoknak a fjloknak a halmaza, amelyekben egy tmad krt tehet, a profilokban felsoroltrhat fjlok halmaza. Ez most jval kisebb, mint amelyet a tmad az AppArmor irnyelv-kiknyszertsek nlkl elrhetne.

    sszefoglalsA hlzati szerverek vdelmre minden veszlyeztetett, vdrizet nlkliknt felsoroltprogramhoz rdemes hozzrendelni egy Novell AppArmor profilt. Ha brmelyik programvdrizet nlkliknt van felsorolva, lpjen vissza e dokumentum megfelel rszbe, salkalmazzon r egy AppArmor profilt. Ismtelje ezt egszen addig, amg minden program nemrendelkezik profillal. Ha vgzett, akkor az AppArmor profilok megvdik a rendszert arosszindulat kls tmadktl, minimalizljk a veszlyeket, vdik a kulcsfontossg vllalatiadatokat, cskkentik a hlzati adminisztrcis kltsgeket s segtenek betartani azelrsokat.

    OpenOffice.org 1.1.4 Novell Magyarorszg