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.

Podobne dokumenty