Spotkanie 4
Transkrypt
Spotkanie 4
Bezpiecze«stwo Wojciech Myszka 17 listopada 2008 Podstawowe zasady 1. Wszystkie zasady bezpiecze«stwa s¡ niewygodne dla u»ytkowników (i administratora). 2. Caªy system jest tak bezpieczny jak najmniej bezpieczny jego element. 3. Systemy podª¡czone bezpo±rednio do sieci Internet nie s¡ bezpieczne. Aspekty bezpiecze«stwa 1. Zapewnienie ci¡gªo±ci pracy. 2. Zapewnienie ochrony danych: I I strata, wyciek. 3. Zapewnienie ochrony dost¦pu. Jak? 1. 2. 3. 4. 5. 6. Trzeba przewidywa¢ (planowanie kryzysowe). Trzeba mie¢ plan. Szyfrowa¢ wszystko co si¦ da. Monitorowa¢ prac¦ systemu. Wykrywa¢ awarie (i naprawia¢). Szuka¢ przyczyn awarii i zapobiega¢. Zagro»enia 1. Fizyczne I I I Kradzie». Zniszczenie. Awaria zasilania. 2. Danych I I I Uszkodzenie. Kradzie». Ujawnienie 3. Ci¡gªo±¢ dost¦pu I I I I I Awarie Awarie Awarie Awarie Awarie sprz¦tu oprogramowania zasilania klimatyzacji infrastruktury sieciowej Zabezpieczenia I Standardowe: I I I hasªa (chroni¡ przed nieautoryzowanym dost¦pem) prawa dost¦pu (chroni¡ przed dziaªaniami innych u»ytkowników; w pewnych warunkach równie» przed samym sob¡) Inne: I szyfrowanie (poufno±¢ danych) Sªabo±ci I Standardowy system haseª jest kiepski ataków brute force I I I zach¦ca do 8 znaków /etc/passwd Standardowe prawa dost¦pu s¡ bardzo kiepskie: wyró»niaj¡ tylko trzy rodzaje u»ytkowników: I I I on sam grupa caªa reszta Ochrona kont I I I I I I I I I Plik shadow (tcb) Zapewnienie haseª niepustych i nietrywialnych (i dªugich!?) Okresowe zmiany haseª Przeterminowywanie haseª (password aging) Jedno konto = jeden u»ytkownik Jedno hasªo = jeden komputer (zwªaszcza root!) Centralne zarz¡dzanie kontami (Kerberos, NIS, LDAP) Bardziej zaawansowane metody sprawdzania to»samo±ci Hasªa jednorazowe Ochrona plików I I Programy wykonywalne systemów plików no-ex Programy set-uid I I I wykrywanie dzikich programów set-uid poprawne programowanie Sprawdzanie plików i katalogów systemowych I I I montowanie niektórych prawa dost¦pu sumy kontrolne Sprawdzanie plików i katalogów u»ytkowych (niezgodne z zasadami prawa dost¦pu) SELinux 1. Produkt National Security Agency http://www.nsa.gov/selinux/. 2. Let me assure you that this action by the NSA was the crypto-equivalent of the Pope coming down off the balcony in Rome, working the crowd with a few loaves of bread and some sh, and then inviting everyone to come over to his place to watch the soccer game and have a few beers. There are some things that one just never expects to see, and the NSA handing out source code along with details of the security mechanism behind it was right up there on that list. Larry Loeb [4] SELinux I 1. W sumie dosy¢ podobne do AppArmor. 2. Wprowadza pewne mody kacje do j¡dra (wprowadzone na staªe od wersji 2.6) 3. Architektura bezpiecze«stwa oparta na ideii zwanej FLASK (NSA, University of Utah and the Secure Computing Corp.). 4. W j¡dro wbudowano mechanizmy MAC (Mandatory Access Control) nadzoruj¡ce uruchomiony program i zupeªnie niezale»ne od praw wynikaj¡cych UID i GID. 5. Wyeliminowano poj¦cia root , setuid, setgid. SELinux II 6. Pozwala to de niowa¢ dla ka»dej aplikacji zestaw uprawnie« niezb¦dnych do pracy. 7. W przypadku przej¦cia kontroli nad takim programem mo»na minimalizowa¢ szkody. 8. System dostarcza podstawow¡ polityk¦ bezpiecze«stwa . Administrator mo»e j¡ mody kowa¢ i zmienia¢. 9. SELinux zapewnia kompatybilno±¢ na poziomie aplikacji. SELinux III 10. Wi¦kszo±c moduªów j¡dra b¦dzie pracowaªa bez zmian (by¢ mo»e b¦dzie potrzebna rekompilacja). W przypadku gdy j¡dro ma ju» wbudowane mechanizmy MAC pewne moduªy j¡dra mog¡ wymaga¢ zmian je»eli wymagaj¡ dost¦pu do informacji zwi¡zanych z bezpiecze«stwem. 11. Systemy implementuj¡ce SELinux: I I I I I I Debian EnGarde Secure Linux Fedora Gentoo Red Hat Enterprise Linux Ubuntu SELinux Przepeªnienie bufora 1. Przepeªnienie bufora to jedna z popularniejszych metod atakowania systemu w celu uruchomienia na nim swojego kodu i, w konsekwencji, przej¦cia sterowania. 2. SELinux w »aden sposób nie zabezpiecza przed wyst¡pieniem tego zjawiska. 3. Je»eli polityka bezpiecze«stwa nie umo»liwia (atakowanemu) programowi na uruchamianie programów atak si¦ zaªamie, mimo, »e (formalnie) si¦ uda. 4. Natomiast system jest bardzo czuªy na bª¦dy polityki bezpiecze«stwa. AppArmor 1. AppArmor chroni przed uruchomieniem niezaufanych procesów przez uruchamianie ich pod kontrol¡, ze specjalnie ustalonymi uprawnieniami (niezale»nymi od uprawnie« u»ytkownika i grupy). 2. Je»eli zainstalowany jest AppArmor, programy, dla których nie s¡ zde niowane ograniczenia uruchamiane s¡ na dotychczasowych zasadach. 3. AppArmor zna dwa typy zasobów: I I pliki mo»liwo±ci z POSIX.1e (POSIX.1e capabilities) i ogranicza kontrolowanym programom do nich dost¦p zgodnie ze zde niowanymi zasadami. AppArmor Pro le 1. Aby skorzysta¢ z mo»liwo±ci oferowanych przez AppArmor nale»y dla ka»dej aplikacji, któr¡ chcemy kontrolowa¢ stworzy¢ pro l: 1.1 mo»na skorzysta¢ z istniej¡cego, 1.2 mo»na napisa¢ nowy, 1.3 mo»na uruchomi¢ aplikacj¦ w trybie uczenia b¦d¡ notowane wszystkie jej dziaªania i na tej podstawie mo»na pro l zbudowa¢ automatycznie Aplikacja nie musi by¢ mody kowana! 2. Dost¦p do zasobów (na przykªad plików) de niowany jest przez podawnie ich nazw. AppArmor I Czy nale»y si¦ tym przejmowa¢? dpkg -l | grep armor ii apparmor ii apparmor-utils 2.1+1075-0ubuntu9. 2.1+1075-0ubuntu9. AppArmor II Czy nale»y si¦ tym przejmowa¢? # apparmor_status apparmor module is loaded. 2 profiles are loaded. 2 profiles are in enforce mode. /usr/sbin/cupsd /usr/lib/cups/backend/cups-pdf 0 profiles are in complain mode. 1 processes have profiles defined. 1 processes are in enforce mode : /usr/sbin/cupsd (4967) 0 processes are in complain mode. 0 processes are unconfined but have a profile defined. AppArmor Ubuntu 8.04 I apparmor module is loaded. 3 profiles are loaded. 3 profiles are in enforce mode. /usr/bin/freshclam /usr/sbin/cupsd /usr/lib/cups/backend/cups-pdf 0 profiles are in complain mode. 2 processes have profiles defined. 2 processes are in enforce mode : /usr/bin/freshclam (5112) /usr/sbin/cupsd (5137) AppArmor Ubuntu 8.04 II 0 processes are in complain mode. 0 processes are unconfined but have a profile defined. AppArmor Ubuntu 8.10 I apparmor module is loaded. 4 profiles are loaded. 4 profiles are in enforce mode. /usr/share/gdm/guest-session/Xsession /usr/bin/freshclam /usr/sbin/cupsd /usr/lib/cups/backend/cups-pdf 0 profiles are in complain mode. 2 processes have profiles defined. 2 processes are in enforce mode : /usr/sbin/cupsd (5302) AppArmor Ubuntu 8.10 II /usr/bin/freshclam (5270) 0 processes are in complain mode. 0 processes are unconfined but have a profile defined. AppArmor Ubuntu 9.10 I \begin{frame}[fragile,allowframebreaks] \frametitle{AppArmor --- Ubuntu 9.10} \begin{verbatim} 9 profiles are loaded. 9 profiles are in enforce mode. /usr/lib/connman/scripts/dhclient-script /usr/bin/evince-previewer /usr/sbin/tcpdump /usr/lib/cups/backend/cups-pdf /usr/bin/evince-thumbnailer /sbin/dhclient3 AppArmor 0 2 2 0 0 Ubuntu 9.10 II /usr/bin/evince /usr/sbin/cupsd /usr/lib/NetworkManager/nm-dhcp-client.action profiles are in complain mode. processes have profiles defined. processes are in enforce mode : /sbin/dhclient3 (3728) /usr/sbin/cupsd (1179) processes are in complain mode. processes are unconfined but have a profile defined. Monitorowanie pracy systemu I I Log systemowy (rejestr zdarze« systemowych): lokalny, zdalny I Rejestr nieudanych poª¡cze« I Rejestr prób wej±cia na konto roota (sulog) I Rejestr wej±¢ do systemu Monitorowanie pracy systemu II I I I Wykrywanie niepoprawnych kont (puste, ªatwe hasªa, uid=0) Sumy kontrolne newralgicznych plików systemowych Wykrywanie plików set-uid 0, zwªaszcza zabezpieczanie NFS Monitorowanie pracy systemu III I I I System accounting (rejestracja wszystkich lub wybranych dziaªa« programów, u»ytkowników) Sprawdzanie czasów mody kacji (i ostatniego dost¦pu) niektóre systemy zarz¡dzania pakietami! Wydarzenia sieciowe Usªugi r* I I I Bardzo wygodne. Wygoda polega na tym, »e autoryzacja wykorzystuje mechanizm równowa»no±ci komputerów (u»ytkownik zalogowany na jednym komputerze nie musi si¦ autoryzowa¢ na kolejnych komputerach). Generalnie je»eli tylko nie ma obowi¡zku, nie nale»y korzysta¢. ssh I I I Bezpieczny zamiennik rsh i rcp Niestety, równie» pozwalaj¡ na korzystanie z mechanizmów równowa»no±ci zazwyczaj standardowa kon guracja na to nie zezwala ssh II I I Przed (kolejnym) poª¡czeniem z komputerem dokonuj¡ pewnych sprawdze« jego to»samo±ci Pozwala na poª¡czenie z innym komputerem wykorzystuj¡c do autentykacji mechanizmy kluczy publicznych ssh III I I Poª¡czenie mi¦dzy komputerami jest szyfrowane i kompresowane Poª¡czenie ssh mo»e by¢ wykorzystywane do tunelowania poª¡cze« (Nie zawsze jest to zalet¡!) I Pozwala na wygodne tunelowanie sesji X (slogin -X) I Tworzy proxy socks (slogin -D 7070) Narz¦dzia I I I I I I I swatch uªatwia przegl¡danie logów systemowych md5sum obliczanie sygnatur plików tripwire sprawdzanie poprawno±ci plików systemowych crypt systemowy program do szyfrowania crack program ªamania haseª (lepszy jest Johny the Ripper) cops sprawdzanie dziur w zabezpieczeniach chkrootkit sprawdzanie ±ladów rootkitów PAM +----------------+ | application: X | +----------------+ / +----------+ +================+ | authentication-[---->--\--] Linux- |--<--| PAM config file| | + [----<--/--] PAM | |================| |[conversation()][--+ \ | | | X auth .. a.so | +----------------+ | / +-n--n-----+ | X auth .. b.so | | | | __| | | _____/ | service user | A | | |____,-----' | | | V A +----------------+ +------|-----|---------+ -----+------+ +---u-----u----+ | | | | auth.... |--[ a ]--[ b ]--[ c ] +--------------+ | acct.... |--[ b ]--[ d ] +--------------+ | password |--[ b ]--[ c ] +--------------+ | session |--[ e ]--[ c ] +--------------+ Biblio I Cracking passwords in the cloud: Breaking PGP on EC2 with EDPR. http://news.electricalchemy.net/2009/10/ cracking-passwords-in-cloud.html, Listopad 2009. Electric Alchemy blog. Cracking passwords in the cloud: Insights on password policies. http://news.electricalchemy.net/2009/10/ password-cracking-in-cloud-part-5.html, Pa¹dziernik 2009. Electric Alchemy blog. Biblio II Cracking passwords in the cloud Q&A. http://news.electricalchemy.net/2009/11/ cracking-passwords-in-cloud-q.html, Listopad 2009. Electric Alchemy blog. Larry Loeb. Uncovering the secrets of se linux. http://www-128.ibm.com/developerworks/library/ s-selinux/?n-s-381, 2001.