Pular para o conteúdo
Skillpedia
Segurança48 mil · #4546

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

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/web3-audit/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/web3-audit/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
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-audit

Ou 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.md
Conteú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:

  1. Peça ao usuário para declarar o URL, IP, conta ou recurso exato do alvo.
  2. Peça ao usuário para confirmar a autorização por escrito e o escopo permitido.
  3. Mostre o(s) comando(s) exato(s) e explique seu efeito esperado.
  4. 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.

  1. TVL < $500K → pagamento máximo limitado para o esforço
  2. 2+ auditorias de ponta (Halborn, ToB, Cyfrin, OpenZeppelin) em protocolo simples → bugs já encontrados
  3. Protocolo < 500 linhas, fluxo único A→B→C → superfície de ataque mínima
  4. 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, verifique poke(), 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

Descrição original do autor

Smart contract security audit

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#4546
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas