Počítačová bezpečnost 2. Bezpečnost v OS

Slides:



Advertisements
Podobné prezentace
Datové schránky v praxi Lukáš Jelínek
Advertisements

Projekt Informační a vzdělávací portál Libereckého kraje I CZ.1.07/1.1.00/ I Školení pro uživatele portálu.
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.
Petr Krčmář Virtualizace (především linuxová) InstallFest 2011.
ELEKTRONICKÉ ZABEZPEČOVACÍ SYSTÉMY. Název projektu: Nové ICT rozvíjí matematické a odborné kompetence Číslo projektu: CZ.1.07/1.5.00/ Název školy:
BEZPEČNOSTNÍ TECHNOLOGIE I Operační program Vzdělávání pro konkurenceschopnost Projekt: Vzdělávání pro bezpečnostní systém státu (reg. č.: CZ.1.01/2.2.00/ )
Počítačové sítě 8. Využití sítí © Milan Keršlágerhttp:// Obsah: ● sdílení v sítích.
Počítačová bezpečnost 2. Bezpečnost v OS © Milan Keršlágerhttp:// Obsah: ● jádro,
OPERAČNÍ SYSTÉMY Část 3 – správa procesů Zpracovala: Mgr. Marcela Cvrkalová Střední škola informačních technologií a sociální péče, Brno, Purkyňova 97.
Číslo projektu: CZ.1.07/1.4.00/ Název DUM: Prostředí internetu Číslo DUM: III/2/VT/2/2/27 Vzdělávací předmět: Výpočetní technika Tematická oblast:
Globální adresace na Internetu Vazební síťové prostředky (uzly) Směrování Adresný plán.
Operační systémy Stavba OS © Milan Keršláger Obsah: funkce OS,
Systém správy dokumentace akreditované zkušební laboratoře Bc. Jan Randl, 4912.
Technologie počítačů 4. Sběrnice © Milan Keršlágerhttp:// Obsah: ● ISA, EISA, VL-BUS,
Síťové operační systémy OB21-OP-EL-KON-DOL-M Orbis pictus 21. století.
Počitačová bezpečnost - je obor informatiky, který se zabývá zabezpečením informací v počítačích (odhalení a zmenšení rizik spojených s používáním počítače).
Univerzitní informační systém III., Lednice 2004 Vývoj a koncepce nového univerzitního webu Ondřej Kudlík
Operační systémy Souběh a uváznutí © Milan Keršláger
2. Ochrana statických dat ● Stupně ochrany dat ● Bezpečnostní logy ● Ochrana před fyzickým přístupem ● Ochrana před logickým přístupem ● Ochrana před zničením.
OPERAČNÍ SYSTÉMY Část 5 – souborové systémy
Software =je v informatice sada všech počítačových programů používaných v počítači, které provádějí nějakou činnost. - Software je protiklad k hardwaru,
Architektura operačních systémů
Základní škola a mateřská škola Lázně Kynžvart Autor: Mgr
Počítačová bezpečnost Cvičení 2: Procesy a oprávnění
MICROSOFT WINDOWS.
Systémové databáze v SQL Serveru
Počítačové sítě 16. IPv6 Obsah: původ IPv6, IPv6 adresa a její zápis
Počítačová bezpečnost 2. Bezpečnost v OS
Operační systémy 9. Spolupráce mezi procesy
Software počítače – opakování
Operační systémy Hardwarové prostředky využívané počítačem
Operační systémy Soubory a adresáře
OPERAČNÍ SYSTÉMY Část 1 – úloha OS Zpracovala: Mgr. Marcela Cvrkalová
Inf Operační systémy a jejich funkce
Správa paměti - úvod 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: 
ELEKTRONICKÉ ZABEZPEČOVACÍ SYSTÉMY
Přístupový systém aneb kontrola vstupů
Financováno z ESF a státního rozpočtu ČR.
Počítačová bezpečnost 2. Bezpečnost v OS
Operační systémy 13. Knihovny, spustitelné soubory
Počítačová bezpečnost 2. Bezpečnost v OS
TÉMA: Počítačové systémy
Databáze MS ACCESS 2010.
Webová aplikace MS2014+ Ing. Josef Šetek
Operační systémy 10. Souběh a uváznutí
Financováno z ESF a státního rozpočtu ČR.
Souběh 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: 
1. ročník oboru Mechanik opravář motorových vozidel
Plánová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: 
Operační systémy 13. Knihovny, spustitelné soubory
Překladače Zápis programu
GDPR: ochrana osobních údajů
Informační a komunikační technologie Informatika
Instalace OS Linux 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: 
Regionální informace jako přidaná hodnota katalogu krajské knihovny
Programovatelné automaty (Programmable logic controllers – PLC)
Opakování učiva pro 9. ročník
Technická Evidence Zdravotnických Prostředků 1
Materiál byl vytvořen v rámci projektu
Digitální gramotnost Informatické myšlení
Název školy: Autor: Název: Číslo projektu: Název projektu:
Číslo projektu Číslo materiálu název školy Autor Tematický celek
Přednášky z Distribuovaných systémů
Nádherné prezentace navrhnete a předvedete snadno a s jistotou.
Co vše nám může tvořit počítačovou sestavu
Informační systém základních registrů
Procesy – základní pojmy
Digitální učební materiál
Informatika Počítačové viry.
Opakování učiva pro 9. ročník
Transkript prezentace:

Počítačová bezpečnost 2. Bezpečnost v OS Obsah: jádro, typy jader algoritmus, program, proces, thread knihovny privilegovaný režim, systémové volání, víceúlohový systém, multitasking, ochrana paměti víceuživatelský systém oprávnění (DAC, MAC), správce systému chroot, sandbox © Milan Keršláger http://www.pslib.cz/ke/slajdy 2017/10/18 http://creativecommons.org/licenses/by-nc-nd/3.0/

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 každá chyba může způsobit ohrožení celého systému mikrojádro jádro je malé, doplňky v procesech efektivní izolace → lze vyšší bezpečnost většina služeb jako běžné procesy komunikace skrze API problém s výkonem dá se prokázat vyšší bezpečnost systému

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é

Typy knihoven statické knihovny soubory s příponou .a knihovna je linkerem „přilepena“ k programu 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)

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í

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...)

OS podle schopností víceuživatelský jednoúlohový CP/M DOS víceúlohový jednouživatelský víceuživatelský jednoúlohový CP/M DOS víceúlohový Windows NT (s Terminal Services) Unix Mac OS X

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í

Změna kontextu kontext (z anglického context switch) zahrnuje veškeré běhové informace o procesu s kontextem manipuluje jádro OS (scheduler) datová struktura PCB PID, otevřené soubory, stav procesoru, oprávnění... při střídání procesů na CPU (multitasking) uložení kontextu (do RAM) → přerušení procesu obnovení kontextu (z RAM) → obnovení běhu stovky až tisíce změn za vteřinu → vyšší režie iddle time: OS nemá pro CPU práci → úspora energie instrukce HLT, snížení taktu, vynechání wake-up

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 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 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 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 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 správce může všechno problém: něco změní a pak za sebou zamete stopy problém: útočník získá oprávnění správce více správců OpenVMS (komerční systém) systém (alespoň) tří klíčů od trezoru (tří správců) zakládaní uživatelů, přidělování oprávnění, správa logů tj. k úspěšnému útoku je potřeba spolupráce tří lidí realita: dva se dohodnou, že třetího ošidí a ten třetí je práskne

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.