ˇ Bezpecnost v OS ´ s Vojnar Tomaˇ
[email protected]
Vysoke´ uˇcen´ı technicke´ v Brneˇ Fakulta informaˇcn´ıch technologi´ı ˇ Boˇzetechova 2, 612 66 BRNO ˇ 2. kvetna 2011
´ Operaˇcn´ı systemy
ˇ Bezpecnost (Security) ´ zahrnuje: – Informaˇcn´ı/v´ypoˇcetn´ı system
• hardware (poˇc´ıtaˇce, aktivn´ı a pasivn´ı s´ıt’ove´ prvky, ...), • software (OS a aplikace), • data, ´ spravci, ´ • lidi (uˇzivatele, ...).
– Jin´y pohled na IS:
• objekty (pasivn´ı entity: data, sluˇzby, ...) a ´ ...). • subjekty (aktivn´ı entity: procesy, uˇzivatele,
´ Operaˇcn´ı systemy
Bezpeˇcnost 1
´ pˇred: – IS je zapotˇreb´ı chranit ´ ...), ´ • zasahy ”vyˇssˇ ´ı moci”(pˇr´ırodn´ı katastrofa, poˇzar,
• chybami lid´ı, SW cˇ i HW a • c´ılenymi ´ utoky ´ ze strany lid´ı.
ˇ s´ı. – Zabezpeˇcen´ı pˇred c´ılen´ymi utoky je obt´ızˇ nejˇ ´
ˇ ı bezpeˇcnosti nen´ı stav, ale nikdy nekonˇc´ıc´ı proces! – Zajiˇsten´
´ Operaˇcn´ı systemy
Bezpeˇcnost 2
ˇ ı bezpeˇcnosti (ochrana) zahrnuje: – Zajiˇsten´ ˇ ı dat nepovolan´ym osobam, ´ ˇ en´ ˇ ı duv ˇ • zajist ˚ ernosti, tj. ochranu proti zpˇr´ıstupnen´ ˇ ´ ˇ en´ ˇ ı integrity, tj. ochranu pˇred nepovolenou zmenou • zajist dat/kodu, ´ nemuˇ ´ ˇ en´ ˇ ı dostupnosti, tj. system • zajist ˚ ze odepˇr´ıt pˇr´ıstup povolan´ym osobam, ´ ı apod. ´ • zamezen´ı neautorizovaneho vyuˇzit´ı zdroju, ˚ tj. obejit´ı uˇ ´ ctovan´ ´ ı, uˇ ´ ı (logovan´ ´ ı), audit, ... – Funkce prosazuj´ıc´ı bezpeˇcnost: autentizace, autorizace, utajovan´ ´ ctovan´
´ Operaˇcn´ı systemy
Bezpeˇcnost 3
Autentizace
ˇ rovan´ ´ ı pravosti identity entity – procesu, uˇzivatele, poˇc´ıtaˇce, ... (Kdo je kdo?) – Autentizace: oveˇ – Autentizace muˇ ˚ ze b´yt zaloˇzena na:
• vlastnictv´ı kl´ıcˇ e, karty, ..., ´ • znalosti pˇrihlaˇsovac´ıho jmena, hesla, ..., cˇ i
• vlastnosti uˇzivatele (otisk prstu, duhovka, s´ıtnice, ...).
´ – Utoky na autentizaci: ´ an´ ´ ı paketu, ´ ... • obejit´ı autentizace – vklad ˚ zadn´ı vratka,
vyhýbá se autentizaci, snaží se vniknout tajně
´ ı autentizace – monitorovan´ ´ ı, pokus/omyl, odpadky, ... • pˇrekonan´
´ Operaˇcn´ı systemy
např. útok hrubou silou
Bezpeˇcnost 4
Hesla
– Uloˇzen´ı hesel: ´ ı se zakodovan ´ ˇ ´ • Ukladaj´ a´ vhodnou jednosmernou hashovac´ı funkc´ı f (x) – ochrana i v ramci ´ systemu. – Unix: funkce
crypt zaloˇzena´ na modifikaci DES, pˇr´ıp. MD5, SHA, ...
• V´ypoˇcet f −1(x) mus´ı b´yt velmi obt´ızˇ n´y. ˇ ren´ı hesla nesm´ı b´yt pˇr´ıliˇs rychle´ (moˇzno vloˇzit zpoˇzden´ ˇ ı). • Samotne´ oveˇ ´ en´ ˇ ı pokusum ´ • Ani zaˇsifrovana´ hesla nemaj´ı b´yt volneˇ pˇr´ıstupna´ – zabran ı hesla: ˚ o uhadnut´ /etc/passwd ⇒ /etc/shadow.
´ Operaˇcn´ı systemy
Bezpeˇcnost 5
´ ˇ ruj´ıc´ı na pˇrekonan´ ´ ı hesla: – Utoky smeˇ
• pokus/omyl hrubou silou, ´ ´ • uhadnut´ ı hesla (jmeno uˇzivatele, slova ze slovn´ıku... ⇒ generovana´ hesla), – utilita
crack,
´ • nalezen´ı poznamenaneho hesla,
• zachycen´ı hesla na s´ıti (⇒ uˇz´ıvat ssh apod.), ´ ı pˇri vklad ´ an´ ´ ı, ... • odpozorovan´
´ Operaˇcn´ı systemy
Bezpeˇcnost 6
´ ´ – Je rozumne´ omezit cˇ asovou platnost hesel: ale nepˇrehnat (podobneˇ jako u delky generovaneho ´ k poznamenav ´ an´ ´ ı si hesel... hesla), muˇ ˚ ze vest
´ ´ ´ ıho cˇ asu – spoleh ´ a´ na ´ – Jednorazov a´ hesla: vypoˇctena´ na zaklad eˇ v´yzvy systemu (nebo z aktualn´ ´ dostateˇcneˇ pˇresnou synchronizaci cˇ asu komunikuj´ıc´ıch stran) pomoc´ı bezpeˇcneˇ uloˇzeneho kl´ıcˇ e ´ ´ (v sˇ ifrovac´ım kalkulatoru) cˇ i pˇrevzata´ z kodov e´ knihy.
´ ı se opakovanemu ´ ena ˇ ´ ´ an´ ´ ı hesla (pokud je ˇrada jednotliv´ych zdroju˚ chran – Vyh´yban´ zadav ´ ´ a´ na zˇ adost ´ nezavisle): autentizaˇcn´ı sluˇzby typu Kerberos (specializovan´y server vydav doˇcasne´ ´ chran ´ en ˇ e´ jejich kl´ıcˇ i). pˇr´ıstupove´ kl´ıcˇ e, ktere´ pˇreda´ komunikuj´ıc´ım stranam
´ Operaˇcn´ı systemy
Bezpeˇcnost 7
Autorizace
– Autorizace: povolen´ı pouˇzit´ı urˇcit´ych objektu˚ pouze urˇcit´ym subjektum, a to pouze k urˇcit´ym ˚ ˇ operac´ım. (Kdo muˇ ˚ ze co delat?) ´ – Pln´y zapis moˇzn´y pomoc´ı pˇr´ıstupove´ matice (access matrix):
´ pro skupiny uˇzivatelu. – Moˇzno kombinovat s pˇr´ıstupov´ymi pravy ˚
´ Operaˇcn´ı systemy
Bezpeˇcnost 8
– Implementace pˇr´ıstupove´ matice: ´ ´ subjektu. • pˇr´ıstupove´ seznamy (access control lists): ke kaˇzdemu objektu seznam prav ˚ ´ ´ Napˇr. ochrana pˇr´ıstupu k souborum ı Unixova´ prava, ˚ ve Windows NT, v omezene´ podobeˇ zakladn´ v Linuxu a dalˇs´ıch Unixech existuj´ıc´ı rozˇs´ıˇren´ı tohoto mechanismu na obecne´ pˇr´ıstupove´ seznamy – viz setfacl, ...
• seznamy povolenych ´ operac´ı (capability lists): se subjekty jsou spojeny seznamy operac´ı povolen´ych nad objekty. ˇ ı rozliˇsen´ı procesu˚ v Linuxu a dalˇsich Unixech z privilegovan´y/neprivilegovan´y Napˇr. zjemnen´ ˇ an´ ´ ım povolen´ych operac´ı (muˇ ´ et ˇ zmeny ˇ UID/GID, zamykat stranky ´ pˇridelov ˚ ze/nemuˇ ˚ ze provad ´ ı soubory, zas´ılat broadcast, ... – viz man capabilities) ˇ vytvaˇ ´ ret specialn´ v pameti,
´ Operaˇcn´ı systemy
Bezpeˇcnost 9
ˇ Nekter e´ typy utok ´ u˚ ´ zneuˇzitelna´ funkce programu (zvlaˇ ´ st’ nebezpeˇcne´ v pˇrekladaˇci). ´ – Zadn´ı vratka: nedokumentovana, ´ ı nav´ıc nejakou ˇ ˇ program, kter´y provad´ – Trojsky´ ku˚ n: sˇ kodlivou funkci. ´ programu pro dosaˇzen´ı ˇ ı vyrovnavac´ ´ ˇ ı: vyuˇzit´ı chyby v privilegovanem – Pˇretecen´ ıch pamet´ ´ ´ ı ˇr´ızen´ı podstrˇcenemu ´ ´ sˇ kodliveho efektu (pˇr´ım´y sˇ kodliv´y efekt, pˇredan´ kodu, ...). ´ kter´y infikuje jine´ programy a pomoci nich se sˇ ´ıˇr´ı. – Virus: kod, ˇ ´ poˇc´ıtaˇcovou s´ıt´ı. – Cerv: program podobn´y viru, nepotˇrebuje vˇsak hostitelsk´y program, sˇ ´ıˇr´ı se sam ´ ´ ´ – Denial of Service: pˇret´ızˇ en´ı napadeneho poˇc´ıtaˇce napˇr. zaplavou zprav. ´ ´ an´ ´ ı paketu: – Vklad ˚ podvrˇzen´ı paketu˚ do otevˇreneho spojen´ı na s´ıti. ´ e´ vyuˇzit´ı der ˇ ve sluˇzbach ´ typu ftp/21, ssh/22, ... ´ ı a vyuˇzit´ı der: ˇ vzdalen – Scanovan´ ´ od ”spravce”se ´ ´ ˇ e´ akce. – Dopisn´ı bomby: zprava zˇ adost´ ı o proveden´ı nejak – ...
´ Operaˇcn´ı systemy
Bezpeˇcnost 10
´ Obecne´ zasady pro ochranu ´ ı verze OS (security updates pro Windows, Linux, ...). – Pouˇz´ıvat aktualn´
www.cert.org, www.securityfocus.com, www.microsoft.com/security, www.mcafee.com, www.symantec.com, ...
´ ´ – Sledovat oznamen´ ı o chybach:
ˇ nic nezbytneho. ´ ´ ı sadu systemov ´ – Instalovat minimaln´ ych ´ sluˇzeb, neinstalovat a nespouˇstet ´ eˇ ˇ z s´ıte, ˇ skenovan´ ´ ı – Monitorovat provoz za uˇ ´ celem odhalen´ı bezpeˇcnostn´ıch slabin cˇ i utok ´ u˚ (zat ´ ´ ı uˇzivatelu, ´ portu, e´ logy, pˇrihlaˇsovan´ ych programu˚ – kontroln´ı souˇcty, ˚ systemov ˚ modifikace systemov´ ´ ´ dlouho beˇ ˇ z´ıc´ı procesy, pouˇzit´ı nevhodn´ych hesel, nepovolene´ SUID programy, neoˇcekavan e, ´ ´ r´ıch, nespravn ´ a´ pˇr´ıstupova´ prava ´ adresaˇ ´ ru˚ a souboru,...). nepovolene´ programy v systemov´ ych adresaˇ ˚ ´ Zaznamy analyzovat ruˇcneˇ cˇ i automatizovaneˇ ( tripwire, aide, snort, ...). ˇ spojen´ı dovnitˇr s´ıte. ˇ ˇ s´ ˇ ı pˇr´ıstup, nepouˇstet – Omezit vnej ´ et ˇ filtrovan´ ´ ı posty, ˇ – Provad u Windows pouˇz´ıvat pravidelneˇ aktualizovane´ antivirove´ programy. ´ s podivneˇ vyhl´ızˇ ej´ıc´ımi“ Internetov´ymi strankami, ´ ´ – Konzervativnost pˇri praci emaily, telefonaty ” ´ ı citliv´ych udaj vyˇzaduj´ıc´ımi zadan´ ´ u, ˚ proveden´ı citliv´ych operac´ı.
´ Operaˇcn´ı systemy
Bezpeˇcnost 11
Firewall – Firewall monitoruje, loguje a omezuje s´ıt’ove´ spojen´ı podle nastaven´ych pravidel.
– Firewall nezastav´ı vˇsechny typy utok tuneluj´ıc´ı v povolen´ych protokolech, denial of service, ´ u: ˚ utoky ´ ´ ı jin´ych adres (address spoofing), ... pˇredst´ıran´
´ Operaˇcn´ı systemy
Bezpeˇcnost 12
Kryptografie Kryptografie je nauka o metodách utajování smyslu zpráv převodem do podoby, která je čitelná jen se speciální znalostí. (wiki)
ˇ ı: – Vyuˇzit´ı pˇri zajiˇsten´ ´ ˇ ı), ´ ı informace (ochrana proti neautorizovanemu • utajovan´ zpˇr´ıstupnen´ ˇ e), ˇ • integrity informace (ochrana proti neautorizovane´ zmen
• autentizace, • nepopiratelnosti informace.
– Kryptografick´y mechanismus je tvoˇren: ˇ ´ ı a desifrov ˇ ´ ı, • algoritmy pro sifrov an´ an´ ˇ ˇ • kl´ıcem nebo kl´ıci.
´ Operaˇcn´ı systemy
Bezpeˇcnost 13
– Symetricka´ kryptografie – kryptografie se sd´ılen´ym tajn´ym kl´ıcˇ em (mj. DES sˇ ifruj´ıc´ı bloky 64b ˇ s´ı AES 128b x 128-256b, ...). kl´ıcˇ em 56b, novejˇ Vyuˇzit´ı pro utajen´ı, integritu, autentizaci.
– Asymetricka´ kryptografie – odliˇsne´ kl´ıcˇ e komunikuj´ıc´ıch stran, napˇr. kryptografie s veˇrejn´ym a soukrom´ym kl´ıcˇ em (napˇr. RSA s kl´ıcˇ em alesponˇ 1024b). Vyuˇzit´ı pro utajen´ı, integritu, autentizaci a nepopiratelnost.
´ ı soukromeho ´ ´ – Asymetricka´ kryptografie je zaloˇzena na tom, zˇ e z´ıskan´ kl´ıcˇ e z veˇrejneho (a/nebo ´ ˇ ´ cn ˇ e, ´ zˇ e je to prakticky nemoˇzne´ (rozklad na souˇcin zaˇsifrovane´ zpravy) je vypo ´ cetn eˇ natolik naro prvoˇc´ısel).
´ Operaˇcn´ı systemy
Bezpeˇcnost 14
symetrická kryptografie - využívá jednu funkci k zašifrování o rozluštšní klíče asmyterická kryptografie - využívá soukromých a veřejných klíčů - Alice zašifruje zprávu pomocí Bobova veřejného klíče, takovou zprávu lze rozšifrovat pouze Bobovým soukromým klíčem 3. případ - Alice zašifruje zprávu svým soukromým klíčem (obsahuje nezpochybnitelný podpis), lze ji rozšifrovat jejím veřjeným klíčem, což dokazuje, ža autorem zprávy je právě Alice
´ Operaˇcn´ı systemy
Bezpeˇcnost 15
ˇ Tˇr´ıdy bezpecnosti
´ – TCSEC (Trusted Computer System Evaluation Criteria, ”Orange Book”): starˇs´ı kriteria americke´ ´ vlady: úrovně zabezpečení:
• D: nezabezpeˇceno, • C: volitelne´ ˇr´ızen´ı pˇr´ıstupu (discretionary access control – DAC): vlastn´ık objektu rozhoduje o ˇ pˇr´ıstupu ostatn´ıch uˇzivatelu˚ k tomuto objektu. Rozdeleno na C1 a C2.
• B: povinne´ ˇr´ızen´ı pˇr´ıstupu (mandatory access control – MAC): o ochraneˇ nerozhoduje vlastn´ık, ´ eˇ a system ´ si ji dokaˇ ´ ze vynutit. Rozdeleno ˇ ta je stanovena globaln na B1, B2 a B3.
• A: matematick´y model a dukaz korektnosti. ˚ ˇ s´ı evropska´ kriteria. ´ – ITSEC dˇr´ıvejˇ – Dnes tzv. Common Criteria ( http://www.commoncriteriaportal.org).
´ Operaˇcn´ı systemy
Bezpeˇcnost 16
SELinux – Security Enhanced Linux
´ u˚ jadra ´ – Podpora pro SELinux je jiˇz zahrnuta do zdrojov´ych kod 2.6. – SELinux implementuje MAC s vyuˇzit´ım:
• Identity-Based Access Control (IBAC) – kaˇzd´y proces je spojen s identitou uˇzivatele odvozenou ´ sen´ı (nezavisle ´ ˇ jsou striktneˇ kontrolovany ´ a omezeny. od pˇrihlaˇ na UID, EID), zmeny
• Role-Based Access Control (RBAC) – uˇzivatele´ a jejich procesy maji pˇriˇrazenu mnoˇzinu rol´ı, ˇ jsou striktneˇ kontrolovany ´ a omezeny. zmeny ˇ ı procesum ´ • Type Enforcement (TE) – role umoˇznuj´ vstoupit do urˇcit´ych domen; ˚ (subjektum) ˚ ´ ´ je moˇzno manipulovat objekty urˇcite´ tˇr´ıdy (soubor, socket, ...) a urˇciteho ´ v ramci urˇcit´ych domen ´ ıho typu pouze urˇcit´ym zpusobem. konkretn´ ˚ ´ ı systemu ´ ´ nakonfigurovanou bezpecnostn´ ˇ – Detailn´ı chovan´ je definovano ı 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ˇcn´ı systemy
Bezpeˇcnost 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ˇcn´ı systemy
Bezpeˇcnost 18