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



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

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

Projekt TrustedBSD jako klucz do bezpieczeństwa systemu FreeBSD

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

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

Q E M U.

Monitor maszyn wirtualnych

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

Linux -- u mnie działa!

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

Linux Contextualization

Zagrożenia związane z udostępnianiem aplikacji w sieci Internet

Zmiana sposobu dostarczania aplikacji wspierających funkcje państwa

Wirtualizacja. Piotr Sikora Tomasz Ziółkowski

OWASP OWASP. The OWASP Foundation Cross-Site Scripting. Ryzyko do zaakceptowania? Warszawa, 27 stycznia 2011 Michał Kurek

Tworzenie bezpiecznego środowiska kont shellowych

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

Jądro systemu operacyjnego

Mariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.1

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Warstwy systemu Windows 2000

Wirtualizacja. Przegla d wybranych technik. Magda Michalska Krzysztof Kulewski Andrzej Pacuk. Systemy operacyjne 2006

System wspomagania zarządzania wirtualizacją

Wirtualizacje. Opracowali: Piotr Dąbrowiecki Jakub Gołębiowski Winicjusz Szyszka

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

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

Wprowadzenie do systemów operacyjnych

QEMU działa na procesorach procesorach: emuluje procesory: dostępne dla s.o. hosta:

Struktura systemu operacyjnego. Opracował: mgr Marek Kwiatkowski

Programowanie MorphX Ax

Opis efektów kształcenia dla modułu zajęć

WIRTUALIZACJA. Kamil Frydel, Julia Romanowska, Maciej Sokołowski. 12 listopada 2007 WIRTUALIZACJA. Kamil Frydel, Julia Romanowska, Maciej Sokołowski

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

Sieciowe Systemy Operacyjne

Prezentacja systemu RTLinux

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

"Klasyczna" struktura systemu operacyjnego:

(Pluggable Authentication Modules). Wyjaśnienie technologii.

4. Procesy pojęcia podstawowe

Wstęp do Informatyki. Klasyfikacja oprogramowania

router wielu sieci pakietów

INFORMACJA O TREŚCI ZAPYTAŃ DOTYCZĄCYCH SIWZ WRAZ Z WYJAŚNIENIAMI ZAMAWIAJĄCEGO

Zaawansowane programowanie w języku C++ Zarządzanie pamięcią w C++

System operacyjny MACH

EXSO-CORE - specyfikacja

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

4. Procesy pojęcia podstawowe

Virtual Grid Resource Management System with Virtualization Technology

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

SYSTEMY OPERACYJNE. kik.pcz.czest.pl/so. (C) KIK PCz Materiały pomocnicze 1 PROWADZI: PODSTAWOWA LITERATURA: ZAJĘCIA: STRONA

1.1 Definicja procesu

1. Etapy rozwoju systemów komputerowych

Bezpieczeństwo systemów komputerowych

Firma Informatyczna ASDER. Prezentacja. Centrum zarządzania. Przemysław Kroczak ASDER

Znak sprawy: KZp

Wirtualizacja. Metody, zastosowania, przykłady

Zwiększanie bezpieczeństwa usług sieciowych poprzez wirtualizację systemu operacyjnego

3 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.06 Rok akad. 2011/ / 22

Historia modeli programowania

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;

Podstawowe zagadnienia

WYKŁAD 3 Jądro systemu i procesy. Marcin Tomana Wyższa Szkoła Informatyki i Zarządzania

KOŁO NAUKOWE INFORMATYKÓW SYSTEMY KONTROLI WERSJI CZ.1 16 XII 2009 OPRACOWAŁ: PRZEMYSŁAW PARDEL

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

4. Procesy pojęcia podstawowe

Procesowa specyfikacja systemów IT

WIRTUALIZACJA teoria i praktyka. Oskar Skibski, Piotr Sikora, Mateusz Kruszyński

Netgraph w systemie FreeBSD. Wojciech A. Koszek MeetBSD 2005 Kraków

ZARZĄDZANIE WYMAGANIAMI ARCHITEKTONICZNYMI

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

Usługa: Audyt kodu źródłowego

Organizacja i struktura projektu FreeBSD. Wojciech A. Koszek wkoszek@freebsd.org Częstochowa,

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

Serwery. Autorzy: Karol Czosnowski Mateusz Kaźmierczak

Aplikacje webowe w obliczu ataków internetowych na przykładzie CodeIgniter Framework

OFERTA DLA MIAST, GMIN, INSTYTUCJI FINANSOWYCH I PODMIOTÓW KOMERCYJNYCH DOTYCZĄCA ZAGADNIEŃ ZWIĄZANYCH Z CYBERBEZPIECZEŃSTWEM

Koncepcja wirtualnej pracowni GIS w oparciu o oprogramowanie open source

Secure Development Lifecycle w chmurze w modelu public i. Aleksander P. Czarnowski AVET Information and Network Security Sp z o.o.

Wykład Ćwiczenia Laboratorium Projekt Seminarium

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego. Opis oferowanego przedmiotu zamówienia

Audytowane obszary IT

Kernel Kompilacja jądra

Systemy Operacyjne Wirtualizacja

TeleDICOM II system telekonsultacyjny nowej generacji

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Międzyplatformowy interfejs systemu FOLANessus wykonany przy użyciu biblioteki Qt4

Przygotowanie do nowoczesnego programowania po stronie przeglądarki. (HTML5, CSS3, JS, wzorce, architektura, narzędzia)

Hosting WWW Bezpieczeństwo hostingu WWW. Dr Michał Tanaś (

Wirtualizacja zasobów IPv6 w projekcie IIP

Wprowadzenie do sieciowych systemów operacyjnych. Moduł 1

Web Application Firewall - potrzeba, rozwiązania, kryteria ewaluacji.

Szybki start instalacji SUSE Linux Enterprise Server 11 SP1

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński

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

Nowe produkty w ofercie Red Hat

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016

Niezawodne usługi outsourcingowe na przykładzie usług kampusowych i Krajowego Magazynu Danych w sieci PIONIER

Win Admin Replikator Instrukcja Obsługi

Transkrypt:

Przegląd technik wirtualizacji i separacji w nowoczesnych systemach rodziny UNIX Wojciech A. Koszek dunstan@freebsd.czest.pl IX Liceum Ogólnokształcące im. C.K. Norwida w Częstochowie Krajowy Fundusz na Rzecz Dzieci CONFidence 2005 Kraków, 15-16.10.2005

Plan prezentacji: (bardzo) krótkie omówienie zagrożeń związanych z oprogramowaniem Przedstawienie potencjalnych dróg włamania obraz sytuacji włamania z punktu widzenia systemu operacyjnego i aplikacji wprowadzenie do metod separacji niebezpiecznego oprogramowania omówienie technik separacji i wirtualizacji

Zagrożenia związane z oprogramowaniem: ataki wykorzystujące szczególne aspekty uruchamiania kodu na danej architekturze zaufanie uruchamianej aplikacji do danych niezależnych od początkowych założeń (protokoły, interfejsy, wszelkie aspekty komunikacji systemowej) popularyzacja wiedzy dotyczącej ataków z wykorzystaniem technik typu buffer overflow, format-string, race condition, XSS, SQL/HTML injection..

Sytuacje najczęstsze: Dostęp do bazy danych/plików/katalogów poprzez skrypty CGI: skrypt odbiera wartość od użytkownika i bez uprzedniej walidacji wykorzystuje je kontynuując typowe działanie możliwość przekazania dodatkowych ciągów "../",./", * może prowadzić do ciekawych rezultatów skrypty stworzone przez pomysłowych programistów mogą uruchamiać dodatkowe programy (shell/perl) korzystając z przekazanych argumentów Próby wykorzystywania znanych luk w oprogramowaniu (zarówno na aplikacje internetowe jak i systemowe)

Sytuacje rzadsze: próby ataku na konkretną implementację: aplikacji systemowej: poprzez audyt, analizę działania, eksperymenty biblioteki: podatne stają się wszystkie programy linkowane z biblioteką systemu: interfejsy komunikacji z aplikacją, jądrem systemu, usługami zdalnymi protokołu Ograniczeniem jest jedynie wiedza atakującego.

Cechy wspomnianych ataków: wszystkie usługi koegzystują korzystając z zasobów głównej maszyny: system plików pamięć dostęp do procesora wszystkie współdzielą obiekty systemu operacyjnego (deskryptory plików, procesy, parametry systemu..) atak na pojedynczą usługę powoduje zagrożenie innych usług i maszyny

Możliwe rozwiązania: znalezienie bezpiecznych zamienników popularnych usług audyt niebezpiecznych aplikacji zminimalizowanie ryzyka w przypadku wykorzystania luk w oprogramowaniu separacja wirtualizacja

Separacja - osobne środowisko dla aplikacji: pliki binarne pliki danych biblioteki dzielone struktura katalogów pliki specjalne (/proc/*, /dev/*)

Odseparowanie aplikacji od głównego systemu: atak na odseparowany demon daje dostęp do limitowanego środowiska w razie udanego ataku: usunięte zostają jedynie kopie plików potrzebnych aplikacji do działania włamywacz z "osobnym" UID!= 0 ma utrudnione zadanie

Problemy dotyczące separacji: wymagane wsparcie od strony systemu operacyjnego konieczność duplikacji zasobów kopie procesów system plików: rozwiązania poprzez NULLFS i alternatywy utrzymywanie aktualności oprogramowania jest utrudnione

Separacja kiedyś: chroot() limitowanie widoczności systemu plików brak separacji w warstwie procesów brak dodatkowych limitów obejmujących zasoby systemowe

Obecne zapotrzebowanie: selektywne udostępnianie kluczowej funkcjonalności dodatkowe warstwy bezpieczeństwa zintegrowane z systemem operacyjnym duplikacja krytycznych obiektów autonomiczne środowisko: zminimalizowana interakcja z systemem głównym wirtualna maszyna: pełna emulacja maszyny

FreeBSD - jail(): limitowanie systemu plików (mechanizm podobny do chroot()) limitowanie w warstwie procesów: ograniczony zakres widoczności procesów i IPC system przystosowany do zarządzania instancjami oprogramowania

Solaris: Zones zintegrowane środowisko do konfiguracji (zonecfg): dziedziczenie katalogów z głównego systemu plików możliwość konfiguracji poszczególnych, odseparowanych środowisk do niedawna problemy z bootowaniem na x86 ("newboot")

Rozbudowane mechanizmy bezpieczeństwa: systemy posiadające wsparcie dla obowiązkowej kontroli (MAC): TrustedBSD SEDarwin SELinux (i wiele innych) Komercyjne systemy typu Trusted (Solaris, IRIX)

Wymienione mechanizmy nie działają gdy dochodzi do ataków: na kod odpowiedzialny za ich implementacje na główny system operacyjny wykorzystujących luki w odseparowanych zasobach

Wirtualna maszyna: emulacja działającego komputera Emulatory Bochs Plex86 - prawdopodobnie pierwszy raz wykorzystano w nich PVI architektury x86) statyczne przepisywanie instrukcji wstawienie instrukcji niezdefiniowanych i wychwytywanie ich poprzez mechanizm Ptrace - uruchamianie BSD w user-space

Xen: innowacyjne podejście do technologii wirtualizacji: zmiana kontekstu wirtualizacji - już nie proces, ale cały system co jest potrzebne systemowi do działania (obsługa pułapek, przerwań, wyjątków, przełączanie kontekstu procesów/zachowywanie rejestrów, wsparcie dla SMP, detekcja sprzętu, obsługa PCI/ISA) normalnie wywołania BIOSu, int 0xXY - w Xen'ie - wołania do HYPERVISOR'a, nadrzędnej architektury odpowiedzialnej za dostęp do fizycznych zasobów maszyny konieczność przepisania niskopoziomowej warstwy systemu. Wady: obecnie jedynie x86.

Xen.. cd: Domena 0/X w dla Linux, NetBSD Domeny X dla FreeBSD (problemy w wersji -unstable, domena 0 koncentrowana wokół Linux) Eksperymentalne wsparcie dla Solaris

Referencje: FreeBSD http://www.freebsd.org/ http://www.trustedbsd.org SELinux http://www.nsa.gov/selinux/ Solaris http://blogs.sun.com/{comay,dp,jbeck,menno,jclingan}

Dziękuję za uwagę http://security.proidea.org.pl/