Retrospectiva do SnykLaunch: recomendações personalizadas de imagens base
4 de abril de 2023
0 minutos de leituraUm dos novos recursos empolgantes apresentados hoje no SnykLaunch foi o Custom Base Image Recommendations (CBIR). Em beta aberto desde o fim de 2022, o CBIR já está sendo usado por várias organizações. Estamos ampliando os recursos à medida que nos aproximamos da disponibilidade geral, para oferecer mais flexibilidade e incluir recursos de automação sem intervenção, permitindo que as pessoas usem o CBIR em seus pipelines de CI/CD.
O Custom Base Image Recommendations amplia as poderosas recomendações de imagens base que são fundamentais para o Snyk Container, disponibilizando-as para organizações e empresas que adotam fluxos de trabalho DevOps mais avançados. Se você conta com equipes dedicadas a selecionar, criar, personalizar e reforçar imagens base selecionadas ou “golden”, ou está começando com uma imagem que não faz parte das imagens oficiais populares, este recurso é uma ótima opção.
Embora existam vários fluxos de trabalho para criar e distribuir aplicações em contêineres, algumas etapas gerais são comuns: seleção da imagem base, etapa de build (adição de bibliotecas comuns, componentes e arquivos do projeto) e implantação.
A importância das recomendações de imagens base
A seleção da imagem base costuma começar com uma imagem “Docker Official” correspondente à linguagem de programação usada no projeto. Para uma aplicação Python, procuraríamos uma imagem Python; para uma aplicação Java, uma imagem Java.
Uma etapa importante no ciclo de entrega de imagens de contêiner é minimizar os riscos causados por vulnerabilidades. Muitas ferramentas ajudam a identificar pacotes vulneráveis nas imagens e sugerem versões corrigidas. Por exemplo, a imagem base node:14.0.0 contém mais de mil vulnerabilidades. Infelizmente, muitas ferramentas só oferecem orientações para cada vulnerabilidade individual, como vemos aqui.
Neste exemplo, vemos versões que corrigiriam algumas vulnerabilidades, mas não fica claro o que devemos fazer. Corrigir uma? Corrigir todas?
As recomendações de imagens base ajudam você a encontrar imagens melhores para começar. Em vez de corrigir vulnerabilidades isoladamente, uma de cada vez, você pode eliminar grandes grupos delas com um único clique. Neste caso, vemos que uma atualização secundária para node:14.21.3 reduzirá nossas vulnerabilidades em 64%, enquanto a mudança para a variante bullseye-slim elimina todas, exceto algumas vulnerabilidades de baixa gravidade.

Fluxos de trabalho DevOps avançados
Em algumas organizações, a equipe de desenvolvimento de aplicações é responsável por criar e manter imagens de contêiner. Outras adotam fluxos de trabalho mais avançados, com responsabilidades divididas: uma equipe de plataforma cria imagens base internas, selecionadas ou “golden”, para uso dos desenvolvedores. Essa equipe escolhe as imagens base iniciais e, em seguida, configura e cria imagens base internas de contêiner de acordo com os padrões corporativos — que podem incluir bibliotecas comuns, convenções de nomenclatura ou marcação e medidas para reduzir vulnerabilidades nas imagens base.

Essa divisão de responsabilidades permite que os desenvolvedores se concentrem nas aplicações que estão criando, sem precisar corrigir as imagens base.
Vamos ver como esse fluxo avançado funciona com o CBIR.
Ciclo de vida de imagens base personalizadas
Equipes de plataforma e segurança
Nesse modelo de responsabilidades divididas, a equipe de plataforma é responsável por selecionar as imagens iniciais e criar as imagens base personalizadas que os desenvolvedores usarão. Ela deve automatizar e proteger uma cadeia de suprimentos escalável de imagens de contêiner para que os desenvolvedores possam usá-las como base, além de dar à equipe de segurança visibilidade total sobre o status dessas imagens, para que possa priorizar as correções. Essa visibilidade cria um ciclo de feedback que permite às equipes distribuir imagens mais seguras. Vale lembrar que a equipe de plataforma ainda pode usar a lógica padrão de recomendação de imagens base ao criar imagens base personalizadas.
Depois de criada, uma imagem base personalizada pode ser importada para o Snyk para monitoramento, pelos mesmos métodos já disponíveis: CLI, CI/CDs e API ou interface do Snyk. Quando uma imagem passa a ser monitorada pelo Snyk Container, ela pode ser marcada como “Custom Base Image” e, opcionalmente, usada nas recomendações. O Snyk pode detectar automaticamente versões mais recentes com base na versão semântica, na data da marcação ou em padrões personalizados de nomenclatura de esquemas.

Esse processo também pode ser automatizado pela API. Desativar a opção “Use in recommendations” é útil quando uma imagem foi substituída por outra versão e você não quer mais que ela seja oferecida como substituta.
Desenvolvedor
Quando um contêiner é derivado de uma imagem base personalizada ou usa FROM para defini-la, as recomendações são apresentadas com base na família da imagem. Se o Dockerfile usado para criar a imagem estiver incluído, também há opções de atualização com um clique, como mostra este exemplo. Neste caso, o desenvolvedor está usando mybaseimage:1.0, que tem 185 vulnerabilidades. A versão mais recente, 6.0, tem menos vulnerabilidades, e o desenvolvedor pode abrir rapidamente uma solicitação de pull para fazer a atualização. Além disso, é possível criar solicitações de pull automaticamente para imagens derivadas de imagens base personalizadas quando uma nova versão da imagem base é lançada.

O uso das imagens base personalizadas e selecionadas fornecidas pela equipe de plataforma elimina o excesso de informações que os desenvolvedores precisariam analisar, permitindo que se concentrem nos pacotes adicionados aos contêineres — manualmente ou por meio de gerenciadores de pacotes — e na aplicação. O principal é que não precisam se preocupar com isso.
Automatize a cadeia de suprimentos de contêineres
Como mencionado acima, novas APIs permitem marcar imagens base monitoradas como imagens base personalizadas e registrar esquemas de versão personalizados para a nomenclatura dos contêineres. Assim, você pode nomear as imagens da maneira habitual e continuar usando recomendações personalizadas.
Com essas APIs, você pode incorporar a marcação personalizada de imagens e as recomendações de imagens base personalizadas aos seus fluxos de trabalho automatizados, permitindo que os desenvolvedores se concentrem em entregar software mais seguro.
Consulte também a documentação do Custom Base Image Recommendations para saber mais sobre o recurso.
Experimente hoje mesmo!
O Custom Base Image Recommendations do Snyk Container está disponível no momento para clientes do plano Enterprise, mas deve chegar a outros planos (incluindo o gratuito) no futuro. Antes da disponibilidade geral, entre em contato com seu gerente de conta ou abra um chamado de suporte para habilitar o recurso na sua organização e assumir o controle dos fluxos de trabalho da sua cadeia de suprimentos de contêineres.
Para assistir à demonstração, confira a gravação sob demanda do SnykLaunch.
Segurança de contêineres que prioriza os desenvolvedores
O Snyk encontra e corrige automaticamente vulnerabilidades em imagens de contêiner e workloads do Kubernetes.



