You are on page 1of 8

Novell AppArmor

www.novell.hu
T E R M K I S M E R T E T

2005.09.28

Novell AppArmor Termkismertet

1. oldal

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

OpenOffice.org 1.1.4

Novell Magyarorszg

Novell AppArmor Termkismertet v1

2. oldal

Rendszervdelem a Novell AppArmor


szoftvervel
Alkalmazsbiztonsg Linuxon
Az Immunix alapjaira pl Novell AppArmor a ma kaphat leghatkonyabb s legknyelmesebben hasznlhat Linux alkalmazsbiztonsgi rendszer. Az AppArmor megvdi az opercis
rendszert s az alkalmazsokat a tmadsok, vrusok s rosszindulat szoftverek hatsaitl.
Hasznlatval minimalizlhatk a vllalkozst r fenyegetsek, megvdhetk a kulcsfontossg
adatok, 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 Linux
parancskonzolbl vagy a SUSE LINUX YaST felletrl rhet el.
Ebben a dokumentumban lerjuk, hogyan alakthatk ki a biztonsgi irnyelvek a Linux
parancskonzol hasznlatval.

Bevezets
Nhny klasszikus jtancs annak rdekben, hogy az alkalmazsok fltt a tmadk ne
vehessk t a hatalmat:

rdemes lezrni azokat a portokat, amelyekre nincs szksg

Amennyire csak lehetsges, erstsk meg a nyitott portokkal rendelkez alkalmazsok


biztonsgt

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 gp


kevsb knyelmesen hasznlhat. A Novell AppArmor megknnyti e tennivalk vgrehajtst,
valamint biztonsgosabb s knyelmesebben hasznlhatv teszi a vdett gpet. Az AppArmor
hatkonyan vdi a szksges alkalmazsokat, s lnyegesen nagyobb biztonsgi rtket knl
annl, mint amit pusztn a veszlyeztetett alkalmazsok szmnak cskkentse jelent.

Vlaszthat alkalmazsprofilok
A Novell AppArmor egyik legfontosabb hasznlatknnyt funkcija a mretezhet biztonsg. Ms
megoldsok esetben a biztonsgi irnyelveket a teljes rendszerre alkalmazni kell, s szmos
esetben lehetetlen brmilyen rsz kizrsa az irnyelvek hatlya all. Ha az irnyelv rossz, akkor
elfordul, hogy ott llunk egy srlt rendszerrel, ami letiltja a sajt szmtgpre trtn
bejelentkezst.
Az AppArmor mretezhet biztonsgi szolgltatsval eldntheti, hogy melyik programokat
szeretn vdeni. Ezzel jelentsen cskkenthet a szmtgp vdelmre fordtott munka
mennyisge, mivel csak azokhoz a programokhoz kell profilt kszteni, amelyek az adott
krnyezetben ki vannak tve a tmadsoknak.
A szmtgpes rendszer hatkony megerstse megkveteli a jogosultsgokat ellenrz
programok szmnak minimlisra cskkentst, majd a programok lehet legnagyobb mrtk
biztostst. Az AppArmor profilok kiknyszertik az irnyelvek betartst annak biztostsra,
hogy a programok azt tegyk, ami a feladatuk, s semmi mst. Hozzon ltre AppArmor profilt
minden jogosultsgellenrz programhoz:

OpenOffice.org 1.1.4

Novell Magyarorszg

Novell AppArmor Termkismertet

3. oldal

Hlzati gynkk: A szerver- s kliensprogramok nyitott portokkal rendelkeznek, a


hlzati gynkk pedig olyan szerverprogramok, amelyek ezeken a hlzati portokon
vlaszolnak. A felhasznli kliensek (pldul a levelezkliensek s a webbngszk)
szintn rendelkeznek nyitott portokkal s szintn ellenriznek jogosultsgokat. Ezek a
programok megfelel jogosultsggal futnak ahhoz, hogy rhassanak a felhasznl sajt
knyvtraiba s feldolgozhassk a potencilis veszlyt jelent tvoli forrsok (pldul
ellensges webhelyek vagy e-mailben rkezett krtkony kdok) bemeneteit.

Webalkalmazsok: A webbngszkn keresztl meghvott CGI PERL parancsfjlok, PHPoldalak s mg sszetettebb webalkalmazsok.

Setuid programok: A setuid vagy setgid programok a programfjl tulajdonosaknt


szerepl felhasznl vagy csoport nevben futnak, nem pedig az azokat meghv
felhasznl nevben.

Cron-nal idztett feladatok: Azok a programok, amelyeket a cron dmon rendszeresen


lefuttat, elolvassk bizonyos fajta forrsok bemenett. Ezeknek specilis
jogosultsgokkal, nha akr root jogosultsggal kell futniuk (a cron pldul naponta
lefuttatja a /usr/bin/updatedb feladatot azrt, hogy az slocate adatbzisba
bekerljenek a legfrissebb adatok, s elegend jogosultsggal rendelkezik az sszes
rendszerfjl nevnek elolvasshoz).

Hlzati gynkk
A profilokat ignyl hlzati szerverdmonok megkeresshez vizsglja meg a gp nyitott
portjait, gondolja vgig az ezeken vlaszol programokat, s adjon meg profilokat minl tbb
programhoz. Ha minden nyitott hlzati porttal rendelkez programhoz profilt rendel, akkor a
tmadk nem juthatnak be a gp fjlrendszerbe anlkl, hogy ne tallkoznnak egy Novell
AppArmor 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 alkalmazsok
Egy sokkal jobban automatizlt mdszer a Novell AppArmor unconfined nev programjnak
hasznlata. Ez az eszkz a netstat nlp parancs hasznlatval vgignzi a szmtgp nyitott
portjait, felderti a hozzrendelt programokat, megvizsglja a betlttt AppArmor profilokat s
jelenti 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 profilon
bell. Nem klnbzteti meg egymstl a hlzati csatolkat, vagyis minden vdrizet nlkli folyamatrl
jelentst ad, mg azokrl is, amelyek a bels LAN-csatoln figyelnek. Ha egy program tbb hlzati
csatoln is figyel, akkor tbbszr is jelentsre kerlhet, gy a kimenetben egy bejegyzs tbbszr is
szerepelhet.

OpenOffice.org 1.1.4

Novell Magyarorszg

Novell AppArmor Termkismertet v1

4. oldal

Webalkalmazsok
A webalkalmazsok megkeresshez elemezni kell a webszerver-belltsokat. Az Apache
webszerver rendkvl jl konfigurlhat s a webalkalmazsok szmos knyvtrban trolhatk a
helyi 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 lehet
legkisebbre cskkenti azok jogosultsgait, s ezzel a tmad lehetsgeit arra, hogy a program
felett tvegye az uralmat. Vlaszthatja azt is, hogy kevesebbet energit fordt a rendszer
biztostsra (a biztonsg cskkense rn), s ehelyett az Apache AppArmor profilon bell
futtatja a webalkalmazsokat.
Annak a kivlasztsa, hogy egy webalkalmazs sajt profillal rendelkezik, vagy az Apache
profiljt hasznlja, a genprof s logprof profilkezel segdprogramokban trtnik, amelyek
lersa a Profilkszts rszben tallhat. Amikor az Apache vgrehajt egy folyamatot, akkor a
profilkezel segdprogram rkrdez, hogy rendeljen-e profilt ehhez a folyamathoz, vagy az
rklje az Apache profiljt.

Parancsfjl-nyelvek
Szmos webalkalmazst rnak rtelmezett parancsfjl-nyelvekben; ilyen pldul a PERL, a PHP
vagy a Python.
A teljestmny fokozsra szmos webhely hasznlja a mod_perl, mod_php s mod_python
modulokat, hogy ezeknek a programnyelveknek az rtelmezjt kzvetlenl az Apache
webszerverben helyezze el. gy gyorsabb vlik a mkds, mivel az Apache szoftvernek nem
kell vgrehajtania egy nagy rtelmezprogramot egy kicsi parancsfjl futtatsra, csak
megnyitja a parancsfjlt s kzvetlenl rtelmezi. Ez azonban veszlyezteti a biztonsgot, mivel
a webalkalmazsok az Apache processzen bell futnak, az Apache jogosultsgait hasznlva. A
Novell AppArmor hatkony lehetsget knl az egyes webalkalmazsok vdrizetre mg akkor
is, ha azok az Apache ltal hasznlt modulokon (pldul a mod_perl, mod_php vagy mod_python
modulokon) bell futnak.
Az AppArmor Apache mod_change_hat modul meghvja az AppArmor change_hat() API-t, gy az
Apache a vgrehajthat parancsfjl nevnek megfelelen egy alprofilra vlthat. Ha nem tall
specifikus profilt a parancsfjlhoz, akkor az rtelmezhz rendelt alaprtelmezett profil
hasznlhat. Ez javthatja a biztonsgot pldul azzal, hogy minden PHP-oldalt egy hasonl
profilhoz rendel, amely elegend jogosultsggal rendelkezik az sszes PHP-oldal mkdshez,
de sokkal korltosabb, mint az Apache profil.

Setuid programok
A fjlrendszer tvizsglsval megkereshetk a setuid programok. A kvetkez parancs pldul
meg fogja tallni a setuid root belltssal fut programokat:
find/-user root -perm -4000 print

A setuid vagy setgid programokat rdemes vdrizetbe helyezni a Novell AppArmor


hasznlatval, mivel minden felhasznl szmra engedlyezik a setuid vagy setgid belltsok
jogosultsgait. E jogosultsgok vdelmnek egyetlen garancija a programok hibtlansga; ha
hiba van a szoftverben, akkor egy jogosultsgokkal nem rendelkez felhasznl knyszertheti a
programot egy tetszs szerinti kd lefuttatsra azzal, hogy kellkppen kreatv bemenetet
biztost, s ezzel root jogosultsgra tehet szert. Az AppArmor vdrizet biztostja, hogy a
program csak a szksges feladatokat lssa el, s ezzel eredmnytelenn teszi a
jogosultsgokkal nem rendelkez felhasznlk hasonl tmadsait.

OpenOffice.org 1.1.4

Novell Magyarorszg

Novell AppArmor Termkismertet

5. oldal

Cron-nal idztett feladatok


A cron dmon ltal futtatott feladatok megkeressre t kell tekinteni a helyi cron
konfigurcit. 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.

Profilkszts
Ha kivlasztotta a megfelel programokat, akkor ltre kell hozni azokhoz a profilokat. A Novell
AppArmor genprof s logprof segdprogramok ennek a folyamatnak a nagy rszt
automatizljk: krdseket tesznek fel, amelyekre vlaszolva interaktv mdon dnthet a
biztonsgi szolgltatsokrl s gy vglegestheti a programprofilokat.

A genprof
A kiindulsi hely a genprof segdprogram. A root parancsrtelmezbe rja be a genprof foo
parancsot, ahol a foo a profillal elltni kvnt program neve. A genprof megkeresi a foo
programot, s egy indul becslst ad a program becslhet profiljrl, majd tanul mdra
lltja be a profilt, amikor is a profilszablyok mg nem kerlnek kiknyszertsre, de a
megsrtsk mr naplzva van. A genprof ezutn felkri nt a program elindtsra egy msik
ablakban, s ahogy a szoftver a hasznlat sorn vgigfut a mveletein, a segdprogram sszellt
egy naplfjlt, amely lerja a program helyes mkdsi mdjt.
Futtassa vgig a programot egy teljes minsgbiztostsi (QA) cikluson, prblja ki az sszes
fontos funkcit s legyen vatos azzal kapcsolatban, hogy ne futtasson semmilyen tmadst a
program ellen. Ha vgzett, trjen vissza a genprof ablakba s nyomja meg az s billentyt az
elemzs (scan) elindtsra. A genprof ezutn feltesz egy sor krdst arra vonatkozlag, hogy
hogyan reagljon bizonyos fjlhozzfrsi esemnyekre.
A foo program ltalban hozznyl bizonyos fjlokhoz, s a genprof megkrdezi, hogy pontosan
meghatrozott jogokat kvn-e rendelni a bet szerint megadott fjlnevekhez, vagy inkbb
bizonyos fjlmintkhoz rendelne jogokat. A minta tartalmazhat helyettest karaktereket vagy
egy #include utastssal egy szablykszletet is, hogy ne csak erre az esemnyre vonatkozzon,
hanem a naplfjlban tallhat tbb msikra s a jvbeli esemnyekre is.

A logprof
A logprof segdprogram mkdse nagyon hasonlt a genprof-hoz azzal a kivtellel, hogy a
Novell AppArmor profilok tovbbi tkletestsre terveztk, nem pedig a kiindul
ltrehozshoz. A logprof a futtats sorn tvizsglja az aktulis rendszernaplt az AppArmor
esemnyek utn; rkrdez, hogy melyik esetben mi a teend s a genprof-nl emltettekhez
hasonl 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 mretes


minsgbiztostsi tesztcsomagokkal rendelkez nagy alkalmazsok esetben egyszeren
elkldheti az alkalmazst s egy sor AppArmor profilt tanulsi mdban a minsgbiztostsi
osztlynak tesztelsre. Az AppArmor profilok nem vltoztatjk meg a tesztelt alkalmazs
mkdsi mdjt, br a naplzsi mveleteket a profil nyltan nem engedlyezi. A naplfjlok a
minsgbiztostsi vizsglat vgn sszegyjthetk s e-mailben visszakldhetk a biztonsgi
profilok fejlesztinek. k ezutn ezeket offline, a vizsglt programtl elklntve is futtathatjk
s egyre tkletesthetik a programok logprof profiljt anlkl, hogy brmilyen mdon hozz
kellene frnik a minsgellenrzst vgz gpekhez vagy a tesztcsomaghoz.

Az eredmnyek visszaigazolsa
Az AppArmor alapelve szerint a szmtgpvdelem megerstsnek utols lpse a belltsok
biztonsgossgnak ellenrzse. A profilksztsi munka hatkonysgnak vizsglatra futtassa
le ismt az unconfined programot (lsd: Hlzati gynkk) s vizsglja meg a kimenetet annak
megtekintsre, hogy a tmadsnak kitett programoknak van-e mr profiljuk.
Ha a szmtgp hlzati kiszolglknt mkdik, akkor a tmadsok valsznleg a hlzatrl
rkeznek. gy az unconfined programnak a hlzati portokat figyel hlzati szolgltatsoktl
rkez szabvnyos kimenete pontosan tkrzi azokat a fenyegetseket, amelyeknek a gp ki van
tve. Ha az unconfined jelentseket produkl sszes program ssze van rendelve AppArmor
profilokkal, 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) elemzsre
vizsglja 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 felsorolt
rhat fjlok halmaza. Ez most jval kisebb, mint amelyet a tmad az AppArmor irnyelvkiknyszertsek nlkl elrhetne.

sszefoglals
A hlzati szerverek vdelmre minden veszlyeztetett, vdrizet nlkliknt felsorolt
programhoz rdemes hozzrendelni egy Novell AppArmor profilt. Ha brmelyik program
vdrizet nlkliknt van felsorolva, lpjen vissza e dokumentum megfelel rszbe, s
alkalmazzon r egy AppArmor profilt. Ismtelje ezt egszen addig, amg minden program nem
rendelkezik profillal. Ha vgzett, akkor az AppArmor profilok megvdik a rendszert a
rosszindulat kls tmadktl, minimalizljk a veszlyeket, vdik a kulcsfontossg vllalati
adatokat, cskkentik a hlzati adminisztrcis kltsgeket s segtenek betartani az
elrsokat.

OpenOffice.org 1.1.4

Novell Magyarorszg

You might also like