2010-04 os security analysis
DESCRIPTION
TRANSCRIPT
![Page 1: 2010-04 os security analysis](https://reader033.vdocuments.site/reader033/viewer/2022051610/5495b02fb479593d4d8b4dd7/html5/thumbnails/1.jpg)
mattagile.com
Analiza zabezpieczeń alternatywnych i wiodących systemów operacyjnych
Security is a process, not a product
Paweł WyleciałMatt Harasymczuk
OS security analysis2010-04-19
![Page 2: 2010-04 os security analysis](https://reader033.vdocuments.site/reader033/viewer/2022051610/5495b02fb479593d4d8b4dd7/html5/thumbnails/2.jpg)
mattagile.com
Prelegenci
Paweł Wyleciał
• Wargame: hack the code
• cc-hackme
• Vuln research
• Malware analysis
Razem piszemy pracę inżynierską dotyczącą analizy i metod obrony przed sieciami typu botnet
Mateusz Harasymczuk
• Programista w MBP sp. z o.o.
• Admin / network engineer
- Politechnika Poznańska
- Consdata sp. z o.o
- CK&B New York
![Page 4: 2010-04 os security analysis](https://reader033.vdocuments.site/reader033/viewer/2022051610/5495b02fb479593d4d8b4dd7/html5/thumbnails/4.jpg)
mattagile.com
• W 1946 roku, Grace Hopper została zwolniona z czynnej służby wojskowej i wstąpiła do “Harvard Faculty at the Computation Laboratory”, gdzie kontynuowała pracę nad Mark II i Mark III.
• Jako operator wyśledziła przyczynę zepsucia komputera Mark II. Sprawcę uszkodzenia, ćmę, która została uwięziona w przekaźniku, usunęła ze sprzętu i przykleiła do zeszytu logów projektu, dokładnie 9 września 1945 roku.
• Od tamtego czasu usterki i błędy w oprogramowaniu nazywamy bug’ami.
It’s a bug
![Page 5: 2010-04 os security analysis](https://reader033.vdocuments.site/reader033/viewer/2022051610/5495b02fb479593d4d8b4dd7/html5/thumbnails/5.jpg)
mattagile.com
Trochę historii
• robak Morrisa(1988) - wykorzystanie błędów typu buffer overflow w unixowych usługach sendmail, finger, rsh
• Ping of death(1996) – podatne systemy: Solaris, Linux, MacOS, DOS, Windows 3.11/95/NT, SCO Unix, AIX, HP-UX, Novell Netware
• Winnuke(1997) – Windows 3.11/95/NT – Out of band msg na port NetBIOS
• Windows NT getadmin exploit – błąd sprawdzania uprawnień, dll injection do procesu winlogon
• RPC service buffer overflow(2003) – windows 2k/XP, blaster worm
![Page 6: 2010-04 os security analysis](https://reader033.vdocuments.site/reader033/viewer/2022051610/5495b02fb479593d4d8b4dd7/html5/thumbnails/6.jpg)
mattagile.com
Worst bugs ever
• July 28, 1962 -- Mariner I space probe. A bug in the flight software for the Mariner 1 causes the rocket to divert from its intended path on launch. Mission control destroys the rocket over the Atlantic Ocean. The investigation into the accident discovers that a formula written on paper in pencil was improperly transcribed into computer code, causing the computer to miscalculate the rocket's trajectory.
![Page 7: 2010-04 os security analysis](https://reader033.vdocuments.site/reader033/viewer/2022051610/5495b02fb479593d4d8b4dd7/html5/thumbnails/7.jpg)
mattagile.com
Worst bugs ever
• 1982 -- Soviet gas pipeline. Operatives working for the Central Intelligence Agency allegedly plant a bug in a Canadian computer system purchased to control the trans-Siberian gas pipeline. The Soviets had obtained the system as part of a wide-ranging effort to covertly purchase or steal sensitive U.S. technology. The CIA reportedly found out about the program and decided to make it backfire with equipment that would pass Soviet inspection and then fail once in operation. The resulting event is reportedly the largest non-nuclear explosion in the planet's history.
![Page 9: 2010-04 os security analysis](https://reader033.vdocuments.site/reader033/viewer/2022051610/5495b02fb479593d4d8b4dd7/html5/thumbnails/9.jpg)
mattagile.com
Skutki:
• Crash aplikacji (DoS)
• Wykonanie dowolnego kodu
• Eskalacja uprawnień
int main(int argc, char **argv) { char buf[256]; strcpy(buf, argv[1]); return 0; }
Stack Overflow
![Page 10: 2010-04 os security analysis](https://reader033.vdocuments.site/reader033/viewer/2022051610/5495b02fb479593d4d8b4dd7/html5/thumbnails/10.jpg)
mattagile.com
• Skutki podobne w przypadku błędów stack overflow
Heap overflow
... char *username; char *buf; buf = (char*) malloc( 256 ); username = (char*) malloc(16); strcpy(username, “howl”); strcpy(buf, argv[1]); ...
![Page 11: 2010-04 os security analysis](https://reader033.vdocuments.site/reader033/viewer/2022051610/5495b02fb479593d4d8b4dd7/html5/thumbnails/11.jpg)
mattagile.com
• Crashe, infinite loops (DoS)
• Mogą prowadzić do buffer overflowów
char buf[256]; short len; if ( len <= 256 ) memcpy(buf, argv[1], len); else return 1;
Integer overflow
![Page 12: 2010-04 os security analysis](https://reader033.vdocuments.site/reader033/viewer/2022051610/5495b02fb479593d4d8b4dd7/html5/thumbnails/12.jpg)
mattagile.com
• Ominięcie kontroli dostępu
• Uszkodzenie danych
• Linux kernel local root exploit
char * filename = "/tmp/test.tmp"; char buffer[256]; FILE *f; scanf ( "%s", buffer ); if( ! access (filename, W_OK) ) { ... f = fopen ( filename, "a+" ); fwrite ( "\n", sizeof(char), 1, f ); fwrite ( buffer, sizeof(char), strlen(buffer), f); fclose (f); } else printf("No permission \n");
Race condition
![Page 13: 2010-04 os security analysis](https://reader033.vdocuments.site/reader033/viewer/2022051610/5495b02fb479593d4d8b4dd7/html5/thumbnails/13.jpg)
mattagile.com
• Wykonanie kodu
• Eskalacja przywilejów
• Błędy te raczej już nie występują (łatwe do wykrycia)
... printf(argv[1]); ... ./program %x%x ./program %n
Format string bug
![Page 14: 2010-04 os security analysis](https://reader033.vdocuments.site/reader033/viewer/2022051610/5495b02fb479593d4d8b4dd7/html5/thumbnails/14.jpg)
mattagile.com
Najnowszy błąd w kernelu linuksa • Niecodzienny przykład błędu
• Crash
• Wykonanie kodu
• Działa na SELinux
// initialize sk with tun->sk struct sock *sk = tun->sk; ... if (!tun) // if tun is NULL return error return POLLERR;
NULL pointer dereference
![Page 17: 2010-04 os security analysis](https://reader033.vdocuments.site/reader033/viewer/2022051610/5495b02fb479593d4d8b4dd7/html5/thumbnails/17.jpg)
mattagile.com
• XP SP 2 - DEP (Data execution prevention)
• Strony pamięci z sekcji data oznaczone jako niewykonywalne
• ASLR (Address Space Layout Randomization) Windows Vista
• Położenie stosu, stery i środowiska procesu jest losowe
• Stack cookies (canary)
• SafeSEH (Safe exception handlers)
• SEHOP
Windows
![Page 18: 2010-04 os security analysis](https://reader033.vdocuments.site/reader033/viewer/2022051610/5495b02fb479593d4d8b4dd7/html5/thumbnails/18.jpg)
mattagile.com
• DEP – wady
• Dla dobrej skuteczności wymagany jest procesor rozumiejący bit NX
• Domyślnie nie jest aktywny dla wszystkich procesów w systemie
• Bit NX zazwyczaj domyślnie nie jest ustawiony
• Return-oriented shellcode (wyłączenie DEP)
• Software DEP = SafeSEH
• http://www.semantiscope.com/research/BHDC2010/BHDC-2010-Paper.pdf
Windows
![Page 19: 2010-04 os security analysis](https://reader033.vdocuments.site/reader033/viewer/2022051610/5495b02fb479593d4d8b4dd7/html5/thumbnails/19.jpg)
mattagile.com
• ASLR – wady
• Losowość tylko na 8 bitach adresu, co daje 256 możliwości
• Możliwość ataku bruteforce
• Znalezienie DLL nieobjętego ASLR
• Pierwsze wydanie ASLR dla Visty podatne
Windows
![Page 21: 2010-04 os security analysis](https://reader033.vdocuments.site/reader033/viewer/2022051610/5495b02fb479593d4d8b4dd7/html5/thumbnails/21.jpg)
mattagile.com
• ASLR od kernela 2.6.12
• Gcc stack protector (canary value)
• Grsecurity
- Ochrona przed atakami stack, heap overflow i race condition
- Zapobieganie wykonania kodu w kernelu, wycieku istotnych danych(memory leaks) oraz atakom typu null pointer dereferernce
- Ulepszona wersja ASLR
Linux
![Page 22: 2010-04 os security analysis](https://reader033.vdocuments.site/reader033/viewer/2022051610/5495b02fb479593d4d8b4dd7/html5/thumbnails/22.jpg)
mattagile.com
• ASLR w podstawowej wersji cechuje się zbyt małą randomizacją
• Stack-protector na etapie kompilacji dołącza dodatkowe instrukcje – problem optymalizacyjny
Linux
![Page 24: 2010-04 os security analysis](https://reader033.vdocuments.site/reader033/viewer/2022051610/5495b02fb479593d4d8b4dd7/html5/thumbnails/24.jpg)
mattagile.com
• Linux Fedora + Xen
• Security by Isolation (sandbox)
• „lekkie” wirutalne maszyny
Qubes OS
![Page 27: 2010-04 os security analysis](https://reader033.vdocuments.site/reader033/viewer/2022051610/5495b02fb479593d4d8b4dd7/html5/thumbnails/27.jpg)
mattagile.com
• http://www5.us.freebsd.org/doc/en_US.ISO8859-1/books/handbook/security.html
• man security(7)
• OpenSSH
• Kerberos5
• VPN over IPsec
• File System Access Control Lists
• Debian GNU/FreeBSD
FreeBSD
![Page 28: 2010-04 os security analysis](https://reader033.vdocuments.site/reader033/viewer/2022051610/5495b02fb479593d4d8b4dd7/html5/thumbnails/28.jpg)
mattagile.com
FreeBSD
• Portaudit provides a system to check if installed ports are listed in a database of published security vulnerabilities. After installation it will update this security database automatically and include its reports in the output of the daily security run.
• list of published security vulnerabilities
![Page 29: 2010-04 os security analysis](https://reader033.vdocuments.site/reader033/viewer/2022051610/5495b02fb479593d4d8b4dd7/html5/thumbnails/29.jpg)
mattagile.com
TrustedBSD
• access control lists (ACL)
• event auditing and OpenBSM (Open Source Basic Security Module)
• extended attributes i UFS 2
• fine-grained capabilities (dla użytkowników, np root)
• GEOM cryptographic framework (framework transformacji żądań I/O)
• mandatory access control (MAC)
• OpenPAM
• security-enhanced BSD (SEBSD) — SELinux-like tool
![Page 31: 2010-04 os security analysis](https://reader033.vdocuments.site/reader033/viewer/2022051610/5495b02fb479593d4d8b4dd7/html5/thumbnails/31.jpg)
mattagile.com
• Address space layout randomization (ASLR)
• “Only two remote holes in the default install, in a heck of a long time!”
• OpenBSD jest projektem kanadyjskim, ze względu na prawo eksportu nardzędzi kryptograficznych poza teren USA
• główny cel: bezpieczeństwo
• polityka Full Disclosure
• Proces audytu kodu źródłowego
• "Secure by Default".
OpenBSD
![Page 32: 2010-04 os security analysis](https://reader033.vdocuments.site/reader033/viewer/2022051610/5495b02fb479593d4d8b4dd7/html5/thumbnails/32.jpg)
mattagile.com
OpenSSH Remote Challenge Vulnerability
• Title: OpenSSH Remote Challenge Vulnerability
• Class: Buffer Overflow
• Remotely Exploitable: Yes
• Locally Exploitable: No
• Date Published: 2002-06-23
• Mark Dowd of the ISS X-Force
• http://www.openssh.com/txt/iss.adv
![Page 33: 2010-04 os security analysis](https://reader033.vdocuments.site/reader033/viewer/2022051610/5495b02fb479593d4d8b4dd7/html5/thumbnails/33.jpg)
mattagile.com
OpenSSH Remote Challenge Vulnerability
• Podatność istniała w mechanizmie autentykacji "challenge-response" w daemon’ie OpenSSH (sshd).
• Ten mechanizm jest częścią protokołu SSH2, służy do sprawdzania tożsamości użytkownika przez generowanie “challenge” i zmuszenie użytkownika do podania określonej liczby odpowiedzi
• Potwierdzono możliwość wysłania spreparowanej odpowiedzi wywołującej błąd przepełnienia buforu, który może skutkować zdalnym atakiem typu “denial of service” lub całkowitą “compromise” systemu
• Daemon OpenSSH jest uruchomiony z uprawnieniami superuser’a, którego uprawnienia można uzyskać po eksploitacji dziury
• flagi SKEY i BSD_AUTH podczas kompilacji OpenSSH
![Page 34: 2010-04 os security analysis](https://reader033.vdocuments.site/reader033/viewer/2022051610/5495b02fb479593d4d8b4dd7/html5/thumbnails/34.jpg)
mattagile.com
OpenBSD's IPv6 mbufs remote kernel buffer overflow
• Title: OpenBSD's IPv6 mbufs remote kernel buffer overflow
• Class: Buffer Overflow
• Remotely Exploitable: Yes
• Locally Exploitable: No
• Date Published: 2007-03-13
• Alfredo Ortega from Core Security Technologies
• http://lwn.net/Articles/225947/
![Page 35: 2010-04 os security analysis](https://reader033.vdocuments.site/reader033/viewer/2022051610/5495b02fb479593d4d8b4dd7/html5/thumbnails/35.jpg)
mattagile.com
OpenBSD's IPv6 mbufs remote kernel buffer overflow
• Kernel OpenBSD posiadał błąd w pamięci kodu zajmującego się obsługą pakietów IPv6. Wykorzystanie tego błędu może spowodować:
- “Remote execution of arbitrary code at the kernel level” na podatnych systemach (całkowity “compromise” systemu)
- “Remote denial of service” atak przeciwko podatnym systemom (crash systemu spowodowany kernel panic’iem)
• Błąd może być wykorzystany przez wysłanie specialnie spreparowanego pakietu IPv6
![Page 37: 2010-04 os security analysis](https://reader033.vdocuments.site/reader033/viewer/2022051610/5495b02fb479593d4d8b4dd7/html5/thumbnails/37.jpg)
mattagile.com
• http://mail-index.netbsd.org/netbsd-bugs/
• http://www.netbsd.org/support/security/
• http://www.netbsd.org/support/security/advisory.html
NetBSD
![Page 39: 2010-04 os security analysis](https://reader033.vdocuments.site/reader033/viewer/2022051610/5495b02fb479593d4d8b4dd7/html5/thumbnails/39.jpg)
mattagile.com
• The New VFS Model
• New I/O Device Model
• The Light Weight Kernel Threading Model (scheduler - planista)
• http://leaf.dragonflybsd.org/mailarchive/kernel/
DragonflyBSD
![Page 41: 2010-04 os security analysis](https://reader033.vdocuments.site/reader033/viewer/2022051610/5495b02fb479593d4d8b4dd7/html5/thumbnails/41.jpg)
mattagile.com
Mac OS X
• Zabezpieczony out-of-the-box
• podpisane cyfrowo aktualizacje
• FileVault, Szyfrowanie partycji, Bezpieczne opróżnianie kosza
• ochrona środowiska uruchomieniowego aplikacji za pomocą stack canaries, sprawdzanie poprawności stosu, i usługi systemowe w sandbox’ach
• Pluginy przeglądarek jako osobne procesy
![Page 42: 2010-04 os security analysis](https://reader033.vdocuments.site/reader033/viewer/2022051610/5495b02fb479593d4d8b4dd7/html5/thumbnails/42.jpg)
mattagile.com
Mac OS X
• 64-bit’owe środowisko, no-execute data na stercie, podawanie agrumentów funkcji do rejestrów a nie na stos
• wbudowane wsparcie dla virtual private network (VPN)
• Pluggable Authentication Modules (PAM)
• bezpieczne cache’owanie sieciowych systemów uwierzytelniania
• Open Directory, Kerberos, NTLMv2, Active Directory
• konta Administrator i root
![Page 44: 2010-04 os security analysis](https://reader033.vdocuments.site/reader033/viewer/2022051610/5495b02fb479593d4d8b4dd7/html5/thumbnails/44.jpg)
mattagile.com
Mac OS X
• Mandatory access controls (MAC)
• “Protection against Trojan horse downloads” :}
• Execute disable
• Address space layout randomization (ASLR) - niepełna implementacja
• Sandboxing
• Podpisywanie aplikacji
• Szyfrowana pamięć witrualna
![Page 47: 2010-04 os security analysis](https://reader033.vdocuments.site/reader033/viewer/2022051610/5495b02fb479593d4d8b4dd7/html5/thumbnails/47.jpg)
mattagile.com
• pochodna Mac OS X
• odziedziczy kernel Darwin
• posiada Unixową strukturę
• posiada cztery warstwy abstrakcji:
• the Core OS layer
• the Core Services layer
• the Media layer
• Cocoa Touch layer
iPhone OS
![Page 48: 2010-04 os security analysis](https://reader033.vdocuments.site/reader033/viewer/2022051610/5495b02fb479593d4d8b4dd7/html5/thumbnails/48.jpg)
mattagile.com
iPhone OS: jailbreaking and SIM unlocking
• iPhone Dev Team
• PwnageTool
• yellowsn0w -> ultrasn0w
• GeoHot (George Hotz)
• purplera1n -> blackra1n
![Page 50: 2010-04 os security analysis](https://reader033.vdocuments.site/reader033/viewer/2022051610/5495b02fb479593d4d8b4dd7/html5/thumbnails/50.jpg)
mattagile.com
• Szybko reagujący team developerów
• http://groups.google.com/group/android-security-announce/browse_thread/thread/6846dada5ed4db70
• Każda aplikacja uruchamiana w androidzie, wykonuje się w specjalnym środowisku sandbox’a, jeżeli aplikacja wykona nieprawidłową operację, lub zostanie skompromitowana, napastnik otrzyma możliwość ingerencji jedynie w obrębie przestrzeni uruchomieniowej
• Otwarty kod źródłowy
Google Android
![Page 51: 2010-04 os security analysis](https://reader033.vdocuments.site/reader033/viewer/2022051610/5495b02fb479593d4d8b4dd7/html5/thumbnails/51.jpg)
mattagile.com
Android security flaws
• Android na początku swojego istnienia został wypuszczony posiadając dobrze znane i udokumentowane błędy w przeglądarce oraz silniku renderującym obrazki. Problem stanowiło użycie przestarzałej wersji web-kit’a oraz pozostałych bibliotek przeglądarki (PacketVideo), powyższe błędy załatano.
• Ze względu na fakt iż aplikacje rozpowszechniane za pomocą Google Android Market nie podlegają wstępnej weryfikacji jak ma to miejsce w AppStore, a tylko oflagowywane przez użytkowników, jako ewentualnie niebezpieczne, klienci narażeni są na możliwość ściągnięcia aplikacji zawierającej backdoor lub wykradającej dane. Zanim koncern zareaguje może minąć kilka dni, a kilka aplikacji bankowych zawierających maleware zostało już usuniętych z Android Market
• Błąd rozróżniania poleceń od tekstów użytkownika
![Page 58: 2010-04 os security analysis](https://reader033.vdocuments.site/reader033/viewer/2022051610/5495b02fb479593d4d8b4dd7/html5/thumbnails/58.jpg)
mattagile.com
• Bezpieczeństwo systemów plików
• Bezpieczeństwo cloud-computing i obliczeń rozproszonych
• Botnety
• Malware (wirusy, trojany, robaki, rootkity, backdoory)
• Eavesdropping (Man in the middle), VPN, SSH
• hack proofing (IDS, IPS, Firewall)
• Server and services bugs (DNS, NetBIOS, SSH, FTP, HTTP)
TODO