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)

Linux -- u mnie działa!

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.

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

Linux Contextualization

Tworzenie bezpiecznego środowiska kont shellowych

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

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

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

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

Zmiana sposobu dostarczania aplikacji wspierających funkcje państwa

Wprowadzenie do systemów operacyjnych

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

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

Jądro systemu operacyjnego

Mariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.1

Wirtualizacja. Piotr Sikora Tomasz Ziółkowski

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

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

4. Procesy pojęcia podstawowe

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

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

Programowanie MorphX Ax

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

4. Procesy pojęcia podstawowe

Sieciowe Systemy Operacyjne

Audytowane obszary IT

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

Prezentacja systemu RTLinux

Wstęp do Informatyki. Klasyfikacja oprogramowania

Znak sprawy: KZp

(Pluggable Authentication Modules). Wyjaśnienie technologii.

Koncepcja wirtualnej pracowni GIS w oparciu o oprogramowanie open source

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

System wspomagania zarządzania wirtualizacją

Struktura systemu operacyjnego. Opracował: mgr Marek Kwiatkowski

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

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

System operacyjny MACH

EXSO-CORE - specyfikacja

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

Bezpieczeństwo systemów komputerowych

4. Procesy pojęcia podstawowe

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

"Klasyczna" struktura systemu operacyjnego:

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

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

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

1. Etapy rozwoju systemów komputerowych

Win Admin Replikator Instrukcja Obsługi

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

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

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

Virtual Grid Resource Management System with Virtualization Technology

Procesowa specyfikacja systemów IT

1.1 Definicja procesu

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

SECURE /10/2006. Błażej Miga, PCSS Jaroslaw Sajko, PCSS

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

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

Systemy Operacyjne Wirtualizacja

Wirtualizacja. Metody, zastosowania, przykłady

Spis treści. O autorze 13 Przedmowa 15 Wprowadzenie 17

Tworzenie i obsługa wirtualnego laboratorium komputerowego

Elastyczna sieć dla rozwiązań Cloud Open vswitch

Kernel Kompilacja jądra

Aktualny stan i plany rozwojowe

router wielu sieci pakietów

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

Wirtualizacja zasobów IPv6 w projekcie IIP

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

Nowe produkty w ofercie Red Hat

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

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

BSD alternatywa dla Linuksa. (na przykładzie FreeBSD)

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

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

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

ZARZĄDZANIE WYMAGANIAMI ARCHITEKTONICZNYMI

Podstawy programowania. Wprowadzenie

Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI

Internetowe BD P.Skrobanek 1. INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład IV. Paweł Skrobanek PLAN NA DZIŚ :

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

Serwery. Autorzy: Karol Czosnowski Mateusz Kaźmierczak

Administrowanie systemami informatycznymi Kod przedmiotu

Technologia Automatyczne zapobieganie exploitom

Zespół: Agata Chrobak Kornel Jakubczyk Tomek Klukowski Przemek Kosiak. Projekt SZOP Plan testów

Transkrypt:

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

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 wirtualizacji Podsumowanie

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 WWW, wiedzy dotyczącej ataków z wykorzystaniem technik typu buffer overflow, format-string, XSS, injection..

Sytuacje najczęstsze: Dostęp do bazy danych/plików/katalogów poprzez skrypty PHP z rozszerzeniami: skrypt odbiera wartość od użytkownika i bez uprzedniej walidacji wykorzystuje je kontynują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óba ataku na konkretną implementacje: aplikacji systemowej: poprzez audyt, analizę działania, eksperymenty biblioteki: podatne stają się wszystkie programy zlinkowane 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 itd). atak na pojedynczą usługę powoduje (pośrednie) zagrożenie innych usług: local/remote DoS

Możliwe rozwiązania: znalezienie bezpiecznych zamienników popularnych usług audyt niebezpiecznych aplikacji separacja oprogramowania

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

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

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

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

Możliwe strategie: selektywne udostępnianie kluczowej funkcjonalności dodatkowe werstwy bezpieczeństwa (TrustedBSD, SELinux, Trusted{IRIX,Solaris}) duplikacja krytycznych obiektów autonomiczne środowisko w głównym systemie: zminimalizowana interakcja z systemem głównym wirtualna maszyna: pełna emulacja maszyny

FreeBSD - jail(): Limitowanie systemu plików (wewnętrznie korzysta z chroot()) limitowanie w warstwie procesów: ograniczone 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")

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

Rozbudowane możliwości dodatkowej kontroli: systemy posiadające wsparcie dla szczegółowej kontroli: TrustedBSD SEDarwin SELinux Komercyjne systemy typu -Trusted (Solaris, IRIX)

Wirtualna maszyna: emulacja działającego komputera emulatory (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 Alpine

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 PCI/ISA, rozpoznawanie sprzętu) 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