Integre o Snyk ao Atlassian Open DevOps
Warren Marusiak
Evangelista tecnológico sênior
Para demonstrar como desenvolver, implementar e gerenciar aplicativos usando o Jira Software e várias ferramentas conectadas, nossa equipe criou o ImageLabeller, um aplicativo de demonstração simples gerado na AWS que usa aprendizado de máquina para aplicar etiquetas às imagens.
Esta página aborda como integrar o Snyk com o Bitbucket. Antes de começar, recomendamos a leitura da página Introdução ao ImageLabeller para contextualizar.
Como conectar o Bitbucket e o Snyk
Há algumas maneiras de trabalhar com o Snyk no Bitbucket. A primeira é habilitar a integração nativa do Snyk com o Bitbucket por meio da guia Segurança na tela do seu repositório. A segunda é adicionar uma etapa do Snyk a um arquivo bitbucket-pipelines.yml. Não há nenhuma desvantagem em fazer as duas coisas. A integração do Synk no Bitbucket oferece acesso rápido aos dados de vulnerabilidade para qualquer pessoa que veja o repositório no Bitbucket. Em seguida, você pode clicar no site da Snyk para obter informações adicionais sobre cada vulnerabilidade encontrada. A etapa Snyk em um arquivo bitbucket-pipelines.yml permite a verificação automática de cada commit em um pipeline.
Como adicionar a integração do Snyk ao Bitbucket
Para adicionar o Snyk a um repositório do Bitbucket, clique na guia Segurança, encontre a Integração com o Snyk e Tentar agora.
Conceda acesso e clique em Conectar o Bitbucket com o Snyk.
Depois que a integração estiver configurada, feche a guia.
Clique na nova opção Snyk que aparece no painel de navegação à esquerda. Em seguida, clique no arquivo go.mod para aprofundar-se e ver mais dados das informações. O repositório Golang usa módulos go para gerenciar dependências neste exemplo. Para outros tipos de repositórios, vai haver diferentes arquivos de dependência.
Para saber mais sobre como corrigir cada vulnerabilidade, clique em visitar o Snyk para acessar o respectivo site.
Essa visualização no app Snyk é semelhante à tela de informações renderizadas no Bitbucket. Essa tela mostra uma lista de vulnerabilidades, junto com informações adicionais sobre cada vulnerabilidade.
Abaixo está um exemplo de um relatório de vulnerabilidade no Snyk. Uma hierarquia de origem da vulnerabilidade é mostrada na seção Caminhos detalhados. No exemplo abaixo, você pode ver que o SubmitImage herda essa vulnerabilidade do AWS Golang SDK. O Snyk resume o status de todos os problemas à esquerda. Nesse caso, nenhum dos problemas é solucionável. Observe que há cinco problemas Sem correção disponível em Capacidade de correção. Isso significa que não há mitigação atual disponível para esses problemas. Os desenvolvedores podem monitorar a integração e aplicar as correções assim que estiverem disponíveis.
Adicione uma etapa do Snyk ao bitbucket-pipelines.yml
Além de acessar o Snyk por meio da interface de usuário do Bitbucket, a funcionalidade do Snyk pode ser acessada por meio de Bitbucket Pipelines adicionando etapas aos arquivos bitbucket-pipelines.yml. Isso significa que a verificação automática de vulnerabilidades vai ocorrer em cada commit e vai alertar você sobre quaisquer vulnerabilidades de segurança.
Abaixo estão dois trechos de bitbucket-pipelines.yml para executar testes do Snyk como parte de um Pipeline.
Como adicionar o Snyk ao Bitbucket Pipelines para Golang
Este exemplo ilustra como executar snyk test para um projeto Golang usando módulos Go para gerenciamento de dependências.
definitions:
steps:
-step: &runsnyktest
name: run snyk test
image: snyk/snyk:golang
script:
- snyk auth $SNYK_TOKEN
- cd submitImage
- go mod graph
- snyk test
pipelines:
default:
- step: *runsnyktest
Como adicionar o Snyk ao Bitbucket Pipelines para Python
Este exemplo ilustra como executar snyk test para um projeto Python usando Pip para gerenciamento de dependências.
definitions:
steps:
-step: &runsnyktest
name: run snyk test
image: snyk/snyk:python
script:
- snyk auth $SNYK_TOKEN
- cd src
- snyk test --skip-unresolved
- cd ../tst
- snyk test --skip-unresolved
pipelines:
default:
- step: *runsnyktest
Aqui está a aparência quando a etapa runsnyktest é executada em um pipeline do Bitbucket.
Conclusão...
A prática de integrar a segurança em seu pipeline de IC/CD (integração/implementação contínuas) é um princípio fundamental do DevSecOps. Com o DevSecOps, a segurança deve ser aplicada em cada fase do pipeline de DevOps tradicional: planejar, codificar, criar, testar, lançar e implementar. Ao incorporar a segurança ao seu fluxo de trabalho, ela se torna uma parte ativa e integrada do processo de desenvolvimento, em vez de uma ideia posterior. Isso implica em aplicativos mais seguros, menos incidentes e clientes mais satisfeitos.
Compartilhe este artigo
Próximo tópico
Leitura recomendada
Marque esses recursos para aprender sobre os tipos de equipes de DevOps ou para obter atualizações contínuas sobre DevOps na Atlassian.