Skip to content

[TAREFA] [PoC-PREP] Preparar Ambiente e Invariantes para Testes DAST #19

@Eduwilll

Description

@Eduwilll

Contexto e Justificativa

Diferente do SAST, as ferramentas DAST (fuzzing, simbólica) não encontram vulnerabilidades "sozinhas". Elas precisam de um conjunto de regras, propriedades ou invariantes para testar. Esta tarefa visa criar essas condições de teste para que possamos avaliar as ferramentas de forma justa.

Critérios de Aceite (Definition of Done)

  • Utilizar o mesmo repositório poc-sast-dast-sca ou criar um novo (poc-dast-contracts) se for mais adequado.
  • Para um dos contratos vulneráveis (e.g., UnsafeToken.sol), escrever um conjunto de invariantes que a ferramenta de fuzzing deverá testar. Um invariante é uma propriedade que deve ser sempre verdadeira.
    • Exemplo de invariante: "O totalSupply do token nunca pode diminuir."
    • Exemplo de propriedade: "Nenhum usuário, exceto o dono, pode chamar a função mint()."
    • Exemplo 1 (Token): "A soma de todos os balances nunca deve exceder o totalSupply."
    • Exemplo 2 (Vault): "A função withdraw nunca deve permitir que um usuário retire mais do que depositou."
  • Documentar claramente quais vulnerabilidades do GABARITO.md se espera que a quebra desses invariantes consiga detectar.
  • (Opcional, mas recomendado) Criar uma versão "corrigida" do contrato vulnerável. Isso permitirá testar se as ferramentas param de encontrar a vulnerabilidade após a correção.
  • Utilizar Docker para criar um ambiente de teste consistente (Dockerfile) que instale todas as ferramentas DAST candidatas (Echidna, Foundry, Manticore).

Tipo de Trabalho

Desenvolvimento 💻

Recursos Adicionais (Opcional)

No response

Metadata

Metadata

Assignees

Type

No fields configured for Task.

Projects

Status

Ready

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions