implementing-container-image-minimal-base-with-distroless
Ensina seu agente de IA a gerar imagens, ícones e diagramas e encontrar e corrigir bugs.
O que ela faz
Essa habilidade ajuda a criar imagens de contêiner mais seguras. Ela usa uma base especial chamada 'distroless' que inclui apenas o necessário para sua aplicação rodar, removendo componentes desnecessários que poderiam ser um risco.
Quando usar
- ✓Ao querer diminuir a área de ataque de seus contêineres.
- ✓Ao configurar a segurança de aplicações em contêineres.
- ✓Ao responder a requisitos de segurança ou avaliações.
Exemplo do que pedir para a IA
“Como posso criar uma imagem de contêiner mais segura usando distroless para minha aplicação Go?”
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
Ela funciona usando um processo de duas etapas. Primeiro, a aplicação é compilada. Depois, ela é copiada para uma imagem base mínima 'distroless' que contém apenas o ambiente de execução necessário.
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 mukul975/Anthropic-Cybersecurity-Skills --skill implementing-container-image-minimal-base-with-distrolessOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/implementing-container-image-minimal-base-with-distroless/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.
Implementando Imagem de Container Mínima Base com Distroless
Visão Geral
Imagens distroless do Google contêm apenas seu aplicativo e suas dependências de tempo de execução, sem gerenciadores de pacotes, shells ou outros programas encontrados em distribuições Linux padrão. Ao eliminar componentes desnecessários do sistema operacional, as imagens distroless alcançam uma redução de até 95% na superfície de ataque em comparação com imagens base tradicionais como ubuntu ou debian. Grandes projetos, incluindo o próprio Kubernetes, Knative e Tekton, usam imagens distroless em produção. A partir de 2025, o Docker também oferece Imagens Endurecidas (DHI) como uma alternativa de código aberto para bases de contêineres mínimas.
Quando Usar
- Ao implantar ou configurar a implementação de imagem de container mínima base com recursos distroless em seu ambiente
- Ao estabelecer controles de segurança alinhados aos requisitos de conformidade
- Ao construir ou melhorar a arquitetura de segurança para este domínio
- Ao realizar avaliações de segurança que exigem esta implementação
Pré-requisitos
- Docker 20.10+ ou ferramenta de build de contêiner compatível (Buildah, Kaniko)
- Conhecimento de Dockerfile multi-stage
- Aplicação compilada como um binário estático ou com tempo de execução empacotado
- Registro de contêiner para armazenamento de imagens
Imagens Distroless Disponíveis
| Imagem | Caso de Uso | Tamanho |
|---|---|---|
gcr.io/distroless/static-debian12 |
Binários compilados estaticamente (Go, Rust) | ~2MB |
gcr.io/distroless/base-debian12 |
Binários dinamicamente vinculados que precisam de glibc | ~20MB |
gcr.io/distroless/cc-debian12 |
Aplicações C/C++ que precisam de libstdc++ | ~25MB |
gcr.io/distroless/java21-debian12 |
Aplicações Java 21 | ~220MB |
gcr.io/distroless/python3-debian12 |
Aplicações Python 3 | ~50MB |
gcr.io/distroless/nodejs22-debian12 |
Aplicações Node.js 22 | ~130MB |
Padrões de Build Multi-Stage
Aplicação Go
# Build stage
FROM golang:1.22-bookworm AS builder
WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN CGO_ENABLED=0 GOOS=linux go build -ldflags="-s -w" -o /server ./cmd/server
# Runtime stage - static distroless
FROM gcr.io/distroless/static-debian12:nonroot
COPY --from=builder /server /server
USER nonroot:nonroot
ENTRYPOINT ["/server"]
Aplicação Java
# Build stage
FROM maven:3.9-eclipse-temurin-21 AS builder
WORKDIR /app
COPY pom.xml .
RUN mvn dependency:go-offline
COPY src ./src
RUN mvn package -DskipTests
# Runtime stage - Java distroless
FROM gcr.io/distroless/java21-debian12:nonroot
COPY --from=builder /app/target/app.jar /app.jar
USER nonroot:nonroot
ENTRYPOINT ["java", "-jar", "/app.jar"]
Aplicação Python
# Build stage
FROM python:3.12-bookworm AS builder
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir --target=/deps -r requirements.txt
COPY . .
# Runtime stage - Python distroless
FROM gcr.io/distroless/python3-debian12:nonroot
WORKDIR /app
COPY --from=builder /deps /deps
COPY --from=builder /app /app
ENV PYTHONPATH=/deps
USER nonroot:nonroot
ENTRYPOINT ["python3", "/app/main.py"]
Aplicação Node.js
# Build stage
FROM node:22-bookworm AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci --production
COPY . .
# Runtime stage - Node distroless
FROM gcr.io/distroless/nodejs22-debian12:nonroot
WORKDIR /app
COPY --from=builder /app .
USER nonroot:nonroot
CMD ["server.js"]
Benefícios de Segurança
Comparação da Superfície de Ataque
| Componente | Ubuntu | Alpine | Distroless |
|---|---|---|---|
| Shell (bash/sh) | Sim | Sim | Não |
| Gerenciador de pacotes | apt | apk | Não |
| coreutils | Completo | BusyBox | Não |
| curl/wget | Sim | Sim | Não |
| Gerenciamento de usuários | Sim | Sim | Não |
| CVEs conhecidos (típico) | 50-200+ | 5-20 | 0-5 |
| Tamanho da imagem (base) | ~77MB | ~7MB | ~2-20MB |
Implicações de Segurança
- Sem shell: Atacantes não podem executar comandos em contêineres
- Sem gerenciador de pacotes: Não é possível instalar ferramentas adicionais ou malware
- Sem coreutils: Sem
cat,ls,find,curlpara reconhecimento - CVEs mínimos: Menos pacotes significam menos vulnerabilidades para corrigir
- Não root por padrão: A tag
:nonrooté executada como UID 65534
Depurando Contêineres Distroless
Como o distroless não tem shell, use estas técnicas para depuração:
Variante de Imagem de Depuração
# Use debug variant in non-production environments only
FROM gcr.io/distroless/base-debian12:debug
# Includes busybox shell at /busybox/sh
# Executar na variante de depuração
…
Perguntas frequentes
O que são imagens 'distroless'?
São imagens de contêiner que contêm apenas sua aplicação e suas dependências de tempo de execução, sem ferramentas extras como shell ou gerenciador de pacotes.
Quais os benefícios de usar 'distroless'?
Reduz drasticamente a superfície de ataque, pois remove componentes que poderiam ter vulnerabilidades conhecidas ou ser usados para explorar o contêiner.
Como depurar um contêiner 'distroless' se não há shell?
Existem técnicas como usar uma variante de depuração da imagem, contêineres de depuração efêmeros no Kubernetes ou ferramentas como Crane e Dive para inspecionar a imagem.
Detalhes
Descrição original do autor
Reduces container attack surface by building application images on Google distroless base images that ship only the application runtime - no shell, package manager, or OS utilities - using multi-stage build patterns plus debugging and scanning techniques adapted to distroless. Use when hardening container images, cutting attack surface in a container architecture, or answering an assessment findin
Popularidade
- Estrelas no GitHub
- 35 mil
- Posição no ranking
- #5856
- Licença
- Apache-2.0
- Atualizada em
- 31/08/2026
Comentários
- …
Mais skills deste repositório
abusing-dpapi-for-credential-access
Dá ao seu agente de IA instruções prontas para uma tarefa específica, para ele fazer melhor e mais rápido.
mukul975/Anthropic-Cybersecurity-Skills
abusing-shadow-credentials-for-privesc
Ensina seu agente de IA a escrever textos claros e bem estruturados.
mukul975/Anthropic-Cybersecurity-Skills
achieving-cmmc-level-2-compliance
Ajuda seu agente a preparar um ambiente para conformidade com CMMC Nível 2. Ele implementa requisitos de segurança e gerencia a documentação necessária.
mukul975/Anthropic-Cybersecurity-Skills
acquiring-disk-image-with-dd-and-dcfldd
Ajuda seu agente a criar cópias exatas de discos rígidos. Isso é útil para garantir que nenhuma informação seja perdida ou alterada durante investigações.
mukul975/Anthropic-Cybersecurity-Skills
Skills parecidas
ios-icon-gen
Faz seu agente gerar ícones para aplicativos iOS. Ele usa símbolos da Apple ou ícones de outras fontes para criar os arquivos corretos.
affaan-m/ECC
algorithmic-art
Ajuda seu agente a criar arte usando código, gerando imagens únicas. É útil quando você quer arte original feita por computador.
anthropics/skills
canvas-design
Ajuda seu agente a criar artes visuais bonitas em arquivos. É útil quando você pede um pôster, uma arte ou qualquer design estático.
anthropics/skills