GNU/Linux >> Znalost Linux >  >> Linux

AppArmor vs. SELinux:Komplexní srovnání

Úvod

Systémy povinného řízení přístupu (MAC), jako jsou AppArmor a SELinux, umožňují správcům systému udělit nebo odepřít přístup ke zdrojům a řídicím systémům zabudovaným do jádra Linuxu. Zatímco oba provádějí stejné úkoly, tyto systémy fungují odlišně a nabízejí různé funkce.

Tento článek vysvětluje rozdíly mezi AppArmor a SELinux a ukazuje hlavní vlastnosti těchto dvou systémů.

AppArmor vs. SELinux

SELinux i AppArmor poskytují bezpečnostní nástroje, které izolují aplikace a omezují přístup k útočníkovi, který kompromitoval jednu část systému.

AppArmor funguje tak, že nejprve udělí přístup a poté použije omezení. SELinux však ve výchozím nastavení omezuje přístup ke všem aplikacím a uděluje přístup pouze uživatelům, kteří předloží řádné certifikace.

Tyto dva systémy mají mnoho společných funkcí, ale také některé rozdíly:

Srovnávací bod AppArmor SELinux
Řízení přístupu Používá bezpečnostní profily založené na cestách. Používá zásady zabezpečení založené na štítcích souborů.
Dostupnost Dostupné pro jakoukoli distribuci, ale používá se hlavně na SUSE a Ubuntu. K dispozici pro jakoukoli distribuci, ale primárně se používá na systémech RHEL/Fedora.
Obtížné na učení Kratší křivka učení, snadnější nastavení a správa. Složitější a méně intuitivní.
Nezávislé ověření Možné. Není možné.
Vyžaduje složitou konfiguraci Ne. Ano.
MLS/MCS Ne. Ano.
Vliv na výkon systému Žádné, ale doba spuštění je delší. Žádné.
Pravidla zásad Postrádá flexibilitu. Flexibilní.
Úroveň kontroly Střední. Vysoká.

AppArmor

AppArmor je praktický bezpečnostní modul Linuxu, který je standardně součástí Ubuntu od verze 7.10. Modul umožňuje vývojářům omezit používání konkrétních souborů aplikací. AppArmor tedy zabraňuje jakémukoli poškození potenciálně zranitelných aplikací a chrání snadno zneužitelný software, jako jsou webové servery.

Modul používá bezpečnostní profily k určení, jaká oprávnění aplikace vyžaduje. Profily jsou textové soubory načtené do jádra, obvykle při bootování.

AppArmor vynucuje dva hlavní typy pravidel v profilech:

  • Položky cesty . Určují, ke kterým souborům má aplikace přístup.
  • Položky schopností . Tato pravidla určují oprávnění, která může omezený proces používat.

Profily jsou navrženy tak, aby omezovaly konkrétní aplikace a fungují ve dvou režimech. V

  • Režim stížností . V tomto režimu systém hlásí pokusy o porušení zásad, ale nevynucuje pravidla.
  • Vynutit režim . V režimu Enforce je nový profil zkontrolován a všechna porušení jsou zastavena.

AppArmor se skládá z následujících komponent:

  • Analyzátor serveru . Skenuje porty a automaticky vyhledá aplikace, které jim naslouchají. Detekuje také aplikace bez profilů a ty, které AppArmor potřebuje omezit.
  • Generátor profilu . Statický proces, který analyzuje aplikace a vytváří šablonu profilu.
  • Optimalizátor . Tato komponenta zaznamenává a shromažďuje události do profilu normálního chování.

Kromě Ubuntu běží AppArmor ve výchozím nastavení na Debianu, SUSE Enterprise Server, OpenSUSE distribucích a dalších distribucích. Chcete-li ověřit stav modulu, spusťte následující:

sudo apparmor_status

Výstup ukazuje, že AppArmor je v systému aktivní. Příkaz také vytiskne seznam nainstalovaných profilů a aktivních omezených procesů.

Výhody AppArmor

Hlavními výhodami AppArmor jsou jednoduchost a krátká křivka učení. Tento modul je mnohem méně komplexní než SELinux, což usnadňuje jeho nastavení a správu.

Nástroj pracuje přímo s profily (textovými soubory) pro řízení přístupu a operace se soubory jsou přímočařejší. Díky této funkci je AppArmor uživatelsky přívětivější než SELinux s jeho bezpečnostními politikami.

Díky implementaci založené na cestě AppArmor chrání jakýkoli soubor v systému a umožňuje specifikovat pravidla i pro soubory, které ještě neexistují. Režim učení programu umožňuje AppArmor přizpůsobit se změnám a vynucuje si preferované chování aplikace.

Nevýhody AppArmor

S AppArmor může více než jedna cesta odkazovat na stejnou aplikaci. Tyto různé cesty ke stejnému spustitelnému souboru vytvářejí více profilů pro jednu aplikaci, což představuje potenciální bezpečnostní problém.

Navíc největší síla AppArmor, jednoduchost, je také důvodem, proč je tento program považován za méně bezpečný.

AppArmor nemá Multi-Level Security (MLS) a Multi-Category Security (MCS). Nedostatek podpory MCS činí AppArmor téměř neúčinným v prostředích vyžadujících MLS.

Další nevýhodou je, že načítání zásad také trvá déle, takže se systém spouští pomaleji.

SELinux

SELinux (Security Enhanced Linux) je linuxový bezpečnostní modul zabudovaný do linuxového jádra. Systém poskytuje správcům systému větší kontrolu nad tím, kdo má přístup ke zdrojům.

SELinux přiděluje systémové soubory, procesy a porty štítky. Typ štítku je zásadní pro cílené politiky, zatímcotyp vynucování je druhý nejdůležitější koncept v SELinuxu.

Štítkování slouží jako seskupovací mechanismus, který dává souborům a procesům různé typy štítků. Model zabezpečení vynucení typu pomáhá SELinuxu určit, zda proces s určitým typem štítku má přístup k souboru s jiným typem štítku.

Systém ve výchozím nastavení omezuje přístup (na rozdíl od AppArmor). Uživatelé musí být správně nakonfigurováni pro přístup k jakémukoli prostředku.

SELinux inkasuje předchozí rozhodnutí v Access Vector Cache (AVC ), například povolení nebo omezení přístupu. Cashing rozhodnutí urychluje proces řízení přístupu. Pokud se například aplikace pokusí o přístup k souboru, SELinux provede kontrolu proti AVC a povolí nebo zamítne přístup na základě předchozího rozhodnutí.

RHEL, CentOS a Fedora mají SELinux nainstalovaný nebo dostupný ve výchozím nastavení. Chcete-li zjistit aktuální stav SELinuxu, proveďte následující:

sudo sestatus

Poznámka :Podle našich pokynů povolte SELinux na CentOS nebo deaktivujte SELinux na CentOS.

Výhody SELinux

Navzdory (a díky) složitým zásadám je SELinux považován za bezpečnější možnost zabezpečení Linuxu.

Označení a vynucení typu umožňují SELinuxu udělit přístup pouze v případě, že to dovoluje pravidlo politiky. Tento proces implementuje robustnější a podrobnější řízení přístupu.

SELinux je kompatibilní s MLS a nabízí lepší přístupové funkce. Jedním ze základních principů MLS je například to, že uživatelé mohou číst soubory pouze na úrovni jejich citlivosti a nižší. Se SELinuxem však mohou správci systému číst a zapisovat soubory na své vlastní a nižší úrovni citlivosti.

Ve výchozím nastavení systém odděluje soubory od sebe navzájem a od hostitele a udržuje oddělení. Soubor má například různé sady oprávnění pro:

  • Vlastník (uživatel).
  • Skupina držící soubor.
  • Ostatní uživatelé/skupiny přistupující k souboru.

Poznámka :Ukládání rozhodnutí o přístupu do mezipaměti je také významnou výhodou, protože proces zvyšuje efektivitu.

Nevýhody SELinuxu

SELinux poskytuje systémovým administrátorům všestranný nástroj pro řízení přístupu. Tento bezpečnostní modul má však některé nevýhody.

SELinux je poměrně obtížné se naučit, nastavit a spravovat. Zatímco program efektivně řídí přístup k aplikacím a souborům, řešení potenciálních problémů je pro začátečníky obtížné. Není vždy snadné určit, co chybová zpráva skutečně znamená a kde problém hledat. Celkově SELinux není uživatelsky přívětivý a nezkušení administrátoři mohou čelit strmé křivce učení.

Důležité :SELinux často odmítne akci, pokud jsou soubory nesprávně označeny.

Závěr

Po přečtení tohoto textu znáte výhody a nevýhody SELinux a AppArmor. Oba systémy nabízejí různé přístupy k zabezpečení Linuxu a chrání stroje před neoprávněným přístupem a úpravou systémových prostředků.

Možná se budete chtít dozvědět o dalších způsobech ochrany vašeho systému, jako je použití neměnných záloh k boji proti ransomwaru nebo různé postupy pro ochranu databáze.


Linux
  1. Linux File Access Monitoring?

  2. Linux – Blokovat síťový přístup procesu?

  3. Jak zakázat SELinux na CentOS?

  1. Porovnání mediálního serveru

  2. Odstraňování problémů se službou Linux OS

  3. souběžný přístup k souboru linux

  1. Zabezpečte své kontejnery pomocí SELinux

  2. Porovnání dat v Bash

  3. Blokovat síťový přístup procesu?