Poorten zijn een van de be­lang­rijk­ste redenen waarom da­tapak­ket­ten hun weg naar de gewenste be­stem­ming kunnen vinden. Ze fungeren als in­ter­fa­ces tussen computers en sys­teem­ser­vi­ces of programma’s en worden gebruikt door de TCP- en UDP-net werk­pro­to­col­len. Samen met het IP-adres kunnen be­stu­rings­sys­te­men ach­ter­ha­len naar welke computer en ap­pli­ca­tie ze gegevens moeten verzenden.

Wat is poorts­can­nen? Een korte uitleg

Poorts­can­nen verwijst naar het gerichte proces van het con­tro­le­ren van open poorten in een com­pu­ter­sys­teem met behulp van speciale tools. Voordat we ingaan op wat poorts­can­nen precies is, is het misschien handig om eerst te kijken wat poorten zijn. Poorten fungeren als een interface tussen actieve programma’s en het internet. Ze worden gebruikt om inkomende en uitgaande da­tapak­ket­ten naar de juiste ap­pli­ca­ties te leiden en worden beheerd door be­stu­rings­sys­te­men.

Opmerking

Om via een poort te kunnen com­mu­ni­ce­ren, moet deze worden geopend. Het openen van poorten brengt echter risico’s met zich mee. Als een van de ap­pli­ca­ties die de poort gebruikt be­vei­li­gings­lek­ken heeft, kan de poort dienen als een po­ten­ti­eel toe­gangs­punt voor aan­val­lers. Om het risico op een aanval te mi­ni­ma­li­se­ren, moet u altijd weten welke poorten op uw systeem open zijn en welke ap­pli­ca­ties daarmee zijn gekoppeld.

U hoeft niet ingelogd te zijn op het doel­sys­teem om er een poortscan op uit te voeren. U hoeft alleen maar via een lokaal netwerk of internet verbonden te zijn met het systeem. Met behulp van poorts­can­ners kunt u speciale da­tapak­ket­ten als test naar ver­schil­len­de poorten sturen. U ontvangt dan ant­woor­den of fout­mel­din­gen, die door de tool die u gebruikt worden ge­a­na­ly­seerd. Af­han­ke­lijk van het func­tie­be­reik van het scan­pro­gram­ma kunt u in­for­ma­tie ver­krij­gen over welke poorten open en welke gesloten zijn. U kunt ook gegevens ontvangen over welke diensten en/of toe­pas­sin­gen de be­tref­fen­de poorten gebruiken.

Poorts­can­nen biedt sys­teem­be­heer­ders een zeer ef­fi­ci­ën­te manier om het da­ta­ver­keer in een netwerk te monitoren. Met poorts­can­nen kunnen po­ten­ti­ë­le zwakke plekken worden gefilterd en kan het aan­vals­op­per­vlak van het systeem worden verkleind. In sommige gevallen kan het be­heer­ders helpen om concrete net­werk­pro­ble­men op te lossen. Bovendien hebben de tools geen merkbare invloed op de pres­ta­ties van de systemen die ze scannen. Daardoor kunnen ze worden gebruikt voor be­vei­li­gings­maat­re­ge­len zonder dat men zich zorgen hoeft te maken over on­be­doel­de effecten op de pres­ta­ties van het systeem.

Poorts­can­ners zijn ook nuttig voor thuis­com­pu­ters. Zodra u ap­pli­ca­ties gaat gebruiken die een in­ter­net­ver­bin­ding vereisen, worden er au­to­ma­tisch poorten geopend, tenzij uw firewall dit ver­hin­dert. Een poortscan kan u helpen om een overzicht te behouden en laat u zien welke poorten niet langer nodig zijn. U kunt deze ver­vol­gens sluiten om vei­lig­heids­ri­si­co’s te ver­min­de­ren.

Hoe werkt poorts­can­nen?

Poorts­can­ners bieden veel ver­schil­len­de methoden. De meeste daarvan maken echter gebruik van het ver­bin­dings­ge­o­ri­ën­teer­de protocol TCP. Om de ba­sis­pro­ces­sen te begrijpen die tijdens het scannen van poorten plaats­vin­den, is het nuttig om de algemene structuur van TCP-ver­bin­din­gen te bekijken:

  • Dit proces, ook wel bekend als een drie­weg­hand­druk, begint wanneer de client een SYN-pakket (syn­chro­ni­se­ren) naar de be­stem­mings­poort stuurt.
  • Zodra het pakket een ap­pli­ca­tie bereikt, ontvangt de client een ge­com­bi­neerd SYN/ACK-pakket (syn­chro­ni­se/ack­now­led­ge), waarmee wordt bevestigd dat de ver­bin­ding tot stand is gebracht.
  • Als derde en laatste stap stuurt de client een ACK-pakket (ack­now­led­ge), waarmee de ver­bin­ding tot stand wordt gebracht en de ge­ge­vens­uit­wis­se­ling kan beginnen.

Als er contact wordt gemaakt met een gesloten poort, ontvangt de client tijdens de tweede stap een RST-pakket (reset), waarmee de handshake wordt beëindigd.

Aangezien het moeilijk en tijd­ro­vend zou zijn om gegevens uit te wisselen met ver­schil­len­de soorten ap­pli­ca­ties, blijft het scannen van poorten beperkt tot een­vou­di­ge pogingen om ver­bin­din­gen tot stand te brengen, zoals blijkt uit de volgende scan­me­tho­den.

TCP-SYN-scan

Het doel van een TCP-SYN-scan is niet om een volledige TCP-ver­bin­ding tot stand te brengen. Daarom wordt dit type scan vaak een halfopen poortscan genoemd. Met behulp van de poorts­can­ner stuurt deze methode typische SYN-pakketten naar in­di­vi­du­e­le poorten en wacht op een antwoord van de doelhost. Als de host een SYN/ACK-pakket te­rug­stuurt, geeft dit aan dat de be­tref­fen­de poort open is en dat het mogelijk is om een ver­bin­ding tot stand te brengen. Als het antwoord een RST-pakket is, betekent dit dat de poort gesloten is. Als er geen antwoord is, kan dit waar­schijn­lijk worden te­rug­ge­voerd op een pak­ket­fil­ter (bijv. een firewall) die zich stroom­op­waarts bevindt.

TCP-SYN-scans zijn niet zichtbaar voor de ap­pli­ca­ties die worden be­oor­deeld en genereren daarom geen log­ge­ge­vens. Daarom worden ze ook wel stealth-scans genoemd.

TCP-ver­bin­dings­scan

Als u een connect-scan uitvoert met uw poorts­can­ner, genereert en verstuurt u niet zelf het ge­ge­vens­pak­ket. In plaats daarvan gebruikt u de sys­teem­aan­roep connect. Deze is be­schik­baar op bijna elk be­stu­rings­sys­teem. Als een ver­bin­dings­po­ging succesvol is, betekent dit dat de poort open is. Als de ver­bin­dings­po­ging mislukt, betekent dit dat de poort gesloten is. Als er met succes een ver­bin­ding tot stand is gebracht (d.w.z. een poort was open), kunt u in de log­be­stan­den van de ap­pli­ca­tie zien dat deze scan­tech­niek is gebruikt. Er wordt echter geen in­for­ma­tie verstrekt over de gebruikte fil­ter­pro­gram­ma’s. Als u niet over de rechten beschikt om on­be­werk­te ge­ge­vens­pak­ket­ten te verzenden, kan de TCP connect-scan een nuttig al­ter­na­tief zijn voor SYN-scans.

TCP-FIN-, Xmas- en Null-scans

Met deze drie methoden voor het scannen van poorten kunt u ook on­der­scheid maken tussen open en gesloten poorten. Hierbij worden twee ba­sis­con­cep­ten gebruikt, die zijn ge­do­cu­men­teerd in RFC 793:

  1. Gesloten poorten moeten altijd pakketten be­ant­woor­den (zolang het geen RST-pakketten zijn) met hun eigen RST-pakket.
  2. Open poorten moeten alle pakketten negeren die niet zijn ge­mar­keerd als SYN, RST of ACK.

Bij het scannen van RCF-com­pa­ti­be­le systemen maken deze scan­me­tho­den gebruik van deze principes met behulp van hun eigen pakketten:

  • De Null-scan maakt geen gebruik van speciale mar­ke­rin­gen.
  • Bij FIN-scans verstuurt de poorts­can­ner FIN-pakketten (finish).
  • Xmas- scans gebruiken een com­bi­na­tie van FIN-, PSH- (push) en URG-mar­ke­rin­gen (urgent), waardoor de pakketten oplichten als een kerstboom.

Alle drie de scan­me­tho­den werken op dezelfde manier. Vanwege de RCF-regels zorgen de test­pak­ket­ten ervoor dat gesloten poorten reageren met RST-pakketten en dat open poorten geen reactie geven. Niet alle routers sturen fout­mel­din­gen als een poort wordt gefilterd, wat zou kunnen betekenen dat er sprake is van een ge­fil­ter­de poort als er geen melding ver­schijnt (naast de mo­ge­lijk­heid dat het een open poort is). Hoewel deze methode veel discreter is dan SYN-scans, werkt deze mogelijk niet goed als systemen zich niet volledig aan RFC 793 houden. Een bekend voorbeeld hiervan is Windows.

UDP-scan

Bij UPD-scans worden lege UDP-headers zonder gegevens naar alle lege poorten gestuurd. Als een service met een UDP-pakket antwoordt, is de bij­be­ho­ren­de poort open. Als de poorts­can­ner de fout­mel­ding ‘Poort on­be­reik­baar’ van de router ontvangt (type 3, code 3), herkent hij de poort als gesloten. Andere fout­mel­din­gen dienen om ge­brui­kers te in­for­me­ren dat pak­ket­fil­ters ver­ant­woor­de­lijk zijn voor het blokkeren van poorten. Het probleem met UDP-poort­tes­ten is dat het enorm veel tijd kost. Dit komt omdat het bij veel systemen om vei­lig­heids­re­de­nen lang kan duren voordat er fout­mel­din­gen worden gegeven. Bovendien reageren veel van deze systemen slechts spo­ra­disch op poorten. De Linux-kernel beperkt het aantal rapporten per seconde, wat betekent dat het ongeveer 18 uur zou duren om 65.535 poorten volledig te scannen.

Welke poorts­can­ners zijn er?

Er zijn veel ver­schil­len­de scanners die ver­schil­len in het scala aan functies dat ze bieden. De meeste van deze tools zijn be­schik­baar als freeware of open-source opties. Veel daarvan be­schik­ken over klassieke op­dracht­re­gel­pro­gram­ma’s die via af­zon­der­lij­ke grafische in­ter­fa­ces kunnen worden gebruikt. Bovendien zijn er veel online op­los­sin­gen waarmee ge­brui­kers poorten recht­streeks in een browser kunnen scannen. Diensten zoals de poorts­can­ner van DNS-tools zijn beperkt in hun func­ti­o­na­li­teit en bieden alleen de mo­ge­lijk­heid om af­zon­der­lij­ke poorten te con­tro­le­ren. Daarom zijn ze zeer geschikt voor het uitvoeren van snelle controles op pc’s.

Netcat

Netcat (afgekort: nc) werd in 1996 ge­pu­bli­ceerd door een anonieme ont­wik­ke­laar die bekend staat als ‘Hobbit’. Oor­spron­ke­lijk ge­schre­ven voor Unix-platforms, zijn er nu veel por­ting­op­ties voor systemen zoals Windows en andere uit­brei­din­gen zoals GNU Netcat, OpenBSD Netcat, Cryptcat en Netcat6 (on­der­steunt ook IPv6), die standaard in veel Linux-dis­tri­bu­ties zijn opgenomen. De ba­sis­ver­sie van het op­dracht­re­gel­pro­gram­ma is in de eerste plaats ontworpen om gegevens te verzenden of te lezen via TCP- en UDP-net­werk­ver­bin­din­gen. Het kan echter ook worden gebruikt voor een­vou­di­ge poorts­can­ning­ta­ken. Hiermee kunnen ge­brui­kers de status van poorten 20 tot 30 op een bepaald systeem con­tro­le­ren met een­vou­di­ge op­drach­ten zoals:

nc -zv localhost 20-30
bash

Voor het con­tro­le­ren van UDP-poorten is de extra parameter*-u* vereist. U kunt ook de hostnaam of het IP-adres van een extern systeem (als u dat weet) gebruiken in plaats van localhost.

Nmap

Een aan­zien­lijk krach­ti­ger hulp­mid­del, dat vooral handig is voor het scannen van poorten, is Network Mapper, vaak Nmap genoemd. Nmap is ontworpen voor Unix-achtige systemen, heeft een GPL-licentie en is sinds 2000 be­schik­baar voor Windows-systemen (zij het met be­per­kin­gen). Dit betekent dat TCP Connect-scans on­e­ven­re­dig veel tijd in beslag nemen en dat het scannen van uw eigen sys­teem­poor­ten alleen mogelijk is via indirecte paden. Over het algemeen kan Nmap via een op­dracht­re­gel worden bediend. Zenmap daar­en­te­gen beschikt over een krachtige grafische interface waarmee ge­brui­kers het net­werk­pro­gram­ma ge­mak­ke­lijk kunnen gebruiken.

De maker van Nmap, Gordon Lyon, en het ont­wik­kel­team van Nmap zijn ver­ant­woor­de­lijk voor de verdere ont­wik­ke­ling van het programma en de poorts­can­func­ties ervan. Met name tech­no­lo­gie­ën zoals OS-fin­ger­prin­ting (d.w.z. het herkennen van het be­stu­rings­sys­teem van een doelhost) en het uitlezen van services die zich achter poorten ver­schui­len, maken Nmap tot een van de po­pu­lair­ste poorts­can­ner­op­los­sin­gen. De volgende tabel toont de ver­schil­len­de methoden die dit programma te bieden heeft:

Poorts­can­me­tho­den Nmap-commando Be­schrij­ving
TCP connect-scan nmap -sT host Klassieke controle voor niet-be­heer­ders
TCP Syn-scan nmap -sS host Snelle, on­op­ge­merk­te in­spec­tie­me­tho­den voor be­heer­ders.
TCP FIN-/XMAS-/Null-scan nmap -sF host nmap -sX host nmap -sN host Methoden die firewalls kunnen omzeilen
TCP ping -scan nmap -sP host Voor tra­di­ti­o­ne­le poorts­cans; helpt bij het con­tro­le­ren van de be­schik­baar­heid van een host.
TCP ACK-scan nmap -sA host Bepaalt geleverde poorten, maar maakt geen on­der­scheid tussen open en gesloten poorten
TCP Window-scan nmap -sW host Ver­ge­lijk­baar met de ACK-scan; kan sommige open en gesloten poorten ve­ri­fi­ë­ren.
TCP Maimon-scan nmap -sM host Com­bi­na­tie van FIN- en ACK-scans.
TCP idle scan nmap -sI zombie host host Minst op­val­len­de, meest complexe en dus traagste scan­me­tho­de; wordt uit­ge­voerd via een derde computer die door Nmap als ‘zombie’ wordt aangeduid.
UDP-scan nmap -sU host Scan­me­tho­den voor ver­bin­dings­lo­ze UDP-poorten
SCTP init-scan nmap -sY host Poortscan met SCTP, een al­ter­na­tief voor TCP en UDP
IP-pro­to­cols­can nmap -sO host Geen poortscan; con­tro­leert welk IP-gebaseerd protocol wordt on­der­steund op het doel­sys­teem

U kunt zowel Nmap als de interface Zenmap voor uw be­stu­rings­sys­teem down­lo­a­den op de officiële website van Nmap. Zowel de huidige (stabiele) versie als een bè­ta­ver­sie (ont­wik­ke­ling) zijn be­schik­baar.

Waarom poorts­can­nen niet altijd legaal is

Het con­tro­le­ren van poorten is niet altijd legaal. Zodra er een poging totex­ploi­ta­tie wordt on­der­no­men (de term die door cy­ber­se­cu­ri­ty­pro­fes­si­o­nals wordt gebruikt om te verwijzen naar het mis­brui­ken van een be­vei­li­gings­lek of -gat), kan de persoon of groep die hiervoor ver­ant­woor­de­lijk is, te maken krijgen met mogelijke ju­ri­di­sche gevolgen.

Het is echter minder duidelijk wat de ju­ri­di­sche situatie is wanneer een com­pu­ter­sys­teem tot stilstand komt als gevolg van in­ten­sie­ve poorts­can­ning. Door de hoge fre­quen­tie van ver­bin­dings­ver­zoe­ken kunnen der­ge­lij­ke mo­ni­to­ring­me­tho­den uit­da­gin­gen vormen voor het doel­sys­teem, wat soms kan leiden tot het crashen van het systeem. Bovendien kunnen be­heer­ders van het systeem dat het doelwit is, zich vóór de crash bewust worden van de ac­ti­vi­tei­ten van de aan­val­lers en deze acties in­ter­pre­te­ren als de eerste stappen van een aanval.

In der­ge­lij­ke gevallen is het be­lang­rijk om ju­ri­di­sche gevolgen niet uit te sluiten. Als het beoogde systeem op­zet­te­lijk wordt over­be­last, kan dit worden beschouwd als een DDoS-aanval, wat ertoe kan leiden dat het slacht­of­fer van de aanval ju­ri­di­sche stappen on­der­neemt.

U moet er altijd voor zorgen dat u bevoegd bent om een poortscan op een systeem uit te voeren en deze techniek alleen gebruiken voor be­vei­li­gings­doel­ein­den en niet alleen om uw nieuws­gie­rig­heid te be­vre­di­gen. De hier besproken poorts­can­me­tho­den be­na­druk­ken hoe be­lang­rijk het is om de poorten en net­werk­com­pu­ters van uw eigen systeem in de gaten te houden, evenals de services die er toegang toe hebben.

Ga naar hoofdmenu