GitHub lanceert AI-aangedreven Autofix Tool om ontwikkelaars te helpen bij het patchen van beveiligingsfouten

GitHub heeft woensdag aangekondigd dat het een functie genaamd code scanning autofix in de publieke bèta beschikbaar stelt voor alle Advanced Security-klanten om gerichte aanbevelingen te doen in een poging om de introductie van nieuwe beveiligingsproblemen te voorkomen.

“Aangedreven door GitHub Copilot en CodeQL, dekt autofix voor het scannen van codes meer dan 90% van de waarschuwingstypen in JavaScript, Typescript, Java en Python, en levert codesuggesties waarvan is aangetoond dat ze meer dan tweederde van de gevonden kwetsbaarheden met weinig of geen bewerking kunnen verhelpen, “Zeiden Pierre Tempel en Eric Tooley van GitHub.

De mogelijkheid, waarvan voor het eerst een preview werd gegeven in november 2023, maakt gebruik van een combinatie van CodeQL, Copilot API’s en OpenAI GPT-4 om codesuggesties te genereren. De dochteronderneming van Microsoft zei ook dat het van plan is om in de toekomst ondersteuning toe te voegen voor meer programmeertalen, waaronder C# en Go.

Autofix voor het scannen van codes is ontworpen om ontwikkelaars te helpen kwetsbaarheden op te lossen terwijl ze coderen door potentiële oplossingen te genereren en door een uitleg in natuurlijke taal te geven wanneer een probleem wordt ontdekt in een ondersteunde taal.

Cyberbeveiliging

Deze suggesties kunnen verder gaan dan het huidige bestand en ook wijzigingen in verschillende andere bestanden bevatten en de afhankelijkheden die moeten worden toegevoegd om het probleem te verhelpen.

“Autofix voor het scannen van codes verlaagt de toegangsdrempel voor ontwikkelaars door informatie over best practices te combineren met details van de codebase en waarschuwingen om de ontwikkelaar een mogelijke oplossing voor te stellen”, aldus het bedrijf.

“In plaats van te beginnen met een zoektocht naar informatie over de kwetsbaarheid, begint de ontwikkelaar met een codesuggestie die een mogelijke oplossing voor hun codebase demonstreert.”

Dat gezegd hebbende, wordt het aan de ontwikkelaar overgelaten om de aanbevelingen te evalueren en te bepalen of dit de juiste oplossing is en ervoor te zorgen dat deze niet afwijkt van het beoogde gedrag.

GitHub benadrukte ook de huidige beperkingen van de autofix-codesuggesties, waardoor het absoluut noodzakelijk is dat ontwikkelaars de wijzigingen en de afhankelijkheden zorgvuldig beoordelen voordat ze deze accepteren –

  • Oplossingen voorstellen die niet syntactisch correcte codewijzigingen zijn
  • Oplossingen voorstellen die syntactisch correcte code zijn, maar op de verkeerde locatie worden voorgesteld
  • Stel oplossingen voor die syntactisch geldig zijn, maar die de semantiek van het programma veranderen
  • Oplossingen voorstellen die de hoofdoorzaak niet aanpakken, of nieuwe kwetsbaarheden introduceren
  • Oplossingen voorstellen die de onderliggende fout slechts gedeeltelijk oplossen
  • Stel niet-ondersteunde of onveilige afhankelijkheden voor
  • Suggereer willekeurige afhankelijkheden, die kunnen leiden tot mogelijke aanvallen op de toeleveringsketen

“Het systeem heeft onvolledige kennis van de afhankelijkheden die in het bredere ecosysteem zijn gepubliceerd”, merkte het bedrijf op. “Dit kan leiden tot suggesties die een nieuwe afhankelijkheid toevoegen aan kwaadaardige software die aanvallers hebben gepubliceerd onder een statistisch waarschijnlijke afhankelijkheidsnaam.”

Thijs Van der Does