NT-2026.09.19 DOSSIÊ

EXTANALYSIS: ANÁLISE FORENSE DE EXTENSÕES DE NAVEGADOR SUSPEITAS – GUIA PRÁTICO

Veja como o ExtAnalysis realiza análise estática de extensões de navegador: instalação, cada aba da interface (permissões, grafo de arquivos, inteligência extraída) e suas limitações reais.

Capa mostrando o título ExtAnalysis e elementos técnicos relacionados à análise de extensões de navegador.

Visão geral

ExtAnalysis é um framework de código aberto criado para realizar análise estática de extensões de navegadores como Chrome, Firefox, Edge e Brave. A ferramenta atua como uma primeira camada de triagem diante de plugins suspeitos, permitindo mapear a estrutura, as permissões, o código-fonte e possíveis indicadores de comprometimento (IOCs) de uma extensão sem executá-la — útil tanto para quem faz forense digital quanto para quem simplesmente quer avaliar um plugin antes de instalá-lo.

Instalação

O ExtAnalysis roda localmente como uma aplicação web construída em Python com Flask. A instalação segue o padrão de qualquer projeto Python no GitHub:

git clone https://github.com/Tuhinshubhra/ExtAnalysis
cd ExtAnalysis
pip3 install -r requirements.txt --break-system-packages

A flag --break-system-packages não aparece na documentação oficial do projeto — ela é necessária em distribuições onde o Python do sistema é marcado como “gerenciado externamente” (PEP 668), caso do Kali Linux em versões mais recentes (2023.1 em diante, baseado em Debian 12). Em um ambiente virtual (venv) ou em versões mais antigas do Kali/Debian, essa flag não é exigida.

Com as dependências instaladas, o servidor é iniciado com:

python3 extanalysis.py

Por padrão, o ExtAnalysis usa o host 127.0.0.1 na porta 13337 e abre automaticamente uma aba do navegador. Ambos os valores podem ser customizados com as flags oficiais -h/--host e -p/--port (ver python3 extanalysis.py --help). A ferramenta aceita três formas de entrada: um link direto para a extensão na Chrome Web Store ou nos Add-ons do Firefox, o upload manual de um arquivo .crx, .xpi, .zip ou .tar, ou a varredura de uma extensão já instalada localmente.

Interface principal

Depois de fornecer o alvo — por exemplo, o link de uma extensão publicada na Chrome Web Store —, o ExtAnalysis inicia a extração e a análise estática dos arquivos. Dependendo do tamanho do plugin, o processo pode levar alguns instantes. Ao concluir, a ferramenta apresenta o relatório na tela principal, organizado em abas, cada uma cobrindo um aspecto diferente da extensão analisada.

Interface principal do ExtAnalysis exibindo o campo de submissão do alvo para análise.
Tela principal do ExtAnalysis logo após a inicialização do servidor local em 127.0.0.1:13337.

Aba de informações básicas

A aba Basic Information reúne os dados extraídos diretamente do manifest.json: nome, autor, descrição, versão e URLs declaradas pela extensão. Ela também inclui um visualizador embutido para inspecionar o próprio arquivo de manifesto sem precisar abri-lo manualmente.

Aba de informações básicas do ExtAnalysis com dados extraídos do manifesto da extensão.
Aba Basic Information mostrando nome, autor, versão e URLs extraídas do manifest.json.

Aba Files: grafo de arquivos

Ao mudar para a aba Files, o ExtAnalysis constrói um grafo interativo que mapeia todos os arquivos-fonte da extensão, os scripts internos, as URLs externas referenciadas e as relações de domínio entre eles. A mesma aba conta com um visualizador de código que permite abrir qualquer arquivo JavaScript e aplicar um “embelezador” (beautifier) para reverter minificação ou ofuscação simples, tornando o código mais legível para auditoria manual.

Grafo de arquivos e conexões externas gerado pela aba Files do ExtAnalysis.
Grafo interativo da aba Files mapeando arquivos internos, scripts e URLs externas da extensão.

Aba de permissões e avaliação de risco

A aba Permissions analisa as permissões solicitadas pela extensão no manifesto e as classifica em níveis de risco (Alto, Médio, Baixo) com base no potencial de escalada de privilégio de cada uma — por exemplo, acesso a tabs, webRequest, storage ou cookies tende a pesar mais nessa classificação do que permissões cosméticas.

Lista de permissões da extensão classificadas por nível de risco no ExtAnalysis.
Aba Permissions classificando as permissões solicitadas pela extensão por nível de risco.

URL Reconnaissance Suite

A URL Reconnaissance Suite lista os domínios, URLs completas e arquivos JavaScript externos referenciados pela extensão. Para obter a funcionalidade completa dessa aba, é preciso configurar uma chave de API do VirusTotal no menu de configurações da própria interface web, o que habilita a checagem automatizada de reputação e hash desses domínios/arquivos.

Domínios e URLs externas extraídos pela aba URL Reconnaissance Suite do ExtAnalysis.
Aba URL Reconnaissance Suite exibindo domínios e URLs externas referenciadas pela extensão.

Inteligência extraída: IPs, e-mails e strings

Por fim, a aba de inteligência extraída (Extracted Intelligence) varre todos os arquivos da extensão em busca de indicadores de comprometimento hardcoded: endereços IPv4 e IPv6, domínios, URLs completas, carteiras de Bitcoin, endereços de e-mail e strings relevantes (incluindo trechos codificados em Base64). Esses indicadores são o material bruto que orienta a decisão de aprofundar a investigação — um IP ou domínio já conhecido como malicioso, por exemplo, muda imediatamente o nível de suspeita sobre a extensão.

Lista de endereços IP identificados como indicadores de comprometimento pelo ExtAnalysis.
Endereços IP extraídos automaticamente dos arquivos da extensão pela aba de inteligência extraída.
Endereços de e-mail extraídos como indicadores de comprometimento pelo ExtAnalysis.
Endereços de e-mail identificados nos arquivos da extensão pela mesma aba de inteligência extraída.
Strings e trechos de código extraídos como evidência pela aba de inteligência do ExtAnalysis.
Strings relevantes, incluindo trechos codificados em Base64, extraídas do código da extensão.

Fluxo de análise de uma extensão

Reunindo os passos anteriores, o fluxo recomendado pela própria ferramenta é: submeter a extensão-alvo (via link, upload de arquivo ou varredura local); revisar o manifest.json e as permissões solicitadas em busca de excesso de privilégio; inspecionar o grafo interativo da aba Files para identificar domínios externos suspeitos e possíveis pontos de exfiltração; e, por fim, cruzar os IOCs extraídos (IPs, domínios, e-mails, strings) com fontes de reputação para decidir se a extensão representa risco real.

Limitações

O ExtAnalysis realiza apenas análise estática: ele examina os arquivos-fonte da extensão sem capturar execução em tempo real nem comportamento acionado dinamicamente. Isso significa que técnicas de ofuscação avançada, verificação de ambiente antes de disparar um payload, ou scripts que só revelam comportamento malicioso em condições específicas de execução podem passar despercebidos por essa análise isolada. Por esse motivo, o próprio fluxo de trabalho recomendado trata o ExtAnalysis como um passo rápido de reconhecimento inicial — mapeando estrutura e permissões — antes de, quando necessário, avançar para análise dinâmica em ambiente isolado (sandbox), onde o comportamento real da extensão pode ser observado com segurança.

Conclusão

Extensões de navegador facilitam o dia a dia, mas quando um desenvolvedor tem intenções maliciosas, elas também abrem uma porta relevante de risco. O ExtAnalysis oferece um caminho rápido e visual para essa triagem inicial: instalação simples, uma interface que organiza manifesto, grafo de arquivos, permissões e IOCs em abas específicas, e uma auditoria de código para quem quer ir além do relatório automático. Suas limitações quanto à análise de comportamento em tempo real não o tornam menos útil — apenas definem seu lugar certo no fluxo de trabalho, como primeira triagem antes de decisões mais custosas. Vale sempre prestar atenção ao que se instala no navegador.