Er is veel ophef over AI en de effecten ervan op alle gebieden van de IT- en technologie-industrieën. Wat betekent dit voor pentesten? In dit artikel bespreken we de impact van AI en automatisering op Cyber Security (pen)testdiensten, hoe AI deze in de toekomst waarschijnlijk zal veranderen, of AI de ethische hacker kan vervangen en waar je op moet letten bij het evalueren van leveranciers voor pentesten.
Sommige Cyber Security leveranciers beschrijven hun tools en diensten nu ineens als "Powered by AI," maar het is de moeite waard te onthouden dat vele gebieden van Cyber Security, in het bijzonder pentesten, al enkele jaren geleidelijk AI in hun werk hebben geïntegreerd. Over het geheel genomen zijn AI en automatisering ingebouwd in tools die de tijd verminderen die pentesters besteden aan repetitieve taken, zodat zij zich kunnen concentreren op taken waar hun expertise waardevoller is.
Wat zegt het woordenboek?
Een probleem is dat termen die in de industrie standaard zijn, niet altijd een universeel geaccepteerde definitie hebben. De ene Cyber Security leverancier kan haar dienst beschrijven als "geautomatiseerde pentesten," terwijl een andere provider dezelfde term kan gebruiken om naar iets compleet anders te verwijzen. Dus, voordat we verder gaan, laten we onze termen definiëren:
Pentesten is een offensieve beveiligingsoefening die handmatige en geautomatiseerde hackingtechnieken gebruikt om gecontroleerde aanvallen op een asset (of assets) uit te voeren, zoals een webapplicatie, cloudomgeving, stuk hardware, enzovoort. Dit test de effectiviteit van een IT-asset in het weerstaan van verschillende kwaadaardige technieken die verstoring of schade zouden veroorzaken, of gegevens of financiële assets zouden exfiltreren. Pentesten helpen om te identificeren waar kwetsbaarheden en verkeerde configuraties kunnen leiden tot een toename van cyberrisico's en bevelen geschikte oplossingen aan om hen te helpen dat risico te verlagen.
Kwetsbaarheidsscanners inspecteren netwerken, apparaten en applicaties op bekende kwetsbaarheden en scoren deze vervolgens (meestal volgens CVSS).
Sommige Cyber Security leveranciers gebruiken nu de term geautomatiseerde pentesten, wat verwijst naar het gebruik van kwetsbaarheidsscanners om naar kwetsbaarheden te zoeken en vervolgens automatisch tests op die kwetsbaarheden uit te voeren. Helaas hebben deze moeite om complexere aanvalstechnieken uit te voeren met veel variabelen, of om meerdere kwetsbaarheden samen te voegen om een groter impact te bereiken dan de som van de delen.
Echter, "geautomatiseerde pentesten" is mogelijk misleidend. Het impliceert dat andere soorten testen "handmatig" zijn, en "handmatige pentesten" impliceert dat alles handmatig wordt gedaan. In feite hebben pentesters al jaren veel tools ontwikkeld en gebruikt om delen van het pentestproces te automatiseren.
Het geheime leven van kwetsbaarheidsscanners
Kwetsbaarheidsscanners worden bij de meeste pentests gebruikt om het proces van het identificeren van kwetsbaarheden te versnellen, maar ze worden ook op zichzelf gebruikt om meer basale problemen op te sporen. Kwetsbaarheidsscanners zijn in de loop der jaren krachtiger geworden, wat betekent dat het aantal kwetsbaarheden, dat ze met succes kunnen detecteren, toeneemt. Met de toevoeging van AI zal deze groei alleen maar doorgaan, evenals hun vermogen om dergelijke kwetsbaarheden automatisch te onderzoeken door dezelfde aanvallen uit te voeren die een menselijke pentester handmatig zou hebben gedaan.
Tot nu toe hebben kwetsbaarheidsscanners moeite gehad om systemen met dynamische variabelen te testen. Om deze reden hebben ze traditioneel veel beter gepresteerd bij het testen van infrastructuur dan bij het testen van complexere webapplicaties. Dit komt doordat dergelijke variabelen kunnen voorkomen in situaties waarin systemen en gegevens veranderen volgens verschillende invoer of reeksen van invoer. In de voorbeeldcontext van een e-commerce website zou een menselijke pentester verschillende gegevens kunnen invoeren in de klantcheckout-velden op elk paginaformulier om te zien welk effect dit heeft. Een scanner ziet echter niet het potentieel om verschillende uitkomsten te programmeren door interactie met de velden. Zonder context kan het alleen observeren en beperkte willekeurige acties uitvoeren, in plaats van objectief de effecten van variabelen te testen. Om deze reden is menselijke input en expertise nog steeds waardevol voor het testen van webapplicaties.
Het gebruik van scanners op geverifieerde systemen brengt ook bedrijfsrisico's met zich mee (onze ingenieurs vermijden het indien mogelijk volledig). Dit komt omdat ze niet intelligent kunnen onderscheiden tussen "veilige" en "onveilige" opties, en in plaats daarvan een vooraf gescripte set ("als")-instructies uitvoeren. Geïmplementeerd op een live systeem met geverifieerde toegang, waar de gebruiker bevoegd is om kritieke acties uit te voeren (zoals het verwijderen van gegevens), kan dit resulteren in systeemuitval, operationele verstoring en onomkeerbare gevolgen.
Hoe verbetert AI kwetsbaarheidsscanners?
Laten we beginnen met het vermogen van scanners om complexere kwetsbaarheden te vinden en te testen. Voorheen was menselijke input nodig om acties samen te voegen. Om dit effectief te doen moeten mensen begrijpen welke acties aan elkaar gekoppeld zijn, en welke ketens van acties resulteren in consequenties die relevant zijn voor het actief dat ze testen. In wezen, "als ik dit eerst test, dan moet ik dat vervolgens testen. Als dit niet werkt, dan moet ik dat proberen." AI kan kwetsbaarheidsscanners instrueren om meerdere verschillende technieken te proberen, of om een specifieke actie uit te voeren wanneer zij met een bepaalde uitkomst worden geconfronteerd, maar een andere actie als reactie op een andere uitkomst.
Naast het testen van complexere kwetsbaarheden, voorspellen we dat AI scanners zal leiden in wat niet te testen is. AI kan helpen om scanners contextbewuster te maken, zodat zij minder risicovolle acties uitvoeren tijdens het testen. Met voorgeprogrammeerde regelsets zouden scanners indicatoren kunnen krijgen over functionaliteit die bij testen mogelijk onherstelbare schade zou veroorzaken, zoals het verwijderen van accounts, gegevens of code. Dergelijke regels zouden de scanner instrueren: "als je X tegenkomt, doe dan niet Y."
Zodra de tests zijn voltooid, moeten kwetsbaarheidsscanners een lijst opstellen van de kwetsbaarheden die zij hebben ontdekt en deze ordenen op basis van de ernst van het risico dat zij vormen. Helaas vermelden veel scanners dubbele kwetsbaarheden, zoals een verkeerde configuratie die resulteert in dezelfde kwetsbaarheid op tientallen verschillende plaatsen op een applicatie of website, bijvoorbeeld. AI kan scanners helpen deze resultaten te dedupliceren. Evenzo kan AI helpen de ernst van kwetsbaarheden nauwkeuriger te ordenen.
Samenvatting: hoe AI kwetsbaarheidsscanners verbetert:
- helpt om kwetsbaarheden automatisch kunnen testen
- Helpt te begrijpen welke kwetsbaarheden ze niet moeten testen omdat ze te riskant zijn
- Helpt duplicatie in de resultaten van een scan te verwijderen om bruikbare resultaten te creëren voor menselijke pentesters
- Rangschikt de ernst van kwetsbaarheden beter
Kan AI pentests uitvoeren?
In februari 2024 konden onderzoekers laten zien dat Large Language Model(LLM)-agenten autonoom websites konden hacken en taken uitvoeren die zo complex waren als blinde databaseschema-extractie en SQL-injecties zonder menselijke feedback. Het belangrijkste is dat de LLM-agent niet vooraf de kwetsbaarheden op de website hoefde te kennen.
Ze deden dit door eerst LLM-agenten te trainen om documenten te lezen, functies aan te roepen om een webbrowser te manipuleren en resultaten op te halen, evenals toegang te krijgen tot contextuele informatie van eerdere acties. Ze testten 15 kwetsbaarheden, variërend van eenvoudige SQL-injectie kwetsbaarheden tot complexere hacks die zowel cross-site scripting (XSS) als Cross-Site Request Forgery (CSRF) vereisten. Ze definieerden een specifiek doel voor elke kwetsbaarheid (bijv. stelen van privégebruikersinformatie) en moedigden het model aan om technieken tot een conclusie te zoeken, moeilijkheden en problemen binnen bepaalde technieken te onderzoeken en alternatieven te proberen, zodat de LLM-agent niet vast komt te zitten als bepaalde technieken niet werken.
GPT-4 had een succespercentage van 42,7%, terwijl andere open-source LLM's faalden omdat zij niet in staat waren tools correct te gebruiken en niet goed konden plannen. De onderzoekers toonden aan dat het verwijderen van GPT-4's vermogen om documenten gerelateerd aan de taak, zoals systeeminstructies of blogs over webhacking, te raadplegen, resulteerde in een aanzienlijk verminderde prestatie.
Ondanks het lage slagingspercentage is dit een positieve indicatie van waar het gebruik van AI naartoe gaat voor pentests en het uitbuiten van kwetsbaarheden. Helaas hebben ook bedreigingsactoren toegang tot deze hulpmiddelen en zullen zij ze gebruiken voor kwaadaardige doeleinden, zoals het versnellen van de ontwikkeling van exploits voor nieuwe kwetsbaarheden die net openbaar zijn gemaakt in dreigingsadviezen. Nieuwe bevindingen van de Universiteit van Illinois Urbana-Champaign (UIUC) hebben aangetoond dat GPT-4 in staat was succesvol exploits te bedenken voor kwetsbaarheden die nog maar een dag openbaar waren.
Duidelijk is dat, hoewel AI nog beperkingen heeft en zorgvuldig moet worden ingezet, het ook het potentieel heeft om pentestactiviteiten te verbeteren en menselijke testen veel efficiënter te maken.
Niet mens versus machine, maar machine plus machine
Na een gelijkspel tegen IBM's DeepMind, begon de Russische schaakgrootmeester Gary Kasparov het concept van geavanceerd schaken te onderzoeken - mensen tegen elkaar waarbij supercomputers worden gebruikt om hun volgende zet te plannen en te voorspellen. Hij legde zijn hypothese uit op DEF CON 25 met een eenvoudige formule: "Een zwakke speler met een gewone machine en een superieur proces zal dominant zijn in een spel tegen een sterke speler met een sterke machine en een inferieur proces." Of, eenvoudig gezegd, "je baan wordt niet overgenomen door AI, maar het zal worden overgenomen door iemand die AI gebruikt."
We gebruikten dezelfde inspiratie bij het bouwen van Continuous Security Testing. Door repetitieve, weinig waardevolle taken, zoals het zoeken naar en classificeren van kwetsbaarheden, te automatiseren, stellen we onze pentesters in staat zich te concentreren op gebieden waar zij hun expertise en vindingrijkheid het beste konden toepassen.
Continuous Security Testing neemt de beste stukjes van geautomatiseerde scanners en handmatige pentesten. Geautomatiseerde scantools draaien 24x7 om kwetsbaarheden in uw webgerichte activa, API's en externe infrastructuur te onthullen. Hierna analyseren deskundige pentesters de resultaten van de scan, verwijderen alle vals-positieve resultaten, verifiëren vervolgens handmatig de huidige kwetsbaarheden en voeren verdere tests uit op complexere kwetsbaarheden, of kwetsbaarheden die meerdere aanvallen aan elkaar moeten koppelen om een einddoel te bereiken.
Continuous Security Testing gebruikt Qualys om de identificatie van kwetsbaarheden te automatiseren. Het gebruikt ook eigen AI ontwikkeld door Simon Kubicsek - Senior Manager Offensive Security bij Claranet - om de prioritering van kwetsbaarheden te versnellen op basis van hun risico en de waarschijnlijkheid van uitbuiting. Dit helpt kwetsbaarheden te classificeren om ze een risicoscore te geven, die altijd wordt gecontroleerd en goedgekeurd door een menselijke pentester.
Zal AI het pentestproces automatiseren?
Het korte antwoord is; niet volledig en nog voor een lange tijd niet. Als je op zoek bent naar pentesten (of een andere vorm van offensieve beveiligingstesten), wees dan op je hoede voor Cyber Security leveranciers die geautomatiseerde of autonome pentesten, of AI-aangedreven pentesten benadrukken in hun marketing. Als je hun geloofwaardigheid gaat betwijfelen, heb je gelijk.
De tekortkomingen van AI zijn bekend en huidig onderzoek toont aan dat deze tekortkomingen al doelwitten zijn voor cyberaanvallers. Typosquatting, pogingen om trainingsdatasets te manipuleren, het apitaliseren van AI-hallucinaties en het creëren van coderepositories met malware zijn slechts enkele voorbeelden van waarom we meer middelen moeten investeren in het beveiligen van LLM.
Generatieve AI kan pentesttools sneller en grondiger maken, maar dergelijke tools zullen nog steeds moeten worden gemaakt, beheerd en uitgevoerd door Cyber Security-experts. Voor nu moeten de resultaten van AI altijd worden gecontroleerd door een menselijke expert. Er zijn ook andere moeilijkheden met een overmatig vertrouwen op AI, die verband houden met enkele fundamentele principes van pentesten:
- Inconsistente resultaten - De resultaten geproduceerd door generatieve AI en LLM zijn niet altijd consistent. De processen die worden gebruikt in pentesten moeten consistent en herhaalbaar zijn om waarde te hebben voor de klant.
- Onduidelijke methodologie - Het is vaak onduidelijk hoe een AI tot zijn conclusies is gekomen en zij kunnen hun “werk” niet laten zien. AI-modellen hebben vaak moeite om duidelijk bewijs te leveren van wat zij hebben gedaan, of hadden kunnen doen. Pentesten moeten gebaseerd zijn op duidelijke methodologieën die een proof of concept leveren zodat de exploit opnieuw kan worden gecreëerd na de test.
- Gebrek aan rigoureuze kwaliteitscontrole - Alle handmatige pentesten ondergaan grondige kwaliteitscontrole door meer senior teamleden, om ervoor te zorgen dat de klant geen slechte test of rapport ontvangt. Wanneer het onbekend is hoe een AI tot zijn conclusies is gekomen, hoe kan een pentest-leverancier redelijkerwijs de kwaliteit van de resultaten waarborgen?
Wees voorzichtig bij het gebruik van elke dienst of tool die lijkt te zwaar te vertrouwen op AI-tools. Om ervoor te zorgen dat je dezelfde grondige tests en expertise krijgt, en het serviceniveau dat je zou verwachten van "traditionele" of "handmatige" pentesten, onderzoek de fijnere technische details. Vraag potentiële leveranciers precies wat geautomatiseerd is, wat door AI wordt gedaan, wat door mensen wordt gedaan en welk expertise-niveau zij hebben. Vraag hen welke publiek beschikbare tools hun testers gebruiken en welke eigen software of tools zij gebruiken (indien van toepassing). Vergelijk de fijne details in de servicebeschrijving of Scope of Work met elke andere Cyber Security leverancier die je evalueert.
Om meer te weten te komen over hoe pentesten en Continuous Security Testing de beveiliging van je webapplicaties kunnen verbeteren, neem contact op.