Forensische informatica Netwerken & Internetten 1-59 ___________________________________________________________________________
Netwerken & Internetten Inhoud Netwerken & Internetten.............................................................................................................1 Inhoud.........................................................................................................................................1 1. Netwerken...............................................................................................................................3 1.1. Inleiding...........................................................................................................................3 1.2. Wat is een netwerk?.........................................................................................................3 1.3. Soorten netwerken............................................................................................................4 1.3.1. Indeling van netwerken naar omvang :.................................................................4 1.3.1.a. Mainframe en minicomputer..........................................................................4 1.3.1.b. LAN...............................................................................................................5 1.3.1.c. WAN..............................................................................................................5 1.3.1.d. Wereldwijde netwerken (internet).................................................................6 1.3.2. Indeling van netwerken naar hun vorm:...............................................................6 1.3.2.a. Netwerktopologieën.......................................................................................6 1.3.2.b . punt-naar-punt...............................................................................................7 1.3.2.c. Ster (Star).......................................................................................................7 1.3.2.d. Maasvorm (mesh)..........................................................................................7 1.3.2.e.Ring.................................................................................................................7 1.3.2.f. Bus..................................................................................................................8 1.3.3. Indeling van netwerken naar hun gebruik.............................................................8 1.3.3.a. Peer to Peer (P2P) netwerk.............................................................................8 1.3.3.b. Dedicated-server netwerk..............................................................................8 1.3.3.c. Host-netwerken..............................................................................................9 1.4. De geschiedenis van het Internet.....................................................................................9 1.5. De geschiedenis van TCP/IP..........................................................................................10 1.6. Netwerkarchitecturen.....................................................................................................11 1.6.1. Inleiding..............................................................................................................11 1.6.2. Referentiemodellen en terminologie...................................................................12 1.6.3. Het OSI-netwerk referentiemodel.......................................................................13 1.6.3.a. Inleiding.......................................................................................................13 1.6.3.b. Bespreking van het OSI-Model....................................................................14 1.6.3.c. Uitbreiding van het OSI-Model....................................................................18 1.6.4. Het TCP/IP – Model of Internet - Model............................................................18 1.6.4.a. Inleiding.......................................................................................................18 1.6.4.b. Bespreking van het TCP/IP protocol...........................................................20 1.6.4.c. De voor- en nadelen van TCP/IP..................................................................20 1.6.5. Vergelijking van het OSI-model en TCP/IP.......................................................21 1.7. TCP/IP - Protocollen......................................................................................................22 1.7.1. Inleiding..............................................................................................................22 1.7.2. Protocollen van de application layer...................................................................22 1.7.2.a. FTP: File Transfer Protocol .........................................................................23 1.7.2.b. HTTP: Hyper Text Transfer Protocol .........................................................24 1.7.2.c. HTTPS-protocol...........................................................................................25 1.7.2.d. SMTP: Simple Mail Transfer Protocol .......................................................25 1.7.2.e. POP: Post Office Protocol ...........................................................................26 1.7.2.f. IMAP: Internet Message Access Protocol ...................................................27 Georges Lichtenstein
Information Network Forensics
versie 1.0 (25/07/yyyy)
Forensische informatica Netwerken & Internetten 2-59 ___________________________________________________________________________ 1.7.2.g. SNMP: Simple Network Management Protocol .........................................28 1.7.2.h. NNTP: Network News Transfer Protocol ...................................................31 1.7.2.i. Telnet ...........................................................................................................36 1.7.3. De protocollen van de Transport layer................................................................38 1.7.3.a. TCP (Transmission Control Protocol) .........................................................38 1.7.3.b. UDP (User Datagram Protocol) ..................................................................38 1.7.4. De protocollen van de Netwerk layer.................................................................39 1.7.4.a. IP (Internet Protocol)....................................................................................39 1.7.4.b. ARP (Address resolution Protocol) .............................................................39 1.7.4.c. RARP (Reverse Address Resolution Protocol) ...........................................42 1.7.4.d. ICMP (Internet Control Message Protocol) ................................................42 1.7.5. De protocollen van de Data Link Layer..............................................................42 1.7.5.a. SLIP (Serial Line Internet Protocol) ...........................................................42 1.7.5.b. PPP (Point-To-Point Protocol) ....................................................................43 1.8. TCP/IP netwerkcomponenten........................................................................................43 1.8.1. DNS.....................................................................................................................43 1.8.1.a. Wat is DNS?.................................................................................................43 1.8.1.b. Hoe werkt DNS?..........................................................................................44 1.8.2.Het DHCP/ BootP –protocol................................................................................45 1.8.2.a. Inleiding.......................................................................................................45 1.8.2.b. Het DHCP-protocol......................................................................................45 1.8.2.c. BootP -protocol............................................................................................46 1.8.2.d. Het verband tussen DHCP en BootP............................................................48 1.8.3. Computerpoorten................................................................................................48 1.9. IP-Adressen - Subnetten.................................................................................................49 1.9.1. Inleiding..............................................................................................................49 1.9.2. Binair rekenen.....................................................................................................49 1.9.4. IP-adressen..........................................................................................................50 1.9.4. Super- en subnetten.............................................................................................52 1.9.4.a; Berekenen van subnetmasks........................................................................53 Bijlage I: Top-level domains geregistreerd in de wereld......................................................56
Georges Lichtenstein
Information Network Forensics
versie 1.0 (25/07/yyyy)
Forensische informatica Netwerken & Internetten 3-59 ___________________________________________________________________________
1. Netwerken 1.1. Inleiding In deze bijdrage zullen we stilstaan bij een aantal basisbegrippen die de werking van netwerken verklaren. Het is de bedoeling na te gaan wat men dient te verstaan onder netwerken, welke netwerkarchitecturen geïmplementeerd worden en hoe deze herkend worden. Er zal kennis gemaakt worden met het gelaagd TCP/IP-model 1 en het OSImodel2 als voorbeelden van gelaagde protocollen. Daarbij zal even aandacht besteed worden aan de geschiedenis van het Internet, die nauw verbonden is met de ontwikkeling van deze modellen. In een volgend hoofdstuk zullen we nagaan hoe een netwerk dient verkend te worden en welke manipulaties er kunnen gesteld worden om een netwerk te onderzoeken. Daarbij zullen Microsoft Windows en Unix (Linux) als voorbeeld genomen worden. Tenslotte wordt dieper ingegaan op een aantal technische aspecten zoals poorten, IP-adressen en hun identificatie en het gebruik van poorten en netwerkdiensten.
1.2. Wat is een netwerk? Het begrip netwerk hangt nauw samen met het begrip telecommunicatie en dit is niet eenduidig te definiëren. Binnen het begrip valt een bijzonder groot aantal menselijke activiteiten die betrekking hebben op het transport van gegevens. Letterlijk betekent het ‘communicatie op afstand’ wat oorspronkelijk synoniem stond voor telefonie.3 Gegevens vormen de basis van elk bedrijf, ongeacht of het gaat om een bank, een stomerij, luchtvaart, of de fabricage van computerchips. Voorraden, salarisadministratie, boekhouding, klantinformatie en adressen van relaties zijn gegevens die van vitaal belang zijn voor een onderneming. Vanuit de gedachte dat de computer een hulpmiddel is voor het werken met gegevens, wordt aangetoond hoe netwerken een aanvulling kunnen zijn op de mogelijkheden die de computer biedt voor het opslaan, uitwisselen, gedeeld gebruiken en beveiligen van gegevens.4 Een netwerk is een combinatie van technische hulpmiddelen met behulp waarvan gegevens over grote afstanden kunnen 1
Transmission Control Protocol/Internet Protocol Open Sytem Interconnection 3 BENEDICT, B., ‘Handboek bestrijding telecommunicatiefraude: een nieuwe dimensie voor het onderzoek van telecommunicatie’, Landelijk Expertisecentrum, Koninklijk vermande, 2002, i.c.p.3 4 CHELLIS, J., PERKINS, Ch. & STREBE M., ‘ MCSE De essenties van Networking’, Sybex, Soest, 1998, i.c.p.3 2
Georges Lichtenstein
Information Network Forensics
versie 1.0 (25/07/yyyy)
Forensische informatica Netwerken & Internetten 4-59 ___________________________________________________________________________ worden uitgewisseld.5 Deze technische hulpmiddelen vormen meestal een combinatie van computersystemen, besturingssystemen, bekabelingen en satellietverbindingen en kunnen opgedeeld worden volgens hun volume, geografische plaats (LAN & WAN), naar hun gebruik (Peer2Peer, Dedicatedserver, Host-netwerk…) en naar het gebruikte protocol (breedbandnetwerken,…). Steeds meer bedrijven, groot en klein, vertrouwen op personal computers en netwerken voor het opslaan van hun kostbare gegevens. 6 Computers die zijn aangesloten op een netwerk kunnen de uitwisseling van gegevens aanzienlijk sneller en gemakkelijker maken.7 De gegevens kunnen rechtstreeks verplaatst worden van de ene computer naar de andere zonder dat mensen deze persoonlijk moeten verspreiden. Het meest elementaire netwerk bestaat uit twee onderling verbonden computers die met elkaar kunnen communiceren via een kabel. Bovendien kunnen computers in een netwerk gebruik maken van dezelfde resources, zoals printers en faxmodems, waardoor minder hardware moet aangeschaft worden, wat voordeliger is voor het bedrijf.
1.3. Soorten netwerken Er bestaan sedert het ontstaan van de computer heel wat misverstanden over wat een netwerk juist is. In dit deel zullen we ingaan op een aantal van deze begripsverwarringen en zullen we aantonen dat het afhankelijk is van het ‘computerplatform’ waarvoor het bedrijf gekozen heeft of men al of niet kan spreken van een netwerk en wat de verschillen juist zijn. Tot slot zullen we zeer kort ingaan op de netwerktopologieën die belangrijke randvoorwaarden stelt aan protocollen, die later bij de bespreking van netwerkarchitecturen, OSI-model en TCP/IP nog aan bod zullen komen.
1.3.1. Indeling van netwerken naar omvang : 1.3.1.a. Mainframe en minicomputer In tegenstelling tot de andere platforms hebben we hier niet te maken met een echt netwerk. Het gaat hier niet noodzakelijk over verschillende computers die met elkaar verbonden zijn. Een mainframe is een computer waarvan de centrale verwerkingseenheid (zeg maar de processor, harde schijven, intern geheugen of RAM, …) een enorme capaciteit heeft. Het is een informaticasysteem dat meestal geleverd wordt met een configuratie die aangepast is aan de noden van de client. Aan de centrale verwerkingseenheid of CPU kunnen dan een aantal terminals gekoppeld worden. Deze terminals kunnen zowel ‘domme terminals’ zijn die zelf niet beschikken over een geheugen (meestal enkel bestaande uit een scherm en een klavier), of ‘intelligente terminals’, dit zijn dan meestal PC’s of minicomputers, voorzien van de nodige hardware om te kunnen samenwerken 5
BENEDICT, B., i.c., p. 4 CHELLIS, J., PERKINS, Ch. & STREBE M., i.c. p. 3 7 CHELLIS, J., PERKINS, Ch. & STREBE M., i.c, p. 6 6
Georges Lichtenstein
Information Network Forensics
versie 1.0 (25/07/yyyy)
Forensische informatica Netwerken & Internetten 5-59 ___________________________________________________________________________ met de CPU. Op deze machines gaat men meestal de volledige administratie van het bedrijf laten draaien. De mainframe wordt meestal gebruikt op de hoofdzetel van banken of zeer grote administratieve omgevingen. Om een idee te geven: aan een mainframe kan men gemakkelijk 100 (maximaal 150) domme terminals tegelijk laten werken. De minicomputer is vergelijkbaar met de mainframe, maar zal iets kleiner zijn, met minder terminals en wordt meestal enkel voor bepaalde databasetoepassingen gebruikt (dedicated). Het aantal domme terminals, die samen kunnen werken, kan afhankelijk van de CPU maximaal oplopen tot 50. In geval men ‘intelligente terminals’ koppelt, zal de mainframe of mini eveneens dienst doen als server. In dat geval kan men wel spreken van een echt netwerk.
1.3.1.b. LAN Een LAN (local area network) is een verzameling computers die systeemelementen zoals schijfruimte, printers, communicatiemiddelen (modems) en andere randapparaten gemeenschappelijk gebruiken. Zoals uit de benaming blijkt gaat het meestal om een fysisch beperkte omgeving. Meestal is de uitgestrektheid van een LAN beperkt tot één gebouw of één site van het bedrijf. Na de opkomst van de PC (personal computers) in de jaren tachtig 8, bleek er in de bedrijfswereld al snel dat er een probleem was bij het uitwisselen van gegevens en het efficiënt gebruik van databanken. Het koppelen van verschillende PC’s tot een netwerk was dan ook een logische stap in de evolutie van de informatieverwerking. LAN’s maken nu deel uit van de IT-strategie van bedrijven. Zonder op de techniciteit in te gaan, kan men stellen dat een LAN een efficiënt hulpmiddel is bij de bedrijfsvoering. De softwaretoepassingen die ontwikkeld zijn voor gebruik in een LAN zijn gericht op het werken in teamverband (cfr. Groupware: electronisch berichten beheer). Via allerlei technische ingrepen kan men het verkeer op een LAN beperken en tot op zekere hoogte degelijk beveiligen.
1.3.1.c. WAN Een Wide Area Network, gebaseerd op het X.25 protocol (DCS of datacommunicatie switching op basis van packet-switching), is een netwerk 8
12 augustus 1981: de eerste IBM-pc wordt gecommercialiseerd voor 3.000 dollar. De IBM-pc is gebaseerd op de Intel 8088-processor met een kloksnelheid van 4,77 MHz, een 5,25-inch floppydiskette met een capaciteit van 160 KB en 16 KB RAM-geheugen. Microsoft introduceert tegelijk met de IBM-pc de eerste versie van het besturingssysteem MS DOS. Ook komen ook de programmeertalen Basic, COBOL en Pascal voor de IBM-pc op de markt. Hayes Smartmodem 300 is de eerste modem voor de pc.
Georges Lichtenstein
Information Network Forensics
versie 1.0 (25/07/yyyy)
Forensische informatica Netwerken & Internetten 6-59 ___________________________________________________________________________ van computers gekoppeld over een grotere afstand (soms wereldwijd). Het gaat hier om een koppeling via gehuurde datacommunicatie lijnen. De geografische spreiding kan dus enorm zijn. Meestal wordt een WAN beperkt tot één bedrijf, bestaande uit verschillende sites. De beveiliging van een WAN is zeer ingewikkeld en niet alleen afhankelijk van de bezitter van de computerapparatuur, maar ook voor een belangrijk deel de verantwoordelijkheid van de leveranciers van de communicatielijnen (Telecommunicatie Service Providers ofte TSP).
1.3.1.d. Wereldwijde netwerken (internet) Als we de schaalvergroting, die gedurende de informatica-evolutie heeft plaatsgevonden, doortrekken dan is een logisch gevolg de wereldwijde netwerken, waarbij het internet het bekendste voorbeeld is. De realisatie van snelle verbindingen, zoals koper- en glasvezelkabels, maar ook microgolf- en satellietcommunicatie, maakt dat de traditionele netwerktechnologie (terminalhost verbinding) voorbijgestreefd is. Bibliotheken, universiteiten, ziekenhuizen, gouvernementele organisaties kortom het gehele bedrijfsleven wordt beheerst door netwerken, die wereld omspannend zijn. ‘Het bankwezen gebruikt SWIFT, de reiswereld maakt gebruik van SITA, een reserveringssysteem voor alle luchtvaartmaatschappijen ter wereld en internet voorziet in de behoeften van zowel de wetenschappelijke als de zakenwereld. Al deze wereldwijde netwerken zijn gebaseerd op de concepten en principes die in dit hoofdstuk geschreven zijn. Veel van deze netwerken zijn in werkelijkheid met elkaar verbonden via kleinere netwerken die georgrafisch verspreid liggen (WAN’s) dan wel lokaal gebonden zijn aan een of gekoppelde minien/of gebouwencomplex (LAN’s)’9 mainframecomputers.10
1.3.2. Indeling van netwerken naar hun vorm: 1.3.2.a. Netwerktopologieën11 De topologie is de geografische structuur van communicatieverbindingen en systemen die het netwerk vormen. De topologie van een computernetwerk levert belangrijke randvoorwaarden voor de protocollen, het gebruik en het technisch beheer van het netwerk. Op het eerste gezicht lijkt een ideale verbindingsstructuur er een te zijn waarbij ieder computersysteem met ieder ander computersysteem is verbonden. Communicatieverbindingen zijn echter kostbaar. Bovendien, niet iedereen 9
CHESHER, M. AND KAURA, R.;Electronic Commerce and Business Communications, Springer-Verlag, London 1998 10 Kwetsbaarheid op Internet (KWINT), http://www.minvenw.nl/dgtp/home/cgi 11 Dit deel werd volledig overgenomen van: www.simpleweb.org/nm/research/ results/publications/pras/pbna99.pdf
Georges Lichtenstein
Information Network Forensics
versie 1.0 (25/07/yyyy)
Forensische informatica Netwerken & Internetten 7-59 ___________________________________________________________________________ communiceert met iedereen, en het aantal computersystemen in een computernetwerk kan voortdurend veranderen. Men streeft daarom naar optimalisatie van de verbindingsstructuren, hetgeen aanleiding geeft tot specifieke topologieën zoals punt-naar-punt, ster, maasvorm, ring, bus en headend (zie Figuur 1.1).
1.3.2.b . punt-naar-punt De punt-naar-punt verbinding (Figuur 1.1a) is de eenvoudigste topologie. Voor de transmissietechnologie levert deze topologie de minste problemen op, omdat iedere ontvanger slechts op een enkele zender hoeft te worden afgestemd. Hierdoor kunnen grote afstanden worden overbrugd. De punt-naarpunt verbinding vormt de basis voor andere, meer complexe topologieën, zoals de ster-, maasvorm- en ringtopologie.
1.3.2.c. Ster (Star) In de stertopologie (Figuur 1.1b) wordt een centraal systeem via een aparte verbinding gekoppeld met ieder ander systeem. Meestal is er een hiërarchische relatie tussen het centrale systeem, of master, en de andere systemen, die dan slaves worden genoemd. De stertopologie is kwetsbaar, omdat uitvallen van het centrale systeem het gehele netwerk platlegt. Deze topologie wordt vaak aangetroffen bij oudere systemen met gecentraliseerde intelligentie, maar komt ook voor bij moderne netwerken met toegangscomputers.
1.3.2.d. Maasvorm (mesh) De maasvormtopologie (Figuur 1.1c) ontstaat meestal als de systemen over een groot gebied (bijv. een land of continent) verspreid zijn en de kostenbeheersing van de verbindingen een onregelmatige structuur noodzakelijk maakt. Bij de maasvormtopologie kunnen berichten via verschillende routes de bestemming bereiken, hetgeen aanleiding geeft tot protocollen voor routering, flow control en congestion control.
1.3.2.e.Ring
Georges Lichtenstein
Information Network Forensics
versie 1.0 (25/07/yyyy)
Forensische informatica Netwerken & Internetten 8-59 ___________________________________________________________________________ In de ringtopologie (Figuur 1.1d) is ieder systeem met twee andere systemen verbonden, nl. een systeem waarvan berichten ontvangen kunnen worden en een systeem waarnaar berichten gestuurd kunnen worden. De berichten volgen dus een vaste route, waardoor de protocollen voor gegevenstransport relatief eenvoudig kunnen zijn. Een bericht blijft in de ring, totdat een systeem het bericht verwijdert (d.w.z., niet verder doorstuurt). Hierdoor zijn broadcasttoepassingen gemakkelijk te realiseren.
1.3.2.f. Bus
• •
De bustopologie (Figuur 1.1e) bestaat uit een niet onderbroken communicatiemedium (bijv. een coaxkabel), waarop verschillende systemen zijn aangesloten. Een systeem kan een bericht op het medium plaatsen, waarna het bericht door ieder systeem gelezen kan worden. De bus heeft hierdoor een inherente broadcasteigenschap, en t.o.v. de ring de voordelen van: geringe vertraging, omdat een bericht rechtstreeks en niet via tussenliggende systemen naar zijn bestemming reist; grote robuustheid, omdat het uitvallen van een systeem niet de rest van het netwerk uitschakelt. Daarentegen heeft de bustopologie een complexer medium access control protocol nodig, om de toegang tot het gemeenschappelijke medium te controleren en te coördineren. Head-end De head-endtopologie (Figuur 1.1f) combineert twee logische (éénrichtings-) bussen, de up-link en de down-link, die aan één zijde door een versterker, de head-end, zijn doorverbonden. Elk systeem is zowel verbonden met de up-link als de down-link. Een systeem kan een bericht op de up-link plaatsen, waarna het bericht zich voortplant naar de head-end, daar wordt versterkt, en op de down-link wordt geplaatst. Daar kan het bericht door ieder systeem worden gelezen. Veel netwerken met een head-endtopologie zijn gebaseerd op de technologie voor kabeltelevisie. Ook satellietnetwerken hebben een head-endtopologie, waarbij de head-end transponder wordt genoemd en in de satelliet is geplaatst.
1.3.3. Indeling van netwerken naar hun gebruik 1.3.3.a. Peer to Peer (P2P) netwerk Peer to Peer netwerken hebben als eigenschap dat er geen server voorzien is. Iedere PC kan direct contact opnemen met de andere PC’s en doet dienst zowel als server én als client. Er is dus geen afzonderlijke PC die dienst doet als server. Als een PC uitvalt, blijft het netwerk toch operationeel. Omdat de server ontbreekt is de beheersbaarheid en beheerbaarheid van de data problematischer. Dit netwerk is meestal niet goed beveilligd.12
1.3.3.b. Dedicated-server netwerk
12
BENEDICT, B. , i.c., p.5
Georges Lichtenstein
Information Network Forensics
versie 1.0 (25/07/yyyy)
Forensische informatica Netwerken & Internetten 9-59 ___________________________________________________________________________ De data wordt hier central opgeslagen op een server. Bestanden die lokaal worden opgeslagen bij de clients zijn niet meer toegankelijk van de andere gebruikers, tenzij sharing wordt toegepast. De meest gebruikte systemen zijn Microsoft Windows NT, Novell Netware of Unix (Linux) netwerken. Er kunnen een groot aantal clients bediend worden en ook de veiligheid kan beter verzekerd worden.13 De server is een single point of failure, wat betekent dat in dergelijk netwerk een applicatie niet meer functioneert indien een enkel onderdeel van het netwerk uitvalt, nl. de server.
1.3.3.c. Host-netwerken In dat geval staat niet alleen de data op de server, maar draait ook de applicatie op de server. Deze netwerken gebruiken allemaal een krachtige server – dit kan eventueel een mainframe zijn. Het gebruikte protocol is TCP/IP of SNA.14
1.4. De geschiedenis van het Internet Er doen heel wat verhalen de ronde over de geschiedenis van het Internet. Eén van de grote misverstanden is dat het Internet 15 zou ontstaan zijn in de 60er jaren (van de vorige eeuw) als een project van het Ministerie van Defensie van de Verenigde Staten. De bedoeling was een gedecentraliseerd netwerk te creëeren dat nog steeds zou werken als bepaalde delen plat zouden liggen. Dus in plaats van lineair geschakelde computers waarbij het hele netwerk ontregeld is als één schakel ontbreekt, werden de computers als in een web met elkaar verbonden.16 Internet zou gebouwd zijn als een super-redundant netwerk dat zelfs een kernaanval moest kunnen doorstaan. Zelfs de meest toegewijde pacifist moet toegeven dat kernwapens toch hun nut hebben gehad, of toch niet?17 De oorsprong van internet dateert weliswaar van de periode van de koude oorlog tussen Amerika en Rusland18. In 1957 gaat er een schok door de Amerika als de Rusland zijn technologisch leiderschap in de ruimte vestigt door de Sputnik I en Sputnik II binnen een maand na elkaar te lanceren. 19 In die tijd waren de computers van het Amerikaans leger verbonden door één lijn: computer A was verbonden met computer B, computer B met C enz. Computer A kon wel communiceren met computer Z, maar had daarvoor computer B, C,D… nodig. Een ketting waarin elke computer de zwakke schakel was. Een militaire ramp wanneer een Russische kernbom computer K zou platleggen, want dan konden A en Z niet meer met elkaar overleggen. De 13
BENEDICT, B. i.c., p. 6 SNA: System Network Arcitecture. 15 Internet betekent letterlijk: het netwerk van alle netwerken die met elkaar in verbinding staan en daarbij onafhankelijk blijven 16 http://www.be-wired.nl/info/geschiedenis.htm 17 http://www.berenddeboer.net/article/het_ware_ontstaan_van_internet.html 18 http://users.compaqnet.be/cn001183/geschiedenis.htm 19 http://www.berenddeboer.net/article/het_ware_ontstaan_van_internet.html 14
Georges Lichtenstein
Information Network Forensics
versie 1.0 (25/07/yyyy)
Forensische informatica Netwerken & Internetten 10-59 ___________________________________________________________________________ president van Amerika, Eisenhower, neemt, mede in reactie daarop, het initiatief een R&D bureau (agency) te vestigen:20 Advanced Research Projects Agency. Enkele universiteiten in Californië dokterden een ingenieus systeem uit. Verbindt alles computer van A tot Z met elkaar. Wanneer computer A informatie naar computer Z wil versturen, dan bepaalt de software zelf wel welke weg het daarvoor wil nemen, bijvoorbeeld van A naar X, van X naar D, van D naar T, om ten slotte van T bij Z te belanden. Werd één schakel onschadelijk gemaakt, dan werd automatisch een andere weg genomen om de informatie door te sturen. Informatie werd ook in pakketjes verstuurd. Computer A verstuurde een pakketje informatie naar computer D. Was het pakketje goed aangekomen, dan vertelde D dit aan A die een nieuw pakketje verzond, eventueel via een andere computer. Alle pakketjes kregen een nummer en een adres, zodat op het einde van de ketting alle pakketjes bij de juiste computer terecht kwamen en in de goede volgorde.21 Tien jaar later, 1968, stuurt Larry Roberts, werkzaam bij ARPA, een verzoek om offertes naar 140 firma's, om een IMP te maken. Een IMP, Interface Message Processor, moest een aparte computer zijn, die met andere IMP's via packet switching kon communiceren.22 Het ARPAnet was geboren. In 1972 waren er al 37 netwerken op het systeem aangesloten. Niet alleen de militaire wereld zag de grote voordelen in van zo’n groot netwerk. Universiteiten van over de hele wereld werden met elkaar verbonden.23 Daartoe ontwikkelden ze een eigen netwerk, TCP/IP zag het daglicht -een verbetering van de pakketpost zoals ik hierboven beschreven heb- en is nog steeds het hart van ons huidige internet. Studenten aan de universiteiten van California ontwikkelden nieuwe toepassingen voor dit netwerk: elektronische post, verzenden en ontvangen van software, nieuwsgroepen. Vele van deze studenten zijn nu miljonairs en hoofd van bekende softwarebedrijven.24 De uitvinding van het netwerk waarvan internet gebruik maakt, is een Amerikaanse uitvinding. Maar het World Wide Web is een zuiver Europese uitvinding waarin zelfs de Belg CALLIAU een hoofdrol gespeeld heeft. In de beginjaren was het gezicht van internet helemaal niet dat wat we nu gewoon zijn. Websites bestonden er niet. Alle informatie werd op een droge manier aan de man (vrouw) gebracht. Daar kwam verandering in toen aan de CERN in Zwitserland eind de jarig tachtig het WWW werd ontwikkeld, gebaseerd op sites die door middel van links met elkaar waren verbonden. De grondslag was gelegd om internet populair te maken. Daarom kreeg eind de jaren ’80 de commerciële wereld belangstelling voor internet en toen zat het spel pas goed op de wagen.25
1.5. De geschiedenis van TCP/IP
20
Katie, H. &Matthew, L. ‘Where Wizards Stay Up Late: The Origins of the Internet’, Touchstone Press, 2000, 304 p. 21 http://users.compaqnet.be/cn001183/geschiedenis.htm 22 http://www.berenddeboer.net/article/het_ware_ontstaan_van_internet.html 23 http://www.berenddeboer.net/article/het_ware_ontstaan_van_internet.html 24 http://users.compaqnet.be/cn001183/geschiedenis.htm 25 http://users.compaqnet.be/cn001183/geschiedenis.htm
Georges Lichtenstein
Information Network Forensics
versie 1.0 (25/07/yyyy)
Forensische informatica Netwerken & Internetten 11-59 ___________________________________________________________________________ Om de historie van TCP/IP te begrijpen, is het nodig eerst eens te kijken wat de IMP's nu precies deden. De enige taak van een IMP was het versturen van pakketjes van de ene naar de andere aangesloten computer (host). Als pakketjes in verkeerde volgorde arriveerden (het laatst verstuurde pakketje arriveert bijvoorbeeld het eerst), dan zorgen de IMP's ervoor dat de pakketjes uiteindelijk in de juiste volgorde aan de client werden aangeboden. De communicatie tussen twee hosts werd vastgelegd met NCP (Network Control Protocol). NCP ging ervan uit dat het onderliggende netwerk betrouwbaar was. De IMP's zorgden hier immers voor. In 1974 publiceerden Vint Cerf en Bob Kahn over een protocol wat ze TCP noemden.26 Het grote verschil met NCP was dat TCP er vanuit ging dat het onderliggende netwerk onbetrouwbaar was. Cerf en Kahn richten zich namelijk op een heel ander probleem. Eind 1972 werd duidelijk dat er veel meer soorten netwerken zouden komen en al waren. Hoe was het nu mogelijk om die netwerken nu met elkaar praten? Om satellietverbindingen, packet radio’s, netwerken in andere landen en ARPANET met elkaar te laten communiceren? Het idee van Cerf en Kahn was om de betrouwbaarheid niet in het netwerk in te bouwen, maar in de hosts. In 1977 wordt de eerste werkende versie van TCP getoond waarbij drie netwerken, een packet radio netwerk, ARPANET en SATNET, aan elkaar geknoopt zijn. In 1978 komen Vint Cerf, Jonathan B., Postel en Danny Cohen met het cruciale idee om het gedeelte van TCP dat zich bezig houdt met het routeren van pakketjes af te splitsen en dat IP ofwel Internet Protocol te noemen. TCP zou zich dan bezig houden met pakketjes die niet of in de verkeerde volgorde aankomen, transmissiefouten, e.d. IP zou zich bezig houden met het versturen van individuele pakketjes. Naast TCP kennen we ook UDP, vrijwel gelijk aan IP. Met UDP kan een pakketje verstuurt worden zonder de overhead van een bevestiging. Bijvoorbeeld RealAudio en RealVideo kunnen UDP gebruiken. Met deze afsplitsing is TCP/IP een feit. In 1983 gaat ook ARPANET over op TCP/IP.27
1.6. Netwerkarchitecturen 1.6.1. Inleiding Door een toename aan complexiteit van netwerken en de verscheidenheid ervan, soms zelfs binnen één organisatie, dreigde men terecht te komen in een verzameling van eilandjes van elektronisch postsystemen. Het was zo dat intern, binnen de groep die een zelfde systeem had, communicatie mogelijk was, maar van zodra men over het afdelingsmuurtje diende te gaan, het onmogelijk was voor de verschillende systemen om met elkaar te kunnen communiceren. Dit veroorzaakte uiteraard enorme problemen. Men diende verschillende softwarepakketten op één systeem te plaatsen om het mogelijk te maken om niet alleen met de eigen groep te communiceren, maar ook de andere groepen te bereiken. Sommige managers of afdelingshoofden hadden 26
Katie, H. &Matthew, L. ‘Where Wizards Stay Up Late: The Origins of the Internet’, Touchstone Press, 2000, 304 p. 27 http://www.berenddeboer.net/article/het_ware_ontstaan_van_internet.html zie ook: Katie, H. &Matthew, L. ‘Where Wizards Stay Up Late: The Origins of the Internet’, Touchstone Press, 2000, 304 p.
Georges Lichtenstein
Information Network Forensics
versie 1.0 (25/07/yyyy)
Forensische informatica Netwerken & Internetten 12-59 ___________________________________________________________________________ evenveel systemen geïnstalleerd als er externe contactadressen waren. Door de gebruikers werden industriëlen onder druk gezet om de systemen op elkaar af te stemmen. Zo ontstonden er industriële standaards, die de integratie van verschillende systemen toelieten. Het opstellen van deze standaards ging echter ook gepaard met de ontwikkeling van ‘open systemen’. Het OSI (Open System Interconnection) netwerk referentiemodel ligt aan de basis voor de verschillende standaarden die ontwikkeld zijn binnen het domein van netwerkcommunicatie in de brede zin van het woord. Digitale netwerken kunnen op vele manieren gerealiseerd worden, wat vanzelfsprekend leidt tot een nood aan grote compatibiliteit en connectiviteit tussen de verschillende netwerken. Deze problematiek ligt aan de basis van de ontwikkeling van de OSI-standaard, op initiatief van de Internationale Organisatie voor Standaardisatie (ISO). 28 Het OSI referentiemodel splitst elk netwerk op in zeven verschillende lagen die een welbepaalde netwerkfunctie toegewezen krijgen. . 29 De bespreking van dit model komt later aan bod. ‘Open systemen’ zijn systemen die opgebouwd zijn rond componenten die voor de gebruiker fabrieksonafhankelijk zijn. Deze componenten beantwoorden volledig aan de opgestelde open standaards van de computeromgeving. Er kan dus door de gebruiker gespeeld worden met de concurrentie om voor hem, voor elk onderdeel het meest voordelige systeem binnen te halen. In een open systeem worden alle communicatieprotocollen en gebruikersinterfaces openbaar gemaakt. In de literatuur spreekt men over dit verschijnsel met het begrip ‘connectivity’ of soms ‘crossware’. Door het gebruik van dergelijke systemen zal de ICT-omgeving (information and communication technology) flexibeler kunnen aangepast worden aan veranderende functionaliteits- en capaciteitseisen. Standaardisering en daarmee gepaard gaand het opstellen van gecompliceerde protocollen heeft dus het huidige gebruik van de technologische mogelijkheden ten volle tot ontwikkeling gebracht. Men dient echter in het kader van een studie over criminaliteit buiten de voordelen van standaardisering toch ook enigszins de nadelen te bekijken. Door de standaardisatie is het echter zo dat al de constructeurs verplicht zijn om hun apparatuur volgens bepaalde normen te bouwen, op gevaar af om op een eiland te belanden. Dit maakt het voor de criminele organisaties echter veel eenvoudiger om ook gebruik te maken van de opgelegde normen om achterpoorten te zoeken of te creëren. Eens zo’n gat in de beveiliging gevonden wordt, is het omzeilen ervan meestal zeer nuttig voor een groot deel van de toepassingen. Standaardisering betekent immers ook het (ongewild) eenvormig maken van de zwakke plekken.
1.6.2. Referentiemodellen en terminologie 28
BENEDICT, B. , i.c., p. 8 Het OSI-model is ontwikkeld om het mogelijk te maken om op het ‘hoogste’ niveau – de applicatielaag – ongelijksoortige systemen met elkaar te kunnen laten communiceren waarbij het netwerk er voor zorgt dat verschillen in operating systemen worden ‘vertaald”. Het model dat op grond daarvan is gerealiseerd is het netwerkprotocol. Echter, dit protocol wordt in de praktijk weinig toegepast. In plaats daarvan wordt veelal gebruik gemaakt van het TCP/IP protocol, hetgeen een protocol is dat slechts vier lagen kent en nauwelijks te projecteren is op het OSI-model. (BENEDICT, B. , i.c., voetnoot 23) 29
Georges Lichtenstein
Information Network Forensics
versie 1.0 (25/07/yyyy)
Forensische informatica Netwerken & Internetten 13-59 ___________________________________________________________________________ Om de complexiteit van protocollen te kunnen beheersen worden de mogelijke interacties tussen computersystemen meestal gestructureerd overeenkomstig een horizontale en verticale structurering. Op deze structuur wordt een aantal abstracte concepten gedefinieerd, die vervolgens overeenkomstig een aantal technische en organisatorische criteria gehanteerd worden. Een referentiemodel is het geheel van de bovengenoemde structuur tezamen met de globale technische criteria op grond waarvan deze structuur is gedefinieerd.30 Een referentiemodel levert daarmee een stelsel randvoorwaarden voor de verdere invulling van het model met technische specificaties voor standaard services en protocollen. Door het referentiemodel tezamen met de standaard services en protocollen worden de interacties in een systeem ondubbelzinnig en volledig vastgesteld.31 Twee toonaangevende referentiemodellen zijn het OSI Reference Model (OSIRM) en het Internet Protocol Suite (IPS). Beide modellen verschillen van elkaar door hun benadering van netwerken. Het OSI-RM wordt gekenmerkt door een meer architecturale en theoretische benadering, terwijl IPS wordt gekenmerkt door een meer implementatiegerichte en pragmatische benadering.32 Hierdoor is de ontwikkeling van het IP-model veel sneller gegaan dan deze van het OSI-model dat daardoor aan populariteit heeft ingeboet ten voordele van IPS.
1.6.3. Het OSI-netwerk referentiemodel 1.6.3.a. Inleiding Vijfentwintig jaar geleden, in 1974, heeft de internationale standaardisatieorganisatie ISO33 een model voor gelaagde netwerken gedefinieerd.34 Dit gelaagd netwerkmodel kreeg de naam OSI35 en is ondertussen uitgegroeid tot het meest geaccepteerde model voor netwerkcommunicatie.36 Bovendien ligt het OSI netwerk referentiemodel aan de basis voor de verschillende standaarden die ontwikkeld zijn binnen het domein van netwerkcommunicatie in de brede zin van het woord.37 Het OSI-model, zoals we het vanaf nu zullen benoemen, is ontwikkeld om het mogelijk te maken om op het ‘hoogste’ niveau – de applicatielaag (infra) – ongelijksoortige systemen met elkaar te laten communiceren waarbij het netwerk er voor zorgt dat verschillende besturingssystemen worden ‘vertaald’. Het model dat op grond daarvan is gerealiseerd is het netwerkprotocol, dat in
30
www.simpleweb.org/nm/research/ results/publications/pras/pbna99.pdf www.simpleweb.org/nm/research/ results/publications/pras/pbna99.pdf 32 www.simpleweb.org/nm/research/ results/publications/pras/pbna99.pdf 33 ISO: International Organization for Standardization 34 http://www.diskidee.nl/netwerken_ontsluierd.htm 35 OSI: Open System Interconnection 36 CHELLIS, J., PERKINS, Ch. & STREBE M., i.c. p. 123 zie ook: BENEDICT, B., i.c., p.8 37 BENEDICT, B., i.c., p. 8 31
Georges Lichtenstein
Information Network Forensics
versie 1.0 (25/07/yyyy)
Forensische informatica Netwerken & Internetten 14-59 ___________________________________________________________________________ de praktijk echter weinig wordt geïmplementeerd. In de plaats van dit netwerkprotocol wordt TCP/IP (infra) gebruikt.38 Vergis je niet: dit OSI-model is geen definitie van een netwerkachitectuur! Daarvoor zou het immers de juiste interfaces en protocollen moeten definiëren die in elke laag van toepassing zijn en dat doet het OSI-model niet.39 Het is gewoon een concept dat u kan helpen tot een beter begrip te komen van de complexe interacties die zich voordoen tussen de apparaten in een netwerk. Het OSI – model heeft geen enkele functie in het communicatieproces. Het feitelijke werk wordt verricht door de daarvoor bestemde hardware en software. Het definieert alleen welke taken moeten worden uitgevoerd.40
1.6.3.b. Bespreking van het OSI-Model Het OSI referentie model splitst elk netwerk op in zeven verschillende lagen die een welbepaalde netwerkfunctie toegewezen krijgen. Elk van deze lagen voorziet de bovenliggende laag van de nodige functionaliteit en gebruikt de functies van de onderliggende laag. 41 De drie onderste lagen zijn netwerkafhankelijk en bevatten de protocol-stack die de verbinding tot stand brengen. Een protocol-stack is een verzameling protocollen die van boven naar beneden worden verwerkt als onderdeel van een communicatieproces. 42 Om communicatie tussen twee computers mogelijk te maken, moeten op beide computers dezelfde protocol-stacks actief zijn.
Het OSI-model bestaat uit exact zeven lagen. Hoe komt men aan die zeven lagen? Welnu, men heeft vijf principes vastgelegd:43 1.We creëren een nieuwe laag voor elk benodigd niveau van abstractie; 2.De verzameling van gedefinieerde lagen moet groot genoeg zijn om afzonderlijke functies ook in afzonderlijke lagen te stoppen, maar weer niet zó groot dat de omvang van de architectuur onhandig wordt; 3.Internationale standaarden definiëren elke laag; 4.Elke laag heeft een welgedefinieerde functie; 5.De hoeveelheid informatie die tussen de verschillende lagen wordt uitgewisseld via de interfaces moet zo klein mogelijk zijn.
38
BENEDICT, B., i.c., p. 8 http://www.diskidee.nl/netwerken_ontsluierd.htm 40 CHELLIS, J., PERKINS, Ch. & STREBE M., i.c. p. 124 41 BENEDICT, B., i.c., p. 9 42 CHELLIS, J., PERKINS, Ch. & STREBE M., i.c. p. 125 43 http://www.diskidee.nl/netwerken_ontsluierd.htm 39
Georges Lichtenstein
Information Network Forensics
versie 1.0 (25/07/yyyy)
Forensische informatica Netwerken & Internetten 15-59 ___________________________________________________________________________
OSI-Model Het OSI-model heeft 7 lagen waarbij iedere laag een specifiek aspect van de netwerk communicatie voor zijn rekening neemt:44 1. Fysieke laag verzorgt het fysieke transport van bits tussen systemen Dit is de onderkant van het OSI-model. De fysieke laag definieert de methodes voor het verzenden en ontvangen van data over het netwerk. Dat omvat alles wat nodig is om de data fysiek over een netwerk te transporteren. Ook de bekabelingsmethodes, maar niét de bekabeling zelf. De fysieke laag behandelt immers de functies en diensten die nodig zijn om bytes via de bekabeling of een ander fysiek medium te versturen, maar dus niet dat medium zelf. Als je bijvoorbeeld een modem gebruikt, dan mag je de benodigde protocols (zoals V.90 en V.42bis maar ook de RS-232-protocols) tot de fysieke laag rekenen maar niet de modem en de seriële kabel zelf. ISDN-protocollen als X.75 en V.120 horen hier ook in thuis. Naast de bekabelingsmethodes omvat de fysieke laag alle toestellen (zoals modems, hubs, switches en repeaters) die dienen om de netwerkaansluiting van een station op de netwerkbekabeling aan te sluiten, maar ook alle signalisatie voor het verzenden en ontvangen van data (zoals RTS/CTS of XON/XOFF bij seriële verbindingen) en de mogelijkheid om signalisatie fouten in de netwerkmedia te detecteren. Het meest bekende voorbeeld van protocols voor de fysieke laag is de IEEE 802-serie. 2. Datalinklaag beheert en controleert de datatransmissie en probeert fouten te corrigeren of meldt ze Deze laag verzorgt de eigenlijke dataverbinding. Dat omvat de synchronisatie van de transmissie en het foutenbeheer op frameniveau alsook de foutcorrectie zodat informatie verstuurd kan worden via de fysieke laag. Het formatteren van het frame en de CRC-afhandeling (CRC controleert op fouten in het hele frame) gebeuren in deze laag. Je hebt meer dan waarschijnlijk al gehoord van Ethernet en Token Ring: dat zijn netwerktoegangsmethodes en deze laag voert die uit. De verbindingslaag voorziet ook de adresinformatie voor de fysieke laag bovenop het verstuurde frame. Voor Internet zijn twee voorbeelden van 44
Dit stuk werd volledig overgenomen van: http://www.diskidee.nl/netwerken_ontsluierd.htm zie ook: http://kurtkoenig.homeunix.net/dataentelecom/TCPIP.htm#1
Georges Lichtenstein
Information Network Forensics
versie 1.0 (25/07/yyyy)
Forensische informatica Netwerken & Internetten 16-59 ___________________________________________________________________________ een protocol voor de dataverbindingslaag SLIP en PPP, al horen die eigenlijk ook een stukje bij de netwerklaag (we hadden al gezegd dat TCP/IP niet helemaal past in het OSI-model). Microsoft en Novell hebben hier geen specifieke protocollen voor. 3. Netwerklaag verzorgt het transport, de adressering en de routering van pakketten doorheen een netwerk De netwerklaag beheert de transmissie van berichten (pakketten) tussen netwerkstations. Hier wordt de routering verzorgd. Routering wil zeggen dat gebruik gemaakt wordt van bepaalde informatie om de data sequentieel van een netwerkstation naar een ander te laten lopen, liefst via het meest economische pad en dat zowel logisch als fysiek. Via deze laag kun je ook pakketten versturen via andere netwerken mits het gebruik van speciale toestellen die men routers noemt. Routers worden in deze laag gedefinieerd en ze koppelen twee netwerken die op het niveau van de netwerklaag verschillen, maar wel dezelfde transportlaag gebruiken. Bijvoorbeeld de koppeling van een Ethernet-netwerk aan een openbaar ISDN-netwerk. De bekendste netwerklaagprotocollen zijn IPX en SPX van Novell en IP voor Internet. De netwerklaag is meteen de grens van het communicatiesubnet: boven deze laag neemt de graad van abstractie drastisch toe. Voor laag 3 en lager is er meestal een bovengrens gesteld voor de grootte van de berichten (pakketten) die ze kunnen verwerken. In broadcast-netwerken is het routeren eenvoudig, zodat de netwerklaag dun is of helemaal niet bestaat. Dat is dan ook de reden waarom u het hieronder vermelde transportlaagprotocol TCP zo vaak gecombineerd ziet met IP tot wat men schrijft als TCP/IP. 4. Transportlaag verzorgt een data-onafhankelijk eind-naar-eindtransportsysteem voor de hogere lagen De eind-naar-eindtransmissie van data hoort thuis in de transportlaag. Deze laag valt buiten het bestek van het communicatiesubnet en heeft meestal geen bovengrens voor de omvang van de pakketten die ze kan ontvangen. De vorige laag (de derde of netwerklaag) heeft wel zo'n bovengrens, dus moet de transportlaag alle binnenkomende pakketten in stukken breken zodat elk stuk kleiner of gelijk is aan die maximum omvang. Elk stuk moet bovendien van bijkomende adreshoofdingen voorzien worden en alle stukken moeten dan doorgestuurd worden naar het lagere niveau. De voornaamste functie van de transportlaag is ervoor te zorgen dat de data betrouwbaar overgedragen wordt. Zo moet de transportlaag onder andere garanderen dat data in dezelfde volgorde aankomen als ze verzonden werden. Daarnaast moet ze de data foutloos verzenden en ontvangen maar ook binnen een zekere tijdsspanne. Het erg bekende transportlaagprotocol voor Internet heet TCP, maar er is ook UDP en in de Microsoft-implementatie van Internetprotocollen ook nog WINS en RAS.
Georges Lichtenstein
Information Network Forensics
versie 1.0 (25/07/yyyy)
Forensische informatica Netwerken & Internetten 17-59 ___________________________________________________________________________ 5. Sessielaag verzorgt de communicatie tussen twee applicatieprocessen en doet aan foutenbeheer De sessielaag begint en beëindigt communicatiesessies tussen twee netwerkstations. Dat betekent dat deze laag de verbinding tot stand brengt, onderhoudt en ook weer verbreekt. De sessielaag is daarnaast nog verantwoordelijk voor de vertalingen tussen netwerknamen en stationadressen. Je kunt dit vergelijken met telefoneren naar iemand als je alleen zijn naam kent. Je hebt immers zijn of haar telefoonnummer nodig om de verbinding tot stand te brengen. De sessielaag regelt bovendien de hele dialoog tussen twee stations in functie van het uitvoeren van hun communicatie: zo kunnen de stations tegelijkertijd informatie uitwisselen, of om beurten, of met onderbrekingen. De sessielaag zorgt ervoor dat ieder op zijn beurt aan het "woord" komt en dat onderbrekingen opgevangen worden zonder dat alle informatie die daaraan vooraf ging moet worden herhaald. 6. Presentatielaag codeert en decodeert gegevens voor de applicatielaag Deze zesde laag verzorgt alle functies die zo vaak terugkomen, dat het de moeite waard is deze functies apart op te nemen en beschikbaar te stellen voor alle gebruikers. Voorbeelden zijn dataconversies (formaat-omzettingen), dataencryptie (het encoderen van data terwijl die verzonden worden, of het decoderen tijdens de ontvangst). Bij die encryptie kun je aan beveiliging denken, maar bijvoorbeeld ook aan compressie. De presentatielaag is dus niet echt precies gedefinieerd en wordt daarom niet altijd voorzien. 7. Applicatielaag verbindt de netwerkapplicaties met de gebruikers Deze zevende laag, de applicatielaag, heeft het hoogste abstractieniveau. Hierin draaien alle netwerkapplicaties. Je moet voor netwerkapplicaties denken aan bestandsoverdracht, terminalemulatie, elektronische post (e-mail), alle Internetapplicaties (zoals DNS, SNMP, SMTP en POP3, telnet, FTP, finger, NFS, HTTP en MIME) maar ook NetBIOS-gebaseerde toepassingen (NetBIOS of NetBEUI is het netwerkprotocol dat door Windows-systemen onderling gebruikt wordt) zoals NET, NETCOPY, NETRUN en dergelijke.
De zeven lagen communiceren met elkaar en vormen een totale verbinding, inclusief de applicatie. Iedere verbinding kan op deze wijze in kaart gebracht worden door de verschillende componenten te verdelen over de lagen. Door deze standaard te gebruiken kan op een meer abstracte wijze de kwetsbaarheid van een verbinding onderzocht worden.45 45
BENEDICT, B., i.c. p. 9
Georges Lichtenstein
Information Network Forensics
versie 1.0 (25/07/yyyy)
Forensische informatica Netwerken & Internetten 18-59 ___________________________________________________________________________ Elk van deze lagen heeft zijn eigen kwetsbaarheden en mogelijkheden tot beveiliging. In onderstaand schema geven we een samenvatting van het OSI – model met de daarbij behorende risico’s verbonden aan elke laag. Laag46
Risico
Applicatielaag Presentatielaag Sessielaag Transportlaag Netwerklaag Datalink laag Fysieke laag
Wachtwoord kopiëren Encryptie kraken en wijzigen Starten van een eigen verbinding Wijzigen inhoud bericht Beinvloeden route Koppelen aan netwerk Aftappen signaal
1.6.3.c. Uitbreiding van het OSI-Model In februari 1980 startte IEEE47 een project met de naam Project 802 met de bedoeling een bijdrage te leveren aan de definitie van een aantal LANnormen.48 De IEEE-commissie was de mening toegedaan dat de tweede laag van het OSI-model (data link layer) in meer detail moest worden beschreven en verdeelde de laag op in 2 sublagen: LLC (Logical Link Control) Deze laag moest voorzien in foutenbeheersing en flow control. Zij voorziet in SAP’s (Service Access Point) die door andere computers kunnen worden gebruikt als referentie en om gegevens over te brengen van de LCC-laag naar de bovenliggende OSI-lagen. MAC (Media Access Control) Dit is de laagste van de twee sublagen, maakt gedeeld gebruik van de netwerkadapter mogelijk en communiceert rechtstreeks met de netwerkadapter.49
1.6.4. Het TCP/IP – Model of Internet - Model 1.6.4.a. Inleiding Het begrip 'netwerkprotocollen' is erg ruim. Meestal bedoelt men er zowat alles mee dat een netwerk laat functioneren op softwareniveau. Nadat je een netwerk geconstrueerd hebt door allerlei hardware met kabels aan elkaar te koppelen, zorgt software er immers voor dat er data over dat netwerk gestuurd kan worden. Het netwerk heeft zelf ook al een organisatie - bijvoorbeeld Ethernet - die eigenlijk met software te maken heeft, maar omdat dat in de 46
BENEDICT, B., i.c., p. 12 IEEE: Institute for Electrical and Electronic Engineers, Inc. 48 CHELLIS, J., PERKINS, Ch. & STREBE M., i.c. p. 134, Project 802 verwijst naar het jaar en de maand waarin het project begon. 49 CHELLIS, J., PERKINS, Ch. & STREBE M., i.c. p. 137 47
Georges Lichtenstein
Information Network Forensics
versie 1.0 (25/07/yyyy)
Forensische informatica Netwerken & Internetten 19-59 ___________________________________________________________________________ hardware ingebouwd zit staan we daar verder nooit bij stil. Een Ethernet netwerk zorgt er zelf al voor dat data in mooie pakketjes (de Ethernet-frames) ingepakt wordt en verzonden doorheen de kabeling met behulp van een collisiedetectiemechanisme. Hoewel het dus mogelijk is om rechtstreeks hiervan gebruik te maken om data over het netwerk te sturen, heeft dat een aantal nadelen op een hoger niveau. Zo zou je netwerkaansturing alleen maar geschikt zijn voor een Ethernet netwerk, niet voor Token Ring of iets anders. Routeren naar een ander netwerk zou zo goed als onmogelijk zijn. Bovendien zou je alleen rauwe data kunnen versturen, er zou geen organisatie in die data zitten om aan te geven dat die bij bepaalde applicaties hoort of een bepaald doel heeft. Daarvoor dienen de hogere netwerkprotocollen. Die zijn onafhankelijk van de netwerktopologie en -organisatie, wat wil zeggen dat ze voor zowel Ethernet als Token Ring als een hele hoop andere hetzelfde zijn. Ze functioneren dus binnen de OSI-lagen 3 en 4 (netwerk- en transportlaag). De hogere netwerkprotocollen zullen data in bij dat protocol horende pakketten indelen, waarbij ieder pakket voorzien zal zijn van adressen voor zender en ontvanger, maar ook van inlichtingen in verband met het doel van de data. Hogere netwerkprotocollen laten dus toe data te identificeren als bedoeld voor een bepaald doel of een bepaalde applicatie.50 TCP/IP51 is het netwerkprotocol waarmee computers op Internet onderling communiceren en bestaat uit een verzameling verwante protocollen die zijn ontwikkeld door DARPA52 in het kader van een project voor netwerkinterconnectiviteit dat in 1969 is gestart. TCP/IP is verreweg het meest gebruikte protocol voor het realiseren van verbindingen tussen computers en is zoals gezegd het Internet protocol.53 TCP/IP is het netwerkprotocol van de Unix-wereld en omdat het internet oorspronkelijk groeide uit de koppeling van Unix-machines, is TCP/IP dus ook het netwerkprotocol voor het internet. 54 TCP/IP voldoet niet exact aan het OSIlagenmodel. Vaak wordt TCP wel ingedeeld bij de transportlaag en IP bij de netwerklaag, maar de waarheid is dat bij TCP/IP het onderscheid vaak vervaagt en een en ander in elkaar overvloeit. Zoals je je wellicht herinnert zorgt de netwerklaag voor het transport, de adressering en de routering doorheen een netwerk, terwijl de transportlaag zorgt voor de dataonafhankelijke eind-naar-eindtransmissie voor de hogere lagen. Bij TCP/IP kun je zeggen dat IP instaat voor transport, adressering en routering en dat TCP de eind-naar-eindtransmissies verzorgt, maar zo simpel is het niet altijd. TCP heeft bijvoorbeeld nog een 'broertje' dat UDP heet en ook voor eind-naareindtransmissies zorgt. We zullen daarom eerst beginnen met de basis van alles: IP of het Internet Protocol.55
50
alinea overgenomen van: http://www.diskidee.nl/netwerken_ontsluierd.htm TCP/IP: Transmission Control Protocol en Internet Protocol 52 DARPA: Department of Defence’s Advanced Projects Research Agency, voorheen ARPA, zie terzake: CHELLIS, J., PERKINS, Ch. & STREBE M., i.c. p. 1 51 53 CHELLIS, J., PERKINS, Ch. & STREBE M., i.c. p. 151 54 http://www.diskidee.nl/netwerken_ontsluierd.htm 55 http://www.diskidee.nl/netwerken_ontsluierd.htm 51
Georges Lichtenstein
Information Network Forensics
versie 1.0 (25/07/yyyy)
Forensische informatica Netwerken & Internetten 20-59 ___________________________________________________________________________ Internet is een wereldwijde aaneenschakeling van een groot aantal computernetwerken. Het bijzondere is dat er binnen dat Internet één universele taal geldt, namelijk TCP/IP.56
1.6.4.b. Bespreking van het TCP/IP protocol
57
Internet Model TCP/IP gebruikt slechts 4 lagen: Applocation layer Bestaat uit de applicatieprotocollen die over een TCP/IP netwerk worden aangeboden, zoals DNS, SNMP, FTP, SMTP, NEWS, http, HTML.58 Transport layer De transport layer levert een end-to-end gegevensoverdracht service tussen applicatieprocessen (applicatieprogramma’s). Meerdere applicatieprocessen kunnen tegelijkertijd binnen een computersysteem draaien. Deze laag bestaat o.a. uit de protocollen TCP en UDP59 Netwerk layer De network layer levert een end-to-end gegevensoverdracht service tussen computersystemen (zgn. hosts). Deze laag bestaat o.a. uit de protocollen IP, ICMP en verscheidene routeringsprotocollen.60 Subnetwerk interface layer De subnetwork interface layer bevat de nodig functies voor het versturen en ontvangen van network layer pakketjes via het lokale subnetwerk waarop een computersysteem is aangesloten. Voorbeelden van protocollen in deze laag zijn ISDN, xDSL, Ethernet, ATM, WDM.61
1.6.4.c. De voor- en nadelen van TCP/IP In het algemeen kan gezegd worden dat het Internet werkt volgens het clientserver principe. Dit principe beschrijft de relatie tussen twee computers 56
BENEDICT, B., i.c., p. 49 www.simpleweb.org/nm/research/ results/publications/pras/pbna99.pdf 58 www.simpleweb.org/nm/research/ results/publications/pras/pbna99.pdf 59 www.simpleweb.org/nm/research/ results/publications/pras/pbna99.pdf 60 www.simpleweb.org/nm/research/ results/publications/pras/pbna99.pdf 61 www.simpleweb.org/nm/research/ results/publications/pras/pbna99.pdf 57
Georges Lichtenstein
Information Network Forensics
versie 1.0 (25/07/yyyy)
Forensische informatica Netwerken & Internetten 21-59 ___________________________________________________________________________ waarbij de ene computer, de client, een dienst vraagt aan de andere computer, de server, die vervolgens die dienst uitvoert.Een Host is een centrale computer die on line kan worden benaderd en bestanden, diensten of programma’s aanbiedt. Een router is een computer die aan de hand van het IP-adres besluit via welk netwerk het packet het beste kan worden verstuurd.Het Internet en WWW62 zijn geen identieke begrippen(supra).63 De voordelen van TCP/IP zijn:64 • • • • • • • •
Uitgebreide connectiviteit onder alle types computers en servers Rechtstreekse toegang tot het Internet Sterke ondersteuning van routering Ondersteuning van SNMP65 Ondersteuning van SHCP66, dat de dynamische toewijzing van client IP-adressen mogelijk maakt Ondersteuning van WINS67 dat het opzoeken van namen op Microsoftclients en –servers mogelijk maakt Ondersteunen van de meeste andere internet protocollen Gecentraliseerde toewijzing van TCP/IP- domeinen, waardoor bedrijven internetwerken kunnen vormen (Intranetten)
TCP/IP dat het langzaamste procotol is dat bijv. bij Microsoft Windows wordt geleverd heeft echter ook enkele nadelen:68 • De gecentraliseerde toewijzing van TCP/IP-domeinen betekent kosten en inspanning voor de centrale registratie • Door de explosieve uitbreiding van Internet is het aantal beschikbare unieke domeinnummers afgenomen. Een nieuwe versie van IP (infra) moet aan dit probleem een einde maken • De installatie is niet gemakkelijk • Er is een relatief hoge overhead nodig voor een naadloze connectiviteit en routering • De snelheid is lager dan bij IPX en NetBEUI.
1.6.5. Vergelijking van het OSI-model en TCP/IP Als we beide modellen vergelijken, valt de onmiddellijk de vereenvoudiging op naar 4 lagen bij het TCP/IP gelaagd netwerkmodel.
62
WWW: World Wide Web (is het grafische deel van het Internet) BENEDICT, B. , i.c., p. 49-50 64 CHELLIS, J., PERKINS, Ch. & STREBE M., i.c. p. 151 65 SNMP: Simple Netwerk Management Protocol 66 SHCP: Dynamic Host Configuration Protocol 67 WINS: Windows Internet Name Service 68 CHELLIS, J., PERKINS, Ch. & STREBE M., i.c. p. 152 63
Georges Lichtenstein
Information Network Forensics
versie 1.0 (25/07/yyyy)
Forensische informatica Netwerken & Internetten 22-59 ___________________________________________________________________________
69
Uit de figuur valt af te leiden dat de applicatielaag van het Internet model de functies combineert van de drie bovenste OSI-lagen. De Subnetwerklaag van TCP/IP verenigt de fysieke en gegevensverbindingslagen van het OSI-Model. Enkel de Transport en Netwerklagen komen in beide modellen overeen. In onderstaande figuur geven we aan welke protocollen uit TCP/IP terug te vinden zijn in de overeenkomstige OSI-lagen.70 OSI Laag 7 Application 6 Presentation 5 Session 4 Transport 3 Network 2 Data-link (MAC)
TCP/IP http FTP SMTP SNMP Telnet TCP UDP
Network node Gateway
IP SLIP PPP
Router Bridge repeater UTP-kabel
1 Physical
1.7. TCP/IP - Protocollen 1.7.1. Inleiding Zoals uit de figuur hierboven blijkt kunnen de TCP/IP-lagen onderverdeeld worden in een aantal protocollen, die de functionaliteiten bevatten die noodzakelijk zijn voor de ondersteuning en de overgang naar een volgende bovenliggende laag. In dit deel zullen we elk van deze protocollen kort bespreken. Hierbij zullen we elk protocol binnen zijn respectievelijke TCP/IP laag behandelen.
1.7.2. Protocollen van de application layer
69 70
www.simpleweb.org/nm/research/ results/publications/pras/pbna99.pdf http://kurtkoenig.homeunix.net/dataentelecom/TCPIP.htm#1
Georges Lichtenstein
Information Network Forensics
versie 1.0 (25/07/yyyy)
Forensische informatica Netwerken & Internetten 23-59 ___________________________________________________________________________
1.7.2.a. FTP: File Transfer Protocol Dit protocol laat toe bestanden te verzenden tussen twee systemen via TCP. Er bestaat een gelijkaardig maar minder populair protocol namelijk TFTP (Trivial File Transfer Protocol), dat gebruik maakt van UDP.71 FTP kan voor zowel het up- als downloaden van bestanden worden gebruikt en is niet alleen beperkt tot tekstbestanden maar ondersteund ook binaire bestanden. Voor het gebruik van FTP is een “login account” of anonymous toegang op een FTP-server nodig. Het commando dat hiervoor gebruikt wordt in alle operating systems (UNIX, Microsoft Windows, OS/2, DOS, VMS) is ftp.72 FTP verschilt van andere applicaties doordat het van twee TCP-verbindingen gebruik maakt om een bestand te verzenden of ontvangen. Een control connection onderhoudt de normale Client/Server-verbinding, terwijl een aparte data connection wordt gemaakt voor iedere bestandsoverdracht.73 FTP maakt gebruik van de TCP service, wanneer een FTP sessie wordt gestart wordt er via een TCP verbinding een controle verbinding opgezet. Deze verbinding wordt gebruikt voor alle 42 commando’s en de respons hierop tussen local en remote host (zie Figuur).
74
FTP-Model Voorts zijn er drie situaties waarvoor een tweede FTP verbinding wordt opgezet: • versturen van een bestand van local naar remote host, • versturen van een bestand van remote naar local host, en • versturen van de directory inhoud van remote naar local host.75 Aangezien het voor de besturing van een FTP sessie noodzakelijk is om een garantie te hebben dat beide hosts hetzelfde ’beeld’ van de toestand van sessie hebben moet de communicatie tussen beide betrouwbaar zijn, het is daarom voor de hand liggend dat de controle verbinding gebruik maakt van een TCP verbinding. Bestanden die worden uitgewisseld kunnen van willekeurige omvang zijn. Het zal vaak zo zijn dat een bestand in meerdere pakketten moet worden gesplitst om te kunnen worden verstuurd. Wanneer dit transport onbetrouwbaar gebeurt (bijvoorbeeld door gebruik te maken van UDP), dan 71
http://kurtkoenig.homeunix.net/dataentelecom/TCPIP.htm#1 DONS, B., ‘Het Linux Handboek’, Addison Wesley, 1996, 487 p., i.c., p. 236 73 DONS, B., i.c., p. 237 74 www.simpleweb.org/nm/research/ results/publications/pras/pbna99.pdf 75 www.simpleweb.org/nm/research/ results/publications/pras/pbna99.pdf 72
Georges Lichtenstein
Information Network Forensics
versie 1.0 (25/07/yyyy)
Forensische informatica Netwerken & Internetten 24-59 ___________________________________________________________________________ kan het gebeuren dat in het ontvangen bestand hiaten zitten. In z’n algemeenheid zal dit ongewenst zijn, derhalve is voor bestandstransfer TCP de logische keuze.76 Met PPP of SLIP (infra) is FTP over een seriële verbinding mogelijk en heeft daarmee toegang tot het Internet.
1.7.2.b. HTTP: Hyper Text Transfer Protocol HTTP maakt het mogelijk om op een relatief eenvoudige manier multimedia bestanden bruikbaar te maken voor het Internet (tekst, foto's, geluid, video, ...). De kern van HTTP is dat het bestanden beheert die hyperlinks bevatten naar andere bestanden, die bij het selecteren een nieuwe transfer zullen veroorzaken. Om dit mogelijk te maken draaien alle webservers een HTTP daemon: een programma dat enkel en alleen tot taak heeft te wachten tot er HTTP aanvragen binnenkomen en deze daarna te behandelen.77 HTTP-requests78 Een HTTP-request bestaat uit de request-soort, de URL, de headervelden (koptitelvelden) en eventueel een inhoud. Een overzicht van de meest gebruikte HTTP-requests: • • •
GET – Ontvang het document gespecificeerd door de URL. HEAD – Ontvang alleen de headers van het op te vragen document. POST – Zend data naar de server.
Een complete aanvraag inclusief de headervelden kan er als volgt uit zien: GET /wiki/HTTP HTTP/1.1 Host: nl.wikipedia.org Connection: close User-Agent: Mozilla/5.0 (X11; U; Linux i686; rv:1.6) Gecko/20040401 Debian/1.6-4 Accept: text/xml,text/html,text/plain,image/png,image/jpeg,image/gif Accept-Charset: ISO-8859-1,utf-8 Keep-Alive: 300
HTTP-responses Een HTTP-response bestaat uit een resultaat-code, headervelden en een body (de boodschap). Een overzicht van de meest voorkomende resultaat codes: • • •
404 Not Found – Het opgevraagde document bestaat niet. 304 Not Modified – Tov de versie in de cache is de pagina niet gewijzigd. 200 OK – Het gevraagde document is succesvol opgevraagd.
De reactie van bovenstaande aanvraag ziet er dan als volgt uit: HTTP/1.0 200 OK Date: Thu, 08 Apr 2004 18:24:33 GMT Server: Apache/1.3.29 (Unix) PHP/4.3.4 76
www.simpleweb.org/nm/research/ results/publications/pras/pbna99.pdf http://kurtkoenig.homeunix.net/dataentelecom/TCPIP.htm#1 78 http://nl.wikipedia.org/wiki/Hyper_text_Transfer_Protocol 77
Georges Lichtenstein
Information Network Forensics
versie 1.0 (25/07/yyyy)
Forensische informatica Netwerken & Internetten 25-59 ___________________________________________________________________________ X-Powered-By: PHP/4.3.4 Content-Language: nl Content-Type: text/html; charset=iso-8859-1 X-Cache: MISS from wikipedia.org Connection: close Content Type: TEXT/HTML Content Length: 3'127 bytes (received) --- De HTML code ---
Een complete aanvraag inclusief de headervelden kan er als volgt uit zien: GET /wiki/HTTP HTTP/1.1 Host: nl.wikipedia.org Connection: close User-Agent: Mozilla/5.0 (X11; U; Linux i686; rv:1.6) Gecko/20040401 Debian/1.6-4 Accept: text/xml,text/html,text/plain,image/png,image/jpeg,image/gif Accept-Charset: ISO-8859-1,utf-8 Keep-Alive: 300
1.7.2.c. HTTPS-protocol
Het HTTPS protocol is een beveiligde (versleutelde) versie van HTTP. HTTPS is een afkorting van Hyper Text Transport Protocol Secure. Alle gegevens die een web client en een web server uitwisselen worden nu versleuteld volgens de SSL standaard. Met HTTPS is het nog steeds mogelijk dat andere Internet gebruikers de communicatie afluisteren, maar alle gevens (denk aan credit card nummer en password) zijn onbruikbaar. Bovendien zou de software op zowel de server als de client het direct merken als de gegevens onderweg veranderd zijn.79
1.7.2.d. SMTP: Simple Mail Transfer Protocol 80 is de de-facto standaard voor het versturen van e-mail over het internet. SMTP is een relatief simpel, tekstgebaseerd protocol: eerst wordt één of meerdere ontvangers van een e-mail gegeven, en daarna de tekst van het bericht. Het is makkelijk om een SMTP-server te testen door middel van het telnet programma. SMTP gebruikt TCP poort 25. Om de SMTP-server voor een domein te bepalen wordt het MX record (Mail eXchange) van de DNS gebruikt. SMTP begon wereldwijd gebruikt te worden in de vroege jaren 1980. Toen was het een aanvulling voor UUCP. UUCP was geschikter om e-mail te versturen tussen computers die niet altijd verbonden waren. SMTP daarentegen
79 80
http://www.zonder.nl/Explain/Https.html http://nl.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol
Georges Lichtenstein
Information Network Forensics
versie 1.0 (25/07/yyyy)
Forensische informatica Netwerken & Internetten 26-59 ___________________________________________________________________________ is ontwikkeld voor als zowel de ontvanger als de zender altijd verbonden zijn met het netwerk. Sendmail was een van de eerste (zoniet de eerste) mail transfer agent programma's die SMTP gebruikt. Sinds 2001 bestaan ten minste 50 verschillende programma's die SMTP ondersteunen als client (zender van berichten) of server (ontvanger van berichten). Enkele populaire SMTP-serverprogramma's zijn Postfix (van IBM), Qmail (van Daniel J. Bernstein), en Microsoft Exchange Server. Omdat het SMTP-protocol enkel als een puur ASCII-tekst protocol ontwikkeld was kan het niet werken met binaire (niet-tekst) bestanden (attachments). Standaarden zoals MIME werden ontwikkeld om binaire bestanden om te vormen zodat ze verstuurd kunnen worden over SMTP. De hedendaagse SMTP-servers ondersteunen de 8-bit MIME-extensie, wat het versturen van binaire bestanden bijna net zo gemakkelijk maakt als gewone tekst. SMTP dient niet om berichten van een server op te halen, enkel om berichten te versturen. Voor het ophalen van e-mail bestaat er POP3 en IMAP. Spam en de veiligheid van SMTP Eén van de beperkingen van het originele SMTP is dat er geen mogelijkheid is om na te gaan of de zender wel echt is wie hij beweert te zijn. Daarom werd de SMTP-AUTH-extensie ontwikkeld. Deze beperking wordt uitgebuit bij het versturen van spam waarbij een fictieve afzender bij een e-mail kan worden opgegeven. Hierdoor is spam nog steeds een groot probleem. Het SMTP-protocol grondig veranderen of vervangen door een compleet nieuw protocol wordt niet mogelijk geacht omdat het zo veelvuldig verspreid en geïmplementeerd is.
1.7.2.e. POP: Post Office Protocol Dit is een protocol dat gebruikt wordt om e-mail berichten effectief te downloaden van de server naar de cliënt en ze daar lokaal te beheren (in tegenstelling tot het lezen, bewerken en verzenden van op de server zelf) met de optie om de berichten al dan niet van de server te verwijderen, wat handig is indien men zijn e-mail vanaf meerdere plaatsen wil kunnen inkijken. POP3 kan met of zonder SMTP worden gebruikt.81 Om mails vanaf een andere plaats te kunnen lezen is het POP protocol ("Post Office Protocol") ontwikkeld. Met dit protocol kan de gebruiker vanaf eender welke locatie zijn nieuwe mail eerst ophalen van de server, en dan lokaal bekijken. De communicatie met de server die nodig is om de mail op te halen verloopt via het POP-protocol. Hiertoe dient op de server een zogenaamde POP-server te draaien, software die de mail van een bepaalde gebruiker over het netwerk kan sturen.82 81 82
http://kurtkoenig.homeunix.net/dataentelecom/TCPIP.htm#1 http://docent.hogent.be/~sdck780/1tin/h013041sb/werkingmail.html
Georges Lichtenstein
Information Network Forensics
versie 1.0 (25/07/yyyy)
Forensische informatica Netwerken & Internetten 27-59 ___________________________________________________________________________ Bij gebruik van POP kan men dus de nieuwe mail die op de server staat zien, maar niet de oude (eventueel reeds gelezen) mail. Nadeel: Als een gebruiker mail leest op machine A, en de volgende dag mail wil lezen op machine B, kan hij alle eerder opgehaalde mail niet meer "zien". Deze is terug te vinden op de lokale werkplek (POP protocol heeft als beperking, dat het plaatsgebonden is.).83
84
1.7.2.f. IMAP: Internet Message Access Protocol Dit protocol lijkt sterk op POP3 maar ondersteunt nog wat extra zaken, zoals het doorzoeken van e-mail berichten op kernwoorden (IMAP4). De berichten die de woorden bevatten worden zo geselecteerd en gedownload, wat tijd kan besparen. Berichten kunnen ook in folders worden ingedeeld, mailboxen kunnen gedeeld worden met anderen en een gebruiker kan toegang krijgen tot meerdere mail servers. Verder is er een betere integratie met MIME (een manier om duidelijk te maken van welk type een bestand is: grafische file, audio, ...) zodat de cliënt enkel de titels van de berichten kan downloaden zonder te moeten wachten tot ongewenste attachments gedownload zijn. IMAP gebruikt SMTP voor de communicatie tussen e-mailclient en server.85
Net zoals bij POP3 zijn er enkele staten nodig tussen de IMAP-server en de IMAP ondersteunende cliënt. Dit gebeurt weer door middel van een connectie middels TCP/IP. Poort 143 is de gebruikte IMAP4 poort. Wanneer de cliënt een connectie wil maken, klopt het aan op deze poort waardoor de server weet dat hij ook klaar moet zijn. Gedurende de tijd dat de gebruiker zijn folders op de IMAP server wil bekijken of archiveren is de verbinding open. 86
83
http://docent.hogent.be/~sdck780/1tin/h013041sb/werkingmail.html http://docent.hogent.be/~sdck780/1tin/h013041sb/werkingmail.html 85 http://kurtkoenig.homeunix.net/dataentelecom/TCPIP.htm#1 86 http://www.janaserver.nl/tips_trucs/wat_verschil_tussen_imap_pop3.htm 84
Georges Lichtenstein
Information Network Forensics
versie 1.0 (25/07/yyyy)
Forensische informatica Netwerken & Internetten 28-59 ___________________________________________________________________________
87
1.7.2.g. SNMP: Simple Network Management Protocol Dit protocol wordt veel ingezet voor de besturing van netwerkapparatuur die gebruik maakt van TCP/IP.88 Met dit protocol kan men aan netwerkbeheer doen en in de gaten houden hoe bepaalde netwerk apparaten het stellen. Dit protocol is niet noodzakelijk beperkt tot TCP/IP netwerken.89 De meeste software voor netwerkanalyse is compatibel met SNMP en een SNMP-monitor is een zeer handig hulpmiddel in netwerken van enige complexiteit.90 De werking van SNMP91 De manier waarop SNMP werkt is uiterst simpel. Het wisselt netwerkinformatie uit doormiddel van ‘messages’ ( technische benaming is: Protocol Data Units of PDU’s). Vanuit de hogere liggende lagen van het communicatie model, kunnen de PDU’s worden gezien als objecten welke variabelen bevatten met waarden, afhankelijk van het netwerk. De SNMP agent zorgt ervoor dat de verschillende variabelen, die voorkomen in de verschillende onderdelen van het internet, te bereiken zijn via andere hosts waarop een SNMP manager draait die de waarden op kan vragen. De communicatie kan op twee manieren geschieden: de manager kan de agent vragen om een specifieke waarde, of de agent stuurt zelf een bericht naar de manager. Verder kan, als hier toegang toe verleent is, door de manager een waarde ingesteld worden in de agent. De waarden, die uit te lezen zijn, hebben over het algemeen betrekking op de data, die via de verschillende protocollen worden verstuurd. Om deze variabelen te kunnen lezen bestaat het TCP/IP netwerk management uit drie onderdelen.
87
Bron: SURFnet, 1998
88
CHELLIS, J., PERKINS, Ch. & STREBE M., i.c. p. 153 http://kurtkoenig.homeunix.net/dataentelecom/TCPIP.htm#1 90 CHELLIS, J., PERKINS, Ch. & STREBE M., i.c. p. 153 91 http://web.inter.nl.net/users/Rohiet.Seosahai/SNMP.htm#8.4 89
Georges Lichtenstein
Information Network Forensics
versie 1.0 (25/07/yyyy)
Forensische informatica Netwerken & Internetten 29-59 ___________________________________________________________________________ 1. Een Management Information Base (MIB) die specificeerd wat voor variabelen het netwerk element bevat. De opbouw van deze MIB’s staan ook beschreven in RFC 1213 2. Een set van gelijke struktuur en een identificatie schema die gebruikt wordt om de variabelen in de MIB te kunnen refereren. Dit wordt de Structure of Management Information (SMI) genoemd en wordt beschreven in RFC 1155. 3. Het Simple Network Management Protocol dat tussen de manager en het onderdeel van het TCP/IP netwerk draait en die wordt beschreven in RFC 1157. Het SNMP protocol bestaat maar uit vijf type berichten (PDU’s) tussen de manager en de agent (zie ook figuur 8.1), dit zijn de “ get-request “, “ get-nextrequest “, “ set request “, “ get-response “ en de “ trap “ operator. De eerste drie berichten worden van de manager naar de agent gezonden en de laatste twee van de agent naar de manager. Doordat er hier twee verschillende UDP poortnummers (SNMP gebruikt UDP) gebruikt worden kan er makkelijker een manager en een agent tegelijkertijd draaien op één enkel systeem.
De get en get-next request, zijn vragen van de manager naar een specifieke waarde van één van de variabelen die de agent heeft bijgehouden en waarop de agent een response stuurt met de waarde van deze variabele. De set-request is een vraag om een bepaalde variabele van de agent van een nieuwe waarde te voorzien en de agent reageert hierop met het terug sturen van de nieuwe waarde (Als hier teminste toestemming voor is verleend) De Trap message is een heel verschillend bericht ten opzichte van de vorige, omdat deze niet eerst voorgegaan wordt door een request van de manager maar rechtstreeks door de agent wordt verzonden. Deze berichten worden naar de manager verzonden als de agent opnieuw opstart of als er een link down gaat. Georges Lichtenstein
Information Network Forensics
versie 1.0 (25/07/yyyy)
Forensische informatica Netwerken & Internetten 30-59 ___________________________________________________________________________ De SNMP manager en agent werken met de zogenaamde object identifiërs. Dit zijn rijtjes van cijfers gescheiden door punten en die een bepaald pad voorstellen waar de informatie vandaan moet komen. Figuur 8.2 laat de structuur zien van zo’n pad (tree) zoals hij gebruikt wordt voor SNMP. Alle variabelen die starten in de MIB beginnen hierbij met 1.3.6.1.2.1 die weer overeen komen met de namen die in deze tree voorkomen. Bij deze 1.3.6.1.2.1 hoor dus het pad “ iso.org.dod.internet.mgmt.mib “
In deze tree is ook nog plaats voor zelf gedefinieerde MIB variabelen om eigen gewenste variabelen uit te lezen of te schrijven. Deze zelf gedefinieerde MIB variabelen moeten gespecificeerd zijn onder de tak van “iso.org.dod.internet.private.enterprises “ (1.3.6.1.4.1) . De Manager Information Base (MIB) is een soort van database waaruit de agent en de manager hun informatie halen. Deze MIB is, zoals te zien is in figuur 8.2, onderverdeeld in verschillende groepen genaamd “system”, “interfaces”, “at (address translation), ip enz. (zie ook RFC 1213 waarin de MIB wordt beschreven). In figuur 8.3 is een voorbeeld te zien van het UDP gedeelte van de MIB tree. Hierin zijn vier simpele variabelen te zien en één tabel met twee simpele variabelen.
Georges Lichtenstein
Information Network Forensics
versie 1.0 (25/07/yyyy)
Forensische informatica Netwerken & Internetten 31-59 ___________________________________________________________________________
In een tabel geeft van de verschillende UDP objects met hun datatype, of hij read only of read/write is en met een beschrijving van wat voor waarde hij aangeeft.
Elke object in de MIB heeft twee belangrijke karakteristieken: zijn object indentifiër (OID) en zijn type. Object typen worden opgebouwd van de fundamentele typen welke worden gedefinieerd in de SMI. De system groep bevat informatie over een netwerk-node. Bijvoorbeeld waar het geplaatst is, bv. "R&D Facility, 3rd floor machine room". De interfaces groep bevat informatie over de netwerk interfaces, zoals Ethernet en point-topoint links. Informatie van deze interfaces worden bijgehouden, zoals het aantal ontvangen pakketten, of de interfaces up of down zijn, e.d.De andere groepen bevatten informatie over de specifieke protocollen, en houden informatie bij zoals hoeveel TCP pakketten er zijn binnengekomen, hoeveel TCP pakketten er zijn verminkt, e.d.
1.7.2.h. NNTP: Network News Transfer Protocol NNTP is geschikt om met zogeheten "newsreaders" berichten op Usenet newsgroups (het elektronisch equivalent van een berichtenbord) te lezen, berichten te schrijven, en erop te reageren. NNTP servers, meestal door ISPs beheert, bewaren de nieuwsberichten en voorzien software om ze te beheren. NNTP cliënt software is meestal in een browser geïntegreerd, maar is ook als aparte software te vinden. NNTP heeft het oorspronkelijke Usenet protocol UUCP (UNIX-to-UNIX Copy Protocol) vervangen.92
92
http://kurtkoenig.homeunix.net/dataentelecom/TCPIP.htm#1
Georges Lichtenstein
Information Network Forensics
versie 1.0 (25/07/yyyy)
Forensische informatica Netwerken & Internetten 32-59 ___________________________________________________________________________ De werking van NNTP93 Het Network News Transfer Protocol wordt gebruikt om nieuws artikelen te posten en op te vragen van een nieuws server. Tevens voorziet NNTP ook in commando's voor de communicatie tussen nieuws servers onderling bij de uitwisseling van nieuws berichten. Het NNTP protocol wordt beschreven in document RFC977. Onderstaande commando's vormen een selectie uit dit document. Onderstaande commando's hebben alleen betrekking op het lezen van nieuws artikelen. NNTP commando's zijn case insensitive. Standaard maakt het NNTP protocol gebruik van poort nummer 119. list - show newsgroup list group nwsgrp - show statistics of newsgroup stat n - show statistics of article and set current article pointer next - set current article pointer to next article last - set current article pointer to previous article article [n] - show header and body of article head [n] - show header of article body [n] - show body of article help - list available commands on server quit - close connection with server newgroups date time [
] - show new newsgroups newnews nwsgrps date time [] - show new articles Commando's en parameters moeten van elkaar worden gescheiden door één of meer spaties. Parameters zonder haken moeten verplicht worden gebruikt. Parameters tussen haken [ ] hoeven niet verplicht te worden gebruikt. Het commando list wordt gebruikt om een lijst van nieuwsgroepen weer te geven die zich op de host computer bevinden. Achter de naam van elke nieuwsgroep worden de artikel nummers weer gegeven van het eerste en laatste artikel in die nieuwsgroep. Tenslotte wordt nog weer gegeven of het posten van nieuws artikelen naar deze nieuwsgroep is toegestaan. Dit wordt weer gegeven met de letter y of n. Het kan zijn dat de NNTP server een y laat zien terwijl het posten van nieuws artikelen niet is toegestaan voor niet abonnee's van de nieuwsgroep. Het commando group wordt gebruikt om een nieuwsgroep te selecteren. Als parameter moet de naam van een nieuwsgroep worden opgegeven. De naam van de nieuwsgroep is case insensitive. Als antwoord op het commando group 93
http://www.cs.vu.nl/~norbert/computer/telnet.html#nntp
Georges Lichtenstein
Information Network Forensics
versie 1.0 (25/07/yyyy)
Forensische informatica Netwerken & Internetten 33-59 ___________________________________________________________________________ worden drie getallen weer gegeven. Eigenlijk vier getallen want het aller eerste getal vertegenwoordigt de status response code. De drie getallen geven weer het totaal aantal artikelen op dat moment, het artikel nummer van het eerste artikel en het artikel nummer van het laatste artikel in de nieuwsgroep. Tevens zet het commando group de "current article pointer" op het eerste artikel in de nieuwsgroep. Het commando stat wordt gebruikt om de "current article pointer" te zetten. In het Nederlands vertaalt de "nieuws artikel aanwijzer". Als parameter moet het nummer van een nieuws artikel worden opgegeven. Het commando next wordt gebruikt om de "current article pointer" op het volgende nieuws artikel in de nieuwsgroep te zetten. Staat de pointer op het laatste artikel in de nieuwsgroep dan volgt er een error melding. Het commando last wordt gebruikt om de "current article pointer" op het voorgaande nieuwsartikel te zetten in de nieuwsgroep. Staat de pointer op het eerste artikel in de nieuwsgroep dan volgt er een error melding. Het commando article wordt gebruikt om de header en body van een nieuws artikel weer te geven. Zonder gebruik van een parameter wordt het artikel weer gegeven dat wordt aangewezen door de "current article pointer". Met gebruik van een parameter wordt het artikel weer gegeven dat door de parameter wordt aangewezen. Als parameter kan een artikel nummer worden opgegeven. Het commando body wordt gebruikt om de body van een nieuws artikel weer te geven. Zonder gebruik van een parameter wordt de body weer gegeven van het artikel dat wordt aangewezen door de "current article pointer". Met gebruik van een parameter wordt de body weer gegeven van het artikel dat door de parameter wordt aangewezen. Als parameter kan een artikel nummer worden opgegeven. Het commando head wordt gebruikt om de header van een nieuws artikel weer te geven. Zonder gebruik van een parameter wordt de header weer gegeven van het artikel dat wordt aangewezen door de "current article pointer". Met gebruik van een parameter wordt de body weer gegeven van het artikel dat door de parameter wordt aangewezen. Als parameter kan een artikel nummer worden opgegeven Het commando help wordt gebruikt om een lijst weer te geven van beschikbare commando's op een NNTP server. Het commando quit wordt gebruikt om de verbinding met een NNTP server te verbreken. Het commando newgroups wordt gebruikt om een lijst weer te geven van nieuw toegevoegde nieuwsgroepen op de host computer. Als parameter moeten datum en tijd worden opgegeven. Datum en tijd moeten met 6 cijfers worden opgegeven. Het formaat waarin datum en tijd moeten worden opgegeven is YYMMDD en HHMMSS. Als parameter kunnen ook チ é チ én of meerdere Georges Lichtenstein
Information Network Forensics
versie 1.0 (25/07/yyyy)
Forensische informatica Netwerken & Internetten 34-59 ___________________________________________________________________________ domein namen worden opgegeven. Domein namen moeten tussen haken worden gezet en met een komma worden gescheiden. Bijvoorbeeld , , . Het commando newnews wordt gebruikt om een lijst weer te geven van nieuw geposte nieuws artikelen. Als parameter moeten datum en tijd worden opgegeven. Datum en tijd moeten op dezelfde manier worden opgegeven als bij het commando newgroups. Als parameter kan ook een nieuwsgroepen selectie worden opgegeven. Een nieuwsgroepen selectie moet tussen haken worden gezet. Een nieuwsgroepen selectie kan worden opgegeven met gebruik van een asteriks als wildcard. Met een uitroep teken als wildcard kunnen nieuwsgroepen worden uitgezonderd. Bijvoorbeeld . Systeem beheerders mogen eigen commando's implementeren in een NNTP server die niet in het NNTP protocol staan beschreven. De naam van zo'n commando moet beginnen met een x. Het antwoord van een NNTP server op een client commando wordt altijd vooraf gegaan door een status response code. Deze status response code wordt altijd gegeven in een getal met drie cijfers. Hieronder staat een selectie uit de standaard verzameling NNTP status response codes. 100 - help tekst 205 - closing connection 215 - list of newsgroups 220 - article head and body retreived 221 - article head retreived 222 - article body retreived 231 - list of new newsgroups 400 - service discontinued 411 - no such newsgroup 412 - no newsgroup has been selected 420 - no current article has been selected 421 - no next article in this group 422 - no previous article in this group 423 - no such article number in this group 430 - no such article found 440 - posting not allowed 500 - command not recognized 501 - command syntax error Het posten van nieuws artikelen gaat met het commando post. Het formaat waarin nieuws artikelen moeten worden gepost wordt beschreven in document RFC850.
Georges Lichtenstein
Information Network Forensics
versie 1.0 (25/07/yyyy)
Forensische informatica Netwerken & Internetten 35-59 ___________________________________________________________________________ De Telnet Test Het blijkt goed mogelijk te zijn om nieuws berichten te lezen met het telnet programma van Windows 95. Het is echter wel erg bewerkelijk om op deze wijze nieuws berichten te lezen. Met het commando list is het uitkijken geblazen. Een news server kan al snel 25.000 nieuwsgroepen bevatten. Het downloaden van een lijst met nieuwsgroepen kan dan behoorlijk lang duren. Met het telnet programma van Windows 95 is het mogelijk een opgevraagde lijst in een log bestand op te slaan. Dan hoeft de lijst slechts één keer te worden gedownload. Een betere manier om een lijst van nieuwsgroepen op te vragen is met het commando newgroups en de parameter . Hiermee kan de weer te geven lijst van nieuwsgroepen worden gespecificeerd en hoeft het downloaden niet zo lang te duren. Een nog betere manier om een lijst van nieuwsgroepen op te vragen is, indien aanwezig op de server, met het commando xgtitle. Commando's die beginnen met een x zijn zelf geïmplementeerde commando's en geen officieel voorgeschreven NNTP protocol commando's. Hieronder volgt een lijstje van x commando's die gebruikt worden op een aantal news servers ben tegengekomen. Ik moest een tijdje klooien om erachter te komen wat de commando's precies doen. En het is dus mogelijk dat de werking van x commando's per news server verschillen. xgtitle [group_pattern] - list newsgroups xover [range] - list news articles xhdr header [range] - list news articles xpat header range pat [morepat ...] - list news articles Het commando xgtitle lijkt te worden gebruikt om een lijst van nieuwsgroepen op te vragen. Als parameter kan een nieuwsgroepen domein worden opgegeven met een een wildcard (*). Het commando xover lijkt te worden gebruikt om informatie op te vragen over nieuwsberichten in een nieuwsgroep. Als parameter kan een bereik van nieuws berichten worden opgegeven dmv artikel nummers. Een bereik wordt als volgt opgegeven : nr-nr (bijvoorbeeld 345-456). Per artikel nummer wordt チ é チ én regel aan informatie verstrekt. Het commando xhdr lijkt te worden gebruikt om header informatie op te vragen over nieuwsberichten in een nieuwsgroep. Als eerste parameter moet een header veld worden opgegeven, bijvoorbeeld 'subject:' (zonder aanhalingstekens). Als tweede parameter kan een bereik van nieuws berichten worden opgegeven dmv artikel nummers (zie commando xover). Per artikel nummer wordt de inhoud van het opgegeven header veld getoont.
Georges Lichtenstein
Information Network Forensics
versie 1.0 (25/07/yyyy)
Forensische informatica Netwerken & Internetten 36-59 ___________________________________________________________________________ Het commando xpat lijkt te worden gebruikt om gespecificieerde header informatie op te kunnen vragen over nieuwsberichten in een nieuwsgroep. Als eerste parameter moet een header veld worden opgegeven, bijvoorbeeld 'subject:' (zonder aanhalingstekens). Als tweede parameter moet een bereik van nieuws berichten worden opgegeven dmv artikel nummers (zie commando xover). Als derde parameter moet een string worden opgegeven. Bijvoorbeeld een discussie onderwerp, wanneer als header 'subject:' (zonder aanhalingstekens) is opgegeven. Er volgt dan een lijst van artikel nummers met dat onderwerp in de subject header. Op deze wijze kunnen dus alle artikel nummers van een discussie lijn (in het Engels een 'thread' genoemd) worden opgevraagd. Als vierde parameter kunnen waarschijnlijk meer strings worden opgegeven, maar dat heb ik (nog) niet uitgeprobeerd. Een handige manier om het NNTP protocol uit te proberen met telnet, is om een news server te installeren op je eigen pc. Je hoeft dan niet steeds het internet op. News servers zijn echter ingewikkelde programma's om te installeren. De enige news server die ik snel geïnstalleerd kreeg was Dnews 5.2 van NetWin (voor Windows 95/NT). Deze server is van oorsprong een Unix programma dat geport is naar Windows. De (unix) configuratie files worden ingesteld via een gebruiksvriendelijk Windows menu. Voor niet commerciële doeleinden is de server gratis te gebruiken.
1.7.2.i. Telnet Telnet is het TCP/IP protocol dat toelaat om vanop afstand op een systeem in te loggen (remote logon) als een normale gebruiker met de rechten die de gebruiker heeft op dat systeem. Vroeger werd Telnet veel meer gebruikt dan nu. Telnet is ook niet echt een veilig protocol: om op afstand op een systeem in te loggen moet je uiteraard je login en paswoord doorgeven. Dit wordt niet gecodeerd (geëncrypteerd) en kan dus door hackers worden onderschept (man in the middle attack) zonder dat iemand het merkt. Zo kunnen die vrij eenvoudig toegang krijgen tot een systeem. Log daarom nooit als "root" in vanop afstand via Telnet op een Linux-systeem. Iemand die dat onderschept en zo inlogt kan met dat Linux systeem alles doen wat hij wil... Daarom heeft men een nieuwe methode voor remote logon in het leven geroepen: SSH (Secure SHell) waarbij de gegevens wel worden geëncrypteerd.94 De werking van Telnet95 Het telnet protocol wordt gebruikt om remote logins tot stand te brengen. Het protocol is bedoeld om als basis te dienen voor ingewikkelder protocollen. Het 94 95
http://kurtkoenig.homeunix.net/dataentelecom/TCPIP.htm#1 http://www.cs.vu.nl/~norbert/computer/telnet.html#telnet
Georges Lichtenstein
Information Network Forensics
versie 1.0 (25/07/yyyy)
Forensische informatica Netwerken & Internetten 37-59 ___________________________________________________________________________ telnet protocol wordt beschreven in document RFC854. Onderstaande commando's vormen een selectie uit dit document. Standaard maakt het telnet protocol gebruik van poort nummer 23. Code Name 241 - no operation (NOP) 243 - break (BRK) 244 - interrupt process (IP) 245 - abort output (AO) 246 - are you there (AYT) 247 - erase character (EC) 248 - erase line (EL) 249 - go ahead signal (GA) 255 - interpret as command (IAC) 251 - WILL (option code) 252 - WON'T (option code) 253 - DO (option code) 254 - DON'T (option code) Telnet commando's worden opgegeven met ascii codes en bestaan altijd uit tenminste twee opeenvolgende codes. Elk telnet commando begint met een IAC code gevolgd door de eigenlijke commando code. Achter de commando codes 251 t/m 254 moet als parameter nog een derde code worden opgegeven. De codes 251 t/m 254 zijn zogenaamde onderhandelings codes. Hiermee kunnen de verbonden partijen onderhandelen over de wederzijdse terminal opmaak eigenschappen. Wanneer deze eigenschappen zijn overeengekomen, kunnen de terminals met elkaar gaan communiceren zonder dat er vreemde tekens op het scherm verschijnen. Behalve voor de eigen telnet commando's volgt het telnet protocol de standaard ascii code weergave voor toetsenbord aanslagen. Tekst ingetypt op de locale terminal verschijnt precies zo op de remote terminal. Deze codes hoeven daarom ook niet te worden voorafgegaan door een IAC code. De Telnet Test Tera Term Pro 2.3 (voor Windows 95/NT) is een telnet programma en (hyper) terminal programma ineen. Het programma heeft bijzonder veel instellings mogelijkheden en kan meerdere verbindingen tegelijk onderhouden. Handelingen kunnen worden geautomatiseerd met behulp van scripts, die met een eigen script taal worden geschreven. Het programma is freeware. J-Term Pro 1.0.4 (voor Windows 95/NT) is een telnet programma met een eenvoudig FTP client en server programma ingebouwd. Ook dit programma heeft bijzonder veel instellings mogelijkheden en ondersteunt 'multiple simultaneous connections'. Ook dit programma ondersteunt het gebruik van scripts, die met een eigen script taal worden geschreven. Het programma is shareware met een evaluatie periode van dertig dagen.
Georges Lichtenstein
Information Network Forensics
versie 1.0 (25/07/yyyy)
Forensische informatica Netwerken & Internetten 38-59 ___________________________________________________________________________ Netcat 1.1 (voor DOS) is een klein telnet achtig programmaatje. Het is van oorsprong een Unix utility. De maker ervan omschrijft het programma als zijnde een 'tcp/ip swiss army knife'. Het kan onder andere worden gebruikt als eenvoudig telnet servertje of als poort scanner, ook op remote computers en ook voor UDP poorten. Het programma is freeware. Een leuke manier om met telnet te spelen, is om een telnet server te installeren op je eigen pc. Telnet servers zijn niet zo moeilijk te installeren. Telnet servers hebben als belangrijkste functie het mogelijk maken van remote administration, oftewel aan bestands beheer kunnen doen op een remote computer. Fictional Daemon is een bijzonder gebruiksvriendelijke telnet server en (eenvoudig) FTP server programma ineen. Naast remote administration kunnen ingelogde telnet clients met elkaar chatten en kan de server zelf op afstand worden beheerd met behulp van een telnet client programma. Het programma is vrij te gebruiken voor niet commerciële doeleinden.
1.7.3. De protocollen van de Transport layer 1.7.3.a. TCP (Transmission Control Protocol) TCP is een "betrouwbaar" protocol, in die zin dat het garandeert dat een transmissie volledig is bezorgd bij de cliënt door middel van foutcontrole en handshaking (een systeem waarbij beide zijden van de transmissie elkaar op de hoogte stellen van het al dan niet verzenden/ontvangen van pakketten). Meestal kan ieder TCP segment in één IP datagram (pakket) verzonden worden, indien nodig zal TCP een segment opsplitsen in meerdere IP datagrammen (gefragmenteerde pakketten) zodat deze compatibel blijven met de fysieke dataframes van de bitstream. TCP/IP garandeert echter niet dat de datagrammen in dezelfde volgorde zullen worden ontvangen als ze zijn verzonden. Dan moet TCP ze opnieuw gaan samenstellen bij de bestemming om een ononderbroken datastroom te verwezenlijken. Typische gebruikers van TCP zijn FTP en telnet. TCP zorgt voor de connectie tussen beide zijden van een transmissie en gebruikt checksums. Checksums zijn wiskundige berekeningen op de data die een getal binnen een vast bereik opleveren die dan aan beide zijden worden opgemaakt en vergeleken. TCP zorgt ook voor de handshaking.96
1.7.3.b. UDP (User Datagram Protocol) UDP is minder betrouwbaar dan TCP, enerzijds garandeert het niet dat de pakketten in de juiste volgorde arriveren, anderzijds garandeert UDP niet eens dat de pakketten aankomen. Voor de rest lijkt UDP op TCP, zij het iets primitiever. Het wordt nog zeer frequent gebruikt. Een ander verschil met TCP is dat UDP de datapakketten niet opdeelt, gezien de juiste volgorde ook niet wordt gegarandeerd, is het de applicatie die voor de data-integriteit moet 96
http://kurtkoenig.homeunix.net/dataentelecom/TCPIP.htm#1
Georges Lichtenstein
Information Network Forensics
versie 1.0 (25/07/yyyy)
Forensische informatica Netwerken & Internetten 39-59 ___________________________________________________________________________ zorgen. UDP is bijvoorbeeld zeer populair bij real-time streaming van audio of video over Internet omdat de error-control van TCP de continue datastroom zou kunnen belemmeren. Ook andere applicaties die zoveel mogelijk processorkracht wensen te sparen kunnen UDP boven TCP verkiezen.97 Samenvatting UDP wordt vaak gebruikt voor online gaming. De programmeurs kunnen hiermee makkelijk gegevens van clients ontvangen zonder een verbinding tot stand te brengen, wat dus veel meer bandbreedte zou vreten. Het enige nadeel van dit handige pakketjes-verzenden-protocol is dat er niet wordt gegarandeerd dat een data-pakket aan kan komen: Het verzend, en sinds het geen streaming connectie heeft, in tegenstelling tot het veel gebruikte Transmission Control Protocol, kan er niet worden gecheckt of het wel werkelijk is aangekomen, tenzij de programmeur van de server zoiets heeft in-geprogrammeerd.98
1.7.4. De protocollen van de Netwerk layer 1.7.4.a. IP (Internet Protocol). IP verzorgt de packet routing: het kiezen van de juiste en meest efficiënte weg van de zender naar de ontvanger via de verschillende routers. Routers zorgen ervoor dat verschillende netwerken aan elkaar worden gelinkt om zo een intranet of het Internet te vormen. Iedere router waarlangs een pakket passeert wordt een hop genoemd, omdat het pakket van het ene netwerk naar het andere "springt" (Eng:to hop).99 Een IP pakket bevat altijd een bron- en een bestemmingsadres (over die adressen later meer). Iedere gateway of router bekijkt het bestemmingsadres en zendt het pakket op de meest efficiënte manier over het netwerk naar de eindbestemming. Ieder systeem in hetzelfde TCP/IP-netwerk moet een uniek adres hebben. Een IP-adres is 32 bits lang. Iedere router wordt normaal handmatig geconfigureerd om aan de hand van het bestemmingsadres (of een deel ervan) het pakket naar het juiste netwerk door te verwijzen. Het valt te vergelijken met de post: de brieven worden eerst gecheckt op de naam van de gemeente en naar een centraal punt in die gemeente gestuurd. Daar worden ze verder onderverdeeld in deelgemeenten, wijken en straten om uiteindelijk bij de juiste persoon in de bus te vallen. TCP is dan een aangetekende brief, UDP een gewone. IP is in principe het meest fundamentele protocol van TCP/IP.100
1.7.4.b. ARP (Address resolution Protocol) ARP is een protocol dat nodig is om het IP-adres om te zetten in het echte adres van de computer met een hardware adres. Bijvoorbeeld als de computer deel uitmaakt van een Ethernet netwerk dan moet het 32 bit IP-adres omgezet worden naar het 48 bit MAC (Media Access Control)) adres van de 97
http://kurtkoenig.homeunix.net/dataentelecom/TCPIP.htm#1 http://www.hackers4hackers.org/reader.php?h4h=10 99 http://kurtkoenig.homeunix.net/dataentelecom/TCPIP.htm#1 100 http://kurtkoenig.homeunix.net/dataentelecom/TCPIP.htm#1 98
Georges Lichtenstein
Information Network Forensics
versie 1.0 (25/07/yyyy)
Forensische informatica Netwerken & Internetten 40-59 ___________________________________________________________________________ Ethernetkaart van die computer. Een tabel (de ARP cache) wordt gebruikt om ieder aanwezig MAC-adres aan zijn overeenkomstige IP-adres te linken. ARP voorziet de regels van het protocol om deze connectie te maken en om de conversie te realiseren.101
Het probleem van IP adressen is dat het alleen werkt op het TCP/IP protocol omdat het een 32 bit adres is. Als het over een Ethernet link gestuurd moet worden, dat een 48 bit adres heeft, dan moet er een omzetting plaats vinden tussen deze twee. Hiervoor dient dan het Address Resolution Protocol (ARP) (zie ook figuur 7.1) die een 32 bit internet adres omzet naar een 48 bit ethernet adres (ook wel hardware adres genoemd). Het omgekeerde van ARP is RARP (Reverse Address Resolution Protocol).
102
Omzetten van 32 bit naar 48 bit adres 103 Het 32 bit IP adres wordt omgezet naar een 48 bit internet adres om te kunnen communiceren met andere computer netwerken die gebruik maken van 48 bit adressen. In de figuur wordt een voorbeeld gegeven van een FTP verbinding die wordt opgezet, en waarbij een omzetting plaats moet vinden tussen de verschillende adressen en die gebruikt maakt van ARP. Hierbij vinden de volgende stappen plaats: 1. De FTP cliënt roept de functie op om de hostname om te zetten in een 32 bit IP adres. Deze functie wordt de resolver genoemd in het Domain Name System. 2. De FTP cliënt vraagt aan zijn TCP protocol om een verbinding te maken met het IP adres. 3. TCP zendt een connectie request segment naar de remote host door een IP datagram te verzenden naar zijn IP adres. 4. Als de bestemmings host zich op een lokaal netwerk bevindt (b.v. ethernet, token ring of het andere eind van een point to point verbinding) dan kan het IP 101
http://kurtkoenig.homeunix.net/dataentelecom/TCPIP.htm#1 http://web.inter.nl.net/users/Rohiet.Seosahai/ARP.htm 103 http://web.inter.nl.net/users/Rohiet.Seosahai/ARP.htm 102
Georges Lichtenstein
Information Network Forensics
versie 1.0 (25/07/yyyy)
Forensische informatica Netwerken & Internetten 41-59 ___________________________________________________________________________ datagram rechtstreeks verzonden worden naar de host. Maar als de bestemming zich op een remote netwerk bevindt dan wordt de IP datagram naar een lokale router gestuurd. 5. Als er, zoals in de tekening, een ethernet gebruikt wordt, dan moet het 32 bit IP adres door ARP omgezet worden naar een 48 bit ethernet adres om van het logische internet adres een corresponderend hardware adres te maken. ARP wordt gebruikt om een netwerk af te scannen waar veel hosts of routers zijn op aangesloten. 6. ARP zendt een ARP request frame naar elke host op het netwerk (dit heet een broadcast). Deze broadcast wordt in de tekening aangegeven met een gestippelde lijn. De ARP request bevat het IP adres van de bestemming en een vraag aan de ontvangers met “als je de eigenaar van dit IP adres bent stuur dan een response met je hardware adres”. 7. De ARP van de bestemmings host herkent het IP adres en bevestigt dit met een ARP reply die zijn IP adres bevat met het daarbij behorende hardware adres. 8. De ARP reply is ontvangen en het IP datagram die de ARP request - reply in gang heeft gezet kan nu worden verzonden. 9. De IP datagram wordt verzonden naar de bestemmings host.
104
104
http://web.inter.nl.net/users/Rohiet.Seosahai/ARP.htm
Georges Lichtenstein
Information Network Forensics
versie 1.0 (25/07/yyyy)
Forensische informatica Netwerken & Internetten 42-59 ___________________________________________________________________________ Voor een snellere werking van de omzetting van 32 bit naar 48 bit adressen, wordt er door de hosts een ARP Cache bijgehouden, zodat er niet steeds een broadcast gegeven hoeft te worden maar er eerst gekeken kan worden of het adres in de lijst van de cache voorkomt.
1.7.4.c. RARP (Reverse Address Resolution Protocol) Het Reverse Address Resolution Protocol (RARP) is het omgekeerde van ARP en zet dus een 48 bit adres om naar een 32 bit adres. Dit komt maar zelden voor omdat als een systeem wordt opgestart het IP adres van dat systeem wordt ingelezen van disk en het dus bij voorbaat al bekend is. Alleen als er een systeem gebruikt wordt zonder disk, zoals een X-terminal, dan is er een andere manier nodig om het IP adres aan te roepen. Hierbij wordt dan het hardware adres gelezen en zendt dan een RARP broadcast op het netwerk met de vraag of er iemand het IP adres van het systeem wil terug zenden.105
1.7.4.d. ICMP (Internet Control Message Protocol) ICMP is een uitbreiding op IP en zorgt voor de mogelijkheid om foutberichten te genereren en pakketten te testen en informatie over IP te verzenden. Het is een support-protocol dat IP gebruikt om informatie over fouten en het beheer van IP pakkettransmissies mee te delen. Het stelt IP-routers in staat om fouten controleberichten te zenden naar andere routers en hosts. Als een router bijvoorbeeld niet in staat is een IP datagram (pakket) door te zenden, dan zal deze met ICMP de zender op de hoogte brengen dat er een probleem is. ICMP berichten bevinden zich in de datavelden van IP pakketten en zijn een noodzakelijk deel van alle IP implementaties. Het bekende programmaatje 'ping,' maakt gebruik van ICMP om na te gaan hoe vlug een server reageert of om na te gaan of hij al dan niet draait.106
1.7.5. De protocollen van de Data Link Layer 1.7.5.a. SLIP (Serial Line Internet Protocol) Dit is het oudste van de twee data linkprotocollen. SLIP kapselt de IP pakketten in met headers en trailers zodat ze geschikt zijn om via een modem verzonden te worden.107 Dus dit protocol wordt gebruikt om de pakketjes te verzenden via seriële lijnen en telefoonverbindingen, meestal als onderdeel van een kiesverbinding via Internet.108 Met SLIP moet U het IP-adres weten dat u van uw internet-provider heeft gekregen en het IP-adres van het systeem op afstand waarmee u contact wilt maken. Als de IP-adressen dynamisch worden toegewezen, moet u ze zelf 105
http://web.inter.nl.net/users/Rohiet.Seosahai/ARP.htm http://kurtkoenig.homeunix.net/dataentelecom/TCPIP.htm#1 zie terzake ook: DOMS, B., i.c., p. 187, zie ook CHELLIS, J., PERKINS, Ch. & STREBE M., i.c. p. 493 107 http://kurtkoenig.homeunix.net/dataentelecom/TCPIP.htm#1 108 CHELLIS, J., PERKINS, Ch. & STREBE M., i.c. p. 420 106
Georges Lichtenstein
Information Network Forensics
versie 1.0 (25/07/yyyy)
Forensische informatica Netwerken & Internetten 43-59 ___________________________________________________________________________ instellen, aangezien SLIP-software de IP-toewijzingen gewoonlijk niet automatisch registreert. Het kan zijn dat u nog een aantal andere instellingen zelf moet configureren.109
1.7.5.b. PPP (Point-To-Point Protocol) PPP is een verbeterde versie van SLIP: het heeft hetzelfde doel, maar is iets meer gesofisticeerd. Het kan bijvoorbeeld ook met andere protocollen dan IP werken (bijvoorbeeld IPX, Appltalk), hoewel het vooral met TCP/IP wordt gebruikt. Het is een full-duplex protocol: het kan tegelijk data verzenden en ontvangen. Het kan ook met verschillende soorten fysieke verbindingen werken: UTP, glasvezel, satellietverbindingen, ... 110 Het kan ook verschillende typen van verkeer tegelijkertijd over dezelfde verbinding versturen. Het voordeel van PPP ten opzichte van SLIP is dat PPP synchrone en asynchrone communicatie aan kan, het kan een communicatiekanaal met andere protocollen delen, het voorziet in Address Notification (laat de server toe om een dial-up cliënt een IP-adres toe te kennen voor die verbinding), en heeft een ingebouwde foutdetectie.111 In tegenstelling tot SLIP worden bij PPP de configuratiegegevens aan het begin van de verbinding automatisch vastgesteld. PPP kan header-compressie vaststelen. Pakketstromen in een enkelvoudige TCP-verbinding bevatten weinig gewijzigde velden in de IP- en TCP- headers, waardoor eenvoudige compressie algoritmen de gewijzigde delen van de header kunnen versturen in plaats van de volledige headers. Hierdoor kan de pakketsnelheid aanzienlijk worden vergroot. Bovendien biedt PPP ondersteuning voor IP-beveiliging.112
1.8. TCP/IP netwerkcomponenten 1.8.1. DNS113 1.8.1.a. Wat is DNS? DNS is een TCP/IP standaard die ontworpen is om IP adressen om te zetten in hostnamen. De TCP/IP netwerkservice kan numerieke internetwerk-adressen omzetten naar tekstuele internetwerk-adressen (bvb 216.239.39.99 is op dit moment www.google.be)114 DNS is in de praktijk een gedistribueerd database-systeem dat zorgt voor de toewijzing van namen aan adressen voor clienten. In de database worden 109
CHELLIS, J., PERKINS, Ch. & STREBE M., i.c. p. 421 http://kurtkoenig.homeunix.net/dataentelecom/TCPIP.htm#1 111 http://kurtkoenig.homeunix.net/dataentelecom/TCPIP.htm#1 112 CHELLIS, J., PERKINS, Ch. & STREBE M., i.c. p. 421 113 DNS: staat voor Domain Name System, of Distributed Name Server 114 http://kurtkoenig.homeunix.net/dataentelecom/DNS.htm 110
Georges Lichtenstein
Information Network Forensics
versie 1.0 (25/07/yyyy)
Forensische informatica Netwerken & Internetten 44-59 ___________________________________________________________________________ gegevens (adressen) bijgehouden die toelaten om een apparaat te herkennen aan de hand van een logische naam. De voornaamste toepassing van DNSservers op het internet is het converteren van namen van sites naar netwerkadressen. Het internet zou niet kunnen werken als iedere gebruiker het IP-adres (infra) dient te kennen van elke website (zie hoger de vorm en toewijzing). Men heeft daarom een systeem ontworpen dat toelaat om een herkenbare naam in te typen die door de DNS-server wordt herkend en wordt omgezet naar het correcte IPadres van het apparaat waar de website zich op bevindt. Voorbeeld. Men kan via www.juridat.be naar de website van de rechterlijke macht van België. Deze naam is gemakkelijker te onthouden dan het IP-adres 194.7.188.126, dat bij opvraging op het internet leidt naar dezelfde website. DNS heeft net als het UNIX-bestandssysteem een hiërarchische structuur. Het bestaat uit domains en subdomains, waarin de namen van hosts zijn opgenomen. Een domain is een verzameling van sites die op een bepaalde manier een relatie met elkaar onderhouden, bijvoorbeeld tot dezelfde organisatie behoren, georgrafisch dicht bij elkaar gelegen zijn of bepaald universitair samenwerkingsverband vormen. (bijvoorbeeld: Universiteiten zijn ondergebracht onder het edu-domain). Onder deze subdomeinen vinden we in het systeem de hosts. Afhankelijk van de plaats in de uit namen bestaande hiërarchie maakt men onderscheid tussen “top-level”, “second-level” en “thirdlevel”. Meerdere niveaus is toegestaan hoewel ze slechts zelden gebruikt worden. De namen van hosts, domains en subdomains worden gescheiden door een punt. Een volledige benaming noemt men een “fully qualified domain” (FQDN), dit wordt met een punt afgesloten (bijvoorbeeld: cad1.design.x.nl.)115 Naamgeving: host.third-level.second-level.top-level Vaak worden volgende top-level domains gebruikt:116 edu com org net gov
Onderwijsinstituten zoals universiteiten Commerciële organisaties, bedrijven Niet commerciële organisaties Gateways en andere hosts op het netwerk Overheden
Met de naamgeving van hosts, gevat in een hiërarchische structuur, wordt met DNS het probleem van de unieke naamgeving opgelost, maar het maakt het ook mogelijk om bevoegdheden over een subdomain naar andere netwerkbeheeders te delegeren.117
1.8.1.b. Hoe werkt DNS? Op het eerste gezicht lijkt het gebruik van domains en zones nogal ingewikkeld. Als men echter denkt aan wat we schreven over DNS als 115
DONS, B., i.c., p. 218 voor een volledig lijst van top-level domains verwijzen we naar de bijlagen aan deze bijdrage 117 DONS, B., i.c.,p 219 116
Georges Lichtenstein
Information Network Forensics
versie 1.0 (25/07/yyyy)
Forensische informatica Netwerken & Internetten 45-59 ___________________________________________________________________________ “gedistribueerde database” wordt alles meer bevattelijk. Men maakt namelijk gebruik van name servers.118 In ieder zone waarin minstens twee name servers aanwezig zijn bevatten name servers alle noodzakelijke informatie van hosts in de betreffende zone. Hoe vindt u de name server van bedrijf “x”?.119 Eerst gaat de resolver naar een name server op de lokale host. Hierop wordt een interactieve opvraging gestart. Als de name server onderkent dat “X” niet valt onder zijn bevoegdheid, maar behoort tot het domain van een andere name server, dan gaat hij contact opnemen met de andere lokale server, om te kijken welke servers er informatie hebben over het top-level domain. Vervolgens wordt aan deze servers de vraag gesteld of zij het IP-adres kennen van “x”. Deze actie gaat verder voor het second-level, third-level en host tot met het volledige IP-adres heeft gevonden. Dit lijkt veel verkeer te genereren op het netwerk, doch in verhouding met de oude methode van één host en een .txt-bestand is dit toch aanzienlijk minder.
1.8.2.Het DHCP/ BootP –protocol120 1.8.2.a. Inleiding. Het bootstrap protocol (BootP) en het dynamic host configuration protocol (DHCP) maken het voor de netwerk administrator mogelijk de configuratie, van hosts die ver afgelegen zijn, te regelen vanaf een centraal geconfigureerde server. BootP en DHCP worden typisch gebruikt voor het toekennen van IPadressen aan workstations zonder diskette stations, aan X-terminals, mobile computers en computers die tijdelijk aan het Internet moeten gekoppeld worden. Door het BootP en DHCP is er geen noodzaak meer voor computer gebruikers om hun systemen manueel te configureren. De DHCP en BootP protocols zijn sterk gelijkend. Eigenlijk is het DHCP protocol meer algemeen dan het BootP protocol.
1.8.2.b. Het DHCP-protocol. Het dynamic host configuration protocol, of kortweg het DHCP voorziet in de configuratie van parameters aan internet hosts. DHCP bestaat uit twee delen : 1. een protocol om de host-specifieke configuratie parameters van een DHCP server aan een host toe te kennen 2. een mechanisme om adressen aan een host toe te kennen. DHCP is op een client-server model gebouwd, waar een DHCP-server, hosts adressen en configuratie parameters toekent aan de dynamisch geconfigureerde hosts. In deze tekst, zal de term ‘server’ slaan op een host die initialisatie 118
Name Server : Een computer (of adres van een computer) die een lijst van IP-adressen (zowel de letter als de cijfernotatie) van andere computers of servers beheert. Een name server kan een domeinnaam in een IP-adres omzetten en omgekeerd. 119 Informatie overgenomen van DONS, B, i.c., p. 220-221 120 Volledige tekst overgenomen van: http://home.scarlet.be/~molkof/dhcp.htm zie ook: http://www.cisco.com/univercd/cc/td/doc/product/iaabu/cddm/cddm111/adguide/dh zie ook: http://ds.internic.net/rfc/rfc2131 zie ook: http://charlott.acns.nwu.edu/internet/tech
Georges Lichtenstein
Information Network Forensics
versie 1.0 (25/07/yyyy)
Forensische informatica Netwerken & Internetten 46-59 ___________________________________________________________________________ parameters voorziet door middel van DHCP, en de term ‘client’ zal slaan op een host die de initialisatie parameters vraagt aan de DHCP server. Een host gedraagt zich niet als een DHCP server behalve als hij expliciet als zodanig geconfigureerd is door een system administrator. De diversiteit van hardware en de protocol implementaties op het Internet maken het moeilijk om betrouwbare handelingen te doen indien eender welke host toegelaten zou worden om te reageren op een DHCP aanvragen. Bijvoorbeeld, bij IP moeten verschillende parameters in de protocol implementatie software gezet worden. IP kan op verschillende uiteenlopende netwerk hardwareapparaten gebruikt worden, zodoende mag niet verondersteld worden dat de parameters een correcte default-waarde hebben. IP hosts kunnen niet altijd hun eigen netwerk adres vasthouden zodat die dan ook voor andere hosts gebruikt worden. Het is aldus goed mogelijk dat er bepaalde netwerk adressen tweemaal gebruikt worden. DHCP maakt gebruik van drie mechanismen voor IP-adres toekenning. Bij ‘automatische toekenning’ geeft DHCP een permanent IP-adres aan een client. Bij ‘dynamische toekenning’, geeft DHCP een tijdelijk IP-adres aan een client voor een bepaalde tijd of tot de client expliciet afstand doet van dit adres. Bij ‘manuele toekenning’, is het IP-adres van een client toegekend aan een netwerk administrator. In dit geval wordt DHCP enkel gebruikt om dit adres aan de client mede te delen. Een of meer van deze mechanismen worden gebruikt al naar gelang de werkwijze van de netwerk administrator. Dynamische toekenning is de enige van de drie mechanismen dat automatisch hergebruik van een adres, dat niet langer nodig is bij een client, waarnaar het was toegekend, toelaat. Daarom is dynamische adrestoekenning bijzonder geschikt voor het toekennen van adressen aan clients die slechts tijdelijk op het netwerk aangesloten zijn of voor het delen van IP-adressen aan een groep van clients die geen permanent IP-adres nodig hebben. Dynamische adrestoekenning is ook nuttig voor het toekennen van IP-adressen aan een client dat permanent aan het netwerk wordt gekoppeld en waar deze IPadressen schaars zijn. Het is hier belangrijk om deze IP-adressen te hergebruiken wanneer oude clients niet meer gekoppeld zijn. Manuele toekenning van DHCP boodschappen zijn gebaseerd op het formaat van de BootP boodschappen.
1.8.2.c. BootP -protocol. Indien een computer geconfigureerd als BootP-client het Internet wil gebruiken zendt hij een broadcast over het lokale netwerk. Als er een BootP server geïnstalleerd is op hetzelfde netwerk zal deze de broadcast horen, zijn referentietabellen raadplegen en een pakket naar de BootP-client terugsturen met de volgende informatie: IP Host Adres IP Gateway Adres
Georges Lichtenstein
Information Network Forensics
versie 1.0 (25/07/yyyy)
Forensische informatica Netwerken & Internetten 47-59 ___________________________________________________________________________ Domain Name Server Adres(sen) Subnet Mask Het BootP protocol laat toe andere informatie te verpakken in het BootP reply packet, maar deze hogervermelde vier elementen zijn de enige noodzakelijke informatie voor de Client om het Internet te gaan gebruiken. BootP-Clients die niet onder UNIX draaien negeren meestal toch de andere informatie in het reply packet. Deze broadcast aanvraag gebeurd slechts eenmaal per sessie. De configuratie wordt onthouden tot bij het rebooten, in geval van een Macintosh systeem, of tot het einde van een WinSock applicatie in een Windows omgeving. In de praktijk zullen er slechts enkele BootP servers in het gehele netwerk opgenomen zijn. Dus voor netwerken waar er geen lokale BootP server is moet een BootP relay agent geïnstalleerd worden. Deze BootP relay agent hoort de BootP request broadcast en stuurt het request packet direct door naar een of meerdere BootP servers. Sommige routers bieden deze relay service als optie in de software van hun operating systeem. Referentietabellen In het originele design leest de BootP server software het ethernet adres (ook MAC adres genoemd) van het request packet waarna hij de configuratie informatie behorend bij dit adres in zijn tabellen opzoekt en de informatie terugstuurt naar de aanvragende computer. Bij dit systeem moet de administrator een nieuwe lijn in de BootP tabellen maken voor iedere host die het BootP systeem gebruikt. Indien een BootP server gewijzigd wordt en hij ontvangt een vraag van een computer die hij nooit eerder gezien heeft, zal hij het volgende beschikbare adres (en gerelateerde configuratie informatie) permanent toewijzen aan de vragende host. Omdat IP configuratie informatie permanent geassocieerd wordt met het MAC adres van de BootP Client computer, is er speciale aandacht nodig indien BootP gebruikt wordt in een openbare omgeving voor mobiel computergebruik. (een van de uitdagingen van DHCP is een beter design voor dit mobiel computergebruik). Een eenvoudige oplossing zou kunnen zijn om iedere nacht, als de mobiele stations gesloten zijn, de tabellen volledig te wissen. In een omgeving waar de mobiele stations 24 uur op 24 beschikbaar blijven is er een meer gesofistikeerd systeem nodig om adressen terug te winnen voor hergebruik. Indien de mobiele stations relatief veel verkeer verwerken is het eveneens noodzakelijk adressen terug te winnen voordat de groep volledig uitgeput is. Het BootP protocol vormt een relatief kleine belasting voor de BootP server. Zoals het Domain Name System gebruikt ook BootP het UDP protocol. Dus de server moet slechts één pakket sturen als antwoord op een request in plaats van een verbinding in stand te houden gedurende enige tijd. BootP requests voor een adres zijn veel minder frequent dan Domain Name lookups.
Georges Lichtenstein
Information Network Forensics
versie 1.0 (25/07/yyyy)
Forensische informatica Netwerken & Internetten 48-59 ___________________________________________________________________________
1.8.2.d. Het verband tussen DHCP en BootP Een DHCP/BootP server bestaat uit twee verschillende servers die verbonden zijn met de gemeenschappelijke functionaliteit van het BootP pakket formaat en transport. De server kan de BootP clients de standaardset van de BootP parameters geven. Dit is onafhankelijk van de DHCP server die de DHCP clients parameters geeft in overeenstemming met het DHCP protocol. DHCP is een uitbreiding van Boot. DHCP boodschappen zijn daarom in hetzelfde formaat als de BootP boodschappen. De DHCP server kan de BootP clients voorzien, maar de DHCP server kan enkel de standaard set van de BootP parameters, die een onderdeel is van de DHCP parameters, geven. Hoewel DHCP en BootP analoog werken, bevat de DHCP server toch verschillende kenmerken : -IP adres groep : de DHCP/BootP server laat toe om IP-adres-groepen te maken voor DHCP-servers. Het gebruik van deze groepen maakt het management gemakkelijk. De BootP service maakt geen gebruik van dergelijke groepen. -Leases : De DHCP/BootP server huurt IP adressen en configuratie informatie aan ver af gelegen DHCP clients voor een bepaalde periode. Deze ‘leases’ maken deel uit van het DHCP-protocol. Aangezien het BootP protocol dit concept van huren niet gebruikt, maken BootP clients gebruik van IP-adressen en configuratie informatie dat zij krijgen tot de volgende reboot. Het is dus alsof zij oneindige leases hebben. Sommige clients zenden aanvragen waar zowel BootP als DHCP servers op kunnen antwoorden. Of ze kunnen antwoorden van elk type server ontvangen. Indien een DHCP/BootP server een DHCP pakket ontvangt, controleert de server of het hardware adres gespecificeerd is in de BootP database. Indien dit het geval is, zal de DHCP server het pakket naar de BootP server sturen om daar dan de boodschap af te handelen. Indien dit niet het geval is, zal de DHCP server het als DHCP-pakket behandelen.
1.8.3. Computerpoorten Als er verschillende diensten worden geleverd op een bepaalde computer, dan wordt voor elk van deze diensten een bepaalde poort gereserveerd. Eén computer kan immers verschillende servers aanbieden. Een server is in feite niet meer dan een softwaretoepassing die door een computer wordt uitgevoerd. Elk van deze servers wordt door een poortnummer van de andere servers onderscheiden. De poort is dus eigenlijk een softwarebestemming die de gegevenstransmissie verzekert en heeft niets te maken met hardwarepoorten..121
121
http://www.i-academie.be/content_cursus_toepassingen_telnet.htm
Georges Lichtenstein
Information Network Forensics
versie 1.0 (25/07/yyyy)
Forensische informatica Netwerken & Internetten 49-59 ___________________________________________________________________________
1.9. IP-Adressen - Subnetten 1.9.1. Inleiding Als men gegevens over een netwerk wenst te versturen, dient de netwerklaag alle verschillen die niet opgevangen werden door de datalinklaag op te vangen. Hiervoor maakt de netwerklaag gebruik van het IP-protocol dat op zijn beurt elk bericht dat opgesplitst is in IP-pakketten heen en weer stuurt. Deze pakketten zijn ingekapseld in een frame. Nu om deze pakketten op de juiste bestemming te krijgen heeft men adressen nodig. Net als bij het verzenden van brieven, waar elk huis of gebouw een uniek adres nodig heeft alvorens de post de brief op de correcte bestemming kan brengen heeft ook elke PC een uniek adres nodig. In elk netwerk heeft elke PC dergelijk IP-adres. Het IP-protocol is zo ontworpen dat het netwerk eigenlijk geen rol speelt. Indien bijvoorbeeld in twee verschillende netwerpen IP-adressen worden aangemaakt, zou na samenvoeging elk IP-adres onveranderd én uniek moeten blijven. Hoe dit wordt opgelosd via IP-adressering en subnetting zullen we in dit deel bespreken. Om te begrijpen hoe een IP-adres wordt gevormd, zullen we eerst even iets zeggen over binair rekenen.
1.9.2. Binair rekenen Het binaire stelsel bestaat uit nullen en enen. De positie van een nul of een 1 bepaalt de decimale waarde. Het meest rechtse bit uit een binair getal is het "least significant bit", oftewel de bit met de minste waarde. Het meest linkse bit wordt het "most significant bit" genoemd. Dit bit is dus het meeste waard. Ieder bit in een binair getal stelt een macht van 2 voor. Het linkse bit stelt 2^0 voor: 1 dus. Het bit daar links van is 2^1: 2 dus. Het bit daar weer links van is 2^2: 4. Dit loopt zo door tot het meest linkse bit en hiermee kan dus ieder geheel getal gemaakt worden.122 Een voorbeeld
1011.0011: 1 * 2^0 = 1 1 * 2^1 = 2 0 * 2^2 = 0 0 * 2^3 = 0 1 * 2^4 = 16 1 * 2^5 = 32 0 * 2^6 = 0 1 * 2^7 = 128
Bij elkaar opgeteld wordt dat: 1+2+16+32+128=179.123
122 123
www.xs4all.nl/~itbg077/studieavond/IP/Uitleg%20TCP.doc www.xs4all.nl/~itbg077/studieavond/IP/Uitleg%20TCP.doc
Georges Lichtenstein
Information Network Forensics
versie 1.0 (25/07/yyyy)
Forensische informatica Netwerken & Internetten 50-59 ___________________________________________________________________________
1.9.4. IP-adressen124 De ip-adressen die het TCP/IP protocol gebruikt bestaan uit 4 bytes (een byte bestaat uit 8 bit en iedere byte kan 256 combinaties van enen en nullen bevatten). De gebruikte manier om ip-adressen te schrijven is de "dotten decimal notation", wat zoiets betekent als "punt-gescheiden decimale notitie. In deze vorm worden de bytes als een decimaal getal geschreven, dus een nummer dat van 0 tot 255 loopt, en wordt gescheiden door een punt. Iedere nul die het getal bevat wordt weggelaten, behalve als het niet aan het begin van een getal staat (056 -> 56, 103 -> 103). De afspraak is dat ieder apparaat dat het TCP/IP protocol gebruikt een IP-adres heeft. IP-netwerken bestaan uit opeenvolgende IP-nummers. Alle adressen in een netwerk hebben een aantal getallen die overeen komen met het netwerkadres. Het stuk van het IP-adres dat voor elk adres binnen het netwerk hetzelfde is, heet het "netwerk deel" van het adres. De overgebleven nummer heten het "host deel". Het aantal bits van het IP-nummer dat het netwerkdeel aangeeft, wordt weergegeven door het "netmask". Het netmask wordt meestal weergegeven achter het IP-adres gescheiden door een "/". Een voorbeeld
machine adres: netmask: netwerkdeel: netwerknummer: host-deel:
192.168.0.32 255.255.255.0 192.168.0. 192.168.0.0 .32
Nu zijn er nog een paar speciale IP-adressen. Als we het voorbeeld van hierboven er nog even bijpakken zien we dat het netwerknummer er nog niet bijstaat. Ook is er nog een adres dat het "broadcast adres" genoemd wordt. Het netwerknummer is in dit geval: "192.168.0.0". Dit is het nummer waar het complete netwerk mee aangegeven wordt en wordt veel gebruikt in routeringstabellen. Deze tabellen komen we nog op terug. Het broadcast-adres is het laatste nummer in het netwerk en waar ieder apparaat (met een adres in het netwerkadres) op reageert. Dit nummer is in het bovenstaande geval "192.168.0.255". Nu zijn er verschillende klassen waar IP-adressen in kunnen vallen. Dit zijn klasse A, klasse B, klasse C en de multicast adressen. In welke klasse een nummer valt hangt af van het netmask. Hier onder een tabel waar de verschillende klassen in samengevat worden:
Klasse A B C Multicast
124
Netmask 255.0.0.0 255.255.0.0 255.255.255.0 224.0.0.0
IP-adressen 0.0.0.0 - 127.255.255.255 128.0.0.0 - 191.255.255.255 192.0.0.0 - 223.255.255.255 224.0.0.0 - 239.255.255.255
Bits 010110111 -
tekst volledig overgenomen van : www.xs4all.nl/~itbg077/studieavond/IP/Uitleg%20TCP.doc
Georges Lichtenstein
Information Network Forensics
versie 1.0 (25/07/yyyy)
Forensische informatica Netwerken & Internetten 51-59 ___________________________________________________________________________ De multicast-adressen kom ik later nog op terug. Nu staat er dus dat de eerste 8 bits van een klasse A adres gebruikt worden voor het netwerk- adres aan te geven. Dat houdt dus in dat er nog 24 bits voor de adressen in het netwerk over zijn. Een klasse A netwerk kan dus 16.777.214 adressen bevatten (256*256*256=16777216, dan min 1 voor het netwerkadres en min 1 voor het broadcast adres).
Een klasse A netwerk:
Een klasse B netwerk
Een klasse C netwerk
machine adres: 11.2.3.4 netmask: 255.0.0.0 netwerkdeel: 11. netwerknummer: 11.0.0.0 host-deel: .2.3.4 IP-adresruimte: 11.0.0.1 - 11.255.255.254 broadcast-adres: 11.255.255.255 machine adres: 180.45.87.12 netmask: 255.255.0.0 netwerkdeel: 180.45 netwerknummer: 180.45.0.0 host-deel: .87.12 IP-adresruimte: 180.45.0.1 - 180.45.255.254 broadcast-adres: 180.45.255.255
machine adres: netmask: netwerkdeel: netwerknummer: host-deel: IP-adresruimte: broadcast-adres:
193.180.45.2 255.255.255.0 193.180.45 19.180.45.0 .2 195.180.45.1 - 195.180.45.254 195.180.45.255
Welke klasse dus gekozen moet worden hangt geheel van het aantal machines af en eventueel de ruimte voor uitbreidingen. Nu zijn er voor iedere klasse "prive-netwerknummer". Dit zijn netwerknummers die niet op het internet voorkomen en dus geschikt zijn voor bijv. bedrijfsnetwerken. De Internet Assigned Numbers Authority (IANA) heeft ervoor gezorgd dat deze netwerknummers gereserveerd zijn en niet op het internet voorkomen. Dit zijn: 10.0.0.0 - 10.255.255.255 172.16.0.0 - 172.31.255.255
Georges Lichtenstein
(10/8 prefix) (172.16/12 prefix)
Information Network Forensics
versie 1.0 (25/07/yyyy)
Forensische informatica Netwerken & Internetten 52-59 ___________________________________________________________________________ 192.168.0.0 - 192.168.255.255 (192.168/16 prefix) De eerste is dus een klasse A en de derde een klasse B.
1.9.4. Super- en subnetten125 Nu bestaat er ook nog zoiets als supernetten en subnetten. Deze kunnen gemaakt worden door het netmask aan te passen. Supernetten zijn 2 (of meer) samengetrokken netwerken uit een bepaalde klasse nummers. Op een klasse C netwerk kunnen maar 255 adressen uitgedeeld worden. Als het nu nodig is om ruimte voor 510 adressen te maken, wordt er een bit van het netmask afgehaald. Het netmask wordt dan (binear weergegeven) "11111111.11111111.11111110.0000000". Dit is decimaal weergegeven "255.255.248.0". Nu kunnen er dus 2 klasse C netwerken samengevoegd worden. Voorbeeld supernet:
Machine adres: netmask: netwerkdeel: netwerknummer: host-deel: IP-adresruimte: broadcast-adres:
193.180.1.2 255.255.248.0 193.180.1 19.180.0.0 1.2 195.180.0.1 - 195.180.1.254 195.180.255.255
De mogelijkheid om gebruik te kunnen maken van subnetten is voor een onderneming interressant wanneer ze groeit. Met subnetten kan u het bereik van uw IP-adressen opsplitsen over verschillende fysieke netwerken in uw onderneming. U kan het netwerk uitbreiden met behulp van routers en bridges, om hiermee een deel toe te voegen aan het netwerk U kan met deze toestellen uw netwerk ook opdelen in kleinere stukken om zo de doelmatigheid van het netwerk te verbeteren. Delen van een netwerk die gescheiden zijn met een ander subnetmask zijn subnetten. Om het nieuwe netwerk-ID van een subnet te identificeren moet u een subnetmask gebruiken die het nieuwe netwerk-ID aanduid voor elk subnet.126
Subnetten zijn netwerken uit een bepaalde klasse die opgedeeld zijn in meerdere netwerken. Dit wordt ook weer gerealiseerd door het netmask aan te passen. In het volgende voor beeld wordt een klasse C netwerk opgedeeld in 2 aparte netwerken. 125 126
tekst volledig overgenomen van : www.xs4all.nl/~itbg077/studieavond/IP/Uitleg%20TCP.doc http://kurtkoenig.homeunix.net/dataentelecom/IPadressen.htm
Georges Lichtenstein
Information Network Forensics
versie 1.0 (25/07/yyyy)
Forensische informatica Netwerken & Internetten 53-59 ___________________________________________________________________________ Voorbeeld subnet:
machine adres: netmask: netwerkdeel: netwerknummer: host-deel: IP-adresruimte: broadcast-adres:
192.1.108.2 255.255.255.128 192.1.108 192.1.108.0 .2 192.1.108.1 - 192.1.108.127 192.1.108.128
Tegenwoordig worden de verschillende klassen op het internet niet meer gebruikt. Alles loopt tegenwoordig door elkaar en alles is opgedeeld in sub- en supernetten. De laatste tijd is een klassenloze notatie van IP-adressen gebruikelijk. In deze notatie (CIDR (Classless Inter-Domain Routing)) wordt door het getal achter de "/" het aantal enen aan het begin van het netwerkmasker weergegeven. Zo komt 192.168.0.0/16 dus overeen met 192.168.0.0/255.255.0.0 (het decimale getal 255 bestaat immers in het binaire stelsel uit 8 enen). Nu de multicast-adressen. Waar multicast voor gebruikt wordt is voor informatie die naar meerdere machines op een netwerk verstuurd moet worden. Denk hierbij aan streaming audio en video. Het is natuurlijk nutteloos als het 1.000 mensen naar een radiostation luisteren via het internet, om deze data dan duizend keer te versturen. Het is immers duizend keer dezelfde informatie. Het is een beetje te zien als het afstemmen op een radio-frequentie. Aangezien dit een nogal complex systeem is en het door weinig bedrijven of hobbyisten gebruikt wordt, ga ik hier verder niet op in. Dan is er nog een speciaal netwerknummer en dat is 127.0.0.1. Dit is het loopback-netwerk. Dit is een klasse A nummer en heeft dus als netwerkmasker 255.0.0.0. De loopback heeft als functie dat een pakket dat naar een 127 netwerk verstuurd wordt, eerst door de machine loopt. Pakketten met als bronof doeladres dat uit het loopback-adres komt, horen nooit ergens op een netwerk voor te komen.
1.9.4.a; Berekenen van subnetmasks127 Denk er voor het maken van het subnetmask aan dat het doel van een subnet het scheiden van een (32 bit) IP adres in een netwerk-ID, en een host-ID is. Als een bit in het subnet 1 is, dan is de overeenstemmende bit in het IP-adres een deel van het netwerkadres. Als een bit in het subnetadres 0 is, dan is de overeenstemmende bit in het IP-adres een deel van het host address. Neem een gegeven IP-adres. Bvb 10.11.12.13 en converteer dit naar binair: Ø 127
IP-adres: 00001010.00001011.00001100.00001101
http://kurtkoenig.homeunix.net/dataentelecom/IPadressen.htm
Georges Lichtenstein
Information Network Forensics
versie 1.0 (25/07/yyyy)
Forensische informatica Netwerken & Internetten 54-59 ___________________________________________________________________________
Ons voorbeeld is een Klasse A adres. Het binaire standaard subnet mask hiervoor is: subnet mask: 11111111.00000000.00000000.00000000 De formule om het aantal ‘netwerk’ bits in een subnet mask te vinden is Ø
2^n = aantal subnetten -2
(2^n betekend '2' tot de macht 'n')
U weet hoeveel subnetten u nodig heeft, nu moet u ‘n’ nog vinden. We willen 4 subnetten, daarom voegen we twee ééntjes (bits) toe aan het standaard subnetmask omdat 4 = 2 ^ 2. Dit geeft het volgende subnetmask: subnet mask: 11111111.11000000.00000000.00000000 Hetwelke in decimale notatie 255.192.0.0 geeft. Dit wordt ook slash ten of /10 genoemd, de slash notatie is het totale aantal 1-en in het binaire subnet adres. Deze notatie heeft een bruikbaar bereik van /8 (255.0.0.0) tot /31 (255.255.255.254). /32is een single host route.
Netwerk-ID, host-ID, en broadcast adres voor een IP-adres en subnetmask. Op de volgende manier berekent u welk deel het netwerk-ID, het host-ID, en het broadcast adres zijn voor een IP-adres en subnetmask. In het voorbeeld gebruiken we 10.11.12.13 met subnetmask 255.254.0.0 (dit is een Klasse A netwerk met een niet-standaard subnetmask) Ø Ø
Zet eerst IP-adres om naar binaire vorm. Zet ook het subnetmask om naar binair.
IP adres: 00001010.00001011.00001100.00001101 subnetmask: 11111111.11111110.00000000.00000000 ----------------------------------------------------------- AND netwerk adres:00001010.00001010.00000000.00000000 Na uitvoeren van een binaire AND vergelijking tussen deze twee nummers krijgt u het netwerk-ID. Na terug omzetten naar ‘dotted decimal notation’ geeft dit 10.10.0.0
Georges Lichtenstein
Information Network Forensics
versie 1.0 (25/07/yyyy)
Forensische informatica Netwerken & Internetten 55-59 ___________________________________________________________________________ Om het host-ID deel te krijgen moet u in het subnetmask alle enen veranderen in nullen en omgekeerd, en opnieuw de binaire AND vergelijking uitvoeren. IP adres: 00001010.00001011.00001100.00001101 “omgekeerd” subnetmask: 00000000.00000001.11111111.11111111 ------------------------------------------------------------ AND host-ID: 00000000.00000001.00001100.00001101 Na uitvoeren van een binaire AND vergelijking tussen binair IP-adres, En “omgekeerde waarden” subnetmask krijgt u het host-ID. Na terug omzetten naar ‘dotted decimal notation’ geeft dit 0.1.12.13 Om het broadcastadres te bekomen moet u een binaire XOR vergelijking doen van het netwerk-ID met het “omgekeerde” subnetmask. netwerk adres: 00001010.00001010.00000000.00000000 “omgekeerd” subnetmask: 00000000.00000001.11111111.11111111 ------------------------------------------------------------- XOR broadcast address: 00001010.00001011.11111111.11111111 Na uitvoeren van een binaire XOR vergelijking tussen binair netwerkID, En “omgekeerde waarden” subnetmask krijgt u het host-ID. Na terug omzetten naar ‘dotted decimal notation’ geeft dit 10.11.255.255
Georges Lichtenstein
Information Network Forensics
versie 1.0 (25/07/yyyy)
Forensische informatica Netwerken & Internetten 56-59 ___________________________________________________________________________
Bijlage I: Top-level domains geregistreerd in de wereld128 gTLDs .aero .biz
Aviation Business Organizations .com Commercial .coop Co-Operative Organizations .edu Educational .gov US Government .info Open TLD .int International Organizations .mil US Dept of Defense .museum Museums .name Personal .net Networks .org Organizations
128
.ac Ascension Island .ad Andorra .ae United Arab Emirates .af Afghanistan .ag Antigua and Barbuda .ai Anguilla .al Albania .am Armenia .an Netherlands Antilles .ao Angola .aq Antarctica .ar Argentina .as American Samoa .at Austria .au Australia .aw Aruba .az Azerbaijan
.ba Bosnia and Herzegovina .bb Barbados .bd Bangladesh .be Belgium .bf Burkina Faso .bg Bulgaria .bh Bahrain .bi Burundi .bj Benin .bm Bermuda .bn Brunei Darussalam .bo Bolivia .br Brazil .bs Bahamas .bt Bhutan .bv Bouvet Island .bw Botswana .by Belarus .bz Belize
.ca Canada .cc Cocos (Keeling) Islands .cd Congo, Democratic republic of the (former Zaire) .cf Central African Republic .cg Congo, Republic of .ch Switzerland .ci Côte d'Ivoire .ck Cook Islands .cl Chile .cm Cameroon .cn China .co Colombia .cr Costa Rica .cs Czechoslovakia (former - nonexisting) .cu Cuba .cv Cape Verde .cx Christmas Island .cy Cyprus .cz Czech Republic
http://www.norid.no/domenenavnbaser/domreg.html
Georges Lichtenstein
Information Network Forensics
versie 1.0 (25/07/yyyy)
Forensische informatica Netwerken & Internetten 57-59 ___________________________________________________________________________ .de Germany .dj Djibouti .dk Denmark .dm Dominica .do Dominican Republic .dz Algeria
.ec Ecuador .ee Estonia .eg Egypt .eh Western Sahara .er Eritrea .es Spain .et Ethiopia .eu European Union
.fi Finland .fj Fiji .fk Falkland Islands .fm Micronesia .fo Faroe Islands .fr France
.hk Hong Kong .hm Heard and McDonald Islands .hn Honduras .hr Croatia .ht Haiti .hu Hungary
.id Indonesia .ie Ireland .il Israel .im Isle of Man .in India .io British Indian Ocean Territory .iq Iraq .ir Iran .is Iceland .it Italy
.je Jersey .jm Jamaica .jo Jordan .jp
Georges Lichtenstein
Information Network Forensics
.ga Gabon .gb United Kingdom .gd Grenada .ge Georgia .gf French Guiana .gg Guernsey .gh Ghana .gi Gibraltar .gl Greenland .gm Gambia .gn Guinea .gp Guadeloupe .gq Equatorial Guinea .gr Greece .gs South Georgia and the South Sandwich Islands .gt Guatemala .gu Guam .gw Guinea-Bissau .gy Guyana .ke Kenya .kg Kyrgyzstan .kh Cambodia .ki Kiribati .km Comoros .kn Saint Kitts and Nevis .kp Korea, Democratic People's Republic of .kr Korea, Republic of .kw Kuwait .ky Cayman Islands .kz Kazakhstan
versie 1.0 (25/07/yyyy)
Forensische informatica Netwerken & Internetten 58-59 ___________________________________________________________________________ .la Lao People's Democratic Republic .lb Lebanon .lc Saint Lucia .li Liechtenstein .lk Sri Lanka .lr Liberia .ls Lesotho .lt Lithuania .lu Luxembourg .lv Latvia .ly Libyan Arab Jamahiriya
.pa Panama .pe Peru .pf French Polynesia .pg Papua New Guinea .ph Philippines .pk Pakistan .pl Poland .pm St. Pierre and Miquelon .pn Pitcairn .pr Puerto Rico .ps Palestine .pt Portugal .pw Palau .py Paraguay
Georges Lichtenstein
.ma .mc .md .mg .mh
Morocco Monaco Moldova Madagascar Marshall Islands .mk Macedonia .ml Mali .mm Myanmar .mn Mongolia .mo Macau .mp Northern Mariana Islands .mq Martinique .mr Mauritania .ms Montserrat .mt Malta .mu Mauritius .mv Maldives .mw Malawi .mx Mexico .my Malaysia .mz Mozambique .qa Qatar
.na Namibia .om Oman .nc New Caledonia .ne Niger .nf Norfolk Island .ng Nigeria .ni Nicaragua .nl The Netherlands .no Norway .np Nepal .nr Nauru .nu Niue .nz New Zealand
.re Reunion .ro Romania .ru Russia .rw Rwanda
Information Network Forensics
.sa .sb .sc .sd .se .sg .sh .si .sj
Saudi Arabia Solomon Islands Seychelles Sudan Sweden Singapore St. Helena Slovenia Svalbard and Jan Mayen Islands .sk Slovakia .sl Sierra Leone .sm San Marino .sn Senegal .so Somalia .sr Surinam .st Sao Tome and Principe .su USSR (former) .sv El Salvador .sy Syrian Arab Republic .sz Swaziland
versie 1.0 (25/07/yyyy)
Forensische informatica Netwerken & Internetten 59-59 ___________________________________________________________________________ .tc The Turks & Caicos Islands .td Chad .tf French Southern Territories .tg Togo .th Thailand .tj Tajikistan .tk Tokelau .tm Turkmenistan .tn Tunisia .to Tonga .tp East Timor .tr Turkey .tt Trinidad and Tobago .tv Tuvalu .tw Taiwan .tz Tanzania
Georges Lichtenstein
.ua Ukraine .ug Uganda .uk United Kingdom .um United States Minor Outlying Islands .us United States .uy Uruguay .uz Uzbekistan
.va Holy See .wf Wallis and (Vatican City Futuna Islands State) .ws Samoa .vc Saint Vincent and the Grenadines .ve Venezuela .vg Virgin Islands British .vi Virgin Islands U.S .vn Vietnam .vu Vanuatu
.ye Yemen .yt Mayotte .yu Yugoslavia
.za South Africa .zm Zambia .zr Zaire (nonexistent, see Congo) .zw Zimbabwe
Information Network Forensics
versie 1.0 (25/07/yyyy)