Skip to main content

O Snyk Container CLI novo e aprimorado

Escrito por
container scans

29 de outubro de 2020

0 minutos de leitura

Cada vez mais pessoas adotam contêineres para empacotar aplicações, e identificar vulnerabilidades neles antes de disponibilizá-los se torna cada vez mais importante.

Há mais de um ano, a Snyk permite testar imagens Docker usando nossa CLI. Na versão mais recente da CLI, estamos aprimorando a experiência de uso para quem trabalha com contêineres e adicionando recursos úteis para usuários avançados.

Um novo subcomando para contêineres

Atualmente, você testa imagens de contêiner usando a flag --docker com snyk test ou snyk monitor. Isso funciona muito bem para muitos usuários, e não vamos alterar esse comportamento. Mas também há algumas desvantagens, principalmente ao consultar a ajuda integrada.

Se você só quer testar imagens de contêiner, precisa percorrer várias opções para descobrir quais se aplicam. Por isso, estamos introduzindo um novo subcomando para snyk. Agora você pode testar suas imagens de contêiner em busca de vulnerabilidades usando:

snyk container test <your-image>

Se você quiser enviar essas informações para a Snyk, onde elas podem ser exibidas e permitir que você receba alertas caso novas vulnerabilidades sejam encontradas, também é possível usar o comando monitor.

snyk container monitor <your-image>

A Snyk facilita o teste das suas imagens, onde quer que elas estejam. Se a imagem estiver apenas no daemon local do Docker, vamos testá-la ali. Se estiver disponível em um registro remoto, vamos baixá-la e testá-la. Não tem o Docker instalado na máquina em que está fazendo os testes? Sem problema. Há muitos fluxos de trabalho diferentes para contêineres, e a Snyk facilita o teste das suas imagens da maneira que você trabalha.

Reforçando: a flag anterior --docker continuará disponível e funcionará como um alias para o novo comando, incluindo as novas funcionalidades. Levamos a compatibilidade com versões anteriores a sério e não queremos interromper nenhuma automação que você possa ter criado com nossas ferramentas de CLI.

Ajuda específica para contêineres

Com o novo subcomando container, as informações de ajuda específicas para contêineres ficam disponíveis diretamente na CLI. Assim, fica muito mais fácil ver de imediato como usar a CLI: desde especificar um Dockerfile usado para criar a imagem até excluir vulnerabilidades encontradas na imagem-base ou relatar apenas vulnerabilidades de alta gravidade.

$ snyk container --help
Usage:

  $ snyk container [command] [options] [image]

Find vulnerabilities in your container images.

Commands:

  test ............... Test for any known vulnerabilities.
  monitor ............ Record the state of dependencies and any
                       vulnerabilities on snyk.io.

Options:

  --exclude-base-image-vulns .............. Exclude from display base image vulnerabilities.
  --file=<string> ......................... Include the path to the image's Dockerfile for more detailed advice.
  -h, --help
  --platform=<string> ..................... For multi-architecture images, specify the platform to test. Options are:
                                            [linux/amd64, linux/arm64, linux/riscv64, linux/ppc64le, linux/s390x,
                                            linux/386, linux/arm/v7 orlinux/arm/v6]
  --json  .................................. Return results in JSON format.
  --json-file-output=<string>
                       (test command only)
                       Save test output in JSON format directly to the specified file, regardless of whether or not you use the `--json` option.
                       This is especially useful if you want to display the human-readable test output via stdout and at the same time save the JSON format output to a file.
  --sarif ................................. Return results in SARIF format.
  --sarif-file-output=<string>
                       (test command only)
                       Save test output in SARIF format directly to the specified file, regardless of whether or not you use the `--sarif` option.
                       This is especially useful if you want to display the human-readable test output via stdout and at the same time save the SARIF format output to a file.
  --print-deps ............................ Print the dependency tree before sending it for analysis.
  --project-name=<string> ................. Specify a custom Snyk project name.
  --policy-path=<path> .................... Manually pass a path to a snyk policy file.
  --severity-threshold=<low|medium|high>... Only report vulnerabilities of provided level or higher.

Examples:

  $ snyk container test alpine
  $ snyk container test --platform=linux/arm64 debian
  $ snyk container monitor alpine
  $ snyk container test docker-archive:archive.tar
  $ snyk container test oci-archive:archive.tar

Pro tip: use `snyk container test --file=Dockerfile` for more detailed advice.

For more information see https://snyk.io

Pro tip: use `snyk container test --file=Dockerfile` for more detailed advice.

For more information see https://snyk.io

Novos recursos

O novo subcomando snyk container também traz novos recursos para usuários avançados.

Se você trabalha diretamente com arquivos de contêiner, em vez de imagens, agora pode testá-los em busca de vulnerabilidades com a Snyk.

Por exemplo, você pode salvar um arquivo de contêiner do Docker e testar o arquivo resultante assim:

docker save ubuntu:18.04 -o ubuntu.tar
snyk container test docker-archive:ubuntu.tar

Se você trabalha diretamente com imagens OCI padrão (Open Container Initiative), também pode testá-las.

snyk container test oci-archive:ubuntu.tar

Por fim, a Snyk agora oferece suporte ao teste de imagens Distroless. Distroless é um projeto interessante do Google que produz imagens-base de contêiner com base em pacotes Debian, mas sem shell ou gerenciador de pacotes instalado, para aumentar a segurança. Agora você pode testar normalmente com a Snyk as imagens-base Distroless ou as imagens que criou a partir delas.

$ snyk container test gcr.io/distroless/base | head                                                                                                           
Testing gcr.io/distroless/base...

✗ Low severity vulnerability found in openssl/libssl1.1
  Description: Cryptographic Issues
  Info: https://snyk.io/vuln/SNYK-DEBIAN9-OPENSSL-374708
  Introduced through: openssl/libssl1.1@1.1.0l-1~deb9u1, openssl@1.1.0l-1~deb9u1
  From: openssl/libssl1.1@1.1.0l-1~deb9u1
  From: openssl@1.1.0l-1~deb9u1 > openssl/libssl1.1@1.1.0l-1~deb9u1
  From: openssl@1.1.0l-1~deb9u

Próximas etapas

Estamos sempre trabalhando para aprimorar a experiência de uso da Snyk, seja na ferramenta de CLI, no serviço Snyk, na API ou nas diversas integrações com ferramentas para desenvolvedores. O novo comando snyk container deve facilitar o uso da Snyk quando seu foco são contêineres, e em breve teremos mais recursos interessantes e úteis para essa interface.

Comece a participar de desafios de Capture the Flag

Aprenda a resolver desafios de Capture the Flag assistindo sob demanda ao nosso workshop virtual introdutório.