Skyddsmekanism Säkerhet mekanism och policy En mekanism som, rä# använd, hjälper dig förhindra något du vill undvika Dörrlås inbrof FilräHgheter informaionsstöld Kryptering avlyssning Lösenord obehörig access 1 Policy Regler för hur skyddsmekanismer skall användas för af uppnå säkerhet Lås dörren när du går hemifrån Ge inte läsrähghet i onödan Skicka inte lösenord över en okrypterad länk Säkerhet Skyddsmekanism och policy i kombinaion förhindrar brof mot (något/några av) Sekretess (confideniality) Dataintegritet helhet (integrity) Tillgänglighet (availability) Äkthet (autenicity) Spårbarhet (accountability) 2 3 Säkerhetsnivåer Fysisk Med fysisk access Ill ef system är det läf uwöra afacker. Mänsklig Kan användare avluras lösenord eller påluras program är det läf uwöra afacker. OperaIvsystem Utan skyddsmekanismer i OS är det läf uwöra afacker. Nätverk Om kummunikaion kan avläsas, hindras, injiceras, eller ändras är det läf uwöra afacker. Övnng: Ge exempel på afacker för varje punkt. Principle of least privilege Ge aldrig en användare mer rähgheter än vad som är precis Illräckligt för af användaren skall kunna lösa sina uppgi`er Eller kortare: Dela ut så lite rähgheter som möjligt... 4 5 1
Hot, Hot, Hot Trojan horse låtsas vara vad det inte är Trap door bakdörr lämnad av programmeraren Logic bomb allt som det ska Ill ef villkor uppfylls Buffer overflow skriver över återhoppsadressen Virus skadlig kod som läggs Ill i befintliga strukturer Worm förökar sig autonomt i och mellan system Port scan söker ingångar inför en afack Denial of service hindrar användning av en tjänst Man in the middle en tolk mellan er ni inte vet om Masquerade någon annan än den utger sig för DicIonary afack lösenorden finns nog i ordlistan Buffer overflow När en array fylls med mer data än den är designad för (t.ex. ef litet program). Data kan komma från t.ex. nätverk eller tangentbord. Om arrayen är lagrad på stacken (är lokal varaibel eller parameter) så skrivs funkionens returadress över. Den nya returadressen hoppar Ill ef program som lagrats i arrayen. Mycket vanligt programmeringsfel i C/C++. No execute bit ef litet skydd Wikipedia: buffer overflow Pintos: examples/overflow.c (m.fl. filer) 6 7 VikIga mekanismer Filskydd sekretess LösenordsautenIsering av användare äkthet, spårbarhet Kryptering av kommunikaion och data sekretess, äkthet (cerifikat) RAID Illgänglighet Dörrlås allt ovan genom af hindra fysisk Illgång Ill systemet Accesskontroll TradiIonell UNIX Normala användare kan kontrollera sina filer Superuser (root) har privilegier Ill allt PoLP suffer: Alla privilegier eller inga... DiscreIonary Access Control (DAC) accessmatris kontrolleras vid användning av resurs varje användare har rähghet Ill andra användare, processer och filer Role Based Access Control (RBAC) varje roll har en uppsäfning fingradigare privilegier varje användare Illdelas en roll en process exekverar med användarens rolls privilegier Capability en rähghet lagrad i OS, som en biljef t.ex. öppnad fil, processen kan öppna en fil och e`er det släppa sina rähgheter (så samma fil inte längre kan öppnas). E`ersom rähghetskontroll gjordes när filen öppnades kan filen användas med dessa rähgheter så länge filen inte stängs. Kerberos biljefer 8 9 Privilegier i Solaris 10 (RBAC) Som normalt endast root kan göra frif Byta ägare på filer Ge bort ägarskap på egna filer Exekvera en fil Läsa en fil Skriva en fil Söka en katalog Ändra rähgheter på en fil Byta rotkatalog (chroot) Skicka signaler (t.ex. döda) processer Och många fler... Accessmatris RäHghetsdomain rader Användare Process Procedur Object kolumner Fil Resurs Domain RäHgheter i varje rad- kolumn- ruta läsa ef objekt (read) skriva ef objekt (write) exekvera ef objekt (execute) byta rähghetsdomän (switch) lägga Ill eller ta bort rähgheter i en kolumn (own) kopiera en rähghet inom en kolumn (copy, transfer) (med/utan copy- räfen) kontrollera rähgheterna för en rad (rähghetsdomän) 10 11 2
AutenIsering Kan ske genom något vi vet (lösenord) innehar (id- kort) är (fingeravtryck, irismönster) gör (skriver, talar) Vad är säkrast? Vad är vanligast? LösenordsautenIsering Lösenord för varje användare lagrad på fil eller i central databas Anges vid inloggning Sårbart Obehörig åtkomst av lösenordsfilen Uppdatering av eget lösenord utan access Ill filen? Gissning av lösenord OrdlisteaFack 12 13 OrdlisteaFack Lagra orden i en ordlista i samma format som lösenorden Jämför varje lösenord med alla ord Träff? Ta- Da! Lösenordsskydd Lagra lösenordfilen utan läsrähghet Lagra lösenorden krypterat Använd olika kryptering på varje lösenord genom af Ill varje lösenord lägga Ill ef känt värde kallat salt Begränsa antalet misslyckade försök Uppmuntra användare välja säkra lösenord Engångslösenord Misslyckade försök loggas och delayas 14 15 Kryptering Symmetrisk (AES) En gemensam krypteringsnyckel (hemlighet) EffekIv kryptering Nyckelutbyte svårlöst Assymetrisk (RSA) Olika nycklar (en publik, en privat (hemlig)) Långsam kryptering Nyckelutbyte enkelt CerIfikat En nyckel signerad av en tredje Illtrodd part Krypterad kommunikaion Kalle skickar sin publika nyckel Ill Nisse Nisse använder den Ill af kryptera meddelanden Ill Kalle Kalle avkrypterar med sin privata nyckel Tvärtom för meddelanden från Kalle Ill nisse. 16 17 3
Man in the middle Kalle skickar sin publika nyckel Ill Nisse, men den snappas upp av John. John skickar istället sin egen publika nyckel Ill Nisse och låtsas det är Kalles nyckel. Nisse använder Johns nyckel Ill af kryptera meddelanden Ill Kalle. Dessa snappas upp av John som avkrypterar med sin privata nyckel, krypterar med Kalles publika nyckel och skickar sedan vidare Ill Kalle. Kalle avkrypterar med sin privata nyckel. Kalle och Nisse märker inte af deras brev avlyssnats. RAID Redundant Array of Individual Disks Använd flera diskar för af öka prestanda och Illgänglighet Men: fler diskar större risk af en går sönder Inte ersäfning för backup 7 standardiserade nivåer (nivå 0-6) Hur skall kommunikaionen bli säker? 18 19 RAID- nivåer i korthet Nivå 0: Inte RAID, Ingen redundans, Stripe Nivå 1: Enkel kostsam redundans, Mirror Nivå 2: Ovanlig. Hamming code. Nivå 3: En paritetsdisk, Bit interleaved. Nivå 4: En paritetsdisk. Block interleaved. Nivå 5: Distribuerad paritet. Block interleaved. Nivå 6: Extra felkorrigerande koder och extra disk. hfp://www.ecs.umass.edu/ece/koren/ architecture/raid/raidhome.html Bedömning av RAID Hur många diskar kan gå sönder utan af Illgängligheten sjunker (data förloras)? Hur bra pretanda vid många små diskaccesser? Hur bra prestanda vid stora diskaccessser? 20 21 UNIX filskydd (1) En superanvändare med obegränsad Illgång Ill allt (principle of least privilege?) Sista steget vid systemstart byter användare Varje process körs som en specifik användare Varje fil Illhör en ägare och en grupp Varje fil har en uppsäfning rähgheter Ägarens, Gruppens, Övrigas Varje process ärver användare och grupp från förälderprocessen UNIX filskydd (2) Read (r) (4) filer är läsbara innehåll i ktaloger går af lista Write (w) (2) filer är skrivbara går af lägga Ill filer i kataloger Execute (x) (1) filer går af exekvera (starta som process) det går af stega in i och förbi katalogen Setuid (s) när filen exekveras säfs användare eller grupp Ill ägaren av filen istället för af ärvas från förälderprocess 22 23 4
Set user ID (setuid) När filen exekveras säfs användare eller grupp Ill ägaren av filen istället för af ärvas från förälderprocess. DeFa Illåter af ef program löser sin specifika uppgi` med egna rähgheter. Separator This page is inteninally le` blank. T.ex. programmet passwd för af byta lösenord. Normala användare har ej läs/skrivrähghet Ill lösenordsfilen, men då passwd startar får processen dessa rähgheter. Programmet är skrivet så af endast byte av lösenord kan ske och så af lösenordsfilen hanteras korrekt. Lösenordsfilen är alltså forwarande skyddad och oläsbar. 24 25 RealIdssystem Processer garanteras exekvera inom på förhand bestämda Idsramar Meddelanden över gemensam bus (med kollisioner) garanters nå fram inom på förhand bestämd Id Handlar om förutsägbarhet och korrekthet Stort område Programspråket ADA bra DefiniIoner EF antal Tasks (T) Varje Task har en exekveringsid (L) Varje Task återkommer i en regelbunden Period (P) Varje Task har en Deadline (D), om inget annat anges används PeriodIden. Tasks kan vara sporadic eller aperiodic 26 27 CPU- utnyfjande För en Task är CPU- nyfjandet i genomsnif L/P Summeras CPU- nyfjandet för varje Task erhålles genomsnifliga totala CPU- nyfjandet T1: L = 5, P = 12 T2: L = 2, P = 8 5/12 + 2/8 = (40 + 24)/96 = 64/96 = 2/3 = 67% RealIdsalgoritmer (preempive) Cyclic execuive manuellt processschema skapas på förhand schemat läggs Ills det kan upprepas Rate Monotonic scheduling (RMS) kortare period ger högre prioritet automaisk schemaläggning högst prioriterade Tasks håler sin deadline schemaläggningstest garanterar Earliest Deadline First (EDF) närmaste deadline ger högst prioritet försöker uppfylla alla deadlines, miss av en kan ge kedjeeffekt och även högre prioriterade Tasks kan missa sin deadline schemaläggningstest garanterar 28 29 5
Schemaläggningstest RMS CPU- nyfjande < n(2 1/n - 1) där n är antalet Tasks EDF CPU- nytjande < 1 30 6