Bezpečnost v OS Tomáš Vojnar vojnar@fit.vutbr.cz Vysoké učení technické v Brně Fakulta informačních technologií Božetěchova 2, 612 66 BRNO 2. května 2011 Operační systémy
Bezpečnost (Security) Informační/výpočetní systém zahrnuje: hardware (počítače, aktivní a pasivní sít ové prvky,...), software (OS a aplikace), data, lidi (uživatelé, správci,...). Jiný pohled na IS: objekty (pasivní entity: data, služby,...) a subjekty (aktivní entity: procesy, uživatelé,...). Operační systémy Bezpečnost 1
IS je zapotřebí chránit před: zásahy vyšší moci (přírodní katastrofa, požár,...), chybami lidí, SW či HW a cílenými útoky ze strany lidí. Zabezpečení před cílenými útoky je obtížnější. Zajištění bezpečnosti není stav, ale nikdy nekončící proces! Operační systémy Bezpečnost 2
Zajištění bezpečnosti (ochrana) zahrnuje: zajištění důvěrnosti, tj. ochranu proti zpřístupnění dat nepovolaným osobám, zajištění integrity, tj. ochranu před nepovolenou změnou dat/kódu, zajištění dostupnosti, tj. systém nemůže odepřít přístup povolaným osobám, zamezení neautorizovaného využití zdrojů, tj. obejití účtování apod. Funkce prosazující bezpečnost: autentizace, autorizace, utajování, účtování (logování), audit,... Operační systémy Bezpečnost 3
Autentizace Autentizace: ověřování pravosti identity entity procesu, uživatele, počítače,... (Kdo je kdo?) Autentizace může být založena na: vlastnictví klíče, karty,..., znalosti přihlašovacího jména, hesla,..., či vlastnosti uživatele (otisk prstu, duhovka, sítnice,...). Útoky na autentizaci: obejití autentizace vkládání paketů, zadní vrátka,... překonání autentizace monitorování, pokus/omyl, odpadky,... Operační systémy Bezpečnost 4
Hesla Uložení hesel: Ukládají se zakódovaná vhodnou jednosměrnou hashovací funkcí f(x) ochrana i v rámci systému. Unix: funkce crypt založená na modifikaci DES, příp. MD5, SHA,... Výpočet f 1 (x) musí být velmi obtížný. Samotné ověření hesla nesmí být příliš rychlé (možno vložit zpoždění). Ani zašifrovaná hesla nemají být volně přístupná zabránění pokusům o uhádnutí hesla: /etc/passwd /etc/shadow. Operační systémy Bezpečnost 5
Útoky směřující na překonání hesla: pokus/omyl hrubou silou, uhádnutí hesla (jméno uživatele, slova ze slovníku... generovaná hesla), utilita crack, nalezení poznamenaného hesla, zachycení hesla na síti ( užívat ssh apod.), odpozorování při vkládání,... Operační systémy Bezpečnost 6
Je rozumné omezit časovou platnost hesel: ale nepřehnat (podobně jako u délky generovaného hesla), může vést k poznamenávání si hesel... Jednorázová hesla: vypočtená na základě výzvy systému (nebo z aktuálního času spoléhá na dostatečně přesnou synchronizaci času komunikujících stran) pomocí bezpečně uloženého klíče (v šifrovacím kalkulátoru) či převzatá z kódové knihy. Vyhýbání se opakovanému zadávání hesla (pokud je řada jednotlivých zdrojů chráněna nezávisle): autentizační služby typu Kerberos (specializovaný server vydává na žádost dočasné přístupové klíče, které předá komunikujícím stranám chráněné jejich klíči). Operační systémy Bezpečnost 7
Autorizace Autorizace: povolení použití určitých objektů pouze určitým subjektům, a to pouze k určitým operacím. (Kdo může co dělat?) Plný zápis možný pomocí přístupové matice (access matrix): Možno kombinovat s přístupovými právy pro skupiny uživatelů. Operační systémy Bezpečnost 8
Implementace přístupové matice: přístupové seznamy (access control lists): ke každému objektu seznam práv subjektů. Např. ochrana přístupu k souborům ve Windows NT, v omezené podobě základní Unixová práva, v Linuxu a dalších Unixech existující rozšíření tohoto mechanismu na obecné přístupové seznamy viz setfacl,... seznamy povolených operací (capability lists): se subjekty jsou spojeny seznamy operací povolených nad objekty. Např. zjemnění rozlišení procesů v Linuxu a dalšich Unixech z privilegovaný/neprivilegovaný přidělováním povolených operací (může/nemůže provádět změny UID/GID, zamykat stránky v paměti, vytvářet speciální soubory, zasílat broadcast,... viz man capabilities) Operační systémy Bezpečnost 9
Některé typy útoků Zadní vrátka: nedokumentovaná, zneužitelná funkce programu (zvlášt nebezpečné v překladači). Trojský kůň: program, který provádí navíc nějakou škodlivou funkci. Přetečení vyrovnávacích pamětí: využití chyby v privilegovaném programu pro dosažení škodlivého efektu (přímý škodlivý efekt, předání řízení podstrčenému kódu,...). Virus: kód, který infikuje jiné programy a pomoci nich se šíří. Červ: program podobný viru, nepotřebuje však hostitelský program, šíří se sám počítačovou sítí. Denial of Service: přetížení napadeného počítače např. záplavou zpráv. Vkládání paketů: podvržení paketů do otevřeného spojení na síti. Scanování a využití děr: vzdálené využití děr ve službách typu ftp/21, ssh/22,... Dopisní bomby: zpráva od správce se žádostí o provedení nějaké akce.... Operační systémy Bezpečnost 10
Obecné zásady pro ochranu Používat aktuální verze OS (security updates pro Windows, Linux,...). Sledovat oznámení o chybách: www.cert.org, www.securityfocus.com, www.microsoft.com/security, www.mcafee.com, www.symantec.com,... Instalovat minimální sadu systémových služeb, neinstalovat a nespouštět nic nezbytného. Monitorovat provoz za účelem odhalení bezpečnostních slabin či útoků (zátěž sítě, skenování portů, systémové logy, přihlašování uživatelů, modifikace systémových programů kontrolní součty, neočekávané, dlouho běžící procesy, použití nevhodných hesel, nepovolené SUID programy, nepovolené programy v systémových adresářích, nesprávná přístupová práva adresářů a souborů,...). Záznamy analyzovat ručně či automatizovaně ( tripwire, aide, snort,...). Omezit vnější přístup, nepouštět spojení dovnitř sítě. Provádět filtrování pošty, u Windows používat pravidelně aktualizované antivirové programy. Konzervativnost při práci s podivně vyhlížejícími Internetovými stránkami, emaily, telefonáty vyžadujícími zadání citlivých údajů, provedení citlivých operací. Operační systémy Bezpečnost 11
Firewall Firewall monitoruje, loguje a omezuje sít ové spojení podle nastavených pravidel. Firewall nezastaví všechny typy útoků: útoky tunelující v povolených protokolech, denial of service, předstírání jiných adres (address spoofing),... Operační systémy Bezpečnost 12
Kryptografie Využití při zajištění: utajování informace (ochrana proti neautorizovanému zpřístupnění), integrity informace (ochrana proti neautorizované změně), autentizace, nepopiratelnosti informace. Kryptografický mechanismus je tvořen: algoritmy pro šifrování a dešifrování, klíčem nebo klíči. Operační systémy Bezpečnost 13
Symetrická kryptografie kryptografie se sdíleným tajným klíčem (mj. DES šifrující bloky 64b klíčem 56b, novější AES 128b x 128-256b,...). Využití pro utajení, integritu, autentizaci. Asymetrická kryptografie odlišné klíče komunikujících stran, např. kryptografie s veřejným a soukromým klíčem (např. RSA s klíčem alespoň 1024b). Využití pro utajení, integritu, autentizaci a nepopiratelnost. Asymetrická kryptografie je založena na tom, že získání soukromého klíče z veřejného (a/nebo zašifrované zprávy) je výpočetně natolik náročné, že je to prakticky nemožné (rozklad na součin prvočísel). Operační systémy Bezpečnost 14
Operační systémy Bezpečnost 15
Třídy bezpečnosti TCSEC (Trusted Computer System Evaluation Criteria, Orange Book ): starší kritéria americké vlády: D: nezabezpečeno, C: volitelné řízení přístupu (discretionary access control DAC): vlastník objektu rozhoduje o přístupu ostatních uživatelů k tomuto objektu. Rozděleno na C1 a C2. B: povinné řízení přístupu (mandatory access control MAC): o ochraně nerozhoduje vlastník, ta je stanovena globálně a systém si ji dokáže vynutit. Rozděleno na B1, B2 a B3. A: matematický model a důkaz korektnosti. ITSEC dřívější evropská kritéria. Dnes tzv. Common Criteria ( http://www.commoncriteriaportal.org). Operační systémy Bezpečnost 16
SELinux Security Enhanced Linux Podpora pro SELinux je již zahrnuta do zdrojových kódů jádra 2.6. SELinux implementuje MAC s využitím: Identity-Based Access Control (IBAC) každý proces je spojen s identitou uživatele odvozenou od přihlášení (nezávisle na UID, EID), změny jsou striktně kontrolovány a omezeny. Role-Based Access Control (RBAC) uživatelé a jejich procesy maji přiřazenu množinu rolí, změny jsou striktně kontrolovány a omezeny. Type Enforcement (TE) role umožňují procesům (subjektům) vstoupit do určitých domén; v rámci určitých domén je možno manipulovat objekty určité třídy (soubor, socket,...) a určitého konkrétního typu pouze určitým způsobem. Detailní chování systému je definováno nakonfigurovanou bezpečnostní politikou s pravidly typu: # Let sshd bind a TCP socket to the SSH port. allow sshd_t ssh_port_t:tcp_socket name_bind; # Let sshd read the host private key file. allow sshd_t sshd_key_t:file read; Operační systémy Bezpečnost 17
# Let sshd create its PID file. allow sshd_t var_run_t:dir { search add_name }; allow sshd_t sshd_var_run_t:file { create write }; type_transition sshd_t var_run_t:file sshd_var_run_t; Operační systémy Bezpečnost 18