Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Počítačová bezpečnost 8. Uživatelé a oprávnění

Podobné prezentace


Prezentace na téma: "Počítačová bezpečnost 8. Uživatelé a oprávnění"— Transkript prezentace:

1 Počítačová bezpečnost 8. Uživatelé a oprávnění
Obsah: unixové systémy: uživatelé, hesla, oprávnění, speciální oprávnění Microsoft Windows: uživatelé, MIC, UAC SMB, Doména Windows, Active Directory LM hash, NT hash © Milan Keršláger

2 Unixové systémy

3 Uživatelé jádro OS pracuje s UID (celé číslo, dnes 32bitů)
správce (administrátor) → root (UID=0) není jádrem OS omezován může se změnit na libovolného uživatele využíváno při přihlašování (uvítací program jako root) běžný uživatel → UID!=0 může zasahovat jen do vlastních souborů, procesů využívá se systém oprávnění NEmůže se změnit na jiného uživatele UID se ve výpisech se překládá na jméno podle /etc/passwd (lepší srozumitelnost)

4 Definice uživatelů uloženo v souboru /etc/passwd
jednoduchá databáze (chyba → zbytek se nepoužívá) 1 řádek = 1 uživatel, položky odděleny znakem „:“ login:passwd:UID:GID:FullName:HomeDir:shell využívá se při překladu UID → jméno uživatele (ls -l) založení uživatele prosté přidání dalšího řádku lze i editorem nástroje (GUI, useradd, userdel) používáme kvůli zamykání (editační konflikt)

5 /etc/passwd na prvním řádku je typicky root
root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin ... huzva:x:500:500:René Hužva:/home/huzva:/bin/bash na prvním řádku je typicky root dále jsou tzv. systémové účty se speciálním využitím některé mají GUID=0, takže je to „malý root“ tři tečky naznačují řádky, které byly v ukázce smazány

6 Uložení hesel používá se hashovací funkce
při krádeži hashe nelze zjistit původní heslo hashovací funkce jsou jednosměrné lze využít útok hrubou silou zkoušíme všechna možná hesla a počítáme hash výsledek je stejný, jako uložený tvar → heslo nalezeno jednodušší je slovníkový útok zkoušíme zakódovat a porovnat omezený počet hesel nejjednodušší jsou duhové tabulky rainbow table → předpočítané hashe pro různá hesla obranou je kryptografická sůl

7 Skrytá hesla (shadow passwords)
heslo zakódováno jednosměrnou funkcí původně crypt(), později md5, sha1, sha2 kryptografická sůl (1 heslo = více zakódovaných tvarů) i tak lze použít útok hrubou silou bereme všechny kombinace hesel (využití slovníku) zakódujeme a porovnáme s uloženým tvarem dnes tzv. „rainbow table“ → otázka vteřin (md5, sha1) ukrytí hesel do souboru /etc/shadow může číst jen root, běžný uživatel ne nevadí, protože před přihlášením oprávnění root běžný uživatel si zakódované tvary nepřečte

8 Kryptografická sůl ochrana uloženého hesla
znemožňuje použití duhových tabulek sůl je náhodné číslo při uložení hesla je sůl použita pro výpočet hashe typicky 16, 24, 32, 64 bitů, ale i delší při ověření: buď zkusíme všechny možné soli může být náročné na výpočetní výkon, prodleva při ověření nebo je sůl uložena společně s hashem hesla nevadí to, protože stále nelze použít duhové tabulky

9 /etc/shadow opět jednoduchá databáze login:passwd:další:údaje:...
další údaje upřesňují vlastnosti hesla poslední změna hesla, platnost hesla, účtu, povinná změna, zákaz změny hesla uživatelem, ... soubor může číst jen uživatel root zašifrovaná hesla chráněna před zcizením nelze použít útok hrubou silou změna hesla uživatelem → SUID (speciální oprávnění) root:6$630fCdtG$:14632:0:99999:7::: huzva:465sWTI1pX/:14251:0:99999:7:::

10 Autentizace uživatele
uživatele vítá proces s právy správce uživatel sdělí svoje jméno + heslo podle soli se vypočte hash porovná se s uloženým hashem je-li v pořádku, proces změní své oprávnění změna ze správce na uživatele možná je změna zpět již není možná další procesy jsou potomci tohoto procesu oprávnění se dědí, změna jen přes SUID, SGID

11 Tradiční unixová oprávnění
velmi jednoduchá v době vzniku Unixu málo výkonné počítače (1969) jde o rychlost souborového systému (FS – filesystem) žádná dědičnost, vše na konkrétní adresář, soubor ke čtení ze souboru jsou nutná metadata metadata jsou v i-node, který obsahuje i oprávnění využijeme data, která stejně musíme načíst → efektivní „svatá trojice“ – jednotně pro soubory i adresáře 3 druhy: čtení, zápis, spuštění (Read, Write, eXecute) 3 cíle: vlastník, skupina, ostatní

12 Význam oprávnění Soubor Adresář Read (čtení) Write (zápis) eXecute
(spuštění) čtení (zobrazení) obsahu souboru výpis obsahu adresáře (příkaz ls) změna obsahu adresáře (vytvoření, smazání a přejmenování položek) zápis do souboru (změna obsahu) vstup do adresáře (musí být i ve všech nadřízených) spuštění (provedení) binárka, skript

13 Uplatňování oprávnění
řízení přístupu podle modelu DAC uživatel má definováno UID a GID (těch i více) objekty oprávnění pro vlastníka, skupinu a ostatní uplatňují se jen nejkonkrétnější oprávnění jsem-li majitel → práva pro vlastníka patřím do skupiny, ale nejsem majitel → pro skupinu nejsem ani vlastník, ani skupina → práva pro ostatní POZOR: (!!!) žádný (!!!) průnik ani sjednocení atp.

14 Zobrazování oprávnění
pro objekty (soubor, adresář) zobrazuji: tři trojice oprávnění (Read, Write, eXecute) vlastník, skupina, ostatní rwx rwx rwx ve výpisu musí být k objektu vypsán: vlastník skupina

15 ls -l typ objektu počet odkazů
-rw-rw-r-- 1 huzva www led seznam.txt tři trojice oprávnění název skupina čas poslední změny obsahu vlastník délka Typ vypsaného objektu: - → obyčejný soubor d → adresář (directory) b → blokové zařízení (block) c → znakové zařízení (char) p → roura (pipe) s → soket Počet odkazů je počet jmen (v adresářích), které odkazují na daný objekt. Souvisí s pevnými odkazy („hardlink“). U adresářů se započítává odkaz z vnitřku samotného adresáře (tj. dvě tečky „..“) a další případně obsažené podadresáře.

16 Příklad výstupu $ ls -ld /dev/ttyS0 /dev/sda web.tgz vyuka
brw-r root disk 8, 0 bře 19 06:28 /dev/sda crw-rw root uucp 4, 64 bře 19 06:28 /dev/ttyS0 drwxrwxr-x 4 rene www pro 18 07:18 vyuka -rw-r--r-- 1 rene rene lis web.tgz $ stat ucitele.txt File: `ucitele.txt' Size: Blocks: 16   IO Block: regular file Device: fd00h/64768d Inode: Links: 1 Access: (0644/-rw-r--r--) Uid: (500/huzva) Gid: (500/huzva) Access: :17: Modify: :31: Change: :31:

17 ACL – Access List rozšíření tradičních unixových oprávnění
i na složitější situace stačí tradiční + speciální oprávnění pomocí ACL může mít objekt (soubor/adresář) další klasická oprávnění pro další uživatele i skupiny využívá tradiční trojici oprávnění (rwx) definováno normou POSIX implementace v Linuxu (výhodné pro Sambu) existuje dlouho, ale problémy – vyřešeno 2005 současné distribuce mají ACL implicitně zapnuto ACL se dá selektivně aktivovat pro jednotlivé FS

18 Speciální oprávnění tradiční součást unixových systémů
mění standardní chování systému (s oprávněním) standardně se oprávnění u procesů dědí (z rodiče na potomka) SUID bit program běží s právy vlastníka binárky SGID bit program běží s právy skupiny vlastnící binárku sticky bit umožňuje mazat a modifikovat jen vlastní soubory pro adresář /tmp → všichni do něj mají právo zápisu

19 Využití SUID bitu nutné pro změna hesla
soubor /etc/shadow běžný uživatel nepřečte program (passwd) na změnu hesla je SUID root /usr/bin/passwd získá po spuštění oprávnění roota program se SUID musí být jednoduchý, bezpečný musí dovolit změnu hesla jen aktuálnímu uživateli při chybě by uživatel mohl např. měnit cizí hesla (nebo změnit cokoliv v celém systému) $ ls -l /etc/shadow /usr/bin/passwd -r root root  bře /etc/shadow -rwsr-xr-x. 1 root root  led /usr/bin/passwd

20 Další využití SUID bitu
su, sudo, SuperSU (Android) pro změnu uživatele, provedení privileg. příkazu ping, mtr vyžaduje raw socket, dnes již pomocí capabilities pro mtr obvykle nenastaveno (kvůli bezpečnosti) správce systému to může risknout: chmod +s /usr/sbin/mtr X Server (dnes již bez SUID → Rootless X) kvůli přímému přístupu k hardware (graf. karta) již nepotřebuje díky KMS (kartu řídí jádro)

21 SELinux doplňující zabezpečení pro Linux
implementuje MAC (Mandatory Access Control) přesněji RBAC → Role-based Access Control na souborech jsou rozšířené atributy definované role pro různé skupiny programů → i proces běžící jako root může být omezen vytvořila NSA v USA (Národní úřad pro bezpečnost) používá Fedora a klony RHEL (CentOS), Android (!) 3 režimy: disabled, permissive (jen hlášení, bez omezení), enabled největší chyba je SELinux po instalaci zakázat :-(

22 Co umí SELinux typicky různá omezení omezení zápisu na disk
na spustitelném souboru atribut webový server, FTP server, přepravce el. pošty, ... na adresářích atributy → striktní omezení zápisu síťový démon SSHD potřebuje být root → změna na uživatele root ale může „všechno“, což je velmi nebezpečné osekáme možnosti démona jen na změnu ID (po autentizaci) hooky jsou rozmístěny v jádře systému na „strategických“ místech je odskok do SELinuxu

23 AppArmor doplňující zabezpečení pro Linux
implementuje MAC (jako SELinux) nevyužívá rozšířené atributy řídí se podle cesty ke spouštěné binárce vytvořila firma Novell používáno v SLES, openSUSE, Ubuntu jednodušší správa není tak komplexní, jako SELinux

24 Systémy Microsoft Windows

25 Uživatelé lokálně autentizovaní uživatelé
definováni v tom kterém příslušném počítači rozlišeni dlouhým číslem (SID → Security Identifier) heslo → LM hash, NTLM heslo lze přepsat → start z CD (Linux → chntpw) síťoví uživatelé definováni na serveru stanice je může akceptovat (důvěřovat serveru) je-li v Doméně Windows nebo v Active directory tj. lokálně uživatel neexistuje, ale může se přihlásit je mu vytvořen profil, převezme se SID ze serveru

26 Oprávnění ve Windows posuzuje se SID, oprávnění zapsána v ACL
některá SID jsou speciální: lokální uživatelé: Administrator, guest, System user, ... skupiny Administrators, PowerUsers, PrintOperators, ... oprávnění v NTFS klasický DAC systém s vlastníkem (jako Unix) dnes navíc ještě MIC (tokeny, UAC) síťová oprávnění čtení, zápis, čtení+zápis (z Windows pro DOS) uplatňují se při přístupu skrze síť

27 Speciální SID

28 Oprávnění v NTFS „zjednodušená“ a „skutečná oprávnění“
tj. dva dialogy pro nastavení oprávnění zjednodušená obsahují několik skutečných běžně se používají pouze ta zjednodušená viz

29 Problém Administrátora ve Win
ještě ve Windows XP všichni jako Administrator problém: uživatel může snadno poškodit systém nový problém: Internet přináší do počítače bez možnosti důkladné kontroly nedůvěryhodná data → malware se snadno šíří skrz , www jenže aplikace (včetně Microsoft Office) potřebovaly ke své funkci Administrátorské oprávnění například zápis konfigurace do globálních registrů nebo do adresáře, kde je nainstalován program Microsoft se ani nepokusil zajistit, aby uživatelé pracovali jako běžný uživatel Unix: odjakživa je účet správce jen pro správu systému (pozn)

30 MIC Mandatory Integrity Control
uvedeno ve Windows Vista (2007), Server 2008 dodatečné zabezpečení a separace procesů opatření v rámci jednoho uživatele (!!!) tím je možné být „Administrátor“, ale zároveň jím nebýt proces uživatele má „bezpečnostní token“ funguje jen na procesy zahrnuté do UAC tedy nikoliv na služby (services), síťové služby apod. systém při přístupu k objektu, který je krytý bezpečnostním atributem zjišťuje, zda proces má díky tokenu oprávnění operaci provést (čtení, zápis) → MAC problém interakce procesů stejného uživatele

31 Bezpečnostní token token je přidělen běžícímu procesu
přiděluje ho logon proces prvnímu procesu uživatelova sezení po po úspěšné autentizaci uživatele (něco jako tikety u Kerberosu) další procesy ho dědí správce oken, panel, Skype, programy spuštěné z menu nebo pomocí Průzkumníka, příkazy v CMD.exe, ... obsahuje ID uživatele, GID, seznam oprávnění obsah tokenu nelze za běhu procesu měnit služba AIC umí přidělit novému procesu token s vyšším oprávněním

32 Integrity Level (IL) čtyři „bezpečnostní úrovně“ pro MIC
Low (SID: S ) Protected mode pro Internet Explorer Medium (SID: S ) běžný uživatel (User group) High (SID: S ) na základě členství ve skupině Administrators System (SID: S )

33 Člen skupiny Administrators
je v podstatě Administrátor, jenže... :-) prvnímu procesu jsou přiděleny dva tokeny: administrátorský obyčejný (jako člen skupiny „Users“) při práci uživatele je aktivní ten druhý, obyčejný program si může vyžádat elevaci oprávnění: pomocí XML manifestu (součást EXE souboru) pro privilegovanou operaci je nutné spustit nový proces (helper) uživatel ručně pomocí „Run as Administrator“ program může svoje oprávnění snížit „Protected mode“ pro Internet Explorer 7+

34 UAC User Account Control česky „Řízení uživatelských účtů“
když (nový) proces potřebuje vyšší oprávnění zobrazí se okno s žádostí o potvrzení od uživatele kvůli zamezení spoofingu okolní plocha potemní tzv. „Secure desktop mode“ při vyšším UAC je nutné stisknout CTRL+ALT+DEL nebo i vložit heslo správce, přestože jsem správce tuto kombinaci nelze běžnou aplikací odchytit (jedině modifikací jádra, podvrženým ovladačem) převzato ze systému DOS → CTRL+ALT+DEL → restart PC mohla by to být jakákoliv jiná kombinace kláves

35 Vypnutí UAC nevyřadí MIC z činnosti
tj. i člen Administrators je stále „běžný uživatel“ požadavek na elevaci ale nespustí UAC tím pádem nebude požadavek na elevaci proveden vyřadí však z činnosti přemapování zápisů tj. „File and Registry Virtualization“: HKLM „Program Files“ → %AppData% Poznámka: mám dojem, že po zakázání UAC mají procesy v systému menší překážky

36 UIPI User Interface Privilege Isolation
UAC má „různá oprávnění“ u stejného uživatele s tím jádro OS nepočítá procesty stejného uživatele se mohou ovlivňovat s UAC je nežádoucí, aby proces s nižší Integrity level (IL) mohl ovlivnit proces s vyšším IL pro řešení útoku „shatter attack“ omezuje zasílání zpráv (se spustitelným kódem) bohužel funguje dobře jen pro low IL neřeší tedy všechny možné shatter attacky (!!!)

37 Run as Administrator spuštění procesu s privilegovaným tokenem
kontextové menu (klik pravým tlačítkem myši) vyskočí UAC jsem-li členem Administrators → jen potvrzení (OK) jsem-li běžný uživatel → UAC žádá heslo správce při vyšším nastavení UAC: nutno stisknout CTRL+ALT+DEL, příp. i heslo správce proces pak běží skutečně s Administrátorským oprávněním (jinak běží s běžnými, viz dříve) viz výstup příkazu whoami v CMD.exe

38 Tichá elevace oprávnění
ve Windows 7 (a novějších) pro programy v %system32% musí být navíc elektronicky podepsány Microsoftem je-li uživatel členem skupiny Administrators tedy má i „administrátorský“ token v takovém případě nevyskočí UAC tichá elevace je snahou o omezení počtu výzev UAC protože uživatel si „nacvičí prostě souhlasit“ ...a text v potvrzovacím okně prostě nečte zneužíváno pro „sideload“ jiného kódu je velmi obtížné ošetřit všechny možné scénáře

39 Protokol SMB SMB je zkratka pro Server Message Block
původně protokol LAN Manager IBM a Microsoft, původně NetBIOS, dnes TCP/IP SMB zprávy se „vozí“ uvnitř nějakého síťového protokolu NetBIOS pro adresaci MAC adresy (funguje bez nastavování) IP adresy se musí přidělit, ale stejně je dnes každý potřebuje 1992: Andrew Tridgell → projekt Samba odhalil totožnost mezi DEC Pathworks a LAN Manager poskytované služby (pomocí RPC) sdílení souborů → UNC tisk na vzdálené tiskárny autentizace uživatelů (Doména Windows, Active Directory)

40 UNC Uniform Naming Convention označení umístění síťového zdroje
pro sítě Microsoft Windows sdílený adresář, soubor, tiskárna \\Počítač\SdílenýAdresář\Upřesnění Počítač je jméno počítače (platné v síti Microsoft) sdílený adresář je název sdíleného prostředku upřesnění může být cesta (novější implementace) kořen připojeného disku lze umístit do podadresáře

41 Jména počítačů broadcast stanice vysílá broadcastem do sítě své jméno
ostatní naslouchají a doplňují si svůj seznam stanice hlasují → master browser (ví „všechno“) WINS server server udržuje databázi jmen stanic opuštěno ve prospěch DNS řešení DNS příklon k řešení podle Internetu tj. převod jméno → IP adresa propojení s DHCP → stanice získá IP a zanese jméno do DNS

42 Mapování uživatelů winbind démon poskytující ve Windows mapování
UID → jméno uživatele (a zpět) je nutné při sdílení souborů s oprávněními databáze uživatelů je na vzdáleném stroji sdělení jména uživatele (podle SID) při výpisu adresáře ugidd obdoba pro unixové systémy

43 Příklad (přístup ze sítě)

44 Počítače samostatné nejsou nijak vázané na ostatní počítače v síti
takto fungovaly až do Windows 98 v doméně Windows počítač má na serveru vlastní účet vzniká „vstupem do domény“ (na heslo správce domény) při startu se počítač „přihlásí“ větší vztah důvěry mezi počítačem a serverem počítač uznává uživatele definované na serveru tzv. „doménový uživatel“

45 Doména Windows plochá centrální databáze
uloženi uživatelé, skupiny, počítače uživatel: jméno, heslo, členství ve skupinách databáze uložena na PDC (Primary Domain Controller) usnadnění správy uživatel nemusí existovat na všech počítačích v doméně uživatel má jeden účet a jedno heslo v celé síti stěhující se profil domácí adresář se při přihlášení kopíruje na stanici při odhlášení se kopíruje zase zpět na server bohužel je to poměrně pomalá operace

46 Active Directory AD je nástupcem Domény Windows
proprietální implementace LDAP + Kerberos Kerberos dává autentizační tokeny na omezenou dobu stromová databáze uživatelé, skupiny, tiskárny → objekty v AD kontext objektu → je v nějakém podstromu AD na kontext může být definován „malý administrátor“ větší škálovatelnost pro větší sítě jednodušší vztahy mezi stromy implementace AD serveru → Samba 4 je teprve ve vývoji, v roce 2012 pre-release

47 Autentizace v SMB NTLM (NT LAN Manager)
autentizace pomocí jména a hesla řeší problém odposlechnutí autentizačních údajů je proto nutná kryptografická ochrana na serveru uložen hash, klient posílá také hash (MD5) NTLMv1 → DES, NTLNv2 → MD5, NTLMv2 Session → MS-CHAP z odposlechnutého hashe není možné získat původní heslo problém → šifrovaný tvar je vždy stejný (např. MD5) komunikaci lze odposlechnou a zašifrovaný tvar použít → toto je tzv. replay attack řeší se pomocí challenge-response (tj. NTLMv2)

48 Challenge-reponse metoda výzva → odpověď
klient pošle serveru žádost o autentizaci server nabídne náhodné číslo klient použije na heslo hash a pak ono náhodné číslo výsledek je přenesen na server (odpověď klienta) server má na disku uložen hash hesla na hash stejná operace s náhodným číslem porovnání výsledku s odpovědí klienta je nepravděpodobné, že příště zvoleno stejné číslo nelze proto využít replay-attack, protože komunikace je závislá na vybrané náhodné hodnotě

49 LM hash původní způsob uložení hesla
pro uložení hesel používáno do Windows NT později používáno kvůli zpětné kompatibilitě ve Windows Vista implicitně vypnuto → NT hash (NTLM) pro uložení hesla se nepoužívá kryptografická sůl pro autentizaci lze využít i ukradený hash → replay attack uložení hesla heslo je převedeno na velká písmena heslo je doplněno nulami na délku 14 bajtů heslo je rozděleno na dvě poloviny (po 7 bajtech) poloviny zvlášť zašifrovány pomocí DES

50 NTLM nástupce za LM hash autentizační protokol → challenge-response
NTLMv1 NTLMv2 od Windows NT 4.0 SP4 NTLM2 session napadnutelné pomocí duhových tabulek


Stáhnout ppt "Počítačová bezpečnost 8. Uživatelé a oprávnění"

Podobné prezentace


Reklamy Google