Skip to main content

Snyk in 30: demonstração de segurança com foco no desenvolvedor

Escrito por
blog feature webinar

2 de março de 2023

0 minutos de leitura

Na demonstração mais recente do Snyk in 30, mostrei como trabalhar em um app, começando no IDE e indo até o app em produção na nuvem. Ao longo do caminho, mostrei como o Snyk se integra às ferramentas que um desenvolvedor usa no dia a dia. Mais especificamente, abordei os aspectos práticos de implementar o Snyk em um ambiente real de desenvolvimento e nuvem, respondendo a perguntas como: 

  • Como tornar a segurança o mais simples possível para os desenvolvedores?

  • Como usar as ferramentas do Snyk em conjunto sem gerar alertas redundantes e ruído desnecessário?

  • Como o Snyk funciona nas perspectivas de desenvolvedores e equipes de segurança?

A segurança precisa priorizar os desenvolvedores

“Pesque onde os peixes estão”, diz um antigo ditado empresarial que nos lembra de ir até onde nossos clientes estão. Se você faz parte de uma equipe de segurança que ajuda desenvolvedores a encontrar e corrigir problemas, vá até onde eles estão: nas ferramentas e no fluxo de trabalho que usam. Também é importante apresentar informações relevantes que ajudem a agir. 

Esse é um desafio específico no desenvolvimento de apps modernos. Muitas vezes, cada aspecto de um app é definido em código: os processos de build e teste, a forma como ele foi projetado para funcionar e a infraestrutura necessária. Embora isso torne as implantações mais rápidas, repetíveis e resilientes, também deixa as cadeias de suprimentos de software muito mais complexas e dinâmicas do que eram há algumas décadas. 

Quando todos esses fatores se juntam, as equipes de segurança enfrentam o grande desafio de encontrar uma forma de proteger todas essas partes em constante mudança que as equipes de desenvolvimento, já sobrecarregadas, aceitem e implementem. É aí que entra a ideia de segurança com foco no desenvolvedor. Em vez de esperar que os desenvolvedores abandonem seus fluxos de trabalho e ambientes do dia a dia, as ferramentas de segurança com foco no desenvolvedor os ajudam a corrigir problemas de segurança onde quer que estejam, ao longo de todo o pipeline do código à nuvem. “Pesque onde os peixes estão.” 

Saiba mais aqui sobre como a segurança de AppSec reforça a segurança geral.

Aqui na Snyk, priorizamos tornar nossas ferramentas de segurança acessíveis e simples para as equipes de desenvolvimento. Ajudamos os desenvolvedores a encontrar e corrigir problemas de segurança enquanto trabalham em seus projetos: escrevendo código e projetando o app no IDE, fazendo commit do código e armazenando-o em repositórios, mesclando alterações na branch principal e, depois, levando tudo para os pipelines e para a nuvem. Veja o que abordamos sobre cada uma dessas etapas nesta demonstração do Snyk: 

Proteja o código durante o desenvolvimento

O momento mais eficiente e econômico para encontrar e corrigir um problema de segurança é quando ele é introduzido. É mais fácil para os desenvolvedores fazerem uma alteração enquanto estão programando e decidindo quais pacotes de terceiros usar. O importante é orientá-los a corrigir os problemas enquanto o código está à sua frente. 

Demonstrei como a ferramenta de teste de segurança de aplicações estático (SAST) da Snyk funciona nos IDEs: ela analisa o código em segundos para que os desenvolvedores continuem trabalhando com rapidez. Também sincroniza com o IDE orientações para correção e informações sobre cada vulnerabilidade encontrada. Assim, os desenvolvedores entendem como o problema de segurança foi introduzido, como se propaga pelo código e o que fazer para corrigi-lo.

Análise de dependências de terceiros com foco no desenvolvedor

Enquanto analisamos o código próprio, também podemos proteger as dependências de terceiros. A ferramenta de análise de composição de software (SCA) da Snyk cria um grafo abrangente dos pacotes de terceiros usados no app, incluindo suas dependências transitivas. Em seguida, identifica os componentes vulneráveis. Seja um pacote adicionado pelo desenvolvedor ou uma dependência de outra dependência, a Snyk indica o lugar certo para fazer a alteração e corrigir a vulnerabilidade. Ao adicionar pacotes, os desenvolvedores também podem consultar uma pontuação de recomendação, que indica fatores que podem tornar o pacote inseguro no futuro, mesmo que não haja vulnerabilidades no momento. Calculamos essa pontuação considerando fatores como o tamanho da comunidade do componente e sua popularidade — ótimos indicadores para prever se um pacote de código aberto será adequado para o app a longo prazo. 

Na demonstração, foquei principalmente no código do app no IDE.  A Snyk também pode analisar arquivos YAML do Kubernetes, configurações de IaC e até containers durante o desenvolvimento, em tempo real, oferecendo recomendações de correção semelhantes e voltadas para desenvolvedores.

Automatize a segurança no pipeline

Quando o código fica pronto, ele é commitado, enviado aos repositórios e preparado para ser mesclado. A Snyk se integra a repositórios de código como GitHub, GitLab e Bitbucket. Isso não só adiciona outra camada de segurança, como também monitora o código — mesmo quando não está em desenvolvimento ativo — e identifica novas vulnerabilidades de dia zero. A Snyk também oferece uma das análises mais simples e práticas: a verificação de PR. Se um desenvolvedor salvar e commitar um componente inseguro, nossas ferramentas sinalizam o problema na pull request. Configuramos essas verificações automaticamente quando um repositório é integrado, sem exigir nenhuma ação da equipe de desenvolvimento. Também verificamos as alterações no código para garantir que nenhuma vulnerabilidade nova seja introduzida. Essas verificações integradas garantem que novas alterações não criem novos problemas.

A integração com os repositórios também nos permite ajudar a corrigir problemas rapidamente, criando PRs. Podemos corrigir uma única vulnerabilidade, várias de uma vez ou atualizar componentes desatualizados com uma PR de correção. Se as equipes confiarem nos processos de teste, essas correções poderão ser totalmente automatizadas.

Segurança de containers e o problema do excesso de alertas

Hoje, os containers são uma das formas mais populares de empacotar e executar apps. Eles são ótimos para ganhar velocidade e evitar o problema de “funciona na minha máquina”, mas podem gerar excesso de alertas nas análises de segurança. “Pescar onde os peixes estão” é uma boa ideia, mas, se você jogar uma pedra de 90 kg no lago, vai espantar os peixes. A Snyk resolve esse problema de excesso de alertas com verificações de segurança para containers.

Na demonstração, mostrei o resultado típico da análise de um container do meu app, com mais de 700 vulnerabilidades listadas. Em seguida, demonstrei como a Snyk sugere ações que os desenvolvedores podem realizar sem precisar analisar todas elas. Primeiro, mostrei como selecionar uma imagem pai (ou imagem base) para usar como ponto de partida. Vimos como as recomendações da Snyk permitem que um desenvolvedor faça uma única alteração no Dockerfile para escolher uma imagem pai melhor e resolver centenas de problemas. 

Depois, analisamos outro processo de build usado por muitas empresas, em que uma equipe central, voltada para plataforma ou DevOps, seleciona um conjunto interno de imagens base “padrão ouro” que os desenvolvedores devem usar. Na demonstração, mostramos como a Snyk orienta os desenvolvedores a usar essas imagens e como elas ajudam a concentrar a atenção nas vulnerabilidades que podem ser adicionadas ao container, em vez do ruído vindo de uma imagem pai.

Segurança de implantação com foco no desenvolvedor

Com nossas ferramentas de infraestrutura em nuvem, os desenvolvedores também podem garantir a segurança das configurações de nuvem. Como mencionei, podemos executar essas análises no IDE. Na demonstração, usei a CLI da Snyk para analisar a configuração do Terraform. Mais uma vez, as análises de IaC tendem a gerar muito ruído. Ao analisar apenas o arquivo de configuração, presume-se o pior cenário e todos os problemas possíveis são exibidos. Mas, quando as análises de IaC são combinadas com o contexto do ambiente de nuvem ativo, tudo muda. Na demonstração, vimos um app com um bucket de armazenamento AWS S3. Ao analisar apenas o IaC, encontrei quatro avisos sobre configurações de segurança inadequadas para o bucket do S3. No entanto, no ambiente de nuvem ativo, tenho uma política controlada centralmente que ignora essas configurações inseguras, garantindo que todos os buckets do S3 sejam seguros. Nesse caso, a Snyk combinou a análise de IaC com o contexto da nuvem para eliminar alertas sem relevância e concentrar a atenção em problemas de configuração incorreta mais importantes. E, como a Snyk unifica nuvem e IaC, as equipes de segurança precisam gerenciar apenas um mecanismo de políticas unificado para cobrir todo o ambiente de implantação.

A Snyk também foi feita para equipes de segurança!

Embora eu tenha dedicado boa parte do tempo aos recursos da Snyk voltados para desenvolvedores, esta demonstração também mostrou como as equipes de segurança usam nossa ferramenta. A Snyk oferece visibilidade e relatórios centralizados sobre todas essas vulnerabilidades — em cada app e em cada linha de código. As equipes de segurança podem consultar detalhes de problemas na nuvem ou no código e filtrar por estrutura de conformidade, ambiente ou problema específico. Depois, podem salvar as visualizações de relatório mais úteis e exportá-las ou compartilhá-las por link. 

Assista a esta demonstração do Snyk in 30 para saber mais

Se quiser ver essas ferramentas em ação, assista à demonstração completa do Snyk in 30. E, além de tudo o que mencionei, os participantes também fizeram várias perguntas interessantes durante o período de perguntas e respostas. Nos minutos finais da apresentação, tivemos a oportunidade de falar sobre:

  • As medidas internas de segurança da Snyk ao trabalhar com o código dos clientes

  • Mais informações sobre nossa parceria em testes dinâmicos de segurança de aplicações (DAST)

  • Mais detalhes técnicos sobre como nos integramos aos ambientes de desenvolvimento

Se quiser saber mais sobre nossa plataforma com foco no desenvolvedor e se aprofundar nesta sessão de perguntas e respostas, assista à apresentação aqui.

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.