Como fazer a varredura de segurança de imagens do Docker com âncora

Wright Studio / Shutterstock. com
Anchore Engine é uma ferramenta de varredura de código aberto que avalia a segurança de suas imagens Docker. Um relatório Anchore fornece informações sobre versões de pacotes desatualizados e vulnerabilidades ocultas nas dependências.
Você precisará criar sua imagem Docker e colocá-la em um registro antes de digitalizá-la. Anchore usa Dockerfiles quando disponível para identificar possíveis problemas de configuração, mas depende da varredura de imagens construídas ao compilar listas de vulnerabilidade.
Arquitetura da âncora
A configuração do Anchore historicamente exigia uma instalação dedicada do Anchore Engine que operava independentemente do seu ambiente de criação de imagem. Uma CLI separada permite que você interaja com o mecanismo.
Este modelo requer o uso de uma sequência de comandos CLI para registrar uma imagem com Anchore, iniciar uma digitalização e acessar os resultados. As etapas avançam Anchore puxando sua imagem de seu registro, gerando um relatório e tornando-o disponível para consumo.
A Anchore agora também oferece varreduras inline. Eles fornecem um único comando para digitalizar uma imagem e obter os resultados em seu terminal. Vamos nos concentrar nesse recurso neste artigo.
Executando o script embutido
As varreduras embutidas são fornecidas por um script Bash hospedado no servidor da Anchore. Baixe o script para sua máquina e torne-o executável:
curl -s https://ci-tools. anchore. io/inline_scan-latest -o anchore. sh chmod + x anchore. sh

Publicidade
Agora você pode usar o script embutido para iniciar a verificação de uma imagem de contêiner:
./ anchore. sh -r alpine: mais recente
A primeira varredura pode demorar um pouco. O script irá puxar a imagem Anchore Engine Docker, iniciar uma nova instância Anchore e configurar PostgreSQL e uma instância de registro Docker. Em seguida, ele aguardará até que o Anchore Engine seja iniciado.

Assim que o mecanismo estiver funcionando, a imagem do Docker de destino será extraída e analisada. Você verá então o relatório de segurança exibido em seu terminal. O script terminará limpando o ambiente e parando o contêiner Anchore Engine Docker.
Resultados da verificação
Os resultados da varredura incluem metadados sobre a imagem seguidos por uma tabela de problemas encontrados. Anchore analisa a imagem em relação às políticas configuradas. O conjunto padrão procura vulnerabilidades conhecidas em pacotes de software e problemas potenciais com o Dockerfile usado para construir a imagem.

O resultado geral da verificação é mostrado na linha de status acima da tabela de vulnerabilidades. Se você ver a aprovação, a Anchore está satisfeita com a sua imagem está segura e pronta para uso em produção. Uma falha significa que você deve revisar as falhas e remediá-las sempre que possível.
Publicidade
Cada vulnerabilidade encontrada inclui uma classificação de sua gravidade de BAIXA a CRÍTICA. Problemas com um CVE ID incluem um link para ver os detalhes no site do MITER.
Gerando arquivos de relatório
Embora a tabela de saída padrão funcione bem para consumo humano, o Anchore também pode produzir arquivos de relatório JSON que você pode arquivar ou inserir em outras ferramentas. Adicione o sinalizador -r ao executar o script de varredura para habilitar este recurso.

Anchore irá escrever relatórios em relatórios-âncora dentro do seu diretório de trabalho. Cada varredura produz um conjunto de arquivos JSON pertencentes a diferentes seções do relatório, como vulnerabilidades, pacotes de sistema operacional e requisitos de política.
A inspeção dos arquivos fornece informações detalhadas sobre cada descoberta, fornecendo muito mais dados do que a saída do terminal oferece. Isso se estende a pontuações de CVSS, versões de pacote precisas e a indicação do fornecedor sobre se uma correção será produzida.
Digitalizando arquivos de imagens salvas
Anchore pode escanear diretórios de arquivos de imagens do Docker salvos, bem como imagens reais que residem em registros. Exporte um conjunto de imagens Docker usando docker save, coloque-as em um diretório e, em seguida, use o argumento -v para fazer o script Anchore digitalizar esses arquivos:
docker save my-image: último -o docker-images / my-image ./anchore -v docker-images
Fornecendo o Dockerfile de imagem
O script embutido aceita um argumento -d que permite fornecer o caminho para um Dockerfile local. Anchore verificará a imagem construída e o Dockerfile, permitindo a identificação de problemas de tempo de construção que podem afetar a postura de segurança da imagem.
./ anchore. sh minha-imagem: último -d / dockerfiles / minha-imagem
Usando políticas personalizadas
Anchore é extensível por meio do uso de conjuntos de políticas personalizadas. As políticas são criadas a partir de uma combinação de “ portas, ” “ gatilhos, ” e “ ações. ” Eles permitem que você crie regras que auditam imagens de contêiner de acordo com seus requisitos de segurança precisos.
Publicidade
Cada porta de política produz uma de três ações: “ go, ” uma passagem que permite que a verificação prossiga, “ avisar, ” permitindo que a execução continue, mas com um aviso e “ pare ” indicando que a imagem não deve ser processada posteriormente.
As políticas são empacotadas como “ pacotes ” quais conjuntos de regras de mapas para registros e imagens aos quais se aplicam. Você pode adicionar um pacote de políticas à sua varredura, passando o sinalizador -b ao executar o script:
./ anchore. sh -b policy-bundle. json
Isso incluirá suas políticas personalizadas, dando a você a confiança de que a imagem atende aos seus próprios padrões de segurança.
Este é um pacote de políticas simplista que emite um aviso se você não fornecer um Dockerfile para ancorar usando o sinalizador-d descrito acima. Fornecer o Dockerfile usado para construir a imagem dá à Anchore a cobertura mais ampla possível, por isso faz sentido avisar quando nenhuma é fornecida.
{" ação & quot ;: " AVISO & quot ;, " comentário & quot ;: " Nenhum Dockerfile fornecido! & quot ;, " portão & quot ;: " dockerfile & quot ;, " params & quot ;: [], " acionador " : " no_dockerfile_provided " }
Esta política se aplica ao portão do dockerfile onde o Anchore verifica se o seu Dockerfile atende ao padrão de prática recomendada. Anchore executa o gatilho no_dockerfile_provided quando uma varredura é iniciada na ausência do Dockerfile da imagem.
Conclusão
Anchore permite gerar relatórios de segurança para imagens Docker, verificando pacotes de software desatualizados, vulnerabilidades conhecidas, problemas de configuração do Dockerfile e outras possíveis fontes de problemas. Você pode escrever seus próprios conjuntos de políticas para personalizar o que é verificado e alinhar o Anchore com seus padrões de segurança.
Publicidade
Embora o Anchore use uma arquitetura cliente-servidor, o projeto “ inline ” o script abstrai a complexidade da instalação para que você possa escanear imagens locais rapidamente e obter o relatório direto em seu terminal. Se você usar o Anchore regularmente ou digitalizar imagens em seus pipelines de CI / CD, ainda será melhor implantar uma instância dedicada do Anchore Engine e, em seguida, usar a CLI para produzir relatórios. Isso requer um processo de vários estágios para cada varredura, mas também oferece mais flexibilidade ao acessar seções de relatório e sincronizar feeds de dados de vulnerabilidade.
Nenhum comentário