Počítačová bezpečnost 2. Bezpečnost v OS © Milan Keršlágerhttp://www.pslib.cz/ke/slajdy Obsah: ● jádro,

Slides:



Advertisements
Podobné prezentace
Obecně o operačních systémech
Advertisements

Základy databázových systémů
SOFTWARE dálkové studium PODNIKÁNÍ 2. listopad 2006.
SOFTWARE operační systémy
Operační systémy. OPERAČNÍ SYSTÉMY pomoc operátorovi, podpora vlastností reálného času, víceuživatelských a více úlohových systémů.
Bezpečnost v Linuxu Zpracoval: Roman Danel. Balíčkovací systém Způsob distribuce SW Ošetřuje a řeší závislosti Díky „podepisování“ balíčků nehrozí podstrčení.
Operační systém Adam Greguš, 4.A.
Přínosy a druhy počítačových sítí. Jednou z nejvýznamnějších technologií používaných v oblasti výpočetních systémů jsou již řadu let počítačové sítě.
Maturitní okruh č. 7. Odstínit aplikace od specifik HWSpráva procesůSpráva pamětiSpráva souborůSpráva vstupů a výstupůSpráva sítěSystém ochrany a bezpečnostiSystém.
Štěpán Lískovec, 4.A.  =základní programové vybavení počítače (tj.software)  hlavní úkol:  A, zajistit uživateli možnost ovládat PC  B, vytvořit pro.
Operační systémy.
Operační systémy.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Operační systém (OS) ICT Informační a komunikační technologie.
13AMP 2. přednáška Ing. Martin Molhanec, CSc.. Stav procesu (kontext) Stav procesu je úplná informace, kterou je nutné uschovat při přerušení procesu,
Druhy počítačů Osobní počítače Pracovní stanice Superpočítače
Správa procesů.
Gymnázium, SOŠ a VOŠ Ledeč nad Sázavou I NFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE Ing. Jan Roubíček.
Lokální počítačové sítě Novell Netware Ing. Zdeněk Votruba Technická fakulta ČZU Laboratoř výpočetních aplikací.
OPERAČNÍ SYSTÉMY Správa zdrojů Historie Funkce Ovládání počítače
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Operační systémy Mgr. Ludmila Faltýnková EU OPVK ICT2-4/Inf12 Základní škola Olomouc, Heyrovského 33 Určeno pouze pro výuku Žádná část ani celek nesmí.
ICT – Informační a komunikační technologie Ing. Libor Měsíček, Ph.D. CN460
Vnitřní (operační paměť)
Operační systémy Název a adresa školy
Co je to OS Správce prostředků –spravuje a přiděluje systémové zdroje systému úlohám, stará se o jejich efektivní sdílení procesoru (ů) operační paměti.
Výrok „Vypadá to, že jsme narazili na hranici toho, čeho je možné dosáhnout s počítačovými technologiemi. Člověk by si ale měl dávat pozor na takováto.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
1/28 PB153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ Vlákna 06.
OPERAČNÍ SYSTÉMY.
Systém souborů. Množina souborů různých typů – Data – Spustitelné programy – Konfigurační a pomocné informace – I/O zařízení Způsob organizace množiny.
doc. RNDr. Zdeněk Botek, CSc.
Operační systémy. Výpočetní systém Stroj na zpracování dat vykonávající samočinně předem zadané operace.
Kontakty slajdy: ftp://ulita.ms.mff.cuni.cz/predn/POS.
Počítačová bezpečnost Cvičení 1: Zabezpečení startu PC © Milan Keršláger
OPERAČNÍ SYSTÉMY učební text pro žáky SŠ.
Uvedení autoři, není-li uvedeno jinak, jsou autory tohoto výukového materiálu a všech jeho částí. Tento projekt je spolufinancován ESF a státním rozpočtem.
ÚVOD DO PŘEDMĚTU INFORMAČNÍ TECHNOLOGIE. OPERAČNÍ SYSTÉM Je v informatice základní programové vybavení počítače (tj. software), které je zavedeno do paměti.
Uvedení autoři, není-li uvedeno jinak, jsou autory tohoto výukového materiálu a všech jeho částí. Tento projekt je spolufinancován ESF a státním rozpočtem.
Uvedení autoři, není-li uvedeno jinak, jsou autory tohoto výukového materiálu a všech jeho částí. Tento projekt je spolufinancován ESF a státním rozpočtem.
Operační systém (OS) Základní funkce operačního systému: – Zajištění komunikace s okolím. – Řízení a zpracování programů. – Údržba informací na externích.
Stránkování MATĚJ JURIČIČ 2015/2016 EP1 SPŠ A VOŠ JANA PALACHA KLADNO.
Vypracoval / Roman Málek
Počítačová bezpečnost 2. Bezpečnost v OS
Zvídavé otázky 1. Prevence a detekce uváznutí
Služby Windows Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu ISSN: 
Operační Systém Operační systém je v informatice základní programové vybavení počítače (tj. software), které je zavedeno do paměti počítače při jeho.
Počítačová bezpečnost 2. Bezpečnost v OS
Vlastnosti souborů Jaroslava Černá.
Operační systémy - úvod
Soubor Soubor v informatice označuje pojmenovanou sadu dat uloženou na nějakém datovém médiu, se kterou lze pracovat nástroji operačního systému jako.
Operační systémy 6. Hardwarové prostředky
DIGITÁLNÍ UČEBNÍ MATERIÁL
UNIX 10. Procesy © Milan Keršláger
1. ročník oboru Mechanik opravář motorových vozidel
Počítačová bezpečnost 2. Bezpečnost v OS
Název školy: ZŠ Bor, okres Tachov, příspěvková organizace
Počítačová bezpečnost 2. Bezpečnost v OS
Překladače 3. Zápis programu
Operační systémy 9. Spolupráce mezi procesy
Správa paměti.
1. ročník oboru Mechanik opravář motorových vozidel
PB 169 Počítačové sítě a operační systémy
Segmentace Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu ISSN: 
UNIX 10. Procesy Obsah: algoritmus, program, proces, thread
Operační systémy.
Přepínání procesů Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu ISSN: 
Paměť.
Správa procesů.
Systém souborů 1.
Transkript prezentace:

Počítačová bezpečnost 2. Bezpečnost v OS © Milan Keršlágerhttp:// Obsah: ● jádro, procesy, thready, knihovny ● privilegovaný režim, systémové volání, změna kontextu ● multitasking, ochrana paměti, víceuživatelský systém ● oprávnění (DAC, MAC), chroot, sandbox

Jádro operačního systému ● jádro se zavádí při startu počítače ● přebírá kontrolu nad počítačem – vynucuje si „poslušnost“ nad procesy i uživateli – běžné postupy typicky bez problémů – problémy v komplikovaných případech ● souběh, vyzrazení již nepoužívaných dat, ladící režim atp. ● prostředky procesům přiděluje a hlavně odebírá: – preemptivně → lze odebrat násilím – nepreemptivně → proces musí sám prostředku vzdát ● zajišťuje multitasking ● zajišťuje víceuživatelské prostředí

Typy jader ● monolitické jádro ● vše v jednom adresním prostoru ● nelze vynutit poslušnost jednotlivých komponent ● mikrojádro ● jádro je malé, doplňky v procesech ● efektivní izolace → lze vyšší bezpečnost

Vznik procesu ● algoritmus ● zápis postupu pro vyřešení úlohy ● program ● zápis algoritmu v nějakém programovacím jazyce ● proces ● spuštěný program ● thread (vlákno) ● odlehčený proces (proces má jedno či více vláken)

Proces ● spuštěný program ● stejný program může být spuštěn vícekrát ● každý má svoje vlastní data – například dva prohlížeče, v každém jiná webová stránka ● jádro registruje popis každého procesu v PCB – Process Control Block – číslo procesu, vlastník, priorita, otevřené soubory,... ● proces používá knihovny – knihovna je v paměti součástí procesu – o použití knihoven rozhoduje programátor

Thread (vlákno) ● odlehčený proces ● nižší režie při změně kontextu ( střídání procesů na CPU ) – sdílí společný paměťový prostor – efektivnější sdílení dat, synchronizace ● za cenu komplikací (tzv. souběh) – stejná oprávnění, otevřené soubory, proměnné prostředí,... – rychlé vytváření a rušení vlákna ● bezpečnostní rizika – nežádoucí interakce mezi thready (sdílená paměť) – historie Internet Exloreru: ● okna samostatné procesy → snížení režie a zvýšení rychlosti použitím threadů → kvůli bezpečnosti přechod na procesy (nebezpečný je JavaScript a pluginy – např. Flash)

Knihovny ● snaha o opakované použití kódu ● v jazyce C je standardní knihovna (libc) – zjednodušuje jazyk, standardizuje šířeji jazyk ● knihoven jsou tisíce (její vytvoření je jednoduché) ● knihovna může způsobit problém ● program je bezchybný, ale volá knihovní funkci... ● překrytí funkce u dynamické knihovny ● dva základní typy knihoven: ● statické ● dynamické

Překrytí knihovní funkce ● vlastnost dynamického linkeru ● vyvolán zavaděčem (část jádra) – při spuštění dynamicky linkovaného programu ● při spuštění je nahrána specifická knihovna – funkce této knihovny překryjí pozdější stejnojmenné – lze použít pro opravu vadné funkce v knihovně – využíváno též ladícími nástroji ● např. pro trasování, ale i různé „antiviry“ ● problém u SUID binárek v unixových systémech – je-li na binárce SUID, je LD_PRELOAD ignorováno – mohlo by být využito pro elevaci oprávnění

Typy knihoven 1) statické knihovny ● soubory s příponou.a ● knihovna je linkerem „přilepena“ k programu 2) dynamické knihovny ● soubory s příponou.so (ve Windows.DLL ) ● program obsahuje jen seznam knihoven a funkcí ● při spuštění musí loader zavést též knihovnu – knihovna může být v paměti sdílena mezi více procesy – sdílení může být riziko (pluginy v tabech prohlížeče) – rizikem může být i loader (podvržení knihovny)

Privilegovaný režim ● některé instrukce jsou nebezpečné ● ohrožení stability nebo bezpečnosti počítače – instrukce pro I/O, řízení procesoru, ochrana paměti... ● procesor má 2 stavy (nebo více) – tzv. ring0, 1... ● privilegovaný – lze provést jakoukoliv instrukci – v tomto stavu běží jádro operačního systému ● neprivilegovaný – pokus o použití privilegované instrukce → vnitřní přerušení ● program je obratem jádrem nekompromisně ukončen – v tomto stavu běží všechny uživatelské programy

Systémové volání ● proces žádá jádro o provedení operace ● jde o změnu (přepnutí) kontextu – z uživatelského do jaderného prostoru ● proces je v neprivilegovaném stavu – vstup do jádra je možný jen softwarovým přerušením ● těch je omezený počet a je snadné je všechny ohlídat ● jádro je v privilegovaném stavu – jádro může pro proces provést nedostupné operace – jádro nejprve zkontroluje oprávnění procesu ● pak teprve provede požadovanou operaci ● například komunikace s I/O (zápis na port, do souboru...)

Změna kontextu ● anglicky: context switch ● kontext ● veškeré běhové informace o procesu ● PCB, stav procesoru ● s kontextem manipuluje jádro OS (scheduler) ● při střídání procesů na CPU (multitasking) ● stovky až tisíce změn za vteřinu → vyšší režie ● uložení kontextu (do RAM) → přerušení procesu ● obnovení kontextu (z RAM) → obnovení běhu

OS podle schopností

Víceúlohový systém ● lepší využití HW počítače ● úloha je zablokovaná, v tomto stavu čeká na dokončení I/O operace (tisk, síť, pevný disk) ● úloha záměrně spí (vstup od uživatele, jiná událost) ● potřeba oddělení jednotlivých úloh a jádra OS ● HW podpora v CPU (ochrana paměti, privilegovaný režim) ● střídání úloh při vykonávání procesorem ● tzv. multitasking (v jádře OS ho zajišťuje scheduler) ● potřebuje reentrantní jádro OS ● více úloh volá jádro zároveň (DOS neumožňoval)

Multitasking ● v počítači více (spuštěných) procesů zároveň ● pohodlí uživatele → paralelní zpracování – DOS neuměl → jednodušší jádro OS ● v počítači více (běžících) procesů, než CPU → pseudoparalelismus ● procesy se musí o čas procesoru rozdělit ● střídání procesů na CPU → změna kontextu ● zajišťuje jádro OS ● dobrovolné → nepreemptivní ● vynucené → preemptivní

Využití multitaskingu ● multiprogramování ● programátor předpokládá současný běh procesů ● obstarává ho multitasking → systémové řešení ● paralelní výpočty → potřeba vzájemné komunikace ● programování síťových serverů ● problémy ● zajištění atomických operací → semafory, RCU atp. ● synchronizace výpočtu ve více procesech ● nežádoucí interakce programů → ochrana paměti

Jádro a multitasking ● nepreemptivní multitasking ● běžící úloha se musí procesu sama vzdát – úloha proto periodicky volá speciální službu jádra ● například Windows pro DOS (tj. včetně Win98) ● preemptivní multitasking ● jádro využije časovač → časové kvantum procesu – po vyčerpání času vyvolá časovač přerušení – proces je přerušen a jeho kontext uložen ● jádro privilegovaný režim, proces je v neprivilegovaném režimu – scheduler vybere z fronty proces, který poběží ● např. řada Windows NT, Linux, Mac OS X atd.

Ochrana paměti ● jádro při multitaskingu zajišťuje ochranu paměti ● nutná podpora v procesoru – typicky metoda zámků a klíčů, též segmenty (mezní reg.) ● každý proces má vlastní virtuální adresní prostor – využívání stránkování nebo segmentace ● některé úseky paměti jsou mezi procesy sdíleny – sdílené knihovny ● kód knihovny je pouze pro čtení ● má-li knihovna vlastní data, má každý proces vlastní instanci – sdílená paměť mezi procesy (řídí programátor) ● pro čtení i zápis (při zápisu pozor na souběh)

Řízení přístupu ● nutné pro víceuživatelský systém ● nutné zavedení oprávnění (metod řízení přístupu) – slouží k odlišení uživatelů – vyjádření možnosti přístupu ke zdrojům počítače ● zdrojem jsou typicky soubory, adresáře ● ale i přístup k síti, I/O zařízením atd. ● zavedení pozice správce (root, administrátor) – správce řídí ostatní uživatele ● dvě hlavní metody řízení přístupu: ● DAC – přístup na základě vlastnictví či skupin ● MAC – přístup na základě existence atributů

DAC ● Discretionary access control ● DAC je definováno podle TCSEC na úroveň C – přístup ponechaný na „volném uvážení“ ● ve smyslu možnosti předání oprávnění na jiný objekt ● tj. vlastník může nastavovat oprávnění pro „své“ objekty 1) implementace s vlastníkem (a skupinami) – potomek přebírá oprávnění od svého rodiče – objekt má vlastníka, který řídí přístup k objektům 2) implementace se způsobilostmi – tzv. „capabilities“, lze je též předávat (ne nutně vždy) – program má způsobilost k provedení operace ● Fedora 15 bude nahrazovat SUID aplikace pomocí způsobilostí

Implementace s vlastníkem ● v unixových systémech, Windows NT,... ● systém definuje uživatele a skupiny – každý uživatel má své UID a GID (těch může být více) – spuštěné procesy přebírají UID a GID svého vlastníka – potomek procesu dědí oprávnění svého rodiče ● objekty mají definovány vlastníka a skupinu – objektem je míněn adresář nebo soubor – oprávnění pro vlastníka (UID), skupinu (GID), ostatní ● přístup procesu k objektům na základě UID, GID – výjimky řeší speciální oprávnění (SUID, SGID a sticky bit)

MAC ● Mandatory access control ● MAC je definováno podle TCSEC na úroveň B – subjekty i objekty mají definovány bezpečnostní atributy ● subjekt je typicky proces (thread) ● objektem může být soubor, adresář, síťový port, sdílená paměť... – při přístupu subjektu k objektu jsou atributy porovnány ● porovnání provádí centrálně jádro operačního systému – vlastník nemůže atributy měnit jako u MAC ● umožňuje definovat garantované politiky pro přístup ke zdrojům

Využití MAC 1) pro systémy s MLS (Multilevel security) ● definováno podle TCSEC, Common Criteria ● zpracovávání dat s různou úrovní zabezpečení – dokumenty s různým stupněm utajení ● např. důvěrné, tajné, přísně tajné – lidé s různým stupněm pověření ● vyšší pověření může poskytnout přístup pro nižší pověření ● při přístupu lze data klasifikovaná na vyšší stupeň odstranit 2) jako doplňky ke klasickému DAC: ● Linux: SELinux, AppArmor ● Windows Vista: Mandatory Integrity Control

Správce systému ● jeden správce ● unixové systémy, Windows NT ● více správců ● OpenVMS

chroot ● unixové systémové volání ● provede změnu kořenového adresáře – vytváří tzv. chroot jail (vězení) – může jen root (možnost podvržení /etc/passwd atp.) ● používá se pro „zvýšení bezpečnosti“ – není-li provedeno správně, lze z něj uniknout – při chybě v jádře nebo programu ztrácí význam – spíše ochrana proti běžným chybám ● například smazání souboru omylem, čtení cizího souboru... ● nebylo původně jako bezpečnostní prvek míněno (!) – pro bezpečné uzamčení je určen sandbox

Sandbox ● uzavření programu do „bezpečné obálky“ ● při návrhu je cíleno bezpečnostní hledisko – virtualizace je speciální (hardwarový) případ sandboxu ● jádro poskytuje různé úrovně uzavření programu – omezení přístupu k souborovému systému – omezení přístupu k systémovým voláním jádra – omezení přístupu k dalším prostředkům (paměť, síť) ● oblíbené pro „nedůvěryhodné programy“ – webový prohlížeč Chrome využívá sandbox – pluginy uvnitř prohlížeče vyžívají sandbox – možné využít ale i pro vývoj software apod.