Zatímco linuxové jádro poskytuje dobrou izolaci uživatelů a silnou kontrolu oprávnění k souborům, MAC jako AppArmor poskytuje jemnější oprávnění a ochranu před mnoha neznámými hrozbami. Pokud je v linuxovém jádře nebo jiném systémovém démonovi nalezena chyba zabezpečení, může dobře nakonfigurovaný systém AppArmor zabránit přístupu na kritické cesty, které by mohly být zranitelné vůči problému.
AppArmor může efektivně fungovat ve dvou režimech - vynucení a stížnost. Enforce je výchozí stav produkce AppArmor, zatímco stížnost je užitečná pro vývoj sady pravidel založených na vzorech skutečných operací a pro porušení protokolování. Je konfigurován prostřednictvím souborů prostého textu v relativně přátelském formátu a má kratší křivku učení než většina ostatních povinných systémů kontroly přístupu.
Instalace
Chcete-li nainstalovat AppArmor na Debian, spusťte (jako root):
apt install apparmor apparmor-utils auditdPokud nepotřebujete nástroje pro generování profilů, můžete auditd vynechat.
Chcete-li nainstalovat startér a další profily, spusťte:
apt install apparmor-profiles apparmor-profiles-extraProtože AppArmor je modul jádra systému Linux, musíte jej povolit pomocí následujících příkazů:
mkdir -p / etc / default / grub.dVytvořte soubor / etc / default / grub.d / apparmor.cfg s následujícím obsahem:
GRUB_CMDLINE_LINUX_DEFAULT = "$ GRUB_CMDLINE_LINUX_DEFAULT apparmor = 1 zabezpečení = apparmor"Uložte a ukončete a poté spusťte:
update-grubPoté restartujte počítač.
Diskutuje se, zda by to mělo být provedeno automaticky. Možná budete chtít na konci tohoto hlášení o chybě zjistit, zda se to od doby psaní tohoto článku změnilo.
Po restartu můžete zkontrolovat, zda je AppArmor povolen spuštěním:
aa-statusTento příkaz zobrazí seznam načtených profilů AppArmor a seznam jejich aktuálního stavu dodržování předpisů (vynucené, stížnosti atd.).)
Pokud spustíte:
ps auxZ | grep -v '^ unconfined'Zobrazí se seznam programů, které jsou omezeny profilem AppArmor. Omezený program je program, který je ovlivněn a omezen (buď pasivně, v režimu stížnosti nebo aktivně v vynuceném režimu) aplikací AppArmor.
Změna režimů / deaktivace AppArmor
Pokud si přejete deaktivovat AppArmor, protože program nefunguje, můžete zvážit umístění profilu do režimu stížnosti namísto vynuceného režimu. Chcete-li to provést, spusťte (jako root nebo prostřednictvím sudo):
aa-stížnost / cesta / k / programuPokud například ping nebude fungovat správně, použijte:
aa-stěžovat si / usr / bin / pingJakmile je profil v režimu stížností, můžete zkontrolovat protokolování pomocí / var / log / syslog nebo pomocí journalctl -xe na systémových systémech (Debian 8.x, Jessie a vyšší).
Jakmile profil upravíte, abyste odstranili nebo upravili omezení, můžete pro binární soubor znovu zapnout režim vynucení pomocí:
aa-vynutit / cesta / k / programuVe výše uvedeném příkladu nahraďte / path / to / program úplnou cestou k binárnímu souboru ovlivněnému daným profilem.
Pokud máte problém s programem a je v režimu stížností, protokoly poskytnou konkrétní informace o tom, jaká akce byla odepřena. Pole operace vysvětlí, o co se program pokusil, pole profilu ovlivněný konkrétní profil, název určí cíl akce (i.E. jaký soubor byl zastaven z operace čtení nebo zápisu) a požadované a zamítnuté masky označují, zda operace, jak požadovaná programem, tak zamítnutá podle profilu, byla přečtena nebo přečtena a zapsána.
Profil můžete zcela deaktivovat spuštěním:
aa-disable / cesta / k / programuNebo můžete AppArmor úplně deaktivovat úpravou souboru: / etc / default / grub.d / apparmor.cfg obsahovat:
GRUB_CMDLINE_LINUX_DEFAULT = ”$ GRUB_CMDLINE_LINUX_DEFAULT apparmor = 0”Pak běží:
update-grubA restartujte systém.
Práce s profily AppArmor
Profily AppArmor jsou umístěny v / etc / apparmor.d / adresář. Pokud nainstalujete balíček balíčků apparmor-profiles a apparmor-profiles-extra, najdete profily v / usr / share / doc / apparmor-profiles a / usr / share / doc / apparmor-profiles / extra. Chcete-li je aktivovat, zkopírujte soubory do / etc / apparmor.d poté je upravte, aby obsahovaly požadované hodnoty, uložte je a spusťte:
znovu načíst službu apparmorChcete-li znovu načíst pouze jeden profil, spusťte:
apparmor_parser -r / etc / apparmor.d / profilKde „profil“ je název příslušného profilu.
Nedoporučuje se pouze kopírovat profily a další profily do / etc / apparmor.d adresář bez jejich ruční úpravy. Některé profily mohou být staré a některé určitě neobsahují požadované hodnoty. Pokud je všechny zkopírujete, přinejmenším je nastavte tak, aby si stěžovali, abyste mohli sledovat porušení bez porušování produkčních programů:
cd / etc / apparmor.dpro f v *.*; stěžovat si aa / etc / apparmor.d / $ f; Hotovo
Pomocí příkazu aa-enforce můžete jednotlivě povolit profily, které chcete zachovat, vyladit ty, které způsobují problémy, a vynutit si je, nebo odstranit ty, které nepotřebujete, spuštěním aa-disable nebo odebráním souboru profilu z / etc / apparmor.d.
Vytvoření profilu AppArmor
Před vytvořením vlastního profilu budete chtít prohledat soubor / etc / apparmor.adresáře d a / usr / share / doc / apparmor-profiles pro existující profil, který pokrývá daný binární soubor. Chcete-li je vyhledat, spusťte:
najít / usr / share / doc / apparmor-profiles | grep “program” -iNahradit program s programem, který chcete chránit pomocí AppArmor. Pokud nějaký najdete, zkopírujte jej do / etc / apparmor.da upravte soubor ve svém oblíbeném textovém editoru.
Každý profil se skládá ze tří hlavních sekcí: zahrnuje, možnosti a cesty. Užitečný odkaz najdete v dokumentaci SuSE.
Zahrnuje
Zahrnuje poskytnout syntaxi, kterou můžete použít uvnitř souboru. Používají syntaxi C / C ++ #include <> a obvykle odkazují na abstrakce nalezené v / etc / apparmor.adresář d / abstrakce.
Schopnosti
Sekce schopností, obvykle nalezená po zahrnutí, uvádí konkrétní funkce, které může program provádět. Například můžete nechat program provést setuid operaci pomocí:
schopnost setuidFunkce net_bind_service umožňuje programu vázat se na síťový port. Pokud to neudělíte, serverový démon jako Apache nemůže otevřít port 80 a naslouchat. Vynechání této funkce však může poskytnout vynikající zabezpečení pro procesy, kterým v síti nedůvěřujete.
Cesty
Můžete uvést cesty, které je program schopen číst (a případně zapisovat). Například pokud chcete programu povolit přístup k souboru / etc / passwd, přidejte:
/ etc / passwd rV profilu. Všimněte si „r“ - to znamená pouze pro čtení. Pokud toto změníte na „w“, bude povolen zápis do této cesty nebo souboru.
I když povolíte cestu v AppArmor, stále podléhá omezením systému souborů Linux (tj.E. sada s chmod, chgrp a chown). AppArmor však bude i nadále poskytovat další vrstvu ochrany, pokud by tyto mechanismy byly ohroženy.
Závěr
Klíčem k úspěšnému nasazení AppArmor je nastavení profilů na stížnosti a následné vynucení. Pečlivé prozkoumání protokolu vám poskytne minimální cesty a schopnosti potřebné pro úspěšný provoz programu. Přiřazením těchto a nic víc dramaticky zvýšíte zabezpečení systému.