Persberichten
Wij gaan door waar anderen falen
Er zijn veel leveranciers op de markt actief met automatische vulnerability assessment tools. Bij geautomatiseerde testen wordt een aantal zaken overgeslagen die belangrijk zijn voor het in kaart brengen van risico’s en kwetsbaarheden. Wij gaan door waar anderen stoppen. Stoppen is volgens ons falen aangezien er een schijnveiligheid wordt gecreëerd. Dit zullen we duidelijk proberen te maken in het vervolg van dit verhaal.
Wat is een vulnerability assessment?
Volgens Wikipedia, “Een vulnerability assessment, ook wel kwetsbaarheid analyse is het proces van identificeren, kwalificeren en het prioriteit geven (of rangschikken) van kwetsbaarheden in een systeem”. In het kort omvat dit alles om vast te stellen of er kwetsbaarheden aanwezig zijn in het systeem welke onderwerp is van een analyse en om dit te rapporteren. Applicatie testen worden automatisch gedaan door wat test variabelen in te voeren binnen de applicatie of door een aantal test cases los te laten en te kijken of de applicatie kwetsbaar is voor de kwetsbaarheden die getest worden.
Over het algemeen wordt er bij een kwetsbaarheid analyse getest volgens een raamwerk, zoals bijvoorbeeld de OWASP Testing Guide, om er zeker van te zijn dat voldoende kwetsbaarheden worden getest. Na de ontdekking worden de kwetsbaarheden geëvalueerd en horen ze handmatig te worden geverifieerd. Vervolgens wordt een prioriteit gegeven aan de ontdekte kwetsbaarheden.
Veel leveranciers leveren geautomatiseerde diensten voor het uitvoeren van een kwetsbaarheid analyse. Hier ontbreekt de handmatige verificatie. Geautomatiseerde kwetsbaarheid analyses zijn niet erg volledig en zeker niet grondig.
Over het algemeen vinden automatische scanners 50- tot maximaal 70% van de kwetsbaarheden binnen een applicatie. Ook ontbreekt de “common sense” van een mens. Als er een document gevonden wordt kan een mens deze doornemen om te kijken of er bedrijfsgevoelige informatie in staat en hier eventueel actie op ondernemen. Dit kan een geautomatiseerde dienst niet controleren.
Wat is een penetratietest?
Penetratietesten, of pentesten bevatten alles uit een kwetsbaarheid analyse, plus een extra belangrijke stap, te weten het exploiteren van de kwetsbaarheden gevonden in de verkenningsfase. Het lijkt slechts een klein verschil met de kwetsbaarheid analyse, maar deze stap kan de mannen van de jongens onderscheiden.
Het is normaal dat een pentester 20% van zijn/haar tijd besteedt aan het zoeken naar een kwetsbaarheid en vervolgens 80% van zijn/haar tijd besteedt aan het daadwerkelijk exploiteren van deze kwetsbaarheid.
Tijdens onze penetratietesten hebben wij een aantal (zero-day) exploits ontdekt die niet door een kwetsbaarheid analyse naar voren zouden zijn gekomen. Domweg door gewoon naar een ingang te zoeken, te kijken naar het gedrag van een applicatie, hoe worden foutmeldingen afgehandeld etc. etc.
De betere pentesters stoppen over het algemeen ook niet bij het exploiteren van een enkele kwetsbaarheid, maar zullen kwetsbaarheden proberen te bundelen. Hierdoor kunnen twee of drie kwetsbaarheden met een laag risico resulteren in een kritische kwetsbaarheid.
Het grote voordeel van een penetratietest is de mogelijkheid te zien dat een kwetsbaarheid gebruikt wordt om actief een systeem te exploiteren om zo het maximale effect te zien. Gezien de aard van pentesting is er niet een echt raamwerk waarmee gewerkt wordt. Uiteraard zijn er tools als Metasploit beschikbaar om een pentester te assisteren. Het daadwerkelijk exploiteren is erg afhankelijk van het niveau en de vaardigheden van een persoon / team welke de test uitvoert.
Een voorbeeld om het verschil te laten zien
Wij zullen door middel van een voorbeeld proberen te illustreren wat het verschil is tussen een kwetsbaarheid analyse en een penetratietest.
Laten we ervan uit gaan dat een tester een SQL injectie aan het testen is en een enkele quote (‘) in alle invulvelden wordt geplaatst. In een specifiek veld waar een quote is ingevuld wordt een SQL error gegenereerd, resulterend in een pagina zoals deze, “You have an error in your SQL syntax near ‘\’0’ at line 1”. Dit is een duidelijk signaal van een SQL injectie foutmelding. Een kwetsbaarheid analyse gaat misschien nog iets verder kijken door bijvoorbeeld een standaard dump van een huidige gebruikers naam om de kwetsbaarheid te valideren en gaat dan rapporteren.
Een pentest zal aan de andere kant veel meer tijd besteden aan deze error alleen. Een pentester gaat uitzoeken hoe extra logica, of een commando structuur kan worden toegevoegd. Indien mogelijk zal een pentester een opsomming maken van de database structuur en zo mogelijk een dump maken van de gehele inhoud van de database. Als de configuratie en permissies niet goed zijn geconfigureerd kan een pentester zelfs een uitstap maken richting het OS command context om zo commando’s te starten binnen het OS. Vanzelfsprekend vergen deze aanvallen geduld en nemen tijd in beslag om succesvol te worden uitgevoerd.
Wat kiezen de meeste bedrijven en organisaties?
Bedrijven kiezen (gelukkig) steeds meer voor het uitvoeren van een penetratietest. Steeds meer bedrijven zien de toegevoegde waarde van een penetratietest boven een kwetsbaarheid analyse.
Uit onderzoek blijkt ook dat de meeste geslaagde aanvallen via applicaties zijn uitgevoerd. Dit zijn de kwetsbaarheden die een kwetsbaarheid analyse niet vindt.
ISSX zegt niet dat een kwetsbaarheid analyse slecht is, zeker niet. Een kwetsbaarheid analyse is goed voor de day-to-day business, maar vindt niet alle kwetsbaarheden. Het is daarom raadzaam om minimaal één keer per jaar een penetratietest uit te (laten) voeren.
Het grote nadeel is dat veel bedrijven de termen door elkaar gebruiken. Als er een aanvraag komt voor een security test, moet er dan een offerte komen voor een kwetsbaarheid analyse of een penetratietest? Een penetratietest kost nu eenmaal meer tijd (en dus meer geld), maar levert uiteindelijk veel meer op.
Wilt u meer weten over de manier waarop wij penetratietesten uitvoeren, neemt u dan gerust een kijkje op onze website: http://www.issx.nl
Laatst aangepast (vrijdag, 16 juli 2010 09:49)