GitHub gaat op meer kwetsbaarheden scannen met machinelearning

GitHub breidt zijn codescanningtool uit met machinelearning, zodat die vaker moet kunnen waarschuwen bij de ontdekking van vier veelvoorkomende soorten kwetsbaarheden. De machinelearningtool is nu als publieke bèta beschikbaar.

De nieuwe tool gebruikt machinelearning en deeplearning om JavaScript- en TypeScript-code te scannen op eventueel aanwezige kwetsbaarheden. De tool kan kwetsbaarheden als cross-site scripting, path injection, NoSQL injection en SQL injection opsporen. Deze vier soorten kwetsbaarheden zorgen volgens GitHub voor veel van de recente CVE-kwetsbaarheden in JavaScript en TypeScript.

De machinelearningtool is een uitbreiding van de codescanner die GitHub sinds september 2020 aanbiedt. Die codescanner is gemaakt door GitHub-beveiligingsexperts en -communityleden en kan code scannen op veel voorkomende kwetsbaarheden. De codescantool identificeert hiervoor libraries in code met bekende kwetsbaarheden.

Doordat het gebruik van opensourcesoftware volgens GitHub is toegenomen, zijn er ook meer libraries verschenen die minder vaak worden gebruikt. Omdat deze minder populair zijn, worden deze ook minder snel opgenomen in de reguliere scantool die door communityleden en beveiligingsexperts wordt onderhouden. Daarom heeft GitHub de machinelearningtool ontwikkeld, die op basis van voorbeelden uit de bestaande tool kwetsbaarheden in andere libraries kan herkennen. GitHub deelt op een aparte pagina een uitgebreidere werking van de tool.

Ontwikkelaars die de security-extended- en security-and-quality-suites voor analyse gebruiken, krijgen automatisch de machinelearningtool. Gebruikers kunnen deze suites aan hun codescanningconfiguratiebestand toevoegen om de machinelearning te activeren. GitHub waarschuwt wel dat door de experimentele bèta-status van de tool, er ook meer false positives kunnen verschijnen. Dit zou naarmate de tool meer gebruikt wordt, wel moeten verminderen. De machinelearningtool gebruikt andere labels voor de waarschuwingen dan de reguliere codescanner, om aan te geven dat de kans op false positives hoger is.

GitHub machinelearning codescanning

Door Hayte Hugo

Redacteur

18-02-2022 • 12:02

12

Reacties (12)

12
12
12
0
0
0
Wijzig sortering
Leuk dat scannen naar kwetsbaarheden in libraries, maar misschien dat het ook handig is om gewoon eens te scannen naar een steekwoord zoals "password" in de aanwezige code?
reviews: Community-interview met SchizoDuckie - 'Ik hackte Philips toen ik op...
Lijkt me handig dat ontwikkelaars zelf dit doen i.p.v. dat ze gewend raken met "oh github waarschuwt er toch wel voor". Kwetsbaarheden vereisen bepaalde kennis/expertise om die te herkennen en oplossen, maar elke ontwikkelaar kan een ctrl+shift+f zoek opdracht in hun repository doen op "password" en direct zijn/haar fout herkennen.

Edit:
Dat neemt niet weg dat het een handige feature kan zijn, maar de verantwoorlijkheid als ontwikkelaar wegschuiven is imo wel heel makkelijk.

[Reactie gewijzigd door Byron010 op 22 juli 2024 18:19]

Doen de ontwikkelaars ook zelf, maar het kan zijn dat ze het vergeten en dan is een extra melding activerend voor de gebruiker.

Heeft niks met wegschuiven van de verantwoordelijkheid te maken, anders gaan ze het leuk hebben met die kwetsbaarheden scanner als hun daardoor verantwoordelijk is :9
Heeft Github dat niet? Gitlab wel :)
Ik kan alleen nergens vinden wat dit kost.

Het lijkt niet gratis te zijn: https://github.com/features/security/code
Op basis van https://docs.github.com/e...-github-advanced-security en https://github.com/pricing lijkt in ieder geval de niet ML voorganger gratis beschikbaar te zijn voor public repositories, en moet er voor een enterprise omgeving een extra bedrag betaald worden.
De CodeQL die nu al bestaat is volgens mij wel degelijk gratis, of misschien alleen gratis voor open source projecten. Maar op mijn eigen public repository draait die scanning tool in elk geval al geruime tijd. En daar betaal ik niets voor :)

Het is me niet helemaal duidelijk of deze nieuwe ML scanning features dan ook geïntegreerd worden met de bestaande CodeQL of dat je daar wel apart voor moet betalen. Volgens mij kunnen betalende klanten nog meer security scanning tools krijgen dan die gratis CodeQL die er nu is. Maar dat weet ik niet zeker aangezien ik met alleen met open source bezig hou op GitHub.
De push van github (en dus microsoft) voor ML coding en nu dus zelfs kwetsbaarheid is zowel goed als slecht.

Copilot laat ongeloflijk knappe dingen zien wat een Neural Network (NN) kan generen, er zijn honderden videos op youtube over Copilot en het is ongelofelijk indrukwekkend de code die deze kan genereren.

Het slechte is natuurlijk waar stop deze ML coding wereld? Want een NN die zelf kan coderen klinkt natuurlijk al aardig "self aware". Wat gaat er bijvoorbeeld gebeuren als iemand een zelf schrijvende coderend "virus" (Worm?) maakt die je systeem infecteerd en vervolgens allemaal unieke code maakt en compileert om allemaal nieuwe unieke infecties te maken op je systeem.

De OpenAI GPT-3 core is erg sterk en indrukwekkend, maar in dezelfde mate net zo eng.
De strijd aangaan op hetzelfde niveau: een anti-virus op basis van ML.

Immers is het best duidelijk wat je van een anti-virus/beveiliging mag verwachten:
- je gegevens blijven goede staat
- je gegevens worden niet zomaar doorgegeven
- nu niet, en ook niet mogelijk maken in de toekomst zonder jou toestemming. En zelfs als je toestemming zou geven kan je schatten of dit wel echt is of dit is wat je wil op basis van wie je bent...
- ...

Maak een "co-pilot" die continue met je mee kijkt of er achter de schermen iets op je pc word aangepast wat de kans vergroot dat nu of in de toekomst iets met je systeem gebeurd dat je niet zou willen.

In de real-word kan dit ook worden opgevangen, dus zie geen reden waarom (met effort) dit niet op ML niveau gerealiseerd kan worden. Bij mijn bedrijf heb je ook een front-desk medewerker, secretaris, beveiliger. En als die zaken missen heb je altijd nog een rule-based bevelling/brand alarm..

[Reactie gewijzigd door Triton1986 op 22 juli 2024 18:19]

Cylance maakt een antivirus oplossing die al claimt ML en AI te gebruiken.
Maar in de praktijk werkt het ontzettend slecht en zijn de andere AVs véééél beter.
Dit roept meerdere vragen op:
Als de machine gaat leren op basis van je code, bijvoorbeeld van een bedrijf, waar gaat al de kennis over die code (en zelfs de code) dan allemaal heen?
Hoe reproduceerbaar werkt deze scan?
Hoe houden ontwikkelaars die er van afhankelijk zijn controle over de kwaliteit van die scans?

Het PR-verhaal is er duidelijk, maar github lijkt nog wat moeite te hebben basale kritische kanttekeningen te noemen.
Duidelijk een marketingstunt. Probleem met veel neurale oplossingen (zoals hier ook gebruikt) is dat hoewel het model inderdaad zelf in de hidden layers een representatie maakt die geschikt is voor het classificatie probleem je alsnog vaak te maken hebt met zeer veel feature engineering aan de input zijde. De output van die CodeQL code dient dan ook voor een groot gedeelte als input voor de classifier, omdat daar veel domeinkennis aanwezig is. Stel nou dat er een nieuwe hack komt die niet wordt opgepikt door de rule based CodeQL, dan gaat dit model het ook niet oppikken.

Dan heb je nog de evaluatie, waar overigens vrijwel niet op wordt in gegaan (maar toch zeker het meest belangrijk is). De recall (hoeveel van de positieve gevallen heb ik gevonden) is 80% en de precisie (hoeveel van die gevonden waren er correct) van 60%.

Het lijkt mij ongeloofwaardig dat je als bedrijf een stuk software gaat uitrollen waarbij de kans dat je de klant een juiste voorspelling laat zien zo’n 50/50 is. Begrijp dat het geen medische applicatie is waarbij precisie van > 0.95 of zelf van > 0.98 de norm is, maar geen gebruiker gaat dit accepteren.

Op dit item kan niet meer gereageerd worden.