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 , vagy engednek hozzáférést a /lib/security/pam_deny.so fájlt, vagy engednek hozzáférést a fájlokat a sablon /lib/security/pam_*.so. Az utóbbi opció aktív - válasszon Hagyjuk, akkor, hogy a profilt, hogy a szabály, amely hozzáférést biztosít az összes fájlt a megadott mintát.

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