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