Datastromen geregistreerd
Dit hoofdstuk behandelt de twee meest gebruikte toepassingen van het Internet, namelijk het World Wide Web (WWW) en e-mail. Twee toepassingen die de laatste jaren sterk in opkomst zijn als communicatiemiddel. Ze zijn snel, goedkoop, handig en vrij gemakkelijk in het gebruik. Helaas zijn er naast deze voordelen ook nadelen aan verbonden, met name op het gebied van de veiligheid. Naast het beschrijven van deze gevaren, zal er ook de nodige aandacht besteed worden aan de beveiliging.
WWW
Het World Wide Web (WWW) is een van de populairste stukken van het Internet. Wanneer iemand een pagina op het WWW wil bekijken, surft hij vanaf zijn eigen computer naar die pagina toe. Dit surfen betekent dat hij een zogenaamd webrequest (verzoek om een bepaalde Internetpagina) verstuurt naar de computer waar de pagina op staat. Dit webrequest bevat een verwijzing naar de pagina. De computer waaraan dit request is gericht geeft de gevraagde pagina aan de computer van de geïnteresseerde. Dat gebeurt via allerlei commando’s van het HyperText Transfer Protocol (HTTP): het protocol dat computers gebruiken om met elkaar te praten over het WWW. De browser (een programma dat je nodig hebt om over het WWW te surfen, bijvoorbeeld Netscape of Internet Explorer) kan in HTTP allemaal headers meegeven met gegevens over computer, operatingsystem en dergelijke. Headers zijn gegevens die voorafgaan aan het eigenlijke bericht (bijvoorbeeld “ik ben Netscape versie 4.05, draai onder Windows 95 en mijn monitor heeft een resolutie van 800×600”). Dan geeft de machine waar de pagina op staat eerst het een en ander aan informatie terug zoals de grootte van het bestand, en of het tekst of plaatjes bevat. De pagina en de programmatuur van de gebruiker worden zo beter op elkaar afgestemd.
Om het WWW sneller te maken worden er door Internet-ServiceProviders (ISP’s, dit zijn de organisaties die toegang geven tot het Internet) zogenaamde proxies neergezet. Proxy-machines zijn computers die opgevraagde pagina’s op hun eigen harde schijf zetten en deze enige tijd bewaren. Wanneer een andere gebruiker dezelfde pagina daarna opvraagt, haalt de provider deze vervolgens van de proxy om sneller te kunnen functioneren. De proxy-machine kijkt op de originele lokatie van de pagina aan de hand van de datering of een pagina nog veranderd is en beslist vervolgens of hij hem opnieuw moet ophalen of niet. Moderne proxies gaan er echter van uit dat er een aantal minuten niets verandert, tenzij er met de pagina een code is meegegeven dat de pagina na een bepaalde tijd niet meer bruikbaar is.
Een browser heeft zelf ook een ingebouwde cache. Dat is ruimte op de harde schijf waar door de browser opgevraagde pagina’s worden opgeslagen. Wanneer deze pagina korte tijd later nogmaals bekeken wordt hoeft de browser hem niet meer op te halen maar pikt hij hem van de harde schijf. Wanneer je zeker wilt weten dat je de laatste versie van een pagina krijgt, kan je óf je cache en proxies uitzetten óf op je browser de combinatie shift-reload gebruiken. Dan haalt het programma de pagina direct op van de oorspronkelijke lokatie.
De modernste proxy is de inline-proxy. Deze machine onderschept elk webrequest om het toch via de proxy te laten lopen. Ook al zijn de proxies uitgezet in de browser.
Een voorbeeld van de nadelen van proxies geeft het Electronic Disturbance Theatre. Deze elektronische actiegroep had een programma geschreven dat in hoog tempo steeds de pagina’s van de Mexicaanse regering ophaalde, in een poging de server van de regering stil te leggen. Ze waren echter vergeten dat deze pagina’s het grootste deel van de tijd uit hun eigen cache of de proxy van hun provider werden opgehaald, waardoor de Mexicaanse overheid weinig tot niets van hun actie heeft gemerkt. Alleen de proxy-server van hun eigen provider raakte overbelast.
Een ander nadeel van proxies is dat de bezoekersaantallen van een pagina niet meer goed kunnen worden geteld.
De veiligheidsproblemen van het WWW
Java en Javascript zijn extra computertalen die in moderne browsers zitten ingebakken. Java is een extra reeks commando’s die strikt binnen de browser functioneert, Javascript maakt het mogelijk dat echte onafhankelijke programmaatjes buiten de browser worden opgestart. Deze programmaatjes gaan lopen op de computer zelf, maar blijven in een afgeschermde ruimte om te voorkomen dat er dingen op de computer gebeuren die niet de bedoeling zijn.
Dat is de theorie. In de praktijk komt het echter nog al eens voor dat er fouten in de mogelijkheden van Javascript worden ontdekt, waardoor er programmaatjes geschreven kunnen worden, die zich wel buiten deze “zandbak” weten te wurmen.
De bekende browsers reageren hier altijd heel snel op met het uitbrengen van een nieuwe versie van hun programmatuur, waarin dit lek is gedicht. Het is dus aan te raden altijd de meest recente versie van een programma te installeren.
De standaardmogelijkheden van Java laten echter genoeg privacy-schending toe. Iedereen kan bijvoorbeeld de recente browse-geschiedenis van een bezoeker van een homepage opvragen.
Daarnaast zijn Java en Javascript zo veilig als bekend is. Wanneer iemand een lek ontdekt en dat niet bekend maakt, kan die persoon er misbruik van maken. Wanneer je dus een zo hoog mogelijke veiligheid nastreeft, is het slim Java en Javascript uit te zetten. Maar dat heeft alleen zin wanneer je echt gevaarlijk bezig bent, want het maakt het surfen er niet gemakkelijker op.
Een functie van het WWW die vaak wordt gezien als een veiligheidsrisico zijn cookies. Cookies zijn gegevens die via je browser van buitenaf in het bestand cookies.txt op de harde schijf van een computer kunnen worden gezet bij het bezoeken van een homepage. Het gaat meestal om een code of een lang getal. Deze cookies worden op verzoek teruggegeven aan de site waar ze vanaf komen. Cookies kunnen worden aan- en uitgezet in een browser. Een typisch, onschuldig gebruik van cookies is dat een homepage zo kan “onthouden” welke achtergrondkleur een bezoeker graag wil hebben, door een cookie te schrijven met dit gegeven erin. Ook kan een winkelsite zo een winkelwagentje of klantnummer aan een bezoeker toekennen. Dan wordt door een cookie onthouden welk wagentje de bezoeker heeft. Dat er echte privacy-schendingsaspecten aan cookies zitten, is nog niet aangetoond. Cookies zijn een noodzakelijk kwaad, want ondanks dat ze van buitenaf onduidelijke codes op je harde schijf kunnen zetten, maken ze het browsen wel gemakkelijker. Het is mogelijk om bijvoorbeeld in een cookie aan te geven dat iemand een formulier al een keer heeft ingevuld, waarmee toegang wordt verkregen tot een bepaalde site. Hiermee wordt voorkomen dat je eindeloos hetzelfde formulier in moet vullen. Een ander bekend gebruik is dat van Doubleclick.com. Dit bedrijf plaatst cookies via allerlei populaire sites (onder andere door alle grote zoekmachines) om een een zo volledig mogelijk beeld van het surf-gedrag en de interesses van Internet-gebruikers te krijgen. Deze informatie gebruikt Doubleclick.com weer om zo effectief mogelijk advertenties te plaatsen.
Mocht je niet willen dat er van buitenaf codes op je harde schijf worden gezet dan kan je de cookies-optie uitzetten of de binnenkomende cookies op laten eten door een cookie-eter. Het voordeel van dit laatste is dat een pagina die bezocht wordt dan denkt dat zijn cookies worden geaccepteerd en dat is voor sommige pagina’s verplicht. De programma’s Junkbuster, Cookiemonster en Anonymous Cookie eten cookies op. Junkbuster verwijdert bovendien alle advertenties van de pagina’s die worden bekeken en geeft valse informatie over de computer bij het verzenden van een webrequest.
Veiligheidsproblemen bij aanbieders
Niet alleen de gebruikers maar ook de aanbieders hebben problemen met het WWW. Een voorbeeld hiervan zijn illegal characters. Het komt regelmatig voor dat een bezoeker van een homepage gegevens (naam, adres, e-mailadres) kan intypen op een webpagina. Deze gegevens worden door de webpagina zelf omgezet in UNIX-computertaal zodat de computer waar de webpagina op staat, weet wat er moet gebeuren. In UNIX worden twee commando’s gescheiden door een puntkomma. Wanneer de bezoeker nu een puntkomma in de ingevoerde data verwerkt kan het zijn dat de gegevens na de puntkomma als nieuw commando worden gezien. Als de bezoeker na deze puntkomma dus een commando invoegt waarmee gegevens worden veranderd op de WWW-server, is het op eenvoudige wijze mogelijk om de server te hacken.
Een ander probleem zijn CGI-scripts. Dit zijn programma’s die door een webpagina kunnen worden aangeroepen en op de computers van de Internet-provider draaien. Een voorbeeld hiervan zijn de tellers die op veel pagina’s het aantal bezoekers registreren of zoekmachines die een website kunnen doorzoeken. De meeste providers geven toestemming om een aantal geselecteerde CGI-scripts te draaien die zij zelf hebben goedgekeurd. De nadelen van CGI-scripts zijn namelijk dat het een enorm beslag legt op de beperkte geheugen-capaciteit van de provider en dat er oncontroleerbare hack- en virusmogelijkheden zijn.
Er zijn in principe twee soorten e-mailprogramma’s: mail-clients, zoals Eudora, Outlook, Pegasus enz. en Mail Transfer Agents (MTA).
Mail-clients halen en versturen de mail van de gebruiker. MTA zorgt voor het versturen van mail van de ene computer naar de andere.
Een mail-client haalt de mail van en gebruiker op bij de POP-server (Post Office Protocol). Op een POP-server staat de inkomende mail van iedereen die een account heeft bij desbetreffende provider. De mail-client vertelt de POP-server dan meestal dat de mail die opgehaald is, meteen kan worden weggegooid. Op de POP-server blijft de mail nog enkele uren staan waarna het ook daar weggegooid wordt. Als je een belangrijk mailtje kwijt bent, kan je dus heel snel je provider zien te bereiken (vaak gaat dat via e-mail sneller dan via de telefonische helpdesk), anders is het voorgoed weg.
Mail die je ontvangt staat in leesbare taal op disk. Deze mail heeft z’n weg gevonden naar jou omdat iemand anders het via een mail-client heeft afgeleverd bij een MTA, dat altijd werkt met het protocol SMTP (Simple Mail Transfer Protocol). Een SMTP-server is, in verhouding tot een POP-server, iets minder groot, aangezien hij een bericht direct doorstuurt en een POP-server berichten moet opslaan totdat een gebruiker ze heeft opgehaald.
Een voorbeeld :
Jopie stuurt een mailtje naar Maria. De mail-client van Jopie (bijvoorbeeld Outlook) stuurt het mailtje naar de SMTP-server die de uitgaande post van Jopie behandelt, die stuurt het meteen door naar de SMTP-server die de ingaande post van Maria behandelt, en die stuurt het meteen door naar de POP-server, waar het blijft staan tot Maria het bericht ophaalt.
De veiligheidsproblemen van e-mail
Er is een duidelijk onderscheid tussen het gericht zoeken en het ‘in het wilde weg’ zoeken op het net. Bij het gericht zoeken wordt bijvoorbeeld alleen mail onderschept van een persoon of groepering of wordt er een bepaalde computer afgeluisterd. Bij het “in de wilde weg” zoeken wordt er gewoon gekeken of men iets interessants tegenkomt.
Dit laatste is voor een kleine onderzoeker of geïnteresseerde particulier natuurlijk een onmogelijke klus, maar voor een organisatie als de Amerikaanse NSA, met een jaarbudget dat in de miljarden loopt is het natuurlijk al een stuk eenvoudiger (zie hoofdstuk vier).
Een relatief eenvoudige manier voor politie en inlichtingendiensten om aan gegevens van een bepaald persoon te komen, is om bij een provider aan te kloppen met een rechterlijk dwangbevel in de hand : “Wij willen alle gegevens van persoon X inzien”.
De gebruiker merkt hier niks van, de provider maakt wat aanpassingen in de configuratie-files, en alle mail van die gebruiker verdwijnt ook keurig in het “bakje” van de desbetreffende dienst.
De Wet Computercriminaliteit staat toe dat de politie en inlichtingendiensten alles krijgen wat iemand op een bepaalde plek heeft opgeslagen, dus ook de mail en alle files. De wet staat alleen het naar de toekomst gericht tappen, dus tappen van dingen die nog moeten gebeuren, niet toe (overigens ligt er op dit moment een nieuw wetsvoorstel bij de minister waarin dit wel mogelijk is).
Wat met name voor politie en inlichtingendiensten interessant is, is een kijkje in de logfiles van een gebruiker. De logfiles zijn een soort computerdagboek. Providers houden logfiles bij van alle gebruikers. Daarin staat eigenlijk alles wat jij via hun computer doet, naar wie je mail hebt gestuurd, wanneer je welke Internetsites hebt bekeken enzovoort.
Door de logfiles te bekijken is het erg gemakkelijk om een “verkeersanalyse” te maken : wie heeft contact met wie? in wat voor onderwerpen is deze persoon geïnteresseerd? enzovoort.
Je moet er altijd rekening mee houden, wie je ook belt, dat er logfiles zijn waar in staat dat jij degene bent die gebeld heeft. Als die logfiles niet bij de provider staan, staan ze wel bij de PTT. En dan maakt het niet uit of je je nummer afschermt of niet. Ga er maar van uit dat de PTT “tot in de eeuwigheid” alle logfiles heeft met de a-nummers, dit zijn de nummers van wie er gebeld heeft, de “b-nummers”, dit zijn de nummers van wie er gebeld werd, de gespreksduur en alle verdere technische gegevens van dat gesprek. Dit soort gegevens is natuurlijk opsporingsgoud. Het eerste wat politie en inlichtingendienst willen van een telefoonmaatschappij zijn deze data. De gegevens van een jaar passen binnenkort op een DVD (opvolger van de CD), dus praktisch gezien is er ook geen al te groot probleem meer.
Een laatste mogelijkheid om achter informatie over bijvoorbeeld een gebruiker te komen is natuurlijk door middel van het hacken van een provider.
Namaakanonimiteit betekent dat degene aan wie jij een e-mail stuurt niet kan zien dat jij het verstuurd hebt, maar dat wel te achterhalen is dat de mail van jou komt. Wat bijvoorbeeld veel gebruikt wordt zijn bepaalde websites waar je in klare taal contact mee legt, en waar je dan anoniem een tekst in kunt vullen die een programma dan voor je verstuurt. Als de ontvanger dan bijvoorbeeld een aanklacht tegen de zogenaamde anonieme verstuurder van dit mailtje indient, is het voor justitie vervolgens erg gemakkelijk om deze verstuurder te traceren.
Namaakanonimiteit geldt ook voor allerlei mailverzendprogramma’s onder Windows, waar je je eigen “from :”-adres in kunt vullen en je eigen machinenaam. Voor een provider en dus ook voor justitie is het echter erg eenvoudig om na te gaan wie de verzender is geweest.
Ook via het lezen van mailheaders kun je relatief makkelijk een verstuurder terug traceren. Je kunt terugvinden van welke provider de e-mail afkomstig is, op welk tijdstip het verstuurd is en vanaf welk IP-nummer. Tijdstip, het IP-nummer en vaak ook nog een telefoonnummer zijn in de log-files van een provider direct terug te herleiden naar een login-naam.
Als je zelf wilt weten waar je mail ongeveer vandaan komt kan je de headers van een bericht van onder naar boven lezen. De onderste headers geven de bron van het bericht aan en de bovenste de bestemming. Daar tussenin staat de afgelegde route.
Naast bovenstaande problemen die zich bij e-mail voor kunnen doen zijn er nog twee gevaren die niet onvermeld mogen blijven : mailinglists en virussen.
Mailinglists zijn distributieprogramma’s die berichten of elektronische kranten en tijdschriften verspreiden over een groot aantal ontvangers. Behalve de standaard e-mailproblemen hebben mailinglists nog een probleem; het is soms mogelijk te achterhalen wie de abonnees van een mailinglist zijn. In oudere maillinglist-programma’s is het opvragen van een ledenlijst vaak een standaardoptie die niet uitgezet kan worden. Tegenwoordig kan een lijstbeheerder deze optie wel uitzetten en gebeurt dit meestal ook. Daar staan echter weer allerhande trucs tegenover. Zo kan je in de header van een bericht een code meegeven die door het mailprogramma van de ontvanger bevestigd moet worden. Dan ontvang je dus automatisch de e-mailadressen van de abonnees die de e-mail ontvangen hebben. Veel mailinglist-software haalt deze codes er tegenwoordig dus ook uit.
Virussen kan je alleen krijgen via programma’s en Word-documenten. Wanneer je wilt voorkomen dat je een computervirus binnenhaalt is het belangrijk altijd een recente virusscanner op je computer te hebben en daarmee bestanden die je binnenhaalt te scannen. Het is verstandig om bestanden van dubieuze herkomst sowieso niet te openen. Kwalitatief zijn alle bekende virusscanners vergelijkbaar, alleen de standaard met Windows meegeleverde scanner schijnt slecht te zijn.
Er is echter nog een andere mogelijkheid om virussen binnen te halen. Via buffer-overflows slaat een programma ontvangen data in je computer op in stukjes geheugen die daarvoor gereserveerd zijn, zogenaamde buffers. Als een programma slecht geprogrammeerd is, hebben die buffers vastgestelde groottes. Dat brengt het volgende risico met zich mee: een mailprogramma ontvangt een attachment (bijlage) en reserveert voor de naam van het attachment 1024 karakters geheugenruimte. Wanneer de echte naam maar 500 karakters in beslag neemt kan de zender van de e-mail de resterende 524 karakters gebruiken om extra data mee te sturen. Met deze data kan bijvoorbeeld een stukje bestaande Windows-programmatuur overschreven worden. Hiermee kan je de computer opdrachten laten uitvoeren die niet de bedoeling zijn. Je kan bijvoorbeeld zorgen dat een meegestuurd programma wordt gestart en daarmee een veel ingewikkelder virus aanzetten of een hacktool installeren. In nieuwe versies van mailprogramma’s is dit niet meer mogelijk, maar in minder recente (ouder dan een half jaar) zitten wel dergelijke lekken, voor zover ze al bekend zijn.
Naast gewone virussen bestaan er hacktools zoals Back Orrifice en Netbus. Die programma’s zijn geschreven om je computer van buitenaf toegankelijk te maken. Wanneer je bijvoorbeeld thuis wilt werken en toegang wilt hebben tot je PC op kantoor kan dat handig zijn. Back Orrifice en Netbus zijn echter bijzonder goed te misbruiken. Buitenstaanders kunnen ze ook op je computer zetten om daarna onbeperkte toegang te hebben. Hacktools kunnen bijvoorbeeld verstopt zitten in programma’s die als attachment mee worden gestuurd met e-mail. Recente virusscanners herkennen deze programma’s en kunnen ze verwijderen al zijn het strikt genomen geen virussen. Beter is het nog om onvertrouwde of onbekende attachments direct weg te gooien en geen onduidelijke programma’s van onbekende sites te downloaden. Virusscanners: McAfee Virusscan, F-Secure, E-safe en Norton.
Andere diensten
Naast het WWW en e-mail heeft het Internet nog een aantal andere diensten dat veelal dezelfde veiligheidsproblemen heeft als eerder geschetst. Een paar mogelijkheden verdienen echter nog extra aandacht.
IRC
IRC of Internet Relay Chat is een elektronische babbelbox. Op een bepaald kanaal kunnen gebruikers inloggen en met elkaar praten over een bepaald onderwerp. Er zijn honderd à tweehonderd IRC-servers over de wereld (waarvan er circa vijf in Nederland staan) die verbonden zijn met elkaar en dit babbelverkeer regelen.
Om mee te babbelen moet een gebruiker op een server inloggen onder een nickname. Dan kiest hij voor een bepaald netwerk en voor een kanaal. Er zijn zes verschillende IRC-netwerken en deze netwerken zijn weer onderverdeeld in kanalen, meestal met een bepaald thema. Iedereen kan ook zelf een kanaal beginnen over een bepaald onderwerp of om met een aantal bekenden te praten. Dit lijkt een redelijk overzichtelijke wereld, waarop niet al te veel privacy-inbreuk kan plaatsvinden. Schijn bedriegt echter.
Als een aantal gebruikers op een kanaal zit, zijn zij allemaal zichtbaar aanwezig. Onzichtbare aanwezigen kunnen echter ook meeluisteren. De beheerders van één van de IRC-servers kunnen onzichtbare meeluisteraars installeren. Bovendien kunnen beheerders precies zien wie er op het IRC-netwerk zitten en bijvoorbeeld ook naar één of meerdere personen op IRC zoeken.
IRC heeft daarnaast dezelfde problemen als bijvoorbeeld e-mail. Er kan dus mogelijk virusbesmette bestands-overdracht plaatsvinden. Bovendien is het berichtenverkeer niet versleuteld en dus mee te lezen. Het is erg gemakkelijk om een gesprek af te luisteren. Het is publiekelijk bekend wie met wie waarover praat. Als laatste waarschuwing is het natuurlijk goed om te bedenken dat iemand zich als iemand anders kan uitgeven, een op sex beluste oude man als jonge knappe student, een BVD-er als RAF-sympathisant of een klein kind als geïnteresseerde in marihuana.
Wat een zekere veiligheid geeft, is binnen IRC een DCC (Direct Client to Client) verbinding aangaan. Dan nemen twee babbelaars elkaar even apart. Dat loopt niet meer via het IRC-netwerk, maar via een directe verbinding tussen de twee deelnemers. Hiermee zijn de directe IRC-bedreigingen afgewenteld, maar het berichtenverkeer blijft natuurlijk onversleuteld.
ICQ
ICQ (I Seek You) is een IRC-kloon. Het maakt echter geen gebruik van een server-netwerk, maar van één server. Deze server regelt veel minder dan IRC. Het berichtenverkeer loopt direct van gebruiker naar gebruiker en de ICQ-server houdt alleen bij waar de diverse gebruikers zich op het Internet bevinden en laat veel meer over aan de software op de computer van de gebruiker. Deze software houdt bijvoorbeeld zelf bij met wie hij in gesprek is tijdens een chat.
Ook ICQ heeft veiligheidsproblemen. Er kan heel makkelijk allerlei informatie opgevraagd worden over iemand met een ICQ-nummer bij de maker van ICQ, Mirabillis. Je kan bovendien achterhalen wanneer iemand ICQ draait op zijn computer, verbinding maken met die computer en het ICQ-nummer vragen. Vervolgens kan je bij Mirabillis de gegevens opvragen.
Verder zijn er in het verleden een aantal beveiligingsproblemen geweest met de software die allerlei rottigheid mogelijk maakten. Zo konden bijvoorbeeld heel gemakkelijk wachtwoorden van gebruikers opgevraagd worden of kon de ICQ-identiteit van iemand worden overgenomen om vervolgens zijn berichten te ontvangen.
ICQ heeft dus privacy-, beveiligings- en authentificatie-problemen en is ongecrypt. Het is dus af te raden om dit programma te gebruiken als je gesteld bent op enige vorm van privacy.