OCHRONA

Transkrypt

OCHRONA
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 (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
D1
<O2,{execute}>
<O1,{read,write}>
<O3,{read,write}>
D2
D3
<O1,{read}> <O4,{print}> <O1,{execute}>
<O3,{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ą
D1
D2
D3
D4
F1
read
F2
F3
read
drukarka
print
execute
read
write
read
read
write
Dynamiczne związki (+ przełączanie domen - obiekt=domena)
F1
F2
F3
druka
rka
D1 read
read
D2
print
D3
exec read
D4 read
read
write
write
D1
D2
D3
D4
przeł
przeł przeł
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 (*)
D1
D2
D3
D4
F1
read
F2
execute
read
write
F3
read*
Prawo właściciela (owner)
• dodawanie; usuwanie praw ( w ramach kolumny)
D1
D2
D3
D4
F1
read
F2
execute
read
write
F3
read*
owner
Prawo kontroli (control)
• zmiana elementów w wierszach macierzy dostępów jedynie dla obiektów - domen
proces działający w domenie D2 moŜe zmienić domenę D4
F1
D1
D2
D3
D4
F2
read
F3
druka
rka
read
D1
D2
read
write
read
read
write
D4
przeł
przeł
control
przeł
print
exec
D3
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> <Di, Oj, Rk>
– 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 <Di, Rk>: Rk≠∅
– domyślny zbiór praw dostępu
• wykazy uprawnień do domen - spis <Oj, Rk>
– 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
ZagroŜenia systemowe
• bakterie (króliki)
– 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
Zespół wszystkich systemów ochrony
• sprzęt
• 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 - wykaz linii terminalowych z
modemami
• 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 rwg:info, g:mat
permint
rwu: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 >)