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
keyguard — Analysez les bases de code et les projets GCP pour détecter les identifiants API exposés. | Kitploit
Outils/GitHubGitHub/arzaan789/keyguard
Analyse StatiqueScanners de VulnérabilitésAnalyse de CodeAudit de ConfigurationSécurité CloudDevSecOpsDétection de SecretsSécurité de la Chaîne LogistiqueSécurité des API
GitHubarzaan789/keyguard

keyguard

Analysez les bases de code et les projets GCP pour détecter les identifiants API exposés.

17il y a 5 moisPas encore vérifié
Voir le dépôt

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

keyguard

Analysez les bases de code, les projets GCP et les pipelines CI pour détecter les identifiants Google API exposés — avant qu'ils ne soient exploités.

Le problème : Google a activé rétroactivement l'accès à l'API Gemini sur des clés API existantes (Maps, Places, etc.) conçues pour être publiques et intégrées dans du code côté client. Lorsque quelqu'un de votre équipe active Gemini dans le même projet GCP, ces clés déjà publiques deviennent silencieusement des identifiants Gemini — exposant votre projet à une utilisation non autorisée de l'IA et à des incidents de facturation de plus de 80 000 $ (contexte).

Ce que fait keyguard :

  • keyguard scan — trouve les chaînes d'identifiants dans les fichiers source et l'historique Git en utilisant regex + détection d'entropie
  • keyguard audit — se connecte aux projets GCP actifs et signale les clés API qui ont actuellement accès à Gemini
  • keyguard ci — analyse les logs et variables de GitHub Actions, CircleCI et GitLab CI pour les identifiants divulgués

Installation

root@kitploit:~
pip install keyguard-scan

Ou clonez et installez en mode développement :

root@kitploit:~
git clone https://github.com/arzaan789/keyguard.git
cd keyguard
pip install -e ".[dev]"

Démarrage rapide

root@kitploit:~
# Scan current directory and git history
keyguard scan .

# Audit your live GCP projects
keyguard audit

# Scan CI platforms
keyguard ci

Commandes

keyguard scan

Analyse les fichiers source et l'historique Git à la recherche d'identifiants exposés en utilisant regex + filtrage d'entropie de Shannon. Les placeholders de faible entropie comme "REPLACE_ME" ou "XXXXXXXX" sont automatiquement ignorés.

root@kitploit:~
# Scan a directory (files + full git history)
keyguard scan .

# Files only, skip git history
keyguard scan . --no-git-history

# Export to JSON and SARIF
keyguard scan . --output json --output sarif --out-file report

# Show actual key values (not redacted)
keyguard scan . --no-redact

# Use a custom config file
keyguard scan . --config /path/to/.keyguard.toml

Codes de sortie : 0 = propre, 1 = résultats, 2 = erreur

keyguard audit

Se connecte aux projets GCP actifs via les API Cloud Resource Manager, Service Usage et API Keys. Signale les clés qui sont sans restriction (accès silencieux à Gemini) ou qui autorisent explicitement generativelanguage.googleapis.com alors que Gemini est activé sur le projet.

L'authentification utilise par défaut les Application Default Credentials — exécutez d'abord gcloud auth application-default login.

root@kitploit:~
# Audit all accessible GCP projects
keyguard audit

# Audit specific project(s)
keyguard audit --project my-project-id --project another-project

# Use a service account key file
keyguard audit --gcp-credentials /path/to/key.json

# Export JSON findings
keyguard audit --output json --out-file gcp-findings.json

Résultats :

  • CRITICAL — la clé n'a aucune restriction d'API + Gemini est activé (le scénario de mise à niveau silencieuse Maps→Gemini)
  • HIGH — la clé autorise explicitement generativelanguage.googleapis.com (intentionnel mais potentiellement intégré dans du code client)

keyguard ci

Analyse les logs des plateformes CI et les variables stockées pour les identifiants exposés. Prend en charge GitHub Actions, CircleCI et GitLab CI.

root@kitploit:~
# Scan all configured platforms
keyguard ci

# Scan one platform only
keyguard ci --platform github

# Narrow to a specific repo
keyguard ci --repo my-org/api-service

# Export JSON findings
keyguard ci --output json --out-file ci-findings.json

Ce qu'il analyse :

  • GitHub Actions — variables de dépôt en texte clair + logs des jobs d'exécution de workflow
  • CircleCI — noms de variables d'environnement (les valeurs sont masquées par CircleCI) + logs des étapes de jobs de pipeline
  • GitLab CI — variables de projet (texte clair) + traces de jobs de pipeline

keyguard watch

Réanalyse les fichiers à chaque modification. Utile pendant le développement.

root@kitploit:~
keyguard watch .

keyguard rules list

Liste toutes les règles de détection actives.

root@kitploit:~
keyguard rules list

keyguard config check

Valide un fichier de configuration .keyguard.toml.

root@kitploit:~
keyguard config check
keyguard config check --config /path/to/.keyguard.toml

Configuration

Créez un fichier .keyguard.toml à la racine de votre projet :

root@kitploit:~
[scan]
paths = ["."]
exclude = ["tests/fixtures/", "**/*.example"]
scan_git_history = true

[output]
format = ["terminal", "json"]
redact = true

[notify]
slack_webhook = "https://hooks.slack.com/services/..."

[rules]
disabled = []

# CI platform authentication and scope
[ci]
github_token    = "ghp_xxxxxxxxxxxxxxxxxxxx"
circleci_token  = "CCIPAT_xxxxxxxxxxxxxxxx"
gitlab_token    = "glpat-xxxxxxxxxxxxxxxxxxxx"
gitlab_url      = "https://gitlab.com"   # override for self-hosted GitLab
max_runs        = 10                     # recent runs/pipelines per repo

[ci.github]
orgs  = ["my-org"]
repos = ["my-org/specific-repo"]         # optional: scan specific repos only

[ci.circleci]
orgs = ["my-org"]

[ci.gitlab]
groups = ["my-group"]

Détection

Keyguard utilise une approche regex + entropie de Shannon. Chaque règle définit :

  • Un motif qui correspond à la structure de l'identifiant (par exemple, AIza[0-9A-Za-z\-_]{35} pour les clés API Google)
  • Un seuil d'entropie minimum qui filtre les placeholders de faible entropie

Les règles intégrées détectent :

ID de règleCe qu'il trouve
google-api-keyClés API Google (AIza...) — y compris les clés Maps ayant obtenu silencieusement un accès Gemini
gcp-service-account-keyClés privées RSA de comptes de service GCP
google-oauth-client-secretSecrets clients OAuth2 Google (GOCSPX-...)

Vous pouvez ajouter des règles personnalisées dans .keyguard.toml :

root@kitploit:~
[[rules.extra]]
id = "my-internal-token"
description = "Internal service token"
pattern = "tok-[0-9a-f]{32}"
entropy_min = 3.5
severity = "high"
tags = ["internal"]

Intégration CI

GitHub Actions

root@kitploit:~
name: keyguard scan

on: [push, pull_request]

jobs:
  scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0          # full history for git scan
      - run: pip install keyguard-scan
      - run: keyguard scan .

Pre-commit hook

root@kitploit:~
# .pre-commit-config.yaml
repos:
  - repo: local
    hooks:
      - id: keyguard
        name: keyguard credential scan
        entry: keyguard scan --no-git-history
        language: system
        pass_filenames: false

Docker

root@kitploit:~
docker run --rm -v $(pwd):/repo ghcr.io/arzaan789/keyguard scan /repo

Formats de sortie

Terminal (par défaut) — tableau coloré regroupé par sévérité.

JSON — tableau de résultats lisible par machine :

root@kitploit:~
keyguard scan . --output json --out-file findings.json

SARIF — s'intègre avec l'onglet Sécurité de GitHub et d'autres outils SAST :

root@kitploit:~
keyguard scan . --output sarif --out-file findings.sarif

Webhook Slack — publie un résumé lorsque des résultats sont détectés :

root@kitploit:~
[notify]
slack_webhook = "https://hooks.slack.com/services/..."

Développement

root@kitploit:~
git clone https://github.com/arzaan789/keyguard.git
cd keyguard
pip install -e ".[dev]"
pytest

143 tests, 0 échecs.

Structure du projet :

root@kitploit:~
keyguard/
  scanner/      # file + git history scanners
  engine/       # regex + entropy detection (rules, matcher)
  output/       # terminal, JSON/SARIF, webhook
  auditor/      # GCP API client + audit logic
  ci/           # GitHub Actions, CircleCI, GitLab CI scanners
  cli.py        # Click CLI entry point
  config.py     # .keyguard.toml loader

Feuille de route

  • v1 — Analyseur de fichiers (code source + historique Git)
  • v2 — Auditeur d'API GCP (audit de projet en direct via les API GCP)
  • v3 — Intégration de plateformes CI (GitHub Actions, CircleCI, GitLab CI)

Licence

MIT

Télécharger l’outil