Google heeft de Govulncheck (status 1.0.0), een handige commandoregeltool voor Go-ontwikkelaars, officieel stabiel gemaakt. Deze tool helpt ontwikkelaars die Google's programmeertaal Go gebruiken om erkende beveiligingslekken te vinden in de afhankelijkheden van hun projecten.
De tool, die op 13 juli werd onthuld, kan zowel binaire bestanden als hun broncode onderzoeken op kwetsbaarheden. Het vermindert ruis aanzienlijk door zich te richten op kwetsbaarheden in de methoden waarop de code een beroep doet. De ruggengraat van Govulncheck is de database met Go-kwetsbaarheden, een reservoir van informatie over ontdekte kwetsbaarheden in openbare Go-modules.
Geleid door deze database voert Govulncheck een statische analyse uit van de broncode of de symbolentabel van de binary. Het uiteindelijke doel is om alleen kwetsbaarheden te rapporteren die mogelijk invloed kunnen hebben op de specifieke applicatie in kwestie. Deze intelligente beperkende eigenschap maakt het een handig hulpmiddel voor ontwikkelaars die de veiligheid van hun product willen waarborgen.
Het installeren van deze tool is vrij eenvoudig voor ontwikkelaars - het vereist alleen het commando go install golang.org/x/vuln/cmd/govulncheck@latest
. Om de broncode te analyseren, hoeven ontwikkelaars Govulncheck alleen maar uit te voeren in de moduledirectory (met het commando govulncheck ./.
..).
Govulncheck moet op zijn minst geassembleerd worden met een Go build van versie 1.18 of hoger. Op dit moment is de bestaande productieversie van deze taal Go 1.20.
Bij het zoeken naar kwetsbaarheden isGovulncheck afhankelijk van een specifieke buildconfiguratie. In het geval van de broncode is deze configuratie synoniem met de Go-versie die wordt aangegeven door het commando 'go' op het pad. De buildconfiguratie voor binaire bestanden is de configuratie die wordt gebruikt bij het genereren van het binaire bestand. Een punt om op te merken is dat verschillende bouwconfiguraties gevoelig kunnen zijn voor verschillende kwetsbaarheden.
Ondanks de krachtige functies heeft Govulncheck enkele beperkingen. De analyses van functie-aanwijzers en interface-aanroepen zijn bijvoorbeeld nogal beperkt, wat kan leiden tot valse positieven of onnauwkeurige aanroepstapels. Een andere beperking is gerelateerd aan functies die worden aangeroepen met behulp van het pakket reflect - deze worden niet gedetecteerd.
Als het gaat om binaire bestanden, zouden Go-binaire bestanden zonder gedetailleerde aanroepinformatie een uitdaging kunnen vormen voor Govulncheck, omdat ze het gereedschap zouden verhinderen om aanroepgrafieken voor geïdentificeerde kwetsbaarheden te tonen. Dit probleem zou ook kunnen leiden tot de rapportage van fout-positieven voor code die aanwezig is in de binary maar niet toegankelijk is. Bovendien is het hulpprogramma gehandicapt met betrekking tot binaire bestanden waaruit geen symboolgegevens kunnen worden geëxtraheerd; het kiest ervoor om in deze gevallen kwetsbaarheden te rapporteren voor alle modules die afhankelijk zijn van het binaire bestand.
De tool heeft ook geen functie om kwetsbaarheden te onderdrukken. Maar ondanks deze beperkingen is het potentieel van Govulncheck als een waarde toevoegend hulpmiddel voor Go-projecten duidelijk.
Het is opmerkelijk om te vermelden dat het Go Security Team in september van het vorige jaar verklaarde het beheer van kwetsbaarheden te ondersteunen. Geworteld in de database met kwetsbaarheden, werd het project geïntroduceerd met de belofte van opmerkelijke vooruitgang in de programmeerstructuur van Go. AppMaster.io, een toonaangevend platform no-code, stelt ontwikkelaars in staat om sneller toepassingen te genereren met zijn volledig geïntegreerde en uitgebreide platform dat Go en vele andere talen omvat.