Pular para o conteúdo
Skillpedia
Segurança35 mil · #6045

performing-container-image-hardening

Ensina seu agente de IA a gerar imagens, ícones e diagramas e colocar projetos no ar e cuidar da infraestrutura.

O que ela faz

Este processo torna suas imagens de contêiner mais seguras, removendo partes desnecessárias e configurando-as para rodar com menos privilégios. O resultado são imagens menores e mais difíceis de serem exploradas por hackers.

Quando usar

  • ✓Ao criar imagens para produção.
  • ✓Quando regras de segurança exigem conformidade com o CIS Docker Benchmark.
  • ✓Para reduzir o tamanho da imagem e diminuir riscos.

Exemplo do que pedir para a IA

“Como posso tornar minhas imagens de contêiner mais seguras?”

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/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/performing-container-image-hardening/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/performing-container-image-hardening/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

Ele funciona usando técnicas como 'multi-stage builds' para incluir apenas o necessário, rodando como um usuário sem privilégios e configurando o sistema de arquivos para não ser modificado. Ferramentas de verificação garantem que as melhores práticas de segurança foram aplicadas.

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 performing-container-image-hardening

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/performing-container-image-hardening/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.

Endurecimento de Imagens de Container

Quando Usar

  • Ao construir imagens de container para produção que precisam de uma superfície de ataque mínima
  • Quando a conformidade exige a adesão ao CIS Docker Benchmark para configurações de container
  • Ao reduzir o tamanho da imagem para minimizar a exposição a vulnerabilidades de pacotes não utilizados
  • Ao implementar defesa em profundidade para cargas de trabalho em container
  • Ao migrar de imagens base "gordas" para imagens distroless ou mínimas

Não use para monitoramento de segurança de containers em tempo de execução (use Falco), para endurecimento do daemon Docker no nível do host (use verificações de host do CIS Docker Benchmark) ou para segurança de orquestração de containers (use escaneamento de segurança do Kubernetes).

Pré-requisitos

  • Docker ou BuildKit para builds multi-stage
  • Opções de imagem base: distroless, Alpine, slim ou scratch
  • Ferramenta de escaneamento de container (Trivy) para validação
  • Referência do CIS Docker Benchmark

Fluxo de Trabalho

Passo 1: Use Builds Multi-Stage para Minimizar o Tamanho da Imagem

# Build stage with all dependencies
FROM python:3.12-bookworm AS builder
WORKDIR /build
COPY requirements.txt .
RUN pip install --no-cache-dir --prefix=/install -r requirements.txt
COPY src/ ./src/
RUN python -m compileall src/

# Production stage with minimal base
FROM python:3.12-slim-bookworm AS production
RUN apt-get update && \
    apt-get install -y --no-install-recommends libpq5 && \
    rm -rf /var/lib/apt/lists/* && \
    apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false

COPY --from=builder /install /usr/local
COPY --from=builder /build/src /app/src

RUN groupadd -r appuser && useradd -r -g appuser -d /app -s /sbin/nologin appuser
RUN chown -R appuser:appuser /app

USER appuser
WORKDIR /app

HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
  CMD python -c "import urllib.request; urllib.request.urlopen('http://localhost:8080/health')" || exit 1

EXPOSE 8080
ENTRYPOINT ["python", "-m", "src.main"]

Passo 2: Use Imagens Base Distroless

# Go application with distroless
FROM golang:1.22 AS builder
WORKDIR /app
COPY go.* ./
RUN go mod download
COPY . .
RUN CGO_ENABLED=0 GOOS=linux go build -ldflags="-w -s" -o /server .

FROM gcr.io/distroless/static-debian12:nonroot
COPY --from=builder /server /server
USER nonroot:nonroot
ENTRYPOINT ["/server"]

Passo 3: Remova Componentes Desnecessários

# Hardened image checklist
FROM ubuntu:24.04 AS base

RUN apt-get update && \
    apt-get install -y --no-install-recommends \
      ca-certificates \
      libssl3 && \
    # Remove package manager to prevent runtime package installation
    apt-get purge -y --auto-remove apt dpkg && \
    rm -rf /var/lib/apt/lists/* \
           /var/cache/apt/* \
           /tmp/* \
           /var/tmp/* \
           /usr/share/doc/* \
           /usr/share/man/* \
           /usr/share/info/* \
           /root/.cache

# Remove shells if not needed
RUN rm -f /bin/sh /bin/bash /usr/bin/sh 2>/dev/null || true

# Remove setuid/setgid binaries
RUN find / -perm /6000 -type f -exec chmod a-s {} + 2>/dev/null || true

Passo 4: Configure o Sistema de Arquivos Somente Leitura

# Kubernetes deployment with read-only root filesystem
apiVersion: apps/v1
kind: Deployment
metadata:
  name: hardened-app
spec:
  template:
    spec:
      securityContext:
        runAsNonRoot: true
        runAsUser: 65534
        fsGroup: 65534
        seccompProfile:
          type: RuntimeDefault
      containers:
        - name: app
          image: app:hardened
          securityContext:
            allowPrivilegeEscalation: false
            readOnlyRootFilesystem: true
            capabilities:
              drop: ["ALL"]
          volumeMounts:
            - name: tmp
              mountPath: /tmp
            - name: cache
              mountPath: /app/cache
      volumes:
        - name: tmp
          emptyDir:
            sizeLimit: 100Mi
        - name: cache
          emptyDir:
            sizeLimit: 50Mi

Passo 5: Fixe a Imagem Base por Digest

# Pin to exact image digest for reproducibility
FROM python:3.12-slim-bookworm@sha256:abcdef1234567890 AS production
# This ensures the exact same base image is used every time

Passo 6: Valide o Endurecimento com Escaneamento Automatizado

# Escaneia a imagem endurecida com Trivy
trivy image --severity HIGH,CRITICAL hardened-app:latest

# Verifica a conformidade com o CIS Docker Benchmark
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock \
  aquasec/docker-bench-security


…
Perguntas frequentes

O que são 'multi-stage builds'?

É uma forma de construir imagens de contêiner em etapas, onde uma etapa prepara o que é necessário e a etapa final cria a imagem com apenas o código e as dependências essenciais, tornando-a menor e mais segura.

Por que rodar como 'non-root user'?

Rodar como um usuário sem privilégios (não-root) limita o que um invasor pode fazer caso consiga comprometer o contêiner, diminuindo o risco de danos maiores ao sistema.

O que é o CIS Docker Benchmark?

É um conjunto de recomendações e melhores práticas para configurar e proteger o Docker, garantindo que ele esteja o mais seguro possível contra ataques.

Detalhes

Descrição original do autor

Harden container images by minimizing attack surface, stripping unnecessary packages, implementing multi-stage builds, configuring non-root users, and applying CIS Docker Benchmark recommendations to produce secure, production-ready images. Use when building production container images, when compliance requires CIS Docker Benchmark adherence, or when shrinking image size to reduce vulnerability ex

repo: mukul975/Anthropic-Cybersecurity-Skills

Popularidade

Estrelas no GitHub
35 mil
Posição no ranking
#6045
Licença
Apache-2.0
Atualizada em
31/08/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas