SELinux. SELinux Security Enhanced Linux. czyli. Linux o podwyższonym bezpieczeństwie



Podobne dokumenty
Odpowiedź: SELinux. Czym jest SELinux?

Tworzenie bezpiecznego środowiska kont shellowych

Bezpieczeństwo systemów informatycznych

Użytkownicy I. Użytkownik. Głównym celem istnienia użytkowników i grup w systemie jest utrzymanie porządku i separacja uprawnień.

Ustawienia personalne

SELinux podstawa bezpiecznej infrastruktury IT. 30 październik 2008r. Grupa Emerge

Ochrona zasobów. mechanizm ochrony polityka ochrony. 2. Domeny ochrony 3. Macierz dostępów 4. Implementacja macierzy dostępów

Administrowanie systemami sieciowymi Laboratorium 3

Podział obowiązków, a kontrola dostępu centralne zarządzanie użytkownikami i ich uprawnieniami.

Mechanizmy lokalnej kontroli dostępu (ACL)

(Pluggable Authentication Modules). Wyjaśnienie technologii.

Programowanie współbieżne i rozproszone

INTERNET - Wrocław Usługi bezpieczeństwa w rozproszonych strukturach obliczeniowych typu grid

26.X.2004 VNC. Dawid Materna

Instalacja i konfiguracja serwera SSH.

SELinux. Robert Jaroszuk Zimowisko TLUG, 2011.

Korzystanie z edytora zasad grupy do zarządzania zasadami komputera lokalnego w systemie Windows XP

Serwer Syslog (po raz drugi) z wykorzystaniem systemu Linux.

11. Autoryzacja użytkowników

Tomasz Greszata - Koszalin

Sieci komputerowe. Tadeusz Kobus, Maciej Kokociński Instytut Informatyki, Politechnika Poznańska

ZAŁĄCZNIK NR 3 OPIS PRZEDMIOTU ZAMÓWIENIA DOTYCZĄCY WDROŻENIA PLATFORMY ZAKUPOWEJ

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym SoteShop 7 (plugin dostępny w wersji ecommerce)

Uniwersytet Mikołaja Kopernika w Toruniu. Profilowanie ruchu sieciowego w systemie GNU/Linux

UNIX: architektura i implementacja mechanizmów bezpieczeństwa. Wojciech A. Koszek dunstan@freebsd.czest.pl Krajowy Fundusz na Rzecz Dzieci

Win Admin Replikator Instrukcja Obsługi

Przypisywanie adresów IP do MAC-adresów

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

Na podstawie: Kirch O., Dawson T. 2000: LINUX podręcznik administratora sieci. Wydawnictwo RM, Warszawa. FILTROWANIE IP

Programowanie komponentowe. Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Win Admin Replikator Instrukcja Obsługi

Stos protokołów TCP/IP (ang. Transmission Control Protocol/Internet Protocol)

Zad. 5: Układ równań liniowych liczb zespolonych

Ochrona zasobów. Cele ochrony. Polityka i mechanizm ochrony. Dariusz Wawrzyniak Cele ochrony

Systemy Operacyjne: Pluggable Authentication Modules

Sage Migrator 2019.e Migracja do Sage 50c wersja 2019.a i 2019.b

Usługi sieciowe systemu Linux

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Linux.

Instalacja i konfiguracja Symfonia.Common.Server oraz Symfonia.Common.Forte

System Zarządzania Dystrybucją

MODEL WARSTWOWY PROTOKOŁY TCP/IP

Dział Dopuszczający Dostateczny Dobry Bardzo dobry Celujący

Bezpieczenstwo aplikacji

Laboratorium Systemów Operacyjnych

Instrukcja użytkowania platformy ONLINE. Akademii Doskonalenia Zawodowego NATUROPATA ADZ Naturopata

Delphi podstawy programowania. Środowisko Delphi

MS Windows Vista. Spis treści. Autor: Jacek Parzonka, InsERT

Użycie pakietów instalacyjnych.msi w oprogramowaniu WYWIAD Plus

Jednym z najważniejszych zagadnień, z którym może się zetknąć twórca

Komunikacja i wymiana danych

2. Informacje o mechanizmie limitów

Przegląd technik wirtualizacji i separacji w nowoczesnych systemach rodziny UNIX

Niezbędne serwery aplikacji. Wprowadzenie do technologii JBoss i Apache Tomcat.

Serwer SSH. Wprowadzenie do serwera SSH Instalacja i konfiguracja Zarządzanie kluczami

ZALECENIA DLA MIGRACJI NS-BSD V8 => V9

Platforma e-learningowa

Ćwiczenie Nr 7 Instalacja oraz konfiguracja wskazanego systemu operacyjnego

Połączenie VPN aplikacji SSL. 1. Konfiguracja serwera VPN 1.1. Ustawienia ogólne 1.2. Profile aplikacji SSL 1.3. Konto SSL 1.4. Grupa użytkowników

QualitySpy moduł persystencji

Instrukcja wypełniania formularzy Millenet dla Przedsiębiorstw

4. Podstawowa konfiguracja

Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości

1. Moduł Print Master

Tworzenie oprogramowania

Pracownia internetowa w każdej szkole (edycja Jesień 2007)

Serwery LDAP w środowisku produktów w Oracle

DHL24. Główny Użytkownik. i Przesyłka Serwisowa. Dokumentacja użytkownika końcowego

Przed przystąpieniem do czytania dokumentu, proszę o zapoznanie się z podstawowym dokumentem Instrukcja obsługi AZU dla użytkownika zewnętrznego.

Security Enhanced Linux gwarancja najwyższego poziomu bezpieczeństwa. Leszek Miś Senior Technology Engineer RHC{E,X}, RHCVA B2B Sp. Z o.o.

Aneks do instrukcji obsługi routera Asmax Br-804v II

13. Konfiguracja proxy http, smtp, pop3, ftp, ssl

NetDrive czyli jak w prosty sposób zarządzać zawartością FTP

ABA-X3 PXES v Podręczna instrukcja administratora. XDMCP Licencja FDL (bez prawa wprowadzania zmian) Tryb X terminala

BZP3/3/2013 Bydgoszcz, r.

Pracownia komputerowa. Dariusz wardecki, wyk II

Konwersja maszyny fizycznej na wirtualną.

Instalacja serwera zarządzającego F-Secure Policy Manager

1.0 v2. INSTRUKCJA OBSŁUGI SAD EC Win - Moduł Ewidencja Banderol

Bezpieczeństwo aplikacji w systemie Tizen

BASH - LINIA POLECEŃ. Bioinformatyka 2018/2019

Sieci komputerowe. Tadeusz Kobus, Maciej Kokociński Instytut Informatyki, Politechnika Poznańska

Wstęp 5 Rozdział 1. SUSE od ręki 13

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym Shoper (plugin dostępny w wersji ecommerce)

Zad. 3: Układ równań liniowych

Przed przystąpieniem do czytania dokumentu, proszę o zapoznanie się z podstawowym dokumentem Instrukcja obsługi AZU dla użytkownika zewnętrznego.

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym SoteShop 7 (plugin dostępny w wersji ecommerce)

PRACOWNIA INFORMATYCZNA BASH - PODSTAWOWE INFORMACJE

Współpraca z platformą Emp@tia. dokumentacja techniczna

emszmal 3: Automatyczne księgowanie przelewów w menadżerze sprzedaży BaseLinker (plugin dostępny w wersji ecommerce)

Przegląd technik wirtualizacji i separacji w nowoczesnych systemach rodziny UNIX

Projekt dotyczy stworzenia zintegrowanego, modularnego systemu informatycznego wspomagającego zarządzanie pracownikami i projektami w firmie

PROFESJONALNE SYSTEMY BEZPIECZEŃSTWA

Archiwizacja baz MSSQL /BKP_SQL/ opis oprogramowania

pasja-informatyki.pl

Szczegółowa specyfikacja funkcjonalności zamawianego oprogramowania.

"Klasyczna" struktura systemu operacyjnego:

Dokumentacja SMS przez FTP

NFS jest protokołem zdalnego wywoływania procedur (RPC)

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym IAI-Shop (plugin dostępny w wersji ecommerce)

Transkrypt:

SELinux SELinux Security Enhanced Linux czyli Linux o podwyższonym bezpieczeństwie

Najkrócej mówiąc... SELinux jest systemem z MAC (Mandatory Access Control), który realizuje politykę RBAC (Role Based Access Control) za pomocą DTAC (Dynamically Typed Access Control). Ideą SELinuksa jest odebranie procesom tych uprawnień, które nie są im potrzebne. Dzięki temu zniszczenia, jakie mogą zostać poczynione w razie włamania do systemu, będą znikome (ograniczone do uprawnień jakie posiada proces, w którym błędy wykorzystano do włamania).

Historia SELinuksa Projekt DTMach (Distributed Trusted Mach) rozwijał rozwiązania wspomagające bezpieczeństwo m.in. MAC (Mandattory Access Control). Zapoczątkowany w 1992 roku. Projekt Flux rozwijał dla systemu Fluke (który przejął rozwiązania z DTMach) architekturę FLASK. Projekt SELinux zintegrował architekturę FLASK z jądrem Linuksa. Prace nad SELinuxem są sponsorowane przez NSA (Natonal Security Agency) a prowadzi je SCC (Secure Computing Corporation).

Główne części składowe SELinuksa Jądro - SELinux jest modułem LSM (Linux Security Modules). Dzięki temu może korzystać z interfejsów, dających mu kontrolę nad dostępem do obiektów systemu (plików, katalogów, gniazd, urządzeń itp.), co daje SELinuksowi możliwość wymuszenia własnej polityki bezpieczeństwa (zdefiniowanej w Policy). Modyfikacja niektórych programów - Dla prawidłowego działania SELinuksa niezbędne jest zmodyfikowanie programów, mających kluczowe znaczenie dla bezpieczeństwa systemu (należy rozszerzyć je o obsługę SELinuksa). Można to zrealizować na etapie instalacji tych programów poprzez: nałożenie łat na ich źródła lub pobranie już zmodyfikowanych wersji tych programów. Do programów wymagających takiej modyfikacji zaliczają się m.in. ls, ps, login, ssh i xdm. Policy - Policy to zbiór reguł określających prawa wykonywania działań przez użytkownika, prawa dostępu do obiektów systemu oraz zachowanie samego systemu.

MAC Mandatory Access Control Główna zasada: użytkownik nie decyduje o prawach dostępu do obiektów i zabezpieczeniach! Są one definiowane odgórnie przez administratora. (w przypadku SELinuksa są zapisane w postaci reguł w Policy).

RBAC Role Based Access Control System kontroli dostępu oparty na rolach. Rola zestaw praw do wykonywania określonych działań. Może zachodzić potrzeba zmiany roli w ramach, której wykonywane jest działanie. Standardowy Unix jest systemem z RBAC. SELinux daje każdemu użytkownikowi zestaw ról, z czego jedna z nich jest rolą domyślną. Wielu użytkowników może mieć te same role. SELinux pozwala na dokładniejsze dostosowanie ról do konkretnych potrzeb. Zasady RBAC w SELinuksie realizowane są za pomocą DTAC. Każda rola posiada zestaw domen dostępu.

DTAC Dynamically Typed Access Control Domenowy system kontroli dostępu. Każdy obiekt w systemie posiada swój typ. Typ ten jest narzucany za pomocą odgórnych zasad (zawartych w Policy). Użytkownik nie ma na nie wpływu. System z SELinuxem jest przygotowany nawet na kilkaset tysięcy takich zasad. Dla każdego typu tworzone są reguły, które definiują zachowanie systemu w momencie wykonywania akcji na obiektach tego typu. Firma IBM pracuje nad narzędziem, pozwalającym na sprawdzenie poprawności i spójności zestawu narzuconych reguł (zawartych w Policy).

Działanie SELinuksa Każdy użytkownik systemu może posiadać wiele ról. Jedna z tych ról jest domyślna dla danego użytkownika. Każda rola dysponuje zestawem domen. Jedna z tych domen jest domyślna dla danej roli. Role mogą być wspólne dla wielu użytkowników a domeny mogą być wspólne dla wielu ról. W danym momencie użytkownik wykonuje dokładnie jedną rolę w jednej domenie. Dla każdej pary (domena roli użytkownika, typ obiektu) zdefiniowane są reguły zachowania systemu.

Działanie SELinuksa - cd. Standardowym modelem uprawnień w Linuksie jest UGO (User, Group, Others). SELinux nie rozszerza tego modelu tzn. nie nadaje uprawnień, których nie miał użytkownik w systemie bez SELinuksa. Dzięki czemu, jeśli nawet zasady Policy nie ograniczałyby w żaden sposób uprawnień użytkownika (pozwalałyby na wszystko), wówczas poziom bezpieczeństwa systemu operacyjnego jest taki jak zwykłego Linuksa (czyli nie taki zły!)

Kontekst bezpieczeństwa Kontekst bezpieczeństwa procesu: a więc na przykład: Tak naprawdę także obiekty w systemie mają pełen kontekst bezpieczeństwa np. system_u:object_r:http_port_t może być kontekstem bezpieczeństwa portu TCP. Ale istotna jest tylko ta ostatnia część - typ.

Rodzaje reguł SELinuksa Najczęściej występujące rodzaje reguł: Definiowanie operacji dozwolonych (wykonywania, czytania, pisania i innych). Definiowanie dozwolonych zmian roli w ramach użytkownika (listy ról dozwolonych dla użytkownika). Definiiowanie dozwolonych zmian domeny w ramach roli (listy domen dozwolonych dla roli). Definiowanie wymuszonych zmian roli przy wykonywaniu operacji na obiekcie lub wykonywaniu programu. Definiowanie wymuszonych zmian domeny przy wykonywaniu operacji na obiekcie lub wykonywaniu programu. W standardowej Policy odchodzi się od wymuszeń zmian roli (są one zastępowane wymuszeniami zmiany domeny).

Przykład klient IRC

Definicje Type Enforcement Definicje wymuszonych przejść: domain_auto_trans(initrc_t, sshd_exec_t, sshd_t) Makro, które jest regułą oznaczającą, że jeśli proces w domenie initrc_t uruchomi program z pliku o typie sshd_exec_t, to proces wykonujący ten program będzie działał w domenie sshd_t. file_type_auto_trans(sshd_t, tmp_t, sshd_tmp_t) Makro, które jest regułą oznaczającą, że jeśli proces w domenie sshd_t otworzy (lub utworzy) plik o typie tmp_t, wówczas zmieni się typ tego pliku na sshd_tmp_t.

Przykład przeglądarka stron WWW Skomplikowany program = błędy. Wykorzystanie błędów = zagrożenie dla naszego systemu. Plik wykonywalny przeglądarki internetowej ma typ netscape_exec_t. Po wykonaniu funkcji exec() proces, który ją wykonał przechodzi do domeny user_netscape_t. Proces będąc w domenie user_netscape_t ma prawo: tworzyć pliki o typach user_netscape_t oraz user_netscape_rw, wykonywać pobrane programy, ale wyłącznie w ramach domeny user_netscape_t, drukować (wykonywać program lpr).

Definicje Type Enforcement - cd. Definicje dozwolonych przejść: domain_trans(sshd_t, shell_exec_t, sysadm_t) Makro, które jest regułą pozwalającą procesowi działającemu w domenie sshd_t, który uruchomił program z pliku o typie shell_exec_ts na zmianę domeny na sysadm_t. type_change user_t tty_device_t:chr_file user_tty_device_t; Reguła pozwalająca procesowi działającemu w domenie user_t na zmianę typu pliku tty_device_t na user_tty_device_t.

Zalety SELinuksa Rozwiązanie to jest: całościowe nie koncentruje się ani na usunięciu wybranych błędów w polityce bezpieczeństwa systemu, ani na rozwiązywaniu problemów wynikających z przyjętej konstrukcji systemu, ale proponuje kompletne rozwiązanie. elastyczne administrator może dostosować reguły w Policy do aktualnych potrzeb. rozszerzalne administrator może dołączyć nowe reguły do Policy. ciągle rozwijane rozwojem tego rozwiązania zajmuje się firma SCC (Secure Computing Corporation), której prace są finansowane przez NSA. standaryzowane mechanizm MAC wykorzystujący etykietowanie obiektów jest zgodny z normą POSIX.6.

Test Russella Cokera Russell Coker developer Debiana udostępnił w Internecie maszynę i upublicznił hasło roota. Pomimo tego, że wpisy w Policy były standardowe nikomu nie udało się niczego popsuć w systemie.