Linux vs rootkits. - Adam 'pi3' Zabrocki



Podobne dokumenty
Linux vs rootkits. - Adam 'pi3' Zabrocki

BEZPIECZEŃSTWO W SIECIACH

Tworzenie bezpiecznego środowiska kont shellowych

Rootkity - zagrożenie czy plotki? Mateusz Sell, Dariusz Świderski MKS Sp. z o.o.

Spis treści. Wskazówki prawne Art Art Art. 268a Art Art. 269a Art. 269b... 23

Visual VM, Java Management extension i inne ciekawostki

(Pluggable Authentication Modules). Wyjaśnienie technologii.

Q E M U.

Spis treści. O autorze 9. O recenzentach 10. Przedmowa 13. Rozdział 1. Oto Linux Mint 17_

IdyllaOS. Prosty, alternatywny system operacyjny. Autor: Grzegorz Gliński. Kontakt:

Jadro monolityczne vs. mikrojadro. Mikrojadro. Olga Kowalczuk. 9 grudnia 2008

Portal Security - ModSec Enterprise

System wspomagania zarządzania wirtualizacją

Robaki sieciowe. + systemy IDS/IPS

Koncepcja wirtualnej pracowni GIS w oparciu o oprogramowanie open source

Przegląd dostępnych hypervisorów. Jakub Wojtasz IT Solutions Architect

Struktury systemów operacyjnych

UNIX: architektura i implementacja mechanizmów bezpieczeństwa. Wojciech A. Koszek dunstan@freebsd.czest.pl Krajowy Fundusz na Rzecz Dzieci

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Linux.

Systemy operacyjne - rozkład godzin dla technikum informatycznego

Numer ogłoszenia: ; data zamieszczenia:

System komputerowy. Sprzęt. System komputerowy. Oprogramowanie

Temat: EasyAccess 2.0 Data: 10 Października 2014 Prowadzący: Maciej Sakowicz

Temat: Rootkit stworzony w oparciu o technikę "SSDT hooking". Autor: Damian Tykałowski. I. Cel projektu

ArcaVir 2008 System Protection

Systemy operacyjne i sieci komputerowe. 1 SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE. Etapy uruchamiania systemu

Serwer SSH. Wprowadzenie do serwera SSH Instalacja i konfiguracja Zarządzanie kluczami

Wykaz zmian w programie SysLoger

PROGRAMY NARZĘDZIOWE 1

Działanie systemu operacyjnego

Rozdział 6 - Z kim się kontaktować Spis treści. Wszelkie prawa zastrzeżone WiedzaTech sp. z o.o Kopiowanie bez zezwolenia zabronione.

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

Poziomy wymagań Konieczny K Podstawowy- P Rozszerzający- R Dopełniający- D Uczeń: - zna rodzaje sieci - zna topologie sieciowe sieci

Automatyczne testowanie infrastruktury pod kątem bezpieczeństwa. Leszek Miś IT Security Architect RHCA,RHCSS,Sec+ Linux Polska Sp. z o.o.

Działanie systemu operacyjnego

Wojciech Dworakowski. Zabezpieczanie aplikacji. Firewalle aplikacyjne - internetowych

Sieci komputerowe : zbuduj swoją własną sieć - to naprawdę proste! / Witold Wrotek. wyd. 2. Gliwice, cop Spis treści

Dział Dopuszczający Dostateczny Dobry Bardzo dobry Celujący

DZIEŃ BEZPIECZNEGO KOMPUTERA

ICD Wprowadzenie. Wprowadzenie. Czym jest In-Circuit Debugger? 2. O poradniku 3. Gdzie szukać dodatkowych informacji? 4

Monitorowanie i zarządzanie urządzeniami sieciowymi przy pomocy narzędzi Net-SNMP

Plan na dziś. Co to jest wirus komputerowy? Podział wirusów komputerowych Jak działają wirus komputerowe? Jak zabezpieczyć się przed wirusami?

"Klasyczna" struktura systemu operacyjnego:

Warstwy systemu Windows 2000

Ćwiczenie Nr 7 Instalacja oraz konfiguracja wskazanego systemu operacyjnego

Działanie systemu operacyjnego

Efektywne zarządzanie infrastrukturą IT, inwentaryzacja sprzętu i oprogramowania oraz ochrona danych przed wyciekiem dzięki wdrożeniu Axence nvesion

Struktura systemu operacyjnego. Opracował: mgr Marek Kwiatkowski

VMware, QEMU, UML. oraz inne wirtualne maszyny. Piotr Findeisen Filip Grządkowski Piotr Kuśka Krzysztof Mroczek

Malware przegląd zagrożeń i środków zaradczych

Produkty. MKS Produkty

Test z systemów operacyjnych

Systemy operacyjne semestr I

Tworzenie sterowników dla FreeBSD. Michał Hajduk

Programowanie Systemów Wbudowanych

Win Admin Replikator Instrukcja Obsługi

WWQ. Wakacyjne Warsztaty QNAP. Zaczynamy o 11:00. Prowadzący: Łukasz Milic Certyfikowany Trener QNAP

Audyt zasobów sprzętowych i systemowych (za pomocą dostępnych apletów Windows oraz narzędzi specjalnych)

Wykład 6: Bezpieczeństwo w sieci. A. Kisiel, Bezpieczeństwo w sieci

Wykład 2: Budowanie sieci lokalnych. A. Kisiel, Budowanie sieci lokalnych

Mechanizmy pracy równoległej. Jarosław Kuchta

Program szkolenia KURS SPD i PD Administrator szkolnej pracowni internetowej Kurs MD1 Kurs MD2 Kurs MD3 (dla szkół ponadgimnazjalnych)

W poprzednim odcinku poznaliśmy: W poprzednim odcinku, cd.: W dzisiejszym odcinku. Apache serwer WWW (część 2)

S Z K O Ł A H A K E R Ó W

Apache serwer WWW (część 2) Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

WINDOWS Instalacja serwera WWW na systemie Windows XP, 7, 8.

Szkolenie autoryzowane. MS Administracja i obsługa Windows 7. Strona szkolenia Terminy szkolenia Rejestracja na szkolenie Promocje

U M L. System operacyjny Linux zagnieżdżony w zewnętrznym systemie operacyjnym (Linux)

Przepełnienie bufora. SQL Injection Załączenie zewnętrznego kodu XSS. Nabycie uprawnień innego użytkownika/klienta/administratora

Opis administracji terminali ABA-X3 v.1.5.0

Działanie systemu operacyjnego

Narzędzia klienta usługi archiwizacji

Testing hardware Paweł Noga

Systemy operacyjne oparte na mikrojądrze na przykładzie Minix3. Maciej Łaszcz, Wojciech Łowiec, Patryk Spanily 2 XII 2008

Przegląd technik wirtualizacji i separacji w nowoczesnych systemach rodziny UNIX

Przegląd technik wirtualizacji i separacji w nowoczesnych systemach rodziny UNIX

Szkoła Hakerów Interaktywny zestaw edukacyjny

Zagrożenia mobilne w maju

Metodologia ochrony informacji w systemach klasy desktop oraz na urządzeniach przenośnych

SELinux. SELinux Security Enhanced Linux. czyli. Linux o podwyższonym bezpieczeństwie

Bezpieczeństwo Komunikatorów

LEKCJA 2. Szukaj dziury w całym: debugowanie

Projekt TrustedBSD jako klucz do bezpieczeństwa systemu FreeBSD

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)

Necurs analiza malware (1)

Administracja bazami danych

Uniwersytet Mikołaja Kopernika. Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej

Paweł Skrobanek. C-3, pok pawel.skrobanek.staff.iiar.pwr.wroc.pl

Zabezpieczanie platformy Windows Server 2003

Bezpieczeństwo systemów informatycznych

Netia Mobile Secure Netia Backup

Bezpieczeństwo systemów i lokalnej sieci komputerowej

Temat. Budowa systemu komputerowego Zakładka 1. Elementy tworzące stanowisko komputerowe.

Systemy operacyjne. Informatyka Stosowana, I rok. Krzysztof Wilk. Katedra Informatyki Stosowanej i Modelowania

Linux -- u mnie działa!

Architektura i administracja systemów operacyjnych

Bezpieczeństwo w sieci Internet Rodzaje złośliwego oprogramowania

Live Forensics. II Ogólnopolska Konferencja Informatyki Śledczej. Przemysław Krejza, EnCE, ACE

Win Admin Replikator Instrukcja Obsługi

Transkrypt:

Linux vs rootkits - Adam 'pi3' Zabrocki

/usr/bin/whoami ADAM ZABROCKI

/usr/bin/whoami ADAM ZABROCKI

/usr/bin/whoami ADAM ZABROCKI http://pi3.com.pl pi3@itsec.pl (lub oficjalnie adam.zabrocki@wcss.pl)

Plan prezentacji: Wstęp (wirus / malware / rootkit) Współczesne rootkit'y w skrócie Rootkity: User Space Kernel Space LKM Non-LKM Debug Register Rootkit Black Market...

Wstęp: Wirus komputerowy: 1970/71 Creeper (TeneX OS) DEC PDP

Wstęp: Wirus komputerowy: 1970/71 Creeper (TeneX OS) DEC PDP Powielanie się... MUSI mieć nosiciela Słabość systemów...... bądź beztroskę użytkowników

Wstęp: Robak komputerowy: 2 listopada 1988 - pogromca UNIX'ów

Wstęp: Robak komputerowy: 2 listopada 1988 - pogromca UNIX'ów Samoreplikujący się! Zazwyczaj wirus + dodatki (backdoor, koń trojański, itp.)

Wstęp: Rootkit: User root + narzędzia kit = rootkit

Wstęp: Rootkit: User root + narzędzia kit = rootkit Ukrywa procesy Ukrywa pliki Ukrywa połączenia sieciowe Backdoor (Key/Traffic/*) Logger Ukrywa siebie...

Teoria vs praktyka

Rootkit'y dzisiaj Wirus + Trojan + Rootkit + Malware połączone w jedność => potocznie zwane malware

Rootkit'y:

Rootkit'y: User Space rootkits: Ukrywa procesy Ukrywa pliki Ukrywa połączenia sieciowe Backdoor (Key/Traffic/*) Logger Ukrywa siebie...

Rootkit'y: User Space rootkits: Ukrywa procesy (ps/... ) Ukrywa pliki Ukrywa połączenia sieciowe Backdoor (Key/Traffic/*) Logger Ukrywa siebie...

Rootkit'y: User Space rootkits: Ukrywa procesy (ps/... ) Ukrywa pliki (ls/dir/...) Ukrywa połączenia sieciowe Backdoor (Key/Traffic/*) Logger Ukrywa siebie...

Rootkit'y: User Space rootkits: Ukrywa procesy (ps/... ) Ukrywa pliki (ls/dir/...) Ukrywa połączenia sieciowe (netstat/...) Backdoor (Key/Traffic/*) Logger Ukrywa siebie...

Rootkit'y: User Space rootkits: Ukrywa procesy (ps/... ) Ukrywa pliki (ls/dir/...) Ukrywa połączenia sieciowe (netstat/...) Backdoor (ssh[d]/ftp/...) (Key/Traffic/*) Logger Ukrywa siebie...

User Space Rootkits: Zalety: Prostota

User Space Rootkits: Zalety: Prostota Bezpieczeństwo

User Space Rootkits: Zalety: Prostota Bezpieczeństwo Stabilność

User Space Rootkits: Zalety: Prostota Bezpieczeństwo Stabilność Przenośność

User Space Rootkits: Wady: Bardzo proste do wykrycia (checksum/'czyste' narzędzia/...)

User Space Rootkits: Wady: Bardzo proste do wykrycia (checksum/'czyste' narzędzia/...) Wiele programów

User Space Rootkits: Wady: Bardzo proste do wykrycia (checksum/'czyste' narzędzia/...) Wiele programów Upgrade może zabić

User Space Rootkits: Wady: Bardzo proste do wykrycia (checksum/'czyste' narzędzia/...) Wiele programów Upgrade może zabić Mało edukacyjne ;)

Kernel Space Rootkits: Analiza wywołania systemowego na przykładzie serwera Apache...

Loadable Kernel Module Rootkits:

Loadable Kernel Module Rootkits:

Loadable Kernel Module Rootkits:... ale: Od wersji 2.6.24 >= sys_call_table RO

Loadable Kernel Module Rootkits:... ale: Od wersji 2.6.24 >= sys_call_table RO... więc zmieniamy atrybut strony na RW

Loadable Kernel Module Rootkits:... ale: Od wersji 2.6.24 >= sys_call_table RO... więc zmieniamy atrybut strony na RW Od wersji 2.6.27.8 >= zmieniony mechanizm zmiany atrybutów strony ;)

Loadable Kernel Module Rootkits:... ale: Od wersji 2.6.24 >= sys_call_table RO... więc zmieniamy atrybut strony na RW Od wersji 2.6.27.8 >= zmieniony mechanizm zmiany atrybutów strony ;) Nadal da się to zrobić, ale to bardzo kłopotliwe

Loadable Kernel Module Rootkits:... ale: Od wersji 2.6.24 >= sys_call_table RO... więc zmieniamy atrybut strony na RW Od wersji 2.6.27.8 >= zmieniony mechanizm zmiany atrybutów strony ;) Nadal da się to zrobić, ale to bardzo kłopotliwe Można sobie życie uprościć...

Loadable Kernel Module Rootkits:

Loadable Kernel Module Rootkits:

Loadable Kernel Module Rootkits: Co złego zrobiliśmy? Adres wejścia do sys_call_table

Loadable Kernel Module Rootkits: Co złego zrobiliśmy? Adres wejścia do sys_call_table OMG! Kontrolujemy wszystkie wywołania systemowe

Loadable Kernel Module Rootkits: Co złego zrobiliśmy? Adres wejścia do sys_call_table OMG! Kontrolujemy wszystkie wywołania systemowe... wystarczy dobrze zaprojektować własną sys_call_table ;)

Loadable Kernel Module rootkits podsumowanie: Zalety: Modyfikujemy TYLKO kernel

Loadable Kernel Module rootkits podsumowanie: Zalety: Modyfikujemy TYLKO kernel Jesteśmy ograniczeni tylko wyobraźnią... i wiedzą (zawsze 'coś' się znajdzie ;))

Loadable Kernel Module rootkits podsumowanie: Zalety: Modyfikujemy TYLKO kernel Jesteśmy ograniczeni tylko wyobraźnią... i wiedzą (zawsze 'coś' się znajdzie ;)) Wady: Łatwo zniszczyć system

Loadable Kernel Module rootkits podsumowanie: Zalety: Modyfikujemy TYLKO kernel Jesteśmy ograniczeni tylko wyobraźnią... i wiedzą (zawsze 'coś' się znajdzie ;)) Wady: Łatwo zniszczyć system Mały błąd może zaburzyć działanie aplikacji

Loadable Kernel Module rootkits podsumowanie: Zalety: Modyfikujemy TYLKO kernel Jesteśmy ograniczeni tylko wyobraźnią... i wiedzą (zawsze 'coś' się znajdzie ;)) Wady: Łatwo zniszczyć system Mały błąd może zaburzyć działanie aplikacji Słaby projekt backdoora może skutkować wywołaniem w nieodpowiednim momencie

Non LKM Rootkits: Czemu?

Non LKM Rootkits: Czemu? Co zyskujemy?

Non LKM Rootkits:

Non LKM Rootkits: Czemu? Co zyskujemy? Jak działają? /dev/[k]mem

Non LKM Rootkits: Czemu? Co zyskujemy? Jak działają? /dev/[k]mem Statyczne łatanie jądra (vmlinuz)

Non LKM Rootkits: Czemu? Co zyskujemy? Jak działają? /dev/[k]mem Statyczne łatanie jądra (vmlinuz) Bootkit'y (np. Grub)

Non LKM Rootkits: Czemu? Co zyskujemy? Jak działają? /dev/[k]mem Statyczne łatanie jądra (vmlinuz) Bootkit'y (np. Grub) BIOS rootkit

Zalety: Non LKM Rootkits: Bardzo ciężkie do wykrycia Funkcjonalność taka sama jak w przypadku LKM Wady: Trzeba pomyśleć co po restarcie ;) Zmiana kernel'a może być krytyczna dla rootkit'a Nieprzenośne i trudne w pisaniu

Wykrywanie?

Wykrywanie? No właśnie jak? Porównywanie adresów Porównywanie wyników Każdy rootkit ma swoją własną charakterystykę

Wykrywanie? No właśnie jak? Porównywanie adresów Porównywanie wyników Każdy rootkit ma swoją własną charakterystykę Protekcja?: Monitorowanie modułów Nowe jądra zabraniają pisania do /dev/ [k]mem Backup adresów i monitorowanie pamięci ;)

Co dalej? Problemy: Problemy z podmianą sys_call_table Jądro ochrania sys_call_table Moduły łatwo wykryć i się zabezpieczyć Brak możliwości pisania do /dev/ [k]mem 'vmlinuz' prosto monitorować

Debug Register Rootkit!

Debug Register Rootkit! Debugować można software'owo...

Debug Register Rootkit! Debugować można software'owo...... ale architektura x86 ma wsparcie sprzętowe

Debug Register Rootkit! Debugować można software'owo...... ale architektura x86 ma wsparcie sprzętowe Rejestry DR*: DR[0..3] breakpoint DR6 modyfikowany w czasie wystąpienia breakpoint'a DR7 konfigurowanie kiedy ma być wywołane przerwanie

Debug Register Rootkit! Co możemy zrobić? Breakpoint na system_call i sysetner_entry

Debug Register Rootkit! Co możemy zrobić? Breakpoint na system_call i sysetner_entry Wygenerowanie przerwania 1

Debug Register Rootkit! Co możemy zrobić? Breakpoint na system_call i sysetner_entry Wygenerowanie przerwania 1 Wpis w IDT wskazuje na funkcję do_debug... podmieńmy ją!

Debug Register Rootkit! Co możemy zrobić? Breakpoint na system_call i sysetner_entry Wygenerowanie przerwania 1 Wpis w IDT wskazuje na funkcje do_debug... podmieńmy ją! OMG! Znowu przejęliśmy kontrolę nad wszystkimi przerwaniami ;)

Debug Register Rootkit! Zalety: Bardzo cichy Bardzo trudny do wykrycia Cały czas jesteśmy w przestrzeni jądra ;)

Debug Register Rootkit! Zalety: Bardzo cichy Bardzo trudny do wykrycia Cały czas jesteśmy w przestrzeni jądra ;) Wady: Zaawansowany i trudny do napisania Działa TYLKO na archiktekturze x86

Debug Register Rootkit! Jak wykryć? Monitorować rejestry procesora DR*...

Debug Register Rootkit! Jak wykryć? Monitorować rejestry procesora DR*... Konkluzja... ktoś ma prawa root?

Debug Register Rootkit! Jak wykryć? Monitorować rejestry procesora DR*... Konkluzja... ktoś ma prawa root? GAME OVER!!!

Black Market...

Black Market...

Black Market...

PHALANX!!! Black Market...

PHALANX!!! Black Market...

Black Market... PHALANX!!! - charakterystyka: Oficjalnie nie istnieje

Black Market... PHALANX!!! - charakterystyka: Oficjalnie nie istnieje Dostępne źródła są dla wersji phalanx 1 beta 6 (z roku 2005)

PHALANX!!! - charakterystyka: Oficjalnie nie istnieje Dostępne źródła są dla wersji phalanx 1 beta 6 (z roku 2005) Black Market... Świat dowiedział się o ciągłym rozwijaniu rookita w 2008 automat do zabijania SSH keys

PHALANX!!! - charakterystyka: Oficjalnie nie istnieje Dostępne źródła są dla wersji phalanx 1 beta 6 (z roku 2005) Black Market... Świat dowiedział się o ciągłym rozwijaniu rookita w 2008 automat do zabijania SSH keys Podobno 2.4 jest ostatnim wypustem...

PHALANX!!! - charakterystyka: Oficjalnie nie istnieje Dostępne źródła są dla wersji phalanx 1 beta 6 (z roku 2005) Black Market... Świat dowiedział się o ciągłym rozwijaniu rookita w 2008 automat do zabijania SSH keys Podobno 2.4 jest ostatnim wypustem... a ostatnią wersją którą analizowałem była 2.5e ;)

Black Market... PHALANX!!! - charakterystyka: Własny protokół komunikacji

Black Market... PHALANX!!! - charakterystyka: Własny protokół komunikacji Co najmniej podwójne szyfrowanie

Black Market... PHALANX!!! - charakterystyka: Własny protokół komunikacji Co najmniej podwójne szyfrowanie Omija restrykcje związane z urządzeniem /dev/ [k]mem

Black Market... PHALANX!!! - charakterystyka: Własny protokół komunikacji Co najmniej podwójne szyfrowanie Omija restrykcje związane z urządzeniem /dev/ [k]mem Przejmuje prawie wszystkie wywołania systemowe oraz uchwyty sygnałów

Black Market... PHALANX!!! - charakterystyka: Własny protokół komunikacji Co najmniej podwójne szyfrowanie Omija restrykcje związane z urządzeniem /dev/ [k]mem Przejmuje prawie wszystkie wywołania systemowe oraz uchwyty sygnałów Doskonale się ukrywa

Black Market... PHALANX!!! - charakterystyka: Własny protokół komunikacji Co najmniej podwójne szyfrowanie Omija restrykcje związane z urządzeniem /dev/ [k]mem Przejmuje prawie wszystkie wywołania systemowe oraz uchwyty sygnałów Doskonale się ukrywa Ma opcję 'uninstall' ;)...

Black Market... PHALANX!!! - charakterystyka: Własny protokół komunikacji Co najmniej podwójne szyfrowanie Omija restrykcje związane z urządzeniem /dev/ [k]mem Przejmuje prawie wszystkie wywołania systemowe oraz uchwyty sygnałów Doskonale się ukrywa Ma opcję 'uninstall' ;)... ale nie usuwa ona rootkit'a całkowicie!!!

PHALANX!!! - charakterystyka: Ma błędy ;p Black Market...

PHALANX!!! - charakterystyka: Ma błędy ;p Black Market... Można wykryć rootkit'a prosty błąd = czas do załatania

PHALANX!!! - charakterystyka: Ma błędy ;p Black Market... Można wykryć rootkit'a prosty błąd = czas do załatania Ma remote stack overflowa pre-auth ;)

PHALANX!!! - charakterystyka: Ma błędy ;p Można wykryć rootkit'a prosty błąd = czas do załatania Ma remote stack overflowa pre-auth ;) Black Market... Możliwość zdalnego wykrycia zainfekowanych maszyn

PHALANX!!! - charakterystyka: Ma błędy ;p Black Market... Można wykryć rootkit'a prosty błąd = czas do załatania Ma remote stack overflowa pre-auth ;) Możliwość zdalnego wykrycia zainfekowanych maszyn Możliwość napisania remote exploita na zainfekowane maszyny ;)

Black Market... Upgrade Debug Register Rootkit: Break point na samego siebie naprawdę trudny do wykrycia! ;)

?

DZIĘKUJĘ ZA UWAGĘ!