Encontre e corrija vulnerabilidades no seu pipeline de CI/CD com Snyk e Harness
Pas Apicella
Martin Ansong
10 de dezembro de 2021
0 minutos de leituraQuando o DevOps surgiu, há mais de dez anos, o principal objetivo era aproximar as equipes de desenvolvimento e operações. Para isso, foram automatizados os processos de planejamento, criação, teste e implantação de aplicações.
Mas, à medida que as equipes de desenvolvimento entregam software com mais rapidez e frequência, as equipes de segurança têm dificuldade para acompanhar o ritmo. Muitas vezes, elas acabam se tornando um gargalo no pipeline de entrega. Por isso, é cada vez mais importante incorporar a segurança desde o início do processo de DevOps e adotar uma cultura DevSecOps.
Integrar a plataforma de segurança da Snyk, feita para desenvolvedores, ao fluxo de trabalho unificado do pipeline de entrega da Harness garante que os testes de segurança e conformidade façam parte de cada lançamento. Assim, você evita que aplicações com dependências e código vulneráveis cheguem à produção. Com ferramentas modernas como Snyk e Harness, você pode encontrar, corrigir e remediar problemas em todo o pipeline de CI/CD, reduzindo os riscos para o negócio sem comprometer a agilidade na entrega de software.
Primeiros passos com a Snyk
A Snyk é uma plataforma de segurança para desenvolvedores que facilita a identificação, a priorização e a correção de vulnerabilidades em código, dependências, contêineres e infraestrutura como código. Ela se integra diretamente às ferramentas, aos fluxos de trabalho e aos pipelines de automação usados no desenvolvimento.
Com o respaldo de inteligência de ponta em aplicações e segurança, a Snyk coloca conhecimento especializado em segurança ao alcance de qualquer desenvolvedor.
Começar a usar a Snyk é tão simples quanto criar uma conta gratuita.
Primeiros passos com a Harness
A Harness é a primeira plataforma de entrega de software do setor a usar IA para simplificar processos de DevOps — CI, CD, Feature Flags, gerenciamento de custos na nuvem e muito mais.
A Harness permite criar implantações complexas em minutos com modelos reutilizáveis, economizando tempo e reduzindo o estresse. Com a Harness, você cria pipelines em minutos.
Começar a usar a Harness é tão simples quanto acessar harness.io e criar uma conta de avaliação gratuita.
Impeça que vulnerabilidades passem pelas etapas de build e implantação
A melhor maneira de demonstrar o poder da combinação de Snyk e Harness é com uma demonstração prática que você pode configurar e executar por conta própria. Neste exemplo, vamos usar a Snyk para mostrar como impedir que vulnerabilidades passem pelas etapas de build e implantação, adicionando testes automatizados da Snyk a um fluxo de trabalho da Harness.
Vamos usar o seguinte repositório do GitHub: https://github.com/mansong1/springbootemployee-api
Para acompanhar, você precisará de:
Este tutorial será mais útil se você já tiver concluído os seguintes materiais da Harness:
Se você já concluiu ou revisou os materiais acima, aprendeu a configurar um fluxo de trabalho de CI na Harness.
Sete etapas para executar testes da Snyk na Harness
Etapa 1: crie um token de API da Snyk como segredo
Você precisa de um token de API da Snyk para executar testes com a CLI da Snyk. Clientes corporativos podem configurar contas de serviço e criar um token pelo Snyk App. Se você usa uma conta da Snyk que não é corporativa, inclusive o plano gratuito, pode usar seu token de usuário principal.
Em seguida, siga estas etapas para criar um segredo na Harness e armazenar seu token de API da Snyk.
Etapa 2: crie um novo pipeline
1. Primeiro, crie um novo projeto na Harness clicando em +Project

2. Depois de criar o projeto, acesse o módulo Continuous Integration para criar um novo pipeline.

Etapa 3: adicione a base de código
Se este for o primeiro estágio de CI do pipeline, ative Clone Codebase nas configurações do estágio de CI. Se você já tiver um pipeline com um estágio de CI, clique em Codebase. Consulte Edit Codebase Configuration.
Etapa 4: defina a infraestrutura do ambiente de build
Na infraestrutura do estágio de CI, defina o ambiente de build da base de código. Consulte Kubernetes Cluster Build Infrastructure Setup.
Etapa 5: configure um teste da Snyk
Em CI Execution, clique em Add Step e depois em Run.

A etapa Run executa um ou mais comandos em uma imagem de contêiner.
A Snyk oferece várias imagens de contêiner que incluem a Snyk CLI e as ferramentas necessárias para diferentes linguagens. Neste exemplo, usamos a versão para Maven, já que ela é usada nesta aplicação de exemplo.
Para configurar uma etapa Run, consulte Run Step Settings e adicione seu token de API da Snyk.

Agora você pode fazer referência a essa variável de ambiente na seção Command da configuração.

Etapa 6: execute o pipeline
Agora você pode executar o pipeline.
1. Clique em Save and Publish.
2. Clique em Run. As configurações de Pipeline Inputs serão exibidas.
3. Em CI Codebase, clique em Git Branch.
4. Em Git Branch, informe o nome da branch onde está a base de código, como master.

5. Clique em Run Pipeline.
Etapa 7: confira a execução do pipeline
Quando o fluxo de trabalho é executado, a etapa Test da Snyk falha porque o projeto inclui dependências vulneráveis. Você também pode clicar no botão Console View para ver o relatório completo.
Observação: Para ter mais controle sobre os testes, você pode passar a flag severity-threshold para o comando snyk test com uma das opções compatíveis (low|medium|high|critical). Com essa flag, serão reportadas apenas as vulnerabilidades do nível especificado ou superior.

Todo o pipeline também está disponível em YAML. Em Builds:
Clique em More Options.
Selecione Edit Pipeline.
Clique em YAML.

Abaixo, você pode ver todo o pipeline em YAML. Edite qualquer parte do pipeline e execute-o novamente.
Fluxo de trabalho de CI/CD
Além de analisar dependências da aplicação, vulnerabilidades podem surgir da escolha do contêiner. Além disso, configurações incorretas de recursos na nuvem estão entre as principais causas de vulnerabilidades exploradas para acessar dados e serviços na nuvem.
Neste exemplo, vamos criar e implantar nossa aplicação no Kubernetes e, em seguida, monitorá-la com a Snyk.
Para criar e enviar um contêiner na Harness, basta seguir estas etapas. Adicionar uma etapa de análise do Snyk Container é semelhante à etapa Snyk Test acima.
Para implantar o contêiner no nosso cluster do Kubernetes, consulte a documentação da Harness. No nosso pipeline de CD, vamos executar o teste da Snyk no manifesto do Kubernetes antes da implantação. Para adicionar uma etapa snyk iac test, use uma etapa Shell Script.

O script executado na etapa Snyk IaC é:
O fluxo de trabalho completo de CI/CD fica assim:


Como antes, você pode visualizar este pipeline em YAML. Ele está disponível neste repositório do GitHub.
A Snyk se integra ao Kubernetes, permitindo importar e testar cargas de trabalho em execução e identificar vulnerabilidades nas imagens e configurações associadas. Após a importação, a Snyk continua monitorando essas cargas de trabalho e identificando novos problemas de segurança à medida que novas imagens são implantadas e as configurações mudam.
Uma implantação bem-sucedida pelo nosso fluxo de trabalho de CD da Harness aparece na interface da Snyk assim:


Experimente agora
Ao escolher uma plataforma tecnológica, é importante optar por uma que coloque as necessidades dos desenvolvedores no centro das soluções. Ela também deve priorizar a correção dos problemas, em vez de apenas reportá-los. Plataformas que priorizam os desenvolvedores podem integrar a segurança a todo o pipeline e oferecer uma visão abrangente a diferentes partes interessadas, como as equipes de desenvolvimento, segurança e operações.Isso ajuda a consolidar uma mentalidade compartilhada de DevSecOps e garante que os consumidores recebam softwares mais seguros.
Muito obrigado por acompanhar este tutorial. Não se esqueça de experimentar a Snyk e a Harness hoje mesmo!
Proteja a infraestrutura desde a origem
A Snyk automatiza a segurança e a conformidade de IaC nos fluxos de trabalho e detecta recursos com configurações divergentes ou ausentes.
Sobre os autores
Martin Ansong é engenheiro de soluções na área de vendas comerciais da Harness. Ele ajuda os clientes a acelerar a criação e a entrega de todo o ciclo de vida do software.
Pas Apicella é engenheiro principal de soluções da Snyk para a região APJ. Ele trabalha na plataforma Snyk para ajudar clientes a proteger suas aplicações nativas da nuvem e adotar uma cultura DevSecOps, sem deixar de atender às necessidades do negócio.
