Skip to main content

Boas práticas de segurança empresarial para gerenciar vulnerabilidades em escala

Escrito por
Blog illustrations vulnerabilities at scale

9 de novembro de 2020

0 minutos de leitura

O que é segurança empresarial?

Entre outras coisas, a segurança empresarial em escala envolve lidar com as seguintes questões:

  • O acúmulo de problemas de segurança aumenta, desperdiçando o tempo de desenvolvedores e profissionais de segurança.

  • Desenvolvedores e profissionais de segurança não colaboram bem devido à falta de confiança entre eles.

  • Vulnerabilidades graves ficam expostas por muito tempo porque as questões de segurança mais relevantes e corrigíveis não são priorizadas.

Como garantir a conformidade eficaz com os requisitos de segurança entre várias equipes, diante de um número avassalador de vulnerabilidades que precisam ser corrigidas?

É disso que trata este guia de boas práticas de segurança empresarial!

Baixe o guia.

Ao implementar uma arquitetura de segurança empresarial ou uma solução de cibersegurança corporativa, você enfrentará desafios de segurança de aplicações, como garantir que suas equipes de desenvolvimento não tenham o ritmo de trabalho reduzido, nem sejam limitadas ou bloqueadas.

Recentemente, a Snyk anunciou suas soluções de gerenciamento de segurança empresarial em escala, que destacam recursos de gerenciamento de projetos com foco nos desenvolvedores e na produtividade das equipes de segurança e desenvolvimento. Recursos como atributos e tags de projetos, políticas no nível do projeto e condições para reprovar pull requests são ótimos exemplos de como ajudar os desenvolvedores a agir e permitir que a equipe de segurança se concentre no que importa.

Tome medidas para aprimorar sua arquitetura de segurança empresarial:

  • reprove o build somente quando houver uma correção disponível

  • atribua automaticamente os problemas ao security champion para análise

  • crie pull requests priorizados para corrigir vulnerabilidades

  • Conformidade com licenças

  • vulnerabilidades alcançáveis

    Painel do Snyk Reports mostrando a quantidade de problemas de segurança e licença, com gráficos de problemas ao longo do tempo e janela de exposição.

Crie pull requests priorizados para corrigir vulnerabilidades

Desafio: há muitas vulnerabilidades de segurança acumuladas, e os desenvolvedores têm dificuldade para lidar com elas em meio a tantos outros problemas.

Solução: reduza o risco geral concentrando-se nas vulnerabilidades de segurança mais relevantes que podem ser corrigidas.

A Snyk criou a pontuação de prioridade de vulnerabilidade para ajudar a resolver o antigo problema da classificação de vulnerabilidades de segurança, como ocorre com o CVSS padronizado. Essa classificação gera grandes desafios para desenvolvedores e profissionais de segurança de aplicações, que precisam determinar o verdadeiro impacto de uma vulnerabilidade de segurança no contexto correto. Escrevemos mais sobre os desafios da classificação de vulnerabilidades de segurança com o CVSS, em um artigo que também serve como uma boa introdução aos conceitos básicos do CVSS.

A pontuação de prioridade da Snyk considera dados como a maturidade do exploit, a disponibilidade de uma correção e a pontuação CVSS, entre outros, para definir uma faixa de prioridade de 0 a 1.000 para cada vulnerabilidade. Quanto maior a pontuação, mais urgente é corrigir a vulnerabilidade.

Para ajudar você a organizar o grande volume de vulnerabilidades de segurança, queremos garantir que seu foco esteja nas mais relevantes, reduzindo assim o risco geral e o período de exposição.

Como fazer isso de um jeito útil e prático para os desenvolvedores?

Acesse as configurações da integração da Snyk e habilite a criação de pull requests para todas as vulnerabilidades corrigíveis de prioridade máxima no projeto. Mas não se preocupe: isso não vai inundar os desenvolvedores com pull requests nem tomar todo o tempo deles! Vamos abrir apenas um novo pull request por dia. Esses pull requests são práticos e oferecem versões atualizadas dos pacotes upstream com um caminho de upgrade disponível. Por isso, a equipe de desenvolvimento precisa dedicar o mínimo de esforço para analisá-los e mesclá-los.

Configurações da integração do Snyk com o GitHub, mostrando uma conta conectada e opções de solicitação de pull para correções automáticas

Atribua automaticamente os problemas ao security champion para análise

Desafio: as correções de segurança são automatizadas e geram um pull request no repositório do projeto — o que é ótimo. Mas quem deve analisá-las?

Solução: padronize a análise das correções automatizadas e das atualizações automatizadas de dependências, atribuindo automaticamente um revisor ao pull request criado. Você pode atribuir a análise a alguém com base na última pessoa que alterou o arquivo de manifesto, seja pom.xml ou package.json, ou indicar especificamente o security champion ou outra pessoa da equipe para ajudar a analisar as alterações propostas no pull request.

Página de configurações do Snyk exibindo uma integração conectada com o GitHub e opções de atribuição de responsáveis por pull requests ativadas.

Reprove o build somente quando houver uma correção disponível

Desafio: você quer ajudar os desenvolvedores a criar software com segurança usando código aberto, mas acaba bloqueando completamente o trabalho deles — muitas vezes, sem que possam agir sobre os problemas encontrados.

  • Um desenvolvedor descobre que o pipeline de CI falhou por causa de um problema de segurança de baixa gravidade e não consegue avançar com o projeto.

  • Um desenvolvedor tem dificuldade para lidar com uma vulnerabilidade de segurança detectada pelo pipeline de CI, que reprovou o build mesmo sem haver uma correção disponível.

Solução: para ajudar os desenvolvedores a adotar a segurança e lidar com falhas sem descartá-las como ruído ou falsos positivos, você precisa oferecer ferramentas úteis e práticas, integradas aos fluxos de trabalho deles.

A Snyk oferece configurações detalhadas para que você reprove o build de CI somente quando as vulnerabilidades encontradas ultrapassarem um limite de alta gravidade. Assim, quando os desenvolvedores precisarem dedicar tempo a uma vulnerabilidade de segurança por causa de uma falha no ambiente de build, poderão priorizar os problemas mais importantes.

O que você espera que os desenvolvedores façam quando um pipeline de CI falha devido a uma vulnerabilidade de segurança? Provavelmente, que a corrijam. Ótimo, mas a maioria das ferramentas e integrações simplesmente reprova o build, independentemente da situação. É aí que entra o foco da Snyk nos desenvolvedores. A integração de CI tem uma opção para reprovar o build somente quando os problemas encontrados tiverem uma correção disponível. Assim, os desenvolvedores podem realmente agir para resolver os problemas de segurança, em vez de passar horas triando vulnerabilidades para só então descobrir que não há correção.

Para aproveitar todos esses recursos de segurança, acesse as configurações da integração relevante para seu ambiente, como o GitHub, e ajuste estas condições de falha do build quando os testes da Snyk analisarem pull requests, por exemplo:

Página de configurações do Snyk mostrando uma integração conectada com o GitHub e testes de segurança padrão ativados para pull requests.

Priorize as vulnerabilidades alcançáveis pelo seu próprio código

Desafio: você tem dificuldade para priorizar quais componentes de código aberto corrigir primeiro. Por exemplo:

  • Tenho muitas vulnerabilidades de segurança nas minhas bibliotecas de código aberto, mas como sei qual delas é usada no código de produção?

  • Os desenvolvedores dizem: “Sim, estamos usando esta biblioteca de código aberto, mas como podemos saber se usamos a classe ou o método em que existe a vulnerabilidade de segurança?”

Solução: a Snyk entende que desenvolvedores e profissionais de segurança precisam de uma maneira melhor de priorizar o trabalho de triagem de centenas de vulnerabilidades. Para isso, aplica análise estática de código e determina se uma vulnerabilidade de segurança em uma biblioteca de código aberto de terceiros que você usa pode ser alcançada pelo seu próprio código (de primeira parte).

A Snyk entende o contexto em que uma vulnerabilidade foi encontrada e ajuda a priorizar o trabalho de correção, reduzindo os riscos para os negócios e o período de exposição.

Tecnicamente, o recurso de vulnerabilidades alcançáveis se baseia em um algoritmo da Snyk que cria um grafo de chamadas do código-fonte da sua aplicação até as dependências de código aberto do projeto.

Por enquanto, o suporte da Snyk à análise de vulnerabilidades alcançáveis se aplica apenas a projetos Java, Maven e Gradle e está disponível somente nos testes da CLI ou na interface da Snyk ao testar um projeto. O suporte ao Git está a caminho!

Identifique vulnerabilidades de segurança com base na possibilidade de serem alcançadas pelo seu código:

  1. Verifique se você está usando a versão mais recente da Snyk CLI

  2. Acesse a pasta da sua aplicação e os arquivos de manifesto relevantes

  3. Execute snyk test --reachable

Se forem encontradas vulnerabilidades alcançáveis, o resultado do teste será semelhante à captura de tela a seguir:

Saída do terminal mostrando quatro problemas de dependência e um caminho explorável de vulnerabilidade corrigido com a atualização do Apache HttpComponents.

Na verdade, você pode acompanhar todas essas informações na interface da Snyk.

Envie um snapshot deste manifesto à Snyk para que possamos monitorá-lo continuamente e enviar alertas. Para monitorar o projeto, execute:

snyk monitor --reachable

Agora, podemos filtrar todos os problemas de segurança por vulnerabilidades alcançáveis e priorizar a correção delas:

Painel de vulnerabilidades mostrando uma vulnerabilidade de travessia de diretório de gravidade média alcançável no Apache HttpClient, com informações de correção e os caminhos que levam ao código vulnerável.

Se quiser saber mais sobre o recurso de vulnerabilidades alcançáveis, confira estas publicações do blog:

Políticas de conformidade de licenças

Desafio: você está enfrentando os desafios típicos de um software de segurança empresarial se tiver dificuldade para atender às seguintes solicitações do departamento jurídico:

  • Precisamos de uma lista de todas as bibliotecas de código aberto usadas em todos os projetos de aplicações.

  • É essencial não violar leis de licenciamento e direitos autorais por distribuir, sem saber, software copyleft em desacordo com sua política de licenças.

Solução: a Snyk ajuda você a lidar com questões de segurança empresarial e conformidade de licenças de duas maneiras:

  • Ela fornece um relatório do uso de licenças em todos os projetos, que você pode exportar como CSV.

  • Ela permite definir políticas de licenças de software de código aberto, aplicáveis no nível de projetos e organizações, para garantir a conformidade com as diretrizes do departamento jurídico da sua empresa.

Gerenciamento de licenças de software

A guia Relatórios da Snyk permite ver todas as licenças usadas nos projetos, incluindo, se necessário, todos os projetos importados e as organizações.

Você também pode filtrar a lista como quiser ou classificá-la pelo número de dependências ou projetos afetados por licenças específicas. Isso ajuda a priorizar rapidamente os requisitos jurídicos que precisam ser atendidos devido a violações de licenças específicas.

Se precisar exportar a lista para colaborar com outra equipe em uma planilha, clique no botão Exportar como CSV para criar uma lista de materiais de software que inclua suas licenças.

Página de licenças do Snyk Reports, mostrando os tipos de licença dos projetos, a quantidade de dependências e de projetos, além de um botão para exportar como CSV.

Políticas de licenças

Estabelecer uma política de licenças para toda a organização é uma prática comum para evitar que a empresa corra riscos jurídicos pelo uso inadequado de bibliotecas de software ou, pior ainda, viole completamente os termos das licenças.

Para lidar com essa questão, a Snyk permite definir políticas de licenças para garantir que os projetos sejam reprovados na verificação de licenças durante o build ou no pipeline de integração contínua.

Você pode definir políticas de segurança detalhadas para projetos que correspondam a atributos específicos. Assim, as equipes têm liberdade para trabalhar de forma independente, com as proteções necessárias.

Como definir uma política na interface da Snyk?

As políticas são configuradas no nível do grupo, por isso você precisa ser administrador de grupo. Elas se aplicam a todas as organizações e projetos pertencentes a grupos específicos.

Gerenciador de políticas do Snyk mostrando a política de licenças padrão aplicada a uma organização.

Como você pode ver, a Snyk já aplica uma política padrão de conformidade de licenças, alinhada às expectativas de licenciamento empresarial. Você pode ajustá-la para atender aos requisitos jurídicos da sua empresa.

Interface da política de licenças do Snyk exibindo nomes de licenças, configurações de gravidade alta e média e um campo de descrição

Categorize os projetos com eficiência

Desafio: veja como saber se você precisa urgentemente de soluções de segurança empresarial:

  • Desenvolvedores e profissionais de segurança passam muito tempo procurando os projetos que precisam de atenção.

  • Você está afogado em um mar de vulnerabilidades de segurança e não sabe por onde começar.

Solução: configure projetos com atributos de impacto nos negócios e metadados da pilha de tecnologia. Assim, o serviço recebe o nível de atenção adequado à sua criticidade, inclui detalhes sobre o ambiente de implantação e as características do aplicativo e representa corretamente se ele é frontend ou backend.

Pontos extras: com a Snyk, as soluções de segurança corporativa levam em conta o feedback dos clientes. Nós realmente ouvimos você — e é por isso que sabemos o que desenvolver. Outro recurso que ajuda a identificar quem é responsável por um aplicativo na organização é o campo dedicado _Project owner_field, que você pode definir como qualquer usuário ou desenvolvedor com acesso ao projeto na Snyk.

Se você prefere assistir a um vídeo sobre o assunto, confira este breve resumo sobre como gerenciar projetos com base em atributos e tags de projeto:

Managing Projects at Scale with Snyk
Visão geral do projeto no Snyk para package.json, mostrando vulnerabilidades, detalhes do projeto e um menu suspenso de responsáveis pelo projeto aberto.

A lista de projetos a seguir pode parecer intimidadora, não é?

Por qual projeto devo começar? Como posso filtrar essa lista de projetos em toda a minha organização ou unidade de negócios?

Painel do Snyk Projects com uma lista de projetos, a quantidade de vulnerabilidades altas, médias e baixas e links para visualizar relatórios.

Se você trabalha com SecOps, ou operações de segurança, esses desafios são bastante comuns. Como responsável pela segurança na organização — por exemplo, como security champion ou líder de grupo —, você provavelmente precisa de ajuda para lidar adequadamente com as questões de segurança corporativa.

Veja como resolvemos esse problema com a Snyk: uma imagem vale mais que mil palavras. Confira a lista de filtros à esquerda, que ajuda você a filtrar seus projetos com base em:

  • Problemas e correções possíveis — este é um filtro muito útil. Você pode garantir que os desenvolvedores priorizem as vulnerabilidades de segurança que realmente podem ser corrigidas, sem perder tempo triando e validando as que não podem. Soluções de segurança corporativa sem complicação!

  • Integrações — explore os projetos com base na origem. Você está procurando um projeto monitorado pela CLI da Snyk? Quer encontrar todos os projetos da integração com GitLab ou Bitbucket Cloud?

  • Ambiente — que tipo de projeto é este? Frontend? Backend? Talvez seja um aplicativo móvel monitorado com o novo suporte ao plugin Gradle da Snyk. Filtre rapidamente por aqui.

  • Ciclo de vida — a arquitetura de segurança corporativa muitas vezes precisa aplicar políticas de segurança de acordo com a exposição do aplicativo ao público. Por exemplo, se um aplicativo só pode ser acessado internamente por funcionários de uma empresa, ele pode ter uma criticidade menor. Com este atributo de ciclo de vida, você pode definir e filtrar projetos conforme estejam implantados em produção, homologação ou outro ambiente.

    Painel do Snyk Projects com projetos e contagens de problemas de gravidade alta, média e baixa, além de filtros por integrações e ambientes

Veja como configurei um dos meus projetos para encontrá-lo facilmente na lista de projetos usando os filtros relacionados à segurança:

Visão geral de um projeto no Snyk para package.json, mostrando vulnerabilidades e um menu suspenso Ambiente aberto com Frontend, Backend, Interno, Externo, Mobile e Saa

Baixe o guia de boas práticas de segurança corporativa.

Quer saber mais?

Leia mais sobre como crescer com a Snyk, com a equipe de produto da própria Snyk.

Consulte a documentação da base de conhecimento da Snyk sobre atributos de projeto e saiba como configurá-los.

Comece a jogar Capture the Flag

Aprenda a resolver desafios de Capture the Flag assistindo à gravação sob demanda do nosso workshop virtual introdutório.