Beginselen van Computerarchitectuur - UGent

advertisement
Les 9: Afscherming en
beveiliging
“Passwords are like underwear: you don’t let
people see it, you should change it very often, and
you shouldn’t share it with strangers.”
– Chris Pirillo
best9-1
Overzicht
• Afscherming
– Afschermingsdomeinen
– Toegangsmatrix
• Beveiliging
– Het beveiligingsprobleem
– Authenticatie
– Programmabedreigingen
– Systeembedreigingen
best9-2
Afscherming
P1
P2
O1
O3
P4
O2
O4
O7
P3
O5
O6
best9-3
Domeinstructuur
• Afschermingsdomein = verzameling van toegangsrechten
• Toegangsrecht = <object, operaties>
best9-4
Domeinen
Domein
Veranderen van domein
Accounts
Inloggen als andere gebruiker (su,
setuid-bit)
Gebruiker/Systeem
Systeemoproep en return
Functie/subroutine
Functie-oproep en -terugkeer
Processen
Verzenden boodschap
best9-5
Toegangsmatrix
access(D4,F1)
best9-6
Toegangsmatrix met domeinen als
objecten
best9-7
Dynamische toegangsrechten
best9-8
Dynamische toegangsrechten
best9-9
Implementatie van
toegangsmatrix
• Globale tabel
– lijst met <domein, object, rechten>
• Toegangscontrolelijsten, per object
– Lijst met <domein, rechten> + default recht.
• Bevoegheidslijsten, per domein
– Lijst met <object, rechten> (beschermde wijzer)
• Slot-sleutelmechanisme
– Objecten hebben sloten
– Domeinen hebben sleutels (beschermde wijzers)
best9-10
Toegangscontrolelijsten
rol1
rol2
U1
U1
U3
U2
rol3
‘minste privilege’
best9-11
Intrekken van toegangsrechten
• Toegangscontrolelijsten – toegangsrechten weghalen
– Eenvoudig
– Ogenblikkelijk
• Bevoegdheidslijsten – de bevoegdheden moeten
kunnen opgespoord worden om ze in te kunnen
trekken.
– Bevoegdheden met eindige levensduur
– Centraal bijhouden van alle bevoegdheden
– Indirecte bevoegdheden (verwijzen naar globale
tabel die centraal kan aangepast worden)
– Sleutel. Een bevoegdheid is pas geldig indien ze
overeenkomt met een centraal bijgehouden sleutel
best9-12
Toegangscontrolelijsten en groepen
• Toegangsrecht: read, write, execute
• Drie groepen van gebruikers
a) owner access 7

b) group access
6

c) public access 1

owner group public
RWX
111
RWX
110
RWX
001
chmod 761 game
-rwxrw-r-- 1 tom
-rw-rw-r-- 1 tom
user
user
416382 Oct 29 1999 a.out
568535 Oct 29 1999 p.xls
best9-13
Domeinimplementatie Multics
• Concentrische domeinen Di and Dj
• If j < i  Di  Dj
Multics Rings
best9-14
Verborgen kanalen
• Alloceer geheugen of schijfruimte en kijk of
er nog informatie in staat
• Zoek verborgen kanalen (b.v. geopende
bestanden, gedrag van virtueel geheugen)
• Steganografie
• Doorzoek de prullenmand (dumpster diving)
• Koop iemand om... (social engineering)
best9-15
Overzicht
• Afscherming
– Afschermingsdomeinen
– Toegangsmatrix
• Beveiliging
– Het beveiligingsprobleem
– Authenticatie
– Programmabedreigingen
– Systeembedreigingen
best9-16
Beveiligingsprobleem
• Beveiliging dient een systeem te beschermen tegen
– Ongerechtigd lezen van gegevens
– Ongerechtigd schrijven van gegevens
– Ongerechtigd vernietigen van gegevens
– Denial of service
• Het is gemakkelijker te beveiligen tegen ongelukken
dan tegen kwaad opzet
best9-17
Beveiliging is gelaagd
gebruikers
netwerk
OS
fysiek
best9-18
Beveiligingsmaatregelen
hangen af van type aanvallers
best9-19
Authenticatie
• Vaststellen van de echte
identiteit van de gebruiker
• Dient te gebeuren alvorens
de gebruiker het systeem kan
gebruiken
best9-20
Wachtwoorden
• Eenvoudig, maar zeer kwetsbaar
• Problemen
– Zwakke wachtwoorden
– Niet regelmatig wijzigen van wachtwoorden
– Meedelen van wachtwoorden
– Ongeëncrypteerde wachtwoorden over het net sturen
– Login spoofing
– Kraaksoftware
best9-21
Vermijden zwakke
wachtwoorden
• Vereisten wachtwoord:
– minimum lengte (bvb. 7 tekens)
– zowel gewone letters als hoofdletters
– minstens 1 speciaal teken of cijfer
– geen namen of bestaande woorden
• Systeem dient te controleren op zwakke
wachtwoorden en die weigeren
• Eenmalige wachtwoorden
• Vraag-Antwoord systeem, al dan niet gebaseerd op
een algoritme
• Single sign-on
best9-22
Unix wachtwoorden
• Wachtwoord wordt geëncrypteerd opgeslagen
• Wachtwoord controleren: tekst encrypteren en
vergelijken met wachtwoordbestand (via
systeemoproep)
• Aanval: lijst met geëncrypteerde wachtwoorden
• Wachtwoord verlengen met een random getal (de
‘salt’) en pas dan encrypteren
• Zoekruimte wordt veel groter, triviale wachtwoorden
worden moeilijker kraakbaar
best9-23
Kaarten en pasjes
Magneetkaart: 140 bytes
Chipkaart: 4 Mhz, 8 bit cpu, 16-32 kiB geheugen, 9600 b/s
communicatiesnelheid
Challenge response
best9-24
Biometrie
• Opmeten fysieke eigenschap
– moet aanvaardbaar zijn voor gebruiker
• Vingerlengte
• Vingerafdruk
• Retina (oog)
• Handtekening
• Stemherkenning
• Gelaatsherkenning
best9-25
Overzicht
• Afscherming
– Afschermingsdomeinen
– Toegangsmatrix
• Beveiliging
– Het beveiligingsprobleem
– Authenticatie
– Programmabedreigingen
– Systeembedreigingen
best9-26
best9-27
Trojaans paard
• Programma dat
– er onschuldig uitziet
– naast zijn onschuldige rol ook een schadelijke
actie uitvoert
• B.v. gewijzigd systeemprogramma
– ergens in pad zetten (steeds eerst
systeemdirectories in pad zetten, steeds volledige
padnaam opgeven b.v. /bin/su).
– originele naam met typfout (b.v. SU)
• Trojaans paard kan ook door een compiler
gegenereerd worden.
best9-28
Achterdeur
…
while (1) {
printf(“login: ”);
get_string(naam);
disable_echo();
printf(“wachtwoord: ”);
get_string(wachtwoord);
v = controleer(naam, wachtwoord);
if ((v==1) || (strcmp(naam, “zzzz”)==0)) break;
}
execute_shell(naam);
…
best9-29
Logische bom
…
if ((dag(datum) = 13) && eindecontract(“Joe Bad”)) {
doeietsergs
}
…
best9-30
Buffer overflow
buffer
D i t
i s
reg
v e
e l
reg
t
e
l a
tk adres
n g !
stapel
best9-31
Overzicht
• Afscherming
– Afschermingsdomeinen
– Toegangsmatrix
• Beveiliging
– Het beveiligingsprobleem
– Authenticatie
– Programmabedreigingen
– Systeembedreigingen
best9-32
best9-33
Spyware
Verborgen programma dat informatie verzamelt over
de gebruiker en deze verstuurt over het Internet.
• Browsergewoontes
• Velden in invulformulieren
Installatie gebeurt automatisch door te surfen.
Adware: automatische popups, gekaapte browser
best9-34
Denial of service
while [ 1 ]
do
mail –s “aanval” [email protected] <rommel
sleep 10
done
best9-35
Wormen
Hoax?
best9-36
Virussen
• Een virus is een stuk code dat zichzelf repliceert door
zich aan andere (onschuldige) code te hechten
• Naast infectietaak meestal ook andere (schadelijke)
payload
best9-37
best9-38
Companion
• Virus bestaat naast het eigenlijke programma
• Virus wordt onbewust uitgevoerd
– DOS: prog.com installeren naast prog.exe; prog zal
prog.com uitvoeren
– Windows: shortcuts veranderen
– Unix: een uitvoerbaar bestand ‘ls’ in een directory
zetten
• Na payload wordt ook oorspronkelijke programma
uitgevoerd om detectie te vermijden
Virus: companion
best9-39
Uitvoerbaar
Virus: uitvoerbaar
• Virus wordt toegevoegd aan een programma
• In C: 2KiB; in assembler: 44 bytes (DOS)
• Niet alle programma’s infecteren om detectie uit te stellen
best9-40
Geheugen
Virus: geheugen
• Virus blijft in geheugen na 1e uitvoering
• Zal meestal een onderbrekingsvector kapen om
zeker te zijn dat het regelmatig de controle terugkrijgt
– bvb. timeronderbreking
• Infecteert andere programma’s op schijf
• Kan maatregelen nemen om detectie te vermijden
door systeemoproepen te onderscheppen
best9-41
Boot Sector
Virus: boot sector
• Boot sector wordt gebruikt om OS op te starten
• Virus in boot sector:
– virus heeft PC voor zich alleen: geen OS, MMU,
anti-virus
– enige probleem: na opstarten OS controle
terugkrijgen
• methode: alle onderbrekingen in beslag nemen
en diegene die verloren gaan heroveren
best9-42
Device driver
Virus: device driver
•
•
•
•
Device driver is gewoon bestand op schijf
Wordt altijd en ‘officieel’ ingeladen door OS
Loopt in kernmode
→ veel handiger dan boot sector
best9-43
Macro virussen
Virus: macro
• Normaal gezien zijn gegevensbestanden (.jpg, .doc,
.html) onschadelijk omdat ze geen uitvoerbare code
bevatten
• Bepaalde types (vooral MS Office) bevat toch
uitvoerbare code: macro’s
– de functie OPEN FILE wordt altijd uitgevoerd bij
open MS Word bestand
– kan hergedefinieerd worden: ideale plek voor virus
best9-44
Broncode
Virus: broncode
• Broncode wijzigen
• Voordeel: platformonafhankelijk
• Kan beperkt blijven tot een paar lijnen, valt niet op
• Verspreiding naar andere machines: broncode virus
dient volledig in uitvoerbaar programma aanwezig te
zijn zodat de programmatekst in nieuwe
broncodebestanden kan ingevoegd worden
best9-45
Verspreiding
• Plaatsen op locatie met hoge kans op kopiëren:
– posten op internet
• Indien gekopieerd:
– infectie bestanden op lokale harde schijf
– verspreiding over LAN
• Via e-mail-bijlage
– Virus/worm gebruikt adresboek voor nieuwe slachtoffers
– e-mail komt van gekende (vertrouwde) persoon
best9-46
best9-47
Signatuurgebaseerd
• Labo’s verzamelen virussen (tienduizenden)
• Scanner gebruikt databank met signaturen om snel veel
bestanden te kunnen scannen.
– signatuur = patroon dat duidt op een welbepaald virus
• Afweging:
– korte generieke signaturen: te veel valse positieven
– lange specifieke signatuur: kleine variaties van het
virus blijven onopgemerkt + toegenomen scantijd
virusscanner
best9-48
Verborgen virussen
best9-49
Polymorfe Virussen
alle code voert X=A+B+C-4 uit
Virus: polymorf
best9-50
Integriteitsgebaseerd
• Virussen hoeven hiervoor niet gekend te zijn
• Bereken voor elk uitvoerbaar bestand een checksum,
opslaan in een speciaal bestand
• Controleer regelmatig of de checksums nog kloppen
• Reactie virusschrijver:
– checksumbestand verwijderen
– nieuwe checksum berekenen van geïnfecteerd
bestand en checksumbestand aanpassen
• Tegenreactie: checksumbestand verbergen of
encrypteren
– probleem: geheimhouding encryptiesleutel
best9-51
Gedragsgebaseerd
• Verdachte handelingen opsporen
– bvb. Boot sector schrijven, flash geheugen
schrijven
• Probleem: sommige handelingen zijn niet zo duidelijk
– uitvoerbaar bestand overschrijven: OK voor
compiler
– geheugenresident worden: OK voor anti-virus
software
best9-52
Vuistregels om virussen te
vermijden
• OS gebruiken met goede scheiding kern/gebruikers
mode en gewone gebruiker/systeembeheerder;
eenvoudig OS
• Geen software gebruiken van onzekere herkomst
• Anti-virus software gebruiken en regelmatig
vernieuwen
• Geen via e-mail ontvangen programma’s uitvoeren
• Geregeld noodkopieën maken
• Strikte scheiding programma’s en data (geen “active
content”); .jpg is OK, .doc niet
best9-53
Herstel van een aanval
• Virusscanner, spywareverwijderaar de besmetting
ongedaan laten maken
• Alle waardevolle data van harde schijf opslaan in een
virusvrij formaat (b.v. .txt i.p.v. .doc).
• Heropstarten naar een gegarandeerd virusvrije
omgeving (originele CD-ROM)
• Harde schijf herformatteren, OS en programmatuur
herinstalleren
• Data opnieuw terugzetten
best9-54
Inbraakdetectie
• IDS systemen (Intrusion Detection Systemen)
• Detectiemethoden
– Analyseren van de logbestanden
– Veranderingen in het bestandensysteem analyseren
(tripwire)
• Volgorde van systeemoproepen analyseren
best9-55
best9-56
Download