Security Enhanced Linux gwarancja najwyższego poziomu bezpieczeństwa Leszek Miś Senior Technology Engineer RHC{E,X}, RHCVA B2B Sp. Z o.o.
Podstawy bezpieczeństwa Bezpieczeństwo IT to nieustanny proces aplikowania procedur, wdrażania oraz zarządzania zabezpieczeniami technicznymi i fizycznymi, by zapewnić poufność, integralność i dostępność informacji przetwarzanej w danym systemie informatycznym.
Popularne metody ataków Eskalacja uprawnień - błędy programistyczne (0-day) Malware złośliwe oprogramowanie Niepoprawne uprawnienia - nieautoryzowany dostęp do danych I wiele, wiele innych SANS TOP20 Internet Security Problems and Threats http://www.sans.org/top20/
Skutki ataków Wyciek, modyfikacja, bądź utrata poufnych korporacyjnych danych Zachwianie ciągłości działania przedsiębiorstwa Straty finansowe Dodatkowe, nieplanowane koszta operacyjne (analiza powłamaniowa, przewrócenie danych Utrata wizerunku
Dlaczego ataki się udają? Dziurawe, niezaktualizowane oprogramowanie Niepoprawnie skonfigurowane usługi oraz systemy Brak rozwiązań utwardzających infrastrukturę IT (hardening) Brak odpowiednich kompetencji kadry pracowniczej (doświadczenie, ale i szkolenia!) Pomijanie aspektów bezpieczeństwa
Z technicznego punktu widzenia... Najbardziej narażone na ataki są aplikacje i usługi pracujące na styku z Internetu. Najsłabszym ogniwem każdego systemu operacyjnego jest nieograniczone konto administratora (root). Powodem takiego stanu jest m.in. przestarzały model uznaniowej polityki DAC.
Niewystarczający model polityki DAC Ograniczenie dostępu na podstawie właściciela pliku (obiektu) oraz nadanych uprawnień (np. user1:user1) Brak kontroli nad nadawanymi uprawnieniami (atrybuty setuid, setgid) Brak kontroli nad procesami systemowymi Brak rozliczalności = brak historii nadawanych uprawnień Nieograniczony użytkownik root (uid=0) Domyślny w większości systemów operacyjnych
Niewystarczający model polityki DAC Przykład: Procesy serwera HTTP posiadają dostęp do serwowanego kontentu np. /var/www, ale nie posiadają dostępu do /etc/shadow A czy proces skompromitowanego Firefoxa posiada dostęp do prywatnego klucza SSH? crony 5236 5.1 1.8 69116 74288? Sl 09:21 0:04 firefox-bin -rw-------. 1 crony crony 1743 11-30 15:13 /home/crony/.ssh/id_rsa
Bezpieczna infrastruktura potrzebuje czegoś więcej...
SELinux słów kilka tytułem wstępu SELinux projekt autorstwa Amerykańskiej Agencji Bezpieczeństwa Narodowego implementujący model obowiązkowej kontroli dostępu dla systemu Linux poprzez wykorzystanie następujących metod: Type Enforcement, RBAC, MLS/MCS, Flask SELinux jest integralną częścią jądra serii 2.6 Red Hat to największy twórca kodu jądra Linuksa
SELinux bezpieczny model polityki MAC Model obowiązkowej kontroli dostępu MAC dostarcza: Ograniczenia wywołań tylko do konkretnych funkcji systemowych dla danego procesu za pomocą scentralizowanej polityki Pełną kontrolę nad procesami systemowymi Ścisłe określenie uprawnień dla użytkowników i usług (RBAC) = przypisanie ról (root nie jest już użytkownikiem wszechmocnym) Możliwość zachowania rozliczalności, poufności i integralności Zaufaną transmisję TCP/IP
SELinux elementy składowe Kernel 2.6 Zmodyfikowane polecenia (np. ls, id, ps) Userspace tools (np. chcon, restorecon, getsebool, setsebool, semanage, seinfo, audit2allow i wiele innych) Postać binarna polityki (selinux-policy-*) oraz źródłowa (selinux-policy-devel) Mechanizm AVC (Access Vector Cache) Poprawnie oznaczone podmioty/obiekty (label, np. etc_t)
SELinux architektura
SELinux zasada działania Koncepcją polityki bezpieczeństwa SELinux jest określenie jak najmniejszej ilości uprawnień dla danego obiektu (demona, binarki) potrzebnych do jego prawidłowego funkcjonowania. Jest to swego rodzaju firewall aplikacyjny (efekt jaila).
SELinux zasada działania Aplikacja ograniczona polityką MAC może wykonać tylko operacje zdefiniowane w globalnej polityce. Cała reszta operacji jest domyślnie zabroniona.
SELinux powiązania
Dlaczego warto korzystać z SELinuksa? Efektywna ochrona przed atakami typu 0-day Dzięki modelowi obowiązkowej kontroli dostępu Rozliczalność użytkowników oraz administratorów Dzięki mechanizmowi logowania oraz audytowania Podział uprawnień roota dla administratorów poszczególnych usług Dzięki modułowi RBAC (www-root, dns-root) Ograniczenie uprawnień użytkowników (czułość, kategorie) Dzięki modułowi Multi Level Security/ Multi Category Security
Czym jest polityka SELinux? Zbiór reguł wykorzystywanych przez jądro systemu Linux poprzez mechanizm LSM napisanych w języku m4 definiujących: Identyfikację użytkownika (user_u) Rolę (user_r) Typ/domenę (user_t) Wrażliwość (s0-s1) Kategorię (c0.c100) Możliwość przejścia z jednej domeny do drugiej (transition)
Czym jest polityka SELinux? Red Hat Enterprise Linux posiada około 300 gotowych polityk dla najpopularniejszych usług i aplikacji: Apache,lighttpd Bind Postfix,dovecot MySQL,PostgreSQL DHCPD Ntpd OpenVPN, IPSec RHN Satellite oraz Proxy Libvirt/KVM I wiele innych
Typy polityk Targeted Tylko wyznaczone usługi/demony chronione są polityką Cała reszta procesów Strict Wszystkie procesy systemowe chronione są polityką uruchamiana jest w domenie nieograniczonej (unconfined_t) Domyślnym typem polityki SELinux dla systemu RHEL jest Targeted.
Tryby pracy Enforcing Polityka załadowana Audytowanie aktywne Wykonanie operacji bądź zabronienie wykonania zależnie zależne od od reguł polityki Permissive Polityka załadowana Audytowanie aktywne Wykonanie operacji nawet jeśli polityka zabrania logowanie Learning mode Disabled Polityka niezaładowana Audytowanie wyłączone Tylko tryb Enforcing gwarantuje skuteczność przeciwdziałania atakom.
svirt bezpieczna wirtualizacja Systemy fizycznie odseparowane od siebie, połączone zazwyczaj siecią Ethernet.
svirt bezpieczna wirtualizacja Systemy typu 'guest' uruchamiane w obrębie fizycznego serwera Skompromitowany 'guest' może zaatakować innych gości lub hosta
svirt bezpieczna wirtualizacja svirt integracja SELinuksa i mechanizmu libvirt (RHEL6) Systemy typu 'guest' uruchomione w osobnych domenach (+MLS)
Dla kogo SELinux? Głównym przeznaczeniem mechanizmu SELinux są krytyczne z punktu widzenia bezpieczeństwa systemy wykorzystywane przez: Agencje rządowe i wojskowe (*.gov.*) Banki i instytucje finansowe MŚP chcące osiągnąć wysoki poziom bezpieczeństwa systemów znajdujących się na styku z Internetem Dzięki pakietowi xguest, SELinux nadaję się także dla: Publicznych kiosków internetowych (lotniska, dworce) Systemów w kafejkach internetowych Systemów użytkowników końcowych
Kiedy SELinux faktycznie zadziałał? HPLIP Security Overflow Mambo Exploit (http://www.linuxjournal.com/article/9176) Apache DOS Hollyshit kernel root exploit Samba Exploit (http://danwalsh.livejournal.com/10131.html) May 4 07:52:27 targetbox kernel: audit(1146743547.060:2277): avc: denied { execute_no_trans } for pid=9401 comm="sh" name="cback" dev=dm-0 ino=852100 scontext=user_u:system_r:httpd_sys_script_t tcontext=user_u:object_r:httpd_sys_script_rw_t tclass=file
Wsparcie B2B Sp. z o.o. SELinux świadczymy wsparcie techniczne dla Klientów oraz zainteresowanych tematyką bezpieczeństwa systemu Linux Szkolenie SELinux tworzenie i zarządzanie polityką bezpieczeństwa - w formie zaawansowanych warsztatów technicznych (4 dni)
Podsumowanie SELinux dostarcza drugi, niezależny poziom obowiązkowej kontroli dostępu dla systemu Linux SELinux domyślnie zintegrowany jest z systemem Red Hat Enterprise Linux co czyni go jedną z najbezpieczniejszych dystrybucji Linuksa (EAL 3+, EAL 4+, LSPP) Dostępna jest mocno rozbudowana dokumentacja oraz aktywna grupa dyskusyjna, a także kanał IRC (#selinux at irc.freenode.net) Red Hat dostarcza pełne wsparcie dla polityki SELinux Bezpieczeństwo powinno być priorytetem SELinux to przyszłość bezpiecznej infrastruktury IT!
Pytania? Dziękuję za uwagę!