
Extensão de navegador para descoberta passiva de chaves de API e segredos para Chrome e Firefox. Mais de 80 padrões de detecção, zero configuração.
<p align="center">
<img width="128" height="128" alt="KeyFinder logo" src="https://assets.kitploit.com/production/public/readmes/13441/6a3719fb955d59b82cc0050ce4d323675f3e6d4f0ae09becf982a5b2f6755771.png">
</p>
<h1 align="center">KeyFinder</h1>
<p align="center">
<strong>Descoberta passiva de chaves de API e segredos para 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 é uma extensão de navegador para Chrome e Firefox que verifica passivamente cada página que você visita em busca de chaves de API, tokens, segredos e credenciais vazados. Ela funciona silenciosamente em segundo plano, sem necessidade de configuração.
<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>
## O que detecta
KeyFinder vem com **mais de 80 padrões de detecção** cobrindo segredos de:
| Categoria | Provedores |
|-----------|------------|
| **Cloud** | AWS (Access Keys, Secret Keys, Session Tokens, Cognito), Google Cloud (API Keys, OAuth, Service Accounts), Azure (Storage Keys, SAS Tokens, Connection Strings) |
| **Controle de versão** | GitHub (PATs, OAuth, Tokens granulares), GitLab (PATs, Pipeline, Runner tokens), Bitbucket |
| **Pagamentos** | Stripe (Secret, Publishable, Restricted, Webhook), PayPal Braintree, Square |
| **Comunicação** | Slack (Bot, User, App tokens, Webhooks), Discord (Bot tokens, Webhooks), Telegram, Twilio, SendGrid |
| **IA / ML** | OpenAI, Anthropic, HuggingFace, Replicate |
| **Bases de dados** | Strings de conexão MongoDB, PostgreSQL, MySQL, Redis |
| **SaaS** | Shopify, Sentry, New Relic, PlanetScale, Linear, Notion, Datadog, Algolia, Mapbox |
| **Infraestrutura** | HashiCorp Vault, Terraform, Docker Hub, NPM, Cloudflare, DigitalOcean, Doppler, Pulumi, Grafana |
| **Criptografia** | Chaves privadas RSA, EC, OpenSSH, PGP, DSA |
| **Genéricos** | JWTs, Bearer tokens, Autenticação Básica, atribuições de chaves de API, URLs com credenciais, strings de alta entropia |
## Como funciona
KeyFinder verifica **10 superfícies de ataque diferentes** em cada página:
1. **URLs de `src` de scripts** - Verifica todas as URLs de origem de scripts em busca de palavras-chave e tokens em parâmetros de consulta
2. **Scripts inline** - Examina o conteúdo de tags `<script>` em busca de padrões de segredos
3. **Scripts externos** - Baixa e verifica arquivos JavaScript da mesma origem
4. **Meta tags** - Verifica tags `<meta>` em busca de chaves de API e tokens vazados
5. **Campos de formulário ocultos** - Inspeciona valores de `<input type="hidden">`
6. **Atributos de dados** - Examina atributos `data-*` em busca de valores sensíveis
7. **Comentários HTML** - Analisa nós de comentários em busca de segredos acidentalmente commitados
8. **Parâmetros de URL** - Analisa links e hrefs em busca de tokens em strings de consulta
9. **Armazenamento web** - Examina localStorage e sessionStorage
10. **Respostas de rede** - Intercepta respostas XHR e Fetch em busca de segredos vazados
Além disso, a **análise de entropia de Shannon** é aplicada para detectar strings aleatórias de alta entropia que podem ser formatos de segredo não documentados.
## Funcionalidades
- **Zero dependências** - JavaScript puro vanilla, sem jQuery, sem bibliotecas externas
- **Manifest V3** - Construído para Chrome e Firefox modernos com arquitetura de service worker
- **Verificação passiva** - Executa automaticamente em cada carregamento de página
- **Compatível com SPA** - MutationObserver reexamina o DOM injetado dinamicamente
- **Indicador por aba** - Ícone com ponto vermelho quando uma aba possui descobertas
- **Palavras-chave personalizadas** - Adicione seus próprios termos de busca para verificar (validados, máximo de 50)
- **Painel de console operacional** - Interface de terminal plana: descobertas ordenadas por gravidade, tiles de gravidade com clique para filtrar, ticker da descoberta mais recente e pesquisa ao vivo (`/` foca, `Esc` limpa)
- **Triagem com um clique** - Clique em qualquer chip de correspondência para copiar o segredo, timestamps relativos com absoluto ao passar o mouse, exclusão por descoberta
- **Exportação** - Baixe descobertas filtradas como JSON ou CSV (com sanitizador contra injeção de fórmulas)
- **Ponte reforçada** - Nonce por página no canal CustomEvent MAIN <-> ISOLATED
- **Armazenamento limitado** - Limite de 5000 descobertas com evicção FIFO; gravações serializadas entre abas
- **Baixo consumo** - Uso mínimo de CPU e memória
- **Todos os quadros** - Verifica iframes e conteúdo incorporado
## Instalação
### Chrome
- [Instalar da Chrome Web Store](https://chromewebstore.google.com/detail/keyfinder/oogbljkilkfgdlkbmajlolpanilnnkim)
### Firefox
- [Instalar dos Complementos do Firefox](https://addons.mozilla.org/en-US/firefox/addon/keyfinder-original/)
### A partir do código-fonte
```bash
git clone https://github.com/momenbasel/keyFinder.git
```
**Chrome:**
1. Acesse `chrome://extensions`
2. Ative o **Modo do desenvolvedor**
3. Clique em **Carregar sem compactação** e selecione a pasta `keyFinder`
**Firefox:**
1. Acesse `about:debugging` > "Este Firefox"
2. Clique em **Carregar Complemento Temporário**
3. Selecione `manifest.firefox.json` da pasta `keyFinder`
## Uso
1. **Instale** a extensão
2. **Navegue** normalmente - KeyFinder verifica cada página em segundo plano
3. Clique no **ícone da extensão** para ver estatísticas e gerenciar palavras-chave
4. Clique em **Ver Descobertas** para abrir o painel completo de resultados
5. **Filtre** por gravidade, provedor ou tipo - ou clique em um tile de gravidade para filtrar instantaneamente; pressione `/` para pesquisar
6. **Exporte** descobertas como JSON ou CSV para relatórios
## Adicionar palavras-chave personalizadas
Clique no ícone da extensão, digite uma palavra-chave no campo de entrada e clique em **Adicionar**. A palavra-chave será usada para verificar URLs de scripts, código inline e atribuições chave-valor em cada página visitada.
Palavras-chave padrão: `key`, `api_key`, `apikey`, `api-key`, `secret`, `token`, `access_token`, `auth`, `credential`, `password`, `client_id`, `client_secret`
## Arquitetura
```
keyFinder/
manifest.json # Manifesto MV3 do Chrome
manifest.firefox.json # Manifesto MV3 do Firefox
popup.html # Interface do popup da extensão
results.html # Painel de descobertas
js/
background.js # Service worker - armazenamento e tratamento de mensagens
patterns.js # 80+ padrões de regex para detecção de segredos
content.js # Scanner de página no mundo ISOLATED - DOM, scripts, rede
interceptor-loader.js # Carregador ISOLATED - define nonce, injeta interceptador no mundo MAIN
interceptor.js # Hooks XHR/Fetch no mundo MAIN + verificação de globais da janela
popup.js # Lógica do popup
results.js # Lógica do painel com filtragem e exportação
css/
popup.css # Estilos do popup
results.css # Estilos do painel
icons/
icon16.png
icon48.png
icon128.png
scripts/
build.sh # Constrói pacotes zip para Chrome e Firefox
```
## Segurança
Consulte [SECURITY.md](https://github.com/momenbasel/keyfinder/blob/master/SECURITY.md) para o modelo de ameaça, política de divulgação e limitações conhecidas. As notas de versão estão em [CHANGELOG.md](https://github.com/momenbasel/keyfinder/blob/master/CHANGELOG.md).
## Aviso legal
Esta ferramenta destina-se exclusivamente a **pesquisa de segurança e testes autorizados**. Use-a para identificar segredos vazados em suas próprias aplicações ou durante testes de penetração autorizados. Você é responsável por seus próprios atos.
## Serviços profissionais
keyFinder é construído e mantido pela [GreyCore Labs](https://greycorelabs.com), uma empresa de segurança ofensiva registrada nos EUA. Quer o mesmo olhar atento para seu próprio produto?
- [Teste de penetração](https://greycorelabs.com/#plans) - web, API, mobile, nuvem. Orçamento fixo em 24 horas, relatório de amostra editado disponível mediante solicitação.
- [Varredura gratuita de superfície de ataque externa](https://greycorelabs.com/#free-scan) - relatório de uma página em 48 horas, sem compromisso.
## Licença
MIT
## Autor
[@momenbassel](https://x.com/momenbassel) - [LinkedIn](https://www.linkedin.com/in/momenbasel/)