21 Melhores Práticas de Segurança para o GitHub

O GitHub é extremamente proativo na proteção da segurança de seus usuários e de seus códigos. Além de incentivar ou impor o uso da Autenticação Multifatorial (MFA), também desenvolveu e implementou ferramentas para ajudar a prevenir o acesso não autorizado e a exposição de informações sensíveis em repositórios públicos. Consequentemente, a maioria dos incidentes de segurança relacionados ao GitHub são causados por erros de seus usuários. Este artigo explora algumas práticas recomendadas que as organizações que utilizam o GitHub podem adotar para garantir a segurança de seus repositórios no GitHub, bem como do código e dos dados que eles contêm.

Download da ficha técnica Saiba mais

As 21 principais práticas recomendadas de segurança para o GitHub

Aqui estão as 21 melhores práticas de segurança para o GitHub:

#1. Nunca armazene credenciais e dados confidenciais no GitHub.

O GitHub é um sistema de controle de versões, portanto os dados armazenados nele permanecem para sempre. Ferramentas como o git-secrets podem bloquear o envio de código contendo dados sensíveis para o GitHub.

#2. Desativar o processo de bifurcação (Fork)

O processo de "fork" cria uma cópia de um repositório do GitHub sem afetar o código-fonte original. Desative o recurso de bifurcação (fork) para manter o controle sobre o código-fonte e garantir que dados sensíveis não sejam adicionados e tornados públicos por uma bifurcação não autorizada.

#3. Desativar alterações de visibilidade

O GitHub suporta repositórios públicos e privados, e usuários com privilégios podem alterar a visibilidade de um repositório. Limite o conjunto de usuários que podem fazer isso desativando a permissão para todos os membros da sua organização modificarem a opção “Alteração de visibilidade do repositório” nas configurações de privilégios de membros do GitHub.

#4. Valide seu aplicativo GitHub

As organizações frequentemente trabalham com desenvolvedores terceirizados que têm acesso a contas do GitHub. Esses usuários externos devem ter acesso limitado, e todos os commits devem ser validados antes de serem adicionados a um repositório.

#5. Impor a autenticação de dois fatores

O GitHub permite que as organizações imponham o uso da autenticação de dois fatores (2FA). Exigir a autenticação de dois fatores (2FA) para todos os usuários reduz o risco de vazamento de código ou código malicioso devido a contas inseguras.

#6. Implementar SSO (somente para GitHub Enterprise)

O GitHub Enterprise permite que as organizações atribuam permissões a vários recursos de forma granular. Além disso, o login único (SSO) SAML permite a integração do GitHub com a solução IAM de uma organização.

#7. Limitar o acesso aos endereços IP permitidos

A criação de listas de permissão de IP permite que uma organização limite o acesso a dispositivos locais ou VPNs corporativas. Isso protege contra o acesso ao repositório por ex-funcionários ou dispositivos não autorizados.

#8. Gerencie rigorosamente as permissões de colaboradores externos

Os colaboradores externos podem fazer parte de um projeto apenas por um curto período de tempo, e o acesso deve ser removido quando sua função estiver concluída. O gerenciamento de contas externas reduz a segurança da API e o preço "por usuário" do GitHub.

#9. Revogar permissões em tempo hábil

Os usuários podem não precisar mais de acesso ao repositório depois de deixarem a empresa ou o projeto. Revogar o acesso ou alterá-lo para modo somente leitura reduz o risco associado à conta.

#10. Exigir assinatura de commit

A identidade percebida de um usuário no GitHub pode ser alterada simplesmente modificando sua configuração do Git. A assinatura de código assina criptograficamente os commits para garantir autenticidade e rastreabilidade.

#11. Impor revisão de código antes dos commits

A revisão de código pode identificar potenciais vulnerabilidades de segurança ou funcionalidades maliciosas em um commit. O GitHub pode ser configurado para que todos os envios sejam solicitações de pull, permitindo a revisão antes da fusão.

#12. Adicionar um arquivo Security.md

O arquivo security.md documenta oficialmente as políticas de segurança de um repositório. Isso pode ser usado para compartilhar requisitos de segurança e meios de relatar vulnerabilidades.

#13. Rotacionar chaves SSH e tokens de acesso pessoal (PATs)

O GitHub usa chaves SSH e PATs como alternativa às senhas para autenticação. Essas credenciais devem ser rotacionadas regularmente para eliminar credenciais potencialmente comprometidas.

#14. Auditar todo o código enviado para o GitHub

Códigos legados e externos podem ser adicionados a um repositório do GitHub como parte de um aplicativo. Este código deve ser auditado quanto a possíveis vulnerabilidades antes de ser aceito em uma base de código.

#15. Analise seus registros de auditoria do GitHub em busca de atividades suspeitas.

O GitHub oferece um sistema robusto de registro de atividades dentro do GitHub de uma organização. A revisão regular desses registros pode ajudar a identificar atividades potencialmente suspeitas e contas comprometidas.

#16. Ativar alertas para dependências vulneráveis

Os aplicativos podem herdar vulnerabilidades de suas dependências, em particular dependências de terceiros e de código aberto . O GitHub oferece relatórios automáticos de vulnerabilidades nos repositórios públicos de uma organização.

#17. Utilizar varredura secreta automatizada antes do compromisso

As credenciais embutidas no código de um aplicativo correm o risco de serem expostas, mesmo em repositórios privados. A verificação automática de segredos identifica e bloqueia essas credenciais, impedindo que sejam incluídas no código enviado.

#18. Limpe seu histórico do GitHub

O extenso histórico de versões do GitHub pode ser problemático se dados sensíveis estiverem incluídos no código. O histórico pode ser reescrito usando o comando git filter-branch.

#19. Ativar a proteção de ramificação do Git

A proteção de ramificações do Git impede modificações não autorizadas em ramificações específicas. Isso pode proteger esses branches contra perda de código e dados devido a exclusão acidental ou merge com git squash.

#20. Adicione arquivos sensíveis ao .gitignore

Um repositório git local pode exigir acesso a determinadas chaves SSK e tokens de acesso que não devem ser enviados para um repositório git. Incluir esses arquivos no .gitignore impede que sejam carregados.

#21. Contrate um serviço de "cofre de segredos".

Um cofre de segredos armazena informações confidenciais — senhas, chaves criptográficas, etc. — que um aplicativo precisa acessar. Um cofre oferece uma proteção mais robusta do que a disponível no GitHub.

Achieving GitHub Security with Check Point

Para organizações que utilizam repositórios do GitHub, protegê-los é essencial para resguardar o código e os dados sensíveis que eles possam conter.

For more advice on keeping your GitHub repos safe, check out this more comprehensive list of GitHub security best practices. Check Point offers solutions to secure applications throughout the software development lifecycle (SDLC).

Learn more about how your organization can enhance GitHub security with Check Point Developer Security.