
Extension de navigateur pour la découverte passive de clés API et de secrets pour Chrome et Firefox. 80+ motifs de détection, zéro configuration.
<p align="center">
<img width="128" height="128" alt="Logo KeyFinder" src="https://assets.kitploit.com/production/public/readmes/13441/6a3719fb955d59b82cc0050ce4d323675f3e6d4f0ae09becf982a5b2f6755771.png">
</p>
<h1 align="center">KeyFinder</h1>
<p align="center">
<strong>Découverte passive de clés API et secrets pour Chrome et Firefox</strong>
</p>
<p align="center">
<img src="https://img.shields.io/badge/manifest-v3-blue"/>
<a href="https://chromewebstore.google.com/detail/keyfinder/oogbljkilkfgdlkbmajlolpanilnnkim"><img src="https://img.shields.io/badge/Chrome-Extension-green"/></a>
<a href="https://addons.mozilla.org/en-US/firefox/addon/keyfinder-original/"><img src="https://img.shields.io/badge/Firefox-Add--on-orange"/></a>
<img src="https://img.shields.io/github/license/momenbasel/keyFinder"/>
<img src="https://img.shields.io/github/v/release/momenbasel/keyFinder"/>
<img src="https://img.shields.io/github/downloads/momenbasel/keyFinder/total.svg"/>
</p>
<hr>
KeyFinder est une extension de navigateur pour Chrome et Firefox qui analyse passivement chaque page que vous visitez à la recherche de clés API, jetons, secrets et identifiants divulgués. Elle s'exécute silencieusement en arrière-plan sans aucune configuration requise.
<p align="center">
<video src="https://cdn.jsdelivr.net/gh/momenbasel/keyFinder@master/store/store-demo.mp4" poster="https://raw.githubusercontent.com/momenbasel/keyFinder/master/store/store-1-dashboard.png" controls muted playsinline></video>
</p>
## Ce qu'elle détecte
KeyFinder intègre **plus de 80 motifs de détection** couvrant les secrets provenant de :
| Catégorie | Fournisseurs |
|-----------|--------------|
| **Cloud** | AWS (Clés d'accès, Clés secrètes, Jetons de session, Cognito), Google Cloud (Clés API, OAuth, Comptes de service), Azure (Clés de stockage, Jetons SAS, Chaînes de connexion) |
| **Contrôle de code source** | GitHub (PAT, OAuth, Jetons fins), GitLab (PAT, Jetons de pipeline, Runner), Bitbucket |
| **Paiements** | Stripe (Secret, Publiable, Restreint, Webhook), PayPal Braintree, Square |
| **Communication** | Slack (Jetons Bot, Utilisateur, Application, Webhooks), Discord (Jetons Bot, Webhooks), Telegram, Twilio, SendGrid |
| **IA / ML** | OpenAI, Anthropic, HuggingFace, Replicate |
| **Bases de données** | Chaînes de connexion MongoDB, PostgreSQL, MySQL, Redis |
| **SaaS** | Shopify, Sentry, New Relic, PlanetScale, Linear, Notion, Datadog, Algolia, Mapbox |
| **Infrastructure** | HashiCorp Vault, Terraform, Docker Hub, NPM, Cloudflare, DigitalOcean, Doppler, Pulumi, Grafana |
| **Cryptographie** | Clés privées RSA, EC, OpenSSH, PGP, DSA |
| **Génériques** | JWT, Jetons Bearer, Authentification de base, Assignations de clés API, URLs d'identifiants, chaînes à haute entropie |
## Comment ça fonctionne
KeyFinder analyse **10 surfaces d'attaque différentes** sur chaque page :
1. **URLs `src` des scripts** - Vérifie toutes les URLs source des scripts pour des mots-clés et jetons dans les paramètres de requête
2. **Scripts en ligne** - Analyse le contenu des balises `<script>` pour des motifs de secrets
3. **Scripts externes** - Récupère et analyse les fichiers JavaScript de la même origine
4. **Balises meta** - Vérifie les balises `<meta>` pour des clés API et jetons divulgués
5. **Champs de formulaire cachés** - Inspecte les valeurs des `<input type="hidden">`
6. **Attributs de données** - Analyse les attributs `data-*` pour des valeurs sensibles
7. **Commentaires HTML** - Parcourt les nœuds de commentaires pour des secrets accidentellement commités
8. **Paramètres d'URL** - Analyse les liens et hrefs pour des jetons dans les chaînes de requête
9. **Stockage web** - Analyse localStorage et sessionStorage
10. **Réponses réseau** - Intercepte les réponses XHR et Fetch pour des secrets divulgués
De plus, **une analyse d'entropie de Shannon** est appliquée pour détecter des chaînes à haute entropie aléatoires pouvant correspondre à des formats de secrets non documentés.
## Fonctionnalités
- **Zéro dépendance** - Pur JavaScript vanilla, pas de jQuery, pas de bibliothèques externes
- **Manifest V3** - Conçu pour Chrome et Firefox modernes avec architecture service worker
- **Analyse passive** - S'exécute automatiquement à chaque chargement de page
- **Compatibilité SPA** - MutationObserver réanalyse le DOM injecté dynamiquement
- **Badge d'alerte par onglet** - Icône avec point rouge lorsque l'onglet contient des résultats
- **Mots-clés personnalisés** - Ajoutez vos propres termes de recherche à analyser (validés, 50 max)
- **Tableau de bord style console ops** - Interface de terminal plate : résultats triés par sévérité, tuiles de sévérité filtrables par clic, bandeau des derniers résultats, recherche en direct (`/` focus, `Esc` efface)
- **Tri à un clic** - Cliquez sur une correspondance pour copier le secret, horodatages relatifs avec affichage absolu au survol, suppression par résultat
- **Export** - Téléchargez les résultats filtrés en JSON ou CSV (avec assainissement anti-injection de formules)
- **Pont sécurisé** - Nonce par page sur le canal CustomEvent MAIN <-> ISOLATED
- **Stockage limité** - Limite de 5000 résultats avec éviction FIFO ; écritures sérialisées entre onglets
- **Faible empreinte** - Utilisation minimale du CPU et de la mémoire
- **Toutes les frames** - Analyse les iframes et le contenu intégré
## Installation
### Chrome
- [Installer depuis le Chrome Web Store](https://chromewebstore.google.com/detail/keyfinder/oogbljkilkfgdlkbmajlolpanilnnkim)
### Firefox
- [Installer depuis les modules Firefox](https://addons.mozilla.org/en-US/firefox/addon/keyfinder-original/)
### Depuis les sources
```bash
git clone https://github.com/momenbasel/keyFinder.git
```
**Chrome :**
1. Allez sur `chrome://extensions`
2. Activez le **mode développeur**
3. Cliquez sur **Charger l'extension non empaquetée** et sélectionnez le dossier `keyFinder`
**Firefox :**
1. Allez sur `about:debugging` > « Ce Firefox »
2. Cliquez sur **Charger un module temporaire**
3. Sélectionnez `manifest.firefox.json` dans le dossier `keyFinder`
## Utilisation
1. **Installez** l'extension
2. **Naviguez** sur le web normalement - KeyFinder analyse chaque page en arrière-plan
3. Cliquez sur l'**icône de l'extension** pour voir les statistiques et gérer les mots-clés
4. Cliquez sur **Voir les résultats** pour ouvrir le tableau de bord complet
5. **Filtrez** par sévérité, fournisseur ou type - ou cliquez sur une tuile de sévérité pour filtrer instantanément ; appuyez sur `/` pour rechercher
6. **Exportez** les résultats au format JSON ou CSV pour les rapports
## Ajouter des mots-clés personnalisés
Cliquez sur l'icône de l'extension, saisissez un mot-clé dans le champ de saisie, puis cliquez sur **Ajouter**. Le mot-clé sera utilisé pour analyser les URLs de scripts, le code en ligne et les assignations clé-valeur sur chaque page visitée.
Mots-clés par défaut : `key`, `api_key`, `apikey`, `api-key`, `secret`, `token`, `access_token`, `auth`, `credential`, `password`, `client_id`, `client_secret`
## Architecture
```
keyFinder/
manifest.json # Manifeste Chrome MV3
manifest.firefox.json # Manifeste Firefox MV3
popup.html # Interface de la popup de l'extension
results.html # Tableau de bord des résultats
js/
background.js # Service worker - gestion du stockage et des messages
patterns.js # Plus de 80 motifs regex de détection de secrets
content.js # Analyseur de page en monde ISOLATED - DOM, scripts, réseau
interceptor-loader.js # Chargeur ISOLATED - définit le nonce, injecte l'intercepteur en monde MAIN
interceptor.js # Hooks XHR/Fetch en monde MAIN + analyse globale de window
popup.js # Logique de la popup
results.js # Logique du tableau de bord avec filtrage et export
css/
popup.css # Styles de la popup
results.css # Styles du tableau de bord
icons/
icon16.png
icon48.png
icon128.png
scripts/
build.sh # Construit les packages zip Chrome et Firefox
```
## Sécurité
Consultez [SECURITY.md](https://github.com/momenbasel/keyfinder/blob/master/SECURITY.md) pour le modèle de menace, la politique de divulgation et les limitations connues. Les notes de version se trouvent dans [CHANGELOG.md](https://github.com/momenbasel/keyfinder/blob/master/CHANGELOG.md).
## Avertissement
Cet outil est destiné à **la recherche en sécurité et aux tests autorisés uniquement**. Utilisez-le pour identifier les secrets divulgués sur vos propres applications ou lors de tests d'intrusion autorisés. Vous êtes responsable de vos propres actions.
## Services professionnels
KeyFinder est construit et maintenu par [GreyCore Labs](https://greycorelabs.com), une société de sécurité offensive immatriculée aux États-Unis. Vous souhaitez bénéficier du même œil attentif pour votre propre produit ?
- [Tests d'intrusion](https://greycorelabs.com/#plans) - web, API, mobile, cloud. Devis fixe sous 24 heures, échantillon de rapport anonymisé sur demande.
- [Analyse gratuite de la surface d'attaque externe](https://greycorelabs.com/#free-scan) - rapport d'une page en 48 heures, sans engagement.
## Licence
MIT
## Auteur
[@momenbassel](https://x.com/momenbassel) - [LinkedIn](https://www.linkedin.com/in/momenbasel/)