O desafio
Quando a equipe da Helvetia começou a abandonar a infraestrutura de desenvolvimento interna em sua jornada para a nuvem, foi preciso redobrar a atenção aos requisitos de segurança e analisar os riscos de executar seu próprio software na infraestrutura em nuvem. A segurança das aplicações era gerenciada manualmente, com verificações de dependências do OWASP e análises externas de segurança. No entanto, como havia muitas aplicações novas no ambiente, o processo era lento demais. Durante o desenvolvimento do software, a equipe configurava middleware e precisava de uma ferramenta que cobrisse todas as dependências. O objetivo era deixar a abordagem de “proteção”, com testes de segurança realizados tardiamente, e passar para a “detecção” mais cedo no ciclo de vida do desenvolvimento de software (SDLC), deslocando a segurança para a esquerda. Para isso, era necessária uma ferramenta que gerasse relatórios automaticamente. Além disso, a equipe jurídica queria uma solução que desse visibilidade ao uso de licenças no software. Os requisitos para a plataforma de detecção incluíam:
Relatórios automatizados sobre:
Vulnerabilidades nas dependências utilizadas
Gerenciamento do ciclo de vida
Uso de licenças
Integração ao ciclo de desenvolvimento
Suporte nativo para:
Análise de imagens de contêiner
Análise de dependências de código
Informações para correção
Integração com Kubernetes / OpenShift
Análise de dependências das principais linguagens de programação da equipe
Conformidade com ISMS e ISO 27001
A solução
Para migrar os ambientes de execução e desenvolvimento da Helvetia para a infraestrutura em nuvem, a equipe sabia que precisava ter uma visão geral e avaliar a integridade de todas as aplicações em execução na plataforma. Após avaliar mais de 20 fornecedores segundo seus critérios, concluiu que precisaria de plataformas maduras, como AWS, Openshift e Snyk, para desenvolver a plataforma de contêineres da Helvetia.
A Snyk foi a solução que melhor atendeu às necessidades identificadas, especialmente em gerenciamento de ciclo de vida e de licenças. Além disso, a equipe da Helvetia constatou que a Snyk atendia aos principais requisitos de dependências, com suporte para Java/Maven, Typescript/NPM, Python e .NET. Para os desenvolvedores, era importante ter uma ferramenta simples de usar pela CLI e integrada ao IntelliJ, seu IDE. A integração com o Bitbucket Server também era essencial para analisar repositórios diretamente no Bitbucket. Por fim, a integração completa com CI/CD era fundamental para testar cada build e alertar a equipe quando algum requisito interno fosse violado.
Além disso, o modelo de preços da Snyk permitiu que a Helvetia começasse em pequena escala, de acordo com o número de usuários, e ampliasse o uso com o tempo. Isso foi importante para acompanhar a migração gradual para a nuvem: conforme a Helvetia crescesse, a Snyk poderia crescer junto.
O impacto
Desde que implementou a Snyk, a equipe consegue detectar automaticamente problemas de ciclo de vida no software desenvolvido internamente e usar os relatórios da Snyk para verificar determinadas dependências. Também é possível registrar as dependências utilizadas em um nível mais alto de abstração na ferramenta de gerenciamento de ciclo de vida LeanIX. Assim, a equipe acompanha o uso das dependências e identifica problemas relacionados ao fim do suporte.
O CTO exige que a equipe faça um teste de segurança antes de uma auditoria. Embora esse teste possa revelar muitos problemas, também leva tempo para gerenciá-los. Com a Snyk, porém, as vulnerabilidades mais simples já são tratadas, permitindo priorizar testes de invasão e auditorias para aplicações críticas.
Agora, a equipe da Helvetia tem visibilidade sobre a integridade das aplicações, e as equipes de desenvolvimento contam com ferramentas para avaliar melhor quais componentes de terceiros estão usando. Isso permitiu adotar uma abordagem de segurança contínua. Nas palavras de Björn:
“Precisamos garantir a qualidade durante o desenvolvimento, e a Snyk nos ajudou a conseguir isso. Não teríamos chegado tão longe sem uma ferramenta como a Snyk.”
Integração do Red Hat OpenShift com a Snyk
Atualmente, a equipe usa a integração do Snyk Container com o OpenShift para analisar cargas de trabalho de contêiner em execução e está definindo a arquitetura das aplicações executadas no OpenShift.
Como a equipe da Helvetia não tem experiência com nuvem na AWS nem no Azure, buscou uma plataforma que mostrasse o que o provedor de nuvem estava fazendo e como estava se saindo. A equipe não queria ficar presa a um fornecedor de nuvem e, como disse Björn: “O Openshift nos oferece isso. Não temos muita experiência com contêineres, e o Openshift nos permite gerenciar contêineres com segurança integrada, algo muito importante para nós como empresa.”
O Openshift é um dos ambientes de execução de contêineres que permite à equipe evitar ter que construir tudo por conta própria. Além disso, oferece diversos benefícios para melhorar a experiência dos desenvolvedores. A equipe pode ocultar ou abstrair detalhes da infraestrutura de nuvem na interface do cloudshift, sem precisar se preocupar com o que acontece nos bastidores. Isso reduziu as preocupações com bibliotecas e bancos de dados e deu mais transparência aos desenvolvedores.
