web3-audit
Faz seu agente revisar códigos de contratos inteligentes. Ele procura por erros de segurança em sistemas de blockchain.
O que ela faz
Esta ferramenta ajuda a verificar a segurança de códigos de contratos inteligentes (programas que rodam em blockchain). Ela procura por falhas comuns que podem ser exploradas por hackers.
Quando usar
- ✓Ao revisar um novo código de contrato inteligente.
- ✓Ao investigar um possível problema de segurança em um contrato.
- ✓Para aprender sobre vulnerabilidades comuns em contratos.
Exemplo do que pedir para a IA
“Analise este contrato para encontrar falhas de segurança comuns.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
A ferramenta examina o código em busca de padrões conhecidos de vulnerabilidades, como problemas de controle de acesso ou inconsistências em como os dados são atualizados. Ela compara o código com exemplos de falhas reais.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add sickn33/agentic-awesome-skills --skill web3-auditOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/web3-audit/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
⚠️ USO AUTORIZADO APENAS Esta habilidade é apenas para fins educacionais ou avaliações de segurança autorizadas. Você deve ter permissão explícita e por escrito do proprietário do sistema antes de usar esta ferramenta. O uso indevido desta ferramenta é ilegal e estritamente proibido.
Portão de confirmação obrigatório Antes de executar qualquer comando que sonde, explore, altere, persista, extraia dados ou tente acesso a credenciais contra um alvo:
- Peça ao usuário para declarar o URL, IP, conta ou recurso exato do alvo.
- Peça ao usuário para confirmar a autorização por escrito e o escopo permitido.
- Mostre o(s) comando(s) exato(s) e explique seu efeito esperado.
- Aguarde a confirmação explícita na conversa atual.
Sem essa confirmação, permaneça somente leitura e forneça apenas orientação defensiva. Prefira um sandbox, VM descartável ou laboratório controlado.
AUDITORIA DE CONTRATO INTELIGENTE WEB3
10 classes de bugs. Sinais de "desligamento" antes de mergulhar. Modelo de PoC Foundry. Exemplos pagos reais.
SINAIS DE "DESLIGAMENTO" ANTES DE MERGULHAR (verifique ANTES de qualquer revisão de código)
Lição ZKsync: $322M TVL + auditoria OZ + 750K LOC + 5 sessões = 0 descobertas. Pontes grandes e bem auditadas são extremamente difíceis.
- TVL < $500K → pagamento máximo limitado para o esforço
- 2+ auditorias de ponta (Halborn, ToB, Cyfrin, OpenZeppelin) em protocolo simples → bugs já encontrados
- Protocolo < 500 linhas, fluxo único A→B→C → superfície de ataque mínima
- Fórmula:
max_realistic_payout = min(10% × TVL, program_cap)— se < $10K, pule
Desligamento suave: auditoria OZ/ToB/Cyfrin na versão atual + codebase > 500K LOC → espere 40+ horas para talvez 1 descoberta. Prossiga apenas se o piso da recompensa > $50K E você tiver expertise específica do protocolo.
Pontuação do alvo (vá se >= 6/10):
- TVL > $10M: +2
- Programa Immunefi com Crítico >= $50K: +2
- Nenhuma auditoria de ponta na versão atual: +2
- < 30 dias desde a implantação: +1
- Protocolo que você já caçou antes: +1
- Código fonte + comentários natspec: +1
- Proxies atualizáveis: +1
A ÚNICA REGRA
"Leia TODAS as funções irmãs. Se
vote()tiver um modificador, verifiquepoke(),reset(),harvest(). O modificador ausente na irmã É o bug."
Esta única regra explica 19% de todas as descobertas Críticas.
1. DESSINCRONIZAÇÃO DE ESTADO DE CONTABILIDADE
#1 Classe de bug Crítico — 28% de todos os Críticos no Immunefi.
O que é
Duas variáveis de estado que deveriam permanecer sincronizadas. Um caminho de código atualiza A, mas esquece B. Código posterior lê ambos e toma decisões com base em B desatualizado.
Real Value = A - B
If A updated but B isn't → Real Value appears larger → phantom value
Padrões de Causa Raiz
Variante 1: Rendimento Fantasma (protocolo Yeet — 35 relatórios duplicados)
function startUnstake(uint256 amount) external {
totalSupply -= amount; // decremented BEFORE transfer
// aToken.balanceOf(this) still reflects old value
// yieldAmount = aToken.balanceOf - totalSupply = phantom yield
}
Variante 2: Caminho Rápido Ignora Atualização de Estado (Alchemix V3)
function claimRedemption(uint256 tokenId) external {
if (transmuter.balance >= amount) {
transmuter.transfer(user, amount);
_burn(tokenId);
return; // EARLY RETURN — cumulativeEarmarked, _redemptionWeight, totalDebt never updated
}
// Slow path: updates all state vars correctly
alchemist.redeem(...);
}
Variante 3: Atualização Ocorre na Ordem Errada (Alchemix)
function deposit(uint256 amount) external {
_shares = (amount * totalShares) / totalAssets; // calculated BEFORE deposit
totalAssets += amount; // assets added AFTER shares calculated → wrong rate
}
Padrões Grep
# Find all accounting variables
grep -rn "totalSupply\|totalShares\|totalAssets\|totalDebt\|cumulativeReward\|rewardPerShare" contracts/
# Find all early returns in claim/redeem functions
grep -rn "\breturn\b" contracts/ -B3 | grep -B3 "if\b"
# For each early return: which state updates in normal path are skipped?
2. CONTROLE DE ACESSO
#2 Crítico — 19% dos Críticos. $953M perdidos apenas em 2024.
Variante 1: Modificador Ausente na Função Irmã
function vote(uint256 tokenId) external onlyNewEpoch(tokenId) { // guarded
function reset(uint256 tokenId) external onlyNewEpoch(tokenId) { // guarded
function poke(uint256 tokenId) external { // NO GUARD → infinite FLUX inflation
}
Variante 2: Verificação Errada (Existência vs. Propriedade)
function split(uint256 tokenId, uint256 amount) external {
…
Perguntas frequentes
O que é um contrato inteligente?
É um programa de computador que roda em uma blockchain. Ele executa automaticamente ações quando certas condições são atendidas, sem precisar de intermediários.
O que é uma blockchain?
É um livro-razão digital, descentralizado e distribuído, que registra transações de forma segura e transparente.
Por que a segurança de contratos inteligentes é importante?
Contratos inteligentes lidam com valor (dinheiro, ativos digitais). Falhas de segurança podem levar à perda desses valores.
Detalhes
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #4546
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-skills
Skills parecidas
django-security
Ajuda seu agente a implementar práticas de segurança em aplicações Django. Ele foca em autenticação, autorização e prevenção contra ataques comuns, garantindo um código mais seguro.
affaan-m/ECC
laravel-security
Ajuda seu agente a proteger aplicações Laravel contra ameaças. Implementa práticas de segurança para autenticação, autorização e prevenção de ataques comuns.
affaan-m/ECC
module-regression
Ajuda seu agente a gerenciar mudanças em projetos grandes. Garante que alterações em uma parte do código não quebrem outras partes.
affaan-m/ECC