Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS...

66
Security (beveiliging) Erik Poll

Transcript of Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS...

Page 1: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Security (beveiliging)

Erik Poll

Page 2: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Overzicht

● Intro computer security● Authentication● Access Control● Wat kan er allemaal misgaan ?

– Buffer overflow, trojan horses, …● Netwerken & cryptografie● Volgende week ook: inbraak op ‘t UCI

Page 3: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

INTRO SECURITY

Page 4: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Wat is security?

● “controlling access to resources”● OS moet de beheerde resources

beschermen tegen ongeoorloofd gebruik

Page 5: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Welke resources moet ‘t OS beschermen?

● processor● geheugen● I/O devices, bijv

– disks– printers

● programma’s● data

Page 6: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Waartegen moet OS beschermen?

● Van het OS willen we bescherming van – van OS tegen gebruikers– van gebruikers tegen zichzelf– van (al dan niet kwaadwillende) gebruikers

tegen elkaar– alles tegen kwaadwillenden van buiten

● Niet alleen in multi-processing of multi-user omgeving, maar ook in single-user/single process omgeving!

Page 7: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Wat we al gezien hebben aan security:

● Kernel vs user mode (in hardware)● het begrip proces

– scheduling controleert access tot CPU– PCB controleert access tot files, geheugen, …

● virtual memory: paging, segmentation (deels in hardware)– controleert access tot geheugen

● file systemen, met rwx permissies– controleer access tot disk

Page 8: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Security in OS abstracties

● Algemeen: security onderdeel van abstracties die OS gebruikt

● Bijvoorbeeld:– User kan naar file schrijven, waarvoor low-

level schrijfinstructie aan disk gegeven wordt. Maar user mag niet rechtstreeks op disk schrijven dmv deze low-level instructie, en dit zou een security probleem zijn.

Page 9: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Security steeds groter probleem!

● Steeds meer gevoelige gegevens en diensten electronisch en on-line

● Computersystemen steeds kwetsbaarder, door– Toenemende complexiteit– Toenemende connectiviteit (netwerken)

Page 10: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

De realiteit

● “The only system which is truly secure is one which is switched off and unplugged, locked in a titanium lined safe, buried in a concrete bunker, and surrounded by nerve gas and very highly paid armed guards. Even then, I wouldn't stake my life on it” – Prof. Gene Spafford

Page 11: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Waarom is security moeilijk ?

● Toenemende complexiteit, waar security maar zo sterk is als de zwakste schakel

● Security fouten lastig te ontdekken:– Bijv: printer die niet werkt leidt snel tot klachten,

maar printer waar gratis geprint kan worden niet.● Gebruikers - en sysadmins – vinden security maar

lastig.– Bijv: afzetten security-features, of werken als

root/superuser/administrator

Page 12: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Security Objectives: CIA

● Confidentiality (geheimhouding)– Geen ongeautoriseerd lezen van gegevens

● Integrity (integriteit)– Geen ongeautoriseerd wijzingen van gegevens

● Availablity (beschikbaarheid)– Systeem beschikbaar voor legitieme gebruiker

dwz geen Denial-of-Service attack

Page 13: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Security Objectives

● Integrity is vaak belangrijker dan confidentiality. Bijv: – banksaldo's, tentamencijfers, ..., – hele OS en alle data na inbraak op computer!

● Privacy bijzonder geval van confidentiality, nl. voor persoonlijke gegevens

Page 14: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Hoe realiseer je security ? (AAAA)

Authentication1. Identificeer gebruikers

Access control1. Zeg wie wat mag en controleer dit

Auditing & Actie1. Kijk of er (toch) niks misgaat

2. En zoja: onderneem actie hiertegen

Page 15: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Security in fysieke wereld wordt ongeveer net zo gerealiseerd, bijv:

1. Wie laat je je huis/kamer binnen? 2. Wat mag iemand in je huis ?3. Kijk af en toe of er geen ramen zijn

ingeslagen, of waardevolle spullen ontbreken.4. Zoja: verander sloten, koop rolluiken, etc. en

bel de politie & de verzekering.

Maar er zijn essentiele verschillen! Met name: nadruk op 3 en 4.

Page 16: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Terminologie

Stallings noemt authentication– “user oriented access control” – “gebruikersgerichte toegangscontrole”

en access control– “data oriented access control”,– “gegevens gerichte toegangscontrole”

maar deze terminologie is niet standaard

Page 17: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

AUTHENTICATION

Page 18: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Authentication

● Identificatie dmv iets wat je hebt, bent, of weet– Sleutel– Gezicht, stem, vingerafdruk, iris (biometrie)– Handtekening, password

● of een combinatie hiervan– Paspoort + gezicht, smartcard + pincode.

Page 19: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Passwords

● Gebruikelijkste manier van authenticatie● Vaak een zwakke schakel:

– Passwords zijn vaak makkelijk te raden– Password worden niet geheim gehouden

Page 20: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Problemen met passwords (1)

● Meestal makkelijk te raden● Daarom brute force/dictionary attack mogelijk● Bescherming hiertegen:

– beperk aantal pogingen● maar dit maakt Denial-of Service attack mogelijk, als je de

usernamen kent

– vertraag inloggen

- houd gebruikers aan password policy

Page 21: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Problemen met passwords (2)

Passwords worden niet geheim gehouden– verteld aan anderen, opgeschreven– in scriptjes, password managers gezet– onge-encrypt over netwerk verstuurd bij

remote inloggen– verklapt door social engineering tricks

● bijv. tik jij altijd ctrl-alt-del in voor je inlogt op een machine in een PC zaal hier ?

Page 22: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Hoe slaat OS passwords op?

Plaintext password file, – dwz passwords “in the clear” opgeslagen, als

(uid, pwd)– Sterke access control cruciaal !– Ook voor backup tapes ...– Root kan alle passwords lezen

Page 23: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Hoe slaat OS passwords op?

Encrypted password file, – dwz passwords ge-encrypt opgeslagen, als

(uid, encryptkey(pwd))– Bij inloggen, password worden ge-decrypt en

vergeleken met ingetikt password– Password nooit unge-encrypt op disk, maar

wel onge-encrypt in memory– Root kan waarschijnlijk nog steeds alle

passwords lezen.

Page 24: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Hoe slaat OS passwords op?

Hashed password file,– dwz passwords gehashed (met secure hash),

als (uid,hash(pwd))– Bij inloggen, ingetikt password wordt ook

gehashed en verleken met hashed password– Password nooit un-geencrypt op disk en nooit

un-encrypt in geheugen– Zelfs root, of inbreker met toegang tot

password file, kan niet alle passwords lezen

Page 25: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Secure hash

– Een secure hash is een functie f waarvan het moeilijk is de inverse f-1 te berekenen

– Dwz gegeven y, is het moeilijk een x te vinden zdd f(x)=y

– De enige manier om dit te doen is alle mogelijke x te proberen

– en als x bijv. een 256 bits woord is, dan is dat (nog!) niet feasible

Page 26: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Hashed password file

● Stel je hebt access tot hashed password file. Hoe kom je achter de passwords ?

● Dictionary attack: hash waarschijnlijke passwords en vergelijk resultaat met gehashde passwords in file

– Eg alle strings met [a..z] met lengte < 6– NB 266 is veel kleiner dan 2256 !

Page 27: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Salted hashed password file

Bescherming tegen dictionary attack: salt● Ipv (uid, hash(pwd))

slaan we (uid, hash(pwd,salt)) op in password file, waar salt voor elke entry in password file een andere maar bekende waarde is (bijv de uid zelf)

● Waarom/hoe beschermt dit tegen dictionary attacks?

Page 28: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Iets anders wat mis kan gaan...

● Bekende security flaw bij password checking op TENEX OS– Kijk hoe snel een fout password wordt

verworpen– Leidt hieruit af eerste karakter goed was– Herhaal dit voor volgende karakters

● Hier is responsetijd een zgn. hidden channel dat informatie lekt.

Page 29: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Alternatieven voor passwords

● Smartcards– bijv. gebruikt voor Internet bankieren

● Biometrie: herkenning van vingerafdruk, iris, gezicht, stem, oor, ...– Hot topic tegenwoordig, maar niet zonder

beperkingen en nadelen !

Page 30: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

ACCESS CONTROL

Page 31: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Access Control

● Specificeren van access rechten● Controleren (enforcen) van access

rechten,– dwz. controle vooraf/tijdens executies

● Auditing– dwz. controle achteraf

Page 32: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Access Control

● Matrix van welk subject (user/proces) aan welk object (programma/file) mag komen

x-rbob

rwxrwrwanne

rwxrwrwroot

a.outfile2file1

Page 33: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Access Control● Gigantische tabel nodig. Daarom

organisatie per rij of kolom:– Access Control List (ACL): zeg per object wie

er aan mag komen. Meest gebruikelijk.– Capability List: per user/proces: zeg waar-ie

aan mag komen. Voorbeeld: paging.

Page 34: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Access control in UNIX/Linux

● Gebruiker heeft user-id en group-id● File heeft owner en group, en rwx-

permissies voor owner, group, other• rw-r--r-- erikpoll sos tentamen.tex

Page 35: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Access control in UNIX: setuid

● Executable kan zowel als object als subject gezien worden

● setuid maakt de user-id van een proces gelijk aan de eigenaar vd executable– setuid proces heeft rechten van eigenaar van file ipv

rechten van user die proces aanroept– Notoire bron van security gaten

● In nieuwere UNIX & Linux systemen: fijnere controle mbv capability tickets

Page 36: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Access control in Windows-2000

● Elk process heeft een access token, met– User-id (SID)– Groups-id's– Default access control list, voor objecten

gecreerd door dit proces● Elk object heeft een security descriptor,

– Welke operaties toegestaan voor welke SID's– Welke operaties geaudit worden

Page 37: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Waar kan access control misgaan ?

● In de specificatie ervan:– vergissing in access control matrix

● kloppen de permissies in /home/itt/erikpoll wel?– onbewust verlenen van permissies, bijv door

● op attachment te klikken● software te downloaden en executeren

Page 38: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Waar kan access control misgaan ?

● Gebruikers (en systeembeheerders!) vinden access control maar lastig, en zetten het daarom af– bijv: door processen als root te draaien

Page 39: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Waar kan access control misgaan ?

● Door software bugs, met name in– kernel code– setuid programma’s

● of in andere code waarmee een gebruiker tijdelijk (meer) rechten mee kan verkrijgen, bijv. cgi-bin scripts of SQL queries via webpagina’s

Page 40: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Fundamenteel en overmijdbaar risico:

– User moet programma’s kunnen opstarten die meer permissies hebben dan user zelf, bijv.

● User mag password wijzingen; hiervoor wordt in password file geschreven.

● Iedereen mag in proberen te loggen; hiervoor wordt de passwork file gelezen.

● Via www.cs.kun.nl/rooster kan iedereen queries op de roosterdatabase uitvoeren..

– Dit heeft security risico's, nl. als er bugs in deze programma’s zitten

Page 41: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

WAT KAN ER ALLEMAAL MISGAAN ?

Page 42: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Beruchte security problemen

● Bekijk vers gealloceerd geheugen of diskruimte, en kijk of hier interessante informatie staat

Page 43: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Beruchte security problemen

● symbolic links zijn bron van ellende– zet symbolic link “core” naar /etc/password en

crash een root proces– lpr –r en zet symbolic link om tijdens printen– race condities: mkdir niet atomair; link nieuwe

dir naar /etc/password tijdens executie mkdir● buffer overflows,

– liefst in deamons: sendmail, finger

Page 44: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Buffer overflows

● aka “stack overflow”, “smashing the stack”● De allergrootste bron van security holes

– Kijk maar eens op www.cert.org/advisories – Recente voorbeelden: Slammer, Blaster worms

● Idee: geef een system call een idioot lange parameter om stack te overschrijven

● Als hier niet op gechecked wordt, kun je willekeurige code in kernel mode uitvoeren

Page 45: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Buffer overflows

● Moraal: controleer parameters!Bijv. gebruik bijv. nooitgets(buffer,file) // lees string uit file tot end-of-line

// en schrijf deze naar buffer

maar altijd

fgets(buffer,n,file) // idem, maar max n karakters

Page 46: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Buffer overflows

● Buffer overflows zijn mogelijk in C en C++ omdat deze talen niet aan array bounds checking doen

● Moderne talen, als Java en C#, doen dit wel, wat buffer overflows uitsluit

Page 47: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Gebrekkige input validation

● Rare input waar niet op gecontroleerd wordt is vaak een bron van security holes. Bijv– geef filenaam “bla.txt;rm%20/etc/passwd” aan cgi-bin

scriptje dat file upload– geef usernaam “ `OR 1=1 ” aan web applicatie die SQL

query uitvoert ● Check altijd op dit soort rare invoer,

– bijv. sta enkel [a..zA..Z] in invoer toe

Page 48: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

kernel bloating

● Bugs in OS kernel de bron van security holes● Moraal: houdt de kernel klein ● Helaas gebeurd het tegenovergestelde: kernel

bloating, waar juist veel code in kernel mode moet draaien, – zowel in UNIX/Linux als in Windows– Bijv. in Windows, device drivers zijn onderdeel vd

kernel.

Page 49: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Trusted Computer Base (TCB)

● TCB is dat deel van een systeem waar je op vertrouwt

● OS kernel is onderdeel van TCB● Omdat er zoveel mis kan gaan: houd de

TCB zo klein mogelijk● NB: trusted betekent “je vertrouwt het”,

niet “je kunt het vertrouwen”

Page 50: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Trusted Computer Base (TCB)

● Voorbeeld: internet bankieren met smartcard en speciale smartcard lezer

● Waarom niet een smartcard lezer ingebouwd in de PC?

Page 51: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Malware (malicious code)

● trapdoor● logic bomb● Trojan horse● virus

– vroeger: op floppy’s– nu: macros (word,VSB) in email attachments

● worm– heeft geen carrier nodig, in tegenstelling tot virus

● downloadable code (Java applets in browser)

Page 52: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Trojan Horse

● Gebruiker draait programma – met zijn access rights – met (verborgen) ongewenst gedrag

● Een probleem bij alle gedownloade code● (Ook mogelijk zonder dat de gebruiker er erg in heeft:

bijv. zet een executable ls in je home directory en klaag bij CNCZ dat er iets mis is met je homedir)

Page 53: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Beroemde backdoor & Trojan

Ken Thompson (Turing Award lecture)

1. Backdoor in login.c If (name==”ken”) {don't check password; log in as root;

2. Code in C-compiler (trojan horse) om backdoor toe te voegen bij (her)compilatie van login.c

3. Code in C-compiler om dit (2&3) toe te voegen bij (her)compilatie van C-compiler

NB trust is transitive

Page 54: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Mandatory Access Control

● Ipv discretionary access control● Ontneem gebruiker vrijheid om permissies te

geven● bij multi-level security (bijv. public, secret,

topsecret) kan de * property– no read up: subject mag alleen objecten van lager of gelijk level

lezen– no write down: subject mag enkel objecten van hoger of gelijk

level schrijven

beschermen tegen Trojan horse attacks

Page 55: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Reference monitor

● trusted system dat mandatory access control policy enforcet in setting met multi-level security

● populair in defensie toepassingen ● zo’n trusted system is natuurlijk onderdeel van

TCB

Page 56: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Security design principles

● keep it simple!● principle of least privilige

– default is no access– geef proces de minimum rechten die echt nodig zijn

● check for current permission– TOCTOU (time-of-creation vs time-of-use)

● maak ontwerp publiek (Kerckhoffs principle)

● maar: hou security acceptabel voor gebuikers

Page 57: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

CRYPTOGRAFIE

Page 58: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Netwerken

● Security problemen erger door netwerken ● Speciaal probleem: geheimhouding van

gegevens over netwerken

Page 59: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Inloggen over netwerk

● stuur password ongecodeerd over net– rlogin, telnet

● one time passwords– erg onhandig

● stuur password gecodeerd over net– slogin, ssh– Maar: hoe verspreiden we de sleutels?

Page 60: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Symmetrische Cryptografie

● Bijv– DES (Data Encryption Standard, 56 bit key) – AES (Advanced ~, 128,192,256 bits key)

● Coderen en decoderen met dezelfde sleutel, die zender en ontvanger weten

● Probleem: aantal sleutels, verspreiden ervan, en geheimhouden ervan

Page 61: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Public-Key Cryptografie

● Oftewel assymmetrische crypto● Bijv RSA, gebruikt in PGP, ssh● Openbare, publieke, sleutel voor codering, ● Geheime, privé, sleutel voor decodering● Voordelen

– publieke sleutel kan over netwerk– ook te gebruiken voor authenticatie

Page 62: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Public Key

● Nadeel van public key crypto: traag!● Daarom

– gebruik eerst public key crypto om symmetrische sleutel te versturen

– gebruik daarna de symmetrische sleutel aka session

● Bijv. gebruik RSA om DES session key af te spreken

Page 63: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Security nooit beter dan zwakste schakel

● Pas op: zwakste schakel van de veiligheid van crypto is mogelijk (waarschijnlijk?) de opslag van de cryptographic keys op een filesysteem...

Page 64: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Humans are incapable of securely storing high-quality cryptographic keys, and they have unacceptable speed and accuracy when performing cryptographic operations.

They are also large, expensive to maintain, difficult to manage, and they pollute the environment. It is atonishing that these devices continue to be manufactured and deployed. But they are sufficently pervasive that we must design our protocols around their limitations– Kaufman, Perlman, and Speciner

Page 65: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Smart cards

● Mini computertje, met geheugen (om bijv. sleutels op te slaan) en rekencapaciteit (voor de/encryptie), zeer beperkte I/O, en heel simpel OS

● Simpeler dan PC, dus more secure● Goede opslagplek voor sleutels● Gebruikt in SIMs, bankpas, paspoort,...● tamper-resistant Trusted Platform

Page 66: Security (beveiliging)erikpoll/teaching/A2/security.pdfOverzicht Intro computer ... Van het OS willen we bescherming van ... nl. voor persoonlijke gegevens. Hoe realiseer je security

Aanbevolen literatuur over security

● Security Engineering, van Ross Anderson● Secret & Lies, van Bruce Schneier

● Kijk ook eens op– www.cert.org/advisories– bugtraq