1.04k likes | 1.16k Views
Bezpečnosť operačných systémov. Marek Urbančík 2003/2004. Úvod. Súčasné operačné systémy poskytujú spravidla viacúlohové prostredie pre jedného alebo viacerých používateľov súčasne Pracujú na počítačoch s jedným alebo viacerými procesormi
E N D
Bezpečnosť operačných systémov Marek Urbančík 2003/2004
Úvod • Súčasné operačné systémy poskytujú spravidla viacúlohové prostredie pre jedného alebo viacerých používateľov súčasne • Pracujú na počítačoch s jedným alebo viacerými procesormi • Využívajú HW podporu procesora pre manažment virtuálnej pamäti a multitasking • Otázka bezpečnosti je mimoriadne komplexná problematika, a preto sa zameriam len na niektoré oblasti
Správa pamäte vreálnom režime procesora 8086 • 20-bitová adresná zbernica – možnosť adresovať 2^20 bitov = 1MB • Pre používateľa je dostupných len 640kB, zvyšok je rezervovaný pre BIOS, gr. pamäť, apod. • Adresa sa skladá z dvoch častí, každá z nich je uložená v osobitnom 16-bitovom registri procesora, zapisuje sa v tvare segment:offset, takáto adresa nie je jednoznačná • Fyzická adresa sa vypočíta posunom segmentu o 4 bity vľavo a pripočítaním offsetu • Táto architektúra neumožňovala HW kontrolu prístupu do pamäti a nebola vhodná pre multitasking
Procesory 80386 a vyššie • 32-bitová adresná zbernica, možnosť adresovať 4GB pamäte • Z dôvodu spätnej kompatibility aj tieto procesory po štarte počítača pracujú v reálnom režime, prístup k pamäti je totožný s 8086 (1MB) • Môžu však prejsť do chráneného (protected) režimu, využívať HW podporu pre virtuálnu pamäť veľkosti 4GB použitím stránkovania (paging) • Všetky 32-bitové OS (Win 9x a vyššie, Linux, ...) pracujú v chránenom režime
Správa pamäti v chránenom režime • Súčasťou procesora je MMU (Memory Management Unit), ktorá zabezpečuje preklad virtuálnej adresy na HW úrovni: • Všetky procesy používajú 32-bitové adresy a pracujú v lineárnom virtuálnom pamäťovom priestore veľkosti 4GB bez akejkoľvek náväznosti na fyzickú pamäť • Virtuálny pamäťový priestor je rozdelený na stránky (pages) rovnakej veľkosti, spravidla 4KB (závislé od procesora) • Fyzický pamäťový priestor je rozdelený na rámce (page frames) rovnakej veľkosti ako stránky
Preklad adresy v chránenom režime • Pred použitím MMU musí operačný systém vytvoriť v pamäti tabuľku nazvanúpage directory table(alebo tiež page directory index) - adresár stránkovacích tabuliek. • Jej adresu uloží OS do špeciálneho registra procesora • Obsahuje 1024 32-bitových fyzických adries stránkovacích tabuliek (page tables), jej veľkosť je 1024*4 = 4KB • Stránkovacie tabuľky sú posledným stupňom prekladu adresy, obsahujú fyzické adresy 4kB rámcov
Priebeh prekladu adresy • Procesor (MMU) rozdelí virtuálnu adresu na 3 časti: • 10 najvyšších bitov sa použije ako index do page directory table • Takto získanú fyzickú adresu použije procesor na prístup do príslušnej tabuľky stránok (page table) • Ďalších 10 bitov virtuálnej adresy MMU použije ako index v tabuľke stránok získanej v predošlom kroku • Sčítaním zvyšných 12 bitov virtuálnej adresy s obsahom príslušnej položky tabuľky stránok sa získa požadovaná fyzická adresa, ktorá sa odošle po adresnej zbernici procesora • PDT okrem odkazov na PT obsahuje aj bity indikujúce prítomnosť PT, analogicky položky PT okrem adresy rámca obsahujú údaj o jeho dostupnosti • Ak preklad virtuálnej adresy nebol úspešný (na ktoromkoľvek stupni), procesor vyvolá výnimku „page fault“ – túto musí ošetriť operačný systém
Priebeh prekladu adresy Page Directory Page Table Page Frame
Dôvod použitia dvojúrovňovej nepriamej adresácie • Takýto mechanizmus šetrí pamäťou – každá tabuľka zaberá 4KB pamäti • Málokedy je potrebné pre aplikáciu definovať celý 4GB adresný priestor (tabuľka stránok by zaberala 4MB) • Stačí definovať page directory table (4KB) a len potrebný počet tabuliek stránok, ostatné položky PDT možno označiť ako neexistujúce • Takýto preklad adries je pomalý, na urýchlenie sa používa asociatívna pamäť obsahujúca niekoľko najpoužívanejších virtuálnych adries, nazývaná Translation Look-aside Buffer
Operačné systémy Správa virtuálnej pamäti a multitasking Veľmi úzko súvisiace záležitosti
Multitasking – zákl. pojmy • Budem uvažovať jednoprocesorový systém • Multitasking – ilúzia behu viacerých programov súčasne • Čas procesora je rozdelený na tzv. kvantá (Windows – 20 – 120 ms, Linux 10 – 300 ms) • Tieto kvantá sú prideľované striedavo prideľované jednotlivým procesom • Dnešné OS používajú tzv. preemptívny multitasking, to znamená, že OS určí, kedy bude vykonávanie procesu pozastavené a bude spustený iný proces
Úlohy OS – multitasking a VMM • Prideliť spustenému procesu časť 4GB adresného priestoru • Vytvorenie PDT tabuľky pre každý proces a príslušných tabuliek stránok podľa pamäťových nárokov procesu • Tabuľky musia byť vytvorené tak, aby pri pokuse procesu o prístup do pamäti iného procesu alebo pamäti vyhradenej pre systém došlo k výnimke • Plánovanie procesov • Prideľovať čas procesora tak, aby bola zachovaná dostatočná interaktivita interaktívnych procesov (textový editor) a súčasne dostatočný výkon výpočtovo náročných procesov (archivačné programy, kódovanie videa, ...)
Úlohy OS – multitasking a VMM • Context Switching – zmena práve bežiaceho procesu • Spočíva v uložení aktuálneho stavu procesora a nahradení tohto stavu iným (predovšetkým obsah registrov, s tým súvisí aj pamäťový priestor aplikácie (register obsahujúci adresu PDT daného procesu) • Implementácia virtuálnej pamäti – stránkovanie • Viacero súčasne bežiacich aplikácií ľahko vyčerpá dostupnú fyzickú pamäť • OS musí niektoré rámce fyzickej pamäte (na základe určitej stratégie, napr. neaktívnych procesov na pozadí) presunúť na disk (page-out) • Stránku, ktorá odkazovala na tento rámec, označí ako neplatnú v tabuľke stránok daného procesu
Úlohy OS – multitasking a VMM • Obsluha výnimky „page fault“ procesora – neúspech prekladu virtuálnej adresy: • OS musí na základe interných štruktúr zistiť: • Pokus o nelegálny prístup do pamäte (napr. do adresného priestoru, ktorý nie je pridelený danému procesu) – v takomto prípade je proces, ktorý výnimku vyvolal, spravidla ukončený • Pokus o prístup na stránku, ktorá bola odsunutá na disk – v takomto prípade OS musí odsunúť nejakú inú stránku na disk (podľa nejakej stratégie, napr. LRU, odstrániť ju z adresného priestoru daného procesu a do takto uvoľneného rámca nahrať z disku požadovanú stránku (page-in) a zaradiť stránku do adresného priestoru bežiaceho procesu, nakoniec reštartovať inštrukciu, ktorá vyvolala výnimku
Operačné systémy – identifikácia a autentifikácia, správa používateľov
Oprávnené použitie OS • Základ bezpečnosti operačných systémov: • K počítačovému systému a dátam by mali mať prístup len oprávnený používatelia • Oprávnený používateľ má v operačnom systéme vytvorený účet, prostredníctvom ktorého pristupuje k počítaču a údajom • Toto sa zabezpečuje identifikáciou a autentifikáciou potenciálneho používateľa
Identifikácia a autentifikácia • Spravidla prebieha zadaním používateľského mena a hesla • Používateľské meno (username) je identifikátor, ktorý poskytuje operačnému systému informáciu o tom, kto ste (a napr. aké máte práva) • Heslo (password) – najčastejšia forma autentifikácie – použitím hesla potvrdíte operačnému systému, že ste naozaj ten, za koho sa vydávate (identifikujete) • Ďalšie možnosti autentifikácie zahŕňajú použitie hardvérových kľúčov (napr. mag. karty) alebo biometrických údajov (zriedkavé)
Autentifikácia heslom Ide o najčastejší spôsob autentifikácie voči operačnému systému, zaslúži si trochu pozornosti
Dobré a zlé heslá • Zlé heslo je heslo, ktoré sa dá ľahko uhádnuť • Heslá sú v súčasnosti základom počítačovej bezpečnosti a preto im treba venovať patričnú pozornosť • Čoho sa treba vyvarovať: • Prezradiť komukoľvek heslo • Heslo totožné s používateľským menom • Mená osôb, firmy, školy, • Meno počítača, operačného systému • Dátum narodenia, rodné číslo, telefónne číslo, adresa • Mená miest • Slovo zo slovníka (aj cudzojazyčného) • Postupnosť písmen na klávesnici, napr. qwertz • Čokoľvek z predošlého napísané odzadu
Dobré a zlé heslá • Dobré heslo je heslo, ktoré sa nedá ľahko uhádnuť • Dobré heslo by malo spĺňať tieto kritériá: • Obsahuje malé aj veľké písmená • Okrem písmen obsahuje aj čísla a/alebo interpunkčné znamienka • Môže obsahovať medzery • Je ľahko zapamätateľné • Je spoň 8 znakov dlhé • Dobré heslo možno napríklad vytvoriť striedaním spoluhlások a samohlások, pridať niekoľko čísel – vznikne nezmyselné slovo, ktoré sa ľahko pamätá, napr. hAriQe25
Ďalšie možnosti zvýšenia bezpečnosti hesiel • Používateľské účty v operačných systémoch možno nastaviť tak (UNIX, Linux, W2K/XP), aby sa po určitom počte neúspešných pokusov o prihlásenie zablokovali, snaha zabrániť potenciálnemu útočníkovi hádať heslo • Tento prístup sa však neodporúča, oveľa vhodnejšie je po neúspešnom pokuse o prihlásenie do systému umožniť pokus o ďalšie prihlásenie až o niekoľko sekúnd
Implementácia hesiel, používateľov a skupín UNIX/Linux
Súbor /etc/passwd • Tradične UNIX/Linux eviduje všetkých používateľov v tomto súbore, jeho riadok môže vyzerať napríklad takto: Používateľské meno Identifikátor skupiny(GID) Domovský adresár Identifikátor používateľa (UID) Skutočné meno používateľa Predvolený shell • Jednotlivé položky sú oodelené znakom : • X znamená, že zakryptované (MD5) heslo používateľa je uložené v súbore /etc/shadow, ku ktorému má prístup len root
Superpoužívateľ - root • Takmer každý systém odvodený od UNIX-u obsahuje špeciálneho používateľa uvedeného v súbore /etc/passwd s UID 0 • Ide o takzvaného „superpoužívateľa“, jeho používateľské meno je root • Hlavnou úlohou root-a je správa systému – takmer všetky bezpečnostné obmedzenia sú ignorované pre programy spustené týmto používateľom
Používatelia a skupiny • Každý používateľ systému patrí do jednej alebo viacerých skupín • Skupina má podobne ako účet názov a identifikačné číslo (GID) • Skupiny sa používajú spravidla na zoskupenie používateľov s podobnými právami na prístup k súborom, zariadeniam, apod. • Každý používateľ patrí do primárnej skupiny, uvedenej v súbore /etc/passwd
Súbor /etc/group • Tento súbor obsahuje zoznam skupín v systéme, ich GID a priradených používateľov, môže vyzerať napríklad takto (uvádzam len 2 riadky): Názov skupiny Identifikátor skupiny (GID) Členovia skupiny • Jednotlivé položky sú oodelené znakom : • * znamená, že pre skupinu môže existovať heslo
Niektoré distribúcie Linuxu poskytujú grafické prostredie na správu používateľov a skupín (Mandrake 9.1)
Správa používateľských účtov • Môže pracovať v dvoch režimoch: štandardnom (Win XP Home obsahuje len tento režim), alebo v plnohodnotnom režime (tieto režimy som pomenoval ja) • Informácie špecifické pre používateľa/účet sa spravidla ukladajú v adresári „Documents And Settings\[Meno používateľa]“, ktorý je umiestnený na tej istej logickej jednotke ako inštalácia OS • Štandardná správa účtov: Ovládací panel Užívateľské účty • Tu možno nastaviť aj spôsob prihlasovania používateľov : • Kliknutím na meno na úvodnej obrazovke a prípadným zadaním hesla • Zadaním mena a prípadného hesla
Štandardný režim • Podporuje len tri typy používateľských účtov: • Správca počítača (je automaticky členom skupiny Administrators) • Obmedzený účet (je členom skupiny Users) • „Guest“ účet • Ďalej možno nastaviť: • Používateľké meno • Heslo • Obrázok pri prihlásení
Obmedzený účet • Zistené metódou pokus-omyl • Predpokladom je štandardné nastavenie NTFS filesystému • Niektoré limity: • Zakázané vytváranie a modifikácia súborov v inštalačnom adresári OS, tiež v adresári Program Files • Zakázaná modifikácia existujúcich súborov, ktoré vytvoril akýkoľvek iný používateľ • Používateľ s takýmto účtom nemôže konfigurovať a inštalovať HW zariadenia (Device Manager / Správca zariadení) • Nemôže spravovať účty iných používateľov – na svojom účte môže zmeniť heslo a obrázok • Do registra systému môže zapisovať len do vetvy HKEY_CURRENT_USER
Obmedzený účet • Ďalšie obmedzenia: • Používateľ nemá prístup do adresára „Documents and settings“ žiadneho iného používateľa (okrem zdieľaných dokumentov) • Mnohé programy nemôže korektne nainštalovať • Účet „guest“ je totožný s obmedzeným účtom, jediný rozdiel je v nemožnosti zmeniť heslo (aj tomuto účtu môže byť priradené)
Administrátor • Pre administrátora existuje jedno dôležité obmedzenie: • Ak zmení heslo iného používateľa, môže dôjsť k strate nasledujúcich údajov: • Osobné certifikáty • Zapamätané internetové heslá • Súbory zašifrované pomocou NTFS
Pokročilé možnosti správy používateľov Len OS Windows XP
Nástroj „Správa počítača“ • Umožňuje komplexnú správu používateľov (používateľ musí patriť do skupiny Administrators) • Ovládací panel Nástroje pre správu Správa počítača • Tento nástroj umožňuje (okrem mnohých iných vecí) vytváranie skupín používateľov a priraďovanie používateľov do jednotlivých skupín, používateľ môže byť členom aj viacerých skupín
Správa skupín OS obsahuje množstvo preddefinovaných skupín používateľov
Group Policy Editor • V preklade Ovládací panel Nástroje pre správu Miestne nastavenie bezpečnosti • Veľmi široké možnosti rôznych bezpečnostných nastavení • Príklady: • Zásady hesiel: • Minimálna dĺžka hesla, maximálny vek hesla • História hesiel (zabraňuje opakovanému použitiu hesiel • Uzamknutie účtu • Možnosti auditu • Napr. prihlasovanie a odhlasovanie používateľov
Súborové systémy Základný prvok bezpečnosti operačného systému
Charakteristika súborového systému • Súborový systém organizuje fyzický diskový priestor • Riadi spôsob ukladania používateľských informácií (súbory, adresáre, apod.) • Spravidla okrem ukladania týchto informácií k nim takisto riadi prístup • Je základným mechanizmom na vynútenie bezpečnosti operačného systému
Súborové systémy typu FAT Windows 9x, ME, (2K, XP)
FAT12/16/32 • Prvé verzie tohto FS (FAT12) vznikli koncom 70-tych rokov minulého storočia • Ohľad na jednoduchosť, nie na bezpečnosť • Neskôr vznikli modifikácie FAT16, FAT32 • Tieto filesystémy neobsahujú žiadnu podporu pre bezpečnosť (riadenie prístupu k súborom, kvóty, apod.) • OS WXP možno nainštalovať aj na partíciu s FAT filesystémom, ale v takomto prípade nebudú funkčné takmer žiadne bezpečnostné prvky OS WXP!!!! • Jednoznačne sa z bezpečnostného hľadiska odporúča použiť súborový systém NTFS