Skip to main content

Guia rápido de boas práticas para Snyk e Bitbucket

Escrito por
Finding open source vulnerabilities within the Bitbucket workflow tumb

3 de março de 2022

0 minutos de leitura

Com o crescimento da parceria entre Snyk e Atlassian, preparamos um guia rápido de boas práticas para ajudar você a aproveitar ao máximo nossa integração com o Bitbucket. Assim, você pode usar o Bitbucket com mais segurança para gerenciar e armazenar seu código, além de monitorar continuamente seu código e suas dependências em busca de possíveis vulnerabilidades com o Snyk.

Neste post, vamos abordar estas sete boas práticas:

  1. Nunca armazene credenciais no código ou em arquivos de configuração no Bitbucket

  2. Remova dados confidenciais

  3. Controle rigorosamente o acesso

  4. Adicione um arquivo SECURITY.md

  5. Valide os apps do Bitbucket

  6. Receba dicas de segurança no seu fluxo de trabalho com code insights

  7. Adicione testes de segurança às pull requests

Guia rápido de segurança do Snyk e Bitbucket com sete boas práticas, incluindo proteção de credenciais, controle de acesso, testes de segurança e insights sobre o código.

Baixe o guia rápido

1. Nunca armazene credenciais no código ou em arquivos de configuração no Bitbucket

Armazenar senhas, chaves de API ou outras credenciais em código acessível publicamente deixa seu aplicativo e sua organização vulneráveis. Por isso, é importante implementar medidas para evitar que credenciais sejam enviadas aos repositórios do Bitbucket.

Ao interromper builds quando necessário para impedir que o código seja enviado ao Bitbucket, o pipeline git-secrets-scan pode bloquear a publicação de dados confidenciais. Essa ferramenta verifica seus arquivos em busca de dados codificados diretamente e sinaliza o que encontrar em um relatório de segurança.

Você também pode procurar segredos que tenham passado despercebidos usando o truffleHog, que verifica repositórios Git — incluindo o histórico de commits e as branches — em busca de segredos. Um hook de pré-commit também pode impedir que desenvolvedores enviem determinados tipos de segredos.

Por fim, você pode se conectar a um gerenciador de segredos, como o Hashicorp Vault, usando o pipeline Vault Secrets export, que busca automaticamente os segredos no HashiCorp Vault quando necessário, em vez de salvá-los no repositório.

2. Remova dados confidenciais

Assim como na dica anterior, é fundamental remover do código armazenado no Bitbucket todos os dados confidenciais. Invalide os tokens ou as senhas que já foram publicados, pois eles podem ter sido roubados por terceiros mal-intencionados.

Além disso, limpe o histórico do Git e force o envio do histórico reescrito. Depois de invalidar os segredos e limpar o histórico do Git, avalie o impacto de qualquer informação privada que possa ter vazado.

O Adaptivist ScriptRunner pode facilitar essas tarefas ao automatizar o gerenciamento de segredos.

3. Controle rigorosamente o acesso

Muitas falhas de segurança são causadas por erros humanos e decisões equivocadas, por isso é importante implementar controles de acesso robustos. Com apenas algumas configurações simples, você pode reduzir o risco de usuários não autorizados acessarem seu código no Bitbucket.

Entre as medidas para reforçar o controle de acesso estão:

  • Exigir autenticação de dois fatores em todas as contas do Bitbucket adiciona uma camada extra de segurança, com uma segunda etapa de verificação.

  • Não permitir que desenvolvedores compartilhem contas reforça as boas práticas de privilégio mínimo e acesso apenas a quem precisa saber.

  • Proteger adequadamente os dispositivos físicos com acesso ao código-fonte ajuda a proteger seus ativos em caso de roubo.

  • Revogar o acesso ao Bitbucket de pessoas que não trabalham mais na empresa é essencial para proteger sua propriedade intelectual.

4. Adicione um arquivo SECURITY.md

O arquivo SECURITY.md permite compartilhar informações importantes sobre a segurança do projeto com futuros colaboradores ou responsáveis pela manutenção. Esse arquivo deve incluir:

  • Política de divulgação: O processo para relatar problemas de segurança, incluindo quem contatar, como entrar em contato e quais informações fornecer.

  • Política de atualizações de segurança: Como o projeto informará os usuários sobre vulnerabilidades recém-descobertas e seus possíveis impactos.

  • Configurações relacionadas à segurança:As configurações recomendadas para quem usa o código, como HTTPS, uma camada de autorização ou protocolos para redefinição de senhas.

  • Lacunas de segurança conhecidas e melhorias futuras: Melhorias de segurança que ainda não foram implementadas e que apontam áreas de risco que os usuários do projeto precisarão mitigar por conta própria.

5. Valide os apps do Bitbucket

Como os apps do Bitbucket são desenvolvidos por terceiros, é importante verificar se são seguros. Primeiro, confirme se as permissões do app impedem o acesso de usuários indesejados ao seu código e se concedem apenas o nível de acesso necessário. Isso também inclui remover ou desativar apps que não são mais usados.

Verifique também a credibilidade de quem criou o app, seja uma pessoa ou uma organização. Lembre-se de que sua segurança é tão forte quanto seu elo mais fraco. Por isso, é essencial escolher apps criados por desenvolvedores confiáveis.

Por fim, avalie a postura de segurança do próprio app do Bitbucket. Se as medidas de segurança forem insuficientes, uma violação poderá dar aos invasores acesso ao seu código. Audite regularmente os apps que você usa para garantir que ainda sejam necessários e seguros.

6. Receba dicas de segurança no seu fluxo de trabalho com code insights

A integração do Snyk com o Bitbucket pode analisar suas pull requests para evitar a introdução de novas vulnerabilidades. O Snyk fornece anotações detalhadas em linha diretamente na pull request, relacionadas à possível vulnerabilidade, para que os desenvolvedores possam tomar decisões informadas na hora.

Além de informações sobre vulnerabilidades em dependências, a Snyk sugere atualizações para corrigir problemas e oferece outras dicas práticas para mitigá-los, com base no Snyk Intel Vulnerability Database.

7. Adicione testes de segurança às pull requests

Os hooks do Bitbucket permitem acionar análises de código em cada pull request para verificar a qualidade e a segurança do código. Por exemplo, você pode usar webhooks para detectar bugs e problemas de qualidade do código com o SonarCloud e automatizar as revisões de código com o Code Climate.

Com os hooks do Bitbucket, o Snyk pode analisar cada pull request para detectar vulnerabilidades ou problemas de licença como parte natural do seu fluxo de desenvolvimento. Assim, as equipes de desenvolvimento recebem os insights de segurança necessários o mais cedo possível.