Skip to content

Relatório Comparativo ‐ Imagens Docker

Tiago de Paula edited this page Nov 12, 2025 · 1 revision

Índice


Relatório Comparativo — Imagens Docker

Resumo Executivo

Métrica Destaque Observações
Imagem mais leve ghcr.io/pipeline-devsecops-para-blockchain-2025/poc-sast-dast-sca/slither 131 MB
Imagem mais rápida ghcr.io/crytic/slither 33.31 s
Imagem mais segura ghcr.io/pipeline-devsecops-para-blockchain-2025/poc-sast-dast-sca/slither Não tem vulnerabilidades de alto risco

Escopo

  • Avaliar rapidamente quatro imagens Docker usadas na pipeline de segurança.
  • Comparar tamanho, desempenho no Slither e vulnerabilidades detectadas por Trivy.

Ambiente

Item Valor
Data 07/11/2025
Host Docker Local
CPU / RAM Intel i7-1185G7 / 32 GB
SO / Kernel Arch Linux / 6.17.7-zen1-1-zen
Docker versão 28.5.2, build ecc694264d

Imagens Avaliadas

Imagem Tag Digest
ghcr.io/crytic/slither 0.11.3 sha256:bd39e6a2fdbfa0237c9eeac16ad52de1ddd310e185091dd8272a962d2a53b0b5
ghcr.io/pipeline-devsecops-para-blockchain-2025/poc-sast-dast-sca/slither 0.11.3-solc0.8.30 sha256:7348e202a0f7bf3601e3c19dd94b746c636f13980db531f704ad13e16e1bdb30
smartbugs/slither 0.11.3 sha256:475f5b72c25df315c758fa5b0a0b6e3ba46663bec7735480daef257fa8089d2b
trailofbits/eth-security-toolbox nightly-20251103 sha256:a4319ed47c90d45d680709f227b1302bad21009fb79356be1b1ef5db055b58ca

Métricas de Tamanho

Extraído do Docker Manifest de cada imagem.

Imagem Tamanho comprimido (MB) Tamanho descompactado (MB)
ghcr.io/crytic/slither:0.11.3 92 250
ghcr.io/pipeline-devsecops-para-blockchain-2025/poc-sast-dast-sca/slither:0.11.3-solc0.8.30 45 131
smartbugs/slither:0.11.3 157 258
trailofbits/eth-security-toolbox:nightly-20251103 362 1 030

Benchmark

Imagem Tempo total (s) CPU média (%) Pico de RAM (MiB)
ghcr.io/crytic/slither:0.11.3 33.31 96.79 781.6
ghcr.io/pipeline-devsecops-para-blockchain-2025/poc-sast-dast-sca/slither:0.11.3-solc0.8.30 33.39 96.78 792.4
smartbugs/slither:0.11.3 37.61 96.78 788.1
trailofbits/eth-security-toolbox:nightly-20251103 33.47 96.34 794.1

Os benchmarks foram executados nos contratos de teste do poc-sast-dast-sca, com:

$ forge build --build-info
$ docker volume create src
$ docker run --rm -it -v $PWD:/src -v src:/dst busybox cp -a /src/. /dst
$ docker run --rm -it -v src:/dst busybox chmod -R go=u /dst
$ docker run --rm -it -v src:/src IMAGE:TAG slither --json /dev/null --ignore-compile /src

As métricas foram coletadas com docker stats --format json e processadas com jq:

$ perl -pe 's/\e\[[0-9;]*[A-Za-z]//g' stats.json | jq -s '(map(.CPUPerc | rtrimstr("%") | tonumber) | add) / length'
$ perl -pe 's/\e\[[0-9;]*[A-Za-z]//g' stats.json | jq -s '
    def to_bytes:
      capture("(?<value>[0-9.]+)(?<unit>[KMG]i?)B") as $m
      | ($m.value | tonumber) *
        (if   $m.unit == "Ki" then 1024
          elif $m.unit == "Mi" then 1024*1024
          elif $m.unit == "Gi" then 1024*1024*1024
          elif $m.unit == "Ti" then 1024*1024*1024*1024
          elif $m.unit == "K"  then 1000
          elif $m.unit == "M"  then 1000*1000
          elif $m.unit == "G"  then 1000*1000*1000
          else 1 end);

    (map(.MemUsage | split(" / ")[0] | to_bytes) | max)
'

Execução do Slither

Executado em poc-sast-dast-sca@a7019c7.

Imagem Principais alertas Resultados totais
ghcr.io/crytic/slither:0.11.3 arbitrary-send-eth, reentrancy-eth, incorrect-shift, shadowing-state 580
ghcr.io/pipeline-devsecops-para-blockchain-2025/poc-sast-dast-sca/slither:0.11.3-solc0.8.30 arbitrary-send-eth, reentrancy-eth, incorrect-shift, shadowing-state 580
smartbugs/slither:0.11.3 arbitrary-send-eth, reentrancy-eth, incorrect-shift, shadowing-state 580
trailofbits/eth-security-toolbox:nightly-20251103 arbitrary-send-eth, reentrancy-eth, incorrect-shift, shadowing-state 580

Scan Trivy

Feito com Trivy 0.67.2, banco de dados atualizado em 2025-11-07 00:35:55.664165884 UTC.

Imagem Total CRITICAL HIGH MEDIUM LOW
ghcr.io/crytic/slither:0.11.3 98 0 7 60 31
ghcr.io/pipeline-devsecops-para-blockchain-2025/poc-sast-dast-sca/slither:0.11.3-solc0.8.30 1 0 0 1 0
smartbugs/slither:0.11.3 24 2 6 14 2
trailofbits/eth-security-toolbox:nightly-20251103 47 0 4 15 28

Conclusão

Critério Imagem recomendada Justificativa
Peso ghcr.io/pipeline-devsecops-para-blockchain-2025/poc-sast-dast-sca/slither 45 MB comprimidos / 131 MB descompactados — cabe confortável em runners menores.
Performance ghcr.io/crytic/slither Menor tempo total (33,31 s) e ligeira vantagem em CPU média (96,79 %).
Segurança ghcr.io/pipeline-devsecops-para-blockchain-2025/poc-sast-dast-sca/slither Apenas 1 achado MEDIUM, nenhum HIGH/CRITICAL.
Escolha geral ghcr.io/pipeline-devsecops-para-blockchain-2025/poc-sast-dast-sca/slither Equilibra footprint baixo, resultados de Slither equivalentes e superfície de CVEs significativamente menor.

A imagem interna baseada no Slither oficial entrega o menor footprint e praticamente o mesmo tempo de análise (36,16 s) que as demais, além de reduzir drasticamente alertas do Trivy (1 CVE MEDIUM contra 7 HIGH na imagem pública). Isso facilita cache em runners e tende a baixar o tempo total de pipeline por conta de pulls menores.

Se a etapa exigir o menor tempo de execução possível, ghcr.io/crytic/slither pode ser adotada como referência (33,31 s), mas o ganho de ~3 s não compensa o aumento de 47 MB no pull e os 68 achados adicionais de segurança. Para ambientes endurecidos ou pipelines compartilhados, manter a imagem própria como padrão e usar a oficial apenas em investigações pontuais parece o melhor trade-off.