
Estensione per browser per la scoperta passiva di chiavi API e segreti, per Chrome e Firefox. 80+ modelli di rilevamento, zero configurazione.
<p align="center">
<img width="128" height="128" alt="Logo di KeyFinder" src="https://assets.kitploit.com/production/public/readmes/13441/6a3719fb955d59b82cc0050ce4d323675f3e6d4f0ae09becf982a5b2f6755771.png">
</p>
<h1 align="center">KeyFinder</h1>
<p align="center">
<strong>Rilevamento passivo di chiavi API e segreti per Chrome e 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 è un'estensione per browser per Chrome e Firefox che analizza passivamente ogni pagina visitata alla ricerca di chiavi API, token, segreti e credenziali trapelati. Funziona silenziosamente in background senza necessità di configurazione.
<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>
## Cosa rileva
KeyFinder include **oltre 80 pattern di rilevamento** che coprono segreti per:
| Categoria | Fornitori |
|-----------|-----------|
| **Cloud** | AWS (Access Keys, Secret Keys, Session Tokens, Cognito), Google Cloud (API Keys, OAuth, Service Accounts), Azure (Storage Keys, SAS Tokens, Connection Strings) |
| **Controllo versione** | GitHub (PATs, OAuth, Fine-grained tokens), GitLab (PATs, Pipeline, Runner tokens), Bitbucket |
| **Pagamenti** | Stripe (Secret, Publishable, Restricted, Webhook), PayPal Braintree, Square |
| **Comunicazione** | Slack (Bot, User, App tokens, Webhooks), Discord (Bot tokens, Webhooks), Telegram, Twilio, SendGrid |
| **AI / ML** | OpenAI, Anthropic, HuggingFace, Replicate |
| **Database** | MongoDB, PostgreSQL, MySQL, Redis (stringhe di connessione) |
| **SaaS** | Shopify, Sentry, New Relic, PlanetScale, Linear, Notion, Datadog, Algolia, Mapbox |
| **Infrastruttura** | HashiCorp Vault, Terraform, Docker Hub, NPM, Cloudflare, DigitalOcean, Doppler, Pulumi, Grafana |
| **Cripto** | Chiavi private RSA, EC, OpenSSH, PGP, DSA |
| **Generici** | JWT, Bearer token, Autenticazione di base, assegnazioni di chiavi API, URL con credenziali, stringhe ad alta entropia |
## Come funziona
KeyFinder analizza **10 diverse superfici d'attacco** su ogni pagina:
1. **URL `src` degli script** - Controlla tutti gli URL di origine degli script per parole chiave e token nei parametri della query
2. **Script inline** - Analizza il contenuto dei tag `<script>` per pattern di segreti
3. **Script esterni** - Recupera e analizza file JavaScript della stessa origine
4. **Meta tag** - Controlla i tag `<meta>` per chiavi API e token trapelati
5. **Campi modulo nascosti** - Ispeziona i valori di `<input type="hidden">`
6. **Attributi dati** - Analizza attributi `data-*` per valori sensibili
7. **Commenti HTML** - Analizza i nodi di commento per segreti accidentalmente memorizzati
8. **Parametri URL** - Analizza link e href per token nelle stringhe di query
9. **Archiviazione web** - Analizza localStorage e sessionStorage
10. **Risposte di rete** - Intercetta risposte XHR e Fetch per segreti trapelati
Inoltre, viene applicata **l'analisi dell'entropia di Shannon** per rilevare stringhe casuali ad alta entropia che potrebbero essere formati di segreti non documentati.
## Caratteristiche
- **Zero dipendenze** - Puro JavaScript vanilla, niente jQuery, niente librerie esterne
- **Manifest V3** - Realizzato per Chrome e Firefox moderni con architettura service worker
- **Analisi passiva** - Funziona automaticamente su ogni caricamento di pagina
- **Compatibile con SPA** - MutationObserver rianalizza il DOM iniettato dinamicamente
- **Icona di avviso per scheda** - Sovrapposizione di punto rosso quando una scheda contiene risultati
- **Parole chiave personalizzate** - Aggiungi i tuoi termini di ricerca per analizzare (validati, massimo 50)
- **Dashboard da console operativa** - Interfaccia terminale piatta: risultati ordinati per gravità, tile di filtro per gravità con un clic, ticker degli ultimi risultati e ricerca live (`/` per focalizzare, `Esc` per cancellare)
- **Triaging con un clic** - Clicca su qualsiasi chip di corrispondenza per copiare il segreto, timestamp relativi con visualizzazione assoluta al passaggio del mouse, eliminazione per singolo risultato
- **Esportazione** - Scarica i risultati filtrati in formato JSON o CSV (con sanificatore per iniezione di formule)
- **Bridge rinforzato** - Nonce per pagina sul canale CustomEvent MAIN <-> ISOLATED
- **Archiviazione limitata** - Limite di 5000 risultati con rimozione FIFO; scritture serializzate tra schede
- **Basso impatto** - Utilizzo minimo di CPU e memoria
- **Tutti i frame** - Analizza iframe e contenuti incorporati
## Installazione
### Chrome
- [Installa dal Chrome Web Store](https://chromewebstore.google.com/detail/keyfinder/oogbljkilkfgdlkbmajlolpanilnnkim)
### Firefox
- [Installa dai componenti aggiuntivi di Firefox](https://addons.mozilla.org/en-US/firefox/addon/keyfinder-original/)
### Dal codice sorgente
```bash
git clone https://github.com/momenbasel/keyFinder.git
```
**Chrome:**
1. Vai su `chrome://extensions`
2. Abilita **Modalità sviluppatore**
3. Clicca su **Carica estensione non pacchettizzata** e seleziona la cartella `keyFinder`
**Firefox:**
1. Vai su `about:debugging` > "Questo Firefox"
2. Clicca su **Carica componente aggiuntivo temporaneo**
3. Seleziona `manifest.firefox.json` dalla cartella `keyFinder`
## Utilizzo
1. **Installa** l'estensione
2. **Naviga** normalmente sul web - KeyFinder analizza ogni pagina in background
3. Clicca sull'**icona dell'estensione** per vedere le statistiche e gestire le parole chiave
4. Clicca su **Visualizza risultati** per aprire la dashboard completa
5. **Filtra** per gravità, fornitore o tipo - oppure clicca su un tile di gravità per filtrare immediatamente; premi `/` per cercare
6. **Esporta** i risultati in formato JSON o CSV per la reportistica
## Aggiungere parole chiave personalizzate
Clicca sull'icona dell'estensione, digita una parola chiave nel campo di input e clicca su **Aggiungi**. La parola chiave verrà utilizzata per analizzare URL di script, codice inline e assegnazioni chiave-valore su ogni pagina visitata.
Parole chiave predefinite: `key`, `api_key`, `apikey`, `api-key`, `secret`, `token`, `access_token`, `auth`, `credential`, `password`, `client_id`, `client_secret`
## Architettura
```
keyFinder/
manifest.json # Manifest MV3 per Chrome
manifest.firefox.json # Manifest MV3 per Firefox
popup.html # Interfaccia pop-up dell'estensione
results.html # Dashboard dei risultati
js/
background.js # Service worker - gestione archiviazione e messaggi
patterns.js # Oltre 80 pattern di rilevamento regex per segreti
content.js # Scanner di pagine in ambiente ISOLATED - DOM, script, rete
interceptor-loader.js # Loader ISOLATED - imposta nonce, inietta interceptor MAIN-world
interceptor.js # Hook XHR/Fetch in ambiente MAIN-world + scansione globale delle finestre
popup.js # Logica del pop-up
results.js # Logica della dashboard con filtri ed esportazione
css/
popup.css # Stili del pop-up
results.css # Stili della dashboard
icons/
icon16.png
icon48.png
icon128.png
scripts/
build.sh # Script di build per pacchetti Chrome e Firefox
```
## Sicurezza
Consulta [SECURITY.md](https://github.com/momenbasel/keyfinder/blob/master/SECURITY.md) per il modello di minaccia, la politica di divulgazione e le limitazioni note. Le note di rilascio sono in [CHANGELOG.md](https://github.com/momenbasel/keyfinder/blob/master/CHANGELOG.md).
## Dichiarazione di non responsabilità
Questo strumento è destinato esclusivamente a **ricerche sulla sicurezza e test autorizzati**. Utilizzalo per identificare segreti trapelati sulle tue applicazioni o durante test di penetrazione autorizzati. Sei responsabile delle tue azioni.
## Servizi professionali
KeyFinder è sviluppato e mantenuto da [GreyCore Labs](https://greycorelabs.com), un'azienda di sicurezza offensiva con sede negli Stati Uniti. Vuoi lo stesso controllo sul tuo prodotto?
- [Penetration testing](https://greycorelabs.com/#plans) - web, API, mobile, cloud. Preventivo fisso entro 24 ore, report campione oscurato su richiesta.
- [Scansione gratuita della superficie d'attacco esterna](https://greycorelabs.com/#free-scan) - report di una pagina in 48 ore, senza impegno.
## Licenza
MIT
## Autore
[@momenbassel](https://x.com/momenbassel) - [LinkedIn](https://www.linkedin.com/in/momenbasel/)