De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Les 9: Afscherming en beveiliging

Verwante presentaties


Presentatie over: "Les 9: Afscherming en beveiliging"— Transcript van de presentatie:

1 Les 9: Afscherming en beveiliging
In de laatste decennia hebben we een zeer sterke toename gekend van het belang van afscherming en beveiliging in computersystemen. Tegenwoordig gaat een groot deel van de tijd van een systeembeheerder naar het garanderen van een veilige werkomgeving voor de computergebruikers.

2 Overzicht Afscherming Afschermingsdomeinen Toegangsmatrix Beveiliging
Het beveiligingsprobleem Authenticatie Programmabedreigingen Systeembedreigingen

3 Afscherming besturingssysteem P1 O1 O2 P3 P2 O3 O4 O5 P4 O6 O7
Een computersysteem bestaat uit actieve entiteiten (processen) die inwerken op passieve entiteiten (objecten zoals CVE, geheugen, bestanden, programma's, semaforen, enz.). Alle objecten hebben een unieke naam of adres en kunnen maar gebruikt worden door middel van een verzameling van operaties die op het object gedefinieerd werden. Zo kunnen bestanden geopend, gelezen, beschreven en gesloten worden, naar printers kan men enkel schrijven, enz. In het ideale geval zou een proces enkel toegang mogen hebben tot die objecten die het minimaal nodig heeft (en dan nog wel met een beperking op de operaties die kunnen uitgevoerd worden), dit om te vermijden dat een corrupt proces schade kan aanbrengen aan objecten die het niet nodig heeft. Dit principe is algemeen gangbaar in programmeertalen waar men als argumenten van een procedure niet alle veranderlijken van de oproeper meegeeft, maar enkel die veranderlijken die de opgeroepen procedure nodig heeft. Het afschermingssysteem moet ervoor zorgen dat processen enkel die operaties waartoe ze gemachtigd zijn mogen uitvoeren. Om goed te zijn moet het afschermingssysteem uit twee componenten bestaan: (i) een mechanisme om toegangsrechten uit te drukken en om vast te leggen wie ze kan manipuleren, en (ii) een beleid dat concreet bepaalt welke processen welke toegangsrechten toegewezen krijgen. P4 O6 O7

4 Domeinstructuur Afschermingsdomein = verzameling van toegangsrechten
Toegangsrecht = <object, operaties> Afscherming zal uitgedrukt worden aan de hand van de verzameling van toegelaten operaties op een object. Het vermogen om een bepaalde operatie op een bepaald object uit te voeren wordt een toegangsrecht genoemd. Rechtstreeks toegangsrechten toekennen aan processen is bijzonder moeilijk omdat processen dynamische entiteiten zijn die enkel bestaan tijdens de uitvoering van een programma en niet daarbuiten. Men zou de rechten kunnen toekennen aan het programma dat gebruikt wordt om het proces mee te creëren, maar ook dat is geen degelijke oplossing: programma’s kunnen immers door verschillende gebruikers opgestart worden. Afhankelijk van de gebruikers zullen de toegangsrechten verschillend zijn. Een proces wordt daarom uitgevoerd in een afschermingsdomein dat aangeeft over welke systeemmiddelen het kan beschikken. Een afschermingsdomein is een verzameling van toegangsrechten. Door een proces te laten uitvoeren in een bepaald domein erft het de toegangsrechten van het domein. Door domeinen met gebruikers te laten samenvallen, kan men b.v. de toegangsrechten laten variëren in functie van de gebruiker.

5 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 Men kan domeinen herkennen op verschillende niveaus in een computersysteem. Een account kan een domein zijn. Dit wil zeggen dat toegangsrechten zullen afhangen van de rechten van de gebruiker die een proces opstart. Men kan van domein veranderen door van loginnaam te veranderen (rlogin of su) of door gebruik te maken van het setuid-bit. Een proces loopt normaal gezien binnen het domein van de gebruiker die het proces start. Als het proces het setuid bit aan staan heeft (in Unix), dan loopt het in het domein van de eigenaar van het programma. Op die manier kunnen ook gewone gebruikers programma’s uitvoeren waarvoor privileges (root) nodig zijn (b.v. het veranderen van hun wachtwoord). De systeemmode en de gebruikersmode zijn ook twee afschermingsdomeinen. Men kan overgaan van het ene naar het andere door een systeemoproep uit te voeren, en terug te keren. De objecten zijn in dit geval de kerngegevens. Een procedure kan een domein zijn. In dit geval zijn de objecten die kunnen gemanipuleerd worden de locale veranderlijken, en kan men van domein veranderen door een procedure-oproep uit te voeren of terug te keren. Een proces kan een domein zijn. In dit geval kan men enkel van domein veranderen door een boodschap naar een ander proces te sturen en te wachten op antwoord. De objecten zijn in dit geval de locale gegevensstructuren van het proces en alle systeemmiddelen die voor het betrokken proces bereikbaar zijn.

6 Toegangsmatrix access(D4,F1)
Toegangsrechten kunnen conceptueel gemakkelijk voorgesteld worden door ze te expliciteren in een toegangsmatrix. Het bijhouden van de toegangsrechten in een toegangsmatrix is in de praktijk echter niet zeer bruikbaar omwille van de omvang van de tabel (denk maar aan het aantal bestanden in een bestandssysteem). Bovendien is het een ijle matrix en dus zullen heel wat cellen leeg zijn. access(D4,F1)

7 Toegangsmatrix met domeinen als objecten
De binding tussen de domeinen en de processen kan statisch of dynamisch zijn. In het geval van een statische binding is een bepaald proces gedurende zijn volledige levensduur gebonden aan een bepaald domein, in het geval van een dynamische binding kan een proces van domein veranderen. Om dat te modelleren kan men ook de domeinen opnemen als objecten en de mogelijke overgangen expliciet maken met de operatie switch. In bovenstaande afbeelding is het b.v. mogelijk om vanuit D1 over te gaan naar D2. In het algemeen is een overgang tussen Di en Dj mogelijk indien switch  access(Di, Dj). In dit geval zijn de domeinen elk op zich statisch, maar kan er dynamisch tussen de domeinen geschakeld worden.

8 Dynamische toegangsrechten
Een alternatieve manier om met dynamische veranderingen om te gaan is om de toegangstabel zelf te veranderen tijdens de uitvoering van het programma. Daartoe heeft men een aantal bijkomende toegangsrechten nodig die toelaten om toegangsrechten toe te voegen of weg te laten. Eigenlijk zou men de tabel zelf ook als object moeten opnemen, evenals de verschillende toegangsrechten in de tabel (komt hier wel een einde aan?). Het recht kopiëren (*) laat toe dat het proces dat draait in domein D2 het recht read kopieert naar de andere cellen uit dezelfde kolom. Hierbij kunnen er een aantal varianten zijn: (i) het oorspronkelijke recht kan verdwijnen of, (ii) het kopieerrecht kan al dan niet meegekopieerd worden. Het recht om toegangsrechten bij te creëren is voorbehouden aan het toegangsrecht ‘owner’. Een proces dat draait in een domein dat het recht ‘owner’ bevat voor een bepaald object is in staat om alle toegangsrechten in de kolom van het object zomaar te wijzigen (toevoegen en weglaten).

9 Dynamische toegangsrechten
Een proces dat draait in een domein dat het recht ‘control’ bevat voor een bepaald domeinobject D4 is in staat om alle toegangsrechten in de rij behorende bij D4 te wijzigen. Dit is een soort van ‘owner’ toegangsrecht, maar dan voor domeinen. Het toegangsrecht ‘switch’ werd eerder al besproken.

10 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) Een toegangsmatrix kan op verschillende manieren geïmplementeerd worden. Een eerste vaststelling is dat het opslaan van de volledige matrix veel geheugenruimte zal innemen. Doordat de matrix echter ijl bezet is kunnen er alternatieve opslagmethoden gebruikt worden die minder plaats in het geheugen vereisen. Globale tabel Hierbij zal men de matrix opslaan als een tabel van tripletten bestaande uit een domein, een object en een verzameling van toegangsrechten. Het nadeel van deze methode is dat de tabel vrij groot is, en door het ontbreken van structuur moeten veel gegevens gedupliceerd worden. Verder is het zoeken in de tabel traag. Toegangscontrolelijsten per object Hier zal men per object de toegangsrechten per domein bijhouden. De ruimte nodig om deze informatie op te slaan kan beperkt worden door te vertrekken van een ‘default’ situatie en enkel de uitzonderingen hierop op te slaan. Bevoegdheidslijsten per domein Nu worden de rechten gegroepeerd per domein. Per domein worden de objecten opgesomd die voor dat domein toegankelijk zijn, samen met de toegangsrechten. Bevoegdheden worden doorgaans voorgesteld door datatypes die niet door de gebruiker kunnen gemanipuleerd worden (hetzij beschermd door hardware zoals op de AS/400, bijgehouden door de kern, of bijgehouden door de gebruiker, maar geëncrypteerd). Bevoegdheden kunnen in principe niet overgedragen worden tussen domeinen. Slot-sleutelmechanisme Hierbij geeft men aan de objecten een reeks van sloten, en aan de domeinen een reeks van sleutels. Alle objecten waarvan een domein een sleutel bezit kunnen door dat domein gebruikt worden. De sleutels worden beschermd opgeslagen en kunnen niet overgedragen worden tussen domeinen.

11 Toegangscontrolelijsten
U1 U1 U3 Toegangsrechten moeten beheerd worden. Eerder dan toegangsrechten toe te wijzen aan 1000 individuele gebruikers, is het beter om een beperkt aantal rollen (groepen) te definiëren: systeemprogrammeurs, systeembeheerders, studenten, programmeurs, secretariaatsmedewerkers, enz. en de gebruikers op te nemen in bepaalde groepen. Hierbij kunnen gebruikers opgenomen worden in verschillende groepen zodat ze gebruik kunnen maken van de unie van toegangsrechten. Bij het toekennen van toegangsrechten aan groepen en aan gebruikers moet men steeds het principe van het ‘minste privilege’ (least privilege) voor ogen houden. Gebruikers moeten enkel over die rechten kunnen beschikken die ze nodig hebben om hun werk te doen. Bijkomende rechten vormen alleen maar beveiligingsgaten. Door hun kleine aantal is het beheer van de rechten van groepen veel eenvoudiger dan het beheer van alle individuele gebruikers. Daar waar er afwijkingen nodig zijn voor individuele gebruikers kan men gebruik maken van bijkomende individuele toegangsrechten (via zgn. access control lists in Unix). Bij het controleren van de toegangsrechten moeten uiteraard zowel de individuele als de groepstoegangsrechten gecontroleerd worden. U2 rol3 ‘minste privilege’

12 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

13 Toegangscontrolelijsten en groepen
Toegangsrechten: read, write, execute Drie groepen van gebruikers RWX a) owner access 7  RWX b) group access 6  1 1 0 c) public access 1  0 0 1 owner group public chmod 761 game -rwxrw-r tom user Oct a.out -rw-rw-r tom user Oct p.xls

14 Domeinimplementatie Multics
Concentrische domeinen Di and Dj If j < i  Di  Dj In Multics worden de afschermingdomeinen hiërarchisch opgedeeld in een aantal concentrische ringen zoals te zien is in de afbeelding. De binnenste domeinen hebben toegang tot meer objecten dan de buitenste domeinen. Alle objecten uit de buitenste domeinen kunnen ook automatisch door de binnenste domeinen gebruikt worden. Het gebruik van een object dat enkel ter beschikking is van een binnenliggend domein is aan strenge controle onderworpen. Als men een procedure uit een buitenring wenst aan te roepen vanuit een binnenring (wat mogelijk is), moet men er wel voor zorgen dat de argumenten van die procedure toegankelijk zijn voor de ring waarin de procedure gedefinieerd werd. Argumenten uit een binnenste ring zullen misschien eerst gekopieerd moeten worden naar een ring met minder afscherming om toe te laten dat ze gebruikt worden door de betrokken procedure. Een dergelijk hiërarchisch systeem – ofschoon theoretisch zeer aantrekkelijk – is in de praktijk niet zo handig gebleken en wordt in de praktijk beperkt tot 2 niveaus (systeem en gebruiker). Multics Rings

15 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) Hoe goed de afscherming ook is, het volledig verborgen houden van informatie is bijzonder moeilijk indien men toegang heeft tot een computersysteem, en zeker indien men kan rekenen op de medewerking van personen die toegang hebben tot de informatie. Zo zijn er gevallen bekend waarbij men aan het al dan niet geopend zijn van bestanden vroegtijdig kon afleiden wat de beslissing van het topmanagement was, of waarbij het mogelijk was om aan de hand van het aantal paginafouten bij het controleren van een wachtwoord te weten te komen waar de wachtwoordroutine gestopt was met het wachtwoord te controleren (door het wachtwoord telkens 1 positie te verschuiven en na te gaan bij welke letter er een paginafout optrad kon men afleiden welke letter de volgende was). Verder kan men ook boodschappen opslaan in alle binaire objecten die bits bevatten die mogen veranderd worden (zoals b.v. de laagste bits per pixel in een bitmap, of in ongebruikte bits in de codering van instructies). Het verbergen van boodschappen in schijnbaar onschuldige bestanden wordt steganografie genoemd. Zo kan via een schijnbaar onschuldige digitale foto van het bedrijf een compleet top secret document op de website gezet worden.

16 Overzicht Afscherming Afschermingsdomeinen Toegangsmatrix Beveiliging
Het beveiligingsprobleem Authenticatie Programmabedreigingen Systeembedreigingen

17 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

18 Beveiliging is gelaagd
fysiek gebruikers fysiek netwerk fysiek OS fysiek Beveiliging is gelaagd en moet verschillende barrières opwerpen tegen potentiële inbrekers. Soms is men bij beveiliging meer bezig met de technische aspecten ervan zoals netwerkbeveiliging, encryptie, enz. maar vergeet men de meest elementaire vormen van beveiliging zoals het achter slot en grendel bewaren van de computers en de reservekopieën. Een ander aspect dat al te vaak uit het oog verloren wordt is de betrouwbaarheid van de gebruikers. Als sommige personeelsleden bereid zijn om tegen betaling confidentiële informatie te laten uitlekken, dan hebben zelfs de beste technische beveiligingssystemen niet veel nut.

19 Beveiligingsmaatregelen hangen af van type aanvallers
Alvorens een beveiligingssysteem op te zetten moet men zich de vraag stellen wie de potentiële aanvallers zijn. Het antwoord op deze vraag bepaalt immers mee het soort beveiliging waarin men zal voorzien.

20 Authenticatie Vaststellen van de echte identiteit van de gebruiker
Dient te gebeuren alvorens de gebruiker het systeem kan gebruiken

21 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

22 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

23 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

24 Kaarten en pasjes Magneetkaart: 140 bytes
Een pasje kan ofwel een wachtwoord bevatten (b.v. een magneetkaart), ofwel een heus programmaatje dat kan gebruikt worden om een antwoord te berekenen op de vraag die gesteld wordt vanuit de server. In dit laatste geval beschikt het pasje over een heuse processorchip die in staat is de berekening te maken. Magneetkaart: 140 bytes Chipkaart: 4 Mhz, 8 bit cpu, kiB geheugen, 9600 b/s communicatiesnelheid

25 Biometrie Opmeten fysieke eigenschap
moet aanvaardbaar zijn voor gebruiker Vingerlengte Vingerafdruk Retina (oog) Handtekening Stemherkenning Gelaatsherkenning Mensen hebben een aantal unieke kenmerken die gebruikt kunnen worden bij de identificatie. De identificatie wordt vergemakkelijkt doordat de computer enkel maar moet nagaan of iemands profiel overeenkomt met het profiel dat zich in de databank bevindt. Om het zoeken te beperken zal een gebruiker soms eerst zijn identiteit moeten meedelen, waarna er kan nagegaan worden of de biometrische informatie klopt. Biometrische authenticatiesystemen breken voorlopig niet door (i) omwille van hun prijs, (ii) omdat ze niet steeds 100% goed werken (b.v. stemherkenning bij verkoudheid, of vingerafdruk bij een gekwetste vinger) en (iii) omdat sommige biometrische systemen een onprettig gevoel geven. Sommigen vinden het opslaan van vingerafdrukken in een databank al een inbreuk op de privacy. Verder leeft ook de vrees dat dit systeem zo goed is, dat criminele organisaties personen zouden kunnen gijzelen of verminken om toch maar toegang te kunnen krijgen tot bepaalde systemen.

26 Overzicht Afscherming Afschermingsdomeinen Toegangsmatrix Beveiliging
Het beveiligingsprobleem Authenticatie Programmabedreigingen Systeembedreigingen

27 Programmabedreigingen zijn bedreigingen die kunnen teruggevoerd worden op een probleem binnenin een programma.

28 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. Een Trojaans paard is een bedreiging die ingebed zit in een gebruikersprogramma. Het gaat om programmacode die deel uitmaakt van een niet-verdacht programma, maar die bijvoorbeeld vertrouwelijke informatie doorstuurt naar derden. Het gebruik van programma's van andere gebruikersdirectories houdt steeds gevaren in voor Trojaanse paarden. In principe beperkt men zich beter tot programma's die op de gebruikelijke manier in de systeemdirectories terecht gekomen zijn. De systeembeheerder moet erop toezien dat de systeemdirectories enkel maar gegarandeerd veilige programma’s bevatten. Het feit dat men de broncode van alle programma heeft, is geen garantie dat er geen Trojaanse paarden kunnen voorkomen. Het zou immers kunnen dat de kwaadaardige code door de compiler gegenereerd wordt, zonder dat er in de broncode ook maar iets terug te vinden is.

29 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); Een achterdeur heeft niet als eerste bedoeling om de gebruikers schade toe te brengen, maar om de ontwerper van de achterdeur bijkomende privileges te verschaffen. Een achterdeur zal reageren op bepaalde combinaties van gebruikersinvoer en op dat ogenblik mogelijk onrechtmatige toegang verschaffen. Achterdeuren hoeven niet steeds in de broncode zelf te zitten, maar kunnen ook automatisch door compilers gegenereerd worden. In dat geval zijn ze enkel te ontdekken door de gegenereerde code te bestuderen. Heel wat programma's hebben ‘legale’ achterdeuren die de systeembeheerder toelaten om zonder veel authenticatie applicaties te gebruiken. De bovenstaande code geeft een voorbeeld van een achterdeur. Terloops weze opgemerkt dat de code – zelfs zonder achterdeur –zeer gemakkelijk te kraken is. Het volstaat om de voorwaarde bij de voorwaardelijke sprong te inverteren en het programma is gekraakt.

30 Logische bom … if ((dag(datum) = 13) && eindecontract(“Joe Bad”)) {
doeietsergs } Een logische bom is een stuk schadelijke programmacode die pas geactiveerd wordt als er aan bepaalde voorwaarden voldaan is (b.v. vrijdag de dertiende), of een maand nadat de naam van de programmeur van de personeelslijst verdwenen is. De logische bom wordt geïnstalleerd door een ontwikkelaar die ter kwader trouw is. De logische bom kan gebruikt worden als chantagemiddel. Om logische bommen te vermijden kan men bij ontslag iemand de toegang tot het systeem ogenblikkelijk ontzeggen en meteen een ontslagvergoeding uitbetalen. Op die manier kan men verhinderen dat hij de systemen tijdens zijn opzegperiode saboteert.

31 Buffer overflow buffer reg reg tk adres
D i t i s v e e l t e l a n g ! stapel Sommige inputroutines (b.v. gets) dumpen de binnengekregen input op een plaats in het geheugen zonder de lengte ervan na te gaan. Indien de architectuur, het besturingssysteem en de compiler waarmee het programma gecompileerd werd gekend zijn, wordt het mogelijk om een dusdanige input op te geven dat de gegevens die na de buffer volgen in de stapel overschreven worden, waaronder ook het terugkeeradres. Door het terugkeeradres te laten wijzen naar de buffer zelf, en door in de inputstring op die plaats code te plaatsen die kan uitgevoerd worden, kan men het programma eender wat laten doen. Dit is het basismechanisme van de buffer overflow. Maatregelen tegen bufferoverflow zijn: Het niet meer gebruiken van onveilige inputroutines die de lengte van de input niet testen en dus aanleiding kunnen geven tot overschrijvingen. Dit vereist wat discipline. Het onuitvoerbaar maken van de stapel zodat instructies op de stapel niet als code kunnen uitgevoerd worden. Dit betekent niet dat buffer overflow dan niet meer kan voorkomen, maar de aanvaller zal het moeten stellen met code die zich reeds in het codegeheugen bevindt. De Sparc processor heeft een dergelijke bescherming en Solaris maakt er gebruik van. De stapel naar grotere adressen laten groeien. In dat geval zal de inputroutine enkel ongebruikte stapelcellen overschrijven, en niet bij het terugkeeradres kunnen.

32 Overzicht Afscherming Afschermingsdomeinen Toegangsmatrix Beveiliging
Het beveiligingsprobleem Authenticatie Programmabedreigingen Systeembedreigingen

33 Systeembedreigingen zijn aantastingen van een computersysteem die niet meteen toe te schrijven zijn aan één specifiek programma. Er worden vier soorten systeembedreigingen onderscheiden.

34 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 Spyware is eender welke software die onrechtmatig op een computer geïnstalleerd geraakt (automatisch als neveneffect van het surfen of van het installeren van besmette software) en die als bedoeling heeft om informatie naar de buitenwereld te laten uitlekken. Spyware is een bedreiging voor de beveiliging omdat – eenmaal geïnstalleerd – de spyware toegang heeft tot het gehele computersysteem en b.v. een log kan bijhouden van toetsaanslagen, waaruit dan nadien wachtwoorden e.d.m. kunnen gedistilleerd worden. Adware is een soort van spyware die niet als bedoeling heeft om informatie te stelen, maar wel reclame te maken. Dit kan door de gebruiker te overstelpen met popupschermen, of door de homepagina van de browser te kapen. Het verwijderen van spyware en adware is niet eenvoudig. Er bestaan gelukkig een aantal hulpmiddelen voor (b.v. Ad-Aware, en andere). Een vorm van actieve spyware is login spoofing waarbij een programma het loginscherm van een computer nabootst. Als de nietsvermoedende gebruiker zijn wachtwoord in een dergelijk programma ingeeft, wordt zijn wachtwoord opgeslagen, en krijgt hij de melding dat de inlogprocedure mislukt is. Hij kan dan nogmaals proberen, ditmaal met de echte loginprocedure. Op een PC-platform kan men er met ctrl-alt-del voor zorgen dat het echte loginscherm altijd getoond wordt. Dit komt omdat ctrl-alt-del een ononderschepbare toetsenbordcombinatie is.

35 Denial of service while [ 1 ] do     mail –s “aanval” <rommel     sleep 10 done Zelfs indien een inbreker er niet in slaagt om in te breken, is hij soms toch in staat om het systeem voor de gebruikers onbruikbaar te maken door b.v. zoveel netwerkaanvragen naar het systeem te sturen dat het systeem compleet door de knieën gaat. Indien deze aanvragen verstuurd worden vanuit 1 bepaalde computer, is het nog mogelijk om op het niveau van het netwerk de trafiek vanuit die computer tegen te houden. Indien het echter over een gedistribueerde aanval gaat (waarbij het aanvalsprogramma eerst b.v. als een virus verspreid werd, en waarbij dit virus dan plots een aanval inzet vanop al deze computers samen), is er eigenlijk weinig anders te ondernemen dan de server gewoon van het netwerk af te halen. Een vrij eenvoudige denial of service aanval kan er b.v. in bestaan door via een script om de 10 s een naar een bepaalde afzender te versturen.

36 Wormen Een worm is een programma dat tracht om zich voort te planten van de ene computer naar een andere door een machine uit te zoeken waarop hij zich kan kopiëren en indien nodig ook compileren. Vanaf die machine gaat hij dan opnieuw op zoek naar weer andere machines. Het voornaamste voorbeeld van dit soort van bedreiging is de zogenaamde Internet worm die in 1988 op luttele uren tijd hele delen van het Internet besmet heeft. Deze worm maakte enerzijds gebruik van een fout in het Unix besturingssysteem, en anderzijds van de onvoorzichtigheid van de gebruikers. Veel van de hedendaagse virussen die zich via verspreiden zijn eigenlijk ook wormen. Het enige verschil is dat er soms nog een minimale interactie met de gebruiker nodig is om de worm zijn werk te kunnen laten doen (zoals b.v. het openen van een bijlage bij een ). Verder zijn er ook nog de kettingbrieven (hoaxes) die zich verspreiden via de gebruikers. Deze kettingbrieven waarschuwen vaak voor onbestaande virussen en vragen om zo breed mogelijk verspreid te worden. Hoax?

37 Virussen Een stuk code dat zichzelf repliceert door zich aan andere (onschuldige) code te hechten Naast infectietaak meestal ook andere (schadelijke) payload

38

39 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

40 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

41 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

42 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

43 Device driver Device driver is gewoon bestand op schijf
Wordt altijd en ‘officieel’ ingeladen door OS Loopt in kernmode → veel handiger dan boot sector

44 Macro virussen 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

45 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

46 Verspreiding Plaatsen op locatie met hoge kans op kopiëren:
bulletin board, shareware Indien gekopieerd: infectie bestanden op lokale harde schijf verspreiding over LAN Via -bijlage Virus/worm gebruikt adresboek voor nieuwe slachtoffers komt van gekende (vertrouwde) persoon

47

48 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

49 Verborgen virussen

50 alle code voert X=A+B+C-4 uit
Polymorfe Virussen alle code voert X=A+B+C-4 uit

51 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

52 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

53 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 ontvangen programma’s uitvoeren Geregeld noodkopieën maken Strikte scheiding programma’s en data (geen “active content”); .jpg is OK, .doc niet

54 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

55 Inbraakdetectie IDS systemen (Intrusion Detection Systemen)
Detectiemethoden Analyseren van de logbestanden Veranderingen in het bestandensysteem analyseren (tripwire) Volgorde van systeemoproepen analyseren


Download ppt "Les 9: Afscherming en beveiliging"

Verwante presentaties


Ads door Google