Firewalls, proxyservers, demilitarized zones (DMZ) – bedrijven gebruiken steeds meer upgrades om privénetwerken te beschermen tegen gevaar vanaf het internet. Maar niet alle aanvallen komen van buiten. De zwakste schakel van de veiligheidsketen is het Local Area Network (LAN). Als de aanvaller al binnen het interne netwerk is, heeft hij meestal de vrije hand om het gegevensverkeer af te luisteren en naar wens te manipuleren. Interne daders maken misbruik van de kwetsbaarheid van het Address Resolution Protocol (ARP). Dit wordt gebruikt door ethernet-netwerken die op IPv4 gebaseerd zijn om IP-adressen in MAC-adressen om te zetten en vormt tot vandaag een veiligheidsprobleem voor beheerders.
ARP-entry’s kunnen door vervalste gegevenspakketten zonder moeite worden gemanipuleerd. In dit geval spreek je van ARP-spoofing (Engels: to spoof = misleiden, voor de gek houden), een man-in-the-middle-aanval waarmee hackers onopgemerkt tussen twee communicerende systemen kunnen schakelen. Wij laten zien hoe je de adresomzetting via ARP doelgericht kunt manipuleren en stellen tegenmaatregelen voor.
Anders dan op internet communiceren apparaten binnen een LAN niet direct via IP-adressen. In plaats daarvan worden voor het adresseren binnen lokale IPv4-netwerken fysieke hardware-adressen gebruikt. Deze zogenoemde MAC-adressen (Media Access Control) zijn unieke 48-bits nummers die het mogelijk maken om ieder toestel apparaat binnen het LAN via de eigen netwerkkaart eenduidig te identificeren.
Voorbeeld van een MAC-adres: 00-80-41-ae-fd-7e
MAC-adressen worden door de fabrikant bepaald en zijn uniek. Theoretisch gezien is het daardoor mogelijk om de hardware-adressen wereldwijd te adresseren. In de praktijk is dit echter niet mogelijk, omdat IPv4-adressen te kort zijn om het MAC-adres in zijn geheel weer te geven. In netwerken op basis van IPv4 is de adresomzetting via ARP daarom onvermijdelijk.
Als computer A contact wil opnemen met computer B in hetzelfde netwerk, moet voor het IP-adres eerst het passende MAC-adres worden bepaald. Hierbij wordt gebruikgemaakt van het Address Resolution Protocol (ARP), een netwerkprotocol dat volgens het request-response-schema werkt.
Voor het bepalen van het bijbehorende MAC-adres stuurt computer A eerst een broadcastaanvraag (het zogenoemde ARP-request) naar alle apparaten in het netwerk. Deze omvat ongeveer de volgende informatie:
Een computer met het MAC-adres xx-xx-xx-xx-xx-xx en het IP-adres yyy.yyy.yyy.yyy wil contact opnemen met een computer met IP-adres zzz.zzz.zzz.zzz en heeft daarvoor het MAC-adres nodig.
Het ARP-request wordt aangenomen door alle computers in het LAN. Om te voorkomen dat je iedere keer een ARP-aanvraag moet indienen voordat je een gegevenspakket wilt versturen, houdt de computer in het netwerk een lokale tabel bij – de ARP-cache. Hierin worden alle bekende MAC-adressen inclusief bijbehorende IP tijdelijk opgeslagen.
Alle computers in het netwerk noteren op die manier de adrescombinatie van de afzender die via de broadcastaanvraag is gestuurd. Een antwoord op de broadcastaanvraag wordt echter alleen van computer B verwacht. De ARP-reply van deze computer omvat de volgende informatie:
Hier is het systeem met IP-adres zzz.zzz.zzz.zzz. Het gezochte MAC-adres is aa-aa-aa-aa-aa-aa.
Als computer A zo'n ARP-reply heeft ontvangen, beschikt hij over de benodigde informatie om gegevenspakketten naar computer B te versturen. Nu kunnen deze twee computers via het lokale netwerk met elkaar communiceren.
Maar wat gebeurt er als niet de doelcomputer reageert, maar een ander apparaat dat door een interne aanvaller met kwade opzet wordt gebruikt? Hier komt ARP-spoofing om de hoek kijken.
Het request-response-schema van het ARP-protocol is zo geprogrammeerd dat het eerste antwoord op een ARP-request wordt geaccepteerd en opgeslagen. In geval van ARP-spoofing proberen hackers daarom sneller te zijn dan de eigenlijke doelcomputer. Ze versturen een reply-pakket met verkeerde informatie voordat de doelcomputer dit doet en manipuleren op deze manier de ARP-tabel van de computer die de aanvraag heeft verstuurd. Je hebt het daarom ook wel over ARP-poisoning – een ‘vergiftiging’ van de ARP-cache. Over het algemeen omvat het gegevenspakket het MAC-adres van een netwerkapparaat dat door de aanvaller wordt gebruikt. Het vergiftigde systeem verbindt de uitgangs-IP daardoor met het verkeerde hardware-adres en stuurt vanaf dat tijdstip alle gegevenspakketten onopgemerkt naar het systeem van de hacker. Deze heeft nu de mogelijkheid om het gehele dataverkeer te bekijken of te manipuleren.
Om onopgemerkt te blijven, wordt het afgeluisterde gegevensverkeer over het algemeen doorgestuurd naar het eigenlijke doelsysteem. Een aanvaller verkrijgt zo op slinkse wijze een positie als man in the middle (tussenpersoon). Als onderschepte gegevenspakketten niet worden doorgestuurd, maar worden weggegooid, kan dat een Denial of Service (DoS) tot gevolg hebben. ARP-spoofing is mogelijk via LAN en WiFi. Zelfs het versleutelen van draadloze netwerken via WiFi Protected Access (WPA) biedt geen bescherming. Om te communiceren in lokale IPv4-netwerken, moeten alle aangesloten apparaten MAC-adressen omzetten – en dat is alleen via ARP mogelijk.
Een bekende software die doelgericht op broadcast-aanvragen wacht en ze beantwoordt met vervalste ARP-reply’s is Cain & Abel. Om de ARP-cache van netwerkapparatuur te vergiftigen, hoeft een aanvaller echter niet op een ARP-request wachten. Een andere strategie is het netwerk ononderbroken te bombarderen met vervalste ARP-reply’s. De meeste systemen negeren de antwoordpakketten weliswaar, omdat er geen bijbehorende aanvraag is, maar dit verandert zodra een computer in het LAN een ARP-request verstuurt en een antwoord verwacht. Dan geeft de timing de doorslag of het antwoord van het doelsysteem of een vervalst pakket aankomt bij de afzender. Dit soort aanvallen kunnen met programma's zoals Ettercap worden geautomatiseerd.
Programma's die in verband met ARP-spoofing als aanvalssoftware worden gebruikt, worden over het algemeen als veiligheidstool gezien en zijn online gratis verkrijgbaar. Beheerders kunnen met behulp van deze programma's het eigen netwerk controleren en beveiligen tegen gebruikelijke aanvallen. De bekendste applicaties zijn ARP0c /WCI, Arpoison, Cain & Abel, Dsniff, Ettercap, FaceNiff en NetCut.
Als het een dader lukt om onopgemerkt tussen twee communicatiepartners te schakelen, heeft hij bij onbeveiligde verbindingen de vrije hand. Omdat de gehele communicatie van een gehackte verbinding via het systeem van de aanvaller verloopt, kan hij deze data meelezen en manipuleren. Versleutelingstechnieken en certificaten beloven bescherming tegen gegevensspionage. Als een aanvaller versleutelde gegevens slechts onderschept, is de schade in het ergste geval beperkt tot een Denial of Service door weggegooide gegevenspakketten. Een voorwaarde voor een betrouwbare gegevensversleuteling is echter dat deze ook consequent wordt omgezet.
Een groot aantal tools die in het kader van man-in-the-middle-aanvallen worden ingezet, bieden naast functies voor ARP-poisoning ook client- en serverimplementaties voor SSL/TLS, SSH en andere encryptieprotocollen. Deze zijn daardoor in staat om certificaten te imiteren en versleutelde verbindingen tot stand te brengen. Cain & Abel simuleert bijvoorbeeld een webserver met SSL die een niet betrouwbaar SSL-certificaat doorstuurt naar het slachtoffersysteem. De deelnemers van het netwerk krijgen in dat geval weliswaar een veiligheidswaarschuwing, maar gebruikers negeren deze waarschuwing vaak of begrijpen hem niet. Cursussen over het thema ‘netwerkveiligheid’ moeten daarom ook ingaan op verantwoorde omgang met digitale certificaten.
Omdat bij ARP-spoofing misbruik wordt gemaakt van het Address Resolution Protocol, zijn in principe alle IPv4-netwerken kwetsbaar voor zulke aanvallen. Ook met IPv6 kon het basisprobleem niet worden opgelost. De nieuwe IP-standaard regelt de adresomzetting weliswaar via NDP (Neighbor Discovery Protocol) in plaats van via ARP, maar ook dit systeem is vatbaar voor spoofing-aanvallen. Je kunt de beveiligingsleemte sluiten met het protocol Secure Neighbor Discovery (SEND), maar slechts weinig desktop-besturingssystemen ondersteunen dit protocol.
Een mogelijke bescherming tegen manipulatie van ARP-caches bieden statische ARP-entry’s, die je op Windows bijvoorbeeld kunt vastleggen via het commandoregelprogramma ARP en het commando arp -s. Omdat deze entry’s handmatig moeten worden vastgelegd, wordt deze beveiligingsmaatregel vaak beperkt tot de belangrijkste systemen van het netwerk.
Een andere maatregel tegen het misbruik van ARP is het onderverdelen van het netwerk met layer-3-switches. Zonder controle kunnen broadcast-aanvragen alleen systemen bereiken die in dezelfde netwerklaag liggen. ARP-requests naar andere lagen worden door de switch gecontroleerd. Als deze in de netwerklaag (layer 3) werkt, wordt naast het MAC-adres ook het IP-adres vergeleken met eerdere entry’s. Als dan onregelmatigheden of frequente herindelingen opvallen, slaat de switch alarm. De benodigde hardware kost echter vrij veel geld. Beheerders moeten overwegen of de aanvullende beveiliging de kosten waard is. Daarentegen zijn de duidelijk goedkopere layer-2-switches, die in de beveiligingslaag functioneren, niet voldoende geschikt. Ook deze switches registreren veranderingen van MAC-adressen, maar ze kijken niet naar de gekoppelde IP-adressen.
Verschillende softwarefabrikanten bieden bovendien monitoringprogramma's aan waarmee je netwerken kunt bewaken en opvallende ARP-processen kunt ontdekken. Bekende tools zijn de opensourcesoftware Arpwatch, ARP-GuardGUARD en XArp. Bovendien kun je intrusion-detection-systemen, zoals Snort, gebruiken om de adresomzetting via ARP te controleren.
Ook het intrusion-detection-systeem (IDS) Snort beschikt over een geïntegreerde Arpspoof-preprocessor, waarmee het mogelijk is om het gegevensverkeer in een netwerk te monitoren en handmatig vergelijkingslijsten aan te leggen. Dit kost echter vrij veel moeite.
Bovendien worden IDS’en meestal alleen bij de overgang naar vreemde netwerken gebruikt. Of het rendabel is om de software binnen een LAN te gebruiken, moet voor ieder geval afzonderlijk worden bepaald. Onder andere de ondernemingsraad kan zich tegen deze maatregel uitspreken. Een beheerder die via IDS toezicht houdt op het netwerk heeft toegang tot het gehele netwerkverkeer en daardoor ook tot alle activiteiten van de medewerkers van een bedrijf – de controlefunctie die daardoor mogelijk is, is over het algemeen ongewenst.