Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
dasel-hardened-container — Pacote e imagem Endurecido dasel v3.3.1 construídos via Melange e apko. Corrigindo CVE-2026-33320. | Kitploit
Ferramentas/GitHubGitHub/nedlir/dasel-hardened-container
Utilitários de Propósito GeralSegurança de ContêineresAnálise de VulnerabilidadesAuditoria de ConfiguraçãoDevSecOpsDetecção de SegredosSegurança da Cadeia de Suprimentos
GitHubnedlir/dasel-hardened-container

dasel-hardened-container

Pacote e imagem Endurecido dasel v3.3.1 construídos via Melange e apko. Corrigindo CVE-2026-33320.

Ver Repositório
5há 3 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

dasel v3.3.1 contentor protegido

Este é um pacote melange e uma imagem de contentor apko para dasel v3.3.1 com uma correção em tempo de compilação para CVE-2026-33320 (expansão ilimitada de aliases YAML). A imagem é construída inteiramente a partir de um APK produzido localmente - nenhuma imagem pré-construída de upstream é usada.

Pré-requisitos

FerramentaVersão testadaFinalidade
Docker29.3.1Runtime de contentor, executa melange/apko via compose.yaml
melange0.50.5 (imagem Docker cgr.dev/chainguard/melange@sha256:b6f11bb45a6090c182986028fd2249fb1a18dcb6e173c4ce001dd3fb4cb1dd71)Construtor de pacotes APK
apko1.2.10 (imagem Docker cgr.dev/chainguard/apko@sha256:20dfc1f5e3461b5eaf3279f762cd4bf86c7f3635d2a9642f905cf583525f9ee6)Construtor de imagens OCI
  • Arquitetura: x86_64 apenas
  • Acesso à Internet necessário para a compilação inicial (descarrega o tarball de origem, módulos Go, pacotes Wolfi)

Requisitos Windows

Todos os comandos de compilação e carregamento funcionam em qualquer terminal (PowerShell, CMD ou bash). Ainda é necessário um shell Unix para um passo:

  • bash tests/test.sh — o script de teste usa bash e coreutils (timeout, grep, sed)

Instale o Git Bash (incluído no Git for Windows) antes de executar os testes da imagem.

Estrutura do Projeto

root@kitploit:~
.
├── .github/
├── melange/
│   ├── dasel.yaml
│   └── CVE-2026-33320.patch
├── apko/
│   └── dasel.yaml
├── tests/
│   └── test.sh
├── Makefile
├── compose.yaml
├── keys/                       # Gerado, ignorado pelo git
│   ├── melange.rsa
│   └── melange.rsa.pub
├── sbom/                       # Gerado, ignorado pelo git
│   ├── sbom-x86_64.spdx.json
│   └── sbom-index.spdx.json
├── packages/                   # Gerado, ignorado pelo git
│   └── x86_64/
│       ├── dasel-3.3.1-r0.apk
│       └── APKINDEX.tar.gz
└── README.md

Compilação

Usando Make

root@kitploit:~
make build        # keygen (se necessário) + pacote + imagem
make test         # testes do pacote + testes da imagem
make all          # compilar + testar
make clean        # remover todos os artefactos gerados
make help         # listar todos os alvos e variáveis

Comandos manuais

root@kitploit:~
# 1. Gerar chaves de assinatura (única vez)
docker compose run --rm melange keygen keys/melange.rsa

# 2. Compilar o pacote APK (descarrega a origem, aplica o patch CVE, compila)
docker compose run --rm melange build melange/dasel.yaml --arch x86_64 --signing-key keys/melange.rsa

# 3. Compilar a imagem OCI (consome o APK local)
docker compose run --rm apko build apko/dasel.yaml dasel:3.3.1 dasel.tar --arch x86_64 --sbom-path sbom/

O passo 2 gera e assina automaticamente packages/x86_64/APKINDEX.tar.gz.

Executar

Após carregar a imagem, execute o dasel:

root@kitploit:~
docker load --input dasel.tar

# Exemplo: consultar um ficheiro JSON
echo '{"name": "dasel"}' | docker run --rm \
  --read-only \
  --cap-drop=ALL \
  --security-opt=no-new-privileges \
  -i dasel:3.3.1-amd64 \
  -i json 'name'

Estas opções aplicam a camada de runtime da estratégia de defesa em profundidade descrita em Proteção da Imagem: sistema de ficheiros raiz imutável, zero capacidades Linux e sem caminhos de escalada de privilégios.

Teste

Usando Make

root@kitploit:~
make test          # todos os testes (pacote + imagem)
make package-test  # apenas testes do pacote melange
make image-test    # apenas testes da imagem (requer bash)

Comandos manuais

root@kitploit:~
# Testes do pacote
docker compose run --rm melange test melange/dasel.yaml --arch x86_64

# Testes da imagem (requer Git Bash no Windows)
docker load --input dasel.tar
bash tests/test.sh

O script de teste verifica:

  • A imagem carrega e dasel version reporta v3.3.1
  • Extração de chave JSON (-i json 'test')
  • Conversão JSON para YAML (-i json -o yaml --root)
  • Correção CVE: YAML malicioso "billion laughs" desencadeia "yaml expansion budget exceeded" em vez de ficar suspenso

Correção CVE-2026-33320

A vulnerabilidade permite consumo ilimitado de CPU/memória através de aliases YAML aninhados exponencialmente (ataque billion laughs). O patch em melange/CVE-2026-33320.patch adiciona duas medidas de segurança ao leitor YAML do dasel: um limite de profundidade de expansão (32) que limita o aninhamento recursivo de aliases, e um orçamento de expansão (1000) que limita o total de desreferências de alias por documento. Quando qualquer limite é atingido, a descodificação retorna um erro imediatamente.

Segurança, Reprodutibilidade e Minimalidade

  • Segurança: CVE-2026-33320 corrigido em tempo de compilação. Todos os pacotes são assinados. A imagem contém apenas 3 pacotes APK (wolfi-baselayout, ca-certificates-bundle, dasel)
  • Reprodutibilidade: YAML declarativo para pacote e imagem. Tarball de origem fixado por SHA256. Todas as versões de ferramentas documentadas. Binário Go compilado com -trimpath para remover caminhos de compilação locais
  • Minimalidade: Sem shell, sem gestor de pacotes na imagem final - apenas o binário dasel, certificados CA e baselayout

Proteção da Imagem

A imagem aplica defesa em profundidade além da embalagem mínima:

CamadaMedidaEfeito
CompilaçãoUtilizador não-root (UID 65532)Processo do contentor nunca executa como root
Compilação-s -w ldflags + auto -trimpathBinário reduzido, sem fuga de caminhos locais
Compilação3 pacotes apenasSuperfície de ataque mínima, sem shell ou gestor de pacotes
Runtime--read-onlySistema de ficheiros raiz imutável
Runtime--cap-drop=ALLZero capacidades Linux
Runtime--no-new-privilegesImpede escalada de privilégios via setuid/setgid

Verificação de Vulnerabilidades

A imagem construída (dasel.tar) foi analisada com ferramentas padrão da indústria para validar a postura de segurança além da correção CVE em si.

Syft (geração de SBOM)

O Syft extraiu 36 pacotes da imagem inspecionando os metadados do módulo Go do binário:

  • 3 pacotes APK: wolfi-baselayout 20230201-r29, ca-certificates-bundle 20260413-r0, dasel 3.3.1-r0
  • 32 módulos Go: incluindo go.yaml.in/yaml/v4, github.com/hashicorp/hcl/v2, github.com/pelletier/go-toml/v2, github.com/goccy/go-json, github.com/charmbracelet/bubbletea, golang.org/x/sys, golang.org/x/text, stdlib go1.25.9, e mais 25
  • 19 ficheiros inventariados: /usr/bin/dasel, /etc/ssl/certs/ca-certificates.crt, APK DB, SBOMs por pacote, e ficheiros de configuração do baselayout

Grype (scanner de vulnerabilidades)

O SBOM que gerei foi inspecionado com o Grype sem outras vulnerabilidades encontradas em qualquer um dos 32 módulos Go ou 3 pacotes APK.

Submissão

Pressupostos

  • Apenas x86_64 - compilação de arquitetura única. Multi-arquitetura exigiria opções --arch adicionais
  • Chaves de assinatura descartáveis - geradas localmente e ignoradas pelo git. Numa configuração de produção, as chaves privadas de assinatura devem ser armazenadas num gestor de segredos, não no sistema de ficheiros local. mesmo que ficheiros ignorados pelo git possam ser expostos através de ferramentas de backup, montagens de volumes de contentores ou uma estação de trabalho comprometida.
  • Dependência do SO Wolfi - a compilação e a imagem final dependem de pacotes Wolfi (busybox, go, ca-certificates-bundle). Se uma vulnerabilidade for descoberta em algum desses pacotes upstream, afetaria esta imagem também. Manter os pacotes Wolfi atualizados ou subscrever aos seus avisos de segurança seria necessário em produção
  • Wrappers Docker Compose - melange e apko são executados como contentores Docker via compose.yaml. Isto foi desenvolvido no Kali 2025.3 e verificado no Windows 10 com Docker Desktop 29.3.1
  • Script de teste requer bash - tests/test.sh usa timeout (coreutils) e CLI Docker. Todos os outros comandos são docker puro e funcionam a partir do PowerShell ou CMD. No Windows, execute o script de teste a partir do Git Bash (consulte requisitos Windows)

Lacuna na Cobertura do SBOM

O apko gera automaticamente SBOMs SPDX em tempo de compilação na pasta sbom/ (sbom/sbom-x86_64.spdx.json, sbom/sbom-index.spdx.json). Estes monitorizam os 3 pacotes APK instalados com versões, CPEs, proveniência da fonte e referências à definição de compilação do Melange. No entanto, não incluem dependências de módulos Go compiladas no binário dasel. Decidi analisá-los e usei o Syft para fechar esta lacuna, extraindo todos os 32 módulos Go dos metadados incorporados do binário.

Para ambiente de produção, deveria haver alguma automatização da extração do SBOM que verificasse periodicamente. Depois, talvez anexar os resultados do SBOM com algo como https://github.com/nedlir/CVEnotifier que escrevi em Golang para encontrar vulnerabilidades inéditas na cadeia de fornecimento.

Comandos executados e resultados

ComandoResultado
docker compose run --rm melange keygen keys/melange.rsaAprovado
docker compose run --rm melange build melange/dasel.yaml --arch x86_64 --signing-key keys/melange.rsaAprovado - patch aplicado (7/7 hunks), APK produzido
docker compose run --rm melange test melange/dasel.yaml --arch x86_64Aprovado - versão, extração de chave JSON, acesso a array JSON
docker compose run --rm apko build apko/dasel.yaml dasel:3.3.1 dasel.tar --arch x86_64 --sbom-path sbom/Aprovado - 3 pacotes instalados, tarball OCI produzido
docker load --input dasel.tarAprovado - dasel:3.3.1-amd64 carregado
bash tests/test.shAprovado - todos os testes (versão, extração de chave, conversão de formato, aliases YAML, patch CVE)
docker run --rm -v ... anchore/grype:latest /work/dasel.tarAprovado - 1 descoberta (falso positivo esperado para a CVE corrigida)
docker run --rm -v ... anchore/syft:latest /work/dasel.tarAprovado - 36 pacotes catalogados (3 APK + 32 Go + 1 stdlib)

Melhorias futuras

  • Compilações multi-arquitetura - suportar várias arquiteturas para construir este contentor.

  • Pipeline CI/CD - automatizar compilação + teste no GitHub Actions com ações de contentor melange/apko

  • SBOM a nível Go no melange - executar syft durante o pipeline de compilação do melange e incorporar o SBOM de módulo Go juntamente com o APK

Baixar ferramenta