Hulpmiddelen voor de Beveiligingsaudit

Er zijn verschillende pakketten beschikbaar in het Debian-archief die zijn ontworpen om met beveiligingsaudits te helpen. Dit zijn onder andere:

Merk op dat er ook andere hulpmiddelen zijn specifiek voor een bepaalde verzameling van beveiligingslekken die misschien niet in een Debian-pakket te vinden zijn, maar ze kunnen nuttig zijn voor een auditor. Deze omvatten:

Geen enkel hulpmiddel is perfect en ze kunnen enkel gebruikt worden als richtlijnen voor verdere studie, maar omdat ze eenvoudig zijn in gebruik, is het waard ze eens uit te proberen.

Elk hulpmiddel heeft andere sterktes en zwaktes, dus is het aangeraden meer dan één te gebruiken.

Flawfinder

flawfinder is een Python-hulpmiddel dat is ontworpen om C- en C++-broncode te inspecteren naar potentiële beveiligingslekken.

Wanneer uitgevoerd tegen een map die broncode bevat, zal het een rapport geven van de potentiële problemen die het heeft gedetecteerd, gesorteerd naar risico (waar risico een getal 1–5 is). Om kleine risico’s niet te laten zien, kunt u het programma problemen onder een bepaald risiconiveau laten negeren. Standaard is de uitvoer in platte tekst, maar er is ook een HTML-rapport beschikbaar.

Het programma werkt door het scannen van de code en het bekijken van het gebruik van functies die zich in haar databank bevinden als functies die vaak verkeerd worden gebruikt.

Om het lezen van het rapport te vergemakkelijken, is het mogelijk om het rapport de regel waarop de functie wordt gebruikt te laten weergeven, dit kan nuttig zijn om onmiddellijk te detecteren of er al dan niet een probleem is.

U kunt een voorbeeld van het gebruik van flawfinder en haar uitvoer bekijken in de auditvoorbeeldensectie.

ITS4

ITS4 is een hulpmiddel in de non-free sectie van het Debian-archief, het is enkel beschikbaar in de woody distributie.

ITS4 kan gebruikt worden om C- and C++-code te scannen voor potentiële beveiligingslekken, ongeveer zoals flawfinder.

De gegenereerde uitvoer probeert intelligent te zijn door sommige gevallen waar de gevaarlijke functies voorzichtig zijn aangeroepen, te negeren.

RATS

RATS is een vergelijkbaar hulpmiddel met de uitzondering dat het ondersteuning biedt voor een veel groter bereik van talen. Momenteel heeft het ondersteuning voor C, C++, Perl, PHP en Python.

Het hulpmiddel gebruikt een eenvoudig XML-bestand om haar beveiligingslekken in te lezen wat het één van de gemakkelijkst aan te passen hulpmiddelen is. Nieuwe functies kunnen gemakkelijk toegevoegd worden voor elk van de ondersteunde talen.

U kunt een voorbeeld van het gebruik van RATS en haar uitvoer bekijken in de auditvoorbeeldensectie.

pscan

pscan verschilt van de vorige hulpmiddelen omdat het helemaal geen scanner is voor algemeen gebruik. In plaats daarvan is het specifiek gericht op het detecteren van formaatstring-bugs.

Het hulpmiddelen zal proberen potentiële problemen te vinden door het gebruik van variadische functies in C- en C++-broncode, zoals printf, fprintf en syslog.

Formaatstring-bugs zijn nogal gemakkelijk op te sporen en te herstellen, hoewel ze de recentste nieuwe klasse van softwareaanvallen zijn, is de meerderheid van hun waarschijnlijk al gevonden en hersteld.

U kunt een voorbeeld van het gebruik van pscan en haar uitvoer bekijken in de auditvoorbeeldensectie.

Scanneruitvoer Begrijpen

Alle algemene scanhulpmiddelen zullen uitvoer genereren die beschrijft welke problemen werden gedetecteerd en misschien advies geven om ze op te lossen.

Bijvoorbeeld is het volgende genomen uit de uitvoer van RATS wat de gevaren van getenv beschrijft:

Omgevingsvariabelen zijn weinig betrouwbare invoer. Ze kunnen van om het even welke lengte zijn en kunnen om het even welke data bevatten. Maak geen veronderstellingen inzake inhoud of lengte. Als het enigzins mogelijk is, probeer ze dan te vermijden en als het gebruik noodzakelijk is, kuis ze dan en kap ze af op een redelijke lengte.

Als u meer advies nodig heeft bij het herstellen van een lek dat werd gerapporteerd zou u een boek over veilig programmeren moeten bestuderen, zoals de Secure Programming for Linux and Unix HOWTO by David A. Wheeler.

(Onthoudt dat wanneer u beveiligingsproblemen rapporteert, een patch die het lek repareert zeer op prijs wordt gesteld.)

Discussie in verband met het bijwerken van een bepaald stuk problematische code kan ook op de debian-security mailinglijst gehouden worden. Zorg er dan wel voor dat het niet duidelijk wordt over welk programma het gaat, aangezien dit een openbare mailinglijst is met openbare archieven.