Bezpečnosť OS Unix a
OS Windows
OBSAH
• Problematika bezpečnosti v OS Linux
• Problematika bezpečnosti v OS Windows
• Súborové systémy a ich moţnosti
• Pohľad do reality
Bezpečnosť v OS Linux
Správa užívateľov
• V systéme Linux musí byť každý program a súbor vo vlastníctve nejakého
užívateľa. Každý užívateľ má jedinečný identifikátor, ktorý sa nazýva
identifikátor užívateľa alebo tiež ID užívateľa (UID). Každý užívateľ musí patriť
aspoň do jednej skupiny užívateľov, vytvorenej správcom systému. Užívatelia
môžu patriť do viacerých skupín súčasne. Rovnako ako užívatelia majú i
skupiny svoje identifikátory, ktoré sa nazývajú identifikátory skupín (skupinové
ID – GID).
• Prístupnosť súboru alebo programu závisí na identifikátoroch používateľa a
identifikátoroch skupín. Spúšťaný program dedí prístupové práva po
užívateľovi, ktorý tento program spustil. Práva každého užívateľa sa dajú
definovať dvoma spôsobmi: práva bežného užívateľa a práva superužívateľa.
Bežní užívatelia majú prístup iba k programom, ku ktorým majú prístupové
právo, alebo k takým programom k spúšťaniu ktorých dostali povolenie; toto
právo sa udeľuje preto, že užívateľ patrí do skupiny daného súboru alebo preto,
že je tento súbor dostupný všetkým užívateľom. Správca systému má povolený
prístup ku všetkým súborom a programom v systéme, a to i v prípade, že ich
nevlastní. Správca systému sa často nazýva tiež superužívateľ alebo
administrátor.
Bezpečnosť v OS Linux
• V Linuxe má všetko svojho vlastníka.
• Potrebujeme minimálne jedného uţívateľa – root (r00t :-)
• Druhú úroveň tvoria tzv. „beţní“ uţívatelia
• Systémoví uţívatelia – skupina tzv. „prednastavených“
pouţívateľov.
Bezpečnosť v OS Linux
Domovský adresár
• Miesto pre uloţenie špecifických konfiguračných súborov uţívateľa
• Umoţňuje uţívateľom pracovať vo vlastnom upravenom prostredí
bez toho, aby sa narušilo nastavenie prostredia iného uţívateľa
• Nutnosť ochrany pred moţnosťou čítania alebo zápisu zo strany
ostatných uţívateľov (s výnimkou root-a)
• Najčastejšie: chmod go-rwx home_adr
• Príklad:
drwx------ 3 sandusky student 4096 Apr 4 15:38 sandusky
práva N1 uţívateľ skupina veľkosť dátum, čas home adr.
Bezpečnosť v OS Linux
• Najčastejšie umiestnenie domovských adresárov beţných
uţívateľov je v /home
• Pomenuje adresár kaţdého uţívateľa → prihlasovacím menom.
• Výnimkou sú systémové účty
• Účet superuţívateľa: Domovský adresár superuţívateľa má tradične
v mnohých unixových systémoch podobu /. Mnohé inštalácie Linuxu
poţívajú /root.
• Rozhodnutie umiestniť domovské adresáre do /home je čisto
subjektívne a dobrovoľné, má však svoj organizačný význam.
• Časté je i rozdelenie adresára /home podľa jednotlivých oddelení,
napríklad: /home/analytici, /home/support, /home/sales,
/home/webmaster.
Bezpečnosť v OS Linux
Heslá – základné myšlienky
• Kaţdý účet by mal byť buď chránený
heslom, alebo by mal byť označený ako
neprístupný
• Neţ by sme sa mali spoliehať na to, ţe
súbory s heslami sú dobre chránené, je
lepšie, keď systém zašifruje heslo
pomocou špeciálneho algoritmu.
Bezpečnosť v OS Linux
Prihlásenie do systému
(1) Uţívateľ zadá prístupové heslo do systému
(2) Zadané heslo sa zašifruje
(3) Zašifrovaná hodnota sa porovná s heslom uloţeným v systéme
(4) Ak sa spomenuté hodnoty zhodujú, uţívateľ môţe vstúpiť do
systému
• Pôvodný algoritmus je výpočtovo nenáročný ...
• Súbor s heslom mohol obsahovať navyše všetky potrebné údaje o
uţívateľovi
• S nástupom rýchlejších počítačov vyvstala nutnosť prehodnotiť
spôsob uchovávania hesiel
Bezpečnosť v OS Linux
Vylepšenie filozofie hesiel I. – Tieňové heslá
• Zašifrované heslo sa zo súboru s heslami odstráni a umiestni sa do
samostatného súboru s názvom shadow
• Beţný súbor s heslom je naďalej čitateľný pre všetkých uţívateľov
• Skutočné zaširované podoby hesiel sú čitateľné len pre správcu
• Výzva k prihláseniu sa spúšťa s právami superuţívateľa
Prečo teda rovno nie je súbor s heslom čitateľný iba pre superuţívateľa
???
Bezpečnosť v OS Linux
Vylepšenie filozofie hesiel II.
Zdokonalenie šifrovacieho algoritmu
• Šifrovací algoritmus MD5 prevzatý z operačného systému FreeBSD
• Zvýšenie komplikovanosti rozlúštenia hesla
• Ukáţka šifrovania algoritmom MD5 prístupná na
w3.intrak.tuke.sk/~slodicak/code.php
Bezpečnosť v OS Linux
Databáza uţívateľov
• OS Windows 2000 ponúka jako systém správy
uţívateľov nástroj Active directory, ktorý má na starosti
tie najpodrobnejšie detaily databázy uţívateľov.
• Nevýhoda: Active Directory mierne komplikuje vývoj
našich vlastných administrátorských nástrojov, pretoţe
čítanie alebo manipulácia s informáciami o uţívateľoch
sa uskutočňujú prostredníctvom série volaní LDAP.
–––––––––––––––––––––––––––––––––––––––––––––––
• OS Linux idúc po stopách tradičného UNIXu má všetky
informácie o uţívateľoch uloţené v beţných textových
súboroch.
• Výhoda spočíva v tom, ţe môţeme v informáciách o
uţívateľoch kedykoľvek prevádzať zmeny bez nutnosti
pouţiť nejaký špeciálny nástroj – stačí textový editor
Bezpečnosť v OS Linux
Súbor /etc/passwd
• Informácie o prihlasovaní uţívateľa:
- zašifrovaná podoba hesla
- id uţívateľa
- implicitný skupinový identifikátor
- skutočné meno uţívateľa
- domovský adresár
- prihlasovací príkazový interpreter.
• informácie o kaţdom uţívateľovi sú umiestnené na samostatnom
riadku a kaţdá poloţka informácie je oddelená dvojbodkou
• Príklad:
tanja:b20c3691f712164ee6de7174a8681db1:100:102:Tanja Sandusky:/home/tanja:/bin/bash
Bezpečnosť v OS Linux
Podrobnosti o UID
• Uţívateľské ID musí byť jedinečné pre kaţdého
uţívateľa
• UID s hodnotou 0 má uţívateľ, ktorý má administrátorský
prístup do systému, a tým aj plnú kontrolu nad
systémom.
• Uţívateľské meno môţe mať podobu akéhokoľvek
textového reťazca.
• Uţívateľské meno sa kaţdopádne musí vojsť na 1 riadok
Bezpečnosť v OS Linux
Súbor /etc/shadow – I.
• S nárastom počtu útokov hackerov sa objavila nevyhnutnosť vyňať heslá zo
súboru /etc/passwd a uloţiť ich do samostatného súboru
• Heslá sú uloţené v súbore /etc/shadow, ktorý dokáţu prečítať iba programy
s právami administrátora
• Kaţdý riadok v tomto súbore obsahuje:
● prihlasovacie meno
● zašifrované heslo
● dni, počítané od 1.1.1970 do doby, kedy bolo heslo zmenené
● počet dní zostávajúcich do doby, kedy bude moţné zmeniť heslo
● počet dní, po uplynutí ktorých sa musí heslo zmeniť
● počet dní pred skončením platnosti hesla – o tomto počte je uţívateľ informovaný
● počet dní po skončení platnosti hesla a ktoré zostávajú do zablokovania účtu
● dni, počítané od 1.1.1970 do doby, kedy došlo k zablokovaniu účtu
● rezervovaná oblasť
Bezpečnosť v OS Linux
Súbor /etc/shadow – II.
• Záznam o kaţdom uţívateľovi je na samostatnom riadku a
jednotlivé poloţky sú oddelené dvojbodkou
• Príklad:
vili:b20c3691f712164ee6de7174a8681db1:10750:0:99999:7:-1:-1:134529868
• Zápisy s hodnotou -1 znamenajú “bez obmedzenia”
Bezpečnosť v OS Linux
Súbor /etc/group – I.
• Súbor /etc/passwd obsahuje okrem iného implicitný identifikátor
skupiny (GID) kaţdého uţívateľa.
• Tento identifikátor skupiny sa priraďuje k názvu skupiny a ostatným
členom skupiny v súbore /etc/group.
• Kaţdý riadok súboru /etc/group má nasledujúcu štruktúru:
● názov skupiny
● zašifrované heslo pre skupinu
● číslo identifikátora skupiny (GID)
● zoznam uţívateľov, ktorí su členmi skupiny, jednotlivé poloţky sú oddelené čiarkou.
• Kaţdá poloţka v riadku je oddelená dvojbodkou
• Príklad:
windows:x:1002:ftp,vili
Bezpečnosť v OS Linux
Súbor /etc/group – II.
• súbor skupiny musí byť beţne čitateľný, aby mohli rôzne aplikácie
testovať asociácie medzi uţívateľmi a skupinami
• názvy skupín by nemali presiahnuť dĺţku 8 znakov a identifikátor
skupiny by mal byť pre kaţdú skupinu jedinečný
• ak potrebujeme skupinu, do ktorej by sa jednotliví uţívatelia nemohli
sami priradiť, pouţijeme miesto hesla symbol hviezdičky.
Napríklad:
projetc:*:102:vili
Bezpečnosť v OS Linux
Nástroje pre správu užívateľov a skupín
Nástroje pre manipuláciu s užívateľmi
● pridanie uţívateľa – useradd
● odstránenie uţívateľa – userdel
● úprava údajov uţívateľa – usermod
Nástroje pre manipuláciu so skupinami
● pridanie novej skupiny – groupadd
● odstránenie skupiny – groupdel
● modifikácia parametrov skupiny – groupmod
Bezpečnosť v OS Linux
Programy SetUID a SetGID
• Bit SetUID programom umožňuje spúšťanie s právami vlastníka
programu, a nie s právami užívateľa, ktorý tento program
spustil
• Tzv. bit SetGID funguje rovnako, používa sa však pre
nastavenie skupín pre program
• Ak cheme aktivovať bit SetUID alebo SetGID, musíme použiť
príkaz chmod:
Ak chceme nastaviť SetUID, napíšeme na začiatok všetkých
hodnôt práv, ktoré tomuto programu chceme priradiť, hodnotu
4. Ak chceme programu nastaviť SetGID, napíšeme na začiatok
všetkých hodnôt práv hodnotu 2.
Ak teda napr. Chceme z programu /bin/ls urobiť program
SetUID (čo teda nie je dobrý nápad), použijeme príkaz
[root@machine /root]# chmod 4755 /bin/ls.
Bezpečnosť v OS Windows
Problematika hesiel
• Systém Windows si heslo, ktoré zadá uţívateľ pri vstupe nepamätá
• Systém si namiesto pôvodného hesla pamätá jeho tzv. hash
• Systém Windows NT si pamätá hash kaţdého hesla
• Pri prihlasovaní zadáme heslo, z neho sa určí hash a ten sa
porovná s uloţeným. Ak súhlasí, heslo je správne a autentifikácia
úspešná.
• Heslá sú uloţené v súbore SAM
Bezpečnosť v OS Windows
Ochrana súboru SAM?
S príchodom Service Packu 3 pribudla vo Windows NT 4.0
moţnosť zaktivovať prídavné šifrovanie. To znamená, ţe súbor
SAM nebude obsahovať platné hash, ale zašifrované. Kľúč pritom
môţe byť:
(a) uloţený niekde v systéme na disku - navonok nevidno ţiadnu
zmenu;
(b) zadáva sa vo forme hesla pri štarte Windows, ešte pred
prihlasovaním;
(c) uloţí sa na disketu, ktorú je nutné pri štarte Windows vloţiť.
Bezpečnosť v OS Windows
Ako to aktivovať?
• Vo Windows 2000 a XP je
prídavné šifrovanie implicitne
zapnuté, pričom sa pouţíva
variant (a).
• Zaktivovanie vo Windows NT
(ako aj zmena v 2000 a XP) sa
vykoná programom syskey.exe,
ktorý je súčasťou operačného
systému.
• Po zapnutí prídavného
šifrovania uţ nie je moţné ho
vypnúť, je však moţné zmeniť
výber jedného zo spomínaných
variantov (tlačítkom Update).
Bezpečnosť v OS Windows
Je teraz SAM v bezpečí?
• Súbor SAM je uţ síce chránený, no k hashom sa dá dostať aj inými
spôsobmi.
• Administrátor má oprávnenie získať hash ktoréhokoľvek uţívateľa -
keďţe kľúč pre prídavné šifrovanie je uţ vloţený (pri štarte
Windows), má prístup k skutočným hashom, nešifrovaným.
• Administrátor môţe teda testovať silu hesiel uţívateľov a tým, ktorí
nespĺňajú bezpečnostné poţiadavky, môţe predpísať zmenu...
• Doteraz bola zistené nejedna bezpečnostná chyba operačného
systému, ktorá umoţnila získať najvyššie oprávnenie hociktorému
uţívateľovi - a ten mal potom prístup aj ku hash...
Bezpečnosť v OS Windows
Ako sťaţiť lúštenie hesla?
• Súbor SAM obsahuje pre kaţdé konto dva rôzne (hash)
z hesla:
• Hash LM nie je citlivý na veľkosť písmen, teda
nerozoznáva malé a veľké písmená v hesle. Okrem toho
je heslo rozdelené na skupiny po 7 znakov - to znamená,
ţe ak má heslo 12 znakov, bude k dispozícii hash z
prvých 7 a hash z posledných 5 znakov.
• Hash NTLM rozlišuje veľkosť písmen v hesle a heslo
nerozdeľuje na 7-znakové skupiny.
Bezpečnosť v OS Windows
Uveďme si príklad, ktorý názorne ukáţe praktické rozdiely týchto dvoch
typov hash v odolnosti proti útoku.
• Majme teda veľmi silné 12-znakové heslo, ktoré obsahuje malé i veľké
písmená (26 + 26), číslice (10) a nejaké základné symboly (33).
• LM hash: Ak chceme heslo hádať, musíme brať do úvahy všetky 7-prvkové
(na vyriešenie prvej časti hesla) kombinácie z mnoţiny 26 + 10 + 33 = 69
znakov (nerozlišujú sa malé a veľké písmená). To značí 697 moţností, teda
pribliţne 7 * 1012 - čo by dnešné najrýchlejšie počítače uhádli do 2 týždňov.
Nezabúdajme, ţe je moţné pouţiť i distribuovaný útok a čas hádania skrátiť
i na hodiny...
Chýba nám ešte posledných 5 znakov, no tie sa uhádnu za zanedbateľne
krátku dobu v porovnaní s prvými 7 znakmi.
• NTLM hash: V tomto prípade uvedené heslo predstavuje 12-prvkovú
kombináciu z mnoţiny 26 + 26 + 10 + 33 = 95 znakov. To je 9512 = 5 * 1023
moţností, teda asi 1011-krát viac, ako v prípade LM hash (teda dnešný
počítač by to hádal rádovo 109 rokov, čo je dosť veľká rezerva, aj pri
pouţití distribuovaného útoku).
Bezpečnosť v OS Windows
Ako zakázať LM hash
• Takúto moţnosť priniesol aţ Service Pack 2 pre Windows 2000.
• Je potrebné túto moţnosť zaktivovať v registroch. Konkrétne sa jedná o
kľúč:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]
V ňom sa vytvorí nový kľúč s názvom NoLMHash a hodnotou 1.
• Vo Windows XP sa LM hash zakáţe v správcovských nástrojoch cez
politiku miestneho zabezpečenia (Local Security Policy), treba sa dostať do
Security Settings\Local Policies\Security Options a tam nájsť a povoliť
moţnosť Network security: Do not store LAN Manager hash value on
next password change. Kľúče je moţné aj priamo importovať.
• To, ţe sme zakázali LM hash ešte neznamená, ţe sa odstránil zo súboru
SAM. Je treba ešte reštart (pre istotu :-) a vykonať zmenu hesla (môţe byť
aj na pôvodné) pre všetky poţadované kontá.
Bezpečnosť v OS Windows
Prístup do systému Windows 2000
Pristupovať do systému Windows 2000 môţeme dvojako:
• na konto lokálne: kontá vytvorené na lokálnom stroji
určené pre lokálnych uţívateľov. Všetky informácie
týkajúce sa konta, profilu i autorizácie sú uchovávané
lokálne
• na konto vzdialené: kontá vytvorené na servri, prístupné
cez sieť. V takom prípade sú všetky informácie o konte
uloţené na servri a v okamihu logovania sa uţívateľa do
systému sú preposielané cez sieť na cieľovú stanicu.
Bezpečnosť v OS Windows
Kontá Skupiny
• názvy kont nemôţu prekročiť • Windows 2000 má niekoľko
veľkosť 20 znakov skupín implicitných:
• lokálne kontá uchovávajú • Administrators – najvyššie
lokálne tzv. SID kľúče (interný priority
identifikátor konta) • Backup Operators – právo
• doménové kontá sú prístupné čítať a zapisovať
v celej sieti dôveryhodných • Guests – najniţšie právomovi
domén, čiţe v určitej LAN • Users – privilegiá a práva
• implicitné kontá: existujú kontá podľa situácie
prístupné hneď po prvotnej • Power Users – niektoré
inštalácii systému, ktoré sú k predvolené privilégiá
práci nevyhnutné, napríklad
Administrator, Guest ... Môţme
ich podľa potreby modifikovať.
Súborové systémy
• Súborové systémy OS Windows
• Súborové systémy OS Linux
• Kryptografické súborové systémy
Súborové systémy – OS Windows
FAT16
Starší súborový systém, navrhnutý pre domáce pouţitie.
Hlavné nevýhody:
- chýbajúca moţnosť kontrol prístupu
- veľká náchylnosť na fragmentáciu
- vysoká chybovosť (v štruktúrach adresárov i súborov)
FAT32
Súborový systém, vyvtorený s príchodom väčších diskov, ktoré sa
objavili v druhej polovici 90. rokov. Oproti FAT16 má upravených
niekoľko nedostatkov. Avšak ostalo mu:
- náchylnosť na fragmentáciu a výskyt chýb
- nemoţnosť kontroly prístupu
Súborové systémy – OS Windows
NTFS
Súborový systém utvorený pre potreby Windows NT. Oproti systémom FAT16
a FAT32 je upravených niekoľko nedostatkov. NTFS však so sebou prináša
tieto prvky:
- Kompresia (Lempel-Ziv, rovnaká ako GIF, veľmi efektívna pri kompresii textu – aţ
90%)
- Šifrovanie adresárov i súborov
- Quota, čiţe ohraničenie miesta na disku pre danú skupinu alebo uţívateľa
- Integrácia so sluţbami Active Directory
Ďalšie vlastnosti:
Bezpečnosť partície NTFS vyplýva z definovania lokálnych práv prístupu k
súborom a katalógom. Prístupové práva fungujú bez rozdielu, či pristupujeme k
súborom a katalógom lokálne alebo diaľkovo (cez sieť). Kaţdý súbor i katalóg
má vlastný ACL (Access Control List), ktorý definuje, či uţívateľ resp. Skupina
uţívateľov má kdanému objektu prístup a na akej úrovni. Nemusíme
nastavovať práva kaţdému súboru v adresári samostatne. ACL adresára
nadradeného sa prenáša na podadresáre i súbory,ktoré sa vyskytujú v danom
adresári.
Súborové systémy – OS Windows
Poznámka k ACL:
• V operačnom systéme Sun Solaris, ktorého základ tvorí
operačný systém UNIX, boli ACL implementované ako
jeden z hlavných pilierov prístupu.
• Adresár má kontrolu prístupu aktívnu, ak sú oprávnenia
ukončené znakom +.
# ls -ld tools -rwxr-xr-x+ 29 myers nogroup 8192 Feb 21 16:51 tool
• Príkaz getfacl vypíše hlásenie o všetkých kontrolách
prístupu k danému súboru.
• Myšlienka ACL v Sun Solaris-e je však odlišná od ACL v
MS Windows
Súborové systémy – OS UNIX, Linux
Súborové systémy v OS UNIX a Linux
• Súborový systém (fs) predstavuje formát, akým sú na disku usporiadané
súbory a adresáre.
• Ţurnálový súborový systém sa od klasického fs líši prítomnosťou špeciálnej
datovéj štruktúry (ţurnálu), kam zapisuje, aké operácie prevádza so
súbormi.
• Pokiaľ dôjde k výpadku napájenia, môţe sa stať, ţe dáta na disku sú v
nekonzistentnom stave (v okamihu výpadku bola časť dát v pamäti) a je
nutné ich opraviť, čo u beţného súborového systému môţe znamenať
časovo veľmi náročnú operáciu, pretoţe je nutné prejsť celú dátovú oblasť a
skontrolovať ju programom fsck na prípadné chyby. Aj tak je takáto oprava
niekedy stávkou do lotérie a môţe dôjsť k poškodeniu dát.
• Ţurnálový fs naproti tomu zaisťuje, ţe dáta sú na disku uloţené v
"permanentne konzistentnom stave", resp. všetky nezrovnalosti je moţné
rekonštruovať počas niekoľkých sekúnd z práve za týmto účelom vedeného
ţurnálu.
Súborové systémy – OS UNIX, Linux
Ext2 alebo Ext3 ?
• Ext3 je založený na Ext2, ktorý je už dlhú dobu
stabilným bodom v Linuxe a so svojím predchodcom
je taktiež obojsmerne kompatibilný.
• Pokiaľ by sme chceli vymeniť Ext2 za ReiserFS,
neostáva nič iné, ako zálohovať všetky dáta, znovu
vytvoriť fs a obnoviť zálohu.
• V prípade Ext3 nám však stačí mať príslušnú verziu
balíka e2fstools, a môžme takmer za behu systému
vytvárať a rušiť žurnál, napríklad takto:
tune2fs -j /dev/hda1 # vytvorí žurnál na zväzku hda1
tune2fs -O ^has_journal /dev/hda1 # zruší žurnál na zväzku hda1
Súborové systémy – OS UNIX, Linux
Ext3
Tri úrovne, ktoré sa špecifikujú pri pripájaní fs:
• data=journal – do ţurnálu sa zapisujú ako operácie s metadátami
(súborové entity), tak i vlastnými dátami. Po nekorektnom vypnutí je moţné
súborový systém v plnom rozsahu rekonštruovať. Tento reţim predstavuje
maximálnu ochranu pred poškodením dát.
• data=ordered – do ţurnálu sa síce zapisujú iba transakcie s metadátami,
ale operácie s dátami sú uloţené ešte pred zápisom metadát. Vďaka tomu
sú metadáta v kaţdom okamihu konzistentné. Ak sa nerozhodnete inak, je
táto voľba predvolená.
• data=writeback – ţurnálujú sa iba metadáta. Operácie zápisu prebiehajú v
optimálnom poradí s ohľadom na výkon. Po nekorektnom vypnutí bude
súborový systém v poriadku, avšak medzi dátami môţe dôjsť k chybám.
Tento reţim je čo do bezpečnosti ekvivalentný systému ext2 pri zachovaní
rýchleho priebehu porgramu fsck.
mount /dev/hda1 /mnt/space -t ext3 -o data=journal
Súborové systémy – OS UNIX, Linux
Výkon?
Hoci ţurnálový fs predstavuje pre počítač
vyššiu záťaţ, jeho autori vyhlasujú, ţe ich
Ext3 fs je dokonca rýchlejší ako ext2. Má
to byť docielené tým, ţe zápisy sú
prevádzané inteligentne a so snahou
minimalizovať zbytočné presuny hlavy
disku.
Súborové systémy – OS UNIX, Linux
A čo xfs?
xfs, ţurnálový fs, navrhnutý firmou SGI,
pouţívaný pôvodne v operačnom systéme
SGI Irix. V súčasnosti je dostupný pod
licenciou GPL aj v Linuxe. Vyznačuje sa
mimoriadnou škálovateľnosťou, vyuţíva
extenzívne B-stromy pri práci s veľkými
súbormi “roztrúsenými” po disku a s
extrémne veľkými adresármi.
Kryptografické súborové systémy
Typy kryptosystémov
Implementácie kryptosystémov sa orientujú na
rôzne ciele počnúc kryptovaním celého
súborového systému, cez kryptovanie adresárov
a súborov v nich aţ po kryptovanie jednotlivých
súborov. Kaţdý z týchto prístupov má svoje
výhody i nevýhody.
Kryptografické súborové systémy
Kryptovanie na úrovni súborového systému
Tieto systémy kryptujú (a dekryptujú) na úrovni
drivera pre konkrétny typ súborového systému.
Typickými implementáciami su PGPdisk, Secure
File System (SFS), Linux CryptoAPI, ScramDisk.
Tieto kryptovače kryptujú obsah celého
súborového systému a ich hlavnou výhodou je,
ţe sú transparentné pre koncového uţívateľa -
všetko je buď kryuptované, alebo nie. Na druhej
strane neposkytujú dostatočnú granularitu pre
kryptovanie individuálnych súborov a adresárov.
Kryptografické súborové systémy
Kryptovanie na úrovni súborov
• Kryptovače tohto druhu pracujú na aplikačnej alebo prezentačnej
vrstve a umoţňujú skutočné kryptovanie medzi dvoma koncovými
bodmi (medzi dvoma aplikáciami).
• Obyčajne potrebujú, aby samotná aplikácia dopredu vedela, ţe sa
bude pristupovať ku kryptovaným dátam a teda aplikácie, ktoré nie
sú na kryptovanie dát pripravené, nebudú vedieť s dátami pracovať.
• Príkladom je PGP: ak máme kryptovaný súbor, musíme mať v
editore PGP plugin, alebo musíte dáta rozkrypovať mimo aplikácie.
Implementácie tohto typu sú vhodné v prostredí, kde je počet
kryptovaných súborv malý a človek rozhoduje o použití kryptovania.
Tieto systémy sa však vôbec nehodia na masové nasadenie pre
kryptovanie množstva adresárov a súborov.
Kryptografické súborové systémy
Kryptovanie na úrovni adresárov
• Tieto systému umoţňujú kryptovanie na úrovni
adresátov a súborov v nich, pričom na
kryptovanie pouţívajú kľúč.
• Medzi známe implementácie patrí Cryptographic
File System (CFS) navrhnutý Mattom Blazeom,
Transparent Cryptographic File System (TCFS),
ktorý je implementovaný na Linuxe a BSD, ďalej
CryptFS ako aj EFS pod Windows 2000.
Kryptografické súborové systémy
Návrh kryptosystému – CryptFS
Ide o kryptosystém, ktorý kryptuje celý súborový systém.
Využíva modulárnu štruktúru, ktorú si UNIXové deriváty osvojili
v poslednom čase.
Linux, Solaris a iné používajú dátovú štruktúru vnode (virtual
inode), ktorá reprezentuje objekt z ľubovoľného (virtuálneho)
súborového systému. Užívateľský proces, ktorý číta zo súboru,
pristupuje skrze jadro najskôr k vnodu a až potom pristupuje k
inodu pre konkrétny filesystém. Implementácia vnodov je
"štósovateľná", takže podobne ako kempingové stoličky sa
dajú na seba vkladať jednotlivé volania a moduly. CryptFS
vkladá svoje volanie tak, ako je to naznačené na nasledujúcom
obrázku.
Kryptografické súborové systémy
Princíp práce CryptFS
• Akekoľvek dáta ktoré sú zapisované
resp. čítané, prechádzajú v jadre cez
vloţenú kryptovaciu úroveň a sú
kryptované resp. dekryptované, takţe
na disku je vţdy kryptovaná
reprezentácia dát.
• Implementácia vyţaduje istú mieru
manaţmentu, takţe existujú nástroje
na primontovanie a odmontovanie
CryptoFS, čo môţe urobiť len root.
• Kaţdý pouţívateľ tohoto CryptFS má
moţnosť manaţovať svoje kľúče.
• Kryptovanie a dekryptovanie je
viazané nielen na UID uţívateľa ale aj
na GID procesu, takţe nikto nemá
moţnosť uţívateľské dáta čítať, lebo
nemá moţnosť vytvoriť proces s uţ
existujúcim GID.
• CryptFS pouţíva algoritmus blowfish v
CBC móde a je dostupný pod GPL
licenciou.
Kryptografické súborové systémy
Linux CryptoAPI
• Linux CryptoAPI nie je úplne presne kryptovanie
súborového systému. Poskytuje len moţnosť
súborový systém kryptovať.
• Toto API bolo pôvodne obsiahnuté v kernelint
patchi, ktorý bol určený pre jadrá série 2.2. V
sérii 2.4 sa toto API prirodzene vyvynulo do
univerzálneho kryptoAPI pre kernel-land funkcie.
• Princíp je naznačený na nasledujúcich
obrázkoch a v podstate ido o vloţenie ďalšieho
drivera medzi dáta a uţívateľa pričom tento
vloţený driver volá cryptoAPI.
Kryptografické súborové systémy
Princíp práce CryptoAPI – I.
Kryptografické súborové systémy
Princíp práce CryptoAPI – II.
Kryptografické súborové systémy
EFS pod Windows 2000 – I.
• EFS je implementované pomocou PKI schémy. Samotné dáta sú
kryptované rýchlym symetrickým algoritmom, ktorý je náhodne generovaný.
Tento kľúč sa volá file encryption key a po zakryptovaní samotných dát v
súbore je následne zakryptovaný verejným PKI kľúčom uţívateľa, ktorý sa
získa z X.509v3 certifikátu uţívateľa. Privatna časť uţivateľského PKI kľúča
sa pouţije na rozkryptovanie file encryption key ak chce uţívateľ neskôr
pristúpiť k dátam.
• Implementácie EFS podporuje symetrické algoritmy chránené heslom,
pretoţe takéto schémy sú slabé kôli slabým heslám, ktoré si uţívatelia volia.
EFS navyše kryptuje file encryption key ďalším PKI verejným kľúčom,
napríklad kľúčom administrátora, takţe neskôr v prípade poreby môţe
administrátor pouţiť svoj tajný PKI kľúč a rozkryptovať file encryption key a
pomocou neho následne kozkryptovať samotný súbor (ak napríklad uţívateľ
stratil svoj tajný kľúč). Zakryptovanie a rozkryptovanie sú naznačené na
nasledovných schémach:
Kryptografické súborové systémy
EFS II. - zakryptovanie
Kryptografické súborové systémy
EFS III. - odkryptovanie
Kryptografické súborové systémy
EFS IV.
• EFS je navrhnutý tak, aby bol pre uţívateľa transparentný
• Implementácia EFS je naznačená na nasledovnej schéme a pozostáva zo štyroch
častí:
- EFS driver
- filesystem runtime kniţnica
- EFS sluţba
- rôzne API.
• EFS driver je umiestnený nad NTFS driverom a komunikuje s EFS sluţbou na
generovanie file encryption keys prípadne iných kryptooperácií. Driver potom posunie
dáta do runtime kniţnice aby sa vykonali rôzne operácie nad súborovým sytémom.
Komunikácia však nie je priama, ale pouţíva sa NTFS call control mechanizmus.
EFS sluţba je súčasť security subsystému a pouţíva kanál medzi LSA (Local
Security Authority) a kernelovým security monitorom na komunikáciu s EFS driverom.
EFS sluţba komunikuje s CryptoAPI (nemýliť si s linuxovým CryptoAPI) v user-lande
a zabezpečuje manaţment okolo kľúčov a iné sluţby. Tieţ poskytuje interface pre
Win32 API teda programátorksý intrerface pre dekryptovanie a enkryptovanie a
obnovu súborov, ako aj import a export súbrov. NasledovNá schéma znázorňuje
implementáciu EFS.
Kryptografické súborové systémy
EFS V.
EFS v súčasnosti podporuje DESx kryptovací algoritmus, ktorý je zaloţený
na 128 bitovým kryptovacom kľúči a v budúcnosti sa plánuje podpora
viacerých kryptovacích algoritmov.
Social engineering
Beţné metódy „sociálneho inţinierstva“
• falošné oprávnenie
• vydávanie sa za niekoho iného
• súcit
• osobný záujem (Fenomén výplaty)
• lichotenie (Osobná prehliadka)
• dôveryhodné zamestnanie
• odmena (súťaţ hesiel)
Social engineering
Ochrana pred soc. inžinierstvom:
• Buďte paranoidní
• Na všetko sa pýtajte
• Overte si zdroj
• Povedze NIE
• Vychovávajte uţívateľov
Trójske kone
Trójske kone počítačového veku sú programy, ktorými sa majú obísť
ochrany systému, pričom však navonok vystupujú ako neškodné
programy. Rovnako ako grécke dielo, ani tieto programy nič
neurobia samostatne – spoliehajú sa na uţívateľa, ţe naplní zámery
útočníka.
Poznáme:
• klasické trójske kone
• trojanizované zdrojové kódy
• trojanizované programy
Trójske kone
Ochrana pred trójskymi koňmi
• Nikdy nespúštajte programy, ktoré
nepochádzajú z dôveryhodného zdroja
• Predtým, ako to spustíte, zistite si, čo to robí
• Testujte na virtuálnom stroji
• Nikdy nič neznáme nespúštajte ako root
• Pokiaľ máte pochybnosti, zahoďte to :-)
Hrozby súvisiace s bootovaním systému
Možnosť nabootovať znamená byť root!
• Duálne bootovanie predstavuje vysoké
nebezpečenstvo
• Ochrana pred nabootovaním nespočíva
ani v hesle na najnižšej úrovni – BIOS
• Dobrou voľbou je uzamknutie počítača
Hrozby súvisiace s bootovaním systému
Zavádzače OS
• Moţnosť nabootovať do jednouţívateľského
reţimu (Ochrana – sulogin)
• Zavádzanie alternatívnych jadier (Ochrana
heslom)
• Nabootovanie do príkazového interpretera
(Nastavenie obmedzujúcich konfigurácii,
ochrana heslom)
• Prečítanie hesiel z lilo.conf (Ochrana súboru
chown root:root, chmod 600)
• Zneuţitie príkazového riadku v GRUBe
(Zabezpečenie heslom)
Získanie hesiel
Metódy získania a odhalenia hesla
Programy lúštiace heslo:
- s priamym prihlasovaním – ľahko odhaliteľné
- hľadanie hesla – nevyhnutné mať kópiu
/etc/passwd a /etc/shadow
–––––––––––––––––––––––––––––––––––-––––-
Známe programy: Crack, Join the Ripper
Ako spoznáme, že sa niekto neznámy dostal do nášho systému?
• Zmena web stránok
• Warez, úbytok diskového priestoru
• Zvýšená sieťová aktivita
• Správy od iných správcov
• Sieťové rozhranie v promiskuitnom reţime
• Skrátene/zmazané logy
• Noví uţívatelia systému
• Podozrivé procesy
• Nečakaná záťaţ procesora
• NIEČO JE ZVLÁŠTNE
Aj Windows má Achillove päty
NetBIOS – Achillova päta systému Windows
• Sluţba NetBIOS, ktorá je prístupná na porte 139, umoţňuje
pripojenie aj anonymného uţívateľa pomocou tzv. prázdnej relácie
net use \\\IPC$ ** /u:**
• Pokiaľ je spojenie úspešné, útočník má k dispozícii komukikačný
kanál, vďaka ktorému má prístup k mnohým uţitočným informáciám.
Brániť sa je moţné nastavením správnej hodnoty v Registroch:
\HKLM\SYSTEM\CurrentControlSet\Control\LSA
Kľúč RestrictAnonymous nastaviť na hodnotu 1 (resp. 2 vo Windows
2000)
Pramene
Internetové odkazy:
[1] http://www.biostat.wisc.edu/bcg/sup/unixsup/acls.html
[2] http://www.microsoft.com/windows2000/server/evaluation/features/security.asp
[3] http://homel.vsb.cz/~ves064/Des_1024x768.html
[4] http://www.root.cz/clanek/930
[5] http://programovanie.pc.sk/linux/clanok.ltc?ID=389
[6] http://programovanie.pc.sk/navody/clanok.ltc?ID=421
[7] http://www.pckurier.pl
[8] http://aurora.zemris.fer.hr/filesystems/big.html
[9] http://linuxresource.com/Kernel/File_Systems/index.php
[10] http://oss.sgi.com/projects/xfs/
Literatúra:
[1] Welsh, M., Kaufman, L. - Pouţíváme Linux, ComputerPress, Brno, 1997
[2] Shah, S. - Administrace systému Linux, Grada Publishing, Praha, 2002
[3] Hatch, B., Lee, J., Kurtz, G. - Hacking bez tajemmství – Linux, ComputerPress, Brno, 2003