Alle Artikelen
AI & Machine Learning5 min lezen

Stop met het trainen van uw AI-beveiligingstools met slechte gegevens

Greg (Zvi) Uretzky

Founder & Full-Stack Developer

Delen
Illustration for: Stop Training Your AI Security Tools on Bad Data

Stop met het trainen van uw AI-beveiligingstools met slechte data

Uw AI-beveiligingsscanner heeft zojuist 500 "kritieke" kwetsbaarheden gemarkeerd. Uw team besteedt een week aan onderzoek. 490 zijn vals positief. Ondertussen glipt een echte aanvaller door een complexe, multi-file kwetsbaarheid die de scanner nooit heeft gezien. U heeft zojuist tijd, geld en een gaping in uw verdediging verspild.

Klinkt dit vertrouwd?

Dit gebeurt omdat de meeste AI-beveiligingstools getraind worden op slechte data. Ze leren van geïsoleerde codefragmenten - enkele functies met eenvoudige bugs. Echte software is niet zo. Kwetsbaarheden ontstaan uit de rommelige interacties tussen tientallen bestanden, bibliotheken en API's. Trainen op slechte data levert slechte resultaten op.

Wat onderzoekers ontdekten

Een nieuwe benadering is in opkomst die deze gebroken trainingspijplijn kan repareren. Onderzoekers bouwen een systeem dat realistische, nep beveiligingsbugs in complete softwareprojecten automatisch creëert. Denk aan een filmset voor softwarefouten.

Het systeem zet niet alleen een bug in een enkel bestand. Het begrijpt het hele repository - de verbindingen, de afhankelijkheden, de architectuur. Het voegt een kwetsbaarheid toe op de manier waarop een echte menselijke hacker dat zou doen: door de interactie tussen verschillende delen van de code te manipuleren. Voor elke nepbug genereert het ook een Proof-of-Vulnerability (PoV). Dit is een concreet bewijs van hoe de kwetsbaarheid kan worden uitgebuit, niet alleen een vage waarschuwing.

Het doel is adversarial co-evolutie. Een AI creëert de bugs. Een andere AI probeert ze te vinden. Ze concurreren, waardoor beide continu worden verbeterd. De bug-creator wordt slimmer. De bug-finder wordt scherper. Het resultaat is een krachtige, zelfverbeterende trainingsmotor.

U kunt het volledige paper hier lezen: Toward Scalable Automated Repository-Level Datasets for Software Vulnerability Detection.

Hoe u dit vandaag kunt toepassen

U hoeft niet te wachten op het voltooide onderzoeksproduct. De kernmethodologie is nu al toepasbaar. U kunt vandaag beginnen met het opbouwen van betere trainingsdata voor uw beveiligings-AI.

Hier zijn vier concrete stappen die u deze week kunt implementeren.

Stap 1: Ga verder dan enkelvoudige bestandsanalyse

Stop met het testen van uw AI-scanners op geïsoleerde functies of bestanden. Dat is alsof u een huisinspecteur traint door hem alleen foto's van een enkele defecte draad te laten zien, niet het complete elektrische systeem van het huis.

Actie: Creëer een speciale "testrepository" die de architectuur van uw eigen toepassing spiegelt. Kloon een echte, open-sourceproject waarop u afhankelijk bent (zoals een webframework of utilitybibliotheek). Gebruik dit als uw nieuwe testomgeving.

Voorbeeld: Als u een Node.js-API bouwt, kloon dan het Express.js GitHub-repository. Dit geeft u een complex, onderling verbonden codebasis om mee te werken.

Stap 2: Automatiseer contextuele bug-injectie

Handmatig complexe bugs creëren is langzaam en duur. Begin met het automatiseren van dit proces met behulp van scripts.

Actie: Gebruik een codeanalyse- en transformatietool. Tree-sitter is een krachtige, praktische keuze. Schrijf scripts die:

  1. De abstracte syntaxisboom (AST) van uw testrepository parseren.
  2. Verbindingen tussen modules identificeren (bijv. waar gebruikersinvoer van een controller naar een databasequery stroomt).
  3. Een realistische kwetsbaarheid op dat knooppunt injecteren.

Voorbeeld: Een script kan alle plaatsen vinden waar req.body-gegevens in een SQL-query worden gebruikt en de code modificeren om invoersanitizing te verwijderen, waardoor een SQL-injectiekwetsbaarheid ontstaat.

Stap 3: Genereer Proof-of-Vulnerability (PoV)-scripts

Een bugrapport is nutteloos zonder bewijs. Voor elke bug die u injecteert, genereert u automatisch een script dat de exploit demonstreert.

Actie: Koppel elke bug-injectie aan een eenvoudig testscript. Gebruik een testframework zoals Jest (JavaScript), Pytest (Python) of JUnit (Java). Het script moet:

  • De noodzakelijke toepassingsstatus instellen.
  • Kwaadaardige invoer in het systeem voeren.
  • Aannemen dat het verwachte kwetsbare gedrag optreedt (bijv. gegevens lekken, toegang verlenen).

Dit PoV wordt onderdeel van uw trainingsdata, waardoor de AI leert wat een echte exploit lijkt.

Stap 4: Implementeer een feedbacklus

Start de co-evolutie, zelfs als het in eerste instantie handmatig is.

Actie: Stel een wekelijkse cyclus in:

  1. Maandag: Voer uw laatste AI-scanner (bijv. Semgrep, CodeQL, een aangepast model) uit op uw bug-geïnjecteerde testrepository.
  2. Woensdag: Analyseer de resultaten. Welke geïnjecteerde bugs werden gemist? Welke echte codepatronen veroorzaakten vals positief?
  3. Vrijdag: Gebruik die inzichten om uw bug-injectiescripts voor de volgende week aan te passen. Maak de gemiste bugs subtieler. Verwijder patronen die vals alarm veroorzaken.

Dit verandert uw beveiligingstest van een statische checklist in een levend, verbeterend systeem.

Waar u op moet letten

Deze benadering is krachtig, maar heeft beperkingen. Wees eerlijk over hen.

1. De proprietair codegap. Deze methode werkt het beste op code die u kunt zien en modificeren - zoals open-sourceafhankelijkheden of uw eigen interne bibliotheken. Het kan geen trainingsdata voor gesloten, derdenbinaries genereren waar u de volledige context niet heeft. Uw AI-scanner kan nog steeds worstelen met die black boxes.

2. Geen garantie tegen nieuwe aanvallen. U traint AI om bugs te vinden zoals degenen die u kunt genereren. Een echt nieuwe, nog nooit eerder gezien aanvalstechniek (een "zero-day") kan nog steeds doorheen glippen. Dit verbetert uw verdediging tegen bekende kwetsbaarheidpatronen, maar het is geen zilveren kogel.

3. Initiële instelinspanning. Het opbouwen van geautomatiseerde injectiescripts vereist een initiële investering van een seniorontwikkelaar of beveiligingsingenieur (ongeveer 2-3 weken van gefocuste arbeid). De opbrengst is langdurig, geautomatiseerde datageneratie.

Uw volgende stap

Begin klein. Deze week kloont u één open-source repository die uw toepassing kritisch afhankelijk is van. Maak het opbouwbaar en uitvoerbaar in een testomgeving. Dit is uw nieuwe, realistische trainingsgrond.

Zodra u dat heeft, kunt u beginnen met de eerste, handmatige ronde van bug-injectie. Voer één complexe, multi-file kwetsbaarheid handmatig in. Kijk dan of uw huidige beveiligingsscanner het vindt. De kloof tussen uw realistische test en de prestaties van uw tool zal u precies laten zien waarom u betere data nodig heeft.

Wat is de ene kritieke afhankelijkheid in uw stack die de beste testbasis voor realistische kwetsbaarheden zou zijn?

AI security false positivesvulnerability training dataautomated bug injectionsecurity AI optimizationCTO security tools

Reacties

Loading...

Van Onderzoek Naar Resultaat

Bij Klevox Studio helpen we bedrijven om baanbrekend onderzoek om te zetten in praktische oplossingen. Of u nu AI-strategie, automatisering of maatwerksoftware nodig heeft — wij maken complexiteit tot concurrentievoordeel.

Klaar om te beginnen?