Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
gokart — Uno strumento di analisi statica per proteggere il codice Go | Kitploit
Strumenti/GitHubGitHub/praetorian-inc/gokart
Analisi Statica del Codice (SAST)Analisi delle VulnerabilitàAnalisi del CodiceDevSecOpsRilevamento SegretiConfigurazione ErrataArchived
GitHubpraetorian-inc/gokart

gokart

Uno strumento di analisi statica per proteggere il codice Go

Vedi Repository
2.2k10682 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

GoKart - Analisi Statica di Sicurezza per Go

CI Release

GoKart è uno strumento di analisi statica per Go che trova vulnerabilità utilizzando la forma SSA (assegnazione statica singola) del codice sorgente Go. È in grado di tracciare l'origine delle variabili e degli argomenti delle funzioni per determinare se le fonti di input sono sicure, riducendo così il numero di falsi positivi rispetto ad altri scanner di sicurezza per Go. Ad esempio, una query SQL concatenata con una variabile potrebbe essere tradizionalmente segnalata come SQL injection; tuttavia, GoKart può capire se la variabile è in realtà una costante o equivalente a una costante, nel qual caso non esiste vulnerabilità.

GoKart aiuta anche a potenziare Chariot, la piattaforma di sicurezza di Praetorian che aiuta a trovare, gestire e correggere vulnerabilità nel codice sorgente e negli ambienti cloud. Chariot semplifica l'esecuzione di scansioni GoKart automatizzate e continue sul tuo codice sorgente. Se vuoi provare GoKart, puoi creare un account Chariot gratuito in pochi minuti cliccando qui.

Perché abbiamo costruito GoKart

L'analisi statica è una tecnica potente per trovare vulnerabilità nel codice sorgente. Tuttavia, questo approccio ha sofferto di essere rumoroso – cioè, molti strumenti di analisi statica trovano parecchie "vulnerabilità" che in realtà non sono reali. Ciò ha portato a frizioni tra gli sviluppatori, poiché gli utenti si stancano degli strumenti che "gridano al lupo" troppe volte.

La motivazione per GoKart è stata affrontare questo problema: riusciremmo a creare uno scanner con tassi di falsi positivi significativamente inferiori rispetto agli strumenti esistenti? Basandoci sulla nostra sperimentazione, la risposta è sì. Sfruttando il tracciamento sorgente-verso-destinazione e l'SSA, GoKart è in grado di tracciare il taint delle variabili tra le assegnazioni, migliorando significativamente l'accuratezza dei risultati. Il nostro focus è sull'usabilità: pragmaticamente, ciò significa che abbiamo ottimizzato i nostri approcci per ridurre i falsi allarmi.

Per maggiori informazioni, leggi il nostro post sul blog.

Installazione

Puoi installare GoKart localmente utilizzando una qualsiasi delle opzioni elencate di seguito.

Installazione con go install

root@kitploit:~
$ go install github.com/praetorian-inc/gokart@latest

Installazione di un binario di rilascio

  1. Scarica il binario per il tuo sistema operativo dalla pagina dei rilasci.

  2. (OPZIONALE) Scarica il file checksums.txt per verificare l'integrità dell'archivio

root@kitploit:~
# Controlla il checksum dell'archivio scaricato
$ shasum -a 256 gokart_${VERSION}_${ARCH}.tar.gz
b05c4d7895be260aa16336f29249c50b84897dab90e1221c9e96af9233751f22  gokart_${VERSION}_${ARCH}.tar.gz

$ cat gokart_${VERSION}_${ARCH}_checksums.txt | grep gokart_${VERSION}_${ARCH}.tar.gz
b05c4d7895be260aa16336f29249c50b84897dab90e1221c9e96af9233751f22  gokart_${VERSION}_${ARCH}.tar.gz
  1. Estrai l'archivio scaricato
root@kitploit:~
$ tar -xvf gokart_${VERSION}_${ARCH}.tar.gz
  1. Sposta il binario gokart nel tuo PATH:
root@kitploit:~
$ mv ./gokart /usr/local/bin/

Clonazione e compilazione manuale

root@kitploit:~
# clona il repository GoKart
$ git clone https://github.com/praetorian-inc/gokart.git

# naviga nella directory del repository e compila
$ cd gokart
$ go build

# Sposta il binario gokart nel tuo PATH
$ mv ./gokart /usr/local/bin

Supporto Docker

Crea l'immagine Docker

root@kitploit:~
docker build -t gokart .

Esecuzione del container con una scansione locale (la directory locale da scansionare deve essere montata nell'immagine del container)

root@kitploit:~
docker run -v /path/to/scan-dir:/scan-dir gokart scan /scan-dir

Esecuzione del container con una scansione remota (quando si specifica una chiave privata per l'autenticazione, questa dovrà essere montata nel container)

root@kitploit:~
docker run gokart scan -r https://github.com/praetorian-inc/gokart

# specificando una chiave privata per l'autenticazione SSH su repository privati
docker run -v /path/to/key-dir/:/key-dir gokart scan -r [email protected]:praetorian-inc/gokart.git -k /key-dir/ssh_key

Utilizzo

Esegui GoKart su un modulo Go nella directory corrente

root@kitploit:~
# eseguire senza specificare una directory usa '.' come default
gokart scan <flags>

Scansiona un modulo Go in una directory diversa

root@kitploit:~
gokart scan <directory> <flags> 

Ottieni Aiuto

root@kitploit:~
gokart help

Per Iniziare - Scansione di un'App Esempio

Puoi seguire i passaggi seguenti per eseguire GoKart su Go Test Bench, un'applicazione Go intenzionalmente vulnerabile del team Contrast Security.

root@kitploit:~
# Clona l'applicazione vulnerabile di esempio
git clone https://github.com/Contrast-Security-OSS/go-test-bench.git
gokart scan go-test-bench/

L'output dovrebbe mostrare alcune vulnerabilità identificate, ciascuna con una Funzione Vulnerabile e una Sorgente di Input Utente identificata.

Per testare alcune funzionalità aggiuntive di GoKart, puoi eseguire la scansione con i flag CLI suggeriti di seguito.

root@kitploit:~
# Usa il flag verbose per mostrare le tracce complete di queste vulnerabilità
gokart scan go-test-bench/ -v

# Usa il flag globalsTainted per ignorare le Sorgenti autorizzate
# potrebbe aumentare i risultati di falsi positivi
gokart scan go-test-bench/ -v -g

# Usa il flag debug per visualizzare le informazioni di analisi interna
# utile per sviluppo e debug
gokart scan go-test-bench/ -d

# Output dei risultati in formato sarif
gokart scan go-test-bench/ -s

# Output dei risultati su file
gokart scan go-test-bench/ -o gokart-go-test-bench.txt

# Output dei risultati sarif su file
gokart scan go-test-bench/ -o gokart-go-test-bench.txt -s

# Scansione di un repository pubblico remoto
# Il repository verrà clonato localmente, scansionato e poi eliminato
gokart scan -r https://github.com/ShiftLeftSecurity/shiftleft-go-demo -v

# Specifica il branch remoto da scansionare
gokart scan -r https://github.com/ShiftLeftSecurity/shiftleft-go-demo -b actions_fix

# Scansione di un repository privato remoto tramite SSH
gokart scan -r [email protected]:Contrast-Security-OSS/go-test-bench.git 

# Scansione di un repository privato remoto e specifica facoltativa di una chiave per l'autenticazione SSH
gokart scan -r [email protected]:Contrast-Security-OSS/go-test-bench.git -k /home/gokart/.ssh/github_rsa_key

# Usa insieme i flag di scansione remota e output per revisioni di sicurezza senza interruzioni
gokart scan -r https://github.com/ShiftLeftSecurity/shiftleft-go-demo -o gokart-shiftleft-go-demo.txt -v 

# Usa i flag di scansione remota, output e sarif per un'integrazione senza attriti in CI/CD
gokart scan -r https://github.com/ShiftLeftSecurity/shiftleft-go-demo -o gokart-shiftleft-go-demo.txt -s

Per testare l'estensibilità di GoKart, puoi modificare il file di configurazione che GoKart utilizza per introdurre un nuovo sink vulnerabile nell'analisi. C'è un analizzatore di Test Sink definito nel file di configurazione predefinito incluso in util/analyzers.yml. Modifica util/analyzers.yml rimuovendo i commenti sull'analizzatore di Test Sink, quindi indica a GoKart di utilizzare il file di configurazione modificato con il flag -i.

root@kitploit:~
# Scansione utilizzando il file analyzers.yml modificato e output delle tracce complete
gokart scan go-test-bench/ -v -i <path-to-gokart>/util/analyzers.yml

L'output dovrebbe ora contenere vulnerabilità aggiuntive, incluse nuove vulnerabilità di tipo "Test Sink raggiungibile da input utente".

Esegui i Test di GoKart

Puoi eseguire i test inclusi con il seguente comando, invocato dalla directory principale di GoKart.

root@kitploit:~
go test -v ./...
Scarica lo strumento