OCHRONA
Kontrola dostępu programów, procesów i uŝytkowników do zasobów zdefiniowanych przez system komputerowy środki specyfikujące rodzaje wymaganej ochrony (polityka) środki ich wymuszania (mechanizmy) miarą zaufania do systemu - ochrona i bezpieczeństwo
Rozwój systemów komputerowych - wzrost zapotrzebowania na ochronę (wieloprogramowość) potrzeba zapewnienia aby kaŝdy wykonywany proces uŝywał zasobów systemowych zgodnie z polityką systemu
system komputerowy - zbiór procesów i obiektów rodzaj wykonywanych operacji - zaleŝny od obiektu proces ma dostęp tylko do tych zasobów, do których został uprawniony zasada wiedzy koniecznej zasada wiedzy koniecznej (need to know) (proces p wywołuje procedurę A - procedura A ma dostęp jedynie do swoich zmiennych i przekazanych do niej parametrów, a nie do wszystkich zmiennych procesu p )
Struktura domenowa Domena ochrony - definiuje zbiór obiektów i rodzaje operacji, które moŝna na nich wykonywać (prawa dostępu) np. prawo w domenie D: <plik F, {czytaj, pisz}> domeny mogą dzielić prawa dostępu
D 1 D 2 D 3 <O 2,{execute}> <O 1,{read,write}> <O 3,{read,write}> <O 1,{read}> <O 4,{print}> <O 1,{execute}> <O 3,{read}>
Związek między procesem i domeną: statyczny (ustalony) aby zasada wiedzy koniecznej była przestrzegana - konieczny mechanizm zmiany wartości domeny - (zachowanie minimum niezbędnych praw dostępu) dynamiczny moŝliwość przełączania procesu między domenami; moŝliwość zmiany zawartości domeny lub utworzenie nowej domeny ze zmienioną zawartością
Sposoby realizacji domeny uŝytkownik - domena (zbiór obiektów zaleŝy od id uŝytkownika) proces - domena (zbiór obiektów zaleŝy od id procesu) procedura - domena (zbiór obiektów zaleŝy od lokalnych zmiennych procedury)
UNIX domena związana z uŝytkownikiem przełączanie domen - czasowa zmiana identyfikacji uŝytkownika: dla kaŝdego pliku - ID właściciela + bit domeny (setuid bit) gdy bit domeny=0 - user_id procesu=user_id uŝytkownika, który uruchomił proces gdy bit domeny=1 - user_id procesu=user_id uŝytkownika, który jest właścicielem pliku
Inne rozwiązania programy uprzywilejowane umieszczone w specjalnym katalogu; dla kaŝdego programu wykonywanego z tego katalogu - zmiana ID uŝytkownika na właściciela tego katalogu lub root zakaz zmiany ID uŝytkownika; aby skorzystać z uprzywilejowanych moŝliwości - wykonanie programu wysyłającego zamówienie do procesudemonu, działającego pod specjalnym ID uŝytkownika
Macierz dostępów wiersze - domeny; kolumny - obiekty statyczne związki między procesem a domeną F 1 F 2 F 3 drukarka D 1 read read D 2 print D 3 execute read D 4 read write read write
Dynamiczne związki (+ przełączanie domen - obiekt=domena) F 1 F 2 F 3 druka D 1 D 2 D 3 D 4 rka D 1 read read przeł D 2 print przeł przeł D 3 exec read D 4 read write read write przeł
Modyfikacja macierzy dostępów Prawa: kopiowania (dla obiektu), właściciela, kontroli kopiowanie (*) w obrębie kolumny przekazanie (kopiowanie; utrata praw) ograniczone kopiowanie (tworzy prawo bez *)
Prawo kopiowania (*) F 1 F 2 F 3 D 1 read read* D 2 D 3 D 4 read write execute
Prawo właściciela (owner) dodawanie; usuwanie praw ( w ramach kolumny) F 1 F 2 F 3 D 1 read read* owner D 2 D 3 D 4 read write execute
Prawo kontroli (control) zmiana elementów w wierszach macierzy dostępów - jedynie dla obiektów - domen proces działający w domenie D 2 moŝe zmienić domenę D 4 F 1 F 2 F 3 druka D 1 D 2 D 3 D 4 rka D 1 read read przeł D 2 print przeł przeł control D 3 exec read D 4 read write read write przeł
Model macierzy dostępów przydatny do implementowania i kontroli ochrony dynamicznej tablica globalna - zbiór uporządkowanych trójek: <domena, obiekt, zb. praw> <D i, O j, R k > zbyt duŝa tablica (pam. wirtualna) brak moŝliwości grupowania obiektów lub domen wykazy dostępów do obiektów - dla kaŝdej kolumny uporządkowane pary <D i, R k >: R k domyślny zbiór praw dostępu wykazy uprawnień do domen - spis <O j, R k > obiekt chroniony, niedostępny dla procesu bezpośrednio mechanizm zamka-klucza dla kaŝdego obiektu - wykaz wzorców binarnych (zamków), dla kaŝdej domeny - wykaz wzorców binarnych (kluczy); gdy klucz pasuje do zamka proces moŝe mieć dostęp do obiektu,
Cofanie praw dostępu do obiektów proste dla wykazu dostępów, natychmiastowe trudne dla wykazu uprawnień dla domen - uprawnienia rozproszone wtórne pozyskiwanie - okresowe usuwanie uprawnień z kaŝdej domeny wskaźniki zwrotne - dla kaŝdego obiektu - wykaz wskaźników do uprawnień (kosztowny) adresowanie pośrednie - uprawnienia wskazują na wpisy w tablicy globalnej wskazujące na obiekty (nie na obiekty bezpośrednio; cofnięcie uprawnienia - usunięcie elementu z tablicy globalnej) klucze - zmiana klucza głównego związanego z danym obiektem - usunięcie wszystkich uprawnień danego obiektu
BEZPIECZEŃSTWO
ochrona - problem wewnętrzny bezpieczeństwo - wymaga systemu ochrony oraz zabezpieczenia przed środowiskiem zewnętrznym naruszenia bezpieczeństwa: rozmyślne przypadkowe
Uwierzytelnianie Sprawdzenie toŝsamości uŝytkownika klucz, karta ( stan posiadania) nazwa uŝytkownika i hasło (wiedza) odcisk palca, podpis, wzorzec siatkówki oka (atrybut) HASŁA odgadywanie haseł, metody siłowe hasła - generowane przez system, wybierane postarzanie haseł (max. i min. czas Ŝycia hasła) szyfrowanie (one-way-function) hasła jednorazowe (dobrane parami); algorytmiczne (ziarno, tajemnica)
ZagroŜenia programowe uŝywanie programów pisanych przez innych uŝytkowników koń trojański (segment kodu naduŝywający swojego środowiska np. w edytorze) zagroŝenie - długie ścieŝki dostępu,. program naśladujący login przechwytujący hasło boczne wejście - pozostawienie luki w oprogramowaniu przez projektanta obchodzenie procedur bezpieczeństwa dla pewnego uŝytkownika oszustwa bankowe, kompilator
bakterie (króliki) ZagroŜenia systemowe mechanizm rozmnaŝania - paraliŝowanie działania systemu robaki przenoszą się z systemu na system 1988r, Morris - robak internetowy program haczący, program główny (rsh, finger, sendmail) (grzywna - 10000$; 3 lata kuratora; 400h pracy społ., 150000$) wirusy - rozchodzą się po innych programach siejąc spustoszenie fragment kodu osadzony w poprawnym programie systemy jednouŝytkownikowe
Polepszenie bezpieczeństwa nadzorowanie zagroŝeń -śledzenie podejrzanych zachowań (zliczanie błędów logowania) dziennik kontroli ( zapis czasu, nazwy uŝytkownika, dostępów) analizowanie systemu okresowo krótkie, łatwe hasła manipulowanie setuid działalność nieupowaŝnionych programów w katalogach systemowych długo liczące się procesy ochrona katalogów i plików wpisy w PATH
Bezpieczne łączenie komputerów z niepewną siecią Zapora ogniowa (firewall) oddzielenie systemów komputer lub ruter ograniczający dostęp sieciowy nadzoruje i rejestruje wszystkie połączenia domena niepewna (Internet) strefa zdemilitaryzowana (o ograniczonym zaufaniu) - DMZ trzecia domena - komputery zainstalowane w firmie dopuszczanie ruchu tylko na wybranych portach; system: deny all; allow all
Linux zapora oparta na jądrze - szeroki zakres funkcji zabezpieczających zapory na poziomie aplikacji (gateway, proxy) np. serwer proxy - odbiera Ŝądanie od klientów (z zewnątrz i z wewnątrz); działa w oparciu o zdefiniowane reguły; dopuszcza lub nie pewne działania; ignorowanie wiadomości e-mail o pewnym rozmiarze
Klasyfikacja poziomów bezpieczeństwa 4 klasy bezpieczeństwa: A,B,C,D D - systemy nie spełniające wymagań Ŝadnej z innych klas (MS-DOS, Windows 3.1) C - umoŝliwienie wglądu w poczynania uŝytkowników (audit); dowolne reguły ochrony i odpowiedzialności; poziomy C1, C2 C1 -zawiera środki kontroli umoŝliwiające uŝytkownikom ochronę informacji (UNIX) C2 - dodatkowo indywidualny poziom dostępu (np. prawa do pliku moŝna określić w odniesieniu do poszczególnych osób) (niektóre UNIX y, NT)
Klasyfikacja poziomów bezpieczeństwa B - (B1, B2, B3) dla kaŝdego obiektu - kategoria uwraŝliwienia np. uŝytkownicy róŝnych poziomów (tajny, poufny); izolacja procesów - rozłączne przestrzenie adresowe A - funkcjonalnie równowaŝny B3; stosuje się formalną specyfikację projektu oraz techniki weryfikacji gwarantujące wysoki poziom pewności poprawnej implementacji bazy bezpieczeństwa komputerowego (TCB)
TCB (Trusted( Computer Base) baza bezpieczeństwa komputerowego sprzęt Zespół wszystkich systemów ochrony oprogramowanie oprogramowanie układowe gwarantuje zdolność egzekwowania przez system zakładanej polityki bezpieczeństwa nie określa polityki ( zasady bezpieczeństwa związane z uzyskaniem certyfikatu)
UNIX OCHRONA I BEZPIECZEŃSTWO
Identyfikator uŝytkownika UID 1 id kilka nazw Identyfikator grupy GID 1 uŝytkownik wiele grup Grupy zawierają jedynie uŝytkowników ( nie inne grupy) root id=0 (AT&T UNIX; MULTICS) KaŜdy proces id grupy, id uŝytkownika Polecenie id; w C geteuid, getegid KaŜdy plik własnością 1 grupy i 1 uŝytkownika (tworzącego procesu) Pliki rwx; tworzenie i usuwanie działania na katalogu Sprawdzanie uprawnień ls l; Programowo stat Modyfikacja uprawnień - chmod
Dziura w zabezpieczeniach- NiemoŜliwe wykonanie programu, moŝliwe skopiowanie Zmiany id uŝytkownika (grupy) setreuid (setregid) root dowolne zmiany Pozostałe procesy: RUID := EUID EUID := RUID EUID RUID
1. RUID := EUID 2. EUID := RUID 3. EUID RUID 1 procedura logowania 2 obsługa Ŝądania dostępu do zasobów uŝytkownika jas przez root a EUID:=jas działanie EUID:=RUID / z powrotem root
Programy setuid su 1. Sprawdzenie hasła 2. EUID:= właściciel pliku (0) 3. Uruchomienie nowej powłoki UWIERZYTELNIENIE GNU/Linux PAM /Pluggable Autentication Modules/
3 PROBLEMY BEZPIECZEŃSTWA Przekroczenie buforów (uŝytkownik root) nadpisanie stosu zamiana adresu powrotnego z funkcji + umieszczenie kodu pozwalanie wysyłania łańcucha znaków przekraczającego bufor sendmail finger passwd f talk
Wyścigi w /tmp/ Dowiązanie symboliczne do pliku tymczasowego uŝywanego przez root a Nadpisanie pliku systemowego Przejęcie danych Pliki tymczasowe opcja O_EXCL mkstemp lstat
UŜywanie powłoki do uruchamiania programów system popen aplikacja klient-serwer system(bufor) bufor tekst; polecenie ROZWIĄZANIE: zastąpienie system exec analiza poprawności wprowadzonego przez klienta łańcucha
LINIE OBRONY ochrona fizyczna (dostęp do komputera) hasła prawa dostępu do plików szyfrowanie plików kopie zapasowe komercyjne systemy dostarczają narzędzi zabezpieczających system
Linux pakiet shadow (OBSCURE_CHECK_ENAB z /etc/login.defs) sprawdzanie haseł (Crack) dodatkowy program uwierzytelniający w /etc/shadow - @nazwa_programu określenie inf. uwierzytelniającej: useradd A; usermod A passwd równieŝ uruchamia program uwierzytelniający
Listy historii haseł Digital UNIX IRIX lista poprzednich haseł uŝytkownika zakazany czas (tygodnie)
Dodatkowe uwierzytelnianie identyfikacyjne karty magnetyczne kontrola numerycznych haseł wymaga podania dodatkowych informacji AIX, IRIX, Linux umoŝliwiają dołączenie obsługi kart warunki: właścicielem pliku root prawa 500 lub 700 dla wszystkich plików katalogu w jedynie dla root a
HASŁA TELEFONICZNE /etc/d_passwd - zestaw zaszyfr. haseł /etc/dialups modemami - wykaz linii terminalowych z samodzielna generacja zaszyfrowanego hasła sól(2zn) + hasło(8zn) echo hhhhhhhhss makekey skopiować hasło do d_passwd moŝna uŝyć zakodowane hasło z passwd lub shadow
INNA KONTROLA KONTA blokowanie konta po nieudanych próbach logowania ograniczenie dostępu uŝytkowników (dni, pory) AIX, HP-Unix, Linux (/etc/porttime) kończenie sesji przy braku aktywności SCO UNIX, Solaris
OCHRONA PLIKÓW Jak się stać superuŝytkownikiem? root: cp /bin/sh /tmp/.cos chmod 4755 /tmp/.cos ZagroŜenie PATH np. ls (zmodyfikowany) w /tmp root:. w PATH niedopuszczalna nikt nie ma prawa w do Ŝadnego katalogu z listy PATH root a
Prawa dostępu (małe błędy duŝy problem).login uŝytkownika jas: 660 /etc 660 (root, system) jas członkiem grupy gr1 i system Dowolny członek grupy gr1 moŝe zastąpić plik haseł: rm f /etc/passwd cp /tmp/data /etc/passwd Podstawiony program uruchomiony przez root a po pierwszym uruchomieniu zastąpiony poprawną wersją
ACL listy kontroli dostępu AIX, HP Unix, Linux atrybuty, bazowe uprawnienia, rozszerzone enabled/disabled; specify =; deny -; permint + specify r-- u:marek permint rw- g:info, g:mat permint rw- u:krysia, g:mat koniunkcja praw nie moŝna uŝywać chmod numerycznego
szyfrowanie crypt DES(Data Ecryption Standard)
Crack darmowy pakiet do łamania haseł słonwnik + reguły
Śledzenie plików systemowych porównywanie praw własności ochrony dat modyfikacji rozmiarów nr i-węzłów sum kontrolnych sumy kontrolne (sum suma kontrolna + rozmiar pliku)
Kontrola spójności systemu TCB (Trusted Computing Base) Oprogramowanie kontrola spójności systemu (B1 i wyŝej) Tripwire (dobre darmowe narzędzie) Porównuje aktualny status najwaŝniejszych plików z przechowywanymi w systemie poprawnymi atrybutami (z i-węzów); sygnatury; sumy kontrolne (2 algorytmy) Przy 1-szym uruchomieniu tworzy bazę COPS (Computer Oracle and Password System) darmowe oprogramowanie Sprawdza środowisko pracy root a; prawa dostepu; plik haseł; SUID; SGID Listy wysyłkowe zw. z bezpieczeństwem CERT Computer Emergency Response Team (informacje o zabezpieczeniach; porady) CIAC Computer Incident Advisory Capability
śledzenie nieudanych prób rozpoczęcia sesji Linux - /var/adm/faillog rejestracja su /var/adm/messages rejestrowanie komunikatów syslog - /etc/syslog.conf śledzenie pracy uŝytkowników last, lastcomm,.. mechanizm audit śledzenie zdarzeń (C2 i >)