Internet security. de beveiliging van aan internet gekoppelde netwerken

Maat: px
Weergave met pagina beginnen:

Download "Internet security. de beveiliging van aan internet gekoppelde netwerken"

Transcriptie

1 Internet security de beveiliging van aan internet gekoppelde netwerken ir. Kees Hogewoning ing. Gerrit Th. Lith ing. Marco G.M. van der Kraan Erwin A.J. Verburg en anderen

2 Internet security De beveiliging van aan internet gekoppelde netwerken ir. Kees Hogewoning (eindredactie) ing. Gerrit Th. Lith ing. Marco G.M. van der Kraan Erwin A.J. Verburg en anderen

3 Copyright 2007 Vanveen informatica bv Niets uit deze uitgave mag worden verveelvoudigd en/of openbaar worden gemaakt door middel van druk, fotokopie, microfilm, geluidsband, elektronische of op welke wijze dan ook en evenmin in een retrieval system worden opgeslagen zonder voorafgaande schriftelijke toestemming van de uitgever. Hoewel dit boek met zeer veel zorg is samengesteld, aanvaarden schrijver(s) noch uitgever enige aansprakelijkheid voor schade ontstaan door eventuele fouten en/of onvolkomenheden in dit boek. Alle merkennamen en productnamen zijn handelsmerken, gedeponeerde handelsmerken en handelsnamen van hun rechtmatige houders.

4 Inhoudsopgave 1.1 Indeling van het boek Over de auteurs Introductie Risicoanalyse Bepalen van het beveiligingsniveau Security peilers Beveiligingsbeleid Security architectuur TCP/IP Oorsprong TCP/IP OSI referentiemodel Encapsulatie Fragmentatie (De-)multiplexing Netwerklaag IP-headers TCP/IP klassen Subnetting Supernetting Transportlaag UDP TCP TCP connecties Network address translation IPv Firewalls Basiswerking Typen firewalls Circuit-level gateway Application-level gateway Stateful inspection firewall Firewall netwerkdesign Beheeraspecten Logging Firewall-authenticatie Proxy Waarom een proxy? Indeling in functie Forwarding proxy Reverse proxy Applicatieproxy Proxy-tunneling Intrusion detection systemen Netwerk gebaseerde IDS en Host based IDS en Een algemeen IDS-model Onregelmatigheid detectie (statistische IDS) Patroonherkenning Veilige netwerkverbindingen Remote access VPN Tunneling Praktische toepassingen SSH Stunnel SSL-VPN MPLS Werkplekbeveiliging... 45

5 7.6 Wireless security Applicatiebeveiliging Threat modeling STRIDE DREAD Security testing Cryptografie Encryptie Symmetrische encryptie Asymmetrisch encryptie SSL Message digest Digitale handtekening Digitale enveloppen Digitale certificaten Aanvragen van een digitaal certificaat Public key infrastructure CA stamcertificaat Certificate revocation list Malicious software Virussen Virussen vormen niet de enige bedreiging Backdoor Rootkit Adware en spyware Phishing Werking van een virus Symptomen van een virusinfectie Blended threat Window of vulnerability Antivirusoplossingen Toepassen van antivirusoplossingen Antivirus scanners Heuristisch scannen Malware scanners Hardening Site security handboek Selectieproces Hardeningsmaatregelen Authenticatie en autorisatie Autorisatiemodelen Simpel autorisatiemodel Autorisatiemodel met groepen Taakgebaseerde autorisatiegroepen Rolgebaseerde autorisatiegroepen Role based access Provisioning Directory services Single sign on Industriestandaarden voor identity management Beschikbaarheid Wat is beschikbaarheid Het beschikbaarheidscontinuüm Berekenen van beschikbaarheid Oorzaken van onbeschikbaarheid Clustering Opslagsystemen Implementie- en wijzigingstrajecten Aanval Hacking & cracking... 94

6 14.2 Doel van een hack Hackingproces Verkenningen Scanning Toegang verkrijgen Toegang behouden Sporen verbergen Toegang voorkomen Ethical hack Signalering Vulnerability scanning Password auditing Integrity checkers Patchmanagement Enterprise security monitoring Verdediging Signalering Afscherming Integriteitcontrole Restore secure state Audit Draaiboek Social engineering De werkwijze van de social engineer De hulpmiddelen van de social engineer Remedie tegen social engineering Awareness campaign Ketenbeheer Security ABC

7

8 Inleiding De afgelopen jaren is in een hoog tempo gewerkt aan het koppelen van bedrijfsnetwerken aan het internet. Enerzijds om de medewerkers binnen organisaties gebruik te laten maken van toepassingen als en webbrowsing, anderzijds zijn er bedrijfskritische applicaties ontsloten via het internet waarmee producten en diensten aan de markt worden aangeboden. De beveiliging van beide omgevingen krijgt daarbij gelukkig steeds meer de noodzakelijke aandacht. Security in het algemeen en internet security in het bijzonder wordt in steeds meer organisaties gezien als een integrale discipline die hoge eisen stelt aan de specifieke kennis en kunde van alle (ICT-) medewerkers. Naast inzicht in de organisatorische aspecten van security, hebben deze functionarissen ook behoefte aan diepgaande technische kennis. Deze kennis kan worden opgedaan door diverse productspecifieke opleidingen te volgen, die vaak aangeboden worden door de diverse producenten op de ICT-security markt. Vaak ontbreekt dan echter het bredere technische kader waarbinnen deze productkennis dient te worden geplaatst, of ontstaat er een grote overlap met reeds in andere cursussen opgebouwde kennis. Daarom is in dit boek gekozen voor een meer generieke technische benadering van de onderwerpen. Zo wordt bijvoorbeeld de werking van een firewall behandeld, zodat de werking van elke firewall begrepen kan worden, zowel qua concept als ook op detailniveau. 1.1 Indeling van het boek Dit boek bestaat uit verschillende delen waarin de deelonderwerpen worden behandeld. Inleiding en introductie In sommige organisaties is beveiliging al van oudsher belangrijk. Techniek en procedures zijn bij deze organisaties erop gericht om transacties veilig te verwerken. We zullen in dit deel onderzoeken wat hier met veilig bedoeld wordt en maken tevens de vertaalslag naar het internet. Vanuit haar oorsprong was het internet gericht op zoveel mogelijk open communicatie. In de basis van het protocol TCP/IP zijn daarom weinig voorzieningen te vinden waarop een adequate beveiliging gebaseerd kan worden. De hulpmiddelen om dit te compenseren en de wijze waarop deze middelen kunnen worden ingezet, worden besproken. Concepten en begrippen als autorisatie, authenticatie, vertrouwelijkheid, integriteit, onweerlegbaarheid en beschikbaarheid zullen daarbij aan de orde komen. Infrastructuur In dit deel wordt de infrastructuur waarop, waarin en waar omheen security dient te worden toegepast in behandeld. Door de identificatie van de netwerkcomponenten in diverse topologieën en netwerkstructuren, wordt duidelijk welke componenten en zones in netwerken aandacht behoeven bij internet security management. Om security management in te kunnen richten en te kunnen plaatsen in het juiste kader, is detailkennis van TCP/IP, (reverse) proxyservers, firewalls, IDS en en de positionering van deze toepassingen in netwerken noodzakelijk. Dit deel gaat in op de werking van het routeren, switching, TCP/IP communicatie en de (samen-)werking van toepassingen, applicaties en server services. Technieken en Implementatie In dit deel komen de technische implementaties aan de orde, in relatie tot de concepten waarop security gestoeld is: authenticiteit, integriteit, confidentialiteit en beschikbaarheid. Verder wordt ingegaan op technieken als checksums, hashes, symmetrische en asymmetrische encryptie. De relatie tussen beschikbaarheid en security wordt toegelicht. Toepassingen die stoelen op meerdere pijlers: SSH, VPN, PKI, en SSL zullen uitgebreid behandeld worden. Ook access control, accounting en autorisatie komen aan de orde. Teneinde de samenhang tussen de diverse begrippen te verhelderen, zullen modellen en architectuurconcepten gepresenteerd worden. 1

9 Platform security In dit deel wordt verder ingegaan op de relatie tussen beschikbaarheid en security, virusbestrijding en meer algemeen, platform security. Bij platform security gaat het onder andere over hardening van het besturingssysteem. Verder worden uitgelegd: role based access, vormen van clustering, failover, redundantie en loadbalancing. Aanval, signalering en verdediging In dit deel wordt ingegaan op de wijze waarop zwakke plekken in de beveiliging worden gevonden, zowel vanuit de optiek van de hacker als die van de security specialist. Vulnerability scanning, enterprise security monitoring komen aan de orde alsmede de te nemen maatregelen wanneer beveiliging wordt doorbroken. De beveiligingsketen In deze afsluitende module wordt onder andere ingegaan op social engineering en het samenspel tussen technische en organisatorische maatregelen om een adequate beveiliging te creëren. 1.2 Over de auteurs De auteurs zijn als security consultant werkzaam voor Vanveen informatica. Ze zijn in hun dagelijkse praktijk beroepsmatig met de materie bezig daarnaast geven zij opleidingen over internet security. Vanveen informatica is een zelfstandige en onafhankelijke ICTkennisorganisatie, actief vanaf De kerncompetenties van deze organisatie liggen op het ontwikkelen, beheren en beveiligen van de infrastructurele kant van de ICT omgeving van onze opdrachtgevers. Ir. C. Hogewoning Kees Hogewoning is na het voltooien van zijn studie werkzaam geweest bij de Rabobank als netwerkspecialist. Hier heeft hij zich voornamelijk bezig gehouden met het Windows platform en de beveiliging ervan. Sinds 2001 is hij in dienst bij Vanveen informatica als security specialist en infrastructuur architect. Voor diverse organisaties in zowel het bedrijfsleven als bij de overheid heeft hij opdrachten uitgevoerd op het gebied van netwerk- en platform security. Zijn belangrijkste aandachtsgebieden zijn besturingssystemen, netwerken en beveiliging. Ing. M.G.M. van der Kraan Marco van der Kraan is na het afronden van zijn HBO opleiding technische computerkunde in 1993 dienst getreden bij Vanveen informatica. Hij is begonnen met ondersteunende functies bij Elsevier Science en Ministerie van VROM en later als troubleshooter en problem manager werkzaam bij Rabofacet. Verder is hij vanaf 2000 als scripter verantwoordelijk geweest voor het opleveren van probleemloze installaties van applicaties bij DTO en ABN-AMRO Asset Management. Bij deze laatste instelling heeft hij de migratie van het Windows NT 4 platform naar het Windows 2000 en Windows XP platform vormgegeven. Tevens is hij sinds 2002 werkzaam als consultant bij Vanveen informatica met als voornaamste aandachtsgebied IPv4 en IPv6. Hierbij speelt de vraag van hoe te migreren van IPv4 naar IPv6 een belangrijke rol. Ing. G. Th. Lith Gerrit Lith is vanaf de start van zijn loopbaan betrokken bij ICT-infrastructuren. Aanvankelijk bij netwerken waarin terminologie als DECnet en SNA gemeengoed waren. Vanaf 1995 is hij betrokken bij met het internet gekoppelde netwerken. Op dat moment opende het Ministerie van Economische zaken haar internetwebsite waarbij Gerrit verantwoordelijk was voor de gehele infrastructuur, inclusief beveiliging. Vanaf 1998 is hij in dienst bij Vanveen Informatica als consultant infrastructuur. Vanuit die positie is hij verantwoordelijk geweest bij ABN-AMRO voor de veilige koppeling van het elektronisch bankieren met het internet. Daarna heeft hij bij dezelfde bank voor de Wholesale businessunit de infrastructuur voor financiële transacties via webservices vormgegeven. Zijn belangrijkste aandachtsgebieden zijn het ontwerpen van infrastructuren en het managen daarvan uiteraard op een zo veilig mogelijke manier. 2

10 M. Samson Mike Samson is via het Ministerie van volkshuisvesting en ruimtelijke ordening, NSS marktonderzoek (het huidige onderzoekbureau Interview/NSS) terechtgekomen bij het onderzoek- en adviesbureau B&A Groep in Den Haag. Bij B&A Groep heeft hij jarenlang de functie van netwerkbeheerder en hoofd-ict bekleedt. In 1998 is hij in dienst getreden bij Vanveen informatica als ICT-specialist. In deze functie heeft hij verschillende opdrachten uitgevoerd. Bij Rabofacet is hij operationeel verantwoordelijk geweest voor de antivirus producten van de Rabobank. In deze functie was hij aanspreekpunt en adviseur antivirus. Sinds 2001 is Mike businessunit manager bij Vanveen informatica. Hij stuurt in die functie deskundigen aan die zich bezighouden met het ICT-beheer op outtaskingsbasis. R.J.J. Strijbos Rick Strijbos is directeur van Vanveen informatica bv. Deze zelfstandige, onafhankelijke ICT kennisorganisatie heeft een jarenlange ervaring in het beveiligingen van de netwerken van de overheid en de internetsecurity van diverse financiële instellingen. Voordat hij in 1997 ging werken bij Vanveen informatica heeft hij aan de basis gestaan van één van de grootste opleidingsinstituten in Nederland voor het opleiden van netwerk professionals. Verder heeft hij jarenlange ervaring als docent in het volwassenenonderwijs en geeft hij onder meer train the trainer workshops. E.A.J. Verburg Erwin Verburg heeft van origine een management, economie en recht achtergrond in de service management branche, maar is sinds 1996 werkzaam als ICT-deskundige. Hij is begonnen als netwerkbeheerder in grote kantoorautomatiseringomgevingen in de financiële sector. Zo is hij voor de ABN-AMRO bank in het kader van internationale internetgerelateerde projecten ingezet als database- en infrastructuurspecialist. De laatste jaren heeft hij zich volledig gericht op security toepassingen en encryptietechnieken. Hierbij vormen SSL, PKI en firewalls zijn belangrijkste aandachtsgebieden. 3

11 2 Introductie De enige veilige internetaansluiting is geen aansluiting! Overigens, bij elk contact met de buitenwereld zal een risico worden gelopen. Waarom zal een organisatie dan een internetaansluiting willen hebben en zich dus blootstellen aan de risico s ervan. De redenen hiervoor kunnen divers zijn. Zo kan door een koppeling met internet een hogere productiviteit bereikt worden. Informatie die elder aanwezig is kan via internet 24 uur per dag bereikt worden. Probleem is vaak echter nog het ontsluiten van informatie. Via internet is heel veel informatie beschikbaar maar hoe vind je de juiste informatie. Internet biedt ook de mogelijkheid tot verbeterde communicatie met klanten. Klanten kunnen via internet snel en eenvoudig informatie vinden. Een fysiek bezoek aan een bedrijf of instelling kan achterwege blijven. Ook wordt internet veelvuldig gebruikt voor communicatie tussen organisaties. Snelle uitwisseling van informatie is mogelijk zonder barrières van landsgrenzen en tijdzones. Een voorbeeld hiervan is het ontwikkelen van software in een ander land. Zonder de directe uitwisseling van eisen en wensen en in een later tijdstip het communiceren van de onvolkomenheden in de software en de oplossingen voor deze fouten zou dit vrijwel onmogelijk zijn. Ook wordt via internet software ontwikkeld door medewerkers die door de geografische en tijd grenzen gescheiden zijn. Door deze en tal van andere mogelijkheden ontstaat er voor veel bedrijven de mogelijkheid om omzet te genereren via internet. Het gebruik van internet brengt ook diverse risico s met zich mee. Het interne eigen netwerk wordt gekoppeld aan het publieke internet. Dit creërt een toegang tot het interne netwerk wat beveiligd moet worden. Net zoals de fysieke toegang tot een bedrijf of huis beveiligd wordt zo moet ook de digitale toegang beveiligd worden. Beveiligingsrisico s van het gebruik van internet zijn bijvoorbeeld misbruik van de internetverbinding, verlies van informatie, verandering van informatie of onbeschikbaar zijn van de internetverbinding en de daarmee aangeboden diensten. Dit kan tot directe schade leiden zoals omzetverlies maar kan ook leiden tot reputatieschade waarbij het aanzien van een organisatie schade ondervindt. 2.1 Risicoanalyse Een afweging tussen de voordelen van een internetaansluiting en de risico s die het gebruik van internet met zich meebrengt kan gemaakt worden door middel van een risicoanalyse. Een risicoanalyse moet identificeren welke informatie beschermd moet worden, welke waarde de verschillende informatie heeft, welk verlies wordt geleden in het geval van een calamiteit en aan welke wettelijke verplichtingen moet worden voldaan. Een risicoanalyse levert informatie waarmee management in staat wordt gesteld te beslissen welke risico s een te grote bedreiging vormen en met welke beveiligingsmaatregelen deze risico s verkleint kunnen worden. De uitkomst van een risicoanalyse bepaalt in hoeverre beveiligingsmaatregelen genomen moeten worden. In hoofdlijnen zijn er drie verschillende methoden om een risicoanalyse uit te voeren. Kwalitatieve methode De kwalitatieve methode om een risicoanalyse te maken werkt op basis van beschrijvingen. Deze methode is in de praktijk vaak de enig mogelijke, maar is wel heel grof en discutabel. Van termen zoals niet-geclassificeerd, vertrouwelijk of zeer vertrouwelijk is het lastig om te definieren wat het precies betekent. De termen kunnen op verschillende manieren geïnterpreteerd worden. Door bij een analyse zo veel mogelijk met de financiële waarde van informatie en de kosten bij een calamiteit te werken is een risicoanalyse beter meetbaar te maken. Kwantitatieve methode De kwantitatieve methode probeert een risicoanalyse in een getal uit te drukken. De risicoanalyse is hierdoor beter meetbaar en ook vergelijkbaar te maken. Een voorbeeld van een kwantitatieve methode is de annual loss expectancy. Hierbij wordt de gemiddelde schade over een bepaalde tijdsperiode, die verwacht wordt doordat één of meer bedreigingen leiden 4

12 toe één of meer verstoringen. Dit getal wordt aangeduid als de ALE en is door middel van de volgende formule te berekenen: ALE = P x C ALE P C annual loss expectancy Waarschijnlijkheid dat een bedreiging werkelijkheid wordt (probability). Alle directe en indirecte kosten die gemaakt moeten worden als de bedreiging werkelijkheid wordt. (cost) Dit is inclusief productieverlies, herstelkosten en marktverlies als gevolg van reputatieschade. Per informatiesysteem moeten de waarschijnlijkheden en mogelijke kosten worden ingeschat. Uiteindelijk kan de ALE worden berekend en hieruit moet blijken hoeveel de beveiligingsmaatregelen zouden mogen kosten. Vergelijkende methode De vergelijkende methode ook wel baseline approach genoemd gaat uit van een vergelijking met vergelijkbare omgevingen. Hierbij wordt gestreefd om een vergelijkbare organisatie te vinden (bijvoorbeeld een ander ministerie, gemeente of bedrijf) of een overkoepelende organisatie (branchevereniging). Van deze organisaties wordt vervolgens onderzocht of deze richtlijnen hebben uitgegeven. Voorbeelden van enkele bekende richtlijnen zijn: VIR, VIR-BI en de Code voor Informatiebeveiliging. Identificeer de extra risico's van de eigen organisatie aan de hand van vergelijking met andere organisaties. Onderzoek of deze extra risico's niet door de baseline worden afgedekt. 2.2 Bepalen van het beveiligingsniveau Het niveau van beveiliging wordt bepaald door een aantal factoren. Ten eerste zijn er de min of meer dwingende factoren zoals opgelegde wettelijke bepalingen of afspraken binnen een branche. Te denken valt aan SOX, Basel2, VIR, VIR-BI etc. Dit zijn vakgebieden op zich, waar veel over te vertellen valt (en op internet te vinden), maar dat valt buiten het bestek van dit boek.. Dit wordt vaak aangeduid als wet- en regelgeving. Daarnaast zal een organisatie in een ideale situatie ernaar streven om een omgeving te creëren die optimaal is beveiligd. Dit is dus niet een omgeving die maximaal beveiligd is. Bij een optimale beveliging wordt er onder andere rekening gehouden met de kosten van beveiliging en de mogelijke kosten van de risico s. In het algemeen kan gesteld worden dat men geen twee euro uitgeeft om iets wat één euro waarde heeft te beveiligen. Daarbij is het lastig om te bepalen wat beveiliging kost en nog lastiger is het om de de waarde van informatie te bepalen. Hoe bepaal je bijvoorbeeld zoiets als reputatieschade wanneer vertrouwelijke informatie op straat komt te liggen. Verder worden de beveiligingseisen afgestemd op het beleid van een organisatie en de organisatiecultuur en organisatiestructuur. Welke beveiligingseisen van toepasing zijn is dus voor elke organisatie verschillend. Een methode om voor bedrijfsmiddelen (assets) aan te geven hoe belangrijk ze zijn voor een organisatie en dus ook de belangrijkheid ervan bij beveiliging is de informatie-asset classificatie. Er zijn vele classificatiemethoden mogelijk. Hier wordt slechts één voorbeeld belicht. Het voorbeeld gaat uit van niet alleen de beveiliging van een applicatie, maar probeert het belang van de applicatie voor de organisatie boven water te halen. Men moet zich de volgende zaken afvragen: Welke middelen voor de bedrijfsvoering bezitten we? Dit zijn de assets en het beheer hiervan wordt assetmanagement genoemd. Hoe belangrijk zijn deze middelen voor de organisatie? Welke verplichtingen heeft een organistatie bij een mogelijk verlies of uitval van de assets. Het beantwoorden van deze vragen zullen we de informatie-asset classificatie noemen. Het behandelt de zakelijke motieven voor het indelen in de verschillende klassen. Het bereik bepaald wat je wel en niet meeneemt van de classificatie. De zakelijke eigenaar bepaald de classificatie, niet de IT-afdeling. Bij voorkeur wordt de implementatie van de classificatie door 5

13 een onafhankelijke partij gecontroleerd. Van alle informatie-assets wordt het beleid wat erop van toepassing is belicht. Voor het opstellen van een classificatie schema worden de volgende indelingsaspecten onderscheiden: Beschikbaarheid: de organisatie moet de informatie beschikbaar hebben op het moment dat het daar behoefte aan heeft. Betrouwbaarheid: de organisatie heeft behoefte aan juiste, complete en tijdige informatie. Vertrouwelijkheid: een organisatie moet gegevens beschermen tegen opzettelijke en onopzettelijke openbaarmaking. Aan de indelingsaspecten kunnen gevoeligheidsniveaus worden toegekend. Meestal worden er drie niveau s gebruikt: Hoog: schendingen brengen mogelijk grote schade toe. Midden: schendingen brengen mogelijk belangrijke schade toe. Laag: schendingen brengen nauwelijks of geen schade toe Security peilers Voor de technische invulling van het beveiligingsbeleid moet rekening gehouden worden met een aantal security peilers. Deze peilers vinden hun oorsprong in de beschikbaarheid, integriteit en vertrouwelijkheidseisen die gesteld worden aan informatie. Deze eisen vinden hun oorsprong in het beveiligingsbeleid. Om integriteit en vertrouwelijkheid te garanderen zijn ook authenticatie en autorisatie een vereiste. Daarnaast is onweerlegbaarheid nodig om aan te kunnen tonen dat de beveiliging werkt zoals dat zou moeten. Het geheel van technische maatregelen zoals dat ook in een security architectuur is beschreven moet invulling geven aan de security peilers. Wanneer voor een informatiesysteem één of enkele security peilers niet zijn afgedekt is de beveiliging niet volledig. Authenticatie Authenticatie is een proces waarin een systeem de identiteit vaststelt van iemand die er toegang toe wil hebben. Hierbij wordt de identificatie van een persoon geverifieerd. Een wachtwoord kan bijvoorbeeld als authenticatiemiddel dienen als we aannemen dat de persoon in kwestie de enige is die het wachtwoord weet. Autorisatie Autorisatie is de stap die na authenticatie komt en waarbij de rechten van een gebruiker worden bepaald voor het uitvoeren van bepaalde taken in systemen. Kortom: wat mag een gebruiker. Beschikbaarheid Beschikbaarheid is de eigenschap dat een systeem te gebruiken is op de afgesproken tijden en plaatsen. Het systeem moet op dat moment ook de diensten leveren waarvoor het ontworpen is. Kenmerken die onder beschikbaarheid kunnen vallen zijn tijdigheid en continuïteit. Bij tijdigheid speelt performance een belangrijke rol. Een informatiesysteem moet een dusdanige performance hebben dat informatie tijdig beschikbaarheid. Het continuïteitsaspect heeft betrekking op het beschikbaar blijven van zowel een informatiesysteem als de informatie zelf. Mogelijke schade door al dan niet opzettelijke uitval van informatie of informatiesystemen is: Een onderbreking van (bedrijfskritische) processen. Onderbreking van de dienstverlening aan een klanten met bijvoorbeeld als mogelijk gevolg aanzienlijke financiële verliezen, reputatieschade, juridische claims, verlies van klanten. 6

14 Integriteit Integriteit van informatie heeft betrekking op het aspect dat informatie zonder fouten is. Kenmerken die onder integriteit kunnen vallen zijn correctheid, volledigheid, geldigheid en authenticiteit. Integriteit van gegevens is het vermogen om te verzekeren dat gegevens niet gewijzigd zijn door anderen dan degenen die daartoe uitdrukkelijk bevoegd zijn. Om dat te waarborgen is een juiste authenticatie en autorisatie een vereiste. Aangezien systemen worden gebruikt om gegevens te beheren, is integriteit de maatstaf voor de kwaliteit van die gegevens. Vertrouwelijkheid Vertrouwelijkheid is de mate waarin is gewaarborgd, dat wordt voorkomen dat onbevoegden kennis nemen van (gevoelige) gegevens. Dit betekent dat (gevoelige) gegevens geheim gehouden worden en enkel aan geautoriseerde partijen bekendgemaakt worden. Geautoriseerd houdt in dat men ook ge-authenticeerd is. Een van de kenmerken die betrekking hebben op vertrouwelijkheid is privacy. Mogelijke schade die wordt veroorzaakt door ongeoorloofde openbaarmaking zou kunnen zijn: Vervelende juridische procedures en strafmaatregelen als gevolg van wetsovertredingen. Verlies van klanten. Verlies van de concurrentiepositie. Negatieve aandacht. Verlies van vertrouwen en marktpotentieel. Onweerlegbaarheid De term onweerlegbaarheid komen we vaak tegen in de vorm van de engelse term nonrepudiation. Non-repudiation services leggen bewijzen vast van iemands handelen. Het doel hiervan is om te kunnen bewijzen iemend een handeling heeft uitgevoerd. Bij een eventuele ontkenning van een gebruiker over het uitvoeren van een handeling kan het tegendeel bewezen worden. In geval van meningsverschil kan non-repudiation-bewijs gebruikt worden om het geschil op te lossen De combinatie van security peilers en maatregelen kunnen in een matrix worden weergegeven: de securitymatrix. Deze matrix geeft een overzicht van de genomen maatregelen en welke security peilers zijn afgedekt. De onderstaande figuur geeft een voorbeeld van een security matrix. Begrippen Hulpmiddelen Userid / Password SSL Firewall Proxy IDS Loadbalancing VPN PKI PGP Authenticatie Autorisatie Beschikbaarheid Integriteit Vertrouwelijkheid Onweerlegbaarheid 2.3 Beveiligingsbeleid Een beveiligingsbeleid beschrijft hoe moet worden omgaan met informatie. Belangrijkste doel is zeker te stellen dat informatie op de juiste manier wordt beschermt tegen wijzigingen of onthulling en ook dat de informatie beschikbaar blijft. Het management van een organisatie 7

15 moet zich uitspreken over in hoeverre zij informatiebeveiliging belangrijk vinden en daar prioriteit aan geven. Voor informatiebeveiliging zullen zij ook de middelen beschikbaar moeten stellen. Zonder deze uitspraken kan de beheerorganisatie wel maatregelen nemen, maar de verwachtingspatronen zijn dan niet op elkaar afgestemd. De beheerorganisatie zal grote moeite hebben middelen zoals geld en menskracht te alloceren, terwijl het management er pas bij een incident achterkomt dat het misschien wel niet zo is geregeld als men zou hebben gewild. Bij een overheidsorganisatie is het wenselijk dat de politiek hier een uitspraak over doet. Zonder beleid bestaat er dus geen basis om maatregelen op te nemen. In dit boek zullen we er vanuit gaan dat er een beveiligingsbeleid aanwezig is. De beveiligingsmaatregelen die we beschrijven kunnen een invulling zijn van het beleid. Het opstellen van een beveiligingsbeleid dient ook niet vanuit een technische achtergrond te gebeuren maar vanuit een bedrijfskundige achtergrond. Het opstellen van het beveiligingsbeleid en de technische invulling ervan hoort ook een dialoog te zijn tussen de bedrijfskundige tak van een organisatie en de ICT-technische tak van een organisatie. Beleid beperkt zich tot algemene uitspraken over de informatiebeveiliging. Maar al te vaak wordt in beleid technische maatregelen beschreven. Technische maatregelen zijn geen beleid maar een invulling van de uitvoering van het beleid. De exacte invulling en beschrijving van een beleid is voor elke organisatie anders. Dit zal grotendeels bepaald worden door de doelstellingen en werkwijze van een organisatie. De invulling van een beveiligingsbeleid wordt in hooflijnen uiteengezet in een security architectuur. 2.4 Security architectuur Een security architectuur is een ontwerp en een stelsel van grondregels die de security services beschrijven die een systeem moet bieden om in de behoeften van de gebruikers en systeemeigenaren te voorzien. Een security architectuur bepaald en beschrijft dan ook de systeemcomponenten die vereist zijn om de security services te draaien en aan welke eisen deze componenten moeten voldoen. Het ontwerpen van een beveiligingsarchitectuur behelst het vaststellen van een aantal uitgangspunten waarin de volgende zaken moeten worden vastgelegd: Administratie Procedures Technische aangelegenheden Communicatie beveiliging Computerbeveiliging Fysieke beveiliging Beveiliging tegen (natuurlijke) invloeden zoals natuurrampen, temperatuur, water Maatregelen tegen misdaad en terrorisme Deze uitgangspunten bepalen in hoofdlijnen hoe de beveiliging van een omgeving eruit moet zien. Deze zaken moeten vanzelfsprekend nauw aansluiten. Dit boek biedt handvaten om op basis van een beveiligingsbeleid de security architectuur voor de technische infrastructuur te kunnen invullen. 8

16 Infrastructuur 9

17 3 TCP/IP De basis van de internetaansluiting is TCP/IP. Dit wordt gebruikt om alle computers die aan het internet gekoppeld zijn met elkaar te laten communiceren. Het is ook de basis om alle functionele diensten zoals webpagina s over transporteren. Veel beveiligingstechnieken beïnvloeden de werking van TCP/IP of maken er gebruik van. Vandaar dat we in dit hoofdstuk eerst ingaan op de werking van TCP/IP alvorens in de volgende hoofdstukken de beveiligingsmaatregelen te behandelen. 3.1 Oorsprong TCP/IP TCP/IP vind zijn oorsprong in het Defense Advanced Research Project Agency (DARPA) uit In de periode voor 1980 werden de ARPAnet protocollen gebruikt. Daarna ging de focus ging steeds meer naar TCP/IP en er werd als regel gesteld dat alleen TCP/IP-aware netwerken en hosts mochten toetreden tot het netwerk van computers. UNIX-systemen werden standaard uitgerust met een TCP/IP-stack toepassing. Internet bestond eerst uit een ARPA netwerk met een aantal regionale koppelingen op basis van TCP/IP. Uiteindelijk is TCP/IP het protocol op internet geworden om de volgende redenen: Geen centrale autoriteit noodzakelijk Elke host kan onafhankelijk van een andere host communiceren Schaalbaar (toen wel) Security toepassingen noodzakelijk en mogelijk 3.2 OSI referentiemodel Het Open systems interconnection reference model oftewel OSI-model is een gelaagde abstracte beschrijving voor een computernetwerk protocolontwerp. In de praktijk komt het OSI-model niet helemaal uit. Dit komt doordat OSI model later ontstond dan een aantal protocollen, waaronder TCP/IP. Die protocollen waren ontwikkeld voor echte gebruikers met echte praktijk problemen. De protocollen zijn daarop aangepast. Het OSI-model is ontwikkeld door academici vanuit een meer theoretische benadering. OSI laag Belangrijkste protocollen Eenheid van informatie Applicatie DNS, FTP, TELNET, SMB, SNMP, SNTP, MIME Data Presentatie ASCII, EBCDIC, SSL, TLS Data Sessie NetBIOS, RPC, named pipes Data Transport TCP, UDP, SPX Segmenten Netwerk IP, IPX, ARP, RARP, RIP, OSPF Pakketten Datalink LLC, MAC Frames Fysiek IEEE802.2, ISDN Bits 10

18 Het OSI model bestaat uit zeven lagen. Laag 7: applicatielaag Dit is de laag waar het allemaal om begonnen is. Deze laag dient als het venster dat applicatieprocessen gebruiken om toegang te krijgen tot netwerkservices. Deze laag vertegenwoordigt de services die direct de gebruikersapplicaties ondersteunen zoals software voor bestandsoverdracht, toegang tot databases en . Laag 6: presentatielaag Bepaalt het formaat dat moet worden toegepast om data tussen netwerkcomputers uit te wisselen. Deze laag is in feite de tolk-vertaler van het netwerk. De presentatielaag is verantwoordelijk voor protocolconversie, het vertalen van data, ter beveiliging coderen van data, het wijzigen of converteren van de tekenset (ASCII - EBCDIC) en het uitbreiden van grafische commando s. Verzorgt ook de compressie van data, waardoor het aantal te verzenden bits kan worden teruggebracht. Laag 5: sessielaag Dankzij laag 5 kunnen twee applicaties op verschillende computers een verbinding met elkaar tot stand brengen, deze onderhouden en beëindigen. Deze laag regelt de naamherkenning en functies, zoals beveiliging, die nodig zijn om twee applicaties via een netwerk te laten communiceren. Zorgt voor synchronisatie van gebruikerstaken door controlepunten in de datastroom aan te brengen. Wanneer het netwerk faalt, hoeft alleen de data na het laatste controlepunt opnieuw te worden verzonden. Deze laag zorgt ook voor dialoogcontrole tussen de diverse communicatieprocessen en bepaalt welke computer zendt, wanneer, voor hoelang, enzovoort. Laag 4: transportlaag De transportlaag beschermt de verzonden data. Deze laag verdeelt de data in segmenten en berekent checksums waarmee later bepaald wordt of de data gecodeerd zijn. Zorgt ervoor dat de pakketten foutloos, in de juiste volgorde en zonder verlies of doublures worden afgeleverd. Deze laag pakt informatie opnieuw in, verdeelt lange berichten over een aantal pakketten en bundelt hele kleine pakketten tot een nieuw pakket. Op deze manier kunnen pakketten op een efficiënte manier over het netwerk worden verzonden. Aan de ontvangstzijde pakt de transportlaag de pakketten weer uit, distilleert daaruit het oorspronkelijke bericht en stuurt de afzender een melding dat de informatie is aangekomen. Laag 3: netwerklaag Deze laag zorgt dat het netwerk zijn route kan vinden van aanvrager naar gebruiker. Ook wordt hier het voorkomen van opstoppingen geregeld. Deze netwerklaag plaatst data in pakketjes, telt deze en voegt een header toe waarin de volgorde van de pakketjes en het adres van de doelcomputer opgenomen zijn. Verantwoordelijk voor het adresseren van berichten en het vertalen van logische adressen en namen in fysieke adressen. Deze laag bepaalt ook de route van de bron naar de bestemming. Laag 2: datalink laag Deze laag definieert hoe gegevens op het netwerk worden gebracht. Dit wordt media access control genoemd. Hierbij wordt dus afgesproken of een netwerkpakket op je beurt moet wachten zoals bij token ring of dat een netwerkpakket altijd toegang hebt en het netwerk eventueel optredende problemen oplost (CSMA/CD: Carrier sense multiple access/collision detection). Ook wordt hier de aanmaak van dataframes geregeld. Deze laag is byte georiënteerd. Zendt dataframes van de netwerklaag naar de fysieke laag. 11

19 Aan de ontvangstzijde zet de datalinklaag de ruwe bits die bij de fysieke laag binnenkomen om in dataframes voor de netwerklaag. Moet zorgen voor een foutloze overdracht van de frames tussen de fysieke lagen van de zendende en ontvangende computer. De netwerklaag kan er daardoor van uitgaan dat de informatie die hij ontvangt geen fouten bevat. De datalink-laag wacht doorgaans na het verzenden van een frame op een bevestiging dat het frame goed is aangekomen. Frames die niet worden bevestigd of die tijdens de overdracht beschadigd zijn geraakt, worden opnieuw gestuurd. Laag 1: fysieke laag Deze laag definieert de voltages, de lengte van bits, het type bekabeling en connectors en de functie van de pinnen in de connector. De hardware wordt dus gedefinieerd in deze laag. De fysieke laag past pakketjes aan aan het medium dat ze transporteert. De pakketjes worden bijvoorbeeld in analoge signalen vertaald als ze via de telefoonlijn worden verzonden. De fysieke laag plaatst de pakketjes op het medium. Deze laag zendt de ongestructureerde, ruwe stroom bits over een fysiek medium zoals de netwerkkabel. De volgende figuur laat zien hoe het OSI-model zich verhoudt tot TCP/IP. De scheiding is tegenwoordig niet meer expliciet maar protocollen en services zijn vaak laagoverschrijdend. Ondanks dat het OSI-model niet aansluit bij de praktijk wordt dit model vaak als leidraad gebruikt. De requests for comments (RFC s) zijn de geldende standaarden. Dit is de bron om te bepalen hoe componenten geprogrammeerd en geïmplementeerd dienen te worden. Dit geld niet alleen voor de TCP parameters maar ook hoe services dienen te interfacen. Het is van belang dat elke toepassing zich conformeert aan de RFC s om communicatie tussen alle services en programma s te garanderen Encapsulatie Er wordt in dit gelaagde model gebruik gemaakt van een drietal basismechanismen die nu besproken worden. De eerste is encapsulatie. 12

20 Applicatie Data Data Applicatie Applicatie laag Data H Data H Applicatie laag Transport laag Data H H Data H H Transport laag Netwerk laag Data H H H Data H H H Netwerk laag Data link laag Data H H H H Data H H H H Data link laag Fysieke laag Fysieke laag Iedere laag van het OSI-model stopt data van de bovenliggende laag in een aparte envelop en adresseert die afzonderlijk met een header. Deze envelop wordt doorgegeven aan de onderliggende laag. Bij het uitvoeren van dit proces kan fragmentatie optreden doordat verschillende MTU s gebruikt worden. Een MTU staat voor maximum transfer unit en is de grootste eenheid van te versturen data Fragmentatie Het tweede basismechanisme dat gebruikt wordt is fragmentatie. Dit kan optreden doordat verschillende MTU s gebruikt worden. De MTU is rechtevenredig met datatransmissiesnelheid voor datalink laag. Hoe sneller de datalink laag, hoe groter de MTU. Een IP datagram of pakket kan wel 64K groot zijn, maar ethernet kan in de regel maar 1500 bytes in een frame aan. Fragmentatie vindt plaats op netwerklaag van OSI- model. Nadat de data over de netwerklaag is verstuurd wordt aan de ontvangende kant het omgekeerde uitgevoerd. Data wordt in een laag uit de envelop gehaald en doorgegeven aan de bovenliggende laag (De-)multiplexing Het derde basismechanisme is multiplexing en demultiplexing. Iedere laag kan meerdere implementaties ervan bevatten: de transportlaag bijvoorbeeld beschrijft alleen welke functionaliteit zich op die laag moet bevinden. De zendende kant (client) stuurt pakketten naar ontvangende kant (server). IP-pakketten bestaat uit TCP of UDP delen en deze worden gekenmerkt in het protocolveld van de IPheader zodat ontvangende kant kan zien voor welk protocol (TCP of UDP) het pakket is bedoeld. Dit is in de volgende figuur weergegeven. 13

21 Applicatie 1 Applicatie 2 Applicatie 3 Applicatie 1 Applicatie 2 Applicatie 3 TCP UDP TCP UDP IP IP Netwerk Client Server 3.3 Netwerklaag Het IP - Internet Protocol is beschreven in RFC 791. Kenmerkend voor IP zijn de volgende eigenschappen: Connectionless best effort delivery service Geen garantie dat een pakket aankomt. Geen garantie dat pakketten in de oorspronkelijke volgorde aankomen. Fragmentatie Als een pakket te groot is dan wordt het opgesplitst. ICMP (Internet Control Message Protocol) Dit zijn dienstberichten zoals bijvoorbeeld ping. Eén van de protocollen in de netwerklaag is ARP. De functie van ARP is om een koppeling te maken tussen het fysieke adres (MAC-adres) en het logische IP adres. Elke host heeft een zogenaamde ARP-cache. Deze cache bestaat uit een tabel met daarin MAC-adressen en het bijbehorende IP-adres. Als een host wil communiceren met een bepaald IP-adres zal deze host een ARP-broadcast op het netwerk versturen. Deze broadcast bestaat uit het verzoek aan het betreffende IP-adres om het MAC adres terug te sturen IP-headers In dit boek wordt regelmatig gerefereerd aan delen of velden van verschillende netwerkpakketten. In de volgende figuren is de opbouw van de verschillende pakketten weergegeven. Ethernet II frame Preamble & SOF / Synch Datalink header IP header TCP of UDP header Data FCS Layer 1 Layer 2 Layer 3 Layer 4 Layer 5,6,7 Layer 2 14

22 De IP-header is een onderdeel van het Ethernet frame en ziet er als volgt uit. IP header Version (4 bits) Header length (4 bits) Type of service (8 bits) Packet length (16 bits) Packet identifier (16 bits) Flags (3 bits) Fragmentation data (13 bits) Time to live (8 bits) Protocol (8 bits) Header checksum (16 bits) Source IP address (32 bits) Destination IP address (32 bits) De TCP-header ziet er als volgt uit: De UDP-header ziet er als volgt opgebouwd: TCP/IP klassen Adressen, octetten, klassen zoals beschreven in RFC 791 en RFC 1180 hebben de volgende kenmerken: Binaire adressen die 32-bits lang zijn Verdeeld in 4 octetten oftewel bytes Decimale equivalent van deze binaire adressen wordt gebruikt voor gemak Scheiding tussen netwerk en host gebeurt op basis van het subnetmask 15

23 IP adressen zijn onderverdeeld in vijf klassen. Klasse 1 ste 4 bits 1ste octetreeks IP-reeks A 0xxx B 10xx C 110x D E Subnetmask x.x.x- 239.x.x.x 240.x.x.x- 254.x.x.x Aantal netwerken Aantal hosts /8 2^7-2 2^24-2 /16 2^14-2 2^16-2 /24 2^21-2 2^8-2 n.v.t. n.v.t. n.v.t. n.v.t. n.v.t. n.v.t. Klasse D adressen worden gebruikt om te multicasten naar een groep IP-hosts. Bekend adres is bijvoorbeeld NTP network time protocol (RFC 1119). Klasse E adressen zijn gereserveerd voor experimenteel en toekomstig gebruik. Klassen D en E worden niet gebruikt door hosts een met connectie naar internet. Aantal mogelijke hosts in een netwerk is altijd 2 minder dan het aantal IP-adressen. Het eerste IP adres is het adres van het netwerk zelf. Het laatste adres in een netwerk is het broadcast adres van het netwerk. Er zijn een aantal gereserveerde adresreeksen: Gereserveerde adressen: default route of broadcast adres) 127.x.x.x loopback adres en localhost: x.x.x broadcast adres, limited broadcast adres: x.x APIPA: automatic private IP addressing Private networks (Deze worden niet gerouteerd over internet.): Klasse A: Klasse B: Klasse C: Subnetting Met het originele classfull adresseringsschema zullen organisaties met kleine netwerken zich wel kunnen redden. De organisaties met grotere netwerken zullen hun netwerken onderverdelen in kleinere subnetwerken. De redenen hiervoor zijn onder andere: Koppelen van verschillende type netwerken zoals ethernet en FDDI Beveiliging Netwerkverzadiging tegengaan (saturation) Voorbeeld: Stel je nu eens voor dat een organisatie die zich specialiseert in grafische applicaties (streaming media research) een klasse B adres toegewezen heeft gekregen. Het verkeer dat over dat interne netwerk zal gaan is door al die multimedia activiteiten enorm. Als alle hosts aan het communiceren slaan, dan zal in no-time het hele netwerk verzadigd raken (saturation). Dit komt doordat er veel collisions ontstaan. De grotere organisaties hebben dan ook een flexibeler adresseringsschema nodig dan het standaard classfull adresseringsschema. Dit adresseringsschema is verbeterd door gebruik te maken van de techniek genaamd subnetting. Hierbij wordt een deel van het host-id gebruikt voor een subnet-id. 16

24 Classfull addressing Network ID Host ID Subnetting Network ID Subnet ID Host ID Voorbeeld van een klasse C netwerk: Network: Subnet: Na subnetting naar een subnetmask van is het volgende subnet mogelijk: Verdeling: nnnnnnnn.nnnnnnnn.nnnnnnnn.sssshhhh Binaire notatie: Decimale notatie: n = netwerk-id, s = subnet-id, h = host-id Nog een voorbeeld: Basis netwerk /24 subnetten naar /28, ofwel leen 4 bits van host deel Netwerkdeel Subnet.host Hostadressen Broadcast Adres xxxx (*) xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx (*) (*) Dit deel is niet bruikbaar. 17

25 Vervolgens kunnen we netwerk verder uitschrijven: Netwerkdeel Subn.host deel (1) (2) (1) Dit deel is niet bruikbaar. Het hostdeel bestaat uit alleen 0. (2) Dit deel is niet bruikbaar. Het hostdeel bestaat uit alleen 1. Totaal: = 14 hosts per subnet In de praktijk worden de adressen in dit geval vaak als volgt verdeeld: = netwerk-id = default gateway = host-id s = broadcast ID Onderverdeling hosts Als voorbeeld gebruiken we een klasse C netwerk (/24) met 254 hosts. Via conventioneel subnetten levert een klasse C netwerk, waarbij bijvoorbeeld 3 bits voor subnetten worden gebruikt, 8 subnetten op met ieder een gelijk aantal mogelijke hosts (30). De verdeling hiervan is in de volgende figuur weergegeven. Stel een organisatie met een klasse C netwerk, bijv /24, heeft 6 netwerksegmenten. De eerste 4 segmenten zijn relatief klein, bevatten maar 10 hosts per segment. In de resterende 2 segmenten zitten echter 50 en 100 hosts. Het totaal aantal hosts is dus 196. Zonder te subnetten zou dit dus goed gaan. Wanneer we echter wel gaan 18

26 subnetten hebben we een probleem. Het past niet! Voor 6 netwerksegmenten hebben we dus 3 bits voor het subnet-id nodig. Houden we 5 bits over voor host-id s. Dus ieder segment heeft dezelfde capaciteit, namelijk 30 hosts. Genoeg voor de kleinere segmenten, maar onvoldoende voor de grotere. De enige mogelijkheid om dit met conventioneel subnetten op te lossen is een nieuw klasse C blok aanvragen en voor de 2 grote segmenten. Dit is duur en veel IP adressen worden dan niet gebruikt. De oplossing hiervoor is VLSM (variable length subnet masking). Schematisch ziet dit er als volgt uit: VLSM komt neer op subnet het eerste netwerk in de grootste subnetten. Subnet vervolgens deze subnetten in kleinere netwerken. Deze eventueel weer subnetten enzovoort Supernetting Bij de klassieke verdeling van IP-adressen in klasse A, B en C adressen ontstonden problemen met de adresruimte. Deze betroffen vooral de klasse B adressen. Hier zijn er maar van, waardoor bij voorkeur groepen van klasse C adressen uitgedeeld werden. Hierdoor nam weer de omvang van de routeringstabellen van de core-routers toe, omdat nu in plaats van één nieuwe route voor een uitgedeeld klasse B adres een groepje van routes voor de klasse C adressen toegevoegd moest worden. Om IP-adressen zo economisch mogelijk uit te delen, dat wil zeggen aansluitend bij de adresbehoefte van een organisatie, en om tevens de groei van routeringstabellen tegen te gaan werd classless inter domain routing (CIDR) ingevoerd. Met andere woorden, er wordt afgestapt van de oude regel van netwerken met een vaste klassenindeling zoals /8, /16 of /24, maar nu kunnen we grote netwerken creëren van /13 (met 19 bits voor host ID) tot hele kleine netwerken van /27 (met 5 bits voor host ID). Samenvoegen van meerdere netwerken tot één netwerk zoals: /24 en /24 worden samengevoegd tot / Transportlaag Er zijn twee implementaties van transportprotocollen: UDP (connectionless) TCP (connection-oriented) UDP Eigenschappen van UDP: Demultiplexing op basis van de zogenaamde well-known port numbers. 19

27 Clients: kiezen random getal Servers: kiezen well-known port Uitzondering: port 68 Bootstrap protocol client (BOOTPC) zie hiervoor RFC Demultiplexing: Transportlaag Poort 1 Poort 2 Poort 3 Poort 4 UDP demultiplexing op basis van poortnummer UDP segment Netwerklaag IP pakket Poort zijn gereserveerd voor de generieke TCP/IP-applicaties. Dat betekent dus ook dat clients en applicatiebouwers geen gebruik mogen maken van deze poorten. Voorbeelden: Poortnummer Keyword Omschrijving 1 ECHO 37 TIME 53 DOMAIN Domain Name Server 69 TFTP Trivial FTP 123 NTP Network Time Protocol Een volledige lijst vind je op TCP Eigenschappen TCP: Sessie opbouwen en afsluiten Full-duplex Buffering Error checking en correctie Flow control Dynamische bepaling van time-out waarde Net als UDP: demultiplexing op basis van well known port numbers Voorbeeld van dynamische bepaling van de time-out waarde is RTT (Round Trip Time). RTT is de tijd tussen het verzenden van een segment en de ontvangen ACK daarop. TCP meet voortdurend hoe lang het duurt voor de ACK s binnenkomen en stelt de RTT daarop in. TCP gebruikt de volgende formule om nieuwe RTT te berekenen: Nieuwe RTT = (a * oude RTT) + ( (1-a) * nieuwste RTT meeting) a = smoothing factor tussen 0 en 1. 20

28 Dit mechanisme zorgt bij een sterk wisselende netwerkbelasting voor een optimale time-out waarde; niet te kort (dit leidt tot een vals alarm) en niet te lang (dan duurt het te lang voordat een verloren gegaan frame wordt nagezonden) TCP connecties Een belangrijk kenmerk van TCP/IP is het opzetten van een threeway-handshake. Hierbij kan onderscheid gemaakt worden tussen de TCP-connectie tussen een actieve en een passieve client en twee actieve clients. De TCP-connectie tussen een actieve en passieve client wordt als volgt opgezet. SYN_SENT Actieve open client Passieve open client LISTEN SYN J SYN_RCVD ESTABLISHED SYN K, ACK J + 1 ACK K + 1 ESTABLISHED Een TCP-connectie wordt opgezet door een threeway-handshake waarbij volgordenummers (sequence numbers) worden uitgewisseld. De actieve client initieert de connectie terwijl de andere kant, de passieve client, niets anders doet dan luisteren (status LISTEN). In deze modus wacht de passieve client dus op een inkomende connectieaanvraag. De treeway-handshake bestaat uit de volgende stappen: 1. De actieve client zendt een SYN segment uit met een willekeurig volgordenummer J 2. De passieve client antwoordt hierop door het sturen van een ACK segment met een bevestigingsnummer (acknowledge number) J+1 en een SYN segment met een eigen willekeurig volgordenummer K 3. De actieve client bevestigd het zojuist ontvangen SYN segment door het zenden van een ACK segment met een bevestigingsnummer K+1. De TCP-connectie tussen twee gelijktijdig actieve clients wordt als volgt opgezet: 21

29 Twee clients zijn beide actief open en zenden (bijna) gelijktijdig een connectieaanvraag uit. Als de eerste ACK op SYN J is gegeven wordt tegelijkertijd de SYN K opnieuw mee verzonden omdat de ACK K+1 nog niet ontvangen is. Omdat iedere connectie anders is worden alle gegevens van iedere connectie apart bewaard. TCP gebruikt hiervoor een speciale datastructuur genaamd transmission control block (TCB). Deze TCB bevat alle belangrijke informatie over de connectie, zoals twee socketnummers en pointers naar buffers die inkomende en uitgaande data bevatten. Ook wordt TCB gebruikt voor het zogenaamde sliding window mechanisme. Het maakt ook gebruik van diverse variabelen; hoeveel bytes zijn ontvangen en bevestigd, hoeveel bytes zijn ontvangen en nog niet zijn bevestigd, window grootte, enzovoort. Iedere client onderhoudt zijn eigen TCB voor zijn connectie. Er moet wat voorbereidend werk gedaan worden voordat een TCP-connectie opgezet kan worden. Een van die taken is het initialiseren van een TCB die alle connectie-informatie bijhoudt. Dit wordt aan het begin van het opzetten van een TCP-connectie uitgevoerd, wanneer een client uit de CLOSED status komt. Oorspronkelijk koos iedere client een initial sequence number (ISN) door gebruik te maken van een teller, de klok bijvoorbeeld, die elke 4 microseconde tikt. Deze teller werd geïnitialiseerd zodra TCP startte, begon dan bij 0 en telde elke 4 microseconde er 1 bij op totdat de maximale waarde werd bereikt (32-bit: ). Daarna begon de teller weer bij 0. Ieder keer als een nieuwe connectie werd opgezet, de ISN werd direct uit deze teller overgenomen. Omdat het 4 uur duurt voordat de teller weer opnieuw begint kan je met enige zekerheid zeggen dat geen twee connecties met elkaar kunnen conflicteren. Een probleem met deze methode is dat de ISN dus voorspelbaar kunnen zijn. Een hacker kan code schrijven die ISN s analyseert en een voorspelling doet van volgend ISN van een TCP connectie. Dit is dus een beveiligingsrisico en hier is in het verleden gebruik van gemaakt. Om dit risico te minimaliseren wordt tegenwoordig gebruik gemaakt van een willekeurig initieel volgordenummer. Bij het verzenden van de data is de controle op een goede doorstroming belangrijk. Deze controle wordt flowcontrol genoemd en maakt gebruik van een zogeheten sliding window. Deze window grootte kan een vast omvang hebben of kan dynamisch zijn. Flowcontrol met een vaste window grootte wordt in de volgende figuur weergegeven. De window grootte is 6 en veranderd niet tijdens de sessie. Het window schuift op na iedere ontvangen ACK. t= Ack(5) arriveert Ack(11) arriveert t=n Ack(15) arriveert 22

30 Ditzelfde proces met een variabele window grootte wordt in de volgende figuur weergeven. t= Ack(5) arriveert, Window size Ack(11) arriveert, Window size t=n Ack(15) arriveert De TCP ontvangstwindow grootte (receive window) is de hoeveelheid te ontvangen data (in bytes) dat nog gebufferd kan worden tijdens een connectie. De zendende host kan dan alleen die hoeveelheid aan data verzenden en moet wachten totdat een bevestiging (ACK) en een window update (window size) is ontvangen van de ontvangende host. Het proces voor het afsluiten van een TCP-connectie is in de volgende figuur weergegeven. Actieve client Passieve client Application close() FIN J CLOSE_WAIT FIN_WAIT1 FIN_WAIT2 ACK J + 1 FIN K LAST_ACK ACK K + 1 TIME_WAIT CLOSED Een applicatie aan de actieve kant wil stoppen met communiceren en geeft bijvoorbeeld een close() systeemcommando op een socket. De passieve kant van de connectie ontvangt een FIN segment wat ervoor zorgt dat de software een end-of-file doorgeeft aan de serversoftware. Bovenstaande reeks commando s zijn eigenlijk onafhankelijk van elkaar want het is mogelijk om een connectie te sluiten vanuit één kant maar niet vanuit de andere kant. Dit is ook wel bekend als een halve close. Het volgende voorbeeld laat zien waarvoor zo n halve close wordt gebruikt. 23

31 Actieve client Passieve client Application close() FIN J CLOSE_WAIT FIN_WAIT1 FIN_WAIT2 < 2 MSL TIME_WAIT ACK K + 1 ACK J + 1 FIN K FIN K EOF to application LAST_ACK CLOSED Time out waiting for ACK Wanneer eenmaal de laatste ACK is verzonden vanuit de actieve kant, kan de poort/connectie voor enige tijd (2MSL) niet gebruikt worden. Dit is twee maal de maximal segment lifetime en deze regel wordt toegepast indien de laatste ACK verloren is gegaan. De passieve closing host wacht net zolang op een ACK totdat 2MSL is verstreken, gaat er dan vanuit dat de laatste ACK verloren is gegaan en verstuurt opnieuw FIN K. Indien de laatste ACK wel binnen 2MSL is ontvangen dan is er geen probleem en wordt er niet opnieuw een FIN verstuurd. RFC 793 definieert de MSL als 120 seconden maar sommige implementaties gebruiken 30 of 60 seconden. Het is de maximale tijd die redelijker wijs nodig is om te wachten op een segment. Indien een segment niet binnen de gestelde tijd ontvangen wordt zal het waarschijnlijk nooit aankomen en wordt er aangenomen dat het verloren is gegaan. Om connecties tussen machines uniek te identificeren wordt er gebruik gemaakt van zogenaamde socketnummers. Socketnummer = IP nummer + port nummer Combinatie IP-port-IP-port is te allen tijde uniek! 24

32 Voorbeeld van twee FTP connecties tussen twee dezelfde machines. FTP1 Socket: :7789 Source port: 21 Dest. Port: 7789 FTP1 FTP2 Source port: 6981 Dest.port: 21 FTP2 Source port: 21 Dest.port: 6981 TCP TCP IP IP IP adres: IP adres: Door nu de sockets van de twee machines achter elkaar te plaatsen, worden beide connecties toch uniek geïdentificeerd: : : : : Network address translation Network address translation (NAT) wordt ook wel IP-masquerading genoemd. Dit het proces waarbij IP-adressen van het ene IP-adres in het andere IP-adres wordt vertaald. Het wordt met name gebruikt om interne netwerken aan internet te koppelen. Het interne netwerk gebruikt dan niet-publieke IP-adressen. Dit zijn IP-adressen uit de IP-reeksen die genoemd worden in RFC De koppeling aan het internet gebeurt met publieke IP-adressen. Door het gebruik van NAT zijn minder publieke IP-adressen nodig. Hele netwerken kunnen met één of enkele publieke IP-adressen aan internet gekoppeld worden. Het device wat deze vertaling doet heet een NAT-device. Deze functie kan ook onderdeel zijn van een router of firewall. Netwerkverkeer van het interne netwerk dat voor internet bestemd is wordt intern gerouteerd naar het NAT-device. In het NAT-device worden in alle IP-pakketten het bron-ipadres vervangen door een publiek IP-adres. Daarna worden de IP-pakketten via het internet gerouteerd. Port address translation (PAT) is een proces wat vaak ook met term NAT wordt aangeduid maar ook bekend is onder namen zoals SNAT of NAPT. Bij PAT wordt behalve het IP-adres ook de TCP- of UDP-poortnummer vervangen. Het PAT-device houdt een overzicht bij van alle sessies aan de hand van de gebruikte interne en publieke poorten. Bij een response op het uitgaande netwerkverkeer kan het PAT-device de respons terugsturen naar de juiste interne computer door het aanpassen van de IP-pakketten. Het netwerkverkeer wat op internet zichtbaar is lijkt dus ook afkomstig te zijn van het PAT-device. Interne IP-adressen blijven zo verborgen voor de buitenwereld. PAT vervult ook een belangrijke rol bij de verdeling van de schaarse publieke IP-adressen. Zowel PAT als NAT hebben wel een performance downgrade als nadeel. Immers de IP-pakketten moeten aangepast worden maar ook de checksums moeten opnieuw berekent worden. Voor het uitgaande netwerkverkeer houdt het PAT-device een lijst bij met welke interne IPadressen en poorten corresponderen met het externe IP-adres en poort. Voor een netwerksessie die vanaf internet opgezet wordt zal een PAT-device dus verteld moeten worden naar welk interne IP-adres en poort het netwerkverkeer moet worden doorgestuurd. Deze informatie zal in het PAT-device geconfigureerd moeten worden. 25

33 3.6 IPv6 TCP/IP zoals dat in dit hoofdstuk is beschreven is op basis van IP versie 4. Een volgende versie van IP staat steeds meer in de belangstelling en een migratie naar IP versie 6 zal in de toekomst onvermijdelijk zijn. Rond 1992 werd al geconstateerd dat er een tekort aan IPv4- adresssen zou onstaan. Eén van de technieken om dit te kort te voorkomen is is het gebruik van NAT. Dit tekort aan IP-adressen is de belangrijkste reden geweest om IPv6 te onwikkelen. IPv4 gebruikt 32 bits voor een IP-adres terwijl IPv6 128 bits voor een IP-adres. Verder zijn er een aantal belangrijke eigenschappen aan de IPv6 standaard toegevoegd. Een deel van deze eigenschappen is toegevoegd aan IPv4 zoals autoconfiguratie en IPSec. Autoconfiguratie maakt het mogelijk dat een host een IP-adres toegewezen krijgt zonder gebruik te maken van DHCP. IPSec maakt een veilige communicatie tussen hosts mogelijk. 26

34 4 Firewalls 4.1 Basiswerking Een firewall doet in basis niets anders dan packet- en protocolfiltering en komt dus in principe niet hoger dan laag 4 van het OSI-model. Alle velden van de header van een IP-, TCP- of UDP-pakket kunnen door een firewall gebruikt worden in de beoordeling van het netwerkverkeer. De eenvoudige vormen van packetfiltering gebeuren op basis van source en destination IP-adres, protocol en source en destination poortnummer. Op basis van deze informatie in de headers bepaald de firewall wat er met een netwerkpakket gebeurt. Dit kan zijn een accept, reject of dropped/denied. Bij een accept wordt het packet doorgestuurd naar de bestemming. Bij een reject wordt het pakket tegengehouden maar de verzender krijgt bericht dat het pakket niet wordt doorgestuurd. Dit is een vriendelijke manier is om te zeggen dat het netwerkverkeer niet wordt toegestaan. Een minder vriendelijke manier een drop of deny. Het pakket wordt zonder terugkoppeling naar de verzender geweigerd. Het is niet altijd gewenst of mogelijk om een antwoord terug te sturen. Informatie in de headers kan onjuist of vervalst zijn of er kan extreem veel netwerkverkeer komen vanaf een bepaald bron. De regels op grond waarvan een firewall netwerkverkeer beoordeeld liggen vast in de zogenaamde rulebase. Voor al het netwerkverkeer wordt de rulebase doorlopen totdat er een regel gevonden wordt in de rulebase die van toepassing is. Wanneer niets van toepassing is wordt de laatste regel toegepast. Dit kan een algemene regel zijn die expliciet in de rulebase is opgenomen of een regel die impliciet binnen de firewall van toepassing is. Packetfiltering wat de basisfunctie van een firewall is, is eenvoudig te implementeren. De voorziening hiervoor is al in veel besturingssystemen ingebouwd. 4.2 Typen firewalls Circuit-level gateway Een circuit-level gateway monitort de TCP-handshake tussen trusted en untrusted hosts en vice versa. De TCP-handshake wordt hierbij geproxied. Een trusted client vraagt een sessie aan en deze kan worden geaccepteerd op basis van een eenvoudige ruleset. De gateway proxied vervolgens de handshake. Na een succesvolle handshake wordt de sessie opgenomen in de sessiedatabase. Verdere communicatie binnen dezelfde TCP sessie wordt nu doorgelaten. Na het afronden van de sessie wordt deze uit de database verwijderd. Deze techniek is alleen toepasbaar bij TCP omdat TCP gebruik maakt van een handshake en UDP niet Application-level gateway Een application-level gateway gaat een stapje verder dan de ciruit-level gateway. In plaats van dat de handshake geproxied wordt worden nu alle inkomende en uitgaande pakketten geproxied en gefilterd. Door deze volledige proxy-ing zijn er geen directe connecties mogelijk. De client heeft een connectie naar de firewall en de firewall heeft een andere connectie met de doelhost. Application-level gateways zijn protocol of applicatie specifiek. Voor elk protocol of applicatie heeft de firewall kennis nodig over de inhoud van het netwerkverkeer. De firewall kan zo commando s of informatie uit protocol interpreteren. Bijvoorbeeld een FTP-put of een HTTP-post. Dit maakt het ook mogelijk dat dit type firewall kan filteren tot op de applicatielaag van het OSI-model. De kwaliteit of bruikbaarheid van deze firewalls wordt bepaald door het aantal proxymodules voor de te gebruiken applicaties en protocollen. Een protocol of applicatie wat bij de firewall niet bekend kan ook niet door de firewall afgehandeld worden Stateful inspection firewall Een stateful inspection firewall is een combinatie van eerder genoemde firewalls. Hierbij wordt gebruik gemaakt van packetfiltering en wordt de TCP-handshake gecontroleerd. Dit type firewall controleert de netwerkpakketten op basis van protocol- en applicatie-informatie. Voor de controle op basis van de applicatie informatie moet de firewall wel kennis hebben van 27

35 de betreffende applicatie. De kwaliteit van stateful inspection firewall wordt voor een belangrijk deel bepaald door de mate waarin de firewall in de applicatielaag kan controleren. 4.3 Firewall netwerkdesign Het maken van een firewall netwerkdesign omvat de volgende stappen: Analyseer de gewenste functionaliteit binnen een netwerk. Definieer zones in het netwerk en beleidsregels per zone. Plaats services in zones op basis van de beleidsregels. Maak een functioneel design. Maak een technisch design. De weergave van het design dient in meerdere tekening te gebeuren. In een functionele tekening worden de zones met de daarbij behorende services aangegeven. Een technische tekening laat voor de zones de subnetten zien. Op basis van deze tekening kunnen er voor diverse services communicatie stromen worden aangegeven. Hiervoor kan dan per service een tekening gemaakt worden. Voorbeeld van een zone-indeling is: WAN DMZ 1 DMZ 2 Services zone Management zone LAN Untrusted, externe zone Publieke services Extranet / intranet services, VPN Relay services, gerepliceerde databases, authenticatie services. Beheerzone voor DMZ s en services zone Het interne netwerk dat onderverdeeld kan worden in een server zone en een client zone. 4.4 Beheeraspecten Een belangrijk onderdeel van het beheer van de firewall is de rulebase. Deze bevat de regels die op het netwerkverkeer worden toegepast. Wanneer in een rulebase geen regels van toepassing zijn voor bepaald netwerkverkeer dan zijn de standaard regels van toepassing. Wat de standaard regels zijn is afhankelijk van het merk en type van de firewall. Zo kan het zijn dat een firewall het netwerkverkeer doorlaat wanneer er geen regels van toepassing zijn of dat alles wordt tegengehouden. In combinatie met andere aspecten van het netwerkverkeer kan het bijvoorbeeld gebeuren dat ICMP standaard wordt toegestaan en dat TCP en UDP worden tegengehouden. Om zo min mogelijk afhankelijk te zijn van de standaard regels is het raadzaam om zelf de laatste regels van de rulebase te definiëren om het resterende netwerkverkeer op te vangen. Neem bij het definiëren van de rulebase de volgende aspecten in acht: Wees zo specifiek mogelijk in het definiëren van de regels. Laat alleen het absoluut noodzakelijke netwerkverkeer naar binnen en naar buiten toe. Laat bij voorkeur alleen services toe waar ook applicatiefiltering voor beschikbaar is. Zorg voor een goede en ook bruikbare logging en monitoring. Gebruik naamsconventies zodat inhoud van een regel snel duidelijk is. Zorg ervoor dat er niet te veel regels zijn. Het wordt anders al snel onoverzichtelijk. Maak niet alleen een back-up van de ruleset maar ook van de firewall zelf. Zorg ervoor dat er een testomgeving beschikbaar is en dat deze ook gebruikt wordt. Een lastige klus bij het beheer van een rulebase is de documentatie ervan. Hierbij is niet alleen van belang om te documenten hoe een regel er uit ziet. Het is ook van belang om aan te geven waarom een regel aanwezig is in de rulebase. Wanneer een regel niet meer nodig zou zijn is dit in de documentatie zichtbaar. De rulebase kan dan aangepast worden. Hiermee wordt voorkomen dat er een grote en onoverzichtelijke rulebase ontstaat waarbij onterecht netwerkverkeer kan worden doorgelaten door de firewall. Voor het doorvoeren van functionele wijzigingen in de rulebase is het gewenst om een hiervoor een heldere procedure op te stellen. Hierbij moet ook rekening gehouden worden 28

36 met een functiescheiding. Vanuit security oogpunt is het ongewenst dat het volledige firewallbeheer uitgevoerd wordt door één persoon. Een heldere procedure is ook nodig om een zo efficiënt mogelijk beheer uit te voeren. Dit voorkomt dat er overbodige of onjuiste regels in de rulebase komen met alle risico s van dien. Een aanvraag voor een wijziging voor een regel in een firewall omvat de volgende aspecten: Beschrijving van de gewenste regel. Deze beschrijving is zowel technisch als functioneel. In de wijziging wordt aangegeven wie de aanvrager is. Dit is de functionele eigenaar van de regel. Gedurende welke periode moet de regel blijven bestaan. Omschrijving van de uit te voeren testen om een juiste functionele werking vast te stellen. Na de aanvraag zal er een goedkeuring moeten komen voordat de regel daadwerkelijk op de firewall wordt aangemaakt. De goedkeuring wordt uitgevoerd door een andere functionaris. Bij de goedkeuring van de aanvraag zal met het volgende rekening gehouden moeten worden: Laten de testresultaten ook het gewenste resultaat zien. Is de aangevraagde wijziging toegestaan ten opzichte van de beveiligingsbeleid? Verificatie van de wijzigingen bij technische experts. Controle of de functionaliteit niet doubleert. 4.5 Logging Een belangrijk onderdeel van een firewall is logging. De meeste firewalls kunnen veel logging produceren. Er zijn verschillende vormen van logging te onderscheiden. Eenvoudige logging (reactief) Logging van de accepts en denies/drops. Dit is logging die gerelateerd is aan de normale werking van een firewall. Deze logging wordt primair gebruikt voor debugging en foutanalyse. Dit type logging is meestal te groot om direct trends in te ontdekken. Auditlogging (re-actief) Logging van systeemwijzigingen door beheerders. Deze logging dient dan dus ook als input voor changemanagement. Auditlogs kunnen worden vergeleken met de wijzigingen. De logging dient dus ook overeen te komen met de wijzigingen. Alert logging (actief) Logging van aanvallen, fouten, etc. Op grond van deze gelogde informatie dient actie ondernomen te worden. Report logging (pro-actief) Analyse van de historische logging. Hiermee kan een baseline opgesteld worden zodat afwijkende trends ten opzicht van de baseline gedetecteerd kunnen worden. Deze logging dient ook als rapportage naar het management. Om efficiënt gebruik van de logs te kunnen maken is het zinvol om hiervoor een strategie te ontwikkelen op basis van de volgende aspecten: Houdt een beheersbare omvang van de logbestanden aan. De omvang is mede afhankelijk van de grootte van de omvang en de beschikbare tooling om de logging te verwerken. Archiveer de logs zodat de gegevens over langere tijd beschikbaar zijn. Incidenten kunnen teruggezocht worden. Ook kan de data gebruikt worden voor trendanalyse. Log het netwerkverkeer wat geblokkeerd wordt. Log het binnenkomende netwerkverkeer. Gebruik een waarschuwingsfunctie om inbraakpogingen aan te geven. Gebruik software om de logbestanden te analyseren. De hoeveelheid data van een gemiddelde firewall is te groot om doorheen te bladeren. 29

37 Voer trendanalyses uit zodat afwijkingen in het netwerkverkeer ten opzichte van de baseline zichtbaar worden. 4.6 Firewall-authenticatie Een firewall kan ook ingezet worden als authenticatiemiddel voor services die geen authenticatie mogelijkheden hebben. Authenticatie wordt dan op of door de firewall uitgevoerd voordat netwerkverkeer wordt doorgelaten naar de betreffende service. De firewall kan zelf de authenticatie uitvoeren als gegevens zoals gebruikersnaam en wachtwoord in de firewall bekend zijn. Ook is het mogelijk dat de firewall voor de authenticatie met een andere service zoals met RADIUS communiceert. De firewall is dan alleen bekend met het resultaat van de authenticatie, namelijk wel of geen toegang verlenen. De firewall-authenticatie kan ook gebruikt worden als extra authenticatielaag. Authenticatie gebeurt dan op de firewall en op de service. In de situatie dat de firewall ook dient als VPN-service wordt per definitie gebruik gemaakt van de authenticatie op de firewall. Veel typen firewalls beschikken over een VPNmodule. VPN-clients kunnen een netwerkverbinding opzetten op naar de firewall. De firewall voert de authenticatie uit en zet de VPN-verbinding op. De client kan zo via een beveiligde netwerkverbinding achter het netwerk van de firewall komen. Ondanks dat deze functionaliteit vaak op een firewall aanwezig is is dit geen basisfunctionaliteit van een firewall. Verschillende vormen van firewall authenticatie zijn: Protocol authenticatie Geeft toegang op basis van authenticatie per protocol. Dit is bijvoorbeeld toepasbaar op FTP, HTTP, HTTPS. Sessie authenticatie Geeft toegang tot toegestane services en hosts gedurende een vooraf gedefinieerde tijd op basis van de sessie. Client authenticatie Geeft toegang op basis van authenticatie per host tot toegestane services en hosts. 30

38 5 Proxy De hele automatiseringswereld spreekt over de proxy, toch is de vertaling gevolmachtigde als begrip niet verkeerd. De proxy handelt immers namens de opdrachtgever. 5.1 Waarom een proxy? Het netwerkverkeer kan worden gefilterd op verschillende niveaus. Routers kunnen filteren met een accessfilter op bronadres (source) en bestemmingadres (destination). Niet alleen IPadressen, maar ook de gebruikte poorten. Meestal wordt ook het protocoltype gecontroleerd. Firewalls gaan een stap verder, deze controleren ook het service type en kunnen de status van de verbindingopbouw controleren. Een proxy zal veel meer op applicatieniveau werken. Zo kunnen proxies authenticeren, zodat bepaald kan worden wie (of wat) gebruik mag maken van een bepaalde functie. Verder kunnen de toegestane opdrachten worden beperkt. 5.2 Indeling in functie Ondanks dat vele producten de verschillende functionaliteiten van een proxy in één product bieden, zullen we voor een goed begrip een onderscheid in functionaliteit maken. Zo kennen we: Forwarding proxy Reverse proxy Applicatie proxy Forwarding proxy Deze proxy wordt gebruikt om het netwerkverkeer dat van intern naar extern gaat te controleren. Functies die we hier aantreffen zijn: Verbergen van het IP-adres van de oorspronkelijke client Authenticatie en autorisatie Beperking in het aantal te gebruiken protocollen Beperking in de te raadplegen sites Caching Logging Blokkeren van (actieve) inhoud Scannen van data Verbergen van het client IP-adres Als in het interne netwerk een niet-publieke IP-adresreeks gebruikt is het noodzakelijk het source IP-adres van de client om te zetten naar een publiek IP-adres voordat het TCP/IP pakket het internet opgaat. Overigens, dit niet-publieke adres wordt niet door de routers doorgestuurd. Er zijn overigens meerdere manieren om dit te bereiken. Met deze functie wordt er voorkomen dat informatie over de opbouw van het interne netwerk wordt vrijgegeven. Bovendien is een NAT-functie bij gebruik van niet-publieke adressen noodzakelijk omdat niet-publieke IP-adressen niet over internet gerouteerd worden. Door het gebruik van een publieke proxy kan men redelijk anoniem over het internet gebrowsen omdat het IP-adres van de computer of van de gateway waarachter de computer zit wordt verstopt. Bedenk echter dat de proxy zelf een log bijhoud waarin het IP-adres wel wordt vermeld. Daarnaast verwerken sommige proxies het IP-adres van de client in de HTTPheader van de request waardoor toch het IP-adres te achterhalen is. Het betreft hier de HTTP-headervelden Via en X-Forwarded-For. 31

39 Authenticatie en autorisatie In veel bedrijven zal niet iedereen automatisch de mogelijkheid krijgen om het internet te raadplegen. Ook wil men vaak bij nieuwe werknemers dat men eerst een verklaring leest en ondertekend waarin de spelregels voor het internet gebruik vermeld zijn. Om de proxy te kunnen gebruiken zal een gebruiker zich bij de proxy moeten authenticeren. Deze authenticatie kan divers zijn. Er bestaan mogelijkheden op basis van gebruikersaccount, wachtwoord, tokens en IP-adres of reeksen van IP-adressen. Beperking in het aantal te gebruiken protocollen Een proxy kan het aantal toegestane protocollen beperken. Een veel gebruikte mogelijkheid is het gebruik beperken tot HTTP en HTTPS en soms FTP andere protocollen worden dan geblokkeerd. Overigens kan men op basis van de autorisatie dit gedifferentieerd doen. Dit kan dan gebruikt worden om slechts een beperkt aantal personen bijvoorbeeld de download mogelijkheid van FTP te geven. Caching Na een aanvraag van een gebruiker voor een webpagina, zal de proxy eerst in zijn lokale cache kijken of de betreffende pagina al beschikbaar is. Overigens wordt voor de caching een uitgebreid mechanisme gebruikt om te bepalen of de pagina nog actueel is. Als de pagina gevonden wordt, wordt deze naar de gebruiker gestuurd. Zo niet, dan zal de proxy de pagina namens de aanvrager opvragen en vervolgens doorsturen naar de aanvrager. Logging Logging is soms een moeilijk onderwerp in verband met privacy en de juridische aspecten ervan. Met deze logging kunnen we niet alleen zijn welke fouten er zijn opgetreden, maar ook welke sites en pagina s gebruikers hebben bezocht. Dat er gelogd wordt en hoe deze logging gebruikt wordt moet daarom in ieder geval aan gebruikers worden gecommuniceerd. Zeker als het management niet wil dat het personeel ongeoorloofde websites bezoekt. Ook de repercussies moeten aan het personeel bekend gemaakt worden. Blokkeren van (actieve) inhoud Sommige sites vereisen dat er van Java of ActiveX aan de clientzijde gebruik wordt gemaakt. Deze worden dan gedownload vanaf de webserver. Omdat dit een gevaar kan opleveren wordt dit vaak geblokkeerd in de proxy. Behalve Java- of ActiveX-componenten die in de website gebruikt worden kunnen via internet ook betstanden zoals executables of scripts gedownload worden. Deze uitvoerbare code vormt een beveiligingsrisico voor de client. Het kan malware zijn of software waarvoor een licentie aanwezig zijn. De proxy kan ook gebruikt worden om het downloaden van bepaalde content zoals audio of films te blokkeren. Op grond van een beleid voor het gebruik van internet kan bepaald zijn dat niet-werkgerelateerde content niet bekeken of gedownload mag worden. Dit beleid kan door een proxy worden afgedwongen. De ActiveX beveiliging hangt volledig af van het oordeel van de gebruiker. Een ActiveX programma komt met een digitale handtekening van de auteur van het programma of van iemand die het wil gebruiken. Een digitale handtekening is net als een handtekening op papier. De webbrowser kan de digitale handtekening onderzoeken en vertellen of die echt is. Op die manier weet je wie het programma heeft ondertekend. Dat is de theorie, in de praktijk werkt dit niet altijd zo goed. Als de webbrowser de handtekening heeft gecontroleerd, laat het zien wie dat heeft gedaan en vraagt of het programma uitgevoerd moet worden. Je krijgt twee keuzen, accepteren of weigeren. ActiveX vertrouwt dus op de gebruiker om de juiste beslissing te nemen. Als je een kwaadwillend programma accepteert ontstaat een probleem. Hoe weten we of een schrijver van een programma te vertrouwen is? Dat weten we niet en omdat we de melding vaker zien zullen we misschien uit macht der gewoonte voor OK kiezen. De enige manier om dit risico te vermijden is altijd NEE te kiezen of ActiveX door een proxy te laten filteren. Javabeveiliging berust op software technologie. Alle Javaprogrammatuur zal geaccepteerd worden en worden uitgevoerd in een sandbox. Deze uitdrukking komt van de schietbaan waar de kogel zonder schade aan te richten tot stilstand komt in zand. Deze sandbox zal het besturingssysteem en de data afschermen van het Java programma. Zolang de sandbox 32

40 goed werkt kan er geen schade aangericht worden. De Javabeveiliging werkt dus op de sandbox software. Het belangrijkste gevaar van Java is daarom de complexiteit van de software van de sandbox zelf. Normaal gesproken geldt dat hoe complexer de software hoe meer kans er is op fouten. Scannen van data Ook al besteden veel proxies het scannen van data uit aan een apart systeem met daarop een virusscanner geïnstalleerd toch hoort dit bij de functionaliteit van een proxy. Alle data die wordt gedownload, zal voor dat die wordt doorgestuurd naar de client, eerst gecontroleerd op virussen en andere malware Reverse proxy De reverse proxy wordt gebruikt om het netwerkverkeer van buiten naar binnen te leiden. Functies die we hier aantreffen zijn: Filteren van gevaarlijke of niet-toegestane requests Verbergen van het IP-adres van de webservers Verdelen van requests over de webservers op basis van URI of loadbalancing Afsluiten van de SSL-tunnel Blokkeren van pagina s Caching Logging Verbergen van het IP-adres van de webservers Ook al is er een hele reeks webservers, deze kunnen allen worden verstopt achter de URL van de reverse proxy. Een voorbeeld: Internet Werkstation Reverse proxy Server1.intern.nl Server2.intern.nl We hebben twee servers met elk daarop een applicatie. De interne hostnaam willen we niet publiceren en we willen onze klant een vriendelijke URL geven. Dit is te bereiken via een reverse proxy. 33

41 Voorbeeld van een deel van de configuratie van Apache als reverse proxy: # Entry for application payments # ReverseMapping for server1.intern.nl # ProxyPass /payments/ ProxyPassReverse /payments/ # Entry for application reports # Mapping for server2.intern.nl # ProxyPass /reports/ ProxyPassReverse /reports/ Afsluiten van de SSL-tunnel. In het voorbeeld wordt van deze mogelijkheid gebruik gemaakt. Tot aan de proxy is het HTTPS-netwerkverkeer en daarna HTTP. Dit heeft als voordeel dat voor alle servers maar één certificaat nodig is. SSL-overhead wordt verplaatst naar een server die we daar hardwarematig voor kunnen optimaliseren. Dit is de SSL-accelerator. Het netwerkverkeer tussen de SSL-accelerator en de webserver is HTTP. De SSL-tunnel wordt afgesloten op de SSL-accelerator. Blokkeren van bepaalde pagina s Het kan voorkomen dat een bepaalde pagina niet vanaf het internet benaderd mag worden, maar alleen vanaf het intranet. Dit kunnen bijvoorbeeld pagina s zijn voor beheer of rapportages die onderdeel van de volledige website. In de Apacheconfiguratie kan dit met de volgende settings aangegeven worden. # Protect management page of payments ProxyPass /payments/management / # Protect management page of reports ProxyPass /reports/management / Als een gebruiker via een proxy vanaf internet de webserver benaderd wordt bij het opvragen van /payments/management de gebruiker naar de homepage gedirigeerd. De pagina s die uitsluitend voor intern gebruik bedoeld zijn kunnen zonder gebruik te maken van de proxy benaderd worden. Caching Met een reverse proxy kan de webserver worden ontlast. Statische pagina's in de website worden geheel opgeslagen in de proxyserver. Wanneer een gebruiker een statische pagina opvraagt wordt deze door de proxyserver naar de client gestuurd en niet door de webserver. De webserver heeft daardoor meer capaciteit over voor het uitvoeren van scripts en het genereren van dynamische pagina's. Logging Omdat de webserver niet meer het oorspronkelijke IP-adres van de client of zijn proxy krijgt, zal de reverse proxylog deze taak moeten overnemen. Voor de webserver komt immers al het verkeer vanaf de reverse proxy. Dit is overigens wel mogelijk maar niet standaard. Voor de Apache webserver kan dit uitgevoerd worden met de module mod_ip_forwarding Applicatieproxy Applicatieproxies hebben toegang tot alle informaties in de netwerklagen. Dit maakt het mogelijk veel verder te gaan in het controleren van het netwerkverkeer. Een applicatieproxy kan zelfs commando s in de datastream onderscheppen en blokkeren. Het volgende plaatje van het OSI-model geeft aan in welke laag de applicatieproxy werkt. 34

42 Belangrijkste protocollen OSI laag Proxy SMTP, HTTP, etc. Applicatie Applicatie proxy Presentatie Sessie TCP/UDP Transport Circuit layer gateway IP Netwerk Packet filter Datalink Fysiek Een applicatieproxy moet niet alleen de headers van een TCP/IP-pakket onderzoeken, maar ook TCP/IP weer samenvoegen tot één datastream, deze onderzoeken en weer in stukken delen om er weer TCP/IP-pakketten van te maken. Dit geeft natuurlijk nog al wat overhead. In de volgende paragrafen worden twee voorbeelden gegeven van het nut van onderscheppen en blokkeren van commando s. Het WIZ-commando bij SMTP In een oude versie van Sendmail, de oorspronkelijke implementatie van SMTP, was een optie aanwezig om fouten op te zoeken in de applicatie. SMTP is gebaseerd op eenvoudige door mensen leesbare commando s zoals HELO, QUIT en DATA. De optie WIZ, stond de gebruiker op de client-pc toe roottoegang te krijgen op de server. Dit gevaarlijke commando kan eenvoudig door een applicatieproxy onderschept worden. Een FTP-applicatie Voor een applicatie wordt FTP gebruikt. Echter, om te voorkomen dat gebruikers meer dan de absoluut noodzakelijke commando s kunnen geven kan de applicatieproxy zodanig geconfigureerd worden dat deze andere FTP-commando s blokkeert. De applicatieproxy zal bijvoorbeeld alleen de volgende commando s mogen accepteren. USER Alleen in het begin van de sessie, als het eerste commando dat binnen komt. PORT Specificatie van het socketadres voor de data connectie. STOR Verstuur bestand. RETR Ontvang bestand. QUIT Sluit connectie. DISCONNECT Sluit connectie. 35

43 5.3 Proxy-tunneling Omdat de proxy op applicatieniveau werkt is het erg lastig om alle bestaande protocollen te ondersteunen. Daarnaast is er een probleem met protocollen waarin encryptie wordt toegepast zoals bij HTTPS. De payload in de TCP/IP-pakketten is immers versleuteld zodat kwaadwillende data niet kan worden herkend door de proxy. Een mogelijkheid is de SSLtunnel te beëindigen op de proxy, de data te onderzoeken en een nieuwe SSL-sessie op te zetten naar de bestemming. Een andere mogelijkheid is om voorafgaand aan de SSL data in de verbinding, informatie te versturen over de uiteindelijke bestemming. De proxy zet de tweede verbinding op en stuurt vervolgens het SSL-verkeer door. De CONNECT-methode van het HTTP-protocol is hier een voorbeeld van. Er zijn momenteel diverse mogelijkheden om, gebruikmakend van SSL, de proxy en firewall instellingen en daarmee vaak ook het beveiligingsbeleid te omzeilen. Als er de mogelijkheid bestaat om vanuit een interne PC met webbrowser SSL-sessies op te zetten naar servers op het internet, kan deze SSL-tunnel ook gebruikt worden om andersoortig verkeer te tunnelen. Het SSL-netwerkverkeer wordt immers legitiem door de firewall of proxy doorgelaten. Wat hiervoor nodig is, is een server aan de andere kant van de proxy die de tunnel afbreekt en het oorspronkelijke TCP/IP-netwerkverkeer verder stuurt (forward) naar de gewenste service. Als de tunnel eenmaal van het interne netwerk naar het internet is opgezet is het ook mogelijk netwerkverkeer door deze tunnel van buiten naar binnen te sturen. 36

44 6 Intrusion detection systemen Als de firewall zo ingesteld is dat deze alle ongewenste protocollen blokkeert en bijvoorbeeld alleen HTTP of HTTPS doorlaat, zal toch blijken dat een website aangevallen kan worden. Dit kan diverse oorzaken hebben zoals: Fouten in de configuratie van de webserver of firewall. Zelfgemaakte scripts die kwetsbaar zijn. Test scripts die verwijdert hadden moeten worden. Fouten in software van een leverancier of in het open source domein. Niet iedereen weet welke fouten er bij de inrichting van een webserver gemaakt kunnen worden. Helaas worden webservers ook vaak geïnstalleerd compleet met alle voorbeeldscripts. Vaak worden er ook teveel rechten aan de webservice gegeven waardoor ook bestanden kunnen worden gemanipuleerd die niet direct met de webservice te maken hebben. Deze fouten zouden tijdens een goed uitgevoerd implementatietraject moeten worden voorkomen. Dit gebeurt meestal dan ook wel. Echter, tijdens de beheersfase worden er nieuwe versies van de door leveranciers geleverde software geïnstalleerd zonder dat men zich bewust is van deze gevaren. Ook aanpassingen aan de zelfgeschreven software bevatten vaak meer fouten dan men tijdens het oorspronkelijke project heeft gemaakt. Fouten in software zullen er altijd zijn. Dat hoeft geen probleem te zijn. Het wordt pas een bedreiging als er fouten bekend zijn die nog niet door de leverancier onderkend en opgelost zijn. Bij sommige leveranciers is de patch race bijna niet vol te houden door het tempo waarin deze patches worden uitgebracht. Een firewall en zelfs een proxy zijn niet altijd voldoende daarom kan er ook gebruik gemaakt worden van een intrusion detection systeem (IDS). Er bestaan vele soorten IDS en, maar een hele algemene omschrijving ervan is: Een voorziening dat ongeoorloofd gebruik in een vroeg stadium kan detecteren (en voorkomen). Er zijn diverse onderverdelingen mogelijk. Zo noemen we een systeem dat ongeoorloofd gebruik van binnen uit detecteert een misbruikdetectiesysteem terwijl een systeem dat ongeoorloofd gebruik van buiten uit inbraakdetectie wordt genoemd. Detectiemethoden kunnen variëren. Zo kennen we onregelmatigheiddetectie (anomaly detection) en patroonherkenning (pattern matching). Er is een onderscheid in hostbased en netwerkbased IDS en. Verder wordt er ook gesproken van realtime IDS en en intervalbased IDS en. Deze laatste wordt meestal een vulnerability scanner of genoemd. 6.1 Netwerk gebaseerde IDS en Een network intrusion detection system (NIDS) zal netwerk verkeer dat verdacht is signaleren en dit melden aan de beheerder. Een network intrusion prevention system (NIPS) of inline- IDS zal netwerkpakketten blokkeren die door een firewall als illegaal worden gezien. Zoals de term inline-ids al aangeeft wordt deze net als een firewall in de verbinding tussen het internet en de te beschermen hosts geplaatst. Er bestaat ook een mogelijkheid van een samenwerking tussen de IDS en de firewall. In dat geval kan de IDS de firewall opdracht geven, tijdelijk, bepaald netwerkverkeer te blokkeren. Het is dan niet noodzakelijk dat de IDS het netwerkverkeer routeert. Omdat een IDS in de praktijk toch vaak valse alarmen afgeeft is dit type wel gevaarlijk. Niemand wil dat zijn website wordt afgesloten omdat er een vals alarm is. Moderne NIPS en kunnen echter omgaan met alarmniveaus. Op die manier wordt er een alarm afgegeven bij een mogelijke aanval, terwijl bij een alarm waar zeker van is dat dit een aanval betreft er direct automatisch maatregelen worden genomen. 6.2 Host based IDS en Hostbased IDS en draaien, zoals de naam aangeeft, op de te beschermen host en zullen normaal gesproken alleen de host bewaken. Er zijn verschillende soorten hostbased IDS en. Zo bestaan er de filebased IDS en. Deze bewaken wijzigingen in cruciale bestanden en de eigenschappen van deze bestanden. Dit type IDS is ook bekend onder de term file integrity checkers. Ook zijn er IDS en die op een host geïnstalleerd zijn en het netwerkverkeer in de gaten houden. In essentie zijn deze gelijk aan een netwerk IDS. In dit geval beperkt de IDS 37

45 zich tot het netwerkverkeer van en naar de host waarop het geïnstalleerd is. Waarom zou je een netwerk intrusion detection system (NIDS) op je host installeren en niet het andere netwerk verkeer bewaken? Het probleem is dat het analyseren van al het netwerkverkeer zeer veel rekenkracht vraagt. Op deze manier wordt dit beperkt tot één host. 6.3 Een algemeen IDS-model Event generator Set of events Analyser (sensor) Response module Information collection policy System information Detection policy Response policy Information collection Detection Response Dit algemeen model is toepasbaar op de huidige IDS-systemen. De event generator is de component die zorgt voor het verzamelen van de gegevens. Hierna worden deze gegevens omgezet in een standaard formaat. De gegevens kunnen worden verzameld uit de volgende onderdelen: De auditlog van het besturingssysteem Netwerkverkeer Logs van toepassingen De analyser of de sensor zal aan de hand van een set van regels (detection policy) bepalen of er sprake is van een alarm. Dit is een algemene detector die gebeurtenissen beoordeeld met modellen, regels, patronen en statische analyse. In de response module wordt bepaalt welke actie genomen zal worden Onregelmatigheid detectie (statistische IDS) Een statistische IDS onderzoekt afwijking ten opzichte van normaal gedrag men spreekt ook wel van onregelmatigheiddetectie. Er worden een aantal variabelen bijgehouden zoals gebruikers, logontijden, groepen, werkstations, aantal vragen per seconde, geraadpleegde bestanden. Van deze variabelen worden een gemiddeld gebruik met een standaardafwijking opgebouwd. Elke variabele krijgt ook een weegfactor om hiermee het belang te bepalen. Bij overschrijding vindt actie plaats. Deze vorm van IDS heeft geen kennis van bekende hacks en hoeft daarom niet te worden bijgewerkt met bekende patronen of signatures. We moeten wel realiseren dat een goed uitgevoerde aanval niet opgemerkt zal worden. Echter, de meeste aanvallen genereren toch wel abnormaal verkeer. Voordelen van een statistische IDS Goed uitgewerkte statische technieken kunnen worden gebruikt. Het aantal variabelen is relatief beperkt en vraagt daarom niet veel geheugen. Het systeem is zelflerend. Het zal naarmate het langer aanstaat steeds nauwkeuriger worden. De meldingen en de oorzaak kunnen eenvoudig worden begrepen. Nadelen van een statistische IDS Het systeem zal zich richten op de normale gebruiker. Een legale gebruiker met ietwat afwijkend gedrag zal valse meldingen genereren. Een hacker die vermoedt dat er een statistische IDS aanwezig is kan zijn gedrag daarop afstemmen en wordt niet opgemerkt. Elke variabele staat op zich zelf. De volgorde van gebeurtenissen wordt niet bijgehouden. 38

46 6.3.2 Patroonherkenning Deze vorm van IDS vergelijkt de activiteit met een database met bekende aanvallen. Het zal duidelijk zijn dat deze regelmatig ververst zal moeten worden om effectief te zijn. Voordelen van patroonherkenning Als er bijvoorbeeld alleen maar HTTP-netwerkverkeer is hoeven de regels voor of DNS aanvallen niet geladen te worden. Er zijn geen floatingpoint berekeningen nodig die wel nodig zijn bij statische IDS en. Beide zorgen ervoor dat er minder processorkracht wordt gebruikt. Nadelen van patroonherkenning Uitbreidbaarheid en performance zijn afhankelijk van de grootte en architectuur van de database met patronen. Aanpassen en uitbreiden van de patroon database is vaak moeilijk omdat geen algemene standaard voor is. Zelf aanpassen is gecompliceerd. Als de leverancier dus niet snel of volledig is met uitbreidingen op de patroondatabase, loop je de kans aanvallen te missen. Ook al hebben we de zelfleerzaamheid opgenomen in het algemene ontwerp van de IDS, is dit vaak niet geïmplementeerd. 39

47 7 Veilige netwerkverbindingen Vroeger was remote access nog synoniem met inbellen via een modem. Inmiddels is het modem vervangen door snellere verbindingen en zijn de mogelijkheden om van een locatie buiten het bedrijfsnetwerk toegang te krijgen tot dit netwerk enorm toegenomen. Mobiliteit is een manier van werken geworden. De externe locatie is vaak niet in beheer bij en staat ook niet onder controle van de partij die het netwerk beheert waar naar toe verbinding gemaakt wordt. Dit betekent dat toegang tot een bedrijfsnetwerk op een veilige en gecontroleerde manier moet gebeuren. Kenmerkend voor deze netwerkverbindingen zijn dat deze veilig moeten zijn, vanaf elke plaats, tijd, device en transportmedium toegang kunnen bieden tot een netwerk. 7.1 Remote access Remote access is de mogelijkheid om vanaf een externe locatie een netwerk, host of applicatie te gebruiken. De beveiliging van remote access kan op zowel applicatie- als netwerkniveau gebeuren. Op applicatieniveau kan de communicatie tussen het clientdeel en het serverdeel van de applicatie versleuteld worden. De communicatie tussen de server en client wordt dan bijvoorbeeld versleuteld. De applicaties die hierbij gebruikt worden zullen dit ook moeten ondersteunen. De beveiliging op netwerkniveau bevindt zich op een lager niveau in het OSI-model. Hierbij wordt de beveiliging geregeld door of tussen de devices die met elkaar communiceren. Als de beveiliging op netwerkniveau wordt toegepast worden er meestal minder zware eisen gesteld aan de beveiliging op applicatieniveau. Dit neemt niet weg dat gebruikelijke maatregelen zoals authenticatie onverminderd van toepassing. 7.2 VPN De afkorting VPN staat voor virtual private network, oftewel een virtueel privé netwerk. Een VPN is een veel gebruikte manier om veilige netwerkverbindingen voor remote access te regelen. Deze netwerkverbinding is virtueel omdat het een netwerkverbinding is die over een ander netwerk heen loopt. Dit onderliggende netwerk is meestal een publiek netwerk. Dit is vaak internet maar het kan ook een eigen bedrijfsnetwerk of een bedrijfsnetwerk zijn van een derde partij. Dit virtuele netwerk wordt afgeschermd van het onderliggende netwerk. Deze afscherming wordt vaak uitgevoerd door het toepassen van encryptie en tunneling. VPN maakt het mogelijk om de beveiliging in de netwerklaag op te zetten. Applicaties hoeven dan niet te worden aangepast en zullen ook niets merken van de aanwezigheid van een VPN. Een VPN wordt gebruikt om computers (hosts) of netwerken aan elkaar te koppelen. Hiervoor bestaan de volgende koppelingsmogelijkheden: Host-to-host Hierbij wordt een client verbonden met een server met als doel om op een veilige manier services op de server te kunnen benaderen. Host-to-network Hierbij maakt een client een verbinding met een VPN-server, waardoor het achterliggende netwerk van de VPN-server bereikbaar wordt voor de client. Network-to-network Twee netwerken worden aan elkaar verbonden waardoor computers uit beide netwerken de computers uit het andere netwerk kunnen bereiken. 7.3 Tunneling Eén van de methoden om een VPN op te zetten is het gebruik maken van tunneling. Een tunnel kan worden opzet met encapsulatie. Bij encapsulatie kan een pakket van een netwerkprotocol in een pakket van een ander netwerkprotocol geplaatst worden. Dit kan hetzelfde protocol zijn of een ander protocol. Zo kan bijvoorbeeld een IPX-netwerkpakket in een IP-netwerkpakket geplaatst worden. Hierdoor kan IPX gerouteerd worden over een 40

48 netwerk waarover alleen IP gerouteerd wordt. Het principe van encapsulatie is in de volgende figuur weergegeven. Het oorspronkelijke IP-pakket wordt bij encapsulatie in de payload van een nieuw IP-pakket geplaatst. Hier wordt tevens extra data aan toegevoegd om een tunnel op te kunnen zetten. Het nieuwe IP-pakket wordt dan over het netwerk getransporteerd. Bij het eindpunt van de tunnel wordt het oorspronkelijke IP-pakket weer uit de payload gehaald. Bij de eindpunten van de tunnel wordt dus decapsulatie toegepast. Hiervoor is het wel noodzakelijk dat beide eindpunten gebruik maken van hetzelfde tunnelingprotocol. Tunnelingprotocollen zijn bijvoorbeeld PPTP, L2TP, IPsec. Layer 2 tunneling protocol (L2TP) is een tunnelingprotocol dat gebruikt wordt voor VPN's. L2TP zorgt niet voor authenticatie en encryptie. IPsec wordt gebruikt om L2TP-pakketten te beveiligen. De combinatie van deze twee protocollen is ook bekend onder de naam L2TP/IPsec. Dit is gestandaardiseerd in RFC3193. IPsec is een suite van protocollen die er samen voor zorgen dat IP-pakketten beveiligd over een IP-netwerk verzonden kunnen worden. IPsec bestaat uit het normale IP-pakket met twee mogelijke aanvullingen. De eerste aanvulling is de authenticatie header (AH). Deze header bevat de gegevens voor de authenticatie van het IP-pakket. De tweede aanvulling is de encapsulated security payload header (ESP) Deze header bevat de gegevens voor de encryptie van het IP-pakket. Deze twee headers kunnen allebei of apart aan het IP-pakket worden toegevoegd. Deze twee headers authenticeren of versleutelen het complete IP-pakket. Om een beveiligde verbinding op te zetten moeten tussen de beide hosts een aantal afspraken worden gemaakt. Deze afspraken (policies) zijn vastgelegd in een security policy database (SPD). In de SPD staat beschreven aan welke beveiligingseisen netwerkverkeer moet voldoen tussen de hosts. Wanneer twee hosts een beveiligde verbinding opzetten zoals in de policies is vastgelegd moet er een drager zijn waarmee de sleutels en encryptie of authenticatietechnieken worden bijgehouden. Deze drager wordt een security association (SA) genoemd. Een SA is een éénzijdige overeenkomst tussen de hosts. Bijvoorbeeld host A communiceert met host B. Voor deze communicatie moeten er twee SA s worden opgezet, één van host A naar host B en één van host B naar host A. Voor inkomend en uitgaand netwerkverkeer kan een verschillende policy in de SPD zijn opgenomen. Wanneer een SA wordt opgebouwd onderhandelen de beide hosts over het gebruik van de ESP en/of AH, de technieken voor encryptie of authenticatie die gebruikt mogen worden, de sleutel lengtes en de levensduur van de SA. Voor deze onderhandelingen is er het internet security association and key management protocol (ISAKMP) of internet key exchange (IKE) protocol. Dit protocol verzorgt de opbouw van de IPsec SA tussen twee hosts. De totstandkoming van de SA s hoeft niet door middel van een protocol te gebeuren. De SA s zijn ook statisch vast te leggen door een handmatige invoer van de sleutels (meestal pre-shared) en de opgave van de authenticatie en/of encryptie protocollen. IPsec kan in drie vormen voorkomen: de tunnel-, transport- en iterated tunnel mode. In de tunnel mode wordt het complete IP-pakket met alle bovenliggende protocollen headers en velden in een compleet nieuw IP-pakket gestopt. Dit buitenste IP-pakket bevat als bron- en doeladres het begin- en eindpunt van de tunnel. In transportmode wordt het IP-pakket niet in een nieuw IP-pakket verpakt, maar worden de headers (AH en/of ESP) gewoon in het IP- 41

49 pakket gestopt. De bron- en doeladressen blijven dan ook de werkelijke adressen waar het IP-pakket vandaan komt en naartoe gaat. De iterated tunnelmode is een mode waarbij tunnelof transportmodes gecombineerd worden. Hierbij zijn veel verschillende samenstellingen mogelijk. De authenticatie header (AH, IP protocol nr. 51) voorziet de IP-pakketten van integriteit en authenticatie. De authenticatieheader beschermt alle niet veranderende velden binnen de IPheader. Velden zoals de TTL (time-to-live) en de hop limit (IPv6) kunnen niet worden meegenomen in de bescherming aangezien deze tijdens transport wijzigen. De bescherming die de AH biedt wordt geregeld door het berekenen van een integrity check value (ICV). Deze waarde komt voort uit een wiskundige berekening over alle niet veranderende velden in een IP-pakket inclusief de data van bovenliggende protocollen. De methode voor de berekening van deze ICV waarde is vastgelegd in een security association. De gebruikte methode is meestal een digest algoritme zoals MD5. De berekening van de authenticatie data kan door een aantal protocolcombinaties gedaan worden: Voor point-to-point communicatie (unicast) wordt er meestal gebruik gemaakt van keyed message authentication codes (MAC s). Deze zijn gebaseerd op symmetrische encryptie algoritmen of op one-way hashfuncties. Voor multicastverkeer kan er gebruik worden gemaakt van one-way hashalgoritmen, gecombineerd met asymmetrische signature algoritmen. Hiervoor is alleen nog geen keymanagement methode voor. De encapsulated security payload (ESP, IP protocol nr. 50) is een protocol dat integriteit en confidentialiteit biedt aan IP-pakketten. Het kan tevens in authenticatie voorzien afhankelijk van het gebruikte algoritme. De ESP-header biedt de integriteit en confidentialiteit door de data te versleutelen en deze in het datagedeelte van de ESP-header te plaatsen. Afhankelijk van de gewenste mate van beveiliging is het mogelijk om alleen de data te versleutelen of het complete IP-pakket in het ESP-data veld te plaatsen. Hierdoor ontstaat een nieuw IP-pakket met nieuwe IP bron- en doeladressen. Ook de ESP-header bevat een ICV-waarde en kan gebruik maken van een aantal encryptieprotocollen. Een RFC-compliant implementatie van de ESP header moet de volgende protocollen geïmplementeerd hebben: DES in CBC mode HMAC met MD5 HMAC met SHA-1 Een security association is een simplex verbinding welke beveiligingsparameters onderhoudt voor IP-datagrammen die over een verbinding verzonden worden. Anders gezegd: binnen een SA staan de parameters voor de gebruikte protocollen die op een bepaalde stroom IP datagrammen moeten worden toegepast. Een IPsec SA wordt opgezet in de tweede fase van IKE. In deze fase worden de beveiligingsonderhandelingen voor IPsec gedaan. Elk IPsecprotocol (AH of ESP) heeft een eigen SA. Wanneer er dus gebruik wordt gemaakt van iterated tunneling wordt er voor elk protocol een eigen SA overeengekomen. Een SA is zoals genoemd een simplex of eenrichtingsverbinding. Als host A met host B een beveiligde verbinding opzet zijn er twee SA s aanwezig. Eén van host A naar host B en één van host B naar host A. De security associations worden opgeslagen in een security association database (SAD). De SAD is een database die voor elke interface bestaat. Ingaand en uitgaand netwerkverkeer hebben hun eigen database. Voor verwerking van IPsec pakketten is er ook nog een security policy database (SPD). De SPD bevat de policies voor bepaalde typen verkeer. Als er een IP pakket moet worden verstuurd, wordt de SPD geraadpleegd om te kijken of er een policy is voor dat bepaalde IP-pakket. Er zijn drie typen policies: bypass, dismiss en negotiate. Wanneer er een bypass policy staat, wordt er geen IPsec processing op toegepast. Bij dismiss wordt het pakket niet verzonden of ontvangen en wordt het gedropped. Als er een negotiate policy staat wordt er IPsec processing gedaan. De SPD heeft een pointer naar de SAD waarin de SA s staan, bestaat die pointer niet, dan moet er een SA overeen worden gekomen. Zodra er een SA is worden de SAD s en de SPD bijgewerkt. Controles van uitgaande en inkomende pakketten vinden ook aan de hand van de SPD plaats. 42

50 Om sleutels bij te houden, sleutels overeen te komen en SA s op te zetten is er een mechanisme nodig dat dit regelt. Het handmatig kunnen opzetten van SA s is een implementatievereiste volgens de RFC s, maar is niet een van de meest bruikbare oplossingen. Zeker niet in een omgeving die groot is en regelmatig verandert. Om automatisch keymanagement te doen is er het internet key exchange (IKE) protocol. Dit protocol verzorgt de onderhandelingen voor de IPsec-parameters en zal de sleuteluitwisselingen regelen zowel voor de eerste IPsec opzet als tijdens een bestaande IPsec-verbinding. IKE is een samengesteld protocol en gebruikt delen van ISAKMP, Oakley en SKEME. Deze samenstelling biedt de mogelijkheid om geauthenticeerde sleutelmaterialen te verkrijgen, overeen te komen en aan te bieden voor security associations op een beveiligde manier. De methode waarmee de sleutel materialen overeen worden gekomen is er eentje die opgedeeld is in fases met verschillende modes. Er bestaan twee fases, respectievelijk fase 1 en 2. De eerste fase is de fase waarin de beide ISAKMP peers een beveiligd, geauthenticeerd kanaal opzetten waarover de IKE communicatie plaatsvindt. Dit kanaal wordt de ISAKMP SA genoemd. Fase 2 is de fase waarin de IPsec SA s overeen worden gekomen. Deze fases zijn zo gescheiden dat er door middel van een quick mode uitwisseling meerdere IPsec SA s zijn op te bouwen in de fase 2 van IKE. Fase 1 kan in 2 verschillende modes worden uitgevoerd, de main mode en de aggressive mode. Het verschil tussen beide is het aantal gegevens uitwisselingen. De aggressive mode gebruikt minder uitwisselingen en is dus iets sneller, maar biedt geen identity bescherming zoals de main mode dit doet. 7.4 Praktische toepassingen In de volgende paragrafen worden enkele praktische toepassingen gegeven voor het realiseren van veilige netwerkverbindingen. Het opzetten van een veilige netwerkverbinding is niet alleen voorbehouden aan een VPN SSH Veilige netwerkverbindingen beperken zich niet tot het toepassen van VPN of tunneling. Ook versleutelde netwerkverbindingen kunnen gebruikt worden om een veilige netwerkverbinding op te zetten. Een voorbeeld hiervan is secure shell (SSH). Dit protocol is bedoeld als vervanging voor telnet, rlogin en andere zogenaamde r-tools. Deze protocollen worden als onveilig beschouwd omdat informatie daarbij onversleuteld over het netwerk gaat. Secure shell biedt de mogelijkheid om op versleutelde wijze remote shell toegang, file transfer en tunneling te bieden. De authenticatie kan hierbij gebeuren door middel van gebruikersnaam en wachtwoord of door een sleutelpaar. Bij gebruik van SSH is het wel belangrijk om op te letten welke versie van het SSH protocol gebruikt wordt. SSH versie 1 bevat een aantal zwakke punten en wordt daarom afgeraden om te gebruiken. Het gebruik van SSH versie 2 protocol wordt aangeraden. Dit kan ook door de SSH-server worden afgedwongen. Met SSH-tunnels kunnen versleutelde netwerkverbindingen tussen hosts worden opgezet. Hiervoor wordt poortforwarding gebruikt. De SSH-verbinding wordt opgezet over TCP-poort 22. In de configuratie van de SSH-client kan bijvoorbeeld aangegeven worden dat het SSHclientprogramma luistert naar een aantal lokale poorten. Netwerkverkeer dat naar deze poorten wordt gestuurd, wordt door SSH versleuteld en getransporteerd naar de remote SSH host. Daar wordt dit verkeer ontsleuteld en verder doorgestuurd. Al het netwerkverkeer tussen beide SSH-hosts blijft over TCP-poort 22 verlopen. Eventuele firewalls hiertussen hoeven dus maar één poort door te laten. Van het netwerkverkeer dat getunneld wordt via SSH heeft een firewall maar ook een proxy of IDS geen weet. Hierin schuilt gelijk ook een gevaar omdat netwerkverkeer op deze wijze verborgen kan worden en hierop geen controle mogelijk is Stunnel Stunnel is een zogenaamd SSL-wrapper. Deze software maakt het mogelijk om client of server software die geen SSL ondersteuning heeft ingebouwd toch te gebruiken met SSL. POP3 (TCP-poort 110) is bijvoorbeeld als cleartext netwerkverkeer leesbaar. Een met SSL versleutelde variant hiervan is het POP3S protocol (TCP-poort 995). In de verschillende 43

51 situaties dat client of server geen POP3S ondersteunen kan Stunnel ingezet worden zoals in de volgende figuren is weergegeven. Site A Site B POP3 mailclient poort 110 POP3 mailserver poort 110 Stunnel luistert op poort 110 verzend op poort 995 Stunnel luistert op poort 995 verzend op poort 110 niet versleuteld versleuteld In de bovenstaande figuur verloopt de communicatie tussen een POP3-mailclient en een POP3-mailserver via twee Stunnel servers. In site A wordt door Stunnel het POP3- netwerkverkeer versleuteld met SSL. Vervolgens wordt het over TCP poort 995 getransporteerd tussen beide sites. Bij de ontvanger wordt de SSL sessie beëindigd en getransporteerd naar de POP3 server. De SSL afhandeling tussen beide sites wordt volledig door Stunnel uitgevoerd. In de situatie dat op één van beide sites de client of de server wel SSL ondersteund hoeft bij de betreffende site geen Stunnel gebruikt te worden. De situatie waarin een POP3-mailclient communiceert met een POP3S-mailserver is in de onderstaande figuur weergegeven. 44

52 7.4.3 SSL-VPN In de praktijk wordt gesproken over een SSL-VPN wanneer er via een webbrowser een verbinding wordt gemaakt naar een VPN-device met HTTPS. Dit VPN-device biedt via een webinterface toegang tot applicaties, netwerkschijven en websites. Het SSL-VPN-device is dan ook een reverse proxy met SSL die vooral in de applicatie laag werkt. Er is geen specifieke client software nodig anders dan een webbrowser. Vaak wordt er gebruik gemaakt van plugins voor de webbrowser zoals ActiveX of Java-applets. Behalve de versleuteling van de netwerkverbinding biedt een SSL-VPN-device ook mogelijkheden tot authenticatie en autorisatie voor de diensten die het apparaat aanbiedt. Een ander type SSL-VPN is het open source project OpenVPN. Deze SSL-VPN opereert in tegenstelling tot de eerder genoemde SSL-VPN in de netwerklaag. Met OpenVPN kunnen versleutelde netwerkverbindingen opgezet worden tussen hosts. De configuratie kan zodanig aangepast worden dat via een host ook het achterliggende netwerk benaderd kan worden. De netwerkverbinding wordt hierbij versleuteld door gebruik te maken van SSL. Ook de authenticatie wordt via SSL afgehandeld. Op de hosts die gebruik maken van OpenVPN wordt een virtuele netwerkkaart aangemaakt. Het virtuele netwerkverkeer voor de VPN verloopt via de virtuele netwerkkaarten. In fysieke netwerk communiceren de hosts met elkaar over één vooraf gedefinieerde TCP- of UDP-poort. Tussenliggende firewalls, IDS en proxies hebben geen controle over het virtuele netwerkverkeer MPLS Een manier om een VPN op te zetten zonder gebruik te maken van tunneling of encryptie is MPLS. Met multiprotocol label switching wordt netwerkverkeer gelabeld. Netwerkverkeerstromen kunnen op basis de labels van elkaar worden gescheiden. Deze techniek wordt voornamelijk gebruikt door de grotere leveranciers van netwerkverbindingen. Een netwerkverbinding met MPLS tussen twee sites ziet er in hoofdlijnen als volgt uit: voordat een netwerkpakket het gedeelde netwerk opgaat krijgt het een label toegevoegd aan het netwerkpakket. Op basis van dit label gebeurt de verdere routering. Bij elk routeringspunt krijgt het pakket het label van de volgende router. Dit gaat net zo lang door totdat het pakket het eindpunt heeft bereikt. Op dit eindpunt wordt het label verwijderd en verlaat het netwerkpakket het MPLS-netwerk. De twee sites zijn onderling volledig routeerbaar want de routering in het tussenliggende netwerk gebeurt op basis van de labels en niet op basis van IP-adressen. 7.5 Werkplekbeveiliging Een netwerk heeft bijna altijd gebruikers met een werkplek, zo heeft een veilige netwerkverbinding ook gebruikers met werkplekken die ervan gebruik maken. Om het geheel veilig te laten zijn moet niet alleen de netwerkverbinding beveiligd zijn maar zijn er ook gevolgen voor de beveiliging van de werkplek zelf. VPN-verbindingen worden vaak gebruikt om gebruikers met mobiele werkplekken toegang te bieden tot een bedrijfsnetwerk. De werkplekken bevinden zich buiten het bedrijfsnetwerk en controle op die werkplekken is daarom een stuk lastiger uit te voeren. Als een dergelijke werkplek bijvoorbeeld geïnfecteerd is met een virus of malware dan kan via een beveiligde netwerkverbinding dit virus of malware toegang krijgen tot het bedrijfsnetwerk. Het malicious netwerkverkeer kan zo op een veilige manier onbedoeld worden binnengehaald. Controle op de beveiligingsstatus van een device is dus net zo belangrijk als de beveiliging van de netwerkverbinding zelf. De werkplek beveiliging omvat maatregelen zoals het toepassen van (personal) firewalls, antivirus en antimalwaresoftware, up-to-date houden van software patches en beveiliging van de informatie zelf. Userauthenticatie is vaak standaard een onderdeel van VPN. Authenticatie van devices is vaak net zo belangrijk. Hiermee kan controle worden uitgeoefend op welke devices toegang krijgen tot een netwerk. Zo kan het ongewenst zijn dat een computer in een internetcafé toegang krijgt tot een bedrijfsnetwerk via VPN. Ook kan controle uitgevoerd worden op het beveiligingsniveau van de host die verbinding wil opzetten. Zijn bepaalde beveiligingsmaatregelen zoals een virusscanner niet aanwezig dan wordt de verbinding niet opgezet. Bij gebruik van publieke computers is het belangrijk om erop te letten er geen informatie op de computers achterblijft na gebruik. 45

53 7.6 Wireless security Draadloze netwerkverbinding worden steeds meer gebruikt, ook in enterprise omgevingen. Een draadloos netwerk verloopt per definitie over een publieke (untrusted) ruimte, namelijk de ether. De beveiliging van draadloze netwerken is dus niet wezenlijk anders dan de beveiliging van de bedraade netwerken die over een publiek netwerk lopen. Beveiligingsmaatregelen voor draadloze netwerken bestaan voornamelijk uit encryptie van de verbinding tussen de draadloze netwerkkaart en access point. Hiervoor bestaan verschillende encryptieprotocollen waarvan WEP een zwak protocol is met aantoonbare gebreken. WPA en de opvolger WPA2 kunnen beter gebruikt worden. Behalve de encryptie van de verbinding zelf kan ook de inhoud van de netwerkverbinding versleuteld worden door bijvoorbeeld gebruik te maken van een VPN over het draadloze netwerk. In de configuratie van de apparatuur kan ook vaak geregeld worden dat alleen toegestane devices van het de netwerkverbinding gebruik mogen maken. 46

54 Techniek en implementatie 47

55 8 Applicatiebeveiliging Applicatiebeveiliging is gericht op het nemen van beschermingsmaatregelen voor een applicatie. Deze maatregelen zijn niet alleen van toepassing bij het gebruik van de applicatie maar ook tijdens het gehele ontwikkelproces van de applicatie. Applicatiebeveiliging kan niet worden verkregen als de applicatie eenmaal is ontwikkeld. Applicatiebeveiliging moet daarom worden geïntegreerd in het ontwikkelproces. Een goede en veilige ontwikkelmethode levert een belangrijke bijdrage aan een zo veilig mogelijke applicatie. Slecht gebouwde applicaties bevatten bugs die door kwaadwillende misbruikt kunnen worden. De verschillende typen aanvallen zijn in de loop van tijd nauwelijks veranderd. De middelen waarmee ze worden uitgevoerd veranderen wel telkens. Inzicht in de verschillende typen aanvallen maakt het mogelijk om een goede inschatting te maken van de mogelijke risico s. Ook kan hier dan beter rekening mee worden gehouden worden bij secure coding en security testen. Securityaware ontwikkelen en beheren door secure coding en securitytesting kan veel schade en tijden productieverlies voorkomen. Applicatiebeveiliging heeft als doel dat veilig gebruik gemaakt kan worden van applicaties. Applicaties worden gemaakt om geautoriseerde gebruikers te ondersteunen in het uitoefenen van hun werk. Applicaties kunnen ook worden misbruikt door gebruikers. Dit zijn vaak de ongeautoriseerde gebruikers, maar ook de geautoriseerde gebruikers kunnen bewust of onbewust een applicatie misbruiken. Een gebruiker behoort alleen geautoriseerd te zijn om een applicatie te gebruiken als het applicatiegebruik tot zijn of haar functionele taken behoort. Het compromitteren of hacken van een applicatie zelf kan uitsluitend gebeuren door de applicatie van bepaalde invoergegevens te voorzien zodat de werking wordt beïnvloed wat dus ook weer gevolgen heeft voor de geleverde output. Een gecompromitteerde applicatie kan belangrijke gegevens ontsluiten om zo delen van een infrastructuur te kunnen compromitteren. Door speciaal geconstrueerde data zijn verborgen kwetsbaarheden van de applicatie uit te baten. De uitdaging voor de hacker zit natuurlijk hierin om met veel geduld en creatieve programmeerkunsten de juiste data te vinden en uit te proberen. Omdat het compromitteren van een applicatie maar op één manier kan gebeuren, kunnen de aanvalsmogelijkheden worden onderscheiden in de mogelijke soorten invoer. Voorbeelden van aanvalsmogelijkheden zijn: Cross-site scripting SQL injection Parameter tampering Buffer overflow Improper management of permissions Information gathering Directory traversal Forceful browsing Denial of service Session hijacking Brute force Cookie poisoning 8.1 Threat modeling Er zijn drie mogelijke manieren om met risico s om te gaan: accepteren, verkleinen of verzekeren. Risico s kunnen niet altijd worden weggenomen maar wel worden beheerst. Bij threat modeling gaat het om op gestructureerde wijze de bedreigingen voor een applicatie van aanvallen te bedenken, benoemen en beheersen. Het is altijd goedkoper in het ontwerp-, ontwikkel- of testproces fouten te vinden dan later als de applicatie eenmaal uitgerold is. Threat modeling heeft een aantal belangrijke voordelen: Het helpt de applicatie beter te begrijpen vanuit security standpunt. 48

56 Het is een goede manier om ontwerp- en implementatiebugs te vinden. Het is een goede werkwijze om binnen het ontwerpteam kennis te delen. Het is een goed middel om peer-reviews te kunnen laten uitvoeren. Het zijn prima opstapjes voor testteams. Threat modeling bestaat uit vier stappen: 1. Decompose application 2. Determine threats (STRIDE) 3. Rank threats (DREAD) 4. Mitigate threats In de eerste stap wordt de applicatie ontleed. Hierbij wordt inzichtelijk gemaakt uit welke onderdelen een applicatie bestaat, wat deze onderdelen doen en hoe ze met elkaar communiceren. Door het ontleden van de applicatie zijn de volgende stappen makkelijker uit te voeren. Vervolgens kunnen de mogelijke bedreigingen bepaald worden en op grond van risico s worden ingedeeld. Hiervoor zijn methoden zoals STRIDE en DREAD beschikbaar. In de laatste stap kunnen voor elke onderdeel van STRIDE maatregelen bedacht worden. Deze maatregelen moeten de verschillende security peilers dekken STRIDE De verschillende typen bedreigingen kunnen worden bepaald met STRIDE. STRIDE staat voor de eerste letters van de volgende onderdelen: Spoofing identity Tampering with data Repudiation Information disclosure Denial of service Elevation of privilige Na het ontleden van de applicatie moeten de verschillende mogelijke bedreigingen (threats) worden bedacht op de verschillende componenten zoals processen en datastores. Dit zijn de zogenaamde threat targets. Dan is het handig om vanuit verschillende threat categorieën te denken. Daarvoor is het acronym STRIDE door Microsoft bedacht. Een andere categorie indeling is OCTAVE wat staat voor operationally critical threat, asset, and vulnerability evaluation. De STRIDE-indeling is gebaseerd op het effect van programmeerfouten: Spoofing identity Kan een gebruiker de identiteit van een andere gebruiker aannemen gegeven de toegepaste authenticatie methode? Maar ook DNS-spoofing en DNS-cache poisoning zijn hier voorbeelden van. Tampering with data Manipuleren van data in een database of data die onderweg is van een gebruiker naar een server. Repudiation Non-repudiation is een functie om uitgevoerde transacties te kunnen weerleggen. Information disclosure Is de bedreiging dat informatie aan ongeautoriseerde gebruikers kan worden getoond. Denial of service Een bedreiging die de gehele werking voor geautoriseerde gebruikers kan blokkeren Elevation of privilige De bedreiging als de aanvaller ver is gekomen en eigen code kan uitvoeren onder bijvoorbeeld als de administrator DREAD DREAD is een methode om de risio s te bepalen. DREAD staat hierbij voor het acronym: 49

57 Damage potential Reproducibility Exploitability Affected users Discoverability Na het bedenken en modelleren van alle denkbare threats is het noodzakelijk de prioriteit van elke threat te benoemen. Daarbij is een kwantificering van het risico nodig om het belang van een risico van een bedreiging te bepalen. Een vaak gebruikte formule is: risico = schade * kans Daarbij kan bijvoorbeeld van elke threat de schade in een cijfer van 1 tot 10 worden uitgedrukt en de kans in een percentage. Op deze manier kunnen de belangrijkste bedreigingen aangegeven worden. Voor deze bedreigingen kan er dus een hoge prioriteit zijn om er maatregelen tegen te nemen. Een andere benadering is de DREAD-benadering. Daarbij wordt voor elk van de vijf aspecten van de bedreiging een cijfer van 1 tot 10 gegeven en het gemiddelde uitgerekend. De kosten om een bedreiging te verkleinen zijn geen onderdeel van de DREAD-analyse. Threats zijn gerelateerd aan elkaar, bijvoorbeeld bij een elevation of privilege threat kan elke andere threat realiteit worden. De relatie van de verschillende gevonden threats wordt in kaart gebracht met threat trees naar analogie van fault trees in software engineering praktijk. Met een threat tree beschrijf je de verschillende stappen die een aanvaller kan doorlopen om zijn doel te bereiken. Aan de hand van een threat tree kan geanalyseerd worden hoe een threat zich kan voordoen of manifesteren. Een threatmodel moet hierbij alle interfaces beschrijven. 8.2 Security testing Security testing is iets anders dan functionele testen. Bij securitytesten wordt méér dan de gevraagde functionaliteit getest. Een securitytester moet goed op de hoogte zijn de verschillende testing principes en actuele gevaren. Twee methoden om securitytesten te kunnen uitvoeren zijn penetrationtesting en fuzztesting. Bij penetration testing wordt gestructureerd te werk gegaan en wordt de applicatie aan een testscript en tooling onderworpen. Bij fuzztesting wordt random input gegeneerd en ook de omgeving waarin de applicatie werkt kan aan random gedrag worden onderworpen. Bij deze methode van testen wordt het gedrag van de applicatie op willekeurige en mogelijk schadelijke input getest. Een programma slaagt voor de test als het een goede respons geeft op de input zonder dat de applicatie crashed. Een security testplan wordt grotendeels opgebouwd met informatie afkomstig uit de threat modeling. Belangrijke redenen om een threatmodel als basis voor het security testplan te gebruiken zijn om bewijzen dat de gekozen mitigation technieken de geïdentificeerde threats inderdaad verkleinen. Maar ook voor het vinden van nieuwe aandachtspunten die over het hoofd gezien zijn in de threat modeling. 50

58 9 Cryptografie In dit hoofdstuk zal als eerste de basis van cryptografie worden uitgelegd. Daarna zullen zaken als SSL en PKI aan bod komen. 9.1 Encryptie Encryptie is het versleutelen van informatie met behulp van een sleutel en een algoritme. Het resultaat van de encryptie is versleutelde informatie die zonder een decryptiesleutel niet meer te herleiden is naar de oorspronkelijke informatie. Wanneer de decryptiesleutel niet bekend is en men probeert deze te achterhalen dan spreken we van het kraken van de sleutel. Als de decryptiesleutel door kraken is achterhaald, dan kan de oorspronkelijke tekst gevonden worden. Cryptografie binnen de ICT is de wetenschap van het gebruiken van algoritmen voor het encrypten en decrypten van datastromen en bestanden. Een cryptografisch algoritme (cipher) is een wiskundige functie die zorgt voor het versleutelen en ontsleutelen van data. Een algoritme gebruikt hiervoor een stukje input wat een sleutel of key wordt genoemd. In de praktische zin is dit een wachtwoord, pincode, zin of andere willekeurige tekst. De kracht van een cryptosysteem wordt bepaald door de kracht en complexiteit van het algoritme in combinatie met hoe geheim en groot de sleutel is. Encryptie kan dus op de volgende wijze worden aangegeven: E = A key (bericht) E = versleutelde data, ook wel ciphertext genoemd A = algoritme Key = sleutel Bericht = de oorspronkelijke (leesbare) data, ook wel plaintext genoemd In de ICT wordt cryptografie gebruik om gegevens af te schermen zodat ze alleen gelezen kunnen worden door diegenen die beschikken over de juiste decryptiesleutel. Cryptografie wordt daarom bijvoorbeeld toegepast bij het verzenden van gegevens over een onveilig netwerk en het versleutelen van bestanden en berichten. Encryptie wordt in de ICT meestal niet uitgevoerd op de plaintext (de informatie zelf) maar op bitrepresentatie daarvan Symmetrische encryptie Bij symmetrische cryptografie wordt voor het versleutelen en ontsleutelen van informatie dezelfde sleutel gebruikt. Dit heeft als voordeel dat het redelijk snel is en de processorbelasting relatief laag. Daarom is symmetrisch encryptie goed te gebruiken voor het versleutelen en ontsleutelen van grote hoeveelheden informatie. Het nadeel van symmetrische cryptografie is dat iedereen die toegang moet hebben tot de informatie, moet beschikken over dezelfde sleutel. De ontvanger van de data heeft dezelfde sleutel nodig als de verzender van de data. Dit betekent dat voor een veilige manier van werken de sleutel via een andere route of ander medium naar de ontvanger moet worden getransporteerd. Dit zal telkens herhaald moeten worden wanneer de sleutel gewijzigd wordt. De manier waarop de data versleuteld wordt kan door middel van blockciphers of streamciphers. Blockciphers De te versleutelen informatie wordt opgedeeld in blokken. Deze blokken hebben een vastgestelde grootte, welke bepaald wordt door het te gebruiken algortime. Mocht een blok niet volledig gevuld zijn dan wordt deze opgevuld tot de vereiste blockgrootte. Per blok wordt het algoritme toegepast. Afhankelijk van het gebruikte algortime kan er van alles met de blokken uitgehaald worden. Zo kan de volgorde van bits gewijzigd worden of kunnen bits uit ander blokken verwerkt worden. In de zogenaamde cipher block chaining mode kan de versleutelde informatie van een blok gebruikt worden als sleutel voor de versleuteling van het volgende blok. Dit kan zo voor alle blokken achter elkaar herhaald worden. De totale versleuteling kan eventueel nog een aantal keren herhaald worden (rounds). De inmiddels versleutelde informatie wordt dan nog een keer versleutelde. Door het toepassen van al deze 51

59 maatregelen wordt het kraken van de sleutel bemoeilijkt. Voorbeelden van block ciphers zijn: Blowfish, DES, 3DES, IDEA, RC2, RC5, RC6, AES, Twofish. Streamciphers Bij streamciphers wordt met bijzonder kleine blokken gewerkt. Deze zijn dan nog maar één of enkele bits groot. Hierbij wordt met steeds wisselende sleutels gewerkt die dynamisch gegeneerd worden. Uiteraard wordt er wel gestart met een bekende sleutel want anders is ontsleuteling niet mogelijk. Dit geeft betere en dus veiligere resultaten door het toepassen van andere wiskundige algoritmen. Een ander voordeel is dat streamciphers sneller zijn dan blockciphers. Voorbeelden van streamciphers zijn: RC4, ORYX, SEAL Asymmetrisch encryptie Bij asymmetrische cryptografie wordt niet gebruik gemaakt van één maar van twee sleutels. Deze twee sleutels vormen een paar. Een van de twee sleutels wordt gekozen als prive sleutel (private key) en dient de gebruiker voor zichzelf te houden, de ander wordt de publieke sleutel (public key) en kan vrij worden gedistribueerd. Deze vorm van cryptografie wordt ook wel public key cryptografie genoemd. De sleutelgrootte van symmetrische en asymmetrische cryptografie zijn niet met elkaar te vergelijken om de kracht van het cryptosysteem te bepalen. Aan een goed asymmetrisch cryptografie algoritme wordt de volgende eisen gesteld: Het moet onmogelijk zijn om de privé-sleutel uit de publieke sleutel te herleiden en andersom. Het moet niet mogelijk zijn om informatie te ontsleutelen met dezelfde sleutel als waar deze informatie mee is versleuteld. Wat versleuteld is met de publieke sleutel, kan alleen ontsleuteld worden met de bijbehorende privé-sleutel. Wat versleuteld is met de privé-sleutel, kan alleen ontsleuteld worden met de bijbehorende publieke sleutel. Asymmetrische cryptografie is een zwaarder algoritme dan symmetrische cryptografie. Er is meer rekenkracht voor nodig. Het grote voordeel van asymmetrische cryptografie is dat er geen ingewikkelde sleuteldistributie voor nodig is zoals bij symmetrische cryptografie. 9.2 SSL Secure sockets layer (SSL) is een standaard die ontwikkeld is door Netscape. SSL maakt gebruik van zowel asymmetrische als symmetrische cryptografie. De asymmetrische cryptografie wordt gebruikt voor de uitwisseling van symmetrische sleutels. Zo n symmetrische sleutel wordt vervolgens gebruikt om informatie via het snellere symmetrische cryptografiesysteem uit te wisselen. Public key cryptografie vereist ook additionele beveiligingsmaatregelen en toepassingen om succesvol geïmplementeerd te worden op internet Message digest Message digesting wordt ook wel aangeduid als hashing. Dit is geen encryptie maar een controle mechanisme om te zien of informatie is gewijzigd. De invoer van een hashing algoritme is informatie van willekeurige lengte. Het resultaat is een hashwaarde van een vaste lengte. Elke wijziging in de invoer zorgt voor een totaal andere hashwaarde als uitvoer. Een hash is dus een controle getal waarmee aangetoond kan worden of data gewijzigd is. Het is een hulpmiddel om de data-integriteit te controleren. Een goed hashing algoritme moet voldoen aan de volgende eisen: Het moet niet mogelijk zijn om door logisch redeneren twee teksten te vinden die dezelfde hash-waarde opleveren. Het moet niet mogelijk zijn om het oorspronkelijke bericht te achterhalen aan de hand van de hash-waarde. Voorbeelden van hash algoritmen zijn: MD4, MD5, RIPEMD, SHA1, SHA

60 Hashing alleen is geen totaaloplossing om de integriteit van de data te garanderen. Een bericht kan worden afgevangen, gewijzigd, opnieuw gehashed en doorgestuurd worden. De hash moet dus via een andere veilige route worden verstuurd naar de ontvanger, terwijl het bericht via een onveilige route verstuurd kan worden. Dit is geen praktische oplossing. Om dit probleem op te lossen is de digitale handtekening uitgevonden Digitale handtekening Een digitale handtekening is een garantie voor de ontvanger dat het bericht authentiek is. Voor het maken van een digitale handtekening wordt gebruik gemaakt van een combinatie van message digest en asymmetrische cryptografie. Een bericht kan van een digitale handtekening worden voorzien door de hash van het bericht te versleutelen met de private key van de verzender en aan het originele bericht toe te voegen. De ontvanger kan aan de hand van de publieke sleutel van de verzender controleren of het bericht inderdaad met de bijbehorende privé-sleutel is versleuteld en dus daadwerkelijk afkomstig is van de gesuggereerde verzender. Dit doet hij door de handtekening van het bericht te ontsleutelen met de publieke sleutel van de verzender en het resultaat te vergelijken met de hash van het bericht die hij zelf kan berekenen. Als deze overeenkomen, is de handtekening geldig en is het bericht dus daadwerkelijk afkomstig van de gesuggereerde verzender. Het maken van een digitale handtekening is dus eigenlijk het omgekeerde van asymmetrische cryptografie zoals dat gebruikt kan worden om een bericht te versleutelen zodat het alleen door de bedoelde ontvanger kan worden ontsleuteld en gelezen. Met een digitale handtekening kan dus de verzender geïdentificeerd worden. Als het goed is heeft alleen de verzender de beschikking over de privé-sleutel. De verzender moet wel over een sleutelpaar beschikken. Bij de gebruikelijke communicatie die via internet verloopt is dit niet het geval Digitale enveloppen Door het digitaal ondertekende bericht te versleutelen met asymmetrische cryptografie wordt een digitale enveloppe gemaakt. Dit proces is in de volgende figuur weergegeven. 53

61 Bob Alice bericht versleuteld bericht 266f# d6d Message digest Codeer met Bob s private key 266f# Digital signature Transport Decodeer message digest & bericht met Alice s private key 266f# bericht Codeer message digest & bericht met Alice s public key Decodeer met Bob s public key Message digest d6d d6d versleuteld bericht Vergelijk 266f# Van het bericht dat Bob wil versturen maakt hij een message digest. Deze versleutelt hij met zijn privé-sleutel. Hieruit volgt dus een digitale handtekening. Het bericht wordt samen met de digitale handtekening versleuteld met de public key van Alice. Het resultaat hiervan wordt naar Alice verstuurd. Alice kan dit bericht weer ontsleutelen met haar privé-sleutel. Daardoor krijgt zij de beschikking over de digitale handtekening en het bericht. De digitale handtekening kan zij controleren zoals beschreven in de vorige paragraaf. Deze methode is de meest veilige methode, maar kent echter een aantal nadelen. Zo is deze methode nogal traag omdat het hele bericht met asymmetrisch cryptografie wordt versleuteld. Dit is processor intensief. Om de performance te verhogen wordt in plaats van asymmetrische cryptografie, symmetrische cryptografie toegepast. Deze situatie komt er dan als volgt uit te zien: 54

62 Bob Alice bericht versleuteld bericht d6d Message digest 266f# Versleutelde key Codeer met Bob s private key Decodeer key met Alice s private key 266f# Digital signature Transport Deodeer message digest & bericht met decrypte random symmetrische key Codeer message digest & bericht met symmetrische random key 266f# bericht Codeer key met Alice s public key Decodeer met Bob s public key Message digest versleuteld bericht d6d d6d f# Versleutelde key Vergelijk Van het bericht dat Bob wil versturen maakt hij een message digest. Deze versleutelt hij met zijn privé-sleutel. Het bericht zelf en de digitale handtekening worden nu versleuteld door middel van symmetrische cryptografie en een nieuw gegenereerde symmetrische sleutel. Deze symmetrische sleutel wordt versleuteld met de publieke sleutel van Alice. Het resultaat hiervan wordt aan het bericht toegevoegd en als geheel naar Alice verstuurd. Alice kan met haar privé-sleutel de symmetrische sleutel ontsleutelen. Met de verkregen sleutel kan het bericht en de digitale handtekening ontsleutelt worden. In veel gevallen heeft een gebruiker die via internet een met SSL-beveiligde verbinding opzet niet de beschikking over een eigen sleutelpaar. Hierdoor zouden een aantal onderdelen die in het eerder beschreven model niet uitgevoerd kunnen worden. Om toch SSL te kunnen gebruiken zonder dat de gebruiker een sleutelpaar heeft, wordt ter plekke een tijdelijk sleutelpaar gegenereerd. Op deze manier biedt SSL alleen maar de authenticatie van de server (bijvoorbeeld een webserver) en niet van de client (bijvoorbeeld de webbrowser). Een eenvoudige model voor de sleuteluitwisseling is in de volgende figuur weergegeven. 55

63 Bob Alice Genereren van random symmetrische key Random symmetrische key Codeer key met Alice s public key Decodeer key met Alice s private key Versleutelde random symmetrische key overdracht Versleutelde random symmetrische key Bob genereert een random symmetrische sleutel. Deze versleutelt hij met de publieke sleutel van Alice. Deze met asymmetrische cryptografie versleutelde symmetrische sleutel wordt verstuurd naar Alice. Zij kan deze met haar privé-sleutel ontsleutelen waardoor ze de beschikking krijgt over de symmetrische sleutel. Deze symmetrische sleutel kan dan in de hierna volgende stappen van informatie-uitwisseling gebruikt worden. SSL verloopt in de praktijk volgens het volgende model: Bob Session key handshake (RSA) Alice Session key handshake (RSA) bericht versleuteld bericht d6d Message digest 266f# Codeer message digest & bericht met symmetrische random key Transport Decodeer message digest & bericht met decrypte symmetrische random key versleuteld bericht 266f# f# d6d bericht Message digest d6d Vergelijk De versleutelde sessiekey zorgt voor ontvanger authenticatie. Deze sessiekey is het resultaat van de SSL-handshake. Symmetrische encryptie met de sessiekey zorgt voor performance. 56

64 Client Server 1 1 Send SSL version and known ciphers Send SSL version and ciphers Send identification Send server public key 2 Create Pre-master secret key 2 Encrypt Pre-master with server public key Send Pre-master key to server, along with client cert if requested Decrypt Pre-master with server private key Generate master secret and session key Generate master secret and session key 3 Send message handshake complete encrypted with session key 3 Send message handshake complete encrypted with session key All subsequent communications are encrypted symmetrically using session key 9.3 Digitale certificaten Het distributieprobleem van symmetrische cryptografie wordt door het gebruik van asymmetrische cryptografie opgelost. Echter, ook bij asymmetrische cryptografie is er een probleem bij het versturen van sleutels via publieke kanalen. Aan een publieke sleutel is namelijk niet te zien van wie deze afkomstig is. Als Alice en Bob met elkaar willen communiceren, dan sturen beide hun publieke sleutel naar de ander op. Als een derde deze communicatie wil afluisteren, dan zal deze de proberen de publieke sleutels van de lijn te halen en te vervangen door een eigen publieke sleutel. Alice en Bob zien dan niet dat ze eigenlijk de publieke sleutel van een derde ontvangen hebben. Een derde zal nu een doorgeefluik spelen voor de berichten tussen Alice en Bob en deze berichten kunnen meelezen. Om dit probleem te voorkomen zijn digitale certificaten uitgevonden. Certificaten worden uitgegeven door een vertrouwde instantie. Bijvoorbeeld: de overheid die certificaten voor haar burgers uitgeeft of een bedrijf dat certificaten voor haar medewerkers uitgeeft. Zo n vertrouwde instantie wordt een trusted third party (TTP) genoemd en beschikt over een eigen publieke en geheime sleutel. Een certificaat bestaat uit een publieke sleutel van iemand en een lijst met gegevens waaruit de identiteit van deze persoon opgemaakt kan worden, zoals naam en adres of naam en medewerkernummer. Dit geheel wordt ondertekend door de TTP. 57

65 Een hash van het geheel wordt versleuteld met de privé-sleutel van de TTP). De lijst met identiteitsgegevens plus de publieke sleutel van die persoon plus de digitale handtekening wordt een certificaat genoemd. Het formaat waarin deze gegevens worden opgeslagen heet X.509. Momenteel is daar versie drie van beschikbaar, waardoor ook vaak de term X.509v3 gebruikt wordt. Zo n X.509 certificaat kan in de formaten PEM, DER of PFX op disk worden opgeslagen. Gebruikelijke bestandsextensies zijn crt of cer (PEM of DER), pem (PEM) of p12 (PFX). Onder Unix wordt PEM veel gebruikt, onder Windows zien we PFX vaak voorkomen. PEM is een base64 gecodeerde versie van DER Aanvragen van een digitaal certificaat Het aanvragen van een digitaal certificaat gebeurd op de volgend wijze. Een gebruiker stuurt zijn of haar identiteitsgegevens op naar de TTP. Welke gegevens dat zijn wordt door de TTP bepaald. Tevens stuurt de gebruiker zijn of haar publieke sleutel mee. De TTP controleert deze gegevens en bij goedkeuring worden deze gegevens voorzien van een digitale handtekening van de TTP en een geldigheidsduur. Er zijn TTP s die vereisen dat een gebruiker persoonlijk langskomt om zich te legitimeren alvorens een certificaat wordt uitgereikt. De meeste beperken zich tot een administratieve controle. In feite is hetgeen een gebruiker aanlevert een digitaal certificaat zonder de handtekening en zonder de geldigheidsduur. Zo n niet ondertekend certificaat wordt een certificate signing request (CSR) genoemd. 9.4 Public key infrastructure Het hele proces rondom het uitgeven en het beheren van digitale certificaten vereist voldoende aandacht en nauwkeurigheid. De infrastructuur om dat mogelijk te kunnen maken, de hardware, de procedures, de mensen enzovoort, wordt een public key infrastructure genoemd. De veelgebruikte afkorting hiervan is PKI. Een PKI bestaat of kan bestaan uit de volgende onderdelen: Certificate authority (CA) De CA is de instantie binnen een PKI die de daadwerkelijke certificaten uitgeeft. De CA is in het bezit van de certificate server, de server waarop de privé-sleutel van de TTP opgeslagen ligt. De term CA wordt gezien als synoniem voor TTP. Registration authority (RA) Indien de TTP veel gebruikers heeft of gebruikers heeft die op een verre locatie wonen of werken, kan de CA besluiten om het registratieproces uit te besteden aan één of meerdere RA s. Policy authority (PA) De PA bewaakt het beleid (de policy) van een TTP. De policy van een TTP staat uitgewerkt in twee documenten, de certificate policy (CP) en de certificate practice Statement. In een CP staan alle regels omtrent de uitgifte en het gebruik van een digitaal certificaat. Per type certificaat van verschillende vertrouwensniveaus is een CP beschikbaar. In een CPS staat welke regels een CA hanteert om aan de CP s te voldoen. Per CA is er één CPS voor alle CP s. Certificate repository (CR) In een CR zijn alle certificate opgeslagen die door de TTP zijn uitgegeven. Gebruikers kunnen hier certificaten van andere gebruikers opvragen zodat zij veilig kunnen communiceren. De precieze werking van een PKI en de daaruit bestaande onderdelen bestaat uit zoveel informatie dat daar een apart boek mee te vullen is. Gezien dat dat niet de bedoeling is van dit boek, zal daar verder niet op ingegaan worden CA stamcertificaat Om de certificaten die door een CA zijn uitgegeven te kunnen controleren op echtheid, is de publieke sleutel van de CA nodig. Deze wordt door de CA beschikbaar gesteld door middel van een CA-stamcertificaat of CA-rootcertificaat. Dit is een certificaat dat door henzelf is ondertekend (self-signed certificate). Stamcertificaten van bekende TTP s worden met 58

66 Windows of webbrowsers of applicaties meegeleverd. Deze zogenaamde certificate stores kunnen vanuit het besturingssysteem of de betreffende applicatie worden bekeken. De lijst met meegeleverde stamcertificaten maar ook met zelf toegevoegde certificaten staat in de certificate store. Het is niet ongebruikelijk dat op één computer meerdere certificate stores aanwezig zijn die inhoudelijk ook nog eens van elkaar verschillen. Dit maakt het beheer en controle erop erg lastig Certificate revocation list Om certificaten die om wat voor een reden dan ook ongeldig zijn geworden voordat de einddatum van de geldigheidsduur is bereikt te kunnen intrekken, wordt gebruik gemaakt van een certificate revocation list (CRL). Een CRL is een lijst van certificaten die ondanks de geldigheidsduur niet meer gebruikt mogen worden. Een CA zal deze CRL voor haar gebruikers beschikbaar maken en periodiek bijwerken met de laatste wijzigingen. Het is de taak van de gebruiker om voor het gebruik van een certificaat deze lijst al dan niet geautomatiseerd te raadplegen. 59

67 60

68 Platform security 61

69 10 Malicious software Malicious software is ook bekend onder de samenvoeging van beide termen: malware. Malware is de verzamelnaam voor alle software die de bedoeling heeft kwaadaardige handelingen op een computersysteem uit te voeren. Door veilige software te maken is geen 100% veiligheid bereikbaar, er blijven kwaadaardige mogelijkheden over die op een andere manier onschadelijk moeten worden gemaakt. Wormen krijgen de kans via exploits op systemen binnen te dringen. Daar is door veilig programmeren iets tegen te doen, maar je hebt niet alle applicaties zelf in de hand en je doet er niets tegen als een gebruiker toch op een verleidelijke maar foute link klikt. De verdediging tegen malware vraagt toepassing van middelen zoals antivirussoftware, spyware sweepers, IDS en enzovoort, maar ook van security bewuste gebruikers. Malicious software is ontworpen om schade toe te brengen aan de geïnfecteerde systemen. Malware verschijnt voornamelijk in omgevingen met populaire en veelgebruikte besturingssystemen Er is een ruime hoeveelheid documentatie beschikbaar en het doelsysteem is vaak onveilig en bevat bekende kwetsbaarheden. Als hieraan voldaan wordt, worden malware schrijvers actief. Daarom zijn er besturingssystemen die nauwelijks last lijken te hebben van malware. Een besturingssysteem of toepassing is kwetsbaar voor malware als externe programma s kunnen worden gestart door anderen dan de legitieme gebruikers. De verschillende soorten malicious software kunnen in verschillende groepen worden onderverdeeld. Omdat er al veel verschillende verdelingen bestaan en zo n verdeling niet bijdraagt aan het begrijpen en bestrijden van malicious software, zat in dit boek geen uitgebreide verdeling gegeven worden. De belangrijkste typen malware zullen in dit hoofdstuk worden behandeld Virussen Het eerste echte virus stamt uit de jaren 80. Dit was een bootsector- en stealthvirus genaamd BRAIN. Het virus verspreide zich onder de computergebruikers door middel van floppy diskettes. Het virus was gemaakt door twee Pakistaanse broers. Het virus werd ontdekt door de universiteit van Delaware. Niet lang daarna werd het Jerusalemvirus geboren. Dit virus was afkomstig uit Israël. Beide virussen waren en zijn vrij onschuldig. Het aantal virussen en hun agressiviteit groeide in de jaren daarna, waardoor de behoefte ontstond aan antivirussoftware. Hierdoor werd serieus onderzoek gedaan naar de programmering van virussen, zoals dat vandaag ook nog gebeurt. In 1991 veroorzaakt het Michelangelo-virus enige paniek door de landelijke pers, die aan het virus veel aandacht besteedde. Michelangelo was afkomstig uit Nederland of Zweden. Michelangelo was een masterbootrecord/bootsectorvirus dat resident in het geheugen werd geladen om vervolgens diskettes te infecteren. De harde schijf werd alleen besmet als het werd benaderd. Uiteindelijk viel het aantal besmettingen enigszins mee. Het eerste hoaxvirus genaamd Good times stamt uit Good times waarschuwde voor een virus dat de harde schijf zou overschrijven. Uiteraard werd in het bericht verzocht om het bericht door te zenden naar anders gebruikers. Met de komst van macrovirussen onder andere voor Microsoft office ontstond een nieuw probleem want hoe konden de instructies van een macrovirus worden onderscheiden van een normale macro? Dit soort virussen bezorgde ontwikkelaars van antivirussoftware veel kopzorgen. Uiteindelijk konden ook dit soort virussen goed worden bestreden. In 1998 verscheen het eerste virus dat computerhardware beïnvloedde. Het uit Taiwan afkomstige virus CIH of Chernobyl virus vestigde zich in lege gedeelten van een bestand om vervolgens op een bepaalde datum de BIOS van de computer te overschrijven. In het daarop volgende jaar veroverde het virus Melissa de wereld onder de Microsoft Word gebruikers. Door middel van Visualbasiccode stuurde het virus een naar alle leden van een 62

70 Outlook adreslijst van een gebruiker. In hetzelfde jaar wordt ook het virus Bubbleboy geboren. Bubbleboy infecteerde een computer zodra de , waarin het virus is bijgevoegd, werd bekeken. De Love bug worm werd in 2000 ook zeer succesvol. Het virus verspreidde zichzelf door het versturen van een met als onderwerp een liefdesverklaring. In 2000 verscheen ook het eerste virus voor het PalmOS en inmiddels zijn er ook al virussen voor mobiele telefoontoestellen. Door de jaren heen is de impact van de virussen toegenomen. Ook de wijze van verspreiding is door de komst van het internet vele malen versneld. Het aanbieden van allerlei documenten, muziek, plaatjes etc. via het internet zorgt voor een verhoogd tempo van besmetting. Samenvattend kunnen we stellen dat de ontwikkeling van virussen, van de eerste relatief onschuldige bootsectorvirussen tot de meest geavanceerde recente macro- en wormvirussen, even explosief is verlopen als de ontwikkeling van de computer en de bijbehorende applicaties. Momenteel zijn er al meer dan typen bekend, variërend van vrij onschuldig tot extreem destructief. Een virus is een programma dat op vele methoden op een computer terecht kan komen. Eenmaal aanwezig op een computer kan een virus veel ergernis en zelfs schade veroorzaken. Een virus infecteert zoveel mogelijk bestanden op een computer. Het heeft een menselijke handeling nodig om zichzelf te verspreiden naar een andere computer. Overigens veroorzaakt een virus al schade doordat het zichzelf verspreidt. Denk daarbij al aan de acties die nodig zijn voor het verwijderen van het virus. Een virus kan een door middel van een e- mail, via het internet of via verschillende soorten van informatiedragers op een computer terechtkomen. Een virus heeft de volgende eigenschappen: Een virus kan zichzelf vermenigvuldigen. Als ze worden opgestart voeren ze een reeks van commando s of handelingen uit die tot ergernis van de gebruiker en beschadiging en misbruik van informatie kunnen leiden. Een virus werkt ook alleen als het wordt gestart. Een virus maakt vaak gebruik van onvolkomenheden in hard- en software. De meeste fabrikanten van hard- en software voorzien hun afnemers van lijsten van gevonden onvolkomenheden in hun producten. Deze lijsten vormen voor de virusmakers een inspiratiebron voor het fabriceren van nieuwe virussen. In de volgende paragrafen worden een aantal van de verschillende soorten virussen beschreven. Bootvirussen Het eerste, inmiddels bijna uitgestorven type virus. Een bootvirus nestelt zich in de bootsector van een harde schijf of diskette, namelijk in dat gedeelte dat automatisch wordt gelezen bij het opstarten van de computer. Zodra de computer aangaat krijgt het virus controle over de computer en dan kan het zich gemakkelijk verspreiden bij de uitwisseling van diskettes tussen computers. Dit soort virussen infecteert dus geen bestanden maar schijven na het opstarten van de computer. Een infectie door bootvirus kan worden voorkomen door write-protected media te gebruiken. Companionvirussen Companionvirussen zijn in principe file-infectors. Ze staan ook bekend als companionvirussen omdat ze de bestanden van het systeem vergezellen. Companionvirussen komen in actie wanneer ze resident in het geheugen zijn geladen. Ze komen pas in het geheugen wanneer het bestand dat ze vergezellen in het geheugen geladen wordt. Een companionvirus lift hier dan op mee. Vervolgens kan het virus kopieën van zichzelf maken en daardoor de computer infecteren. Direct action virussen Het doel van dit soort virussen is zichzelf te repliceren en in actie te komen als ze worden opgestart. Als aan een specifieke conditie is voldaan, dan zal het virus zichzelf activeren en andere bestanden infecteren of besmetten. Bestanden die besmet zijn met dit soort virus kunnen vaak worden ontsmet, zo kunnen de bestanden weer in hun originele staat worden hersteld. 63

71 Directoryvirussen Een besturingssysteem vindt bestanden door de bewaarlocatie op te zoeken. Een bewaarlocatie bestaat uit de combinatie van een diskdrive en een directory. Directory virussen veranderen de bewaarlocatie van bestanden. Door een geïnfecteerd programma op te starten zal het virus worden opgestart. Het originele programma wordt door het virus vervangen, waardoor het terugvinden van een geïnfecteerd bestand heel lastig wordt. Encrypted virussen Een encrypted virus hanteert programmacode dat zichzelf versleuteld. Zodra het virus een bestand heeft geïnfecteerd versleuteld het zichzelf weer. Dit maakt de ontdekking door virusscanners moeilijker. FAT-virussen De FAT (file allocation table) is een apart gedeelte op een harde schijf waarin wordt bijgehouden welke delen van de harde schijf aan welke bestanden worden toegewezen. Een FAT-virus vormt een bedreiging voor de FAT. Het virus zorgt ervoor dat er geen toegang meer is tot de FAT of gedeelten van de FAT, waardoor schade ontstaat aan de informatie die op de harde schijf aanwezig is. File-infectors Dit soort virussen infecteert programma's en uitvoerbare bestanden. Zodra een geïnfecteerd bestand direct of indirect wordt opgestart, start ook gelijk het virus op. De meerderheid van de virussen behoort tot deze categorie. Hoaxes (valse virussen) Deze berichten worden vaak aangezien voor echte virussen, maar dat zijn ze niet. Het is dan belangrijk om het verschil te weten tussen een echt virus en een vals virus. Een hoax is geen virus, maar vaak een bericht dat waarschuwt voor een gevaarlijk, niet bestaand, virus. Een hoax heeft als doel verwarring te zaaien onder gebruikers die de hoax ontvangen. Zo kan een hoax technische informatie bevatten om het nog echter te doen lijken, waardoor gebruikers voor de gek worden gehouden. In sommige gevallen wordt ook een bekend nieuwsagentschap of helpdesk genoemd om het nog echter te laten lijken. Een hoax probeert een gebruiker zover te krijgen dat de gebruiker zelf acties gaat uitvoeren om zich te beschermen tegen het gevaarlijke virus. Vaak brengt de gebruiker dan zelf schade toe aan het computersysteem. Geadviseerd wordt om geen aandacht aan een hoax te besteden maar de melding te controleren bij een antivirusleverancier. In ieder geval moet het bericht niet worden doorgezonden naar anderen. Logic bombs (logische bommen) Een logische bom is eigenlijk een Trojan. De werking van een Trojan wordt verop behandeld. Een logische bom heeft maar één doel, namelijk zoveel mogelijk informatie beschadigen. Dit wordt alleen gedaan als er aan bepaalde condities wordt voldaan. Logische bommen zijn vaak onherkenbaar totdat ze worden opgestart wanneer aan vooraf gedefinieerde condities van het virus is voldaan. Het resultaat is dan vaak vernietigend. Macro virussen Een macro virus infecteert een bestand tijdens het gebruik van bepaalde applicaties of programma met macro's, zoals bijvoorbeeld Word documenten, Excel spreadsheets, Access databases, enzovoort. Ze maken handig gebruik van de ingebouwde programmeertaal zoals in de programma's van Microsoft Office. Een macro is een klein programma waarin een serie instructies staan die automatisch worden uitgevoerd zodra de macro wordt gestart. Een macro maakt het mogelijk om verschillende handelingen te automatiseren. Als een document met een macro wordt geopend, wordt de macro ook automatisch uitgevoerd, of de gebruiker krijgt een vraag of de macro mag worden uitgevoerd. De macro voert vervolgens de geprogrammeerde handelingen uit. 64

72 Multipartite virussen Deze geavanceerde virussen kunnen op meerdere wijzen infecties uitvoeren. Ze infecteren dan ook alle objecten die geïnfecteerd kunnen worden, namelijk bestanden, programma's, macro's, schijven, etc. Ze zijn dan ook gevaarlijk vanwege de technieken die ze gebruiken om te infecteren. Overwrite virussen Dit soort virussen worden gekenmerkt doordat zij de inhoud van geïnfecteerde bestanden verwijderen, zodat zij gedeeltelijk of volledig onbruikbaar worden. De bestanden veranderen niet van grootte, tenzij het virus zelf meer ruimte inneemt dan het geïnfecteerde bestand. Het virus verbergt zich niet in een apart bestand, maar in de inhoud van een geïnfecteerd bestand. De enige manier om het virus te bestrijden is om de geïnfecteerde bestanden te verwijderen. De originele inhoud van de geïnfecteerde bestanden is verloren. Polymorf virussen Een polymorf virus codeert of versleuteld zichzelf op verschillende wijzen. Iedere keer dat ze een systeem besmetten gebruiken ze een ander algoritme of encryptiesleutel. Dit maakt het lastig voor antivirussoftware om ze te detecteren door middel van een string of handtekening, omdat ze zichzelf steeds veranderen. Polymorf virussen kopiëren zichzelf in grote oplagen. Residente virussen Dit soort virussen verbergt zich constant in het RAM-geheugen. Vanuit het RAM-geheugen controleren en onderscheppen zij alle taken van het systeem. Hierdoor zijn ze in staat om bestanden kapot te maken en openen, sluiten, kopiëren en hernoemen ze programma's. Residente virussen kunnen net zoals bestandsvirussen worden bestreden. Als een virus zich resident in het geheugen nestelt, blijft het resident tot de computer wordt herstart of wordt uitgezet. Het kan dus blijven wachten op speciale activering, zoals op een specifieke datum of tijdstip. In de tussentijd blijft het virus wachten en verstopt het zich. Trojans of Trojaanse paarden Een Trojan of Trojaans paard reproduceert zichzelf niet en infecteert geen andere bestanden. Een Trojan werkt eigenlijk zoals wordt beschreven in de Griekse mythologie. Soldaten die in een houten paard de belegerde stad Trojan binnen kwamen. Een Trojan lijkt in eerste instantie niet gevaarlijk, ze verleiden de gebruiker tot het uitvoeren van een programma of handeling. Eenmaal opgestart installeren ze zichzelf of andere programma's. Een Trojan kan uiteindelijk bestanden weggooien, informatie wissen, of een achterdeur openen die toegang geeft aan onbekenden tot het computersysteem. Wormen Een worm is een programma dat op een virus lijkt, namelijk het kopieert zichzelf. Een worm is ontworpen om zoveel mogelijk andere computers te infecteren. Daarnaast beïnvloedt een worm op een negatieve manier de werking van een systeem. Een worm verspreidt zich niet door bestanden te infecteren maar door een computer te infecteren. Wormen hoeven dus geen bestanden te beschadigen, in tegenstelling tot een virus, en reproduceren zichzelf razend snel binnen een netwerk, waardoor ze gehele netwerken kunnen platleggen. Wormen hebben drie hoofdfuncties: Doelwit zoeken. Verspreiding naar het doelwit. Activeren van opdrachten zoals spamrelaying, het uitvoeren van een denial of service aanval of het direct schade toebrengen aan een host Virussen vormen niet de enige bedreiging Virussen vormen niet de enige bedreiging voor computers. Naast virussen vormen ook rootkits en spyware programma s voor de nodige bedreiging. Door de komst van het internet en de breedbandverbindingen worden steeds vaker succesvolle pogingen ondernomen om wachtwoorden, pincodes en andere cruciale informatie te achterhalen. Steeds meer malware vinden hun weg naar de gebruikers van het internet. De volgende items worden ook tot malware gerekend: 65

73 Dialer Een programma dat een telefoonverbinding maakt met een special telefoonnummer. Meestal wordt een door middel van een modem een verbinding gemaakt met een informatienummer waarvoor moet worden betaald. Joke Een onschuldig programma dat de indruk geeft dat het schadelijke handelingen uitvoert op de computer, maar eigenlijk niets doet. Hackingtool Gereedschap dat hackers kunnen gebruiken voor het uitvoeren van schadelijke acties op computers. Spyware Een programma dat informatie verzamelt over de gebruiken van gebruikers voor commerciële doeleinden. Hoax Een bericht dat waarschuwt voor een niet bestaand virus. Spam Ongewilde voorzien van advertenties. Deze berichten worden ongevraagd in grote aantallen verstuurd waardoor veel schade kan ontstaan en tijd verloren kan gaan Backdoor Een backdoor is een programma dat het mogelijk maakt dat een computer door middel van een achterdeur kan worden gecontroleerd door een onbekende persoon. De gebruiker van de computer heeft echter niets in de gaten en onbekenden kunnen door de backdoor achter cruciale informatie komen, en/of schade toebrengen aan de computer. Een backdoor wordt vaak gecombineerd met een rootkit om de backdoor te verbergen voor de gebruiker Rootkit Een rootkit een bijzondere vorm van malware. Het doel van een rootkit is om kwaadaardige code te verbergen voor een gebruiker. De maker van spyware, virussen en dergelijke probeert zo te voorkomen dat zijn programma wordt ontdekt en verwijderd. Er zijn een aantal verschillende vormen van rootkits. Een persistent rootkit is een rootkit die op een computer is opgeslagen. Bij elke herstart of login wordt de rootkit opnieuw geladen. Een memorybased rootkit bestaat alleen in het geheugen. Het ontdekken daarvan is moeilijker maar de rootkit zal een reboot niet overleven. Een andere methode om rootkits in te delen is in usermode rootkits en kernelmode rootkits. De usermode rootkit werkt met de rechten van de gebruiker. Deze rootkit zal de gebruiker de systeemeigenschappen anders voorspiegelen dan dat ze in werkelijkheid zijn. Als een gebruiker bijvoorbeeld een directory-listing opvraagt zal de rootkit de bestanden van de rootkit zelf uit de resultaten van de directory-listing filteren. Kernel-mode rootkits kunnen krachtiger zijn omdat ze direct kernelmode data kunnen manipuleren. Zo kunnen ze bijvoorbeeld processen uit de lijst van actieve processen verwijderen. Het rootkit proces kan zichzelf zo verbergen Adware en spyware Adware is een softwarecomponent die meestal aan de installatie en werking van andere software is gekoppeld. Bij gebruik van dergelijk software worden advertenties (ads) op de computer getoond. Adware wordt door de ontwikkelaars van software gebruikt om extra inkomsten te genereren. Ze worden betaald op basis van de advertenties die ze laten zien. De aanwezigheid van adware is op zich niet schadelijk maar kan irritatie opwekken bij gebruikers. Spyware is er op gericht om gegevens van een gebruiker te verzamelen. Spyware monitort de computer en het gebruik ervan. In de meest gevaarlijke vorm wordt gebruik gemaakt van keyloggers om alle toetsaanslagen vast te leggen. Spyware is ook in staat om diverse acties op de computer uit te voeren. Veel voorkomend zijn het aanpassen van de homepage, ongewenste websites openen of de hostsfile aanpassen. De informatie die door spyware verzameld wordt kan gebruikt worden om een systeem te hacken, om gericht advertenties te tonen of om te verkopen. Met de informatie kunnen in de niet-digitale wereld diverse acties 66

74 uitgevoerd worden die het slachtoffer schade berokkenen. Voorbeelden hiervan zijn het uitvoeren van bestellingen of uitvoeren van financiële transacties op naam van het slachtoffer Phishing Phishing is een vorm van identiteitsdiefstal. Door een combinatie van techniek en social engineering wordt geprobeerd om persoonlijke gegevens van een gebruiker te krijgen. Dit kunnen gegevens zijn als naam, adres en bankgegevens. Een aanvaller die over dergelijke gegevens beschikt kan zich als zijn slachtoffer voordoen en namens hem of haar acties uitvoeren. Deze activiteiten brengen schade toe aan het slachtoffer Werking van een virus Aan de werking van een virus kunnen verschillende fasen worden onderkend, namelijk: Besmettingsfase Het virus dringt op een of andere wijze binnen op het systeem en nestelt zich in het systeem op een plek die inherent is aan het virus. Zo kan het bijvoorbeeld een veelgebruikt programma besmetten. Het besmetten van een programma is op zich niet moeilijk, het virus kan zich namelijk aan het programma vastplakken of zich nestelen op lege plekken van een bestand of in een stream. Door de instructies van het programma te wijzigen kan een virus als eerste acties uitvoeren, waarna het originele programma opstart. Het virus activeert zich elke keer als het programma wordt opgestart en heeft daarmee het programma besmet. Een virus moet zo min mogelijk opvallen, zodat het zo lang mogelijk ongehinderd kan functioneren. Verspreidingsfase Om te kunnen voortbestaan moet het virus zich zoveel mogelijk verspreiden. In deze fase zal een virus geen schadelijke acties uitvoeren, maar houdt het zich uitsluitend bezig met de verspreiding en overleving. Verspreiding van het virus is op zich al schadelijk (het maakt gebruikt van systeemresources) en ook het verwijderen van het virus vergt enige inspanning. Activeringsfase Na de verspreidingsfase zal het virus in de activeringsfase komen. De activeringsfase kan naar aanleiding van een zich voordoende situatie of gebeurtenis zich aandienen. Het doel van een virusmaker is pas bereikt als het virus ook in deze fase het geprogrammeerde doel kan uitvoeren. De activeringsfase stopt niet, totdat het virus wordt bestreden. Als het virus in deze fase terechtkomt is het systeem geïnfecteerd Symptomen van een virusinfectie De symptomen van een virusinfectie zijn heel divers. Het is dan ook ondoenlijk om alle symptomen te benoemen, maar er zijn altijd wel enkele algemene symptomen die een vermoeden van een infectie rechtvaardigen. Mogelijke symptomen van een virusinfectie kunnen zijn: Een programma of macro werkt niet meer of werkt anders dan verwacht wordt. Een bepaalde hardware component werkt niet meer of werkt anders dan verwacht wordt. Een programma of het hele systeem start opeens veel langzamer op dan normaal. Een ongewoon en onverklaarbaar hoge activiteit van de harddisk. Een ongewoon en onverklaarbaar hoog processor gebruik. In het overzicht van actieve programma s is een onbekend programma aanwezig. De grootte van een of meerdere bestanden is spontaan gewijzigd. Er verschijnen vreemde meldingen op het beeldscherm van een computer, die niet direct te relateren zijn aan een bepaald programma. Er worden spontaan berichten verstuurd Blended threat Een blended threat is een digitale aanval op een computer of computers waarbij verschillende aanvalstechnieken worden gebruikt. Zo worden onder andere virussen, wormen en Trojans 67

75 gebruikt waarmee de aanval wordt uitgevoerd. Daarnaast worden ook via andere methoden toegang gezocht tot de computer, door bijvoorbeeld te zoeken naar andere vulnerabilities in computers, netwerken, of andere systemen. Zo kan een aanval die een blended methode gebruikt een virus verzenden met als bijlage van een , waar tevens een Trojaans paard in een HTML-pagina is verwerkt. Een blended threat heeft de volgende kenmerken: Verspreiding vindt plaats via meerdere methoden, namelijk door een virus of worm die op zijn beurt zorg draagt voor de replicatie. Daarnaast kan een virus of worm bijvoorbeeld ook een webserver infecteren, zodat verspreiding ook via de bezoekers van een website plaatsvindt. Het gaat op zoek naar vulnerabilities die al aanwezig waren op de computer of zijn aangebracht door het gebruik van de malware. Het heeft de intentie om schade te veroorzaken door bijvoorbeeld een denial-of-service aanval te doen tegen een doelwit, of door middel van het installeren van een Trojaans paard dat op een bepaalde datum actief wordt. Het kan zichzelf automatisch verspreiden zonder de tussenkomst van een menselijke handeling. Een blended threat kan met name vanwege de snelle verspreiding veel computers in een korte tijd besmetten. De grote aantallen besmette computers kunnen hun krachten bundelen, waardoor een krachtig en groot wapen ontstaat voor het aanvallen van een doelwit. Ter bescherming tegen een blended threats kan worden gedacht aan het uitvoeren van een patchbeleid, het gebruiken van een firewall in combinatie met een intrusion prevention system en het gebruiken van anti-malwaresoftware. Daarnaast kunnen gebruikers door het gebruik van hun verstand ook een grote bijdrage leveren aan het tegengaan van blended threats, door bijvoorbeeld hun internetsurfgedrag aan te passen. In toenemende mate worden blended threats toegepast door de virusmakers. Oorzaak hiervan ligt in de grote toename van de beschikbare bandbreedte, zowel bij organisaties als bij particuliere internetgebruikers. Steeds meer begint ook de georganiseerde criminaliteit zich tot het internet te wenden, de mogelijkheden voor illegale praktijken zijn enorm en voldoende aanwezig op het internet Window of vulnerability Een nieuw virus herkennen is vaak lastig of soms onmogelijk, vandaar dat de verschillende antivirusfabrikanten een loket hebben waar verdachte bestanden of berichten kunnen worden afgegeven. Zij controleren elke ontvangen melding op de aanwezigheid van virussen, zodat zij daar een vaccin tegen kunnen ontwikkelen. Vanaf dat moment begint de race tegen de klok om een fix te vinden. De huidige virusinfecties hebben door de populariteit van het internet en een grote en snelle reikwijdte. Doordat een zeer groot deel van de huidige virussen via de worden verspreidt is het mogelijk dat een nieuw virus binnen een paar minuten enkele duizenden computers kan bereiken en dus kan infecteren. Ter illustratie de doorlooptijd van een wereldwijde infectie: Michellangelo virus: doorlooptijd van ongeveer 6 maanden WM/Melissa virus: doorlooptijd van ongeveer 1 dag CodeRed/Nimda: doorlooptijd van ongeveer 14 uur Mydoom.A: doorlooptijd van een paar uur. De tijd die wordt gemeten vanaf het moment dat een virus wordt aangemeld bij een antivirus softwareleverancier en het moment dat het virus wordt herkend en het kan worden bestreden wordt het Window of vulnerability genoemd. Dit window of vulnerability is niet alleen van toepassing bij virussen maar geldt voor alle vulnerabilities. 68

76 In de jaren tachtig was het nog relatief eenvoudig: een nieuw virus wordt gedetecteerd; het virus wordt verstuurd naar het laboratorium voor onderzoek en bestrijding; er wordt een nieuwe virusscanner update ontwikkeld, de melder ontvangt de update en kan het virus bestrijden. Het virus verspreidde zich binnen enkele weken of maanden onder een paar honderd computers, immers er waren nog geen grote gekoppelde netwerken. Momenteel is het mogelijk dat binnen een uur een virusinfectie wereldwijd verspreid is. Om het window of vulnerability te verkleinen moet aandacht worden geschonken aan de volgende zaken: Pro-actief verminderen van de snelheid van de verspreiding van een virus. Pro-actief verminderen van het succes van de verspreiding van een virus. Pro-actief verminderen van de zwakheden die kunnen worden misbruikt voor een aanval en/of virus. Belangrijk voor het verkleinen van het window of vulnerability is het logistieke proces van het verspreiden van een antivirus-update. Steeds meer antivirusproducten zijn voorzien van een automatische updatemogelijkheid van de antivirus software. Daarentegen zijn niet alle geïnstalleerde antivirus producten zo geconfigureerd dat deze mogelijkheden optimaal kunnen worden benut. Zo kan het zijn dat een nog niet geïdentificeerd virus een computer besmet en daardoor juist kan voorkomen dat het antivirusproduct wordt voorzien van een bijgewerkte virusdefinitiebestand. De automatische update vormt dan juist een gevaar voor de ICT-omgeving, omdat de beheerders er vanuit kunnen gaan dat hun antivirusproduct automatisch wordt bijgewerkt. Enige controle van de werking van een automatische update blijft noodzakelijk. Een exploit is software of een reeks commando s die misbruik mogelijk maken van een zwakke plek (vulnerability). Een zero-day exploit is een exploit voor een vulnerability waarvan eerder misbruik van wordt gemaakt dan dat een leverancier van software weet heeft van het bestaan van de vulnerability. De maker van de software heeft dus nog geen kans gehad om maatregelen te nemen tegen de vulnerability. Het gebeurt ook wel dat een vulnerability al langer bestaat en bekend is bij de leverancier maar dat het bestaan door de leverancier geheim gehouden wordt. Vanaf het moment dat er een exploit is, is er dus een zero-day exploit totdat de vulnerability is opgelost door de leverancier. Een zero-day exploit is ideaal voor een hacker. Deze exploit heeft bezien uit het oogpunt van hacker dus een maximaal effect. Deze exploits kunnen daarom ook erg gevaarlijk zijn Antivirusoplossingen De antivirusoplossingen kunnen bijvoorbeeld worden ingedeeld naar de verschillende doelgroepen. Zo zijn de antivirusoplossingen voor de particuliere markt kleinschaliger van opzet dan de oplossingen voor het MKB en de grotere organisaties. De antivirusoplossingen kunnen ook naar het technische toepassingsgebied worden ingedeeld wat een beter inzicht geeft in de toepassing van een antivirus oplossing. Dit levert de volgende indeling op: Antivirus oplossingen voor servers Antivirus oplossingen voor groupware Antivirus oplossingen voor werkstations/laptops Antivirus oplossingen voor netwerkverbindingen Het toepassen van een antivirusoplossing is afhankelijk van de aanwezigheid van een specifieke toepassing in een netwerkinfrastructuur. Daarnaast bepaalt een organisatie zelf hoe belangrijk een bepaalde toepassing is voor de organisatie. Steeds meer organisaties kunnen het zich niet meer veroorloven, dat zij geen aandacht besteden aan virusbestrijding. 69

77 Maar bij het bepalen welke oplossingen uiteindelijk worden gekozen spelen bedrijfseconomische motieven een hele belangrijke rol Toepassen van antivirusoplossingen Om de virusbedreiging voor een organisatie goed in kaart te kunnen brengen kan een organisatie een analyse uitvoeren van de verschillende toegangsmogelijkheden tot het bedrijfsnetwerk. Daartoe kan een organisatie een overzicht samenstellen waarin de verschillende netwerktoegangsmogelijkheden in kaart worden gebracht en worden afgezet tegen de verschillende aanwezige toepassingen op het netwerk. In het overzicht wordt dus aangegeven welke toegangsmogelijkheden bedreigend zijn voor de toepassing in het geval van een virusinfectie. Als een dergelijk overzicht eenmaal is opgesteld is het inzichtelijk waar de virusbedreiging al of niet moet worden aangescherpt. Steeds meer organisaties passen voor de verschillende toegangspaden antivirusproducten toe van verschillende antivirusproducenten. Hierdoor wordt de kans dat een virus wordt gedetecteerd groter. De antivirus softwareleveranciers zijn namelijk niet altijd even snel met het leveren van een bijgewerkte antivirusdefinitiebestand of antivirussoftware, waardoor detectie en bestrijding van het virus niet tijdig kunnen plaatsvinden Antivirus scanners Er bestaan twee soorten antivirus scanners, namelijk: On-demand scanners Een on-demand scanner wordt door een aanvraag opgestart. De aanvraag wordt geïnitieerd door een gebruiker of door een geplande opdracht. De scanner controleert de aanwezige data op een medium of in het geheugen op de aanwezigheid van virussen. Zodra de ondemand scanner een verdacht bestand signaleert zal de scanner daar actie op nemen. On-access scanners Een on-access scanner (memory residente scanner) is een scanner die op de achtergrond van een systeem actief is en resident in het geheugen is geladen. Hierdoor kan de scanner alle activiteiten monitoren op het systeem, zoals het lezen van bestanden, processorgebruik, internetdownloads, verkeer enzovoorts. In de basis houdt een on-access scanner alle activiteiten op een systeem in de gaten, en als het een verdachte activiteit signaleert dan kan het daar direct actie op ondernemen. Voor de detectie van virussen door de scanners zijn de volgende zaken belangrijk: Configuratie van de scanner Een virusscanner stelt de gebruiker in staat om de scanner te configureren. Zo kan door middel van de instellingen worden bepaald of een scanner alle soorten bestanden controleert op virussen of alleen bepaalde bestanden. Hierdoor is het mogelijk om de scanner verkeerd in te stellen, waardoor de virussen niet worden gedetecteerd. Een onjuiste configuratie van de scanner kan dus het systeem onvoldoende bescherming bieden waardoor het zijn doel voorbij schiet, helemaal als een virus gebruik maakt van bepaalde niet-geconfigureerde instellingen van een scanner. De virussignature database Virussen worden herkend op grond van hun karakteristieke kenmerken. Hierbij wordt gebruik gemaakt van een database met viruskenmerken, de virussignature database. Het is van groot belang dat deze database regelmatig wordt bijgewerkt. Een virussignature bevat specifieke (unieke) kenmerken van een virus in de vorm van enkele bytes. De kenmerken van een handtekening mogen niet te groot zijn, omdat anders de database waarin alle handtekeningen worden opgeslagen te groot wordt. De scan-engine De scan-engine is de eigenlijke scanner die de twee voorgaande zaken moet gebruiken ter bestrijding van de virussen. De scan-engine is het programma dat de configuratie en de 70

78 antivirusdriver interpreteert en toepast tijdens de scan. Zo kan een verouderde scan-engine en een recente antivirusdriver zijn doel voorbij schieten. Beide onderdelen moeten volledige op elkaar afgestemd zijn wil men optimaal gebruik kunnen maken van de aanwezige functionaliteit. De huidige virusscanners zoeken naar virussen via twee methoden. Er wordt gezocht naar kenmerken van de bekende virussen. Als een virus wordt gevonden dan wordt het virus bestreden volgens een bekende methode en indien mogelijk wordt eventuele schade op het systeem hersteld. Wanneer het om een nieuw, nog niet bekend virus gaat, doet de virusscanner iets anders. Aangezien het programma niet op zoek kan gaan naar onbekende virussen, gaat het wel op zoek naar ongewone activiteiten op het systeem die kunnen duiden op de aanwezigheid van een virus. Het dubieuze programma of bestand wordt afgeschermd van de rest. De virusscanner laat een waarschuwing zien en vraagt de gebruiker of er actie ondernomen moet worden Heuristisch scannen Het woord heuristisch is afgeleid van het Griekse woord heuriskein dat ontdekken betekent. Zo vormt het ontdekken van nog onbekende virussen een dergelijk probleem. Het is ondoenlijk om een antivirusprogramma te schrijven dat alle bekende en nog onbekende virussen voor de volle 100% kan ontdekken. Vandaar dat ontwikkelaars van antivirussoftware een aantal heuristische methoden hebben ontwikkeld. Eén van deze methoden is het scannen aan de hand van een virussignature database. Daarnaast kunnen de meeste antivirus programma s heuristisch scannen. Zo zal een heuristische scanner alleen programma s scannen. De scanner zal dit in minimaal twee fasen doen. In de eerste fase zal worden bepaald op welke logische plekken de eventuele viruscode verborgen kan zitten in de programmatuur. In de tweede fase zal de scanner proberen te bepalen tot welke handelingen een programma in staat is en of deze handelingen verdacht zijn. De scanner laadt als het ware een programma in een virtueel systeem, alwaar het programma zijn handelingen uitvoert. De scanner houdt de handelingen bij en bepaalt of de handelingen verdacht zijn. Heuristisch scannen brengt ook als nadeel een hoog processorgebruik met zich mee waardoor de performance van het systeem nadelig wordt beïnvloedt. Een heuristische scan kan er wel voor zorgen dat een potentieel virus kan worden ontdekt, nog voordat het virus actief kan worden. De scans worden vaak uitgevoerd als een nieuw bestand op een systeem wordt ontvangen. Daarnaast geeft een heuristische scan wel een groter percentage valse meldingen dan een gewone scan Malware scanners Malware tools controleren op het systeem zowel de bestanden als het register op verdachte programmatuur. Indien deze worden aangetroffen zal de tool dit melden en proberen om deze verwijderen. Daarnaast zijn er ook realtime spyware scanners die waarschuwen zodra een programma iets probeert te doen wat niet mag, bijvoorbeeld het wijzigen van de register- of internetinstellingen. Een andere manier om spyware buiten te houden is het verhogen van de browserbeveiliging, waarbij een afweging wordt gemaakt tussen gemak en veiligheid. De meeste malware maakt gebruik van legitieme internettechnieken zoals pop-ups, cookies, javascript en ActiveX-componenten. Deze technieken maken het internet mooier en eenvoudiger, maar ook onveiliger. Als men dit soort technieken uitschakelt kan het voorkomen dat sommige websites niet meer goed functioneren. 71

79 11 Hardening Hardening is een proces om een systeem veiliger te configureren. Hardening bestaat uit de herconfiguratie van systemen van een standaard naar veiligere instellingen. De geleverde standaard configuratie is vaak bedoeld voor trusted omgevingen. Hardening heeft als primair voordeel dat het een veiligere configuratie oplevert. Een bijkomend voordeel is vaak een betere performance en beheersbaarheid Site security handboek Een goede handleiding voor het toepassen van hardening is request for comments 2196 die als titel heeft Site security handboek. Deze RFC beschrijft niet de technische mogelijkheden die er zijn om hardening uit te voeren maar, het is handreiking over hoe en waarom hardening uitgevoerd moet worden en met welke onderdelen van een technische infrastructuur rekening mee gehouden moet worden om hardening toe te passen. Hardening begint met het ontwikkelen van een beveiligingsplan. In dit beveiligingsplan moeten de volgende onderdelen opgenomen worden: Vaststellen welke bezittingen (assets) er beveiligd moet worden. Deze bezittingen omvatten hardware, software, data, mensen, documentatie en voorraden zoals papier, tapes en dergelijke. Vaststellen tegen welke bedreigingen deze bezittingen beschermd moeten worden. Voor elke bedreiging zal worden bekeken hoe dit invloed heeft op beschikbaarheid, integriteit en vertrouwelijkheid. Bepaal hoe groot of klein de kans is op dat deze bedreigingen optreden. Vaststellen van de maatregelen die genomen moeten worden om de bezittingen te beschermen op een kosteneffectieve methode. Beschrijving van een review proces zodat de beveiliging telkens kan worden verbeterd wanneer nieuwe zwakke plekken zijn gevonden. De bedreigingen zijn in drie hoofdcategorieën te verdelen: Ongeautoriseerde of onbedoelde toegang tot resources en/of informatie om deze te kunnen wijzigingen. Onbedoelde en/of ongeautoriseerde toegang tot informatie om deze te kunnen lezen. Denial-of-service Bij de beveiliging wordt er vanuit gegaan dat dit op een kosteneffectieve methode gebeurt. De kosten voor beveiligingen moeten lager zijn dan de totale kosten die optreden wanneer er schade optreedt. Deze schadepost kan bestaan uit kosten die direct aanwijsbaar zijn, zoals bijvoorbeeld het verlies van hardware. De indirecte kosten zijn vaak moeilijk in geld uit te drukken. Voor reputatieschade is het bijvoorbeeld heel moeilijk om daar een prijskaartje aan te hangen. De beveiligingsmaatregelen die een beheerder maakt bepalen grotendeels hoe veilig of onveilig een infrastructuur is en hoe gemakkelijk deze te gebruiken is. Hierin schuilt de altijd aanwezige tweestrijd tussen beveiliging en functionaliteit. De beveiligingsdoelstellingen bepalen welke beveiligingsmaatregelen genomen moeten worden. Zonder beveiligingsdoelstellingen kan niet bepaald worden hoe er beveiligd moet worden. Er kan dus niet bepaald worden welke tools of configuratie gebruikt kan worden omdat niet bekend is hoe ze gebruikt kunnen worden. Het uitvoeren van beveiliging zonder beleid is onmogelijk. ICTbezittingen hebben standaard een bepaalde configuratie. Zonder dat er gekeken is naar het beveiligingsbeleid van de gebruiker of eigenaar heeft een leverancier al bepaald hoe de beveiliging eruit dient te zien. De beveiligingsdoelstellingen van een leverancier zijn ongetwijfeld anders dan die van een gebruiker of eigenaar. De beveiligingsdoelstellingen van een leverancier zijn er op gericht om een product gemakkelijk te verkopen. De beveiligingsdoelstellingen van een gebruiker of eigenaar worden bepaald door zijn of haar 72

80 beveiligingsplan. Hardening is het proces om van de standaard configuratie van de leverancier naar de configuratie te gaan die bepaald wordt door het beveiligingsbeleid van de gebruiker of eigenaar. Hardening omvat hierbij niet alleen de technische maatregelen maar ook procedures en beleid om hardening te kunnen toepassen. Beveiligingsdoelstellingen zijn voor verschillende gebruikers of eigenaren verschillend. Een standaard hardening die voor iedereen bruikbaar is bestaat dus ook niet. De hardening moet aangepast worden aan beveiliging, functionaliteit en de omgeving waarin een ICT-middel opereert. De volgende figuur laat zien op welke onderdelen van een informatiesysteem hardening van toepassing is. Het informatiesysteem is hierbij onderverdeeld in de delen interfaces, processing en data. De interfaces zijn alle methoden waarmee gebruikers het informatiesysteem gebruiken. De processing omvat wat we kunnen noemen de intelligentie van het informatiesysteem. Het data deel is de opslag van gegevens. Management van het informatiesysteem omvat alles wat nodig is om het systeem te monitoren en beheren. Hardening is van toepassing op de hardware, besturingssysteem en applicaties die gebruikt worden om de delen van het informatiesysteem te vormen. Ook het managementdeel van het informatiesysteem kan gehardend worden. Bij het toepassen van hardening zijn er een aantal principes die kunnen worden toegepast. Dit kunnen principes zijn zoals: Least privilege security model Volgens dit principe van niets mag tenzij heeft een entiteit niet meer rechten dan strikt noodzakelijk. Open design en eenvoud Een open design gaat uit van het principe dat security through obscurity niet werk. In combinatie met eenvoud zorgt dit ervoor dat de configuratie transparant is. Een hoge mate van transparantie zorgt ervoor dat zwakke plekken zichtbaar zijn en dat configuratiefouten kunnen worden vermeden. Gelaagde of modulaire beveiliging Een gelaagde of modulaire beveiliging kan een bijdrage leveren aan eenvoudig ontwerp. Het zorgt er ook voor dat wanneer een deel van een systeem niet voldoende beveiligd is dit geen gevolgen heeft voor andere onderdelen van het systeem. Security problemen worden zo geïsoleerd. Toepassen van een minimale configuratie Bij een minimale configuratie worden alle componenten die niet nodig zijn verwijderd. Hierbij is het ook belangrijk om te bepalen wat nu de daadwerkelijke noodzaak is voor de aanwezigheid van services. Zijn bepaalde protocollen, applicaties en dergelijke echt wel nodig. Wat er niet is hoeft ook niet gehardend te worden. Ook kunnen hieruit dan geen gevaren meer naar voren komen. Een gehardende configuratie heeft vaak minder onderdelen en is eenvoudiger van opzet. De nadelen die hardening met zich meebrengen zijn dat het uitvoeren ervan veel tijd kan kosten. Wijzigingen moeten ook getest en gedocumenteerd worden. Vanwege de vele stappen die doorlopen moeten worden is het vaak lastig om dit inzichtelijk te documenten. Tijdens 73

81 hardening kunnen door het toepassen ervan juist nieuwe problemen ontstaan waarvoor ook een oplossing gevonden zal moeten worden. Het kennisaspect voor het succesvol toepassen van hardening is dus niet onbelangrijk. Dit komt ook doordat veel leveranciers niet altijd genegen zijn om nog support te leveren op omgevingen die gehardend zijn Selectieproces Hardening speelt ook een rol bij het selectieproces. Tijdens het selectieproces moet al rekening gehouden worden software of hardware die in een later stadium gehardend moet worden. De volgende figuur laat een stroomdiagram zien van hoe een selectieproces uitgevoerd kan worden. Eigenaar/gebruiker Functionele eisen classificatie Selectie proces Preselectie Test, Proof of Concept Product selectie Infrastructuur beheer Acceptatie criteria Infrastructuur randvoorwaarden Inkoop Bij de start van het selectieproces worden door de eigenaar en/of gebruiker als de IT-afdeling criteria opgesteld. De technische acceptatie en selectiecriteria worden door de IT-afdeling bepaald. Deze criteria moeten dan ook alle aspecten die betrekking hebben op hardening bevatten. Dit zijn eisen zoals het daadwerkelijk kunnen uitvoeren van hardening. In de eigenlijke selectie zijn deze criteria punten waarop de beoordeling gedaan wordt. Tijdens een testfase wordt daarna bepaald of het product functioneel voldoet maar ook of de harding uitgevoerd kan worden. Het product moet dan ondanks het uitvoeren van harding functioneel nog steeds voldoen Hardeningsmaatregelen Zoals we eerder zagen hebben hardingsmaatregelen betrekking op een aantal onderdelen van een informatiesysteem. In de volgende figuur worden deze onderdelen en de samenhang ertussen weergegeven. Op elk van deze onderdelen zijn verschillende hardeningsmaatregelen van toepassing. Interfaces Uitgangspunt voor de hardening van interfaces is dat alleen gebruik door geautoriseerde gebruikers en systemen is toegestaan. Voor de hardening van interfaces kunnen de volgende hardeningsmaatregelen gebruikt worden: Reduceer het aanvalsoppervlak Dit aanvalsoppervlak kan gereduceerd worden door het verwijderen van overbodige interfaces, protocollen en services. Ook het toepassen van fysieke beveiliging valt hieronder. 74

82 Beveilig de netwerkcommunicatie De netwerkcommunicatie kan beveiligd worden door het gebruik van betrouwbare protocollen. Dit houdt onder andere in dat het protocol voorziet in een gegarandeerde aflevering van de data en in de mogelijk om fouten die optreden te herstellen. De informatie kan ook versleuteld worden. In de versleuteling kan voorzien worden door het netwerkprotocol wat de informatie versleuteld tussen de zender en de ontvanger. De informatie kan ook versleuteld worden voordat het voor transport wordt aangeboden. In dat geval kan de informatie verstuurd worden met een netwerkprotocol wat zelf niet voorziet in versleuteling. Toepassen van gebruiker- en systeemauthenticatie Maak gebruik van betrouwbare authenticatiemechanismen die niet door een gebruiker omzeilt kunnen worden en waarbij er een hoge mate van zekerheid bestaat dat de gebruiker die inlogt ook inderdaad de betreffende gebruiker is. Hiervoor zullen two-factor of eventueel three-factor authenticatiemechanismen gebruikt moeten worden. Als onderdeel van het authenticatiemechanisme kan gebruik gemaakt worden van policies. Door middel van een policy kan bijvoorbeeld worden vastgelegd aan welke eisen een wachtwoord moet voldoen of hoe lang het wachtwoord geldig is. Toepassen van autorisatie op need-to-have basis Voor het gebruik van interfaces kan worden vastlegd dat het principe geldt dat een gebruiker niet meer rechten heeft dan strikt noodzakelijk. De gebruiker heeft dan net genoeg rechten maar ook niet meer rechten dan dat hij nodig heeft om werkzaamheden uit te voeren. Ditzelfde principe kan ook toegepast worden voor systemen. Een proces heeft niet meer rechten dan dat strikt noodzakelijk voor een juiste werking van het betreffende systeem. Processing Uitgangspunt bij de hardening van de processen is dat de systeemkwaliteit in termen van correctheid, volledigheid en tijdigheid bij processing of verwerking van data gegarandeerd kan worden. Hiervoor kunnen de volgende hardeningsmaatregelen toegepast worden. Uitvoeren van accuraat en overzichtelijk systeembeheer Hiervoor geldt dat betrouwbare hard- en software gebruikt moet worden. Hiervan zal zeker moeten zijn dat de hard- en software correct functioneert maar ook dat ze geen ongewenste handelingen uitvoeren of fouten veroorzaken. De software moet bijvoorbeeld afkomstig zijn van een betrouwbare bron. Wanneer de software van internet gedownload wordt dient na het downloaden ook de checksum van het bestand gecontroleerd te worden. Ook voor de checksum waarmee vergeleken wordt geldt dat deze uit een betrouwbare bron moet komen. Bij softwaredistributie moet geregeld worden dat de software tijdens de distributie niet corrupt kan raken of aangepast kan worden. Voor een overzichtelijk systeembeheer moeten servers en applicaties van elkaar gescheiden worden op basis van functionaliteit en classificatie. Zo hoort een webservice niet gecombineerd te worden met een fileservice op één fysieke server. Ook vertrouwelijke informatie hoort niet op een server te staan die ook gebruikt wordt voor publiekelijk beschikbare informatie. Bewaken van opstart- en afsluitprocessen Ongecontroleerd opstarten en afsluiten van systemen en services heeft ten eerste invloed op de beschikbaarheid van systemen. Tevens kan dit een beveiligingsriscio inhouden. Beveiligingsmaatregelen kunnen omzeilt worden. Om ongecontroleerd opstarten en afsluiten van systemen te voorkomen kan gebruik gemaakt worden van beveiligingsmaatregelen in de BIOS. Ook moet worden voorkomen dat er meerdere besturingssystemen op één server staan. Het aantal verschillende opstartmogelijkheden moet beperkt zijn. Als er onveilige opstart mogelijkheden op een systeem nodig zijn zoals bijvoorbeeld voor een reparatiefunctie dan moet voor deze optie minimaal authenticatie nodig zijn. Om een besturingssysteem te laten stoppen moet ook authenticatie toegepast worden. Op een computersysteem draaien services zoals een mailservice of database services. Ook voor deze services geldt dat ze op gecontroleerde wijze gestop en gestart moeten worden. Dit kan geregeld worden door het toepassen van authenticatie bij het stoppen en starten. 75

83 Bescherming tegen malicious software Voor de uitgevoerde processing moet erop kunnen worden vertrouwd dat deze correct uitgevoerd wordt. Malware kan een correcte werking beïnvloeden. Om dit te voorkomen kan gebruik gemaakt worden van anti-malware software zoals malwarescanners, virusscanners en intrusion detectionsoftware. Door gebruik te maken van logging en monitoring kan ook in de gaten gehouden worden wat er allemaal op een systeem gebeurt. Acties en processen van malware kunnen zo gedetecteerd worden. De beveiliging van de logbestanden is ook een aandachtspunt. Sommige malware is in staat om logging aan te passen waardoor de logfile niet meer betrouwbaar is. De juiste systeemtijd is ook belangrijk om activiteiten zoals die in de logfile staan aan elkaar te kunnen correleren. Data Verzekeren van de vertrouwelijkheid, integriteit en beschikbaarheid conform dataclassificatie is een uitgangspunt wat gehanteerd wordt bij de hardening van data. Hiervoor kunnen de volgende hardeningsmaatregelen toegepast worden. Toepassen van cryptografische technieken Door het toepassen van cryptografie kan de vertrouwelijkheid en integriteit van data geregeld worden. De versleutelde informatie is niet te lezen door iemand die de data niet kan ontsleutelen. Voor het wijzigen van informatie is meestel vereist dat de onversleutelde informatie beschikbaar is. De versleutelde informatie kan ook gewijzigd worden maar daarvan is dan niet zichtbaar wat er gewijzigd wordt. In de praktijk zal dit vaak alleen corrupte en onbruikbare informatie opleveren. Om de integriteit van data te controleren kan gebruik gemaakt worden van hashingmechanismen. Van de data wordt een hash berekent en bewaard. Wanneer voor de data op een later tijdstip of op een andere locatie opnieuw de hash berekend zou worden dan zou deze hetzelfde moeten zijn als de eerder berekende hashwaarde. Is de hashwaarde anders dan is de data in de tussentijd gewijzigd. De integriteit kan dan niet meer gegarandeerd worden. Garanderen van databeschikbaarheid De beschikbaarheid van informatie, data en systemen kan verhoogd worden door het toepassen van redundantie. Infrastructuur of onderdelen ervan worden dubbel of meervoudig uitgevoerd. De informatie zelf kan ook op meerdere plaatsen beschikbaar gesteld worden. Als de informatie zich op meerdere plaatsen bevindt betekent dit dat beveiligingsmaatregelen ook op meerdere plaatsen uitgevoerd moeten worden. Dit kan de kans op verlies van vertrouwelijkheid vergroten. Een andere vorm om de beschikbaarheid te vergroten is het toepassen van back-up en restore technieken. Wanneer de informatie niet meer beschikbaar is kan de beschikbaarheid hersteld worden. Inherent aan het toepassen van deze techniek is dat informatie op meerdere plaatsen aanwezig is. Management Management van de infrastructuur zorgt ervoor dat het systemen veilig en up-to-date blijven na het toepassen van beveiligingsmaatregelen. De hardeningsmaatregelen die hiervoor toegepast kunnen worden zijn de volgende: Up-to-date houden van software Van veel software komt regelmatig een nieuwe versie uit. Dit betreft vaak niet alleen functionele aanpassen maar ook aanpassingen met betrekking tot beveiliging. Deze nieuwe versies maar ook updates en patches moeten geïnstalleerd worden om vulnerabilities te voorkomen. Aandachtspunt hierbij is ook weer het uitvoeren van een betrouwbare softwaredistributie. Controleren van beveiligingsinstellingen Onderdeel van securitymanagement is het periodiek of realtime controleren van beveiligingsinstellingen. Deze instellingen zouden niet ongecontroleerd of onbedoeld gewijzigd mogen worden. Het gebeurt regelmatig dat het gebruik van andere software of andere instellingen onbedoeld gevolgen heeft voor de beveiligingsinstellingen van de infrastructuur. Ook kunnen omgevingsfactoren de risico s veranderd hebben waardoor de beveiliging aangepast moet worden. 76

84 12 Authenticatie en autorisatie Regels opgelegd door centrale autoriteiten vereisen een steeds betere autorisatiestructuur. Als organisatie is het de plicht om een kloppende gebruikersadministratie te hebben. Ook de toegang tot objecten in de organisatie (ICT en niet-ict-gerelateerd) moeten helder en traceerbaar geregeld zijn. Deze administratie moet zoals genoemd eenvoudig te controleren zijn door auditors. Ook moeten gebeurtenissen zoals wijzigingen en (pogingen tot) overtredingen in een auditlog vastgelegd worden. Dit is pas één reden om een goede authenticatie en autorisatie toe te passen. Denk aan de tijd die men momenteel kwijt is bij het toevoegen van een nieuwe medewerker. Medewerkers hebben meestel toegang tot meerdere applicaties, waarvoor in het traditionele model verschillende autorisaties geregeld moeten worden. Dit geeft niet alleen problemen bij het opvoeren van nieuwe gebruikers maar ook bij wijziging van functie of ontslag. Ook de inspanning door de helpdesk is niet onaanzienlijk. Allemaal reden om dit onderwerp te belichten Autorisatiemodelen Bij de traditionele manier van toegang geven heeft een gebruiker toegang nodig tot een object, bijvoorbeeld een applicatie of een directory. Na een aanvraag en goedkeuring ervan worden de benodigde rechten aan het object gekoppeld. De gebruiker kan daarna gebruik maken van het object. In de volgende paragrafen worden een aantal autorisatiemodellen gepresenteerd waarbij aan de hand van de modellen de problematiek rondom het beheer van autorisatie geschetst wordt. Een ander niet onbelangrijk aspect bij authenticatie en autorisatie is het opruimen van accounts, groepen, rechten en dergelijke wanneer deze niet meer nodig zijn. In de praktijk wordt dit vaak vergeten. Ook ontbreekt het vaak aan controle en overzichtelijkheid om inzicht te hebben wat overbodig is Simpel autorisatiemodel In dit model wordt een gebruiker die geïdentificeerd is door een gebruikersaccount of user-id rechtstreeks geautoriseerd voor toegang tot een object, meestal via de access control list (ACL) van het object. Het belangrijke in dit model is die rechtstreekse autorisatie. Op de ACL van het object is dan gespecificeerd welke toegang zoals lezen, schrijven, uitvoeren of verwijderen het user-id heeft tot het object. Het object kan een bestand, commando, utility, directory of een applicatie zijn. Maar het kan ook een autorisatieprofiel of transactie binnen een applicatie of een scherm binnen een applicatie zijn. Dit kan een zeer fijnmazige structuur zijn. De volgende figuur geeft dit autorisatiemodel weer. Gebruiker Object De lijn met kraaienpoten is een veel-op-veel relatie tussen de onderdelen. In dit geval betekent het dat een gebruiker aan meer dan één object kan zijn gekoppeld, en dat een object ook aan meer dan één gebruiker kan zijn gekoppeld. 77

85 In de volgende figuur is in een voorbeeld een groot aantal autorisaties weergegeven die een gebruiker kan hebben. Voor elk van de objecten zoals bijvoorbeeld applicaties of websites heeft de gebruiker een autorisatie. Dit levert een groot aantal lijntjes op in de figuur. Gebruiker Applicatie A Applicatie B Applicatie C Website A Applicatie B Applicatie C Directory A Applicatie lezen B Applicatie C Directory D Lezen / schrijven E F Het plaatje hierboven klopt niet helemaal in de zin dat niet is getekend dat elk object meerdere gebruikers kan hebben met elk zijn eigen rechten. Dit model bestaat op vrijwel elk besturingssysteem en wordt ook gebruikt in applicaties en beheertools. Zoals uit de vorige figuur wel bijkt kost het beheer een grote inspanning. Elke nieuwe gebruiker moet steeds aan alle objecten worden gekoppeld. Als de gebruiker een andere functie krijgt, moeten de verbindingen gewijzigd worden Autorisatiemodel met groepen In dit model wordt een tussenstap gemaakt. Een gebruiker wordt hier lid van een groep en die groep heeft vervolgens toegang tot een object. De groepnaam wordt in de ACL van het object gebruikt. Op die manier worden daarmee grote groepen gebruikers toegang gegeven tot een object. Dit model is in de volgende figuur weergegeven. Gebruiker Autorisatie groep Object User list Access list (ACL) Dit model bestaat op de meeste besturingssystemen en wordt vaak toegepast in applicaties voor het groeperen van bevoegdheden. De voordelen van het autorisatiemodel met groepen in vergelijking met het simpele autorisatiemodel zijn duidelijk, daarom wordt het autorisatiemodel met groepen in de praktijk het meest toegepast. Opmerking: Soms kunnen groepen lid zijn van een groep waardoor je meerdere lagen in de autorisatie krijgt. 78

86 Dit model kan onderverdeeld worden op basis van taakgebaseerde of rolgebaseerde autorisatiegroepen Taakgebaseerde autorisatiegroepen Bij taakgebaseerde autorisatiegroepen zijn de groepen gebaseerd op de taak die een gebruiker moet kunnen uitvoeren. Deze taken moet een gebruiker kunnen uitvoeren vanwege de funtionele rol die een gebruiker heeft binnen een organisatie. De gebruiker is hiervoor gekoppeld aan een aantal autorisatiegroepen voor deze taken. De ACL s van deze groepen zijn gekoppeld aan een beperkt aantal objecten. Op de ACL s van de objecten staan dus slechts een beperkt aantal groepen in plaats van alle gebruikers, zoals dat het geval zou zijn bij het simpele autorisatiemodel. De volgende figuur geeft een voorbeeld van het gebruik van taakgebaseerde autorisatiegroepen. In dit voorbeeld wordt een krediet verstrekkende instantie gebruikt. Elke medewerker krijgt die taken toebedeelt die nodig zijn om zijn werk te kunnen uitvoeren. Als het goed is niet meer en niet minder taken dan nodig. Dit alles op persoonlijke titel! Rolgebaseerde autorisatiegroepen Bij rolgebaseerde autorisatiegroepen zijn de groepen gebaseerd op de rol die een gebruiker heeft binnen een organisatie. Deze rol heeft een gebruiker vanwege de functie die hij binnen een organisatie heeft. De gebruiker is hiervoor gekoppeld aan een aantal autorisatiegroepen voor deze rollen. De ACL s van deze rollen zijn gekoppeld aan de objecten. 79

87 De volgende figuur geeft een voorbeeld van het gebruik van rolgebaseerde autorisatiegroepen. Gebruiker X Basisgroep sales Applicatie A Applicatie B Applicatie C Gebruiker Y Gebruiker Z Salesmanager Offerte behandelaar Website A Applicatie B Applicatie C Directory A Applicatie lezen B Applicatie C Gebruiker A Directory D Lezen / schrijven E F 12.4 Role based access Role based access (RBAC) is een model wat weergeeft hoe toegang tot objecten in de totale infrastructuur gebaseerd kan worden op rollen. In het autorisatiemodel met groepen wordt al gebruik gemaakt van rollen. De vraag die dan opkomt is of dit dan al niet role-based access is. Sommige beheerders zullen veronderstellen dat ze al een RBAC-achtige structuur hebben geïmplementeerd. Men werkt immers al met rollen. In werkelijkheid is dit dan slechts voor één applicatie ingevoerd. Ook als men dit op meerdere plekken binnen een organisatie tegenkomt, wordt dit niet gezien als een RBAC-implementatie. Hier worden dan meestal weer met anders gedefinieerde rollen gewerkt. Slechts als er een applicatie en besturingssysteem overstijgende toegangsadministratie is zullen we spreken van een RBAC implementatie. Ook zal men zien dat het beheer van deze rechtenstructuur wordt gedaan door de technische beheerders. In het RBAC model is dat niet de bedoeling. Slechts bij het opzetten van het systeem (en de provisioning) zijn zij betrokken. 80

88 Het model voor role based access kan als volgt worden weergegeven. In het role based access-model heeft een gebruiker toegang tot een object via een rol en een taak. Net zoals in het autorisatiemodel met groepen het group-id van de taak-groep op de ACL van het object staat. Aan de andere kant is de autorisatiegroep nu gerelateerd aan één of meer rollen en is een gebruiker gerelateerd aan één of meer rollen. Dit is het basis RBACmodel: gebruikers zijn niet langer rechtstreeks gekoppeld aan autorisatiegroepen. In plaats daarvan komt de relatie tot stand via roldefinities. Op hun beurt zijn de rollen gekoppeld aan taakgebaseerde autorisatiegroepen. Echter ondersteunen de diverse besturingssystemen deze opsplitsing niet. Dit betekent dat we alleen in de RBAC-tooling een onderscheid kunnen maken tussen rollen en taken. In dit model hebben we te maken met de volgende beheer onderdelen: Object-autorisatiebeheer: objecteigenaar is goed in staat om de terechtheid te beoordelen van de koppeling van de taakgebaseerde groep aan het object. Rolbeheer: manager en security administrator samen met de objecteigenaar zijn goed in staat om de terechtheid te beoordelen van de koppeling van de rol aan de taakgebaseerde groep. Gebruikersbeheer: HRM kan eenvoudig rol(len) koppelen aan gebruikers. Het role based access model heeft als voordeel dat er duidelijke functiescheiding kan worden toegepast voor de verschillende beheerders. Het model levert een grote mate van transparantie op doordat techniek en functie als het ware van elkaar worden losgekoppeld. Dit maakte een controle door een auditor ook eenvoudiger. Een ander voordeel van transparantie is dat gebruikers ook eenvoudiger en snel zijn toe te voegen maar ook zijn te verwijderen. 81

89 Een uitgewerkt voorbeeld van het role based access model is in de volgende figuur weergeven. Bij de implementatie van RBAC is het van belang onderscheid te maken tussen groepen en gebruikers binnen het RBAC-tool en groepen en gebruikers in de doelomgevingen zoals platforms en applicaties. Zoals eerder aangegeven is er in de praktijk van vaak slechts één groeps laag aanwezig in het besturingssysteem. Daarom wordt deze extra laag kunstmatig gecreëerd in de RABC-tooling. Hierdoor zal er een afbeelding van de structuur binnen de RBAC-tool naar de werkelijkheid op de besturingssysteem of applicatie-laag moeten plaatsvinden. Deze mapping wordt provisioning genoemd. Dit kan in sommige gevallen automatisch maar vaker blijft dit toch handwerk aan de hand van formulieren gecreëerd door de provisioning tool. RBAC levert een benadering en een middel waarmee de samenhang tussen gebruikers, rollen, taken en objecten inzichtelijk kan worden gemaakt. Er is nog geen koppeling met de diverse systemen. Hiervoor komt provisioning om de hoek kijken Provisioning Volgens de groep die de services provisioning markup language (SPML) bedacht heeft, is provisioning de automatisering van alle stappen die nodig zijn om gebruikers, rollen, taken en systeemtoegang te beheren. Provisioning introduceert workflow in het proces dat het beheer van identiteit omvat. Een provisioning systeem kan gebruikt worden om toegang aanvragen te routeren naar de personen die de benodigde rechten kunnen verlenen. Als alle toestemmingen zijn verkregen zal het provisioningsysteem de aanvraag automatisch uitvoeren. 82

90 Gebruikersbeheer Autorisatiebeheer Rolbeheer Autorisatie Gebruiker Rol Object groep RBAC-tool Doelomgeving Gebruikersprofiel Groep Object 12.6 Directory services Directory services worden gebruikt voor de opslag van gegevens over gebruikers. Traditioneel zijn dit losstaande systemen met elk hun eigen user-management. Zo gebruikt Microsoft Windows de Active Directory, Unix kan NIS gebruiken. Veel applicaties hebben zo hun eigen manier om gebruikers, rollen, rechten en dergelijke op te slaan. Dit doen ze elk op hun eigen manier. Met een metadirectory kunnen de gegevens uit de verschillende systemen opgenomen worden. De metadirectory zal bij invoering een superset van de onderliggende gegevens bevatten. Het is zaak dit te minimaliseren en deze gereduceerde set dan op te leggen aan de onderliggende systemen en applicaties. Vaak wordt al snel gebruik gemaakt van wachtwoordsynchronisatie. Echter vaak, bijna altijd, worden wachtwoorden versleuteld of alleen de hash opgeslagen. De enige mogelijkheid is dan de gebruiker het wachtwoord in de metadirectory te laten invoeren. De metadirectory synchroniseert dit dan met de onderliggende systemen. Een veelgevraagde functionaliteit wanneer een directory service wordt geïmplementeerd is het gebruik van single logon. Meestal kan er een applicatie gevonden worden die als leidraad voor de andere directories kan fungeren. Als hier dan het wachtwoord verandert wordt door deze applicatie de wachtwoorden in andere directories gewijzigd. Een probleem hierbij kan zijn dat het wachtwoordbeleid van de verschillende systemen niet overeenkomen. Een virtuele directory is een directory service die veel lijkt op een metadirectory. De virtuele directory heeft echter geen eigen data store. Met een virtuele directory kunnen gegevens uit de verschillende systemen als één verzameling worden bevraagd. De virtuele directory fungeert dus als doorgeefluik Single sign on Single sign on (SSO) is een mechanisme waarbij door een enkele logon actie de gebruiker toegang kan krijgen tot alle computers en systemen waar hij toegang tot heeft, zonder de noodzaak zich opnieuw te authenticeren. Single sign on heeft de volgende voordelen: Vermindert gebruikersfouten, waardoor minder vragen bij de helpdesk terechtkomen. Verhoogt de security, doordat de gebruiker geen noodzaak meer heeft om de vele wachtwoorden op te schrijven. Single sign on kan plaatsvinden in de vorm van wachtwoordsynchronisatie of op basis van agents. Bij wachtwoordsynchronisatie wordt op een centrale plaats het wachtwoord beheerd en vervolgens door gestuurd aan de verschillende systemen. Bij een agentbased systeem is er een agent geïnstalleerd op de client en een agent op het hostsysteem of de server. Deze 83

91 agents regelen onderling de authenticatie. In de volgende tekening wordt aangegeven hoe een dergelijke omgeving eruit ziet: Web-agent Webserver Webserver Webserver Policy server Appicatie server Appicatie server Appicatie server Autorisatie Applicatie database Authenticatie LDAP met user-id en wachtwoord (hash) Database met policies 12.8 Industriestandaarden voor identity management Industriestandaard protocollen maken een kosteneffectief identity management mogelijk. Het is niet aan te raden om identity management te implementeren zonder gebruik te maken van standaarden. De voornaamste protocollen hiervoor zijn. Service provisioning markup language (SPML) Security assertions markup language (SAML) Extensible access control markup language (XACML) Lightweight directory access protocol (LDAP) and X.500 Directory services markup language (DSML) Universal description discovery integration (UDDI) Liberty alliance specification WS-S (web services security) Samen zorgen deze protocollen voor de ondersteuning van een compleet identity management omgeving inclusief provisioning. Service provisioning markup language (SPML) voorziet in een standaard protocol voor opvoeren, wijzigen, reactiveren en verwijderen van gebruikers en rechten. Omdat dit een standaard is kan het gebruikt worden zonder behulp van proprietary API s. Het protocol gebruikt drie klassen van service: Provisioning service points (PSP s): servers die reageren op provisioning aanvragen. Provisioning service targets (PST): systemen die gecontroleerd worden binnen de totale provisioning omgeving. Requesting authority (RA): de ingang waar gebruikers toegang aanvragen. 84

92 De volgende figuur toont de onderlinge verbanden. SAML wordt gebruikt om de karakteristieken, rollen en privileges van een gebruiker of een object te beschrijven binnen een security domain. Deze XML berichten worden gebruikt tussen trusted applicaties. Op deze manier wordt single sign on voor webapplicaties bereikt. XACML wordt gebruikt voor aanvragen en beantwoorden van toegangscontrole. XACML bestaat uit twee delen, een policy definition language om te beschrijven welke toegangsrechten een gebruiker heeft en een request/response taal om die informatie uit te wisselen. De policy definition language stelt beheerders in staat om activiteiten zoals lezen, wijzigen en aanmaken van objecten te beperken gebaseerd op de rollen en de attributen die een gebruiker heeft. Deze taal kan ook toegangscontrole specificeren of basis van protocollen zoals FTP. Verschillende directory protocollen worden gebruikt om informatie uit te wisselen zoals X.500, LDAP en DSML. X.500 is het meest omvattende protocol om directories te bevragen terwijl LDAP een veel kleinere implementatie van een directory protocol is. DSML beschrijft de manier op directory structuren uit te wisselen. UDDI is een protocol om directories van webservices te onderhouden en informatie uit te wisselen. Verder kennen we nog initiatieven als the liberty alliance en de WS-federation. Deze initiëren initiatieven voor het uitwisselen van autorisaties en authenticaties tussen verschillende security domeinen. Dit is het zogenaamde federation identity management. 85

93 13 Beschikbaarheid U zult zich afvragen: Wat doet een hoofdstuk over beschikbaarheid in dit boek? We zouden de vraag misschien moeten omdraaien. Waarom willen we zo nodig een veilige omgeving hebben, waarom internet security. Uiteindelijk komt het er op neer dat we onze organisatie willen beschermen. We willen dat het rendement van de onderneming zo hoog mogelijk is zonder negatieve invloeden van buitenaf. Middelen om dat te bereiken zijn beveiligingsmaatregelen. Maar zeker een bepaalde veerkracht tegen ongewenste verstoringen zal daarin zeker ook helpen. Dit hoofdstuk over beschikbaarheid behandelt de beschikbaarheid van beveiligingscomponenten en beschikbaarheid als onderdeel van security. Dit zijn twee verschillende aspecten van beschikbaarheid. We hebben te maken met componenten zoals firewalls die vanwege de functie die zij uitoefenen een bepaalde mate van beschikbaarheid nodig hebben. Anderzijds hebben we te maken van de beschikbaarheid van diensten. Net als integriteit en vertrouwelijk is beschikbaarheid één van de peilers waarop de security van een dienst is gebaseerd. Zoals reeds in dit boek is behandeld worden de diensten die worden geboden geclassificeerd. Eén van die aspecten in deze classificatie is de beschikbaarheid Wat is beschikbaarheid Lage of geen beschikbaarheid is ook een vorm van beschikbaarheid. In de praktijk wordt daar niet naar gestreefd. De vraag die gesteld wordt is bijna altijd: hoe hoog moet de beschikbaarheid zijn? Vandaar dat vaak gesproken wordt over de term high availability. High availability kan als volgt worden gedefinieerd: een computersysteem wordt geacht een hoge beschikbaarheid te hebben dat wanneer een uitval optreedt er geen data is verloren en het systeem binnen een redelijke tijd kan herstellen. De beschikbaarheid wordt afgesproken in een service level agreement (SLA). In deze overeenkomst staan afspraken tussen de klant en de beherende partij. De volgende aspecten zullen hierin zeker genoemd worden. Welk percentage van de tijd moet de dienst beschikbaar zijn. Hoe lang mag elk incident duren? Zijn er tijden waarop de beschikbaarheid minder kritisch is? Wat zijn de service windows? Hoe meten we de beschikbaarheid? Hoe moet er worden geëscaleerd. Wat zijn de sancties? Is uitwijk vereist bij een langdurig probleem? Deze lijst is zeker niet uitputtend, maar indicatief voor de zaken die moeten worden geregeld. Er zullen ook zaken in voorkomen zoals als de snelheid (performance) van de dienst, maar dat valt buiten de scope van dit boek. Het afspreken van alleen maar een getal voor de beschikbaarheid is niet voldoende. Er moeten ook afspraken gemaakt worden over hoe lang een incident mag duren, welke service of onderhoudstijden gehanteerd worden. Met dit laatste kan geplande onbeschikbaarheid ingepland worden. Wellicht zijn er ook tijden waarop de beschikbaarheid minder mag zijn. Om onduidelijkheid te voorkomen moet ook afgesproken worden hoe er gemeten wordt. Een duidelijke definitie voor wanneer een dienst niet beschikbaar is belangrijk om af te spreken Beschikbaarheid wordt vaak uitgedrukt in het aantal negens. Een beschikbaarheid met drie negens is procentueel een beschikbaarheid van 99,9%. Ter indicatie laat de volgende tabel de beschikbaarheid zien uitgedrukt in het aantal negens. Deze tabel laat verder ook de relatie tussen de beschikbaarheid in procenten en in tijd zien. 86

94 Aantal negens Percentage Onbeschikbaarheid in een jaar 2 99% 3,65 dagen 3 99,9% 8,75 uren 4 99,99% 52 minuten 5 99,999% 5 minuten 6 99,9999% 31 seconden 13.2 Het beschikbaarheidscontinuüm Aan beschikbaarheid hangt ook een kostenplaatje. Hoe hoger de beschikbaarheid des te hoger de kosten. Niet alleen in hardware, maar ook in mankracht (FTE s), speciale software, tijdrovende procedures en bewaking. Onderstaand figuur geeft de relaties tussen deze aspecten. High availability is geen product wat gekocht kan worden. Het bestaat uit set van maatregelen die ontworpen, gebouwd en beheert moeten worden. Net als security is ook hier het onderhoud van groot belang Berekenen van beschikbaarheid In een keten van componenten die in zijn totaliteit een dienst levert kunnen componenten achter elkaar (serieel) of naast elkaar (parallel) in de keten opgenomen zijn. Een firewall die logisch gezien achter een router staat is een voorbeeld van een seriële schakeling. Een voorbeeld van een parallelle schakeling is een webserver omgeving waarbij twee webservers dezelfde website hosten en elkaars taak kunnen overnemen. De berekening van de beschikbaarheid voor een parallelle of seriële schakeling is verschillend. Het is eenvoudig te beredeneren dat bij seriële componenten de beschikbaarheid zal afnemen, terwijl bij parallel geschakelde componenten de beschikbaarheid zal toenemen. Bij beschikbaarheid van serieel geschakelde componenten wordt de onbeschikbaarheid van de afzonderlijke componenten bij elkaar opgeteld. Stel we hebben twee achter elkaar geschakelde componenten met elk een beschikbaarheid van 90%. De onbeschikbaarheid is dan dus 10% of 0,1. (onbeschikbaarheid = 1 beschikbaarheid) De totale onbeschikbaarheid is 0,1+0,1=0,2 of oftewel een beschikbaarheid van 80%. Opgemerkt moet worden dat dit een zeer grove manier van berekenen is. Het berekenen van de totale beschikbaarheid van twee componenten die parallel geschakeld zijn dient als volgt te gebeuren: Onbeschikbaarheid = product van de onbeschikbaarheid van de parallelle componenten. Een voorbeeld: twee componenten hebben beide een beschikbaarheid van 98%. De on-beschikbaarheid van elk van deze componenten is dan 0,02. Parallel geschakeld wordt deze 0,0004 of een beschikbaarheid van 99,96%. 87

95 Een andere formule om de beschikbaarheid aan te duiden is de volgende: Availability = MTBF / (MTBF + MTTR) MTBF = mean time between failures. Dit is de gemiddelde tijd tussen twee opeenvolgende momenten van onbeschikbaarheid. MTTR = mean time to repair of de mean time to restore. Dit is de gemiddelde tijd die nodig is om de onbeschikbaarheid ongedaan te maken. De MTTR bestaat uit de volgende vijf componenten: Detectie van de uitval Notificatie van de uitval Response tijd voor de beheerder of de partij die het herstel moet uitvoeren De eigenlijke reparatie of restore Opstarten van een systeem naar actieve status door recovery, restart of reboot Oorzaken van onbeschikbaarheid Hardware is bijna nooit de oorzaak van een incident. Het is daarom zaak niet blind te starten op technische maatregelen, maar het menselijke aspect niet uit het oog te verliezen door bijvoorbeeld software goed te testen, procedures te volgen en personeel een goede training te geven. Oorzaak van downtime Gepland onderhoud Applicatie fouten Besturingssysteemfouten Bedieningsfouten Hardware fouten Netwerkfouten Infrastructure fouten Natuurlijke rampen Mogelijke oplossing Online herconfigureren, rolling upgrade, Online backup Test procedures, roll-back procedures Optimaal versie- en patchbeheer, geminimaliseerd besturingssysteem, hardening van het besturingssysteem, Meer intuïtieve gebruikers interfaces, gescheiden rollen en verantwoordelijkheden, geautomatiseerd beheer Redundantie in hardware inbouwen Gescheiden test- en productienetwerken, redundante verbindingen Goed ontworpen computerruimtes met airco, noodstroom Gescheiden locaties Clustering Een veel gebruikte methode om de beschikbaarheid te verhogen is clustering. Een cluster is een verzameling van identieke of vergelijkbare onderdelen. Een veel voorkomende vorm van clustering is de situatie waarbij een cluster bestaat uit meerdere servers die dezelfde taak vervullen. Er zijn twee categorieën clusters: hardware clusters en software clusters. Bij een hardware cluster kunnen verschillende hardware onderdelen elkaars taak overnemen. Een hardware cluster kan op twee manieren worden geconfigureerd: active-passive of activeactive. Bij een active-passive configuratie is één server gereserveerd voor fail-over. Als de actieve node uitvalt kan de passieve node het overnemen. Bij de active-active configuratie zijn beide nodes actief. Wanneer één van de nodes uitvalt dan heeft de andere voldoende capaciteit om de activiteiten van de uitgevallen node over te nemen. Een software cluster bestaat uit meerdere instances van een applicatie. Als één applicatie stopt kan een andere instance van dezelfde applicatie de functie overnemen. Ook middleware componenten kunnen een cluster vormen.voorbeelden hiervan zijn Tuxedo van BEA en Websphere van IBM. Beide kunnen een omgeving aan applicaties bieden zodat de applicatie en de hardware niet specifiek is gemaakt om in een cluster te draaien. De hardware en het besturingssysteem kunnen zelfs binnen deze cluster verschillen. 88

96 Onderstaand figuur geeft een voorbeeld van de verschillende vormen van clustering binnen één project. Van boven naar beneden worden de volgende technieken gebruikt: Netwerkloadbalancer om het binnenkomende verkeer te verdelen over twee webservers die daardoor een cluster vormen. Bij uitval van één webserver wordt het verkeer naar de nog operationele webserver geleid. Websphere cluster. De Websphere agents die in de webservers zijn geïnstalleerd verdelen het verkeer over de twee Websphere application servers. Bij uitval wordt al het netwerkverkeer naar de resterende geleid. SUN OS cluster. Hier houden twee besturingssystemen met speciale cluster software elkaar in de gaten. Slechts één is actief. Bij uitval zal de applicatie op het pasieve besturingssysteem worden geactiveerd. Oracle grid. De database leverancier Oracle levert verschillende oplossingen van hotstandby tot parallel draaien. Locatie A Locatie B Netwerk Netwerk loadbalancer loadbalancer Webfarm Apache webserver Websphere plugin Apache webserver Websphere plugin Websphere cluster Websphere application server LPM Front-end Websphere application server LPM Front-end SUN cluster LPM LPM LPM LPM SUN cluster Oracle database grid Oracle Oracle Oracle Oracle De beschikbaarheid van security componenten wordt op een zelfde manier geregeld. Hier volgen twee voorbeelden. Het eerste is een vorm van applicatie clustering dat door een firewall leverancier wordt geboden. 89

97 Internet Firewall VRRP Firewall synchronisation Firewall Netwerk Via het virtual router redundancy protocol (VRRP) worden beide firewalls op de hoogte gehouden van de netwerksessies die zij afhandelen, zodat bij uitval van één van beide er zonder sessieverlies kan worden doorgewerkt. Het tweede voorbeeld laat zien hoe je een internetverbinding volledig redundant kan uitvoeren met behulp van netwerkloadbalancers (L4-switches) 90

98 Provider A Access routers Provider B firewall loadbalancing Layer 4 switches firewall loadbalancing Firewalls SSL accelerator Layer 4 switches SSL accelerator Proxy Firewalls Proxy Layer 4 switches Server loadbalancing Routers Layer 4 switches Proxy Web server Web server Proxy Web server Web server 13.6 Opslagsystemen Om data op te slaan worden raidsystemen, network attached storage (NAS) en storage area network (SAN) veel gebruikt. Deze bieden de mogelijkheid de data veilig op te slaan. Hiervoor kunnen allerlei technieken gebruikt worden. Belangrijk is na te gaan of bij uitval van een hardware component doorgewerkt kan worden en of dat data verloren kan zijn gegaan. Om te voorkomen dat data verloren gaat worden replicatietechnieken gebruikt. Deze zorgen ervoor dat de gegevens op verschillende schijven, soms locaties, worden opgeslagen. Er zijn 91

99 hiervoor twee methoden: synchrone en asynchrone replicatie. Bij synchrone replicatie zal de applicatie het signaal (ACK) dat de schrijfactie is geslaagd pas krijgen als de data op alle locaties is opgeslagen. Dit kan bij grotere afstanden vertraging voor de applicatie opleveren, maar er zal bij uitval nooit iets verloren zijn. Bij asynchrone replicatie krijgt de applicatie een bevestiging wanneer de data is opgeslagen op de primaire locatie. Het storage systeem zal de data daarna transporteren naar de secundaire locatie. Dit is natuurlijk sneller dan synchrone replicatie, maar er kan data verloren gaan Implementie- en wijzigingstrajecten Om te voorkomen dat projecten gedurende hun levenscyclus de beschikbaarheid van de productieomgeving verstoren worden diverse maatregelen getroffen. Zo zal een nieuwe versie door verschillende stadia moeten gaan om uiteindelijk te mogen landen in de productie omgeving. Vaak zal deze productieomgeving een gemeenschappelijke infrastructuur hebben waardoor wijzigingen bij één project invloed kan hebben op andere projecten. Hierdoor neemt de beschikbaarheid en wellicht ook de security af. Versie release Baseline release Persoonlijke Ontwikkelomgevingen Ontwikkelomgeving 1 Systeem / Integratie testomgeving Acceptatie testomgeving Productie omgeving Ontwikkelomgeving 2 Lab & test omgevingen Ontwikkelomgeving... Infrastructuur Unit test Module test Unit integratie test Systeemtest Integratietest Systeemtest PAT BAT Productie Bovenstaand figuur geeft een voorbeeld van zo n procesgang. Van links naar rechts zijn de verschillende omgevingen te herkennen: Persoonlijke ontwikkelomgeving Gezamenlijke ontwikkelomgeving Integratie testomgeving Acceptatieomgeving Productieomgeving Het zal duidelijk zijn dat bij complexe omgevingen deze omgevingen worden geborgd door wijzingingsprocedures en uitvoerige testen door zowel de klant (business acceptance test = BAT) en door de beherende partij (productie acceptance test = PAT). 92

100 Aanval, signalering en verdediging 93

101 14 Aanval Dit deel omvat een drieluik bestaande uit de onderwerpen aanval, signalering en verdediging. In het hoofdstuk over aanval zullen we zien hoe een hacker te werk gaat. Een beheerder zal natuurlijk deze pogingen proberen te signaleren. Maar dat alleen is niet genoeg. Wanneer gesignaleerd wordt dat een hacker is binnengedrongen is de beheerder eigenlijk al te laat. De signalering zal al eerder moeten plaats vinden. Dit is de signalering van de zwakke plekken waar een hacker gebruik van kan maken. De beheerder zal met de ogen van een hacker naar zijn infrastructuur moeten kijken om dit optimaal te kunnen beveiligen. Een beheerder zou dus ook als een hacker moeten kunnen denken. Mocht het ondanks alle maatregelen nu toch gebeuren dat een hacker binnenkomt dan moet de verdediging in stelling gebracht worden. In het hoofdstuk verdediging kijken we naar wat we kunnen doen als een aanval plaatsvindt Hacking & cracking Door mensen in de IT-wereld en daarbuiten worden veel kwaadwillenden hackers genoemd. De echte hacker beschouwt zichzelf niet als iemand die kwade bedoelingen heeft. Hij (het is bijna altijd een hij) wil niet graag vergeleken worden met degenen die met hun aanvalsmethodieken anderen schade willen berokken. Degenen die doelbewust schade toe brengen worden crackers genoemd. Een hacker beschouwt zichzelf als iemand die wil leren hoe computersystemen werken. Zijn doel is om kennis te verzamelen en niet om schade toe te brengen. Zijn kennis gebruikt hij om security te evalueren. De term hacker wordt ook wel gebruikt om een zeer goed programmeur aan te duiden. Een cracker is dus een criminele hacker, hij heeft kwade bedoelingen. De drijfveren die een cracker kan hebben zijn persoonlijk gewin, het verkrijgen van bekendheid, wraak of rivaliteit. In dit boek zullen we zoals in het spraakgebruik gebruikelijk is de term hacker gebruiken voor zowel de hacker als de cracker. Hackers en crackers worden ook wel eens aangeduid met de term white hat of black hat. De white hack is de hacker in de goede zin van het woord. De black hat is de cracker. Deze terminologie is afkomstig uit de zwart-wit Western films. De good guy heeft in een western vaak een witte hoed vandaar de term white hat. Opvallend veel sheriffs dragen in westerns dan ook een witte hoed. De bad guy draagt vaak een zwarte hoed. Naast hackers en crackers is er nog een categorie die aangeduid wordt als scriptkiddies. In de wereld van de hackers en crackers staan scriptkiddies niet hoog in aanzien. Een scriptkiddie wordt beschouwd als een hacker zonder veel kennis van zaken. Hij weet op internet tooling te vinden en kan die gebruiken. Dit alles zonder te weten wat hij nu eigenlijk aan het doen is. Door dit gebrek aan kennis kunnen in logbestanden wel eens sporen te vinden zijn van iemand die een Windows server probeert aan te vallen terwijl het erg duidelijk is dat het om een Linux server gaat. In dat geval is er duidelijk een scriptkiddie aan het werk. Het is immers zinloos om een dergelijke aanval uit te voeren. Waar scriptkiddies in staat zijn om tooling op internet te vinden is de gevorderde hacker in staat om zijn eigen tooling te schrijven Kortom de hacker is degene die veel plezier beleeft aan het leren van de details van (de beveiliging van) een computer systeem. Een hacker wil proberen om het maximale uit een computersysteem te halen. Zou een beheerder dan ook geen hacker moeten zijn? Voor de komst van hackers en crackers waren er de phreakers. Een phreaker is een hacker of cracker die niet met computersystemen werkt maar met telefoonsystemen. Zij willen zoveel mogelijk te weten komen over de werking van telefoonsystemen. Eén van hun drijfveren is het manipuleren van telefoonsystemen om gratis te kunnen telefoneren. Naarmate de ontwikkeling van computernetwerken en ook internet steeds verder ging kwam er steeds meer integratie tussen telefonienetwerken en computernetwerken. Waren telefoonnetwerken in eerste instantie nog bedoeld om alleen gesprekken te vervoeren, met de komst van computernetwerken werden telefoonnetwerken gebruikt om computers met elkaar te laten 94

102 communiceren. Deze communicatie ging in eerste instantie door middel van modems. Phreakers maakten zo langzamerhand de overstap van telefonienetwerken naar computernetwerken. Bij phreaking of soms ook wel boxing genoemd werd door de phreakers gepoogd om de beveiliging van de telefoonsystemen te doorbreken. Hierbij werd geprobeerd het signaal na te bootsen van het inwerpen van muntjes in een publieke telefoon. Dit was een signaal van 2600 hertz wat over de lijn werd gestuurd. De telefooncentrale dacht daardoor dat er betaald was voor het gesprek. Behalve het signaal dat aangaf of er wel of niet betaald was werden door de telefoonmaatschappijen ook servicecodes gebruikt door deze in de vorm van tonen over het netwerk te sturen. Voor phreakers was het de sport om deze servicecodes te achterhalen en zelf te gebruiken of misbruiken. De tools die gebruikt worden door phreakers zijn hardware en software om geluiden en signalen uit te zenden over de lijn. De hardware is ook bekend onder namen zoals red box, blue box en nog meer kleuren boxen. Een red box genereert tonen die het inwerpen van muntjes in de betaaltelefoon simuleert. Een blue box genereert tonen die long distance routing mogelijk maken Doel van een hack Het doel van een hack is het verkrijgen van toegang tot resources of juist het voorkomen van toegang tot resources. Bij het verkrijgen van toegang tot resources zijn afhankelijk van de beveiliging van de resources meer of minder rechten nodig. Een hacker zal meestal pogen om administrator- of rootrechten te verkrijgen. Afhankelijk van de bedoelingen van een hacker zal deze lees- of schrijfrechten willen hebben op de resources. Soms volstaat een hacker met het feit dat hij data kan lezen en dus ook kan kopiëren. Bij het aanbrengen van wijzigingen aan resources zal een hacker ook schrijfrechten willen hebben. Bij het voorkomen van toegang tot resources heeft de hacker de mogelijkheid om een vorm van denial-of-services uit te voeren. De meest vergaande vorm van een denial-of-service is de vorm waarbij de hacker in staan is om een resource uit te schakelen Hackingproces In het hackingproces kunnen we achtereenvolgens de volgende fasen onderscheiden: 1. Verkenning, ook wel footprinting genoemd 2. Scanning 3. Toegang verkrijgen 4. Toegang behouden 5. Sporen verbergen In het stadium van verkenningen is het doel om algemene bestaande informatie over het beoogde doelwit te verzamelen. Dit is meestal publieke informatie en is bedoeld om een goed beeld te krijgen van het aan te vallen doelwit. In de daarop volgende scanningfase wordt er doelgericht aanvullende informatie verzameld. Er kan een doelgerichte scan uitgevoerd worden. Door alle verkregen informatie naast elkaar te leggen kunnen hierin relaties vastgesteld worden. Het doelwit en zijn omgeving kan hiermee nauwkeurig in kaart gebracht worden. Nadat alle benodigde informatie is verzameld zal gepoogd worden om toegang te krijgen tot het doelwit of de denial-of-service te starten. Wanneer dat gelukt is zal afhankelijk van de bedoelingen van de hacker gepoogd worden om de toegang te behouden en sporen te verbergen. De verkregen toegang kan dan behouden worden voor later gebruik. Hiervoor is het ook noodzakelijk om niet te laten merken dat er ingebroken is. Tevens zal een hacker willen voorkomen dat hij als dader achterhaald kan worden Verkenningen Verkenningen omvatten het achterhalen van informatie over het doelwit. Hierbij gaat het veelal om openbare bronnen die gemakkelijk te raadplegen zijn. Denk hierbij aan informatie zoals die te vinden is in het telefoonboek, Kamer van Koophandel, Gouden Gids etc. Hier is informatie te vinden zoals namen, adressen, telefoonnummers, functies van personen en 95

103 dergelijke. Deze informatie kan gemakkelijk gebruikt worden bij social engineering. Vacatures van bedrijven voor IT-functies zijn ook interessant. De gevraagde kwalificaties geven een beeld van de infrastructuur die bij een bedrijf wordt gebruikt. Op internet is ook allerlei informatie te vinden over het beoogde doelwit. Vergeet hierbij vooral ook Usenet niet. Dit kan informatie zijn zoals die door het doelwit zelf op internet geplaatst is. Ook anderen kunnen informatie over het doelwit op internet geplaatst hebben. Een zoekmachine zoals Google is hiervoor een handig stuk gereedschap. Door de komst van peer-to-peer programma s en netwerken is de kans aanzienlijk dat ook doormiddel van deze bronnen interessante informatie kan worden gevonden. Op internet kunnen ook bronnen geraadpleegd worden waar informatie over doelwit te vinden is. Bijvoorbeeld de whois-gegevens kunnen opgevraagd worden. Deze informatie uit de whois-database laat zien wie een domeinnaam geregistreerd heeft. Contact en adresgegevens worden hierbij vermeld. Netcraft ( is een andere interessante dienst die op internet te vinden is. Bij deze dienst kun je vaak wel achterhalen welk type en versie webserver gebruikt wordt om een bepaalde website te hosten. Eventuele hostingproviders zijn zo ook te achterhalen. Er bestaat ook diverse tooling om fingerprinting uit te voeren. Met fingerprinting kun je aan de hand van diverse karakteristieken van een besturingssysteem of een applicatie achterhalen welk type of versie er gebruikt wordt. Met Netcraft kun je dit snel en eenvoudig online doen Scanning Na de fase van verkenningen hebben we al wat meer inzicht gekregen in het doelwit. In de scanningfase wordt het tijd om op grond van deze informatie gericht te gaan zoeken. Als we bijvoorbeeld een aantal servers van ons doelwit kunnen achterhalen die via internet te benaderen zijn kunnen we deze eens wat nauwkeuriger en doelgerichter onder de loep nemen. Het streven is om van deze servers te achterhalen welke diensten er op deze servers aanwezig zijn. Deze diensten worden aangeboden door middel van software. Door het achterhalen van de software en de bijbehorende versienummers is het mogelijk om bekende vulnerabilities ervan te benutten in de volgende stap van het hackingproces. Dit scanning proces kan uit de volgende stappen bestaan: Hosts bepalen Open poorten zoeken Services vaststellen Applicaties en versie ervan vaststellen Bij het vaststellen van de betrokken hosts zijn de hosts die in de nabijheid van het doelwit staan ook interessant. Deze kunnen als stepping stone gebruikt worden om toch toegang te krijgen de het beoogde doelwit. Zo kan bijvoorbeeld een webserver als doelwit via het internet niet te benaderen zijn maar via een DNS-server die in hetzelfde netwerksegment staat is de webserver wellicht wel te benaderen. Als de hacker toegang heeft tot de DNS-server en een webserver in hetzelfde netwerksegment staat toegang toe vanaf de DNS-server kan een hacker toegang krijgen tot de webserver via de DNS-server. Wellicht kan achterhaald worden in welke netwerkrange ons doelwit zich bevindt. In dat geval kan de gehele netwerkrange gescanned worden naar servers en diensten. Als ons doelwit beperkt is tot een bepaalde server gaan we die server scannen naar de services die daarop aanwezig zijn. Dit scannen kunnen we met verschillende protocollen uitvoeren. IP-scan Met een zogenaamde IP-sweep of IP-scan kunnen we systematisch een range van IPadressen scannen. Dit is geen poortscan maar door naar alle IP-adressen ICMP requests te sturen kan bepaald worden of er servers zijn die met een ICMP-reply antwoordt geven. Om deze scan niet al te veel te laten opvallen kunnen de IP-adressen die we bevragen random uitzoeken in de range. Ook het tijdstip tussen de requests moet random zijn. Hoe groter deze random tijdsinterval des te minder zal het opvallen dat er een scan uitgevoerd wordt. Een firewall kan het ICMP-netwerkverkeer blokkeren. Daarom is een dergelijke scan niet altijd effectief. Wanneer wel is achterhaald welke IP-adressen actief zijn kan voor deze IPadressen een poortscan uitgevoerd worden. Als alternatief kan een poortscan uitgevoerd 96

104 worden op alle IP-adressen. Hosts die via ICMP niet te benaderen zijn kunnen zo wel achterhaald worden. Met de resultaten van de poortscan gecombineerd met de eerder verkregen informatie kan bepaald worden wat interessante targets zijn. Poortscanning Een poortscan is een poging om een verbinding op te zetten met een applicatie die op een bepaalde poort luistert. We spreken van een open poort wanneer een applicatie op de betreffende poort luistert naar inkomend netwerkverkeer. In het geval van een gesloten poort is er op de betreffende poort geen applicatie die naar netwerkverkeer luistert of het netwerkverkeer wordt geblokkeerd door bijvoorbeeld een firewall. De meeste applicaties gebruiken een poort in de zogenaamde well known port reeks (poort 0 t/m 1023). Grootse kans op resultaat heeft het scannen tegen de well known ports. Dit kost ook de minste tijd want deze reeks is een stuk kleiner dan de reeks van alle mogelijke poorten. Om een poortscan onopvallend uit te voeren geldt ook hiervoor dat er random tijdsintervallen gebruikt worden. Hierbij kunnen random tijdintervallen gebruikt worden tussen de IP-adressen die gescand worden maar ook tussen de poorten die gescand worden. Hoe groter de random tijdsintervallen zijn des kleiner is de kans dat de poortscan gedetecteerd wordt. Het source IPadres waar vandaan gescand wordt valt zo minder op in het geheel aan logging. Een goede onopvallende poortscan kost hierdoor wel veel tijd. Naast de standaard poortscan zijn er verschillende manieren van stealth-scanning. Hiermee kan een poortscan minder opvallend uitgevoerd worden. Een stealth-poortscan wordt uitgevoerd door een reactie uit de lokken van applicatie die zich achter een poort bevindt. Bij de stealth-scan wordt de TCP-connectie niet volledig opgezet en zal daardoor niet of nauwelijks opvallen. In de volgend paragrafen zullen verschillende vormen van poortscanning aan de orde komen. TCP-connect() scan De standaard poortscan is de TCP-connect() scan. Hierbij wordt de connect()-system call gebruikt om de TCP-handshake op te zetten. Hierbij wordt de volledige threeway-handshake uitgevoerd. Verloopt het vraag en antwoord spel als volgt: SYN ACK-SYN ACK dan staat een poort open. Dus de client verstuurd een TCP-pakket waarbij de SYN-flag aan staat. De server stuurt een ACK-SYN terug waarna de client een ACK stuurt. Wordt als antwoord op het SYN-pakket een ACK-RST gestuurd dan is de poort gesloten. Als de poort open staat zal dit bij veel applicaties resulteren in informatie in de logbestanden. Bijvoorbeeld het IP-adres van de host die het SYN packet gestuurd heeft kan gelogd worden. Deze manier van portscannen is dus niet onopvallend maar is erg eenvoudig om uit te voeren en geeft goede resultaten. Het volgende plaatje geeft de TCP-connect() scan weer in het geval van een open en een gesloten poort. 97

105 SYN SYN/ACK OPEN aanvaller ACK doelwit SYN RST/ACK CLOSED aanvaller doelwit SYN-flag scanning De aanvaller verstuurt hierbij een SYN-pakket, het doelwit zal hierop een ACK-SYN-pakket sturen als de poort open staat. In plaats van dat de aanvaller de threeway-handshake volledig afmaakt stuurt hij nu een ACK-RST-pakket. Hiermee wordt gescand met zogenaamde half open connecties. Omdat de threeway-handshake niet volledig afgemaakt wordt is er geen volledig connectie opgezet en zal dit meestal ook niet gelogd worden door de applicatie. Een IDS of firewall zal deze vorm van scanning vaak wel opmerken. Het volgende plaatje geeft de SYN-flag scan weer bij zowel een open als een gesloten poort. 98

106 SYN SYN/ACK OPEN aanvaller RST doelwit SYN RST/ACK CLOSED aanvaller doelwit SYN-flag scanning Bij gebruik van stealthscanning wordt er een scan uitgevoerd waarbij de flags in het TCPpakket aangepast zijn. Hierbij worden vaak de volgende typen scans uitgevoerd: FIN-scan Hierbij is de FIN TCP-flag op de waarde 1 gezet in het verzonden TCP pakket. XMS-scan Hierbij zijn de FIN, URG en PSH flags op de waarde 1 gezet in het verzonden TCP pakket. NULL-scan Hierbij zijn alle flags in het verzonden TCP pakket op 0 gezet (flagless). Als de TCP/IP-stack van het doelwit compliant is met RFC793 is de reactie als volgt: open poort: DROP (dus geen reactie terug) gesloten poort: RST Dit is een minder betrouwbare manier van scannen. In het geval dat er geen respons terug komt kan het dus betekenen dat een poort openstaat, dat de server niet beschikbaar is of dat de server niet compliant is met RFC 793. Het volgende plaatje geeft de SYN-flag scan weer bij zowel een open als een gesloten poort. 99

107 TCP packet DROP geen reactie OPEN aanvaller doelwit TCP packet RST/ACK CLOSED aanvaller doelwit UDP-scanning Behalve een TCP-scan kunnen we ook een UDP-scan gebruiken. UDP is connectionless. Er kan dus niet met de handshake gespeeld worden zoals dat bij TCP gedaan kan worden. Bij TCP krijgen we middels de handshake een reactie van het doelwit. Bij UDP hoeven we geen reactie te krijgen omdat het protocol connectionless is. We kunnen dus ook niet nagaan of een UDP-pakket wel is aangekomen. Dit maakt een UDP-scan minder betrouwbaar. Als op het verzonden UDP-request een ICMP port unreachable antwoord terugkomt is de poort gesloten. Komt er geen reactie terug dan is de poort gesloten of blokkeert een firewall het betreffende netwerkverkeer. Het volgende plaatje geeft deze methode van scannen weer zowel bij een open als een gesloten poort. 100

108 UDP packet geen reactie OPEN aanvaller doelwit UDP packet ICMP type 3 code 3 CLOSED aanvaller doelwit Een goede poortscanner is de tool NMAP. Dit is een commandline poortscanning tool. Maar om het makkelijk te maken bestaan er ook grafische interfaces voor die de commandline tool aansturen. Fingerprinting Van de hosts waarvan het bestaan door middel van scanning is vastgesteld kan met OSfingerprinting het gebruikte besturingssysteem bepaald worden. Elk besturingssysteem heeft een eigen interpretatie van de IP gerelateerde standaarden. Deze verschillen in interpretatie worden gebruikt om het type en versie besturingssysteem te achterhalen. Deze informatie over het besturingssysteem kan gebruikt worden om te zoeken naar vulnerabilities op de host. Als duidelijk is welk besturingssysteem er draait kan ook al een voorselectie gemaakt worden in de services die er mogelijkerwijs kunnen draaien. Zo zal Microsoft Exchange logischerwijs niet draaien op een Unix server. Dus hoeven we ook niet te testen op vulnerabilities voor Exchange. OS-fingerprint kan onder andere uitgevoerd worden met NMAP. Bannerinfo Veel applicaties maken zichzelf bekend door middel van bannerinfo. Bij sommige applicaties is dit in de configuratie aan te passen. Bijvoorbeeld een Apache server die de bannerinfo van een IIS server terug geeft of andere weinig zeggende informatie. Bij open source software kan dit altijd nog aangepast worden via de source code. Een banner ziet er bijvoorbeeld als volgt uit: 220 mailserver.domein.local Microsoft ESMTP MAIL Service, Version: ready at Wed, 2 Oct :43: Door middel van de bannerinfo kan achterhaald worden welke applicaties gebruikt worden. De bekende vulnerabilities voor de gebruikte software kunnen we dan uitproberen. Wat ook kan is gebruik maken van een gespecialiseerde vulnerability scanner. Een vulnerability scanner zal geautomatiseerd systematisch één of meerdere hosts scannen op de aanwezigheid van vulnerabilities. 101

109 Toegang verkrijgen Naast het verkrijgen van toegang tot het doelwit moeten ook nog de juiste toegangsrechten worden verkregen. Welke toegangsrechten dit zijn is afhankelijk van het beoogde doel van de aanval. Meestal zal een hacker er naar streven om administrator- of rootrechten te verkrijgen. Met voldoende toegangsrechten kan een rootkit of een Trojan geïnstalleerd worden. Toegang kan verkregen worden door het gebruik van wachtwoorden. Wachtwoorden kunnen op de volgende manier worden verkregen: Simpelweg raden (guessing) van de wachtwoorden. Wachtwoorden vragen aan de gebruikers (social engineering) Brute force attack. Wachtwoorden kunnen soms geraden worden. Dit kan bijvoorbeeld door het gewoon te proberen. Deze trial-and-error methode kan ook uitgevoerd worden door systematisch alle mogelijke wachtwoorden te proberen. In dat geval spreken we dan van een brute force attack. Soms zijn er ook zwakheden in de wachtwoordopslag. De al dan niet versleutelde wachtwoorden kunnen verkregen worden uit de wachtwoordopslag. In geval van versleutelde wachtwoorden kan dan de niet-versleutelde variant van het wachtwoord herleid worden. Een brute force attack is het op systematische en geautomatiseerde wijze uitproberen van wachtwoorden. Een brute force attack kan op basis van woordenlijsten. Alle woorden in een woordenlijst worden geprobeerd als wachtwoord. Ook kunnen woorden gecreëerd worden door systematische alle mogelijke combinaties van letters, cijfers en leestekens te combineren. Bijvoorbeeld a, b, c tot z, vervolgens aa, ab, ac tot az en dan weer verder met ba, bb, bc enzovoort. Het gebruik van een woordenlijst en random karakters kan ook gecombineerd worden. Voor of achter een woord kunnen de random karakters geplaatst worden om zo het wachtwoord te vormen. Gebruikers maken vaak wachtwoorden door een combinatie te maken van een woord gevolgd door een volgnummer. Het wachtwoord aapje01 is met een dergelijke hybride attack redelijk snel terug te vinden. Een andere door gebruikers veel gebruikte methode om wachtwoorden te maken is het vervangen van letters door tekens die veel op de letter lijken. Bijvoorbeeld de letter l wordt dan vervangen door het cijfer 1 of de letter E wordt vervangen door het cijfer 3. Met dergelijke veelgebruikte standaard substituties kun je in een brute force attack rekening houden. Naast het raden van wachtwoorden kunnen we de wachtwoorden ook afluisteren. Dit kan door software of hardware keyloggers. Een hardware keylogger is een klein stukje hardware wat tussen het toetsenbord en de computer geplaatst kan worden. Deze hardware bevat een bepaalde hoeveelheid opslagcapaciteit en kan alle toetsaanslagen hierin bewaren. De ingetypte wachtwoorden zijn hierin dan ook terug te vinden. Een softwarematige keylogger werkt volgens hetzelfde principe maar vangt alle toetsaanslagen via de software op. Deze toetsaanslagen kunnen bewaard worden op de computer maar kunnen ook door de software verstuurd worden naar de aanvaller. Dergelijke software keyloggers worden vaak als Trojans uitgevoerd. Een andere methode om toegang te krijgen is door gebruik te maken van exploits. Exploits zijn methoden of software om van vulnerabilities misbruik te maken. Op internet is een heel scala aan exploits te vinden. Het meest schadelijk zijn de exploits voor vulnerabilities waartegen nog geen fix beschikbaar is en die gemakkelijk te vinden zijn. Vulnerability scanners moeten de zwakke plekken vinden waar de exploits gebruik van maken Toegang behouden Wanneer toegang is verkregen kan het voor de hacker de bedoeling zijn om later terug te komen. Als onderdeel van de totale hack moet dan de mogelijkheid worden ingebouwd om later opnieuw toegang te verkrijgen. Door middel van een backdoor wordt deze mogelijkheid gecreëerd. Als backdoor kan een account en wachtwoord aangemaakt worden waarmee later ingelogd kan worden. Een andere mogelijkheid is het installeren van een rootkit. 102

110 Sporen verbergen Om ontdekking van een aanval te verkleinen zullen er zo min mogelijk sporen achtergelaten moeten worden. Hiertoe kan logging gemanipuleerd worden met de volgende mogelijkheden: Logging uitschakelen. Dit kan nogal opvallen omdat er dan niets meer gelogd wordt. Loglevel aanpassen. Het niveau van logging wordt hier aangepast. Er wordt dan minder gelogd. Het loglevel moet dan zodanig aangepast worden dat verdachte entries niet meer gelogd worden. Logging aanpassen. Dit gaat nog een stap verder. Er worden dan bewust entries in de logging gewijzigd of versleuteld. Hierbij kunnen de logbestanden ook zodanig aangepast worden dat de hacker zich voordoet als iemand anders. Sporen kunnen ook worden verborgen door gebruik te maken van covert channels. Het doel van covert channels is het verborgen houden van communicatie. Hierbij wordt ten eerste de inhoud van de communicatie verborgen en tevens wordt verborgen dat er communicatie plaats vindt. Covert channels kunnen door interne gebruikers gebruikt worden om: Door middel van een policy en/of technische maatregelen verboden protocollen te omzeilen. Toegang naar niet toegestane systemen te krijgen. Down- en uploaden van niet toegestane data. Gebruik van covert channels door externe gebruikers (aanvallers): Communicatie tussen aanvallers onderling. Aanvaller naar doelwit ten behoeve van het hackingproces. Lezen en schrijven van gehackte data. Een vorm voor het opzetten van covert channels is encapsulatie. In een netwerk wordt hierbij een protocol in een ander protocol geplaatst. Ook kan een bericht verborgen worden in een ander bericht door middel van steganografie. In het volgende plaatje wordt een voorbeeld van encapsulatie van IP-pakketten weer. Hierbij wordt de header en payload van een pakket geplaatst in de payload van een ander pakket. Aanvankelijk zou het bovenste pakket getransporteerd worden. Na encapsulatie wordt het onderste pakket getransporteerd. Het originele pakket wordt hierbij als data onderdeel verstuurd. Bij het beginpunt van het transport wordt het oorspronkelijke pakket in het onderste geplaatst bij het eindpunt wordt deze er weer uitgehaald. Op deze wijze kan een tunnel gecreëerd worden. De figuur laat een IP-pakket zien wat in een ander IP-pakket gaat. Dit kan ook een pakket van een ander protocol zijn. Steganografie is het verbergen van berichten in een bestand. Dit kan bijvoorbeeld een tekst bestand zijn. Bijvoorbeeld een spambericht. Meestal worden grafische bestanden gebruikt om 103

111 andere bestanden in te verbergen. Zowel de verzender als de ontvanger moeten de encoding methode kennen om het bestand in een bestand te plaatsen en er weer uit te halen Toegang voorkomen In plaats van het verkrijgen van toegang tot computersystemen kunnen we ook de toegang voorkomen. Dit kan door een denial-of-service (DoS) of een gevorderde variant daarvan namelijk de distributed denial-of-service (DDoS). Bij een denial-of-service kan een aanvaller via één bron zoveel requests naar het doelwit sturen waardoor een correcte werking van een service niet meer mogelijk is. Hierbij zal een aanvaller vaak spoofing toepassen om te voorkomen dat zijn identiteit achterhaald kan worden. Om het beoogde resultaat te bereiken zal de aanvaller over meer resources moeten beschikken dan de ontvanger. Het principe van een denial-of-service gaat uit van het overschrijden van de maximale capaciteit van (een component van) een service of het overschrijden van de maximale capaciteit van de bandbreedte. Als een service bestaat uit een keten van meerdere onderdelen hoeft er maar één onderdeel uitgeschakeld te worden om de service niet of niet meer juist te laten werken. Bij een distributed denial-of-service werkt de aanvaller niet meer vanaf één bron maar heeft meerdere bronnen tot zijn beschikking. De aanvaller bestuurt al deze bronnen. Deze bronnen voeren op hun beurt elk de denial-of-service uit op het doelwit. De verschillende vormen van een denial-of-service hebben de volgende karakteristieken. DoS DoS = denial-of-service. Eén aanvaller. Doelwit overspoelen met aanvragen. Effect is vaak beperkt door bandbreedte van de aanvaller. DDoS DDoS = distributed denial-of-service. Aanvaller heeft controle over slaves / zombies (botnet). Aanvaller bepaald tijdstip, doelwit en methode. Aanvaller geeft slaves of zombies opdracht tot aanval. Slaves kunnen in een hiërarchische structuur opgenomen zijn. Master/slave configuratie. DRDoS DRDoS = distributed denial-of-service with reflectors. Reflectors zijn niet geïnfecteerd. Het principe van een DRDoS is weergegeven in de volgende figuur. 104

112 Een aanvaller verstuurt net zoals bij een DDoS de opdracht tot aanvallen naar de slaves. De slaves gebruiken op hun beurt reflectors om de aanval op het doelwit uit te voeren. De slaves versturen aanvragen naar de reflectors met als bron-ip-adres het adres van het doelwit. Als antwoord op dit request zullen de reflectors antwoorden naar het doelwit. Het doelwit krijgt dus vele antwoorden te verwerken van aanvragen die het doelwit nooit heeft gedaan. Op deze wijze raken de resources van het doelwit uitgeput. Een voorbeeld van een DoS is een SYN-flood. Hierbij worden veel TCP-SYN-pakketten verstuurd naar het doelwit. Door het sturen van de SYN-pakketten wordt de TCP-handshake wel gestart maar wordt niet afgemaakt. De server stuurt als reactie op het SYN-pakket een SYN/ACK en blijft vervolgens wachten op een ACK-pakket. Dit heeft tot gevolg dat de TCPbuffers op het doelwit vol lopen met halve opgezette TCP-connecties. Hierdoor blijven er dan te weinig resources over om nieuwe sessies te starten Ethical hack Een ethical hack is het door de ogen van een hacker kijken naar ICT-systemen. Hiermee kan de beveiliging ervan getest worden voordat een hacker zijn slag kan slaan. Zo kan mogelijke toekomstige schade voorkomen worden en zijn zwakke plekken inzichtelijk. Na het testen van de security van de systemen wordt het resultaat ervan teruggekoppeld naar de eigenaar van het systeem. Het is vervolgens aan de eigenaar om passende maatregelen te namen. Een andere reden waarom een ethical hack kan worden uitgevoerd is het aan anderen aantonen of de beveiliging wel of niet in orde is. Zo kan bijvoorbeeld aan het management aangetoond worden dat de beveiliging in orde is of dat de beveiliging niet in orde is en er dus extra resources nodig zijn. Het uitvoeren van een ethical hack kan met of zonder kennisgeving aan de IT afdeling gebeuren. Als de IT-afdeling niet op de hoogte gesteld dan kan bekeken worden hoe ze reageren op een aanval en of ze in staat zijn om een aanval ontdekken. Zo kan de respons van de organisatie getest worden. Er zijn verschillende soorten ethical hacks die bekend zijn onder namen zoals white, black of grey box. Black box De hacker heeft van tevoren geen informatie over de omgeving en moet alles zelf uitzoeken. Als het ware tasten in het duister. Hiermee wordt het gedrag van een hacker gesimuleerd. Deze heeft tenslotte ook geen voorkennis van de omgeving. Het kan dus gebeuren dat een deel van de omgeving tijdens de scanningfase niet wordt opgemerkt. In het verdere proces wordt het gemiste onderdeel niet getest terwijl het wel vulnerabilities zou kunnen bevatten. Bij de black box kan de aanvalsstrategie dus minder optimaal zijn maar de zichtbaarheid van componenten wordt hierbij wel getest White box Een white box hack wordt soms ook wel crystal box genoemd. In deze situatie is de hacker bekend met het netwerk en de organisatie. De hacker weet dus welke systemen er aanwezig zijn en dus getest moeten worden. Systemen die bij een eerste scan niet gevonden zijn zouden niet verder getest worden. Dit zou een onvolledig testbeeld geven. Doordat een hacker wel van het bestaan weet kunnen deze systemen toch nader onderzocht worden. Bij deze vorm van ethical hacking kunnen reviews van policies, werkwijzen en interviews onderdeel zijn van de test. Grey box Grey box is een tussenvorm tussen white en black box. Deze vorm vormt vaak een compromis in verband met de kosten. In deze situatie heeft een hacker beperkte kennis van de computersystemen en de organisatie. De kennis die hij tot zijn beschikking heeft gekregen is afhankelijk van de scope van de ethical hack. Een black box hack kost vaak meer tijd en resources dan een white box hack. Bij een white box hack kan een hacker de eerste stappen van het hacking proces overslaan. Deze 105

113 informatie heeft hij tenslotte al gekregen. Door slechts een deel van de informatie te geven kan een grey box hack uitgevoerd worden. Een ethical hack kan uitgevoerd worden alsof het aanval van is binnenuit of van buitenaf. Bij een aanval vanuit het interne netwerk wordt een medewerker of een ex-medewerker gesimuleerd die hacking activiteiten uitvoert. De medewerker heeft meestal al toegang tot het netwerk of een fysieke locatie. Vanuit deze positie kan de medewerker daarvan misbruik maken. Bij een aanval vanaf de buitenkant van het netwerk wordt de typische hacker gesimuleerd. Bij een ethical hack is het zeer belangrijk om heldere afspraken te maken tussen opdrachtgever en de uitvoerder van ethical hack. Bij een ethical hack worden immers met goede bedoelingen kwaadaardige acties uitgevoerd. Denk hierbij dus ook aan de vrijwaringverklaring die door de opdrachtgever dient te worden gegeven. De afspraken die gemaakt worden omvatten onder andere: Scope van de te onderzoeken systemen zoals IP-adres of -range, welke hosts of netwerken juist wel of juist niet onderzoeken. Acceptabele technieken en tooling; is een destructieve aanval of Denial of Service toegestaan? Tijdstip waarop de hack wordt uitgevoerd. Bron IP-adres waarvandaan de hack wordt uitgevoerd. Contactpersonen Maatregelen om vals alarm te voorkomen. Hoe moet omgegaan worden met verzamelde (vertrouwelijke) informatie. 106

114 15 Signalering Signalering omvat twee onderdelen namelijk auditing en security monitoring. Auditing betreft het detecteren van zwakke plekken in de beveiliging voordat een hacker ze vindt. Zowel een hacker als een beheerder zijn in deze vorm van signalering geïnteresseerd. Beiden hebben echter een verschillende doel. De hacker wil de zwakke plekken kennen om er misbruik van te maken. De beheerder wil de zwakke plekken weten om passende maatregelen te nemen om misbruik te voorkomen. Security monitoring omvat de detectie van het misbruik van zwakke plekken en overtredingen van de security policy Vulnerability scanning Bij security auditing wordt op zoek gegaan naar de zwakke plekken in de beveiliging. Deze zwakke plekken worden aangeduid als een vulnerability. Een proces om vulnerabilities te vinden is vulnerability scanning. De resultaten van het vulnerability scanningproces dienen als input voor het patchmanagement proces. Dit proces is er op gericht om de zwakke plekken te corrigeren. Een vulnerability is een zwak punt in de systeembeveiliging, procedures, ontwerp of implementatie waardoor bij een aanval schade kan optreden. Het begrip vulnerability moet breed genomen worden. Heel vaak worden als vulnerabilities zwakke plekken in software genoemd. Vulnerabilities zijn behalve zwakke plekken in software ook zaken zoals verkeerde configuratie, zwakke encryptie, design fouten, makkelijke wachtwoorden, zwakke fysieke beveiliging enzovoort. Een vulnerability kan benut worden tijdens een hack. Als gevolg van een vulnerability kunnen bijvoorbeeld ongewenste commando s uitgevoerd worden of ongeauthoriseerde toegang tot data worden verkregen. Ook kan de beschikbaarheid negatief worden beïnvloed. Een vulnerability kan per ongeluk of opzettelijk benut worden. Per ongeluk benutte vulnerabilities zijn vulnerabilities die onder bepaalde omstandigheden onopzettelijk uitgevoerd worden. Een gebruiker heeft bijvoorbeeld de rechten om een behaalde handeling uit te voeren terwijl de gebruiker deze rechten niet behoorde te hebben. Hierbij kan de gebruiker onopzettelijk de niet-toegestane handeling uitvoeren. Door middel van vulnerability scanning moeten deze rechten achterhaald worden. Vervolgens kunnen de rechten ontnomen worden zodat de gebruiker de niet-toegestane handeling niet kan uitvoeren. Bij een opzettelijk benutte vulnerability wordt er doelbewust misbruik gemaakt van een zwakke plek. Dit is typisch een activiteit die door een hacker wordt uitgevoerd. Vulnerabilities kunnen op verschillende manieren worden ingedeeld. Zo kan een vulnerability ingedeeld worden op grond van de soort toegang die nodig is om een vulnerability te kunnen benutten. Dit kan remote, lokale of fysieke toegang zijn. Een ander onderscheid is of degene die de vulnerability wil benutten wel of geen toegangsrechten nodig heeft. Een derde onderscheid is of de vulnerability actief of passief uitgevoerd kan worden. Als de vulnerability actief uitgevoerd kan worden is de gehele uitvoering ervan volledig onder controle van de hacker. Bij een passieve uitvoering is input van een derde persoon nodig. Bijvoorbeeld van een onwetende beheer of gebruiker. Een definitie van vulnerability scanning is de volgende: The process of proactively identifying vulnerabilities of computer systems in a network in order to determine if a system can be exploited with known flaws. De nadruk ligt bij het zoeken naar bekende zwakke plekken. Bij vulnerability scanning wordt doelgericht gezocht naar bekende afwijkingen. Hackers maken ook gebruik van vulnerability scanning. Alleen hebben hackers een ander doel met de vulnerabilities dan een beheerder. Het uitvoeren van een vulnerability scan kan dan op een aanval van een hacker lijken. Door het actief uit proberen van vulnerabilities door een vulnerability scanner kan een scan destructief zijn. Een ander gevolg hiervan is dat een scan dus veel sporen zoals logging kan achterlaten. 107

115 Vulnerability scanning zou periodiek uitgevoerd moeten worden. Regelmatig worden er nieuwe vulnerabilities bekend. Zodra deze bekend zijn en de vulnerability scanner geüpdate is kan er opnieuw gescand worden. Een andere reden om regelmatig te scannen is dat een infrastructuur aan wijzigingen onderhevig is. Elke wijziging kan potentieel een nieuwe vulnerability introduceren. Na elke wijziging zou dus een vulnerability scan uitgevoerd moeten worden. De gewenste resultaten van vulnerability scanning zijn als volgt samen te vatten. 100% terechte positieve meldingen 0% valse positieven 0% valse negatieven Een valse positief is een onterecht melding van een vulnerability. Van alle meldingen die door een vulnerability scanner worden gemeld zal moeten worden nagegaan of de melding terecht is. Als er veel valse positieve meldingen zijn betekent het dat dit veel werk is om dit uit te zoeken. Een valse negatief is een niet gemelde vulnerability. Deze is dus ook niet zichtbaar in de resultaten van de scan. Dit heeft tot gevolg dat er wel een vulnerability is maar dat er geen passende maatregelen tegen genomen kunnen worden. Bij een valse positieve is er nog tenminste een melding die onderzocht kan worden. Hierbij is ook meetbaar hoeveel positieve meldingen er zijn. Bij valse negatieven ligt dat veel moeilijker. De kwaliteit van een vulnerability scanner wordt dan ook bepaald door de betrouwbaarheid van de resultaten van een scan. De resultaten van een vulnerability scanner moeten niet zonder te controleren voor waar aangenomen worden. De juiste kennis is nodig om de resultaten te beoordelen. Valse positieve meldingen zullen er uit gefilterd moeten worden. Daarnaast zal gekeken moeten of er sprake is van valse negatieven. Verder is het van belang om bekend te zijn met mogelijkheden en nog belangrijker de onmogelijkheden van een vulnerability scanner. Het is belangrijk om te weten welke vulnerabilities en welke hosts worden gescand. In delen die niet gescand worden kunnen wel vulnerabilities aanwezig zijn. Van de resultaten van een vulnerability scanner zal beoordeeld moeten worden of de betreffende melding wel van toepassing is voor de betreffende omgeving. De aanwezigheid van een bepaalde service of configuratie kan bewust zo uitgevoerd zijn. Er kunnen twee typen vulnerability scanners worden onderscheiden: Networkbased vulnerability scanners Deze scannen vanaf een centrale host in het netwerk. Hierdoor hoeft er ook geen client software op de te scannen host geïnstalleerd te worden. Deze vorm van vulnerability scanning heeft typisch een groter bereik dan host based scanning. Hostbased vulnerability scanners Op de te scannen host wordt client software geïnstalleerd. Meestal zijn hiervoor ook meer rechten nodig op de te scannen hosts. De scan gebeurt op de host als het ware van binnen uit. Beveiligingsmaatregelen die een networkbased vulnerability scanner kunnen hinderen kunnen met een hostbased vulnerability scan omzeild worden. Hierdoor is deze scan vaak ook effectiever dan network based vulnerability scan. In de ontwikkeling van vulnerability scanners zijn een aantal generaties te herkennen. Eerste generatie vulnerability scanners De eerste vulnerability scanners waren eenvoudig uitgevoerd en functioneerden als een set hacker tools. Dit waren vaak zeer specifieke scanningtools die een beperkt spectrum aan vulnerabilities konden scannen. Hierdoor waren er weinig updates van de scanner nodig. Deze tools werden vaak gebruikt om één of enkele machines te scannen en de output is een eenvoudige rapportage. In de huidige netwerken is dergelijke tooling niet geschikt om breed ingezet te worden als vulnerability scanningsoftware. 108

116 Tweede generatie vulnerability scanners Deze scanners kennen een modulaire applicatiestructuur. Een scanengine is het onderdeel wat de feitelijke scan uitgevoerd. Als input hiervoor gebruikt deze een vulnerability database. Deze database bevat de kenmerken van de vulnerabilities waarop gescand wordt. Wanneer er nieuwe vulnerabilities zijn waarop de vulnerability scanner kan scannen kan de database uitgebreid worden met extra kennis van de vulnerabilities. De console is tenslotte het onderdeel wat gebruikt wordt voor de aansturing van de scanengine. Deze scanners worden soms aangevuld met onderdelen voor een knowledge base en rapportage. De knowledge base wordt vaak gecombineerd met de vulnerability database. Extra informatie die betrekking heeft op een vulnerability wordt vermeld. Een rapportage onderdeel verzorgt de rapportage van een vulnerability scan. Een model van een tweede generatie scanner kan er bijvoorbeeld als volgt uit zien: Console Scan targets Vulnerability database Scan engine Active scan Resultaat repository & rapportage Derde generatie vulnerability scanners De derde generatie vulnerability scanners hebben een gedistribueerde applicatie architectuur. Binnen een netwerk worden meerdere scanning agents geplaatst. Vanuit deze agents wordt de vulnerability scan uitgevoerd. Waar er bij de tweede generatie scanners maar één scanning engine actief is zijn dat er bij een derde generatie scanner meerdere. Deze scanning agents worden centraal beheerd. Het voordeel van de scanners is dat subnetten achter een firewall of een NAT-device probleemloos gescand kunnen worden zonder gehinderd te worden door de betreffende firewall of NAT-device. Elke scanning agent scant de voor hem afgebakende omgeving en stuurt alleen de resultaten door naar de centrale management console. Zo kan dan op een centraal punt een rapportage opgesteld worden. Een ander bijkomend voordeel van deze werkwijze is dat minder bandbreedte vereist is. Alleen de informatie voor de aansturing van de scanning agents en de gegenereerde rapportage wordt verstuurd tussen de scanning agent en de centrale repository. 109

117 Netwerkverkeer wat nodig is om de scan uit te voeren blijft binnen het afgebakende deel van de scanning agent. Een model van een derde generatie scanner ziet er bijvoorbeeld als volgt uit: Database server Centrale server Management console Zone A Versleutelde communicatie Versleutelde communicatie Zone B Local authority console A Remote screening agent B Local authority console Remote screening agent 15.2 Password auditing Door middel van password auditing kan gecontroleerd worden of wachtwoorden voldoen aan de door de policy gestelde eisen. Daarnaast kan password auditing gebruikt worden om de geschiktheid van de policy te toetsen. Als wachtwoorden gemakkelijk achterhaald kunnen worden terwijl de wachtwoorden wel voldoen aan de policy betekent dit dat de eisen in de policy te zwak zijn. De policy zal dan bijgesteld moeten worden. Wachtwoorden worden in een computersysteem meestal in versleutelde vorm opgeslagen. Als de wachtwoorden onversleuteld zijn opgeslagen is dit per definitie al een tekortkoming in de opslag van de wachtwoorden. De auditing op de wachtwoorden zelf kan dan gemakkelijk uitgevoerd worden omdat de wachtwoorden leesbaar zijn. Over het algemeen zal bij het uitvoeren van een password audit eerst de versleutelde wachtwoorden verkregen moeten worden. Vervolgens moeten de versleutelde wachtwoorden herleid worden tot de oorspronkelijke en dus leesbare wachtwoorden. Door middel van tekortkomingen in het encryptiemechanisme van de wachtwoorden kunnen soms de onversleutelde wachtwoorden gevonden worden. Meestal zal er echter een brute force attack uitgevoerd moeten worden. Hierbij worden systematisch alle mogelijke wachtwoorden getest. Er bestaan verschillende typen bruteforce attacks: Gebruik maken van woordenlijsten. Hierbij worden alle woorden die in een woordenlijst staan geprobeerd als wachtwoord. Random karakters Hierbij worden systematisch wachtwoorden gemaakt door alle mogelijke combinaties van letters, cijfers en leestekens te combineren. Hybride vorm 110

OSI model. Networking Fundamentals. Roland Sellis

OSI model. Networking Fundamentals. Roland Sellis OSI model Networking Fundamentals Roland Sellis OSI Open System Interconnections model Proces beschrijving Transport van van host naar host Het is een model! koning schrijver vertaler bemiddelaar midden

Nadere informatie

Inhoud. Packet Tracer x. Labs xi

Inhoud. Packet Tracer x. Labs xi v Inhoud Packet Tracer x Labs xi 1 Het netwerk verkennen 1 1.1 Netwerk-resources 1 1.1.1 Netwerken van verschillende grootten 1 1.1.2 Clients en servers 2 1.2 LAN s, WAN s en Internet 4 1.2.1 Netwerkcomponenten

Nadere informatie

Revisie geschiedenis. [XXTER & KNX via IP]

Revisie geschiedenis. [XXTER & KNX via IP] Revisie geschiedenis [XXTER & KNX via IP] Auteur: Freddy Van Geel Verbinding maken met xxter via internet met de KNX bus, voor programmeren of visualiseren en sturen. Gemakkelijk, maar niet zo eenvoudig!

Nadere informatie

Computernetwerken Deel 2

Computernetwerken Deel 2 Computernetwerken Deel 2 Beveiliging Firewall: toegang beperken IDS: inbraak detecteren en alarmeren Encryp>e: gegevens verbergen Firewall Waarom? Filteren van pakkeben Wildcard mask: omgekeerd subnetmasker

Nadere informatie

S u b n e t t e n. t h e t r u e s t o r y 1100 0000. 1010 1000. 0000 0001. 0000 0001 1111 1111. 1111 1111. 1111 1111. 0000 0000.

S u b n e t t e n. t h e t r u e s t o r y 1100 0000. 1010 1000. 0000 0001. 0000 0001 1111 1111. 1111 1111. 1111 1111. 0000 0000. S u b n e t t e n t h e t r u e s t o r y 1100 0000. 1010 1000. 0000 0001. 0000 0001 1111 1111. 1111 1111. 1111 1111. 0000 0000 Part 1 Inhoud Wat is een subnet?... 2 Waarom?... 3 Het begin.... 3 Een voorbeeld...

Nadere informatie

4IP = Internet Protocol 4Protocol gebruikt op netwerk laag in het internet 4Geen betrouwbaarheid

4IP = Internet Protocol 4Protocol gebruikt op netwerk laag in het internet 4Geen betrouwbaarheid Internet Protocol Telematica Quality Of Service (Netwerk laag) Hoofdstuk 5 4IP = Internet Protocol 4Protocol gebruikt op netwerk laag in het internet 4Geen betrouwbaarheid n Pakketten kunnen verloren raken

Nadere informatie

Inhoud Het netwerk verkennen 1 2 Confi gureren van het IOS 41

Inhoud Het netwerk verkennen 1 2 Confi gureren van het IOS 41 v Inhoud 1 Het netwerk verkennen 1 1.1 Netwerk-resources 1 1.1.1 Netwerken van verschillende grootten 1 1.1.2 Clients en servers 2 1.1.3 Peer-to-peer 3 1.2 LAN s, WAN s en Internet 4 1.2.1 Netwerkcomponenten

Nadere informatie

Beveiligingsbeleid Stichting Kennisnet

Beveiligingsbeleid Stichting Kennisnet Beveiligingsbeleid Stichting Kennisnet AAN VAN Jerry van de Leur (Security Officer) DATUM ONDERWERP Disclaimer: Kennisnet geeft geen enkele garantie, met betrekking tot de geschiktheid voor een specifiek

Nadere informatie

Computernetwerken! E-mail: SMTP Simple Mail Transfer Protocol, POP Post Ofice Procotol

Computernetwerken! E-mail: SMTP Simple Mail Transfer Protocol, POP Post Ofice Procotol Computernetwerken 1. Fundamentals Communicatie vereist regels, deze regels noemt met protocollen. Mensen kunnen met relatief losse regels (protocollen) communiceren, bij computers moet dit strikt vastliggen.

Nadere informatie

Hoofdstuk 15. Computernetwerken

Hoofdstuk 15. Computernetwerken Hoofdstuk 15 Computernetwerken 1 Figuur 15.1: Bustopologie. Figuur 15.2: Stertopologie. Figuur 15.3: Ringtopologie. Transport layer Network layer Datalink layer Physical layer OSI model 4 3 2 1 TCP IP

Nadere informatie

4Problemen met zakendoen op Internet

4Problemen met zakendoen op Internet Intranet Telematica Toepassingen Hoofdstuk 18 4gebruik Internet toepassingen voor netwerk binnen een organisatie 4In plaats van gespecialiseerde netwerkprogramma's 4Vooral WWW en e-mail 4WWW browser toegang

Nadere informatie

computernetwerken - antwoorden

computernetwerken - antwoorden 2015 computernetwerken - antwoorden F. Vonk versie 4 24-11-2015 inhoudsopgave datacommunicatie... - 2 - het TCP/IP model... - 3 - protocollen... - 4 - netwerkapparatuur... - 6 - Dit werk is gelicenseerd

Nadere informatie

Tweede deeltentamen Netwerken (INFONW) 29 juni 2009

Tweede deeltentamen Netwerken (INFONW) 29 juni 2009 Departement Informatica en Informatiekunde, Faculteit Bètawetenschappen, UU. In elektronische vorm beschikbaar gemaakt door de TBC van A Eskwadraat. Het college INFONW werd in 2008-2009 gegeven door drs.

Nadere informatie

Hoofdstuk 15. Computernetwerken

Hoofdstuk 15. Computernetwerken Hoofdstuk 15 Computernetwerken 1 Figuur 15.1 Bustopologie Figuur 15.2 Stertopologie Figuur 15.3 Ringtopologie isolatie kern afscherming Figuur 15.4 Coaxkabel Figuur 15.5 Tweeaderige UTP Coating Core Cladding

Nadere informatie

Communications and Networking: An Introduction

Communications and Networking: An Introduction Communications and Networking: An Introduction Hoofdstuk 7 Internet Application Layer Protocols 1. a) Op het moment van schrijven:.eu (Europese Unie). b) B.v.:.au (Australië),.at (Oostenrijk > Austria)

Nadere informatie

Michiel Snoep Remote Access / SSL. 14 april 2005 GvIB, De Kuip Rotterdam

Michiel Snoep Remote Access / SSL. 14 april 2005 GvIB, De Kuip Rotterdam Michiel Snoep Remote Access / SSL 14 april 2005 GvIB, De Kuip Rotterdam Inhoud Wie is Michiel Snoep? Wat is Remote Access? SSL: Secure Sockets Layer SSL VPN Oplossingen Aandachtspunten SSL VPN 18-Apr-05

Nadere informatie

Part 17-A INTERNET: basisbegrippen techniek & beveiliging

Part 17-A INTERNET: basisbegrippen techniek & beveiliging Part 17-A INTERNET: basisbegrippen techniek & beveiliging Fridoline van Binsbergen Stierum KPN AUDIT vrije Universiteit amsterdam 7 April 2003 File 17-A Internet techniek & beveiliging 2003 Programma PROGRAMMA

Nadere informatie

Datacommunicatie Computercommunicatie

Datacommunicatie Computercommunicatie Datacommunicatie Computercommunicatie ir. Patrick Colleman Inhoud Afkortingen Voorwoord 1 Hoofdstuk 1: Inleiding tot de lokale netwerken 1 1.1 Definitie en ontwerpdoelstellingen. 3 1.2 Voordelen van lokale

Nadere informatie

m.b.v. digitale certificaten en PKI Versie: mei 2002 Beknopte Dienstbeschrijving beveiligen van e-mail

m.b.v. digitale certificaten en PKI Versie: mei 2002 Beknopte Dienstbeschrijving beveiligen van e-mail Beknopte dienstbeschrijving Beveiligen van e-mail m.b.v. digitale certificaten en PKI Document: Versie: mei 2002 Beknopte Dienstbeschrijving beveiligen van e-mail Inhoudsopgave 1. Inleiding 2 2. Snel te

Nadere informatie

Remote Toegang Policy VICnet/SPITS

Remote Toegang Policy VICnet/SPITS Ministerie van Verkeer en Waterstaat opq Rijkswaterstaat Remote Toegang Policy VICnet/SPITS 16 Februari 2005 Eindverantwoordelijkheid Goedgekeurd Naam Datum Paraaf Security Manager SPITS E.A. van Buuren

Nadere informatie

Uitwerking 1 Netwerken, toets 3 (INFONW) 31 januari 2005

Uitwerking 1 Netwerken, toets 3 (INFONW) 31 januari 2005 Informatica Instituut, Faculteit Wiskunde en Informatica, UU. In elektronische vorm beschikbaar gemaakt door de TBC van A Eskwadraat. Het college INFONW werd in 2004/2005 gegeven door Piet van Oostrum.

Nadere informatie

Werken zonder zorgen met uw ICT bij u op locatie

Werken zonder zorgen met uw ICT bij u op locatie Werken zonder zorgen met uw ICT bij u op locatie Naast de mogelijkheden om uw programmatuur en gegevens bij Drie-O via Evy 2.0 in de cloud te hosten hebt u ook de mogelijkheid om uw ICT omgeving bij u

Nadere informatie

IPv6 @ NGN. Wageningen, 30 oktober 2008. Iljitsch van Beijnum

IPv6 @ NGN. Wageningen, 30 oktober 2008. Iljitsch van Beijnum IPv6 @ NGN Wageningen, 30 oktober 2008 Iljitsch van Beijnum Blok 3+4: Routering & adressering When is the tube empty? HD ratio: in hierarchical system never possible to use every single address: HD = log(addresses

Nadere informatie

4Passief: n Afluisteren. n Geen gegevens gewijzigd of vernietigd. n Via de routers van WAN. n Via draadloze verbindingen. 4Fysieke afsluiting

4Passief: n Afluisteren. n Geen gegevens gewijzigd of vernietigd. n Via de routers van WAN. n Via draadloze verbindingen. 4Fysieke afsluiting Telematica Hoofdstuk 20 4Passief: n Afluisteren Bedreigingen n Alleen gegevens (inclusief passwords) opgenomen n Geen gegevens gewijzigd of vernietigd n Op LAN kan elk station alle boodschappen ontvangen

Nadere informatie

m.b.v. digitale certificaten en PKI Versie: mei 2002 Beknopte Dienstbeschrijving beveiligen van VPN s

m.b.v. digitale certificaten en PKI Versie: mei 2002 Beknopte Dienstbeschrijving beveiligen van VPN s Beknopte dienstbeschrijving Beveiligen van VPN's m.b.v. digitale certificaten en PKI Document: Versie: mei 2002 Beknopte Dienstbeschrijving beveiligen van VPN s Inhoudsopgave 1. Inleiding 2 2. Snel te

Nadere informatie

HANDLEIDING SMTP DIENST BEDRIJVENWEB NEDERLAND B.V.

HANDLEIDING SMTP DIENST BEDRIJVENWEB NEDERLAND B.V. HANDLEIDING SMTP DIENST BEDRIJVENWEB NEDERLAND B.V. Uitgave : 1.0 KORTE OMSCHRIJVING In dit document wordt beschreven hoe u gebruik kunt maken van de SMTP dienst van Bedrijvenweb Nederland B.V. om e-mail

Nadere informatie

NAT (Network Address Translation)

NAT (Network Address Translation) Technical Note #019 Auteur: Olaf Suchorski Gemaakt op: 11 juli 2000 Bijgewerkt op: 11 juli 2000 NAT (Network Address Translation) In deze Technical Note worden de meest voorkomende situaties met NAT doorgelicht.

Nadere informatie

LAN segment. Virtual local area network. Twee LAN segmenten. Evolutie. een enkelvoudige hub of switch is een fysisch LAN segment (Ethernet segment)

LAN segment. Virtual local area network. Twee LAN segmenten. Evolutie. een enkelvoudige hub of switch is een fysisch LAN segment (Ethernet segment) LAN segment een enkelvoudige hub of is een fysisch LAN segment (Ethernet segment) Virtual local area network een VLAN is een verzameling computers in een LAN die met elkaar kunnen communiceren alsof ze

Nadere informatie

Basis communicatie netwerk

Basis communicatie netwerk Basis communicatie netwerk In het Hypotheken Data Netwerk communiceert een tussenpersoon direct met een maatschappij. De tussenpersoon gebruikt hiervoor het pakket HDN Basic. De maatschappij gebruikt het

Nadere informatie

Les D-02 Datacommunicatie op Ethernet en Wifi netwerken

Les D-02 Datacommunicatie op Ethernet en Wifi netwerken Les D-02 Datacommunicatie op Ethernet en Wifi netwerken In deze les staan we stil bij datacommunicatie op Ethernet netwerken en Wifi netwerken. 2.1 Wat is datacommunicatie? We spreken van datacommunicatie

Nadere informatie

1945, eerste DC. Eigen logo

1945, eerste DC. Eigen logo 1945, eerste DC Eigen logo Doelstelling: Binnen uw computer ruimte verzamelt u diverse informatie over bijvoorbeeld stroomverbruik van uw apparatuur. Via welk netwerk kunt u deze data verwerken. Welk

Nadere informatie

Installatierichtlijn routers, alarmering i.v.m. Pin verkeer

Installatierichtlijn routers, alarmering i.v.m. Pin verkeer Installatierichtlijn routers, alarmering i.v.m. Pin verkeer Inhoud 1. Inleiding 3 2. Beveiliging in combinatie met ander gebruik van de router 4 3. Configureren van de router 4 3.1. Gecertificeerd netwerk

Nadere informatie

Ontsluiten iprova via Internet Voorbeeld methoden

Ontsluiten iprova via Internet Voorbeeld methoden Ontsluiten iprova via Internet Voorbeeld methoden 12-12-2016 Inhoudsopgave 1 Inleiding... 3 2 Algemene aandachtspunten... 4 3 Voorbeeld methoden... 6 3.1 Ontsluiten via een (bestaande) telewerken oplossing

Nadere informatie

Firewallpolicy VICnet/SPITS

Firewallpolicy VICnet/SPITS Ministerie van Verkeer en Waterstaat opq Rijkswaterstaat Firewallpolicy VICnet/SPITS 16 Februari 2005 Eindverantwoordelijkheid Goedgekeurd Naam Datum Paraaf Security Manager SPITS E.A. van Buuren Geaccepteerd

Nadere informatie

Onderzoeksverslag Beveiliging

Onderzoeksverslag Beveiliging Onderzoeksverslag Beveiliging Project 3 TI1B - Mohamed, Ruben en Adam. Versie 1.0 / 29 maart 2016 Pagina 1 Inhoud 1. INLEIDING... 3 2. VEILIGHEID EISEN... 3 3. SOFTWARE... FOUT! BLADWIJZER NIET GEDEFINIEERD.

Nadere informatie

Zelftest Internet concepten en technieken

Zelftest Internet concepten en technieken Zelftest Internet concepten en technieken Document: n0832test.fm 25/01/2017 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTIE ZELFTEST INTERNET CONCEPTEN EN

Nadere informatie

IT Security in de industrie

IT Security in de industrie IT Security in de industrie Praktische ervaringen met cyber security in de Energiesector en Procesindustrie Henk Spelt Henk.Spelt@kema.com Experience you can trust. Onderwerpen Waarom is (cyber) security

Nadere informatie

IP & Filtering. philip@pub.telenet.be

IP & Filtering. philip@pub.telenet.be IP & Filtering philip@pub.telenet.be Inleiding Wie ben ik en waar hou ik me mee bezig? Un*x hacker, uitgesproken voorkeur voor BSD varianten Paranoide security freak Ervaring als systems en network administrator

Nadere informatie

Veilig e-mailen. Waarom e-mailen via een beveiligde verbinding? U vertrouwt de verbinding met de e-mailserver van InterNLnet niet

Veilig e-mailen. Waarom e-mailen via een beveiligde verbinding? U vertrouwt de verbinding met de e-mailserver van InterNLnet niet Veilig e-mailen E-mail heeft zich inmiddels ruimschoots bewezen als communicatiemiddel. Het is een snelle en goedkope manier om met anderen waar ook ter wereld te communiceren. Als gevolg hiervan vindt

Nadere informatie

Bij rekenvragen de berekening opschrijven. Bij beredeneringsvragen de motivering geven.

Bij rekenvragen de berekening opschrijven. Bij beredeneringsvragen de motivering geven. Open vragen (7 vragen): 60% van het cijfer. ij rekenvragen de berekening opschrijven. ij beredeneringsvragen de motivering geven. 1. Een browser vraagt een kleine HTML pagina op van een website. In de

Nadere informatie

Modem en Codec. Telematica. Amplitude-modulatie. Frequentie-modulatie. Soorten modems. Fase-modulatie

Modem en Codec. Telematica. Amplitude-modulatie. Frequentie-modulatie. Soorten modems. Fase-modulatie Modem en Codec Telematica Data Transmissie (Fysieke laag) Hoofdstuk 6 t/m 8 Een modem gebruikt analoge signalen om digitale signalen te versturen Een codec gebruikt digitale signalen om analoge signalen

Nadere informatie

MSSL Dienstbeschrijving

MSSL Dienstbeschrijving MSSL Dienstbeschrijving Versie : 1.0 Datum : 28 augustus 2007 Auteur : MH/ME Pagina 2 van 7 Inhoudsopgave Inhoudsopgave... Fout! Bladwijzer niet gedefinieerd. Introductie... 3 Divinet.nl Mssl... 3 Hoe

Nadere informatie

Infrastructuur Samengesteld door Leon Wetzel

Infrastructuur Samengesteld door Leon Wetzel Infrastructuur Samengesteld door Leon Wetzel Protocollen Protocol Netwerkprotocollen Een protocol is een stelsel afspraken waarin het formaat en de volgorde van de berichten wordt gedefinieerd die tussen

Nadere informatie

1. inleiding. Dit werk is gelicenseerd onder een Creative Commons Naamsvermelding NietCommercieel GelijkDelen 3.0 Unported licentie

1. inleiding. Dit werk is gelicenseerd onder een Creative Commons Naamsvermelding NietCommercieel GelijkDelen 3.0 Unported licentie 1. inleiding Misschien zonder het te beseffen, maak je dagelijks gebruik van computernetwerken. Of je nu WhatsApp gebruikt om je vrienden een bericht te sturen of Google Chrome om iets op te zoeken, je

Nadere informatie

Zelftest Internet concepten en technieken

Zelftest Internet concepten en technieken Zelftest Internet concepten en technieken Document: n0832test.fm 10/02/2010 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTIE ZELFTEST INTERNET CONCEPTEN EN

Nadere informatie

OSI-model. Mogelijke toepassingen van netwerken. Protocollen. Eenvoudig MS-DOS netwerk (LAN) Novell, IPX / SPX. Applicatie laag.

OSI-model. Mogelijke toepassingen van netwerken. Protocollen. Eenvoudig MS-DOS netwerk (LAN) Novell, IPX / SPX. Applicatie laag. 5.1 5.2 OSI-model Applicatie laag Presentatie laag Sessie laag Transport laag Netwerk afhankelijk Netwerk laag Datalink laag Fysieke laag 5.3 5.4 Mogelijke toepassingen van netwerken Protocollen Fileserver-systems

Nadere informatie

Dienstbeschrijving KPN IP-VPN. Een dienst in KPN ÉÉN

Dienstbeschrijving KPN IP-VPN. Een dienst in KPN ÉÉN Dienstbeschrijving KPN IP-VPN Een dienst in KPN ÉÉN Versie : v1.0 Datum : 1 januari 2018 Inhoud 1 Dit is KPN IP-VPN 3 2 KPN IP-VPN varianten 4 2.1 Kenmerken 4 3 KPN IP-VPN 5 3.1 Technisch 5 3.2 Redundancy

Nadere informatie

Project 4 - Centrale Bank. Rick van Vonderen TI1C

Project 4 - Centrale Bank. Rick van Vonderen TI1C Project 4 - Centrale Bank Rick van Vonderen 0945444 TI1C 23 mei 2018 Inhoudsopgave 1 Inleiding 2 2 Beheren 3 2.1 Git...................................................... 3 2.2 Risicolog...................................................

Nadere informatie

E-mail, SMTP, TLS & S/MIME

E-mail, SMTP, TLS & S/MIME E-mail, SMTP, TLS & S/MIME Inhoudsopgave Inhoudsopgave... 2 1. Inleiding... 3 1.1. E-mail via het internet... 3 2. E-mail transport... 4 2.1. Kwetsbaarheden van het e-mail transport via het internet...

Nadere informatie

Temperatuur logger synchronisatie

Temperatuur logger synchronisatie Temperatuur logger synchronisatie Juni 10, 2010 1 / 7 Temperatuur logger synchronisatie Introductie Twee of meerdere ontvangers van het Multilogger systeem kunnen met de temperature logger synchronisatie

Nadere informatie

Netwerken. 6 januari 2014 David N. Jansen

Netwerken. 6 januari 2014 David N. Jansen Netwerken 6 januari 2014 David N. Jansen Huiswerkopdracht 2 donderdag 9 januari al inleveren! Leerstof voor vandaag. Stallings hoofdst 17 www.williamstallings.com /OS/OS6e.html M17_STAL6329_06_SE_C17.QXD

Nadere informatie

Computerarchitectuur en netwerken. TCP congestion control Netwerklaag

Computerarchitectuur en netwerken. TCP congestion control Netwerklaag Computerarchitectuur en netwerken 10 TCP congestion control Netwerklaag Lennart Herlaar 6 oktober 2015 Inhoud Congestiebeheer TCP congestiebeheer Netwerk laag principes van de netwerklaag IP adressen IP

Nadere informatie

Met 32 ingangen potentiaal vrij Input 1 t/m Input 32

Met 32 ingangen potentiaal vrij Input 1 t/m Input 32 Webrelais IPIO-32I-M Met 32 ingangen potentiaal vrij Input 1 t/m Input 32 Algemene informatie Configuratie versie 8.0 DHCP/STATIC Wanneer u de 12V= en de Netwerkkabel heeft aangesloten zal het moduul een

Nadere informatie

SD-WAN, de nieuwe IT- Infrastructuur. Een functionele en technische uitleg waarom SD-WAN zo populair is.

SD-WAN, de nieuwe IT- Infrastructuur. Een functionele en technische uitleg waarom SD-WAN zo populair is. SD-WAN, de nieuwe IT- Infrastructuur Een functionele en technische uitleg waarom SD-WAN zo populair is. 01 Waarom SD-WAN Blz. 1 02 Uitleg SD-WAN Blz. 2 03 Functionaliteiten Blz. 3-4 04 Veilige toegang

Nadere informatie

Beheer van computersystemen Hardware, elektriciteit en analyse Cursus deel 2

Beheer van computersystemen Hardware, elektriciteit en analyse Cursus deel 2 Beheer van computersystemen Hardware, elektriciteit en analyse Cursus deel 2 HA-5515-02 Informaticabeheer Lut Boogaerts Marleen Decuyper Wim Saliën Koepelkrediet VVKSO 2010 Vlaams Verbond van het Katholiek

Nadere informatie

Vervolg: Uw Machines integreren in een bestaand netwerk?

Vervolg: Uw Machines integreren in een bestaand netwerk? Vervolg: Uw Machines integreren in een bestaand netwerk? Op 26 maart jl. heb ik tijdens het Industrial Ethernet Event in het Evoluon een presentatie mogen geven over hoe je op een veilige en efficiënte

Nadere informatie

VPN LAN-to-LAN IPSec. Vigor 1000, 2130 en 2750 serie

VPN LAN-to-LAN IPSec. Vigor 1000, 2130 en 2750 serie VPN LAN-to-LAN IPSec Vigor 1000, 2130 en 2750 serie VPN LAN-to-LAN IPSec De DrayTek producten beschikken over een geïntegreerde VPN server. Hierdoor kan een VPN tunnel gemaakt worden naar uw netwerk, zonder

Nadere informatie

IP/LAN dienst Aansluitpolicy VICnet/SPITS

IP/LAN dienst Aansluitpolicy VICnet/SPITS Ministerie van Verkeer en Waterstaat opq Rijkswaterstaat IP/LAN dienst Aansluitpolicy VICnet/SPITS 15 februari 2005 Eindverantwoordelijkheid Goedgekeurd Naam Datum Paraaf Security Manager SPITS E.A. van

Nadere informatie

VoIP Netwerking Configuratie Gids. Vox Davo VoIP Netwerking Configuratie Gids

VoIP Netwerking Configuratie Gids. Vox Davo VoIP Netwerking Configuratie Gids VoIP Netwerking Configuratie Gids Vox Davo VoIP Netwerking Configuratie Gids 1 VoIP Netwerking Configuratie gids Specificaties kunnen wijzigen zonder voorgaande. DM-983 NL Draft 2 VoIP Netwerking Configuratie

Nadere informatie

Technote. EnGenius Senao EOM Mesh Layer 2 configuratie Transparant netwerk

Technote. EnGenius Senao EOM Mesh Layer 2 configuratie Transparant netwerk Technote EnGenius / Senao EOM-8670 Mesh Layer 2 configuratie Transparant netwerk Merk Model Firmware Datum EnGenius Senao EOM-8670 2.1.10 09-04-2009 Pagina 1 van 29 Inhoudsopgave Inhoudsopgave...2 Node

Nadere informatie

Infosessie Systeembeheerders. 26 juni 2002. VPN aan de KULeuven

Infosessie Systeembeheerders. 26 juni 2002. VPN aan de KULeuven Infosessie Systeembeheerders VPN aan de KULeuven Doel (1) vertrouwelijke informatie ter beschikking stellen van 'KUL-vreemde' netwerken thuiswerkers mobiele gebruikers externe contracten kotnet constante

Nadere informatie

Basis Netwerkconfiguratie. Ing. Tijl Deneut Lector Toegepaste Informatica Howest Onderzoeker XiaK, UGent

Basis Netwerkconfiguratie. Ing. Tijl Deneut Lector Toegepaste Informatica Howest Onderzoeker XiaK, UGent Basis Netwerkconfiguratie Ing. Tijl Deneut Lector Toegepaste Informatica Howest Onderzoeker XiaK, UGent IPv6: andere grootorde Hét IPv4 probleem? -> 32bit getal! Max 2^32 = 4 miljard combinaties Alle IPv4

Nadere informatie

Webrelais IPIO-32R-M-v8.0 Compacte modul met 32 Relais Outputs.

Webrelais IPIO-32R-M-v8.0 Compacte modul met 32 Relais Outputs. Webrelais IPIO-32R-M-v8.0 Compacte modul met 32 Relais Outputs. Algemene informatie Configuratie versie 8.0 DHCP / STATIC Wanneer u de 12V= en de Netwerkkabel heeft aangesloten zal het moduul een IP-adres,

Nadere informatie

Inhoud. Dus u denkt dat internetbankieren veilig is? Informatiebeveiliging Cryptografie Internetbankieren. 26 september 2009 Harald Vranken

Inhoud. Dus u denkt dat internetbankieren veilig is? Informatiebeveiliging Cryptografie Internetbankieren. 26 september 2009 Harald Vranken Dus u denkt dat internetbankieren veilig is? 26 september 2009 Harald Vranken Inhoud Informatiebeveiliging 2 Informatiebeveiliging Introductie Informatie betekenisvolle gegevens waardevol (privacy, bedrijfsinformatie)

Nadere informatie

Veelgestelde vragen Corporate en Zakelijk Internet

Veelgestelde vragen Corporate en Zakelijk Internet Laatste wijziging op 28 februari 2017 Veelgestelde vragen Corporate en Zakelijk Internet In dit document geven wij antwoord op veelgestelde vragen over onze diensten Corporate Internet en Zakelijk Internet.

Nadere informatie

DIT DOCUMENT BEVAT: - ALLE VAN TOEPASSING ZIJNDE SERVICE LEVEL AGREEMENT (SLA) PER DIENST OF PRODUCT

DIT DOCUMENT BEVAT: - ALLE VAN TOEPASSING ZIJNDE SERVICE LEVEL AGREEMENT (SLA) PER DIENST OF PRODUCT DIT DOCUMENT BEVAT: - ALLE VAN TOEPASSING ZIJNDE SERVICE LEVEL AGREEMENT (SLA) PER DIENST OF PRODUCT Service Level Agreement (SLA) - BC Online Boekhouden Artikel 1. Definities Leverancier: BusinessCompleet.nl

Nadere informatie

Bekijken we nu het resultaat van een ipconfig /all op een IPv6 geconfigureerde Windows 7 box dan zien we toch een aantal merkwaardigheden.

Bekijken we nu het resultaat van een ipconfig /all op een IPv6 geconfigureerde Windows 7 box dan zien we toch een aantal merkwaardigheden. 1 Op de userdag van september 2009 heb ik in de sessie over netwerken een Intranet netwerkmodel uitgetekend dat gebaseerd is op de volgende concepten: (+) Alle clients verhuizen we buiten de perimeter.

Nadere informatie

Webrelais IPIO-4A8I-M

Webrelais IPIO-4A8I-M Webrelais IPIO-4A8I-M Met 4 analoge inputs 0-10V / 0-20mA Specificatie 4 analoge Inputs 0-10V / 0-20mA 8 Opto input 0-12V of potentiaalvrij maakkontakt. (geen 230V input) (kan gebruikt worden voor oa Manuaal

Nadere informatie

In de General Setup kunt u het IP-adres aanpassen. Standaard staat het IP-adres op 192.168.1.1 zoals u ziet in onderstaande afbeelding.

In de General Setup kunt u het IP-adres aanpassen. Standaard staat het IP-adres op 192.168.1.1 zoals u ziet in onderstaande afbeelding. LAN LAN Setup In deze handleiding kunt u informatie vinden over alle mogelijke LAN instellingen van de DrayTek Vigor 2130 en 2750. Hierin zullen wij alle algemene instellingen bespreken die van toepassing

Nadere informatie

Beveiliging in Industriële netwerken. Waarom monitoring een goed idee is

Beveiliging in Industriële netwerken. Waarom monitoring een goed idee is Beveiliging in Industriële netwerken Waarom monitoring een goed idee is Korte introductie / voorstellen: - Sinds 1951, Benelux - Monitoring, groeit naar security - ICT omgevingen, groeit naar Industrie

Nadere informatie

Basis communicatie netwerk

Basis communicatie netwerk Basis communicatie netwerk In het Hypotheken Data Netwerk communiceert een tussenpersoon direct met een maatschappij. De tussenpersoon gebruikt hiervoor het pakket HDN Client. De maatschappij gebruikt

Nadere informatie

Communicatienetwerken

Communicatienetwerken Communicatienetwerken Oefeningen 4 : ALGEMEEN (niet voor MTI) Woensdag 2 december 2009 1 VRAAG 1 : MAC/IP adressen toekennen 2 VRAAG 1 : MAC/IP adressen toekennen Scenario Link 1 Link 2 Link 3 Link 4 Link

Nadere informatie

Computerarchitectuur en netwerken. Multicast protocollen Datalinklaag/LANs

Computerarchitectuur en netwerken. Multicast protocollen Datalinklaag/LANs Computerarchitectuur en netwerken 12 Multicast protocollen Datalinklaag/LANs Lennart Herlaar 24 oktober 2017 Inhoud Netwerklaag broadcast multicast Datalink laag foutdetectie en -correctie multiple access

Nadere informatie

VPN LAN-to-LAN PPTP. Vigor 1000, 2130 en 2750 serie

VPN LAN-to-LAN PPTP. Vigor 1000, 2130 en 2750 serie VPN LAN-to-LAN PPTP Vigor 1000, 2130 en 2750 serie VPN LAN-to-LAN PPTP De DrayTek producten beschikken over een geïntegreerde VPN server. Hierdoor kan een VPN tunnel gemaakt worden naar uw netwerk, zonder

Nadere informatie

Presentatie TCP/IP voor LPCB Nederland 20 en 28 juni 2011

Presentatie TCP/IP voor LPCB Nederland 20 en 28 juni 2011 Van Dusseldorp Training Presentatie TCP/IP voor LPCB Nederland 20 en 28 juni 2011 Van Dusseldorp Training Programma 1. Activiteiten Van Dusseldorp Training 2. Alarmcommunicatie algemeen 3. LAN-WAN 4. Toegangsnetwerken

Nadere informatie

Met de functie 'Bind IP to MAC' heeft u meer controle over het gebruik en vastleggen van LAN IPadressen die in het netwerk worden gebruikt.

Met de functie 'Bind IP to MAC' heeft u meer controle over het gebruik en vastleggen van LAN IPadressen die in het netwerk worden gebruikt. Bind IP to MAC Bind IP to MAC Met de functie 'Bind IP to MAC' heeft u meer controle over het gebruik en vastleggen van LAN IPadressen die in het netwerk worden gebruikt. Wanneer de PC automatisch een IP

Nadere informatie

BEVEILIGINGSARCHITECTUUR

BEVEILIGINGSARCHITECTUUR BEVEILIGINGSARCHITECTUUR Risico s onder controle Versie 1.0 Door: drs. Ir. Maikel J. Mardjan MBM - Architect 2011 cc Organisatieontwerp.nl AGENDA Is een beveiligingsarchitectuur wel nodig? Oorzaken beveiligingsincidenten

Nadere informatie

Computerarchitectuur en netwerken. TCP congestion control Netwerklaag

Computerarchitectuur en netwerken. TCP congestion control Netwerklaag Computerarchitectuur en netwerken 10 TCP congestion control Netwerklaag Lennart Herlaar 10 oktober 2018 Inhoud Congestiebeheer TCP congestiebeheer Netwerk laag principes van de netwerklaag IP adressen

Nadere informatie

Wat basiskennis... IPv4, is het einde nabij? Applicatie. Sessie. Fysiek

Wat basiskennis... IPv4, is het einde nabij? Applicatie. Sessie. Fysiek Wat basiskennis... TCP/IP model Applicatie Transport Internet Fysiek OSI model Applicatie Presentatie Sessie Transport Netwerk Data Link Fysiek MAC (bv: 90:fb:a6:ae:b3:5a) IPv4 (bv: 127.0.0.1) (R)ARP TCP,

Nadere informatie

Op dit lesmateriaal is een Creative Commons licentie van toepassing Remie Woudt

Op dit lesmateriaal is een Creative Commons licentie van toepassing Remie Woudt Informatica 5 1 Op dit lesmateriaal is een Creative Commons licentie van toepassing. 2014 Remie Woudt remie.woudt@gmail.com Voorblad: Boom getekend met de programmeertaal LOGO, gebruik makend van recursie.

Nadere informatie

Configureren van de Wireless Breedband Router.

Configureren van de Wireless Breedband Router. Configureren van de Wireless Breedband Router. 1.1 Opstarten en Inloggen Activeer uw browser en de-activeer de proxy of voeg het IP-adres van dit product toe aan de uitzonderingen. Voer vervolgens het

Nadere informatie

goes Secure Siemens Groep in Nederland Sander Rotmensen tel: 070-3333555 Sander.rotmensen@siemens.com

goes Secure Siemens Groep in Nederland Sander Rotmensen tel: 070-3333555 Sander.rotmensen@siemens.com goes Secure Sander Rotmensen tel: 070-3333555 Sander.rotmensen@siemens.com Onbeveiligde hardware oplossing = Ping Security hardware oplossing 602, 612, 613 en de Softnet Security Client Beveiligde hardware

Nadere informatie

QoS / Quality Of Service

QoS / Quality Of Service Quality of Service QoS / Quality Of Service De QoS-functie zorgt ervoor dat datastromen, zowel inkomend als uitgaand, met een bepaalde prioriteit worden behandeld. Er kan bijvoorbeeld per poort of per

Nadere informatie

Transport Layer Security. Presentatie Security Tom Rijnbeek

Transport Layer Security. Presentatie Security Tom Rijnbeek Transport Layer Security Presentatie Security Tom Rijnbeek World Wide Web Eerste webpagina: 30 april 1993 Tegenwoordig: E-mail Internetbankieren Overheidszaken (DigiD) World Wide Web Probleem: World Wide

Nadere informatie

2 Het ISO-OSI-model en het

2 Het ISO-OSI-model en het 2 Het ISO-OSI-model en het TCP/IP-protocol in hoofdlijnen In dit hoofdstuk worden twee fundamentele netwerkbegrippen geïntroduceerd, die nodig zijn om firewalls te begrijpen. Eerst wordt het isoosi-model

Nadere informatie

E-Fax. Gebruikers handleiding

E-Fax. Gebruikers handleiding E-Fax Gebruikers handleiding Inhoud 1. Inleiding... 3 2. Fax-over-IP (T.38)... 4 2.1 Introductie... 4 2.2 Achterliggende techniek... 4 2.3 Procedures... 5 2.4 Installatie en benodigdheden... 5 2.5 Tarieven...

Nadere informatie

Beknopte dienstbeschrijving beveiligen van Webapplicaties m.b.v. digitale certificaten en PKI

Beknopte dienstbeschrijving beveiligen van Webapplicaties m.b.v. digitale certificaten en PKI Beknopte dienstbeschrijving beveiligen van Webapplicaties m.b.v. digitale certificaten en PKI Document: Beknopte dienstbeschrijving beveiligen van Webapplicaties Versie: maart 2002 mei 2002 Beknopte dienstbeschrijving

Nadere informatie

Met de functie 'Bind IP to MAC' heeft u meer controle over het gebruik van LAN IP-adressen die in het netwerk worden gebruikt.

Met de functie 'Bind IP to MAC' heeft u meer controle over het gebruik van LAN IP-adressen die in het netwerk worden gebruikt. Bind IP to MAC Met de functie 'Bind IP to MAC' heeft u meer controle over het gebruik van LAN IP-adressen die in het netwerk worden gebruikt. Het is lastig om in de router functies toe te passen op IP

Nadere informatie

VPN Remote Dial In User. DrayTek Smart VPN Client

VPN Remote Dial In User. DrayTek Smart VPN Client VPN Remote Dial In User DrayTek Smart VPN Client VPN Remote Dial In Met een Virtual Private Network (VPN) is het mogelijk om door middel van een beveiligde (geautoriseerd en/of versleuteld) verbinding

Nadere informatie

e-token Authenticatie

e-token Authenticatie e-token Authenticatie Bescherm uw netwerk met de Aladdin e-token authenticatie oplossingen Aladdin is een marktleider op het gebied van sterke authenticatie en identiteit management. De behoefte aan het

Nadere informatie

DMZ Policy. Eindverantwoordelijkheid Goedgekeurd. 16 Februari 2005. Geaccepteerd Manager SPITS. Security Manager SPITS E.A. van Buuren.

DMZ Policy. Eindverantwoordelijkheid Goedgekeurd. 16 Februari 2005. Geaccepteerd Manager SPITS. Security Manager SPITS E.A. van Buuren. Ministerie van Verkeer en Waterstaat opq Rijkswaterstaat DMZ Policy 16 Februari 2005 Eindverantwoordelijkheid Goedgekeurd Naam Datum Paraaf Security Manager SPITS E.A. van Buuren Geaccepteerd Manager SPITS

Nadere informatie

Dienstbeschrijving mshield. Een dienst in KPN ÉÉN

Dienstbeschrijving mshield. Een dienst in KPN ÉÉN Dienstbeschrijving mshield Een dienst in KPN ÉÉN Versie : v1.0 Datum : 1 januari 2018 Inhoud 1 Dit is mshield 3 1.1 mshield varianten 3 2 Levels en technische kenmerken 4 2.1 mshield Levels 4 2.2 Technische

Nadere informatie

Beveiligen van PDF documenten (deel 3)

Beveiligen van PDF documenten (deel 3) Beveiligen van PDF documenten (deel 3) Colin van Oosterhout Business development manager Acrobat Adobe Systems Benelux Redactie en documenten onderzoeken Nieuw in Acrobat 8 professional Redaction Blijvend

Nadere informatie

b-logicx handleiding INHOUDSOPGAVE VPN verbinding voor Windows XP UG_VPN.pdf

b-logicx handleiding INHOUDSOPGAVE VPN verbinding voor Windows XP UG_VPN.pdf VPN verbinding voor Windows XP INHOUDSOPGAVE 1. Inleiding 2 2. Wat is de bedoeling? 3 2.1 Waarom een VPN verbinding 3 2.2 Wat is zeker niet de bedoeling? 3 2.3 Wat heb je nodig? 3 3. Instellen van de VPN

Nadere informatie

Werken op afstand via internet

Werken op afstand via internet HOOFDSTUK 12 Werken op afstand via internet In dit hoofdstuk wordt uitgelegd wat er nodig is om op afstand met de ROS artikel database te kunnen werken. Alle benodigde programma s kunnen worden gedownload

Nadere informatie

Security: Laat je inspireren en neem actie! 1. Brecht Schamp Network & Security Specialist Phoenix Contact

Security: Laat je inspireren en neem actie! 1. Brecht Schamp Network & Security Specialist Phoenix Contact 1 Security: Laat je inspireren en neem actie! Brecht Schamp Network & Security Specialist Phoenix Contact 2 Security Auditor tijdens Blackhat 2006 Source: David Maynor & Robert Graham, Internet Security

Nadere informatie