13. Linux Shrnutí a doplněnízcu.arcao.com/kiv/zos/prednasky/13-zosp13.pdf · 2007. 12. 31. ·...

38
13. Linux Shrnutí a doplněZOS 2006, L. Pešička

Transcript of 13. Linux Shrnutí a doplněnízcu.arcao.com/kiv/zos/prednasky/13-zosp13.pdf · 2007. 12. 31. ·...

Page 1: 13. Linux Shrnutí a doplněnízcu.arcao.com/kiv/zos/prednasky/13-zosp13.pdf · 2007. 12. 31. · Lpr vytiskne zadaný soubor na tiskárnu ... jaro/st/referat_kerberos_pam.html

13. LinuxShrnutí a doplnění

ZOS 2006, L. Pešička

Page 2: 13. Linux Shrnutí a doplněnízcu.arcao.com/kiv/zos/prednasky/13-zosp13.pdf · 2007. 12. 31. · Lpr vytiskne zadaný soubor na tiskárnu ... jaro/st/referat_kerberos_pam.html

Obsah

Linux – poznámkyOvěřování uživatelů, bezpečnost OSTransakce, stabilní paměť

Page 3: 13. Linux Shrnutí a doplněnízcu.arcao.com/kiv/zos/prednasky/13-zosp13.pdf · 2007. 12. 31. · Lpr vytiskne zadaný soubor na tiskárnu ... jaro/st/referat_kerberos_pam.html

Linux (wikipedia)

Jádro operačního systémuPlanetka

Planetka (9885) obíhajícímezi Marsem a Jupiterem

Prací prášekZe Švýcarska

Page 4: 13. Linux Shrnutí a doplněnízcu.arcao.com/kiv/zos/prednasky/13-zosp13.pdf · 2007. 12. 31. · Lpr vytiskne zadaný soubor na tiskárnu ... jaro/st/referat_kerberos_pam.html

GNU / Linux

Jádro + aplikační swLinuxové jádro Linus TorvaldsKnihovny a nástroje GNU Richard Stallman

GNU / HurdNapř. Debian GNU/HurdMnožina serverů pracujícíchnad mikrojádremGNU Mach jako mikrojádroaktuálně

Page 5: 13. Linux Shrnutí a doplněnízcu.arcao.com/kiv/zos/prednasky/13-zosp13.pdf · 2007. 12. 31. · Lpr vytiskne zadaný soubor na tiskárnu ... jaro/st/referat_kerberos_pam.html

Linux

Volně šířený systém – kdokoliv si ho může nainstalovat a dále šířit

Zdrojové texty – kdokoliv může modifikovat jádro nebo systémovéprogramy

Vypadá a chová se jako UNIX – kompatibilita

Různé distribuce

Page 6: 13. Linux Shrnutí a doplněnízcu.arcao.com/kiv/zos/prednasky/13-zosp13.pdf · 2007. 12. 31. · Lpr vytiskne zadaný soubor na tiskárnu ... jaro/st/referat_kerberos_pam.html

Komponenty Linuxu

Monolitické jádro OSJediné běží v režimu jádraPoskytuje základní abstrakce (procesy, virtuální paměť, soubory)Aplikace žádají o služby jádra prostřednictvím volání služebsystémuUmožňuje za běhu přidávat a vyjímat moduly (ovladače)

Přidat / zrušit části kódu jádra na žádost

Systémové knihovnyStandardní funkce pro použití v aplikacíchNěkteré komunikují s jádrem OS (write apod.)Mnoho knihovních funkcí jádro nevolá (sin, cos, tan, ..)

Page 7: 13. Linux Shrnutí a doplněnízcu.arcao.com/kiv/zos/prednasky/13-zosp13.pdf · 2007. 12. 31. · Lpr vytiskne zadaný soubor na tiskárnu ... jaro/st/referat_kerberos_pam.html

Komponenty Linuxu

Systémové programyNastavení konfigurace systému při startuDémonové procesy

inetd – obsluha příchozích síťových spojeníSyslogd – zápis logů

Uživatelské programyls, cat, joe, …

Page 8: 13. Linux Shrnutí a doplněnízcu.arcao.com/kiv/zos/prednasky/13-zosp13.pdf · 2007. 12. 31. · Lpr vytiskne zadaný soubor na tiskárnu ... jaro/st/referat_kerberos_pam.html

Linux – jádro systému

Linux – jádro systému; od roku 1991Uživatelské programy, knihovny, většina systémových vznikla v nezávislých projektech (především GNU – ls, cp, ..)GNU / Linux, GNU / Hurd

Distribuce (RedHat, SUSE, Mandriva, Debian)JádroProgramy z různých zdrojůSpráva balíků (RedHat – rpm, Debian – dpkg)

Page 9: 13. Linux Shrnutí a doplněnízcu.arcao.com/kiv/zos/prednasky/13-zosp13.pdf · 2007. 12. 31. · Lpr vytiskne zadaný soubor na tiskárnu ... jaro/st/referat_kerberos_pam.html

Privilegované módy v různých systémech

Linux – 2 úrovně (User a Kernel mód)FreeBSD – také 2VMS – 4 (Kernel, Executive, Supervisor, User)Multics – 8 úrovní

User modenedovolí privilegované instrukce – ohrozit systémomezen přístup do pamětizakázána komunikace na I/O portech

Page 10: 13. Linux Shrnutí a doplněnízcu.arcao.com/kiv/zos/prednasky/13-zosp13.pdf · 2007. 12. 31. · Lpr vytiskne zadaný soubor na tiskárnu ... jaro/st/referat_kerberos_pam.html

Přístup do paměti - Linux

mechanismus stránkováníprogram přistupuje na virtuální adresuvyužití tabulky stránek pro převod na fyzickou adresumapování není – výjimkav tabulce stránek – práva přístupu a druh přístupucache na několik posledních mapování – TLB (transactionlookaside buffer)

Page 11: 13. Linux Shrnutí a doplněnízcu.arcao.com/kiv/zos/prednasky/13-zosp13.pdf · 2007. 12. 31. · Lpr vytiskne zadaný soubor na tiskárnu ... jaro/st/referat_kerberos_pam.html

Procesy, pamět

procesy běží v USER modu, celé jádro v KERNEL modukaždý proces – vlastní tabulka stránek – určuje jeho adresový prostorkód i data jádra – sdílena mezi všemi procesy, z KERNEL modu vždy přístupné

nepoužívá se segmentace – je lineární adresový prostor

Page 12: 13. Linux Shrnutí a doplněnízcu.arcao.com/kiv/zos/prednasky/13-zosp13.pdf · 2007. 12. 31. · Lpr vytiskne zadaný soubor na tiskárnu ... jaro/st/referat_kerberos_pam.html

Přepínání procesů

proces – USER mod – obsluha systémového volánínebo zpracování výjimky – KERNEL módUSER mód – preemtivní multitasking

k přepnutí může dojít kdykoliv, rozhodnutí plánovačeKERNEL mód – kooperativní multitasking

když sám požádáčekání na nějakou událost (zablokování procesu)zjednodušuje návrh jádrapreemtivní kernel – lze při kompilaci jádra 2.6 – lepšíinteraktivita

Page 13: 13. Linux Shrnutí a doplněnízcu.arcao.com/kiv/zos/prednasky/13-zosp13.pdf · 2007. 12. 31. · Lpr vytiskne zadaný soubor na tiskárnu ... jaro/st/referat_kerberos_pam.html

Přepínání procesů

kernel threadynemají vlastní tabulku stránek ani uživ. adres. prostorběží celou dobu v jádřečinnosti na pozadí – např. zápis modifikovaných bufferůdruhý význam pojmu (thready přepínané v jádře)

Linux – přepnutí procesu v jádřecond_resched() nebo schedule()

Page 14: 13. Linux Shrnutí a doplněnízcu.arcao.com/kiv/zos/prednasky/13-zosp13.pdf · 2007. 12. 31. · Lpr vytiskne zadaný soubor na tiskárnu ... jaro/st/referat_kerberos_pam.html

Linux – vytvoření procesu

Oddělení operace vytvoření procesu a spuštění nového programu

Vytvoření nového procesuVolání fork ()Nový proces provádí stejný kód jako původní

Spuštění nového programuVolání execve()

Page 15: 13. Linux Shrnutí a doplněnízcu.arcao.com/kiv/zos/prednasky/13-zosp13.pdf · 2007. 12. 31. · Lpr vytiskne zadaný soubor na tiskárnu ... jaro/st/referat_kerberos_pam.html

Fork ()

Přesná kopie původního procesuPo vytvoření mají oba procesy stejný stav (obsah proměnných..)Každý z nich běží ve vlastní kopii VMOba pokračují v běhu návratem z volání fork() a nadále běžínezávislepid = fork()Původní proces – rodič, nově vytvořený – potomekFork vrací

Pro rodiče – PID potomkaPro potomka – vrací nulu

Page 16: 13. Linux Shrnutí a doplněnízcu.arcao.com/kiv/zos/prednasky/13-zosp13.pdf · 2007. 12. 31. · Lpr vytiskne zadaný soubor na tiskárnu ... jaro/st/referat_kerberos_pam.html

Implementace fork()

První generace UnixůFork zduplikoval celý adresní prostor rodiče fyzickým kopírovánímČasově náročné, navíc často hned exec – tedy zbytečněvfork() – nedělá kopírování, potomek nesmí modifikovat data, smípouze exec nebo exit

Moderní systémy – copy on writeStránky sdíleny nejprve jako read onlyZápis do stránky – výjimka, zduplikuje a nová kopie read writePůvodní rámec zůstává read only, zápis – zkontroluje, zda je jen jeden vlastník – přeznačí na read write

Page 17: 13. Linux Shrnutí a doplněnízcu.arcao.com/kiv/zos/prednasky/13-zosp13.pdf · 2007. 12. 31. · Lpr vytiskne zadaný soubor na tiskárnu ... jaro/st/referat_kerberos_pam.html

Implementace fork()

V Linuxu využívá volání jádra clone()Obecnější, lze specifikovat co bude rodič a potomek sdílet a co bude duplikováno (pamět, kořenový a pracovní adresář, otevřené soubory, obslužné rutiny pro signály)Fork – nesdílí nicVfork – sdílí virtuální paměť

Page 18: 13. Linux Shrnutí a doplněnízcu.arcao.com/kiv/zos/prednasky/13-zosp13.pdf · 2007. 12. 31. · Lpr vytiskne zadaný soubor na tiskárnu ... jaro/st/referat_kerberos_pam.html

Spuštění programu

Služba execve nahradí obsah paměti volajícího procesu procesem spuštěným ze zadaného souboruIf ( fork() == 0)

execve (“/bin/ls”, argv, envp);Proces spustí svého potomka, který místo sebe spustí/bin/ls

Page 19: 13. Linux Shrnutí a doplněnízcu.arcao.com/kiv/zos/prednasky/13-zosp13.pdf · 2007. 12. 31. · Lpr vytiskne zadaný soubor na tiskárnu ... jaro/st/referat_kerberos_pam.html

Ověřování uživatelů

Autentizace (authentication)Jednoznačné prokázání totožnosti (identity) uživateleIdentifikace – vůbec vědět, kdo jeAutentizace – ověření, zda je opravdu tím, za koho se vydáváUživatel zadá jméno (identifikuje se), po zadání hesla dojde k jeho autentifikaci – systém ověří, zda je opravdu tím, za koho se vydává

Page 20: 13. Linux Shrnutí a doplněnízcu.arcao.com/kiv/zos/prednasky/13-zosp13.pdf · 2007. 12. 31. · Lpr vytiskne zadaný soubor na tiskárnu ... jaro/st/referat_kerberos_pam.html

Metody autentikace

Uživatel něco znáHesloTransformační funkce (výzva – odpověď)

Uživatel něco máKalkulátor pro jednorázová hesla

Uživatel má určité biometrické vlastnostiOtisky prstůSítnice oka? Spolehlivost

Page 21: 13. Linux Shrnutí a doplněnízcu.arcao.com/kiv/zos/prednasky/13-zosp13.pdf · 2007. 12. 31. · Lpr vytiskne zadaný soubor na tiskárnu ... jaro/st/referat_kerberos_pam.html

Autorizace

Řízení přístupu ke zdrojům systémuNapř. zda máme právo nějaký soubor číst, zapisovat do něj..Musíme systému prokázat kdo jsme (autentizace) a on ověří, zda pro danou činnost máme právo (autorizace)

Page 22: 13. Linux Shrnutí a doplněnízcu.arcao.com/kiv/zos/prednasky/13-zosp13.pdf · 2007. 12. 31. · Lpr vytiskne zadaný soubor na tiskárnu ... jaro/st/referat_kerberos_pam.html

PAM (Pluggable AuthenticationModules)

Zajistit nezávislost programů na konkrétních autentizačníchpostupech

Aplikaci zajímá pouze to, zda má službu poskytnout nebo ne

Mezivrstva Aplikace, požadující ověření identityAutentizační metoda (/etc/passwd, Kerberos, biometrie)

Page 23: 13. Linux Shrnutí a doplněnízcu.arcao.com/kiv/zos/prednasky/13-zosp13.pdf · 2007. 12. 31. · Lpr vytiskne zadaný soubor na tiskárnu ... jaro/st/referat_kerberos_pam.html

PAM

Page 24: 13. Linux Shrnutí a doplněnízcu.arcao.com/kiv/zos/prednasky/13-zosp13.pdf · 2007. 12. 31. · Lpr vytiskne zadaný soubor na tiskárnu ... jaro/st/referat_kerberos_pam.html

PAM

4 funkční oblastiAutentizace uživatele

Ověřuje identitu uživatele – kontrola hesla, připojení k serveru Kerberos, …

Kontrola účtuNapř. povolení přístupu jen během určité dobyOmezení počtu současně přihlášených uživatelů

Správa relacePřed a po provedení službyNastavuje proměnné prostředí, omezuje systémové prostředkyPřipojení dalších filesystémů, chroot, …

Změna heslaKontrola délky a kvality hesla

Page 25: 13. Linux Shrnutí a doplněnízcu.arcao.com/kiv/zos/prednasky/13-zosp13.pdf · 2007. 12. 31. · Lpr vytiskne zadaný soubor na tiskárnu ... jaro/st/referat_kerberos_pam.html

Kerberos

Použití tzv. lístků vydávaných centrálním autentizačnímserverem (spravuje databázi všech uživatelů)Podpora single sign-onUživatel se autentizuje vůči serveru Kerbera pouze jednouZíská základní lístek – Ticket Granting Ticket (TGT)TGT použije pro získání dalších lístků pro přístup ke službám vyžadujícím autentizaciKromě prvotní auntetizace vše ostatní transparentněPoužití např. distribuovaný souborový systém AFS

Page 26: 13. Linux Shrnutí a doplněnízcu.arcao.com/kiv/zos/prednasky/13-zosp13.pdf · 2007. 12. 31. · Lpr vytiskne zadaný soubor na tiskárnu ... jaro/st/referat_kerberos_pam.html

Kerberos, distribuovaný fs AFS

Kerberoskinit – získání TGT lístkuklist – seznam akt. lístků na diskukdestroy – zničení uložených lístkůkpasswd – změna kerberovského hesla

AFSoprávnění k systému afs - tokenaklog –c kiv.zcu.cztokens

Page 27: 13. Linux Shrnutí a doplněnízcu.arcao.com/kiv/zos/prednasky/13-zosp13.pdf · 2007. 12. 31. · Lpr vytiskne zadaný soubor na tiskárnu ... jaro/st/referat_kerberos_pam.html

Škodlivé programy

Malicious softwareVyžadují hostitelský program nebo nezávisléBacteria

Konzumuje systémové zdroje tím, že se replikujeLogic bomb

Pokud v systému nastanou určité podmínky, provede se nějakáškodlivá akce.

TrapdoorTajný nedokumentovaný vstupní bod do programu, obejdou se běžné přístupové kontroly

Page 28: 13. Linux Shrnutí a doplněnízcu.arcao.com/kiv/zos/prednasky/13-zosp13.pdf · 2007. 12. 31. · Lpr vytiskne zadaný soubor na tiskárnu ... jaro/st/referat_kerberos_pam.html

Škodlivé programy

Trojan HorseTajná nedokumnetovaná rutina obsažená v jinak užitečném programu. Při spuštění programu dojde i k vykonání tohoto kódu.

VirusKód zapouzdřený v programu, kopíruje se a vkládádo dalších programů. Kromě vlastního šířenívykonává různé škodlivé činnosti

Page 29: 13. Linux Shrnutí a doplněnízcu.arcao.com/kiv/zos/prednasky/13-zosp13.pdf · 2007. 12. 31. · Lpr vytiskne zadaný soubor na tiskárnu ... jaro/st/referat_kerberos_pam.html

Škodlivé programy

Worm (červ)Program může replikovat sebe a šířit se z počítače na počítač přes sít. Na cílovém stroji ve své činnosti pokračuje. Může vykonávat dalšíškodlivé činnosti.

Page 30: 13. Linux Shrnutí a doplněnízcu.arcao.com/kiv/zos/prednasky/13-zosp13.pdf · 2007. 12. 31. · Lpr vytiskne zadaný soubor na tiskárnu ... jaro/st/referat_kerberos_pam.html

Viry

ParazitníMemory-residentBoot sectorStealth virus

Skrývá se před detekčními programyPolymorphic

Mění se kód viruSnaží se bránit detekci podle signature viru

Page 31: 13. Linux Shrnutí a doplněnízcu.arcao.com/kiv/zos/prednasky/13-zosp13.pdf · 2007. 12. 31. · Lpr vytiskne zadaný soubor na tiskárnu ... jaro/st/referat_kerberos_pam.html

Antiviry

DetekceZjistit, že je soubor napadený

IdentifikaceZjistit, o jaký virus se jedná

Odstranění

Databáze signatur virů (aktualizace)Heuristika

Page 32: 13. Linux Shrnutí a doplněnízcu.arcao.com/kiv/zos/prednasky/13-zosp13.pdf · 2007. 12. 31. · Lpr vytiskne zadaný soubor na tiskárnu ... jaro/st/referat_kerberos_pam.html

Koncept verifikačního monitoru

Reguluje přístup subjektů (uživatelské procesy) k objektům (paměť)Verifikační monitor má přístup k security kernel databázi

Seznam přístupových privilegií každého subjektuSeznam ochranných atributů každého objektu

Audit fileLoguje důležité událostiPřístupy, změny přístupových práv

Page 33: 13. Linux Shrnutí a doplněnízcu.arcao.com/kiv/zos/prednasky/13-zosp13.pdf · 2007. 12. 31. · Lpr vytiskne zadaný soubor na tiskárnu ... jaro/st/referat_kerberos_pam.html

Bezpečnostní chyby

Příklad starší bezp. chybyLpr vytiskne zadaný soubor na tiskárnuLpr –r soubor po vytisknutí zrušíVe starších verzích Unixu bylo možné, aby kdokoliv vytisknul a zrušil /etc/passwd

Page 34: 13. Linux Shrnutí a doplněnízcu.arcao.com/kiv/zos/prednasky/13-zosp13.pdf · 2007. 12. 31. · Lpr vytiskne zadaný soubor na tiskárnu ... jaro/st/referat_kerberos_pam.html

Vnější útoky na systém

Vyhledání vhodného systému„skenování“ sítě

Zjištění informací o počítačiOS, spuštěné servery

Napadení systému

Problém – pro všechny fáze existují na síti vytvořené nástroje, útočník nemusí být ani žádným odborníkem na dané téma

Page 35: 13. Linux Shrnutí a doplněnízcu.arcao.com/kiv/zos/prednasky/13-zosp13.pdf · 2007. 12. 31. · Lpr vytiskne zadaný soubor na tiskárnu ... jaro/st/referat_kerberos_pam.html

Zjištění informací o počítači

Zjištění typu stroje (fingerprint)Např. reakce na nesmyslné příznaky (SYN-FIN-URG-PUSH) - každý OS a protokolový zásobník odpoví jinakOdposloucháváním provozu

Scan portůServery poslouchají na určeném portu, nejčastěji na well-known portech

Page 36: 13. Linux Shrnutí a doplněnízcu.arcao.com/kiv/zos/prednasky/13-zosp13.pdf · 2007. 12. 31. · Lpr vytiskne zadaný soubor na tiskárnu ... jaro/st/referat_kerberos_pam.html

Přetečení bufferu uloženého na zásobníku

Programy vytvořené v CNekontroluje např. meze polí, umožnuje přepsat část paměti

Volání procedury – na zásobník návratovou hodnotuSpustí proceduru, vytvoří místo pro lokální proměnnéUživatel zadá např. delší řetězec, přepíše část další paměti, včetněnávratové adresyNávrat – intstrukce RET – začne vykonávat instrukce od jiné adresy (pokud náhodné, program většinou zhavaruje)

Page 37: 13. Linux Shrnutí a doplněnízcu.arcao.com/kiv/zos/prednasky/13-zosp13.pdf · 2007. 12. 31. · Lpr vytiskne zadaný soubor na tiskárnu ... jaro/st/referat_kerberos_pam.html

Odkazy

Některé použité při zpracování této přednášky

Báječný svět Linuxu 2.6 (z roku 2003)http://www.linuxzone.cz/index.phtml?ids=10&idc=782

Porovnání systémů Linux a FreeBSDhttp://www.root.cz/serialy/porovnani-systemu-linux-a-freebsd/

PAMhttp://www.root.cz/clanky/pam-sprava-autentizacnich-mechanismu/http://www.root.cz/clanky/pam-pouziti-v-praxi/

Page 38: 13. Linux Shrnutí a doplněnízcu.arcao.com/kiv/zos/prednasky/13-zosp13.pdf · 2007. 12. 31. · Lpr vytiskne zadaný soubor na tiskárnu ... jaro/st/referat_kerberos_pam.html

Odkazy 2

PAM, Kerberoshttp://www.fi.muni.cz/~kas/p090/referaty/2005-jaro/st/referat_kerberos_pam.html

Kerberoshttp://meta.cesnet.cz/cs/docs/software/system/kerberos.html