Scapy is een programma dat als hulpmiddel bij de informatiebeveiliging gebruikt wordt.

Screenshot Scapy 2.4.3

Het programma is geschreven door Philippe Biondi in de programmeertaal Python. Verkeer dat over het internet gaat wordt tussen computers uitgewisseld in de vorm van pakketjes. Met Scapy is de gebruiker in staat om deze pakketjes af te luisteren en te manipuleren, en zo de beveiliging van een computer of netwerk te controleren. Het programma kan ook illegaal gebruikt worden door computerkrakers, om computers te kraken.

Scapy sluit goed aan bij gelaagde modellen zoals die van het TCP/IP model en het OSI-model. Een pakket wordt samengesteld door lagen op elkaar te stapelen. Zo kan bijvoorbeeld een HTTP-pakket bestaan uit een HTTP-laag (applicatielaag) die op een TCP-laag is gestapeld, die op zijn beurt op een IP-laag is gestapeld, met als onderste laag een ethernetlaag. Dit houdt in dat er geëxperimenteerd kan worden met de stapeling van lagen die niet voor de hand liggen, maar die juist daardoor in het laboratorium kunnen leiden tot nieuwe uitvindingen. Indien een compleet nieuw protocol wordt ontwikkeld, kan Scapy gebruikt worden om de beveiliging ervan te controleren.

Een kenmerk van Scapy is dat het ontvangen pakketten volledig opslaat, zonder hier een selectie uit te maken of een interpretatie ervan te geven. Dit stelt de gebruiker in staat om slechts eenmaal informatie in te winnen en deze informatie op verschillende manieren en tijdstippen te interpreteren en te analyseren. Veel andere tools geven feitelijk een interpretatie van de ontvangen pakketten. Ze concluderen dan bijvoorbeeld dat een computer een open poort heeft of kwetsbaar is, terwijl Scapy de ruwe data presenteert waaruit de gebruiker zelf zijn eigen conclusies kan trekken.

Dankzij de flexibiliteit en kracht die Scapy de gebruiker biedt in het manipuleren van netwerkverkeer, kan de functionaliteit van zeer veel andere programma's die in de informatiebeveiliging worden gebruikt, zoals hping, arpspoof, arping en p0f er volledig door verzorgd worden. Veel van de andere programma's zijn voor een specifiek doel geschreven, bijvoorbeeld het ontdekken van open poorten of het vinden van computers die actief zijn op een netwerk. Met Scapy kan de eindgebruiker compleet nieuw gereedschap maken, dat nog niet bestond en dat geschikt is voor bijvoorbeeld een type aanval dat hij zelf uitgevonden heeft. Evengoed zullen de meeste informatiebeveiligers de diverse andere gereedschappen zoals hping en arpspoof blijven gebruiken, bijvoorbeeld omdat ze vertrouwd zijn met het gebruik ervan en ze aan hun eisen voldoen.

Een nadeel van Scapy is dat het programma niet snel is in het uitwisselen van data. Dit komt door de diverse abstractielagen die het programma ondersteunt en door het feit dat het in Python is geïmplementeerd. Een ander nadeel van het programma is dat het veel geheugen nodig kan hebben om zijn werk te doen.

Een Python interpreter is geïntegreerd met Scapy. Hierdoor kan men interactief Python gebruiken of externe Python-script vanuit dit programma aanroepen.

Externe links bewerken