Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
gokart — Un outil d'analyse statique pour sécuriser le code Go | Kitploit
Outils/GitHubGitHub/praetorian-inc/gokart
Analyse Statique de Code (SAST)Analyse des VulnérabilitésAnalyse de CodeDevSecOpsDétection de SecretsMauvaise ConfigurationArchived
GitHubpraetorian-inc/gokart

gokart

Un outil d'analyse statique pour sécuriser le code Go

Voir le dépôt
2.2k1068il y a 2 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

GoKart - Analyse statique de sécurité Go

CI Release

GoKart est un outil d'analyse statique pour Go qui détecte les vulnérabilités en utilisant la forme SSA (Single Static Assignment) du code source Go. Il est capable de tracer la source des variables et des arguments de fonction pour déterminer si les entrées sont sûres, ce qui réduit le nombre de faux positifs par rapport à d'autres scanners de sécurité Go. Par exemple, une requête SQL concaténée avec une variable pourrait traditionnellement être signalée comme une injection SQL ; cependant, GoKart peut déterminer si la variable est en réalité une constante ou un équivalent de constante, auquel cas il n'y a pas de vulnérabilité.

GoKart contribue également à alimenter Chariot, la plateforme de sécurité de Praetorian qui vous aide à trouver, gérer et corriger les vulnérabilités dans votre code source et vos environnements cloud. Chariot simplifie l'exécution de scans GoKart automatisés et continus sur votre code source. Si vous souhaitez essayer GoKart, vous pouvez configurer un compte Chariot gratuit en quelques minutes en cliquant ici.

Pourquoi nous avons construit GoKart

L'analyse statique est une technique puissante pour trouver des vulnérabilités dans le code source. Cependant, cette approche a souffert d'être bruyante - c'est-à-dire que de nombreux outils d'analyse statique trouvent pas mal de « vulnérabilités » qui ne sont pas réellement vraies. Cela a conduit à des frictions chez les développeurs, car les utilisateurs se lassent que les outils « crient au loup » une fois de trop.

La motivation derrière GoKart était de résoudre ce problème : pouvions-nous créer un scanner avec des taux de faux positifs significativement plus bas que les outils existants ? D'après nos expérimentations, la réponse est oui. En exploitant le traçage source-à-puits et la SSA, GoKart est capable de suivre la contamination des variables entre les affectations, améliorant considérablement la précision des résultats. Notre objectif est la facilité d'utilisation : pragmatiquement, cela signifie que nous avons optimisé nos approches pour réduire les fausses alertes.

Pour plus d'informations, veuillez lire notre article de blog.

Installation

Vous pouvez installer GoKart localement en utilisant l'une des options ci-dessous.

Installer avec go install

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

Installer un binaire de version

  1. Téléchargez le binaire pour votre système d'exploitation depuis la page des versions.

  2. (OPTIONNEL) Téléchargez le fichier checksums.txt pour vérifier l'intégrité de l'archive

root@kitploit:~
# Check the checksum of the downloaded archive
$ 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. Extrayez l'archive téléchargée
root@kitploit:~
$ tar -xvf gokart_${VERSION}_${ARCH}.tar.gz
  1. Déplacez le binaire gokart dans votre PATH :
root@kitploit:~
$ mv ./gokart /usr/local/bin/

Cloner et construire soi-même

root@kitploit:~
# clone the GoKart repo
$ git clone https://github.com/praetorian-inc/gokart.git

# navigate into the repo directory and build
$ cd gokart
$ go build

# Move the gokart binary into your path
$ mv ./gokart /usr/local/bin

Support Docker

Construisez l'image docker

root@kitploit:~
docker build -t gokart .

Exécuter le conteneur avec une analyse locale (le répertoire d'analyse local doit être monté dans l'image du conteneur)

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

Exécuter le conteneur avec une analyse à distance (lors de la spécification d'une clé privée pour l'authentification, celle-ci doit également être montée dans le conteneur)

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

# specifying a private key for private repository ssh authentication
docker run -v /path/to/key-dir/:/key-dir gokart scan -r [email protected]:praetorian-inc/gokart.git -k /key-dir/ssh_key

Utilisation

Exécuter GoKart sur un module Go dans le répertoire courant

root@kitploit:~
# running without a directory specified defaults to '.'
gokart scan <flags>

Analyser un module Go dans un répertoire différent

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

Obtenir de l'aide

root@kitploit:~
gokart help

Prise en main - Analyse d'une application exemple

Vous pouvez suivre les étapes ci-dessous pour exécuter GoKart sur Go Test Bench, une application Go volontairement vulnérable de l'équipe Contrast Security.

root@kitploit:~
# Clone sample vulnerable application
git clone https://github.com/Contrast-Security-OSS/go-test-bench.git
gokart scan go-test-bench/

La sortie devrait montrer quelques vulnérabilités identifiées, chacune avec une Fonction Vulnérable et une Source d'Entrée Utilisateur identifiées.

Pour tester certaines fonctionnalités supplémentaires de GoKart, vous pouvez analyser avec les options CLI suggérées ci-dessous.

root@kitploit:~
# Use verbose flag to show full traces of these vulnerabilities
gokart scan go-test-bench/ -v

# Use globalsTainted flag to ignore whitelisted Sources
# may increase false positive results
gokart scan go-test-bench/ -v -g

# Use debug flag to display internal analysis information
# which is useful for development and debugging
gokart scan go-test-bench/ -d

# Output results in sarif format
gokart scan go-test-bench/ -s

# Output results to file
gokart scan go-test-bench/ -o gokart-go-test-bench.txt

# Output scarif results to file
gokart scan go-test-bench/ -o gokart-go-test-bench.txt -s

# Scan remote public repository 
# Repository will be cloned locally, scanned and deleted afterwards
gokart scan -r https://github.com/ShiftLeftSecurity/shiftleft-go-demo -v

# Specify the remote branch to scan
gokart scan -r https://github.com/ShiftLeftSecurity/shiftleft-go-demo -b actions_fix

# Scan remote private repository via ssh
gokart scan -r [email protected]:Contrast-Security-OSS/go-test-bench.git 

# Scan remote private repository and optionally specify a key for ssh authentication 
gokart scan -r [email protected]:Contrast-Security-OSS/go-test-bench.git -k /home/gokart/.ssh/github_rsa_key

# Use remote scan and output flags together for seamless security reviews
gokart scan -r https://github.com/ShiftLeftSecurity/shiftleft-go-demo -o gokart-shiftleft-go-demo.txt -v 

# Use remote scan, output and sarif flags for frictionless integration into CI/CD
gokart scan -r https://github.com/ShiftLeftSecurity/shiftleft-go-demo -o gokart-shiftleft-go-demo.txt -s

Pour tester l'extensibilité de GoKart, vous pouvez modifier le fichier de configuration que GoKart utilise pour introduire un nouveau puits vulnérable dans l'analyse. Il y a un analyseur de Test Sink défini dans le fichier de configuration par défaut inclus à util/analyzers.yml. Modifiez util/analyzers.yml pour supprimer les commentaires sur l'analyseur Test Sink, puis indiquez à GoKart d'utiliser le fichier de configuration modifié avec l'option -i.

root@kitploit:~
# Scan using modified analyzers.yml file and output full traces
gokart scan go-test-bench/ -v -i <path-to-gokart>/util/analyzers.yml

La sortie devrait maintenant contenir des vulnérabilités supplémentaires, notamment de nouvelles vulnérabilités « Test Sink atteignable par une entrée utilisateur ».

Exécuter les tests GoKart

Vous pouvez exécuter les tests inclus avec la commande suivante, invoquée depuis le répertoire racine de GoKart.

root@kitploit:~
go test -v ./...
Télécharger l’outil