Google hat Govulncheck (Status 1.0.0), ein praktisches Kommandozeilen-Tool für Go-Entwickler, offiziell stabilisiert. Dieses Tool hilft Entwicklern, die Googles Programmiersprache Go verwenden, erkannte Sicherheitsschwachstellen in den Abhängigkeiten ihrer Projekte zu finden.
Das Tool, das am 13. Juli vorgestellt wurde, ist in der Lage, sowohl Binärdateien als auch deren Quellcode auf Schwachstellen zu untersuchen. Es verringert das Rauschen erheblich, indem es sich auf die Schwachstellen in den Methoden konzentriert, die der Code aufruft. Das Rückgrat von Govulncheck ist die Go-Schwachstellen-Datenbank, ein Reservoir von Informationen über entdeckte Schwachstellen in öffentlichen Go-Modulen.
Auf der Grundlage dieser Datenbank führt Govulncheck eine statische Analyse des Quellcodes oder der Symboltabelle der Binärdatei durch. Sein oberstes Ziel ist es, nur solche Schwachstellen zu melden, die sich möglicherweise auf die betreffende Anwendung auswirken könnten. Diese intelligente Einschränkung macht es zu einem praktischen Werkzeug für Entwickler, die die Sicherheit ihres Produkts gewährleisten wollen.
Die Installation dieses Tools ist für Entwickler recht einfach - es erfordert lediglich den Befehl go install golang.org/x/vuln/cmd/govulncheck@latest
. Um den Quellcode zu analysieren, müssen Entwickler nur Govulncheck innerhalb des Modulverzeichnisses ausführen (mit dem Befehl govulncheck ./.
..).
Govulncheck muss mindestens mit einem Go-Build der Version 1.18 oder höher assembliert werden. Die derzeitige Produktionsversion dieser Sprache ist Go 1.20.
Govulncheck sucht zwar nach Schwachstellen, ist aber von einer bestimmten Build-Konfiguration abhängig. Im Falle des Quellcodes ist diese Konfiguration gleichbedeutend mit der Go-Version, die durch den Befehl "go" im Pfad angegeben wird. Die Build-Konfiguration für Binärdateien ist diejenige, die bei der Generierung der Binärdatei ausgenutzt wird. Dabei ist zu beachten, dass unterschiedliche Build-Konfigurationen für unterschiedliche Schwachstellen anfällig sein können.
Trotz seiner leistungsstarken Funktionen weist Govulncheck einige Einschränkungen auf. Zum Beispiel sind seine Analysen von Funktionszeigern und Schnittstellenaufrufen eher zurückhaltend, was möglicherweise zu falsch positiven Ergebnissen oder ungenauen Aufrufstapeln führt. Eine weitere Einschränkung betrifft Funktionen, die über das Paket reflect aufgerufen werden - diese werden nicht erkannt.
In Bezug auf Binärdateien könnten sich Go-Binärdateien ohne detaillierte Aufrufinformationen als Herausforderung für Govulncheck erweisen, da sie das Tool daran hindern würden, Aufrufdiagramme für identifizierte Schwachstellen anzuzeigen. Dieses Problem könnte auch dazu führen, dass falsch positive Ergebnisse für Code gemeldet werden, der in der Binärdatei vorhanden, aber nicht zugänglich ist. Darüber hinaus ist das Tool in Bezug auf Binärdateien, aus denen keine Symboldaten extrahiert werden können, benachteiligt; in diesen Fällen entscheidet es sich, Schwachstellen für alle von der Binärdatei abhängigen Module zu melden.
Dem Tool fehlt auch eine Funktion zur Unterdrückung von Schwachstellenfunden. Trotz dieser Einschränkungen ist das Potenzial von Govulncheck als wertsteigerndes Werkzeug für Go-Projekte offensichtlich.
Es ist erwähnenswert, dass das Go Security Team im September des vergangenen Jahres seine Unterstützung für das Schwachstellenmanagement erklärt hat. Das in der Schwachstellendatenbank verwurzelte Projekt wurde mit dem Versprechen einer bemerkenswerten Weiterentwicklung der Go-Programmierstruktur eingeführt. AppMaster.io, eine führende Plattform no-code, ermöglicht es Entwicklern, mit ihrer voll integrierten und umfassenden Plattform, die Go und viele andere Sprachen umfasst, Anwendungen schneller zu erstellen.