
Framework de Análise de Segurança de Contratos Inteligentes e Geração de PoC com IA
Version 6.0 | Novidades na v6.0 | Registo de Alterações
Aether é uma estrutura baseada em Python para analisar contratos inteligentes Solidity, gerar descobertas de vulnerabilidades, produzir testes de prova de conceito (PoC) baseados no Foundry e validar exploits em forks da mainnet. Ela combina análise de AST do Solidity, análise de mancha, análise de grafo de fluxo de controlo, análise entre contratos, execução simbólica Halmos, mais de 180 detectores estáticos baseados em padrões, um pipeline LLM multi-agente colaborativo (GPT/Gemini/Claude) com memória institucional partilhada SAGE, 14 arquétipos de protocolo, uma base de conhecimento de mais de 75 exploits, deteção calibrada por ML, deteção de peculiaridades de tokens, extração de invariantes, resolução de contexto de contratos relacionados e filtragem avançada baseada em contexto numa única TUI persistente em tela cheia.
Pipeline de Agentes Colaborativos — O pipeline de análise profunda transforma-se de 5 passagens independentes para 5 agentes colaborativos que partilham conhecimento estruturado através da memória institucional SAGE:
docker compose up -d para iniciar.Memória Institucional SAGE — Aether agora aprende com cada auditoria, reduzindo falsos positivos e melhorando a qualidade das descobertas ao longo do tempo:
SageFeedbackManager.sync_detector_accuracy() identifica detetores de alto/baixo desempenho e armazena reflexões de recomendações/práticas a evitardocker compose up -d inicia o SAGE; configurar através de sage_enabled/sage_url em ~/.aether/config.yamlContribuidores: Agradecimentos a @sashavdv por corrigir variáveis de caminho codificadas (PR #1) e a @pro258b por identificar o método validate_anthropic_key() em falta (PR #2).
SAGE é um sistema de memória institucional persistente alimentado por consenso BFT. Consulte o projeto SAGE para documentação completa.```bash
pip install sage-agent-sdk
docker compose up -d
python aether.py
python -c "from core.sage_seeder import SageSeeder; SageSeeder.generate_seed_fixtures()"
### Como o SAGE Melhora as Auditorias```
Audit 1 → Findings + FPs → Record outcomes in SAGE
↓
Audit 2 → SAGE recalls FP patterns → Fewer false positives
↓
Audit 3 → Richer institutional context → Better severity calibration
↓
Audit N → Institutional expert-level knowledge → Bug-bounty-quality findings
Execução Automática de PoC — PoCs do Foundry geradas agora compilam e executam automaticamente:
forge test --json executa PoCs imediatamente após a compilaçãoPoCTestResult para relatórios estruturados de sucesso/fracasso/erroPOC_TESTING no JobManager para acompanhamento ao vivo no TUIExecução Simbólica Halmos — Verificação formal via execução simbólica:
HalmosRunner para executar testes simbólicos Halmos contra propriedades geradasHalmosPropertyGenerator para geração automática de propriedades de verificação a partir de invariantes extraídosHalmosSymbolicNode integrado na Etapa 1.95 de validaçãoenable_symbolic_verification, halmos_timeoutAnálise de Grafo de Fluxo de Controle — Compreensão do fluxo de controle em nível de compilador:
BasicBlock, CFGEdge, ControlFlowGraph em solidity_ast.pybuild_cfg(), get_dominators(), get_loop_headers(), format_cfg_for_llm() para análise estruturalparse_assembly_block() para suporte a assembly inlineCiclo de Feedback de ML — Calibração baseada em resultados históricos:
AccuracyTracker.record_finding_outcome() para rastrear resultados de submissão e ganhos de recompensasget_detector_accuracy() e get_detector_weights() para estatísticas de desempenho por detectorDetectorStats rastreando verdadeiros/falsos positivos e precisão históricaEnhancedVulnerabilityDetector com base no histórico do detectorContexto de Contratos Relacionados — Análise LLM agora vê o código-fonte completo das dependências:
RelatedContractResolver descobre automaticamente contratos pai, interface, biblioteca e dependênciaLimpeza de Dívida Técnica — 8.500 linhas de código morto removidas:
ai_ensemble.py, audit_engine.py, fork_verifier.pyslither_project_cache do gerenciador de banco de dadosParsing de AST Solidity — Aether v4.0 adiciona análise de código com suporte do compilador via py-solc-x, indo além da análise estática baseada apenas em regex:
solc --ast-json para resolução adequada de herança, visibilidade de funções, layout de armazenamento com números de slots e rastreamento de leitura/gravação de variáveis de estado por funçãoMecanismo de Análise de Taint — Rastreia entradas controladas pelo usuário através de contratos para identificar fluxos de dados perigosos:
Análise entre Contratos (Passagem 3.5) — Nova passagem de análise aprofundada voltada para vulnerabilidades multi-contrato:
Base de Dados de Peculiaridades de Tokens — 12 categorias de comportamentos ERC-20 não padrão que causam explorações reais:
Integrado ao pipeline de detecção estática e listas de verificação de arquétipos.
Mecanismo de Precisão Aprimorada — Detecção avançada de vulnerabilidades de arredondamento e precisão:
Geração de PoC Executável — Testes Foundry gerados agora realmente compilam e executam:
Melhorias no Pipeline LLM:
Mecanismo de Análise Aprofundada — Aether v3.5 transforma fundamentalmente como a ferramenta encontra vulnerabilidades, passando de uma chamada LLM única "encontre bugs" para um pipeline estruturado de 6 passagens que espelha como auditores profissionais abordam a revisão de código: entender primeiro, depois atacar sistematicamente.
Em vez de enviar um contrato inteiro para um LLM com um único prompt, o Aether agora executa seis passagens de análise sequenciais com contexto acumulado:
As Passagens 1-2 são armazenadas em cache pelo hash de conteúdo do contrato, portanto reauditorias pulam a fase de entendimento. Cada passagem subsequente recebe todo o contexto anterior, construindo um modelo de ataque abrangente. Ativado por feature flag com AETHER_DEEP_ANALYSIS=1 (padrão LIGADO); cai para o método único em caso de falha.
Antes de analisar bugs, o Aether detecta que tipo de protocolo o contrato implementa e carrega listas de verificação de vulnerabilidades específicas do arquétipo:
10 arquétipos no total, cada um com 3-7 itens de verificação específicos extraídos de exploits do mundo real.
Um banco de dados estruturado de mais de 50 padrões de exploits do mundo real categorizados substitui a lista estática anterior de 10 padrões:
Cada padrão inclui indicadores de código, proteções ausentes, mecanismo de exploração passo a passo e precedentes do mundo real (com valores em dólar). Os padrões são filtrados pelo arquétipo detectado e área de foco do agente.
Extrai automaticamente invariantes de protocolo de três fontes:
@invariant no NatSpec em comentários do contratoGera suítes de teste Foundry invariant_*() que servem como provas de verificação formal leve — um teste de invariante com falha prova que o bug é real.
division_by_zero, integer_underflow, etc. para baixo. Agora verifica se o achado está em um bloco unchecked{}, próximo a transferências de valor, em cálculos de preço ou em contextos de oráculo antes de decidir"pending" agora passam para análise LLM (anteriormente apenas "validated" passava, descartando silenciosamente muitos achados reais)(line // 10) * 10 que dividia achados a 2 linhas de distância em grupos diferentesDeFiVulnerabilityDetector (análise de presença/ausência em dois estágios) agora executa no mecanismo de auditoria aprimorado principal, não apenas no pipeline baseado em fluxoTUI Textual Totalmente Inline — Aether v3.0 é um aplicativo de tela cheia persistente que nunca retorna a um terminal bruto. Cada operação — auditorias, geração de PoC, geração de relatórios, seleção de escopo do GitHub, configuração de definições — é executada inteiramente dentro do TUI:
app.suspend() — o TUI nunca desaparece, sem mudanças abruptas de terminalEnter em qualquer job para ver saída rolável ao vivo, barra de progresso da fase e metadadosa/n para todos/nenhum, digite para filtrar, contratos previamente auditados com código de coresn Nova Auditoria, r Retomar, h Histórico, PoCs, Relatórios, Buscar, Configurações, SairQuatro Tipos de Jobs em Segundo Plano: Todas as operações pesadas são executadas como threads daemon em segundo plano via AuditRunner, com saída capturada por ThreadDemuxWriter e visível em JobDetailScreen:
| Tipo de Job | Descrição |
|---|---|
local | Auditorias de contrato únicas ou paralelas |
github |
Suporte LLM a Três Provedores: OpenAI (GPT-5/5.3), Google Gemini (2.5/3.0) e Anthropic Claude (Sonnet 4.5/Opus 4.6) para máxima flexibilidade e redundância.
Geração de PoC Aprimorada: Análise de contrato baseada em AST, correções iterativas de compilação e prompts LLM prontos para produção gerando exploits adequados para submissões de bug bounty.
Filtragem Avançada de Falsos Positivos: Validação em múltiplos estágios reduz falsos positivos de 66% para ~20-25%, melhorando a precisão de 33% para 75-80%:
script/, .s.sol, forge-std/Script.sol) automaticamente excluídos da análise de vulnerabilidades[PRODUCTION]/[DEPLOYMENT SCRIPT] para que os modelos foquem em código de produçãoonlyDistributor, authorized) extraídos do código-fonte do contrato e reconhecidos junto com padrões codificadosIntegração com Base de Dados de Vulnerabilidades Move: Padrões de 128 achados Críticos/Altos em 77 auditorias, adaptados para Solidity/EVM:
python setup.py # Interactive installer (recommended)
### 2. Lançar Aether```bash
python aether.py # Launches the full-screen Textual TUI
É isso. A TUI guia você por tudo através de atalhos de teclado e diálogos modais.
OPENAI_API_KEY (para modelos GPT)GEMINI_API_KEY (para modelos Gemini)ANTHROPIC_API_KEY (para modelos Claude)ETHERSCAN_API_KEY (opcional, para obter contratos verificados)Se preferir instalação manual:```bash
curl -L https://foundry.paradigm.xyz | bash && foundryup export PATH="$PATH:$HOME/.foundry/bin"
pip install solc-select solc-select install 0.4.26 0.8.0 0.8.19 0.8.20 latest
python -m venv venv && source venv/bin/activate pip install -r requirements.txt
## Configuração
O assistente de configuração (`python setup.py`) cuida de tudo. Você também pode configurar a partir da TUI através de `s` (Configurações):
- **Configurar Chaves de API** — prompts sequenciais para chaves OpenAI, Gemini, Anthropic, Etherscan com valores atuais mascarados
- **Configurar Modelos** — selecione modelos por provedor entre as opções disponíveis
- **Assistente Completo** — executa as chaves de API seguidas pela seleção de modelo
- **Configurações de Triagem** — ajuste limites de severidade, níveis de confiança, número máximo de descobertas
Ou defina variáveis de ambiente diretamente:```bash
export OPENAI_API_KEY=sk-...
export GEMINI_API_KEY=...
export ANTHROPIC_API_KEY=...
A configuração é armazenada em ~/.aether/config.yaml.
Locais dos bancos de dados:
~/.aether/aetheraudit.db~/.aether/aether_github_audit.dbToda interação ocorre via atalhos de teclado na tela principal:
n — Nova AuditoriaAssistente de múltiplas etapas com três tipos de fonte:
Arquivo ou diretório local:
URL do GitHub:
a/n para todos/nenhum)URL do explorador de blocos / endereço:
r — Retomar AuditoriaTabela de todas as auditorias do GitHub em andamento com nome do projeto, escopo, progresso (N/M contratos) e hora da última atualização. Selecione uma para verificar contratos pendentes e iniciar como trabalho em segundo plano.
h — Histórico de AuditoriasVisão unificada de todas as auditorias passadas de ambos os bancos de dados (local + GitHub). Selecione qualquer entrada para um submenu:
p — Gerar PoCsSelecione um projeto, configure itens máximos, gravidade mínima e filtro somente por consenso. A geração de PoC é executada como um trabalho em segundo plano — acompanhe o progresso na tabela de trabalhos.
o — RelatóriosSelecione projeto, escopo e formato (markdown/json/html/all). A geração de relatório é executada como um trabalho em segundo plano.
f — Buscar ContratoEscolha uma rede entre mais de 10 blockchains suportadas, insira um endereço ou cole uma URL do explorador, busque o código-fonte verificado e, opcionalmente, audite-o imediatamente.
s — ConfiguraçõesEnter — Detalhe do TrabalhoPressione Enter em qualquer linha da tabela de trabalhos para ver:
q — SairSai da TUI. Se houver trabalhos em execução, solicita confirmação.
build_cfg() constrói blocos básicos com árvores de dominância e detecção de cabeçalhos de laço; análise de blocos de assembly; contexto do CFG alimentado na análise profunda e propagação de taintRelatedContractResolver para contexto de dependênciasHalmosRunner + HalmosPropertyGenerator para verificação formal de invariantes; integrado na validação Estágio 1.95; degradação graciosa se Halmos não estiver instaladoAccuracyTracker registra resultados de submissão e gera pesos de confiança por detector; calibração de gravidade a partir de dados históricos injetada na análise profunda./output/ — Raiz geral de saída./output/reports/ — Relatórios gerados./output/pocs/ — Suítes de PoC Foundry geradas./output/exploit_tests/ — Resultados de testes de exploraçãoaether.py — Único ponto de entrada; inicia a TUI Textualcli/interactive_menu.py — Shim fino que cria JobManager + AetherAppcli/tui/app.py — AetherApp(App) — aplicativo Textual principal com atalhos de teclado e temporizador de atualização de 1 segundocli/tui/)MainScreen (tabela de trabalhos + barra de custos), JobDetailScreen (log ao vivo + fase + metadados), NewAuditScreen, HistoryScreen, ResumeScreen, PoCScreen, ReportsScreen, FetchScreen, SettingsScreenJobsTable (DataTable consultando JobManager), CostBar (custo da sessão por provedor), LogViewer (RichLog com atualização incremental), PhaseBar (progresso com blocos Unicode)ConfirmDialog, , , , , — todas subclasses de ModalScreencli/audit_runner.py — Classe AuditRunner executando auditorias, PoCs, relatórios e auditorias GitHub em threads daemoncore/job_manager.py — Singleton JobManager: registro de trabalhos da sessão (QUEUED/RUNNING/COMPLETED/FAILED/CANCELLED)core/audit_progress.py — ContractAuditStatus com buffers de log por trabalho, ThreadDemuxWriter para captura de stdout/stderrcore/llm_usage_tracker.py — Singleton thread-safe com snapshot() para deltas de custo por trabalhocli/main.py — Classe AetherCLI (~2600 linhas) — orquestrador de auditoria interna usado por AuditRunnercore/enhanced_audit_engine.py — Motor de auditoria principal com integração de análise profundacore/post_audit_summary.py — Painel pós-auditoria com detalhamento de custo por provedorcore/deep_analysis_engine.py — Pipeline de LLM de 6 passagens mais Pass 3.5 (entre contratos): entender → superfície de ataque → invariantes → entre contratos → entre funções → adversarial → casos extremos; seleção de nível de modelo, cache, exemplos few-shot, aplicação de cadeia de pensamento, contexto do CFG na Pass 2, calibração de gravidade por ML na Pass 5, contexto de contrato relacionado por passagemcore/protocol_archetypes.py — Detecção de arquétipo de protocolo (14 tipos incluindo LIQUID_STAKING, PERPETUAL_DEX, CDP_STABLECOIN, YIELD_AGGREGATOR) com listas de verificação de vulnerabilidades por arquétipocore/exploit_knowledge_base.py — Mais de 75 padrões reais de exploração categorizados em 14 categorias (incluindo CROSS_CONTRACT, SIGNATURE_AUTH, TOKEN_INTEGRATION, PROXY_UPGRADE, TYPE_SAFETY)core/invariant_engine.py — Extração de invariantes (NatSpec + LLM + padrão) e geração de testes de invariante Foundry + geração de propriedades Halmoscore/solidity_ast.py — Análise de AST de Solidity via py-solc-x com fallback por regex para herança, visibilidade, layout de armazenamento, rastreamento de leitura/escrita de estado; construção de grafo de fluxo de controle (build_cfg(), get_dominators(), get_loop_headers())core/taint_analyzer.py — Análise de fluxo de dados / taint com 8 tipos de fonte, 12 tipos de sink, detecção de sanitização, rastreamento entre contratos, propagação no CFG ciente de ramificaçõescore/enhanced_vulnerability_detector.py — Detector principal com mais de 60 padrõescore/business_logic_detector.py, core/state_management_detector.py, core/data_inconsistency_detector.py, core/centralization_detector.py, core/looping_detector.py — Detectores inspirados em Movecore/defi_vulnerability_detector.py, core/mev_detector.py, core/oracle_manipulation_detector.py — Detectores específicos DeFi (detector DeFi integrado ao motor aprimorado na v3.5)core/arithmetic_analyzer.py, core/precision_analyzer.py, core/gas_analyzer.py, , — Analisadores especializados (analisador de precisão aprimorado com detecção de inflação de participação, direção de arredondamento, truncamento de divisão, exploração de poeira, estouro de acumulador)core/validation_pipeline.py — Pipeline de múltiplos estágios: verificação de proteção embutida, detecção de governança, validação ciente de taint (Estágio 1.85), verificação simbólica Halmos (Estágio 1.95), verificação de implantação, validação localcore/governance_detector.py, core/deployment_analyzer.py, core/llm_false_positive_filter.pycore/control_flow_guard_detector.py, core/inheritance_verifier.pycore/nodes/halmos_node.py — Nó do pipeline HalmosSymbolicNode para validação via execução simbólicacore/enhanced_llm_analyzer.py — Análise LLM estruturada (GPT/Gemini/Claude) com saída JSON e rotação multi-provedorcore/enhanced_prompts.py — Modelos de prompt de produção com carregamento dinâmico de padrões de exploração da base de conhecimento, exemplos few-shot, calibração de gravidade e aplicação de cadeia de pensamentocore/foundry_poc_generator.py (~8000 linhas) — Análise baseada em AST, feedback iterativo de compilação (até 5 tentativas), execução automática via forge test --json com análise de PoCTestResult e suporte a forkcore/llm_foundry_generator.py — Geração de testes baseada em LLM com documentação de API mock e padrões de setUp recomendadoscore/enhanced_foundry_integration.py — Validação e formatação Foundrycore/poc_templates.py — Modelos de contratos mock (MockERC20, MockOracle, MockWETH, MockFlashLoanProvider)core/poc_setup_generator.py — Geração inteligente de setUp(): extração de parâmetros de construtor, implantação de mock, manipulação de contratos atualizáveis, mint e aprovação de tokenscore/database_manager.py — DatabaseManager (auditorias locais) + AetherDatabase (auditorias GitHub)core/analysis_cache.py — Cache inteligente para análise repetida 2x mais rápidacore/accuracy_tracker.py — Loop de feedback ML: resultados de submissão, ganhos de recompensa, estatísticas de precisão por detector, geração de peso de confiançacore/github_auditor.py — Clonar repositórios, detectar frameworks, descobrir contratos, coordenar análisecore/etherscan_fetcher.py, core/basescan_fetcher.py — Buscar contratos verificados de exploradores de blocoscore/exploit_tester.py — Validar explorações contra forks AnvilFluxos de auditoria definidos em configurações YAML (configs/). Pipeline de auditoria aprimorado:
FileReaderNode -> StaticAnalysisNode -> LLMAnalysisNode -> EnhancedExploitabilityNode -> [FixGeneratorNode -> ValidationNode -> HalmosSymbolicNode] -> ReportNode
2059 testes em 76 arquivos de teste, executando em ~23 segundos:```bash python -m pytest tests/ # All tests (~23s, 2059 tests) python -m pytest tests/test_enhanced_detectors.py -v # Single file python -m pytest tests/test_enhanced_detectors.py::TestArithmeticAnalyzer -v # Single class python -m pytest tests/ -k "governance" -v # Pattern match python -m pytest tests/ --cov=core --cov-report=html # With coverage
## Solução de Problemas
- **Foundry não encontrado** — Certifique-se de que `forge`/`anvil` estão instalados e no `PATH` (`foundryup` e `export PATH="$PATH:$HOME/.foundry/bin"`)
- **solc não encontrado** — Instale `solc-select` e as versões necessárias: `solc-select install 0.8.20 latest`
- **Funcionalidades LLM não funcionando** — Verifique se as chaves de API estão definidas. Alguns modelos podem não estar disponíveis na sua conta/região; o sistema faz fallback automaticamente
- **Banco de dados não encontrado** — Para relatórios do GitHub, certifique-se de que o fluxo de auditoria foi executado primeiro
- **Textual não carregando** — Execute `pip install textual>=1.0.0` se estiver faltando
---
## Registro de Alterações
### v4.7 — Execução Automática de PoC, Verificação Simbólica Halmos, Análise de CFG e Ciclo de Feedback ML
- **Execução automática de PoC** — PoCs Foundry geradas são compiladas e executadas automaticamente via `forge test --json` com análise de `PoCTestResult` e suporte a fork-mode; fase `POC_TESTING` para acompanhamento ao vivo na TUI
- **Execução simbólica Halmos** — Pipeline node `HalmosRunner`, `HalmosPropertyGenerator` e `HalmosSymbolicNode` (estágio de validação 1.95) para verificação formal de invariantes; degradação graciosa se Halmos não estiver instalado
- **Análise de grafo de fluxo de controle** — `BasicBlock`, `CFGEdge`, `ControlFlowGraph` com `build_cfg()`, árvores de dominância, detecção de cabeçalhos de loop, análise de blocos assembly; contexto CFG injetado na Pass 2 de análise profunda; propagação de taint ciente de ramos
- **Ciclo de feedback ML** — `AccuracyTracker` registra resultados de submissões com `get_detector_accuracy()` e `get_detector_weights()` para estatísticas por detector; ajuste de peso de confiança em `EnhancedVulnerabilityDetector`; calibração de gravidade na Pass 5 de análise profunda
- **Contexto de contratos relacionados** — `RelatedContractResolver` descobre contratos pai, interface, biblioteca e dependência com sistema de orçamento por passagem (200K/100K/50K caracteres); sumarização de bibliotecas padrão; descoberta de irmãos em arquivo único
- **Limpeza técnica** — 8.500 linhas de código morto removidas: deletados `ai_ensemble.py`, `audit_engine.py`, `fork_verifier.py`; removidas todas as referências a ai_ensemble do CLI, audit runner, telas TUI, gerador de relatórios
- **2059 testes** passando em 76 arquivos de teste
### v4.0 — Análise de AST Solidity, Análise de Taint e Rastreamento de Fluxo de Dados
- **Parser de AST Solidity** — integração total com solc via py-solc-x para resolução adequada de herança, visibilidade de funções, layout de armazenamento, rastreamento de leitura/escrita de estado; fallback gracioso com regex
- **Mecanismo de análise de taint** — rastreia entradas controladas pelo usuário através de 8 tipos de fonte para 12 sinks perigosos com detecção de sanitizadores e rastreamento entre contratos
- **Integração no pipeline** — dados AST alimentam a Pass 1, dados de taint alimentam a Pass 2, estágio de validação 1.85 ciente de taint
- **1839 testes** passando em 67 arquivos de teste (~23 segundos)
### v3.8 — Detecção Aprimorada e Geração de PoC
- **Análise entre contratos** — nova Pass 3.5 com analisador de relacionamento entre contratos, detecção de limites de confiança, agrupamento union-find
- **Banco de peculiaridades de tokens** — 12 categorias de comportamentos não padrão ERC-20 (fee-on-transfer, rebasing, ERC-777, etc.)
- **Mecanismo de precisão aprimorado** — detecção de inflação de participação, análise de direção de arredondamento, rastreamento de truncamento de divisão, exploração de poeira, estouro de acumulador
- **Geração de PoC executável** — biblioteca de contratos mock (ERC20, Oracle, WETH, FlashLoan), setUp() inteligente, máximo de tentativas de compilação 3→5
- **Exemplos few-shot** nas Passes 3, 4, 5 de análise profunda com exemplos reais de vulnerabilidades e falsos positivos
- **Calibração de gravidade** — limites concretos (Crítico >$1M, Alto >$100K, Médio >$10K, Baixo teórico)
- **Imposição de cadeia de pensamento** — 5 etapas obrigatórias de raciocínio antes da saída JSON
- **Conjunto de IA aposentado** — substituído por rotação multi-provedor nas passagens de análise profunda
- **Rotação multi-provedor** — Gemini Flash (passagens baratas), Anthropic Claude (raciocínio), OpenAI GPT (diversidade)
- **1682 testes** passando
### v3.7 — Arquétipos Expandidos e Padrões de Exploração
- **4 novos arquétipos de protocolo** — LIQUID_STAKING, PERPETUAL_DEX, CDP_STABLECOIN, YIELD_AGGREGATOR (10→14 total)
- **25 novos padrões de exploração** — CROSS_CONTRACT, SIGNATURE_AUTH, TOKEN_INTEGRATION, PROXY_UPGRADE, TYPE_SAFETY categorias (50→75 total)
- **Scanner de contratos melhorado** — abstracts agora são pontuados, ajustados limiares para suporte a monorepo
- **1528 testes** passando
### v3.5.2 — Redução de Falsos Positivos
- **Detecção de scripts na descoberta de contratos** — arquivos em `script/`/`scripts/`, arquivos `.s.sol`, e contratos que importam `forge-std/Script.sol` ou herdam `is Script` são marcados como scripts de implantação e excluídos da análise LLM de vulnerabilidades. Elimina toda uma classe de falsos positivos de helpers de implantação Foundry sendo analisados como código de produção
- **Marcadores de contexto de arquivo em prompts LLM** — conteúdo combinado agora inclui marcadores `// FILE: <nome>` por arquivo, e as passagens de análise profunda 1 e 3 recebem um cabeçalho `## Project Files` rotulando cada arquivo como `[PRODUCTION]` ou `[DEPLOYMENT SCRIPT]` para que os LLMs foquem no código certo
- **Detecção dinâmica de modificadores** — `GovernanceDetector` agora extrai modificadores de controle de acesso personalizados definidos no contrato (ex.: `onlyDistributor`, `onlyMinter`, `authorized`) varrendo definições de modificadores com prefixo `only` ou verificações `msg.sender`. Estes são mesclados com a lista de modificadores codificada para `has_access_control()` e `is_governance_function()`
- **Deduplicação em escopo de função** — `VulnerabilityDeduplicator` agora agrupa descobertas por `(function_name, vuln_type)` quando o código do contrato está disponível, substituindo a correspondência exata de linha frágil que perdia duplicatas em linhas adjacentes na mesma função. Faz fallback para agrupamento em baldes de 20 linhas quando o contexto da função não está disponível
- **Tolerância de linha alargada no conjunto de IA** — tolerância de `_findings_match_fuzzy()` aumentada de ±5 para ±15 linhas para capturar duplicatas da mesma função entre agentes
- **Padrão de falso positivo de construtor atômico** — `_check_constructor_context()` agora detecta quando um contrato é implantado (`new`/`Create2`) e inicializado (`.initialize()`) no mesmo construtor, marcando preocupações de front-running como falsos positivos, pois as operações são atômicas
- **Padrão de validação LLM #18** — adicionado "Implantação + Inicialização Atômica" à lista de verificação de 18 padrões de falso positivo no prompt de validação LLM
- **1489 testes** passando em 56 arquivos de teste (~40 segundos), acima de 1461
### v3.5 — Mecanismo de Análise Profunda
- **Pipeline de análise profunda de 6 passagens** — substitui chamadas LLM únicas por raciocínio estruturado multi-passo: Compreensão do Protocolo → Mapeamento da Superfície de Ataque → Análise de Violação de Invariantes → Interação entre Funções → Modelagem Adversarial → Casos Limite e de Borda. Cada passagem recebe contexto acumulado das passagens anteriores. Passagens 1-2 armazenadas em cache por hash de conteúdo para re-auditorias rápidas
- **Detecção de arquétipo de protocolo** — identifica automaticamente o tipo de protocolo (ERC-4626 Vault, Lending Pool, DEX/AMM, Bridge, Staking, Governance, Oracle, NFT Marketplace, Token, Orderbook) com listas de verificação de vulnerabilidades por arquétipo extraídas de explorações reais
- **Base de conhecimento de exploração** — 50+ padrões de exploração categorizados em 9 categorias (Inflação/Compartilhamento, Reentrância, Oracle, Governança, Ponte, Precisão/Arredondamento, Controle de Acesso, Econômico/DeFi, Lógico) substituindo a lista estática de 10 padrões. Cada padrão inclui indicadores de código, proteções ausentes, mecanismo de exploração passo a passo, precedentes reais com valores em dólar e aplicabilidade do arquétipo
- **Mecanismo de invariantes** — extrai invariantes de protocolo de tags NatSpec `@invariant`, análise LLM e 6 detectores de padrões comuns (conservação do vault, rastreamento de saldo, contabilidade de fornecimento, produto constante AMM, colateralização de empréstimos, recompensas de staking). Gera suites de teste Foundry `invariant_*()` como provas formais lite
- **Calibração de gravidade sensível ao contexto** — substitui rebaixamentos genéricos de gravidade por verificações de contexto de risco. Descobertas em blocos `unchecked{}`, perto de transferências de valor (`call{value:}`, `_mint`, `safeTransfer`), cálculos de preço ou contextos de oráculo preservam sua gravidade original
- **Correção do portão de validação** — descobertas `"pending"` agora passam para análise LLM com flag `needs_llm_validation`. Apenas descobertas explicitamente `"false_positive"` são descartadas (anteriormente, todas as descobertas não `"validated"` eram filtradas silenciosamente)
- **Penalidade de confiança ciente de especialista** — descobertas de agente único correspondentes à especialização do agente (ex.: AnthropicReasoningSpecialist + ataques econômicos) recebem penalidade -0,05; descobertas não especialistas mantêm -0,15
- **Correção de dedup por balde de linha** — removido o agrupamento `(line // 10) * 10` que causava problemas arbitrários de limite (linhas 9 e 11 em baldes diferentes). Dedup agora usa apenas tipo de vulnerabilidade normalizado, com `_findings_match_fuzzy()` lidando com proximidade de linha
- **Integração do detector DeFi** — `DeFiVulnerabilityDetector` (análise semântica de presença/ausência em dois estágios) agora executa no mecanismo de auditoria aprimorado junto com `EnhancedVulnerabilityDetector`
- **Padrões de exploração dinâmicos em prompts** — `enhanced_prompts.py` agora carrega padrões de ExploitKnowledgeBase filtrados por área de foco, com fallback para padrões estáticos
- **1461 testes** passando em 55 arquivos de teste (~50 segundos)
### v3.2 — Estatísticas de Trabalho e Correções de UI
- **Corrigido exibição sempre zero de descobertas/custos/estatísticas LLM do trabalho** — audit worker agora captura o dicionário de resultados de `run_audit()` para extrair contagem de descobertas; removido `LLMUsageTracker.reset()` que orfanava referências singleton; todos os 4 tipos de worker calculam estatísticas por trabalho a partir de deltas de snapshot
- **Corrigido artefato de repintura da UI ao trocar de janela** — substituídos contêineres roláveis por `Container` simples + `overflow: hidden` no JobDetailScreen para evitar quadros de compositor obsoletos
- **Movido "Job Details" para border_title** para renderização mais limpa do painel de metadados
- Removido `CLAUDE.md` do rastreamento git
### v3.0 — TUI Textual Totalmente Inline
- **Zero chamadas `app.suspend()`** — a TUI nunca cai para um terminal bruto; toda operação é executada inline
- **Geração de PoC em segundo plano** — executada como thread daemon via `AuditRunner.start_poc_generation()` com saída ao vivo no JobDetailScreen
- **Geração de relatório em segundo plano** — executada como thread daemon via `AuditRunner.start_report_generation()` com saída ao vivo
- **Auditorias GitHub em segundo plano** — seleção de escopo via diálogos Textual, auditoria executada como thread daemon via `AuditRunner.start_github_audit()`
- **ContractSelectorDialog** — modal multi-seleção filtrável quase em tela cheia substituindo `ScopeManager.interactive_select()` baseado em curses. Espaço para alternar, `a`/`n` para todos/nenhum, digitar para filtrar, contratos auditados anteriormente com código de cores
- **GitHubAuditHelper** — wrapper decomposto em torno de `GitHubAuditor`/`AetherDatabase` fornecendo operações atômicas (`clone_and_discover`, `get_scope_state`, `save_new_scope`, `get_pending_contracts`, `handle_reaudit`) chamáveis a partir de telas Textual
- **Configurações inline** — configuração de chave de API e modelo via TextInputDialog/SelectDialog nativos, sem assistente de configuração externo
- **Gerenciamento de escopo GitHub inline** — continuar, reauditar ou criar novo escopo via SelectDialog; seleção de contrato via ContractSelectorDialog
- **6 telas reescritas** — PoCScreen, ReportsScreen, SettingsScreen, NewAuditScreen, HistoryScreen, ResumeScreen — todas totalmente inline
- **770 testes** passando em 50 arquivos de teste
### v2.2 — Dashboard TUI Textual
- TUI Textual em tela cheia com aplicativo persistente, atalhos de teclado e temporizador de atualização de 1 segundo
- MainScreen com tabela de trabalhos ao vivo e barra de custo da sessão
- JobDetailScreen com visualizador de log ao vivo, barra de progresso de fase e metadados
- Diálogos modais (confirmar, entrada de texto, seleção, caixa de seleção, seletor de caminho) substituindo prompts questionary
- Execução de auditoria em segundo plano via AuditRunner com captura de saída ThreadDemuxWriter
- Singleton JobManager para registro de trabalhos da sessão
- Rastreamento de custo por trabalho via snapshots LLMUsageTracker
### v2.1 — Auditorias Paralelas, Remoção do Slither & Limpeza de Testes
- Mecanismo de auditoria paralela — execute múltiplos contratos simultaneamente com `ThreadPoolExecutor`, configurável até 8 workers paralelos
- Rastreamento de progresso thread-safe — `ContractAuditStatus` com bloqueio, `ThreadDemuxWriter` para multiplexação de stdout
- Resumo pós-auditoria — visualização consolidada de resultados após conclusão das auditorias paralelas
- Rastreamento de uso LLM — rastreie uso de tokens, custos e chamadas de API nos três provedores
- Slither totalmente removido — todas as dependências, código de integração e testes deletados (~1200 linhas); detectores baseados em padrão + ABI Foundry + regex são as únicas ferramentas de análise
- Limpeza do conjunto de testes — removidos 40+ arquivos de teste antigos/lentos/integração
### v2.0 — TUI de Menu Interativo
- TUI interativa baseada em menu como interface principal
- Assistente de auditoria guiada com seleção de fonte, caixas de seleção de recursos e confirmação
- Capacidade de retomar auditoria para auditorias GitHub em andamento
- Navegador unificado de histórico de auditoria nos bancos de dados locais e GitHub
- Geração integrada de PoC e fluxos de trabalho de relatório a partir do menu
- Busca de contratos multi-chain com auditoria imediata opcional
- Gerenciamento de configurações a partir do menu
- Inicialização/retorno do console a partir do menu
### v1.5 — Suporte LLM de Três Provedores e Análise Aprimorada
- Integração com Anthropic Claude (Sonnet 4.5, Opus 4.6, Haiku 4.5) como terceiro provedor LLM
- Conjunto de IA de 6 agentes: 2 OpenAI + 2 Gemini + 2 agentes especialistas Anthropic
- Fallback automático entre provedores para máxima disponibilidade
- Modelos OpenAI atualizados (GPT-5.3) e modelos Google Gemini (3.0 Flash/Pro)
- Assistente de configuração atualizado com configuração de chave de API Anthropic e seleção de modelo
- Corrigido comando CLI quebrado generate-foundry
---
## Licença
Aether é distribuído sob a **Licença MIT**. Consulte o arquivo [LICENSE](https://github.com/l33tdawg/aether/blob/HEAD/LICENSE) para obter detalhes.
## Autor
**Dhillon Andrew Kannabhiran** (@l33tdawg)
- Email: [email protected]
- Twitter: [@l33tdawg](https://twitter.com/l33tdawg)
- GitHub: [@l33tdawg](https://github.com/l33tdawg)
## Contribuindo
Contribuições são bem-vindas! Sinta-se à vontade para enviar issues, fazer fork do repositório e criar pull requests.
| Categoria | Severidade | Tokens Exemplo |
|---|
| Taxa na transferência | ALTA | USDT, STA, PAXG |
| Tokens rebasáveis | ALTA | stETH, AMPL, OHM |
| Callbacks ERC-777 | ALTA | imBTC |
| Mintável via flash loan | ALTA | DAI |
| Retorno não padrão | MÉDIA | USDT antigo |
| Tokens com lista de bloqueio | MÉDIA | USDC, USDT |
| Tokens pausáveis | MÉDIA | USDC |
| Tokens com baixos decimais | MÉDIA | USDC (6), WBTC (8) |
| Hooks de transferência | MÉDIA | LINK (ERC-677) |
| Corrida de aprovação | BAIXA | Vários |
| Múltiplos pontos de entrada | BAIXA | TUSD |
| Tokens atualizáveis | BAIXA | USDC v2 |
| Passagem | Propósito | Nível do Modelo |
|---|
| Passagem 1 | Compreensão do Protocolo — o que o protocolo É, seus invariantes, fluxos de valor, premissas de confiança | Barato (em cache) |
| Passagem 2 | Mapeamento da Superfície de Ataque — todos os pontos de entrada, leituras/gravações de estado, janelas de reentrância | Barato (em cache) |
| Passagem 3 | Análise de Violação de Invariantes — verificar sistematicamente cada invariante contra cada caminho de código | Forte |
| Passagem 4 | Interação entre Funções — análise de dependência de estado, dependências temporais, sequências de flash loan | Forte |
| Passagem 5 | Modelagem Adversarial — perspectiva explícita do atacante com flash loans, MEV, múltiplas contas | Forte |
| Passagem 6 | Casos Limite & Extremos — primeiras/últimas operações, valores zero, valores máximos, operações autorreferenciais | Médio |
| Arquétipo | Exemplos de Itens da Lista de Verificação |
|---|
| Vault ERC-4626 | Inflação do primeiro depositante, direção de arredondamento, manipulação de preço de participação via doação |
| Pool de Empréstimo | Manipulação de preço de oráculo, manipulação de limite de liquidação, cascata de dívidas incobráveis, manipulação de taxa de juros |
| DEX/AMM | Manipulação do primeiro LP, ataques sandwich, oráculo de preço via reservas |
| Bridge | Replay entre cadeias, comprometimento de validador, incompatibilidade de mapeamento de tokens, falsificação de prova de retirada |
| Staking | Manipulação de cálculo de recompensa, overflow de taxa de recompensa, reentrância de unstaking |
| Governança | Ataques de governança com flash loan, bypass de timelock, manipulação de quórum |
| Oráculo | Preço desatualizado, desvio de preço, inatividade do sequenciador L2 |
| Categoria | Padrões | Exemplos |
|---|
| Ataques de Inflação/Participação | 6 | Primeiro depositante ERC-4626, inflação de token LP, manipulação baseada em doação |
| Reentrância | 7 | Clássica, somente leitura, entre funções, entre contratos, hooks ERC-777/1155, callbacks de flash loan |
| Oráculo | 5 | Manipulação de preço à vista, manipulação de TWAP, desatualização, incompatibilidade de decimais, sequenciador L2 |
| Governança | 4 | Votação com flash loan (Beanstalk), bypass de timelock, manipulação de quórum |
| Bridge | 5 | Replay de mensagem (Nomad), comprometimento de validador (Ronin), mapeamento de tokens (Wormhole) |
| Precisão/Arredondamento | 4 | Direção de arredondamento, overflow não verificado, taxa na transferência, desvio de token rebasável |
| Controle de Acesso | 5 | Proxy não inicializado, colisão de armazenamento, colisão de seletor, injeção de delegatecall |
| Econômico/DeFi | 8 | Ataques sandwich, liquidez JIT, cascata de dívidas incobráveis, bomba de dados de retorno, replay de assinatura |
| Lógica | 6 | Off-by-one, falta de deadline/slippage, retornos não verificados, contabilidade de autotransferência |
pofsq| Auditorias de repositório GitHub com escopo pré-selecionado |
poc | Geração de prova de conceito Foundry |
report | Geração de relatório de auditoria (markdown/json/html) |
RelatedContractResolver descobre contratos pai, interface, biblioteca e dependência; sistema de orçamento por passagem com sumarização de bibliotecas padrãoforge test --json com suporte a forkTextInputDialogSelectDialogCheckboxDialogPathDialogContractSelectorDialogGitHubAuditHelper — operações de auditoria GitHub decompostas para integração TUItheme.tcss — CSS Textual com tema cianocore/cross_contract_analyzer.py — Análise de relacionamento entre contratos com detecção de limites de confiança, agrupamento union-find e RelatedContractResolver para contexto de dependênciascore/token_quirks.py — Banco de dados de peculiaridades de tokens (12 categorias de comportamentos ERC-20 não padrão)core/halmos_runner.py — Executor de execução simbólica Halmos para verificação formalcore/halmos_property_generator.py — Gera automaticamente propriedades de verificação Halmos a partir de invariantescore/accuracy_tracker.py — Loop de feedback ML: rastreamento de precisão por detector, ajuste de peso de confiança, calibração de gravidadecore/input_validation_detector.pycore/data_decoding_analyzer.pycore/token_quirks.py