Security Enhanced Linux (SELinux) Lukáš Hájek ČVUT v Praze - FJFI, KFE 23. února 2015 1 / 22
Struktura prezentace 1. MAC 2. SELinux 2 / 22
Zkratka MAC znamená a) Media access control b) Mandatory access control c) Mac OS Macintosh Operating System d) Message authentication code 3 / 22
Mandatory access control Zkratka MAC pro mnoho pojmů (viz http://en.wikipedia.org/wiki/mac) V této prezentaci: Mandatory access control (mandatorní řízení přístupu) Mandatorní obligatorní 4 / 22
Mandatory access control Zkratka MAC pro mnoho pojmů (viz http://en.wikipedia.org/wiki/mac) V této prezentaci: Mandatory access control (mandatorní řízení přístupu) Mandatorní povinný, závazný 5 / 22
MAC Řízení přístupu subjektů k objektům Subjekty: osoba, proces, vlákno, zařízení Objekty: soubory, složky, zařízení, segment paměti atd. 6 / 22
Řízení přístupu vztahy Systémem prováděné Administrátorem spravované Běžný uživatel neovlivní (nezmění svá práva...) Neplést s DAC (Discretionary Access Control) tam uživatel může předat bezpečnostní atributy dále (např. systému uživatelů v unixu rwx... ) 7 / 22
Implementace MAC MAC vytlačuje MLS (Multilevel security / multiple levels of security) Použití MAC v armádních systémech (např. v Astra Linux Ruská armáda). 8 / 22
Implementace MAC SELinux Microsoft: MIC (Mandatory Integrity Control) v OS od Windows Vista AppArmor (Ubuntu, SUSE) Smack (Simplified Mandatory Access Control Kernel), TOMOYO Linux 9 / 22
SELinux Security-Enhanced Linux Implementace MAC Rozšíření jádra Linuxu 10 / 22
SELinux blíže Soubor modifikací na kritických místech jádra Tím zvyšuje systémové nároky......ale také bezpečnost 11 / 22
SELinux v klasické podobě (Gnome 3) 12 / 22
Vývoj National Security Agency (NSA) původní hlavní vývojáři 22. 12. 2000 první open source verze (GNU GPL) jádro Linuxu 2.6 Další přispěvatelé: Network Associates, Red Hat, Secure Computing Corporation, Tresys Technology a Trusted Computer Solutions MAC vzešel původně z FLASK (Flux Advanced Security Kernel) 13 / 22
Použití v systémech RHEL 4+ (CentOS and Scientific Linux) Fedora (od Fedora Core 2) Podpora u OS Debian, Ubuntu a opensuse 14 / 22
Vlastnosti Dobré Možnost zasahovat do bezpečnostní politiky a měnit ji (velká flexibilita) Kontrola socketů, zpráv a síťových rozhraní Úplné oddělení bezpečnostní politiky od výkonávání 15 / 22
Vlastnosti Ne úplně dobré (neošetřené slabiny) Není kontrolována integrita binární spustitelných souborů, knihoven ani skriptů 16 / 22
Příkazy selinuxdefcon, selinuxexeccon, selinuxconlist, selinuxenabled dále (dle en wikipedie): chcon, restorecon, restorecond, runcon, secon, fixfiles, setfiles, load policy, booleans, getsebool, setsebool, togglesebool, setenforce, load policy, setfiles, semodule, postfix-nochroot, check-selinux-installation, semodule package, checkmodule, selinux-config-enforcing, selinux-policy-upgrade a security set boolean 17 / 22
Nejdůležitější příkazy Zapnutí enforcing módu: $ sudo setenforce 1 Dotaz na enforcing mód: $ getenforce Více informací o SELinux: $ sestatus Konfigurační soubor SELinux (nemá přednost před grub.conf používaným při bootování): $ cat /etc/selinux/config 18 / 22
Enforcing permissive Běžně zaplý enforcing mód SELinux plně aktivní Při přechodu do permissive se systém chová tak, jako kdyby byl SELinux vypnut Jisté aplikace (tzv. SELinux-aware) však rozpoznají rozdíl mezi permissive módem a úplným vypnutím SELinux Aplikace, které o SELinux v počítači ví, s ním bývají spojeny, např. pomocí libselinux.so. lze zjistit příkazem scanelf: $ scanelf -n cron Častá chybová hláška při permissive: entrypoint failed 19 / 22
Na co dávat pozor Permissive mód nevymáhá bezpečnostní politiku (avšak logy aktivní) Úplné vypnutí SELinux má následky na kontexty souborů, které je pak třeba přepsat (SELinux Context popisky / labels) SELinux by měl stále běžet v enforcing módu krom případů, kdy administrátor ví, co dělá (a tento zásah je dočasný) 20 / 22
Shrnutí Mandatory access control a jeho implementace SELinux původ, vývoj a použití základní příkazy Dva módy SELinux enforcing a permissive Opatrnost 21 / 22
Děkuji za pozornost. 22 / 22