Biztonságos linux második rész
1. tekint vissza
Egy korábbi cikkben (lásd. „Források” című részben) azt vizsgáltuk, hogy az alapvető funkciókat, és előre elkészített profilok AppArmor. Mielőtt rátérnénk a fő témája ennek a cikknek -, hogy hozzon létre saját profilt, röviden felidézni, amit már eddig is tudtunk:
- AppArmor végrehajtja a kötelező hozzáférés-vezérlés elvén alapul a „tiltott minden, ami nem kifejezetten megengedett”;
- AppArmor csak figyeli azokat a programokat, amelyek ott is betöltött (aktív) profil;
- AppArmor fontos az abszolút elérési utat a program-vezérelt - ő megkülönbözteti egy kérelmet egy másik;
- AppArmor csak azok a tevékenységek, amelyek szerepelnek a profil a program szabályait, megtiltja mások számára;
- Két alapvető módja az ellenőrzés: teszt üzemmódban panaszkodnak (ő tanulási mód), amelyek a cselekvések nem tiltott, de a log fájl van írva, hogy egy politikai értesítési profil programok és érvényesítése - az üzemmód, amelyben a rendelkezésre álló cselekvési programok korlátozódik a profilnak megfelelően;
- jelentett kísérletek megszegik a szabályokat írt a profil /var/log/audit/audit.log fájl vagy a / var / log / messages (beállítástól függően).
2. profilok AppArmor
Az által nyújtott biztonságot AppArmor alapján a program profilját. Tény, hogy a profil egy konfigurációs fájlt a szintaxis. Régóta elfogadott tény, hogy a * nix rendszer konfigurációs fájlok egyszerű szöveges; sem kivételek, és AppArmor profilokat. Vegyünk néhány meglévő profilok:
2.1. Ez magában foglalja a profilok és az előre definiált változók
Profilokat hozhat létre új program - ez nem mindig könnyű, amelyek különös figyelmet a részletekre. Elősegítik a profil létrehozását tervezték, hogy az alapvető szabályokat, amelyek lehetnek szerves részét bármelyik profilt.
A készítmény AppArmor tartalmaz egy nagy gyűjtemény alapvető szabályrendszer, amely tartalmazza a profil irányelv #include. Ezek tartalmazzák /etc/apparmor.d/abstractions könyvtárban. Hívjuk az ilyen szabályok készlet profilok, hiszen ez az a céljuk - vannak, sőt, a profilokat, de ezeket csak a többi profil. Mind a benne profilok lehetővé teszi a specifikus funkciókat, például a hitelesítés elvégzéséhez, használata névfeloldás szolgáltatást, Kerberos, és így tovább. Jellemzően a célra - funkcionalitás, amely lehetővé teszi a mellékelt profilja - kitűnik a fájlnevek:
Amellett, hogy a szabályokat, amelyek lehetővé teszik a funkcionalitás, AppArmornak is egy előre definiált változók (fájlok ismertetik, amelyek szerepelnek a katalógusban /etc/apparmor.d/tunables) típusú @, @, és mások. Azonban a különböző változók nagyon messze elmarad a profilokat tartalmazza:Természetesen a változók száma lehet kitölteni függetlenül (valamint megosztják tapasztalataikat a közösség - lásd 6. pont a „források” című részben ..).
2.2. POSIX-lehetőségek és a hozzáférési jogokat a fájlok és könyvtárak
Most viszont, hogy magukat a szabályokat, lehetővé teszi, hogy a program meghatározott tevékenységek elvégzésére. Szabályok vannak osztva, amely lehetővé teszi bizonyos lehetőségek és a hozzáférési jogosultságok beállítása a fájlok és könyvtárak.
Kezdjük egy egyszerű: létrehozni hozzáférési jogokat - ez a legtermészetesebb és legelterjedtebb korlátozásokat vezettek be a kérelmet. A jogok olvasás-végrehajtás hasznos lehet minden olyan program: tudja megvédeni szerver konfigurációs fájlok véletlen törlés, saját adatokat - kívülállók olvasás programokat. Ezen kívül, ha beállítás AppArmorral behajtáskorlátozási széles skáláját kínálja a lehetőséget, hogy biztosítsák a szükséges rugalmasságot a kényelmes működtetés, beleértve korlátozás a gyermek folyamatok (lásd 1. táblázat).
A megfelelő profil, jelezve a rendelkezésre álló program fájlok és könyvtárak vannak írva a következő: "<путь к каталогу> <права доступа>”.
1. táblázat módok objektum hozzáférésére AppArmorral
Az új eljárás nem szabályozott, de AppArmor tisztítja környezeti változókat.
Mint fogant az alkotók AppArmor, egy sor lehetőséget ad a szükséges és elégséges kapacitás korlátozza a hozzáférési jogokat programok fájlokat és könyvtárakat. Emellett további vezérlés lehetővé teszi a gyermek folyamatok (hátrányok elkerülése érdekében chroot) nem termel külön „sandbox” nem csak az eredeti futó alkalmazás, hanem annak leszármazottai. Ugyanakkor, mivel nem ok nélkül, azt a dokumentációban (lásd. 4. o a „források” című részben), el kell kerülni a használatát az utóbbi két lehetőség, hiszen származhat a gyermek folyamatok ellenőrzése alatt AppArmor. Azt is könnyű kitalálni, hogy egyes opciók kölcsönösen kizárják egymást (például ix és px).
AppArmor is képes irányítani más funkciók nem kapcsolódnak egy olvasás-fájlvégrehajtást jogok tárgyakat. A szabályok megadhatja a profil lehetővé teszi ezeknek a funkcióknak a POSIX szabvány (például egy változási folyamat végrehajtását prioritások).
Minden ilyen lehetőség írt kulcsszó képesség, és egy teljes lista a rendelkezésre álló POSIX-funkciók láthatók beírásával férfi képességek (ne felejtsük el, hogy hozzon létre egy szabályt, hogy távolítsa el «CAP_» a nevét, ha lehetséges). Például a példa profil sbin.syslog-ng programok lehetőséget nyújtanak a chown (POSIX-lehetőséget CAP_CHOWN) - tetszőleges változás az UID GID a fájl; dac_override (normál - CAP_DAC_OVERRIDE) lehetővé teszi a programok futnak egy privilegizált felhasználó, nem veszi figyelembe az iratbetekintés, és így tovább.
3. Hozzon létre egy új profilt
AppArmor felhasználó kényelmét még nincs vége egyértelmű szintaktikai profilt. A készítmény AppArmor tartalmaz egy sor eszközök segítségével profilokat hozhat létre különböző (beleértve a saját) programok: autodep, genprof és logprof (a rendszerben is van egy szimbolikus hivatkozás a parancsokat, amelyek a toldalék «AA», rámutatva, hogy a hovatartozás AppArmor: aa-autodep , aa-genprof és aa-logprof). Ezek az eszközök célja, hogy jelentősen leegyszerűsítheti a profil létrehozásakor. Próbáljuk használni őket, hogy hozzon létre egy profilt a közművek passwd (a profilt a programhoz már egy további profilok az / etc / apparmor / profiles / extrák és a / usr / share / doc / apparmor-profilok / extrák openSUSE és Ubuntu, illetve - a jobb, mint az eredmények összehasonlíthatók legyenek).
3.1. Hozzon létre egy új profilt a példát passwd program
Új profil létrehozása igényel némi időt és figyelmet. Azonban semmit sem lehet tenni visszafordíthatatlanul romboló - bármikor törölheti a rossz profilt, és visszatér az első lépést.
Minden további lépések kapcsán leírt OpenSUSE 11.1. Azonban, a profilok létrehozásakor más eloszlásokat létrehozott AppArmor (például Ubuntu vagy Mandrive) szintén nem okoz nehézségeket.
Hozzon létre egy alap program profilját segítségével autodep segédprogramot:
Szíves érdeklődni, hogy hozzon létre egy új profilt, vagy egyszerűen csak másold be a meglévő igény:
[1 - Inaktív profilok a helyi / usr / bin / passwd]
[(V) Nézet Profil] / (U) se Profil / (C) reate Új profil / Abo (r) t / (F) inish
Nyomja meg a «C» - hogy hozzon létre egy új profilt.
Zypisyvaetsya frissített Profil / usr / bin / passwd.
Minden észrevette a szedési tolmács, de megbocsátott neki - minden hibáznak.
Nézd, mi történt:
Bit. Inkább úgy néz ki, mint egy sablon, mint az igazi profilja. De a profil automatikusan bekerül panaszkodnak mód, amely hasznos lehet a következő lépéseket.
Futtassa a segédprogramot profilalkotás genprof:
[(S) lehet a rendszer log SUBDOMAIN események] / (F) inish
Amikor elkezdjük genprof segédprogram rákérdez - meg kell egy külön ablakban (anélkül, hogy megszakítaná genprof munka) fut a profilos alkalmazására és „megmutatni a program”, vagyis teljesíti, amit általában csinálni, és ez közös a program. A feladataikat passwd program nem nagyon változatos, így egyszerűen változtatni a felhasználó jelszavát:
Ekkor AppArmor saját log fájl rögzíti az összes hívás profilozható program fájlok és mappák, és rögzíti információt használata POSIX képességek:
Amikor befejezte az alkalmazás, kattintson a terminál a segédprogram futtatása genprof gomb «S», majd pedig lehetővé végrehajtott műveleteket profilos program:
[(A) llow] / (D) eny / (G) lob / Glob W / (E) XT / (N) EW / Abo (r) t / (F) inish / (O) pont
Hozzáadott /lib/security/pam_*.so tulajdonos mr profilt.
Mutat be válogatást igényel egy kis magyarázat:
Hagyjuk - lehetővé teszi a keresetet;
Deny - tagadja a keresetet;
Glob - lehetővé teszik, hogy a kereset az összes fájlt a megadott könyvtárba;
Glob w / Ext - lehetővé teszik, hogy a kereset az összes ilyen típusú fájlokat (kiterjesztéssel) a megadott könyvtárban;
Újdonság - szerkesztési mód - megadhatja egy másik utat a fájl / könyvtár helyett a javasolt genprof;
A megszakítási - szakítsa meg a munkát, akkor elveszíti az összes változtatást - Profil marad, mint előtte volt a dob genprof;
Befejezés - az genprof segédprogramot. Ez ment a változtatások a szabályokat;
Dönt - kijelzők további szabályokat opciót.
Gyakran genprof kínál a felhasználó választhat a több változatban a rendeletek (ők vannak számozva, és a javasolt lehetőség szögletes zárójelben), amely lehet kiválasztani megnyomásával a számot, amely megfelel a számot. A fenti példában, a következő kiviteli alakok:
Ott javasolják, hogy csatlakoztassa a hitelesítési minta
A végső profil kerül át a kényszerítés módba. A teljesítményt lehet ellenőrizni újra a futás a passwd program: ha a jelszó képes megváltoztatni, akkor a felesleges még nem tiltott semmit.
Ennek eredményeként, miután néhány nem túl sikeres kísérlet után a végső profilt kiderült a következő:
Ha a kapott profil valamilyen okból nem tetszik (túl sok hasonló szabályokat, vagy hagyjuk valami teljesen felesleges programokat), akkor vagy ismételje meg az eljárást, vagy kézzel kell szerkeszteni a profilját. Például, ha azt saját maga által készített alapján javaslatok általában genprof
meg kell változtatni ezt:
(Vagy, ahogy akkor lásd alább, akkor további szűkítéséhez:
passwd program létrehoz egy ideiglenes fájlt, ami a neve shadow.tmp random string (hat karakter), így a jogot, hogy írni és olvasni kell nyújtani mindazoknak, akik a fájlokat.
Alapértelmezésben az opció tulajdonosa szabályok fogják rögzíteni (valamilyen oknál fogva nem jelenik meg a hivatalos dokumentumok) - rámutat, hogy a hozzáférést a fájl / könyvtár csak akkor engedélyezett, hogy a tulajdonos. Passwd segédprogram lényegtelen, miközben különböző felhasználók által használt programok, ez egy nagyon fontos lehetőség. Például, ha a böngésző hozzáférési jogosultsági beállításokat files / történelem, stb A következő szabály típusát
Ebben az esetben a firefox, akkor biztos lehet benne, hogy a program csak a hozzáférést az alkönyvtár .firefox felhasználó saját könyvtárát, indítsa el a böngészőt (ami a tulajdonosa az összes fájlt és alkönyvtárat .firefox).
Az elmúlt két példa, a szabályok már alkalmazott helyettesítések sablonok (buborékocskákat). Mivel megadhatja többszörös útvonalak és fájlnevek használatával ezeket a mintákat (2. táblázat).
2. táblázat sablonok permutációk