Security-all

RSBAC kritika

Fórumok

Kedves HUP közösség!

A múltkori SELinux-os fórum után szeretnék veletek néhány szót az RSBAC-ról is váltani. Tulajdonképpen onnan indult ki az egész, hogy "SLES11 SP1-ben szeretnék két cron példányt futtatni. Egyet a rendszerfeladatoknak, és egyet a felhasználóknak. Az előbbi férjen hozzá minden erőforráshoz, amihez eddig, kivéve a felhasználói crontabokat, az utóbbi pedig csak a felhasználói crontabokhoz, és még néhány, erősen behatárolt körbe eső objektumhoz, pl wget /dev/null, hálózat, stb. Úgy gondoltam, valamilyen MAC megoldást veszek igénybe, és úgy döntöttem, hármat vizsgálok meg részletesebben: SELinux, AppArmor, RSBAC."

Az RSBAC-on még mindig nem rágtam át magam teljesen, főleg azért, mert nem találtam átfogó felhasználói doksit. Aki RSBAC-ot használ, az hol tanulta meg?

Az RSBAC-cal kapcsolatban a következő érdekességeket találtam: Míg az AppArmor a fájlok elérési útja alapján korlátoz, a SELinux pedig (a UNIX DAC mintájára) minden fájl saját inode-jába, security: típusú extended attribute-ba menti el a SELinux-specifikus biztonsági attribútumokat, addig az RSBAC egy harmadik utat választ: A teljes policyt (a fájlok RSBAC-specifikus biztonsági attribútumait beleértve) az AppArmorhoz hasonlóan külön adatbázisban tárolja, de attól jelentősen eltérő módon, ugyanis:

-Minden fájlrendszer gyökérkönyvtárában külön adatbázisa van egy /rsbac.dat nevű könyvtárban. (Míg az AppArmornál az egész policy az egyetlen közös /etc/apparmor.d könyvtárban van.)
-Az RSBAC-nál a policy adatbázisok nem szöveges, hanem bináris fájlokból állnak, és nem userland programok, hanem maga a kernel kezeli őket (az aquota.user és aquota.group fájlokhoz hasonlóan).
-Annak ellenére, hogy a fájlok RSBAC-specifikus attribútumai nem az inode-okban tárolódnak, mégis inode szám alapján hivatkoznak a fájlokra (nem pedig név alapján, mint az AppArmornál).

A legutóbbi pontban felvázolt RSBAC-AppArmor eltérés sok vitára ad okot. Sokan helytelennek tartják az AppArmor hozzáállását, mivel a UNIX-okban a fájlok biztonsági attribútumai az inode-okban tárolódnak, semmi közük sincs az elérési útjukhoz (pl. öröklés sincs, mint a Windowsban), akárhol hozunk létre akármilyen típusú rájuk mutató linket, mindig az "eredeti" fájl indode-jában tárolt érték lesz a mérvadó. Ez igaz, de utánanéztem (nem vagyok programozó), és úgy találtam, hogy inode szám alapján nem lehet hivatkozni egy fájlra, csak elérés út vagy file descriptor alapján. A file descriptor pedig szintén elérési útból keletkezik, kivéve, ha egy socketen keresztül kapjuk. Ezt figyelembe véve talán mégis megfelelőnek tűnik az AppArmor megoldása, kivéve, ha arra gondolunk, hogy a korlátozandó programfájlról létrehozunk egy hard linket, és voila, az új programot máris nem korlátozza az AppArmor, az RSBAC (és a SELinux) viszont igen, hiszen a hard link inode-ja és inode száma megegyezik az eredeti fájléval. Ráadásul hard linket elég könnyű létrehozni, elég ha rx jogunk van az eredeti fájl szülőkönyvtárához, és rwx jogunk a célkönyvtárhoz. Itt tehát úgy tűnik, hogy elfogadhatatlanul gyenge az AppArmor, viszont mi van, ha hard link helyett másolatot készítünk a szóbanforgó programfájlról? Az már nem fogja korlátozni az RSBAC sem, és másolatot sem sokkal nehezebb készíteni mint hard linket. Csak annyival több jogra van hozzás szükség, hogy olvasni is tudnunk kell a forrásfájlt. Akkor megérte hát az inode-os izmozás?

A másolás és a linkelés (valamint sok más probléma) ellen védelmet nyújthat, ha minden - a felhasználók által - írható könyvtárat noexec módon mountolt partícióra rakunk. Így a hard link már el sem készülhet, már más fájlrendszeren lenne, a másolat pedig nem lesz végrehajtható. Ha szoft linket készítünk, az ugyan végrehajtható lesz, de a szoftlinkeket az AppArmor sem magának a linknak, hanem a célpontjának az elérési útja alapján ellenőrzi. Hunger rávilágított, hogy a noexec egy komoly támadóval szemben nem jelent védelmet, de én úgy érzem az általa leírt Linuxos noexec "sebezhetőség" nem a jelenti noexec teljes haszontalanságát. Vagy van más megkerülési mód is?

Nem vagyok egyedül azzal a meglátásommal, miszerint az AppArmor elérési út alapú védelme sok előnyt hordoz magában az RSBAC inode szám (és nem inode) alapú védelmével szemben. RSBAC-nál pl. ha frissítünk egy programot, tehát letöröljük a régi verziót, majd létrehozzuk az újat, akkor az új programfájlt inode száma minden valószínűség szerint el fog térni a régiétől, így nem fogja védeni az RSBAC. Sőt, mi történik, hogy az letörölt eredeti fájl felszabadult inode számát megkapja egy új, teljesen más célt szolgáló fájl? Akkor - teljesen értelmetlen módon - azt fogja lekorlátozni az RSBAC! Sőt, mivel /rsbac.dat könytárakban tárolt policy tényleg csak az inode számokra hivatkozik, a fájlneveket pedig semmilyen módon nem tárolja, ezért ha letörlünk egy általa hivatkozott védett fájlt, akkor nem fogjuk tudni kinyerni a policyből, hogy mit is kell védenünk. Le kell tárolnunk a policyt olyan formában (szöveges, fájlnevekkel operáló), hogy újra alkalmazni tudjuk a rendszerfrissítések után. Az újraalkalmazás legjobb módja pedig néhány RSBAC szekértő szerint az, ha újraindítjuk a rendszer egy "maintenance kernellel", alkalmazzuk a policyt, és megint bebootolunk a sima RSBAC kernellel. Két újraindítás minden szoftverfrissítéshez?!

Tudom, hogy a MAC-en felül sok kiváló szolgáltatást biztosít az RSBAC, ezért is keltette fel az érdeklődésemet. Tetszik pl. a PaX integrációja, de sajnos Xen alatt nem sikerült még beindítanom semmilyen PaX-os kernelt. (Sikerült viszont a 3.0.3-as kernel elindítanom PaX nélküli RSBAC-cal. Nem is rossz eredmény.) Annak ellenére, hogy az RSBAC nagyon jónak tűnik, a fenti "visszásságai" kicsit megdöbbentettek. Van valaki, aki szerint mégis érdemes továbbra is foglalkoznom vele? Mennyire elterjedt egyáltalán?

SELinux és PaX kérdések

Fórumok

Adott egy probléma:

SLES11 SP1-ben szeretnék két cron példányt futtatni. Egyet a rendszerfeladatoknak, és egyet a felhasználóknak. Az előbbi férjen hozzá minden erőforráshoz, amihez eddig, kivéve a felhasználói crontabokat, az utóbbi pedig csak a felhasználói crontabokhoz, és még néhány, erősen behatárolt körbe eső objektumhoz, pl wget /dev/null, hálózat, stb. Úgy gondoltam, valamilyen MAC megoldást veszek igénybe, és úgy döntöttem, hármat vizsgálok meg részletesebben: SELinux, AppArmor, RSBAC. Eddig a SELinuxon rágtam át magam, meg az RSBAC-on kb. félig, az AppArmorra pár pillantást vetettem, és megismerkedtem a PaXszal is (ami ugye másra való, de lazán kapcsolódik).

Úgy látom, nem a SELinux az én esetem, mégpedig többek között az alábbiak miatt:

-A processzeknek és más objektumoknak nem a linuxban már meglevő tulajdonságait használják fel az osztályozásukhoz, hanem újakat adnak hozzá, és csak ezekkel dolgoznak (ortogonalitás).

-Ennek ellenére ezek az új tulajdonságok mégiscsak közvetlenül hozzá vannak csatolva a fájlokhoz, tonnányi xattr formájában.

-Az új tulajdonságok az én ízlésem szerint nem elég rendszerközeliek, hanem túl magasszintűek, absztraktak.

-Borzasztóan bonyolult a szabályrendszere, még a legegyszerűbb RedHat házirend, a "targeted" nevű is többszázezer szabályból áll.

-A házirend forráskódból binárissá fordítása nem a betöltéskor történik, hanem előtte külön le kell fordítani. A házirend forráskódja külön RPM csomagban van, és a módosításához, lefordításához komolyan pilótavizsga kell. Rosszabb, mint annak idején a Sendmail.

-Újabban moduláris házirendek vannak, vagyis a kernelben levő házirendet menet közben ki lehet egészíteni kisebb házirend-modulokkal, ami megkönnyítené a rendszergazdák dolgát, de:

-A moduláris házirendek megjelenése óta a disztribútorok nem szállítják a magházirend forrását, ezért az nem módosítható.

-A bináris házirendekben CSAK megengedő szabályok vannak (tiltó szabályok azért nem léteznek, mert mindent tilos, amit nem szabad), ami jó, mert az azonos eseteket leíró szabályok sosem ütköznek egymással, viszont cserébe:

-Amit a magházirend megenged, azt a forrás átírása, újrafordítása, újratöltése nélkül nem lehet letiltani. A rendszergazda tehát csak engedékenyebbé tudja tenni a házirendet, szigorúbbá nem! Kivéve, ha megvan neki a házirend forrása, amit viszont minden biztonsági frissítéskor újra módosítania és fordítania kellene...
... ha egyáltalán leszállítaná neki a disztribútor:(

Jól látom, tényleg így van? Ilyen nehéz lenne szigorítani SELinuxban? Akkor ez eléggé egy a rendszerekhez drótozott megoldásnak tűnik, amire a rendszergazdák számára gyárilag kiteszik a "ne piszkáld" címkét. Vagy rosszul látom? Van benne tapasztalatotok?

Más: Úgy vettem ki, mióta az NX bit támogatás megjelent, és a 2.6.30-as óta javítottak a vanilla kernel ASRL-jének véletlenszerűségén, már nem igazán van szükség a PaX-ra, főleg, ha a programcsomagok mind úgy vannak fordítva, hogy a rendszerverem ne legyen végrehajtható (és egyáltalán egyik írható memórialap se legyen végrehajtható). A SuSE ilyen, ráadásul ezt már régóta megfejelik stack-protector és fortify-source védelmekkel is MINDEN programcsomagnál, úgyhogy nem érzem szükségesnek a PaX erőltetését, főleg, hogy nem fut Xen-en, ami miatt ha akarnám, sem tudnám használni. Jól gondolom, hogy nincs rá szükségem?

web filterhez url lista

Fórumok

ismertek jo (ez leginkabb azt jelenti, hogy rendszeresen frissitett) url (minta) listat, amely a vallalati felhasznalas szempontjabol nem megfelelo, ill. pl. fertozott oldalakat (amelyek veszelyt jelenthetnek a vegfelhasznalokra) tartalmazza?

Lehet fizetos is, ha a minosege olyan. Elso korben dansguardian-hoz kellene illeszteni.

(Az urlblacklist.com-on kivul kellene...)

Talaltam meg egyet: http://www.shallalist.de/faq.html

Chaos Communication Camp 2011

Fórumok

Valaki jön innen a Finowfurt (Berlin közelében), aug 10-14 között megrendezésre kerülő Chaos Communication Camp-re?

The Chaos Communication Camp is an international, five-day open-air event for hackers and associated life-forms. It provides a relaxed atmosphere for free exchange of technical, social, and political ideas. The Camp has everything you need: power, internet, food and fun. Bring your tent and participate!

infó:
http://events.ccc.de/2010/08/10/chaos-communication-camp-2011/
http://events.ccc.de/camp/2011/előadások listája:

http://events.ccc.de/camp/2011/Fahrplan/

hasonló jellegű 27c3-ról összefoglaló:

http://buhera.blog.hu/2011/01/03/bekevel_tavoztunk_27c3_osszefoglalo

"torolhetetlen" backup szolgaltato

Fórumok

Sziasztok!

Olyan backup szolgaltatot keresek ami kb ezeket tudja:
- egyszeruen kezelheto Linux alol (rsync)
- keszit snapshot-okat
- a snapshot-ok csak olvashatoak (!), tehat ha feltorik a gepem es be tudnak lepni a backup szolgaltatohoz es onnan is mindent letorolnek amit ernek akkor is maradjon mentes

Fileok nem valtoznak, nem kulonosebben ertekesek masnak, de muszaj valahogy jol backuppolni. Scannelt doksik, folyamatosan jonnek. Ami egyszer be van scannelve az ugye mar tobbet nem valtozik.

Az is jo nekem ha olyan object storage szolgaltatas ahol nem tudok torolni. Pl. caringo fele castor megfelelo jogkorokkel jo lenne, de nem talalok olyat aki szolgaltatna.

Talaltam sok rsync-eset, pl rsync.net, de egyiknel sem lattam olyan opciot, hogy ok snapshotolnak nekem.

Nem akarok gepet uzemeltetni, bar egyelore mas megoldast nem latok mint egy virtualis gepet valahol :-(

Apache másolás tiltása.

Fórumok

sziasztok

SVN adatbázishoz Apache-n keresztül történik a hozzáférés.

Azt meg tudtam oldani hogy 1-1 könyvtárhoz csak az adott user férjen hozzá.
DE
ez kijátszhatú úgy, hogyha a struktúrában felette elhelyezkedő könyvtárba belépve azt a könyvtárat amelyre a tiltás vonatkozik átmásolom máshová, akkor az új helyen megnyitható és szabadon nézegethetővé válnak a fájlok.

A hozzáférés link alapján történik, gondolom ez a probléma. De hogyan tudom másképp megoldani hogy ne lehessen kimásolni a könyvtárat fájlostól mindenestől?

mivel a repo-n belül nem tudom megkülönböztetni file szinten a különböző állományokat.

ime egy beállításom

Order Deny,Allow
Deny from All
AuthType Basic
AuthName "SVN authentication"
AuthUserFile /etc/apache2/dav_svn.passwd

köszönettel

smart card linux alatt

Fórumok

Sziasztok,

Olyan smart cardot és readert (adott esetben ugyanabban a szerkezetben mindkettőt, mint pl Aladdin eToken) keresek, ami
- könnyen és gyorsan megy opensc-openct alatt
- PKCS #11 kompatibilis (eToken itt megbukott)
- Windows alól is használható különösebb sámántáncok nélkül

Az a helyzet, hogy ebay-ről be lehet szerezni például egy Omnikey 3121-at, de fogalmam nincs, milyen kártya való bele - és ebay-en hiába is keresek smart cardra, egyet se találok.

Szükségem lenne valakire, akivel elbeszélgethetnék, és aki kickstartolna ebben a témában.

asd

A vírtualizáció elég e a biztonságért?

Fórumok

Helósztok. Mostanában elég sokszor nyitok itt fórumot remélem még nincs tele senkinek a töke a hülyeségeimmel. De jöjjön az amiről írni akarok. Csinálnom kellene pár ismerősnek+ ismeretlennek egy játék(cs 1.6) szervert a saját gépemre, mert közülük csak nekem van nyilvános IP címem. Mivel nem sokszor csináltam internet felől elérhető szervert(erős paranoia a nettel szemben), ezért gondoltam megpróbálom most megtanulni a biztonságos szerver készítésének fortélyait. Tehát ahol most tartok:

Van a gazda OS-em(Linux), amin fut egy VMWare Workstation 7, amin egy XP-s guest fut egyetlen bridgelt hálókártyával, amin keresztül kap egy IP címet a routeremtől. A routeren portforward van erre az IP címre a játéknak szükséges UDP portról.
A kérdésem pedig a következők.

1. A támadónak lehetséges e erről a virtualizált XP-ről elérni a routeremen lévő webadmint/a routeren keresztül a gazdagépemet?
2. A fenti megoldásnál biztonságosabb, hogyha a virtuális gép hálókártyája hostonly módban van, a gazda gépet adom meg neki átjárónak, és azt használom routerként?
3. Nektek milyen ötleteitek vannak a témával kapcsolatban?
4. Gyakorlatban milyen megoldást szoktak leggyakrabban alkalmazni?

A válaszokat előre is köszönöm.