Hosting WWW Bezpieczeństwo hostingu WWW. Dr Michał Tanaś (http://www.amu.edu.pl/~mtanas)

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

Systemy Operacyjne Wirtualizacja

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

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

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

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

Wirtualizacja. Piotr Sikora Tomasz Ziółkowski

System wspomagania zarządzania wirtualizacją

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

Monitor maszyn wirtualnych

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

Czym jest wirtualizacja

LPAR - logiczne partycjonowanie systemów

Linux -- u mnie działa!

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

Q E M U.

Grzegorz Jaśkiewicz Dariusz Stefański

pasja-informatyki.pl

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

VMware. Prezentacja na Systemy Operacyjne

Architektura komputerów

Wykorzystanie wirtualizacji w kluczowych scenariuszach data-center

Struktury systemów operacyjnych

CyberGuru Wirtualizacja na platformie Hyper-V w pigułce. Prezentuje: Kamil Frankowicz

Wirtualizacja. Metody, zastosowania, przykłady

Wirtualizacja. czyli trochę co innego niż rzeczy do tej pory omawiane

Wykorzystanie wirtualizacji w kluczowych scenariuszach data-center

Konwersja maszyny fizycznej na wirtualną

Zarządzanie pamięcią w systemie operacyjnym

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

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

Wstęp do Informatyki. Klasyfikacja oprogramowania

Virtual Grid Resource Management System with Virtualization Technology

Podstawy informatyki. System operacyjny. dr inż. Adam Klimowicz

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

RDZEŃ x86 x86 rodzina architektur (modeli programowych) procesorów firmy Intel, należących do kategorii CISC, stosowana w komputerach PC,

INSTRUKCJA I WSKAZÓWKI

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

Systemy operacyjne III

Konwersja maszyny fizycznej na wirtualną.

ROBERT LIS. Wirtualizacja edukacyjnych zasobów IT. Virtualization of IT education

Linux KVM - wparcie dla wirtualizacji w kontekście serwerów ARM

Systemy operacyjne i sieci komputerowe Szymon Wilk System operacyjny 1

Wirtualizacja w praktyce.

Warstwy systemu Windows 2000

Wirtualizacja. Paweł Mantur Artur Mączka Tomasz Niedabylski

Materiały pomocnicze do laboratorium z Architektury Komputerów II.

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

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

Działanie komputera i sieci komputerowej.

Wprowadzenie do systemów operacyjnych

RHEL 5 wpływ wirtualizacji na koszty

Szkolenie operatorów Wirtualnego Serwera Egzaminacyjnego 14 Grudnia Prowadzący: Bartłomiej Boryń Robert Michalski

Działanie systemu operacyjnego

Dni: 5. Opis: Adresaci szkolenia

Wirtualizacja: XEN. Marek Marczykowski 16 czerwca 2010

Działanie systemu operacyjnego

NASI SPONSORZY I PARTNERZY

Prezentacja emulatora QEMU Zajęcia SO

System komputerowy. Sprzęt. System komputerowy. Oprogramowanie

Wirtualizacja. wspomagana sprzętowo - zalety, wady, zagrożenia. Szymon Doroz & Bartosz Janiak & Przemysław Zych

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

Prezentacja systemu RTLinux

platforma zapewniająca usługi wirtualizacji

Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI

Zarządzanie pamięcią operacyjną

Wirtualizacja jako środek zmniejszenia kosztów działalności przedsiębiorstwa w czasach kryzysu

Capgemini IT Wirtualizacja fundamentem chmury technologie wirtualizacji jako podstawy funkcjonowania chmury

Badanie wydajności maszyn wirtualnych

Koncepcja wirtualnej pracowni GIS w oparciu o oprogramowanie open source

Przygotowana przez: Konrada Błachnio Pawła Koniecznego Michała Lenarta

Budowa karty sieciowej; Sterowniki kart sieciowych; Specyfikacja interfejsu sterownika sieciowego; Open data link interface (ODI); Packet driver

Zarządzanie zasobami pamięci

Szkolenie operatorów Wirtualnego Serwera Egzaminacyjnego 24 maja Prowadzący: Bartłomiej Boryń Robert Michalski

Software RAID funkcje dostarcza zaimplementowane oprogramowanie, bez wykorzystania z dedykowanych kontrolerów.

Sieciowe Systemy Operacyjne

Wykład 7. Zarządzanie pamięcią

Podstawowe zagadnienia informatyki

Monitorowanie VMware Rafał Szypułka Service Management Solution Architect IBM Software Services for Tivoli

Systemy operacyjne III

Architektura systemu komputerowego. Działanie systemu komputerowego. Przerwania. Obsługa przerwań (Interrupt Handling)

MAGISTRALE ZEWNĘTRZNE, gniazda kart rozszerzeń, w istotnym stopniu wpływają na

Instrukcja instalacji PS Bonus Pack do IBM SPSS Statistics 20 w systemie operacyjnym Windows

Jądro systemu operacyjnego

Zarządzanie pamięcią operacyjną zagadnienia podstawowe

Wsparcie migracji obliczeń poprzez wirtualizację zasobów sieciowych

Działanie systemu operacyjnego

pasja-informatyki.pl

SYSTEMY OPERACYJNE WYKŁAD 1 INTEGRACJA ZE SPRZĘTEM

Wymagania systemowe dla Qlik Sense. Qlik Sense 3.1 Copyright QlikTech International AB. Wszelkie prawa zastrzeżone.

System operacyjny System operacyjny

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

Schematy zarzadzania pamięcia

Wymagania systemowe dla Qlik Sense. Qlik Sense June 2018 Copyright QlikTech International AB. Wszelkie prawa zastrzeżone.

Microsoft System Center Virtual Machine Manager 2012

Komputery przemysłowe i systemy wbudowane

Działanie systemu operacyjnego

Wymagania systemowe dla Qlik Sense. Qlik Sense February 2018 Copyright QlikTech International AB. Wszelkie prawa zastrzeżone.

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

ARCHITEKTURA PROCESORA,

Transkrypt:

Hosting WWW Bezpieczeństwo hostingu WWW Dr Michał Tanaś (http://www.amu.edu.pl/~mtanas)

System IT ogólna budowa

Historia wirtualizacji Pierwsze komputery lata 40 i 50 Komputer bezpośrednio wykonuje program użytkownika Program użytkownika bezpośrednio wywołuje niskopoziomowe funkcje sprzętu Brak oprogramowania pośredniczącego (systemu operacyjnego) Komputer potrafi wykonywać tylko jeden program na raz Przykłady: ENIAC (1946)

Historia wirtualizacji Systemy jednozadaniowe lata 60 do 90 System operacyjny (OS) pośredniczy pomiędzy programem użytkownika a sprzętem OS udostępnia programowi funkcje wysokopoziomowe i tłumaczy je na sekwencje niskopoziomowych funkcji sprzętowych Możliwość uruchamiania wielu programów bez ponownego uruchamiania systemu operacyjnego ale w dalszym ciągu tylko jeden program na raz Przykład: MS-DOS

Historia wirtualizacji Podstawowe funkcje OS Zarządzanie procesami Zarządzanie pamięcią operacyjną Zarządzanie storage (pamięcią nieulotną) Zarządzanie urządzeniami I/O

Historia wirtualizacji Systemy wielozadaniowe lata 70 do dzisiaj OS jest w stanie wykonywać wiele programów równocześnie albo naprawdę równocześnie, na różnych procesorach albo pozornie równocześnie, przełączając się co chwila pomiędzy różnymi programami (tzw. context switching)

Historia wirtualizacji Systemy wielozadaniowe lata 70 do dzisiaj OS dba aby programy nie przeszkadzały sobie nawzajem, np. poprzez ochronę pamięci blokady zasobów (np. plików na dysku) Typy wielozadaniowości Dobrowolna (cooperative multitasking) Wymuszona (preemptive multitasking)

Historia wirtualizacji Systemy wielozadaniowe lata 70 do dzisiaj OS może wykonywać wiele programów równocześnie, ale sam OS może być tylko jeden konfiguracja OS może być tylko jedna konta użytkowników (w tym administratorów) są wspólne niewielkie możliwości narzucenia ograniczeń na zasoby (np. liczby dostępnych procesorów) niewielkie możliwości separacji aplikacji służących różnym celom (np. VLANy)

Wirtualizacja - podstawy Maszyny wirtualne Jeden duży komputer (tzw. host) udaje kilka mniejszych (tzw. guest albo maszyna wirtualna) Maszyna wirtualna jest pełnoprawnym komputerem, tzn. Ma swoje własne urządzenia sprzętowe, np. Pamięć Storage Sieć Ma swój własny OS który dla każdej maszyny może być inny

Terminologia Terminologia: Host system operacyjny (lub maszyna) udostępniająca maszyny wirtualne Dedykowany poza zarządzaniem maszynami wirtualnymi nic innego nie robi Uniwersalny maszyna udostępniająca maszyny wirtualne a poza tym używana do zadań operacyjnych Guest system operacyjny (lub maszyna) działająca na maszynie wirtualnej Hypervisor oprogramowanie zarządzające dostępem maszyn wirtualnych do sprzętu

Wirtualizacja a emulacja Wirtualizacji nie należy mylić z emulacją Emulacja jeden OS wykonuje program przeznaczony dla innego OS lub innej architektury (np. wine, dosbox) Wirtualizacja na jednym komputerze działają dwa niezależne OS (np. virtualbox, Android Studio) Możliwe jest połączenie wirtualizacji z emulacją gdy maszyna wirtualna jest przeznaczona dla innej architektury niż host (np. Hercules)

Wirtualizacja a emulacja Wirtualizacja Emulacja System operacyjny Wiele różnych Wiele różnych Zarządzanie procesami Wykonywanie instrukcji i funkcji systemowych Biblioteki systemowe Niezależne przez OS maszyny wirtualnej Bezpośrednio przez sprzęt Niezależne dla każdej maszyny Aplikacja jest normalnym procesem hosta Za pośrednictwem oprogramowania tłumaczącego Tylko jeden zestaw, możliwe dodatkowe biblioteki dla emulacji Wydajność Pełna wydajność hosta Duże spowolnienie

Pełna wirtualizacja a parawirtualizacja Pełna wirtualizacja Host udostępnia guestom symulowane zasoby sprzętowe niekoniecznie takie same jak fizyczne Guest nie ma bezpośredniego dostępu do sprzętu

Pełna wirtualizacja a parawirtualizacja Pełna wirtualizacja - zalety Dobra separacja guestów małe ryzyko że jeden guest zakłóci działanie drugiego Guest OS nie wymaga modyfikacji Guest OS nie wymaga nietypowych sterowników Pełna wirtualizacja - wady Obniżona wydajność konieczność symulacji urządzeń Zazwyczaj brak możliwości pełnego wykorzystania sprzętu przez guesty np. brak dostępu do GPU

Pełna wirtualizacja a parawirtualizacja Parawirtualizacja Guest ma bezpośredni dostęp do sprzętu przy pomocy funkcji udostępnianych przez hosta Host jedynie daje guestowi dostęp do sprzętu natomiast nie pośredniczy w komunikacji sprzęt-guest

Pełna wirtualizacja a parawirtualizacja Parawirtualizacja - zalety Brak narzutu na wydajność guestów pracują bezpośrednio na sprzęcie Guest może (ale nie musi!) mieć dostęp do specyficznych funkcji sprzętu (np. GPGPU) Parawirtualizacja - wady Mała separacja guestów jeden guest może zablokować sprzęt drugiemu OS guesta wymaga modyfikacji OS guesta wymaga specyficznych sterowników

Typy wirtualizacji Wirtualizacja sprzętowa (bare metal) BIOS lub jego odpowiednik powala tworzyć maszyny wirtualne zwane LPAR (Logical PARtition) Dla guestów LPAR jest nieodróżnialny od maszyny fizycznej Przykłady: IBM pseries

Typy wirtualizacji Wirtualizacja sprzętowa (bare metal) Zalety: całkowita separacja maszyn logicznych jedna maszyna nie ma żadnego wpływu na drugą guest nie wymaga żadnych zmian w systemie operacyjnym guest ma bezpośredni dostęp do sprzętu Wady: większość zasobów sprzętowych nie może być współdzielona mała elastyczność w przydziale zasobów (przydział z góry, tylko całkowite ilości, itp.) możliwa jedynie na niektórych typach komputerów (zazwyczaj kosztownych)

Typy wirtualizacji Wirtualizacja z dedykowanym host OS Na hoście działa dedykowany system operacyjny służący jedynie tworzeniu maszyn wirtualnych i nie wykonujący żadnych zadań operacyjnych Najczęściej stosowana jest pełna wirtualizacja Przykłady: zvm VMWare ESX

Typy wirtualizacji Wirtualizacja z dedykowanym host OS Zalety: (prawie) całkowita separacja maszyn logicznych jedna maszyna nie ma żadnego wpływu na drugą elastyczny przydział zasobów (np. ułamkowa liczba procesorów) może, ale nie musi, być wspomagana przez sprzęt

Typy wirtualizacji Wirtualizacja z dedykowanym host OS Wady: guest może zakłócić działanie hosta guest najczęściej nie ma bezpośredniego dostępu do sprzętu co powoduje spadek wydajności konieczność symulacji mało wydajne współdzielenie zasobów w praktyce tak jak pomiędzy osobnymi maszynami (np. dyski sieciowe) wymaga specjalnego host OS który zazwyczaj jest drogi i mało znany

Typy wirtualizacji Wirtualizacja z uniwersalnym host OS Na komputerze działa uniwersalny system operacyjny mogący dodatkowo udostępniać maszyny wirtualne Dla hosta guesty są zwykłymi programami Najczęściej stosowane jest rozwiązanie mieszane częściowo pełna wirtualizacja, częściowo parawirtualizacja Przykłady: Oracle Virtualbox QEMU

Typy wirtualizacji Wirtualizacja z uniwersalnym host OS Zalety: bardzo elastyczne zasobów sprzętowych- niewykorzystane zasoby (np. czas procesora) mogą być przez hosta przydzielone innemu zadaniu wydajne współdzielenie zasobów np. wspólne systemy plików współpraca aplikacji z różnych OS - np. wspólny schowek może, ale nie musi, być wspomagana przez sprzęt niskie koszty

Typy wirtualizacji Wirtualizacja z uniwersalnym OS Wady: słaba separacja guestów taka jak różnych aplikacji na tym samym OS operacyjne wykorzystanie hosta ma wpływ na guesty np. odebranie czasu procesora

Typy wirtualizacji

Wirtualizacja w x86 Ciekawostka historyczna: Pierwsza wirtualizacja w architekturze x86 pojawiła się w 1985 roku (!) w procesorze Intel 80386 w postaci specjalnego trybu tzw. virtual 8086 w którym procesor 80386 mógł stworzyć osobny procesor Intel 8086 dla konkretnego programu. Była to wirtualizacja częściowo sprzętowa, częściowo programowa (wymagała wsparcia systemu operacyjnego) Dostępna do dzisiaj w trybie 32-bitowym procesorów x86 ale w praktyce nie używana ze względu na zanik programów dla procesora 8086 na początku lat 90-ątych.

Wirtualizacja w x86 Intel VT-x Sprzętowe wsparcie dla wirtualizacji w procesorach Intela Ma swoje odpowiedniki (np. AMD-V, czy VIA VT ) również w innych procesorach architektury x86 VT-x pojawiło się w roku 2005 w późnych modelach Pentium IV Obecnie dostępne w praktycznie wszystkich procesorach x86 z nielicznymi wyjątkami (np. niektóre procesory budżetowe czy Atomy) Zazwyczaj można je włączyć/wyłączyć w BIOS-ie

Wirtualizacja w x86 Funkcje Intel VT-x: Dodatkowy poziom uprzywilejowania programów (tzw. Ring -1 ) tryb o wyższym uprzywilejowaniu niż tryb systemu operacyjnego przeznaczony do wykonywania hypervisora Dodatkowy poziom translacji adresów stron pamięci funkcja występuje pod różnymi nazwami (nested paging, extended page tables, second level address translation, rapid virtualization indexing) znacznie przyspiesza zarządzanie pamięcią maszyn wirtualnych pojawia się w 2008 roku, najpierw w procesorach serwerowych

Wirtualizacja w x86 Poziomy uprzywilejowania programów (tzw. protection rings ) Procesor wykonuje każdy program na określonym poziomie ( ringu ) uprzywilejowania Im niższy ring tym większe uprzywilejowanie programu Niektóre instrukcje procesora, funkcje dostępu do pamięci czy funkcje I/O nie są dostępne dla programów niewystarczająco uprzywilejowanych a próba ich bezpośredniego użycia kończy się błędem ochrony

Wirtualizacja w x86 Poziomy uprzywilejowania programów (tzw. protection rings ) W szczególności program wyżej uprzywilejowany może zakazać dostępu do określonej strony pamięci programowi mniej uprzywilejowanemu dzięki czemu np. jeden program nie jest w stanie uszkodzić czy szpiegować innego programu

Wirtualizacja w x86 Poziomy uprzywilejowania programów (tzw. protection rings ) Program niżej uprzywilejowany może poprosić program wyżej uprzywilejowany o udostępnienie jakichś uprzywilejowanych zasobów ale program wyżej uprzywilejowany nie musi się na to zgodzić

Wirtualizacja w x86 Poziomy uprzywilejowania programów (tzw. protection rings ) Ring -1 hypervisor ma dostęp do wszystkich zasobów sprzętowych i całej pamięci może wykonywać wszystkie instrukcje procesora może zabronić dostępu do określonych zasobów wszystkim innym, nawet programowi na Ring 0 dba by jedna maszyna wirtualna nie uzyskała dostępu do pamięci innej maszyny wirtualnej

Wirtualizacja w x86 Poziomy uprzywilejowania programów (tzw. protection rings ) Ring 0 system operacyjny (tzw. kernel space) ma dostęp do wszystkich zasobów sprzętowych i całej pamięci (chyba że hypervisor mu zabroni) może wykonywać wszystkie instrukcje procesora może zabronić dostępu do zasobów programom mniej uprzywilejowanym

Wirtualizacja w x86 Poziomy uprzywilejowania programów (tzw. protection rings ) Ring 1 i Ring 2 sterowniki urządzeń mają dostęp do wszystkich zasobów sprzętowych i całej pamięci (chyba że zabroni im program na Ring 0 lub Ring -1) nie mogą wykonywać niektórych instrukcji procesora praktycznie nieużywane sterowniki działają częściowo w Ring 0 a częściowo w Ring 3

Wirtualizacja w x86 Poziomy uprzywilejowania programów (tzw. protection rings ) Ring 3 programy użytkowe (tzw. user space ) nie mają bezpośredniego dostępu ani do sprzętu ani do pamięci chyba że udzieli im go system operacyjny (Ring 0) nie mogą wykonywać niektórych instrukcji procesora

Wirtualizacja w x86 Translacja adresów pamięci Pamięć komputera zorganizowana jest w bloki zwane stronami (dawniej również: segmentami albo bankami ) Dawniej wyboru segmentu dokonywało się bezpośrednio w kodzie programu co powodowało że tworzenie struktur danych większych niż segment było bardzo skomplikowane

Wirtualizacja w x86 Translacja adresów pamięci Obecnie system operacyjny tworzy ciągłą wirtualną przestrzeń adresową dla każdego programu Gdy program odwołuje się do pamięci specjalny podsystem procesora (tzw. MMU memory management unit) tłumaczy adres pamięci widziany przez program na adres w pamięci fizycznej Każdemu programowi wydaje się że ma całą pamięć dla siebie co bardzo upraszcza programowanie.

Wirtualizacja w x86 Translacja adresów pamięci W przypadku nested paging translacja odbywa się dwuetapowo: 1. MMU tłumaczy adres z przestrzeni adresowej programu na adres z przestrzeni adresowej maszyny wirtualnej (czyli z przestrzeni adresowej host OS) 2. MMU tłumaczy adres z przestrzeni adresowej maszyny wirtualnej na adres z fizycznej przestrzeni adresowej Dzięki temu maszynie wirtualnej (guest OS) wydaje się że używa bezpośrednio sprzętowego MMU a cały proces jest znacznie wydajniejszy niż translacja softwareowa

Wirtualizacja w x86