Bezpečnosť OS Počítačové vírusy Jaroslav Porubän KPI FEI TU Košice © 2006 http://hornad.fei.tuke.sk/~poruban/bis Jaroslav.Poruban@tuke.sk
Úlohy OS Správa procesov - plánovane procesov, prepínanie procesov Správa pamäte – prideľovanie pamäte, stránkovanie pamäte Správa periférnych zariadení, zdrojov Správa používateľov – viacpoužívateľské systémy (autentifikácia, autorizácia)
Správa používateľov v OS K počítačovému systému a údajom 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 Identifikácia a autentifikácia používateľa
UNIX/Linux Súbor /etc/passwd UNIX/Linux eviduje všetkých používateľov v /etc/passwd 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 rachel:x:181:100:Rachel Cohen:/u/rachel:/bin/ksh Identifikátor používateľa (UID) Skutočné meno používateľa Predvolený shell Používateľské meno Identifikátor skupiny(GID) Domovský adresár
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, a pod. Každý používateľ patrí do primárnej skupiny, uvedenej v súbore /etc/passwd
Súbor /etc/group vision:*:101:keith,arlin,janice Obsahuje zoznam skupín v systéme, ich GID a priradených používateľov Jednotlivé položky sú oddelené znakom : * znamená, že pre skupinu môže existovať heslo startrek:*:102:janice,karen,arlin vision:*:101:keith,arlin,janice Názov skupiny Identifikátor skupiny (GID) Členovia skupiny
Niektoré príkazy pre správu používateľov a skupín groupadd Vytvorí novú skupinu groupdel Zruší skupinu groupmod Modifikuje skupinu groups Vypíše skupiny, do ktorých patrí používateľ id Vypíše ID a GID používateľa logname Vypíše login používateľa passwd Zmení heslo používateľa su Zmení identitu používateľa useradd Pridá používateľský účet userdel Odstráni používateľký účet usermod Modifikuje účet používateľa who Zobrazí prihlásených používateľov whoami Vypíše efektívne UID
GUI pre správu používateľov a skupín
MS Windows Správa používateľských účtov Môže pracovať v dvoch režimoch: jednoduchom (Win XP Home Edition obsahuje len tento režim) alebo v plnohodnotnom režime 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: Control panel User Accounts Tu možno nastaviť aj spôsob prihlasovania používateľov Kliknutím na meno na úvodnej obrazovke a zadaním hesla Zadaním mena a hesla
Jednoduchý 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í
Správa použ. účtov
Správa účtu
Zmena typu účtu
Obmedzený účet 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 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
Nástroj „Správa počítača“ Umožňuje komplexnú správu používateľov (používateľ musí patriť do skupiny Administrators) Control Panel Administrative Tools Computer Management 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 používateľov
Správa skupín
Group Policy Editor Control Panel Administrative Tools Local Security Policy 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
Nastavenie zásad hesiel
Nastavenie uzamykania účtov
Nastavenie auditu
Súborové systémy Súborový systém organizuje fyzický diskový priestor Riadi spôsob ukladania používateľských informácií (súbory, adresáre) Spravidla okrem ukladania týchto informácií k nim takisto riadi prístup Je jedným zo základných mechanizmov na vynútenie bezpečnosti operačného systému
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 súborové systémy neobsahujú žiadnu podporu pre bezpečnosť (riadenie prístupu k súborom, kvóty) OS Windows XP možno nainštalovať aj na partíciu s FAT systé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
Ext2, Ext3 Základ bezpečnosti OS UNIX/Linux Každému súboru a adresáru v týchto FS je pridelená množina atribútov: Meno Časové údaje Veľkosť (len pre súbory) Vlastník Skupina Prístupové práva
Príkaz ls total 2128 drwx---r-- 2 mx mx 4096 Apr 2 10:57 d1/ drwx-----x 2 mx mx 4096 Apr 2 11:02 d2/ drwx------ 2 mx mx 4096 Apr 2 11:07 d3/ drwxrwxr-x 2 mx mx 4096 Apr 3 22:38 d4/ drwxrwxr-x 4 mx mx 4096 Apr 1 21:40 Desktop/ drwxr-xr-x 11 mx mx 4096 Mar 12 20:19 Documents/ drwxr-xr-x 2 mx mx 4096 Mar 2 08:50 driver/ -rw-rw-r-- 1 mx mx 467746 Mar 5 21:16 kscan_0001.png -rw-rw-r-- 1 mx mx 244661 Mar 5 21:21 kscan_0002.png drwxr-xr-x 4 mx mx 4096 Mar 2 08:41 libstdc++doc/ drwxr-xr-x 6 mx mx 4096 Feb 20 14:14 p2c/ drwxr-xr-x 2 mx mx 4096 Mar 8 13:54 pkg/ -rw-rw-rw- 1 mx mx 129844 Mar 19 22:25 print.pdf drwxrwxr-x 4 mx mx 4096 Mar 6 14:34 prj001/ -rw----r-- 1 mx games 921654 Jan 31 17:30 screenshot1.bmp
Príkaz ls - rw- r-- 1 mx 467746 Mar 5 21:16 kscan_0001.png adresár práva vlastníka práva ostatných vlastník veľkosť názov súboru - rw- r-- 1 mx 467746 Mar 5 21:16 kscan_0001.png práva skupiny počet odkazov skupina časový údaj posl. modifikácie
Prístupové práva pre súbory právo čítať obsah súboru w právo zapisovať = meniť obsah súboru, zmazať súbor x právo spustiť súbor – zmysluplné len pre binárne spustiteľné súbory alebo pre skripty Pre root-a neplatia žiadne obmedzenia v tejto oblasti
Právo na spustenie súboru na spustenie programu nie je potrebný prístup na čítanie – to znamená, že používateľ môže takýto program síce spustiť, ale nemôže vytvoriť jeho kópiu ak používateľ nemá právo na spustenie programu, ale iba na čítanie, môže si vytvoriť kópiu tohto súboru a spustiť ju. Takto spustený program však bude mať iného vlastníka a iné absolútne meno súboru
Prístupové práva pre adresáre právo zistiť len mená súborov v adresári (nie práva, veľkosti, apod.) x právo zistiť ostatné informácie o súboroch v adresári (okrem mien) právo vstúpiť do adresára (pomocou cd) právo pristupovať k obsahu súborov v adresári w právo pridávať, meniť, premenovať a mazať položky adresára, a to aj v prípade, že to prístupové práva k súborom danému používateľovi neumožňujú! Pre root-a neplatia žiadne obmedzenia v tejto oblasti
Príkazy chmod a umask Keď používateľ vytvorí súbor, prvotné nastavenie prístupových práv k tomuto súboru je spravidla -rw-rw-r-- Toto predvolené nastavenie možno zmeniť pomocou príkazu umask prístupové práva k existujúcim súborom a adresárom možno zmeniť pomocou príkazu chmod Prístupové práva k súboru môže meniť iba vlastník súboru alebo root Pod Linuxom spravidla existujú grafické nástroje na zmenu prístupových práv súborov a adresárov kto je zvedavý na syntax príkazov, nech si pozrie man
Príkazy chown a chgrp Príkaz chown slúži na zmenu vlastníka súboru alebo adresára (len pre root-a) Príkaz chgrp analogicky slúži na zmenu skupiny súboru alebo adresára kto je zvedavý na syntax príkazov, nech si pozrie man
SUID, SGID Niekedy je potrebné, aby neprivilegovaný používateľ vykonal úlohu, na ktorú sú potrebné vyššie práva Príkladom je zmena hesla – program passwd potrebuje meniť súbor /etc/shadow, ku ktorému nemá bežný používateľ prístup Práve pre takéto programy sa nastaví bit SUID a/alebo SGID, ktorý spôsobí, že program nepobeží s právami toho, kto ho spustil, ale s právami vlastníka programu a/alebo skupiny
Sticky bit Pre súbory nemá zmysel Ak je nastavený pre adresár, znamená to, že súbory v adresári môže mazať len ich vlastník alebo root (nie ktokoľvek s právom zápisu do adresára)
Označenie SUID, SGID, Sticky bit znak x sa nahradí s alebo t Príklad: -rwsr-sr-t Označenie Význam ---s------ SUID ------s--- SGID ---------t Sticky SUID SGID Sticky
Záver UNIX/Linux Opísaný spôsob riadenia prístupu a bezpečnosti k prostriedkom OS len na základe vlastníka a skupiny je dosť „hrubý“ Je značne problematické efektívne nakonfigurovať prístup napr. 100 používateľov k 1000 súborom, ak sú medzi nimi zložitejšie vzťahy Riešením sú tzv. ACL – Acces Control List – zoznam používateľov oprávnených manipulovať s daným prostriedkom OS priradený ku každému prostriedku OS Zatiaľ neexistuje jednotná implementácia ACL pre UNIX/Linux, aj keď niektoré spoločnosti ponúkajú proprietárne riešenia
NTFS Medzi základné vlastnosti NTFS patrí: štandardná veľkosť alokačnej jednotky je 4KB nezávisle od veľkosti disku podporuje partície väčšie ako 2 TB veľkosť súboru je obmedzená len veľkosťou partície podporuje ACL podporuje kompresiu a šifrovanie súborov
NTFS a Windows XP Aby sa dali využiť všetky možnosti riadenia prístupu k adresárom a súborom, najprv treba deaktivovať položku: Control Panel Tools Folder Options View Use Simple File Sharing
Opis V hornej časti okna vidíme zoznam používateľov a skupín, v dolnej časti ich práva, ktoré môžeme povoliť alebo odoprieť každému používateľovi alebo skupine Ak je zaškrtávacie políčko sivé, právo je zdedené od nadobjektu Odopretie práva má prednosť pred pridelením Práva sa dedia od nadobjektov Práva sa počítajú na základe členstva používateľa v skupinách
Popis oprávnení pre súbory a adresáre (1) Prechádzať adresár / spustiť súbor Vyhľadávanie ďalších podadresárov (týka sa aj podadresárov bez nasl. práva) a súborov / povolenie spustenia programu Zobrazovať obsah adresára / čítať dáta Zobrazovanie názvov podadresárov a súborov / povolenie čítania obsahu súboru Čítať atribúty Zobrazenie základných atribútov adresárov a súborov Čítať rozšírené atribúty Zobrazenie rozšírených atribútov adresárov a súborov Vytvárať súbory / zapisovať dáta Vytváranie nových súborov v adresári / zmena obsahu existujúcich súborov
Popis oprávnení pre súbory a adresáre (2) Vytvárať súbory / zapisovať dáta Vytváranie súborov v adresári / Zmena obsahu súborov Vytvárať adresáre / pripojovať dáta Vytváranie podadresárov v adresároch / pripájanie dát na koniec súboru (nie však skrátenie súboru alebo zmena už existujúcich dát v súbore) Zapisovať atribúty Zmena základných atribútov adresárov a súborov Zapisovať rozšírené atribúty Zmena rozšírených atribútov adresárov a súborov
Popis oprávnení pre súbory a adresáre (3) Mazať podadresáre a súbory (len pre adresáre) Povoľuje zmazať súbor alebo podadresár bez ohľadu na nastavenie jeho práva na zmazanie Mazať Povolenie zmazať adresár alebo súbor. Ak máte predošlé povolenie v nadradenom adresári, môžete položku zmazať aj bez tohto oprávnenia Čítať práva Umožňuje zistiť prístupové práva k adresáru / súboru Zapisovať práva Umožňuje zapisovať prístupové práva k adresáru / súboru Prebrať vlastníctvo Umožňuje prebrať vlastníctvo súboru alebo adresára. Vlastník môže vždy nastavovať prístupové práva k objektu (administrátor môže prebrať vlastníctvo objektu aj bez tohto práva) Synchronizovať Týka sa zdieľania súboru viacerými procesmi
Zdanlivá bezpečnosť OS V mnohých počítačoch sú uložené citlivé informácie, ktorých zneužitie by mohlo spôsobiť škodu Údaje, ktoré spravuje OS, sú bezpečné len vtedy, ak sa k týmto údajom dá dostať jedine prostredníctvom daného operačného systému Existuje množstvo možností, ako operačný systém a jeho ochranné mechanizmy obísť Jedinou ochranou v takomto prípade je šifrovanie citlivých údajov
Príklady úniku informácií chránených OS odcudzenie počítača/disku operačné systémy v mnohých prípadoch vedia čítať a aj zapisovať súborové systémy iných operačných systémov s tým, že ignorujú nastavenia prístupových práv: Linux vie čítať aj zapisovať z/do FAT filesystému Tiež číta NTFS partície a ignoruje prístupové práva, Pod Win 2K/XP existuje driver (ext2fsd), ktorý číta a zapisuje do ext2 fs (ignoruje prístupové práva, nie je problém editovať /etc/shadow apod.), podporuje aj čítanie ext3
Príklad 1 Uvažujme počítač, na ktorom je súčasne nainštalovaný Windows XP a Linux Chceme sa napríklad pozrieť do adresára root na linuxovom disku alebo chceme editovať súbory /etc/passwd a /etc/shadow Postup: Spustíme WXP a nainštalujeme ext2fsd driver, potom namountujeme príslušný linuxový disk (partíciu)
Príklad 1 – obrázok
Príklad 2 Uvažujme počítač, na ktorom je súčasne nainštalovaný Windows XP a Linux Chceme sa napríklad pozrieť do adresára test na partícii E:\ (NTFS), kde si niekto uložil niečo veľmi tajné Postup: Spustíme Linux Pripojíme partíciu pre Windows
Príklad 2 – obrázok
Príklad 3 Ďalšie možnosti prieniku do OS sú založené na použití bootovania z vymeniteľného média Existuje bootovateľná disketa, ktorá obsahuje špeciálnu verziu Linuxu, špeciálne určenú na zmenu / odstránenie administrátorského hesla z Windows-u 2K/XP Zakázať bootovanie z vymeniteľných médií v BIOS-e a zaheslovať ho
Súborové systémy a šifrovanie
Transparentné šifrovanie - NTFS Zabezpečuje transparentný prístup k súborom používateľovi, ktorý ich zašifroval (nemá k nim prístup ani administrátor) K údajom nemožno pristupovať ani z iného OS, avšak nič nebráni napr. ich zmazaniu Pre používateľa používajúceho EFS (časť NTFS) sa pred prvým použitím vygeneruje pár kľúčov pre asymetrické šifrovanie a vytvorí sa z nich certifikát vystavený daným používateľom pre samého seba (nedôveryhodný) Šifrovanie súborov prebieha symetricky (DES) pomocou náhodne generovaného kľúča šifrovaného pomocou verejnej časti spomínaného certifikátu Dešifrovanie používa súkromný kľúč
Princíp šifrovania NTFS - EFS
Princíp dešifrovania NTFS - EFS
Šifrovanie adresára aj s obsahom
Správa certifikátov Príkazový riadok mmc File Add/Remove Snap-in Add Certificates Zobrazí sa zoznam všetkých certifikátov, ktoré systém pozná, náš certifikát na šifrovanie súborov nájdeme v časti Personal
Šifrovanie pod Linux-om Existuje viacero prístupov pre transparentné šifrovanie Jednou z možností je použitie tzv. „loop device“ Postup (Mandrake 9.1): V normálnom súborovom systéme sa vytvorí súbor primeranej veľkosti Tento súbor sa asociuje s loop zariadením, pričom sa nastaví šifrovanie (stane sa prístupný cez určité zariadenie ako napr. disk, ale bude šifrovaný v reálnom čase) – pomocou príkazu losetup Dané zariadenie sa naformátuje na požadovaný súborový systém a namountuje Šifrovanie používa algoritmus AES s dĺžkou kľúča 128, 192 alebo 256 bitov Viac informácií – man losetup
Šifrovanie pod Linux-om Existujú aj špecializované šifrované filesystémy, CryptFS šifrovanie algoritmom Blowfish so 128-bitovým kľúčom – rýchly algoritmus dáta nešifruje po súboroch, ale po 4K blokoch Transparent Cryptographic File System používa DES šifrovanie
Malware = škodiaci softvér Softvér navrhnutý s cieľom infiltrácie do počítačového systému alebo s cieľom kompromitácie systému (bez znalosti vlastníka systému) Vírus (potrebuje hostiteľskú aplikáciu, replikuje sa) boot vírusy programové vírusy makrovírusy Červ (nepotrebuje hostiteľskú aplikáciu, replikuje sa) Trójsky kôň Spyware (nereplikuje sa), adware Zadné dvierka (backdoor)
Počítačové vírusy Vírus Prejavy vírusu časť programového kódu, ktorá je schopná sa prostredníctvom hostiteľského počítača replikovať viac ako jedenkrát. program, ktorý sa šíri bez vedomia používateľa počítača možnosti vírusu sú rovnaké ako možnosti bežného programu Prejavy vírusu Blokovanie miesta (pamäťový a diskový priestor) Spomalenie systému Textové, grafické a zvukové prejavy Nestabilita systému Krádež údajov Šifrovanie údajov Zničenie údajov
Typy vírusov Rezidentný vírus Boot vírus Súborový vírus Makrovírus Skriptový vírus Satelitný vírus Multipartitný vírus Polymorfný vírus Stealth vírus
Stavba vírusu Reprodukčný blok Analytický blok Akčný blok Spúšťací mechanizmus Maskovací blok Vlastnosti Bez chýb Nezávislý na verziách operačného systému alebo programu Nezávislý na jazykovej mutácii programu Nenápadný Samostatne šíriteľný Možnosť riešiť aj neobvyklé situácie (zápis na disketu)
Detekcia vírusu – Antivírusové programy (1) Detekcia známych vírov spočíva v odhalení známeho vírusu pomocou sekvencie, ktorá je vo vírusovej databáze zanesená ako jeho identifikátor. Na základe tohoto typu nálezu sa rozbieha detailná analýza, vedúca k jednoznačnej identifikácii nákazy. Generická detekcia používa sa na rozpoznanie nových variantov vírusov. Pokiaľ nieje nájdený známy vírus, hľadajú sa sekvencie typické pre určitý vírus, ktoré sa pri jeho modifikáciách obvykle nemenia a nemusia ani súvisieť s "vírusovým " chovaním. Tato metóda je účinná predovšetkým pri detekcii makro vírov a skript vírov.
Detekcia vírusu – Antivírusové programy (2) Heuristická analýza spočíva v schopnosti v určitých prípadoch odhaliť vírus, ktorý doposiaľ nie je vo vírusovej databáze. Statická heuristická analýza – hľadanie podozrivých dátových konštrukcií. Dynamická heuristická analýza - emulácia kódu, to znamená jeho spustenie v chránenom prostredí virtuálneho počítača vnútri antivírového programu a hľadanie typických akcií, odpovedajúcich správaniu vírusu. Príkladom môže byť program ktorý vyhľadáva spustiteľné súbory a modifikuje ich. Test integrity ukladanie informácie o zmenách definovaných súborov na pevnom disku čo prispieva k odhaleniu nežiadúcich zmien.