Introduction
A prevenção de incidentes de segurança é menos dispendiosa e menos perturbadora do que responder a eles. Ao proteger proativamente seu ambiente, você reduz sua exposição a ameaças como credenciais exploradas, acesso não autorizado e ataques à GitHubcadeia de suprimentos.
Este guia se concentra principalmente nas medidas de proteção que você pode aplicar entre organizações que fazem parte de uma empresa.GitHub Enterprise Cloud Para testar GitHub Enterprise Cloud, consulte Configurando uma avaliação do GitHub Enterprise Cloud.
Muitos dos recursos de GitHubsegurança mencionados aqui, como configurações de segurança, conjuntos de regras de branch e controles de acesso, podem ser configurados no nível da organização ou da empresa.
Ações imediatas
Essas são ações de alto impacto que você pode executar agora para estabelecer uma linha de base de segurança em uma organização.
- Estabelecer cobertura de segurança
- Reforçar controles
- Examinar e restringir o acesso
- Executar uma avaliação de risco secreto
Estabelecer cobertura de segurança
Certifique-se de que as ferramentas de GitHub estejam GitHub Advanced Security ativas em todos os repositórios. Em vez de habilitar as ferramentas um a um, você pode criar e aplicar uma configuração de segurança, que é uma coleção de configurações de segurança que podem ser aplicadas a repositórios em sua organização ou empresa em uma única ação.
Uma configuração forte pode incluir:
Secret scanning
** e **proteção por push** para detectar segredos que já foram confirmados em sua base de código e impedir que novos segredos sejam enviados por push. As credenciais vazadas são uma das causas mais comuns de violações de segurança.
Code scanning
** para identificar vulnerabilidades e erros de codificação no código-fonte antes que eles cheguem à produção.
Dependabot alerts
** e **Dependabot security updates** notificar você sobre vulnerabilidades conhecidas e malware em suas dependências e abrir automaticamente solicitações de pull para atualizar dependências vulneráveis.
Consulte Criando uma configuração de segurança personalizada (organizações) e Criando uma configuração de segurança personalizada para sua empresa (empresas).
Reforçar controles
GitHub fornece uma variedade de controles que regem o que pode acontecer em seus repositórios e organização. Garantir que esses controles sejam configurados adequadamente é essencial para reduzir o risco.
Proteger ramificações críticas com conjuntos de regras
Os conjuntos de regras permitem definir regras de proteção para ramificações e tags em um ou mais repositórios. Use-os para impor requisitos, como revisões em solicitações de pull e verificações de status (como verificações de segurança automatizadas). Isso pode ajudar a impedir que alterações não autorizadas atinjam o código de produção, incluindo alterações de contas comprometidas.
Consulte Criar conjuntos de regras para repositórios na sua organização (organizações) e Impondo a governança de código na sua empresa com conjuntos de regras (empresas).
Controlar quem pode ignorar a proteção por push
Quando você habilita a proteção por push, os colaboradores que tentam enviar por push um segredo detectado são bloqueados, mas, por padrão, eles têm a opção de ignorar o bloco. O bypass delegado requer que as solicitações de bypass passem por um ciclo de revisão e aprovação, de modo que nenhum bypass pode acontecer sem uma decisão explícita e auditada.
Consulte Habilitar o bypass delegado para proteção de push.
Aplicar revisão de dependências em pull requests
A ação de revisão de dependência permite capturar dependências vulneráveis antes que elas sejam mescladas, exibindo vulnerabilidades conhecidas nas alterações de dependência de uma solicitação de pull. Como a proteção por push para segredos, ela atua como uma barreira em vez de um alerta depois que o evento ocorre. Você pode impor a revisão de dependências em pull requests em toda a sua organização.
Confira Sobre a análise de dependência e Como aplicar a revisão de dependências em uma organização.
Examinar e restringir o acesso
O acesso apropriado quando foi concedido pode não ser mais necessário. Examinar regularmente quem e o que tem acesso a uma organização reduz o risco de ações não autorizadas.
Auditar o acesso de membros e seguir o princípio do menor privilégio
Verifique se os membros das organizações têm apenas o acesso necessário. Remova os membros que não precisam mais de acesso, rebaixe as funções em que as permissões mais amplas não são justificadas e examine o acesso de colaboradores externos. O acesso excessivamente permissivo aumenta o raio de explosão de qualquer conta comprometida.
Se as funções padrão forem mais permissivas do que uma organização exige, você poderá criar funções personalizadas que concedem apenas as permissões específicas de que cada equipe precisa. Isso é especialmente valioso para as organizações que adotam um modelo de segurança de confiança zero.
Consulte Identificando as funções exigidas pela sua empresa.
Examinar aplicativos autorizados
OAuth apps e GitHub Apps que estão instalados em uma organização podem acessar dados. Examine a lista de aplicativos autorizados e remova qualquer um que não seja mais necessário ou não seja mais confiável. Integrações obsoletas representam uma superfície de ataque muitas vezes negligenciada.
Confira Revisão e modificação de aplicativos GitHub instalados e Sobre as restrições de acesso do aplicativo OAuth.
Restringir o acesso à rede com listas de permissões de IP
Para organizações em GitHub Enterprise Cloud, se sua organização opera a partir de intervalos de rede conhecidos, configure uma lista de IPs permitidos para restringir o acesso aos recursos de GitHub somente através desses intervalos. Isso adiciona uma camada de defesa contra credenciais comprometidas que estão sendo usadas de locais inesperados.
Confira Gerenciar endereços IP permitidos para sua organização e Como restringir o tráfego de rede para sua empresa com uma lista de permissões de IP.
Executar uma avaliação de risco secreto
Execute uma verificação gratuita sob demanda para os repositórios de uma organização que fornece uma exibição pontual do número total de segredos expostos no momento em toda a sua organização.
Consulte Executando a avaliação de risco secreto para sua organização.
Ações de curto prazo
Essas ações também são importantes para sua postura de segurança, mas podem exigir mais preparação e coordenação antes que você possa implantá-las.
- Fortalecer a autenticação
- Fortalecer seus GitHub Actions fluxos de trabalho
- Preparar-se para um incidente de segurança
Fortalecer a autenticação
A autenticação fraca ou comprometida é uma das causas mais comuns de aquisição de conta. Exigir autenticação forte em toda a sua organização reduz significativamente esse risco.
Exigir autenticação de dois fatores (2FA) para todos os membros, o que garante que uma senha comprometida por si só não seja suficiente para acessar uma conta. Antes de impor o requisito, comunique-se com sua organização para que os membros tenham tempo para configurar a 2FA.
As organizações podem GitHub Enterprise Cloud ir mais longe impondo o SSO (logon único), que centraliza a autenticação por meio de seu provedor de identidade.
Confira Exigindo a autenticação de dois fatores na sua organização e Sobre o gerenciamento de identidades e de acesso com o logon único do SAML.
Fortalecer seus GitHub Actions fluxos de trabalho
GitHub Actions Os workflows frequentemente têm acesso a segredos, credenciais de implantação e permissões de gravação no seu repositório. Sem uma configuração cuidadosa, uma ação comprometida ou mal-intencionada pode exfiltrar dados ou injetar código mal-intencionado.
Declarar explicitamente permissões de fluxo de trabalho
Por padrão, os fluxos de trabalho podem receber permissões amplas por meio do GITHUB_TOKEN. Declare explicitamente as permissões mínimas que cada fluxo de trabalho precisa usando a permissions chave em seus arquivos de fluxo de trabalho. Isso limita os danos que uma etapa de fluxo de trabalho comprometida pode causar.
Fixar ações de terceiros para confirmar SHAs
Quando você faz referência a uma ação de terceiros por tag (por exemplo, v1), a tag pode ser movida para apontar para um código diferente. Fixar ações a uma SHA de confirmação completa garante que você sempre execute o código exato que você revisou e aprovou. Isso protege contra ataques à cadeia de suprimentos em que uma etiqueta é sequestrada.
Restringir quais ações podem ser executadas
Configure políticas no nível da organização ou da empresa para controlar quais ações podem ser executadas. Você pode limitar ações às criadas por GitHub, ações de criadores verificados ou uma lista de permissões específica.
Para obter mais informações sobre todas essas práticas, bem como práticas de uso seguro adicionais especificamente para GitHub Actions, consulte Referência de uso seguro.
Práticas de segurança em andamento
Essas práticas devem se tornar parte do ritmo operacional regular.
- Monitore sua postura de segurança com uma visão geral de segurança
- Executar campanhas de segurança regulares para reduzir a dívida de segurança
- Continuar a auditar o acesso e as permissões
- Manter as dependências atualizadas
- Renovar segredos e aplicar expiração
Monitorar sua postura de segurança com visão geral de segurança
A visão geral de segurança fornece uma visão centralizada do cenário de segurança de uma organização e da empresa. Use-o para rastrear quais repositórios têm recursos de segurança habilitados e identificar repositórios com alertas abertos, para que os riscos emergentes não passem despercebidos.
Consulte Sobre a visão geral de segurança.
Executar campanhas de segurança regulares para reduzir a dívida de segurança
Com o tempo, os alertas de segurança podem se acumular. As campanhas de segurança permitem organizar e priorizar os esforços de correção, atribuir grupos de alertas aos desenvolvedores com a ajuda de correções geradas por Copilot, ou atribuir alertas diretamente a Copilot.
As campanhas de segurança estão disponíveis para organizações em GitHub Team ou GitHub Enterprise Cloud com GitHub Secret Protection or GitHub Code Security habilitado. Consulte Criando e gerenciando campanhas de segurança.
Continuar a auditar o acesso e as permissões
À medida que as pessoas entram e saem de uma organização e, à medida que os projetos evoluem, os requisitos de acesso mudam. Agendar revisões periódicas de:
- Adesão e papéis da organização.
- Acesso de colaborador externo.
- Permissões no nível do repositório e atribuições de equipe.
- OAuth autorizado e GitHub Apps.
Isso garante que o acesso permaneça alinhado com o princípio de privilégios mínimos, mesmo quando sua organização muda.
Manter as dependências atualizadas
Dependências vulneráveis são um ponto de entrada comum para invasores. Dependabot pode abrir automaticamente solicitações de pull para atualizar dependências com vulnerabilidades conhecidas, mas essas solicitações de pull ainda precisam ser revisadas e mescladas prontamente.
Estabeleça um processo de triagem e mesclagem Dependabot de solicitações de pull para que as atualizações de segurança não fiquem paralisadas.
Confira Sobre as regras de triagem automática do Dependabot e Gerenciar pull requests para atualizações de dependências.
Rodar credenciais e impor expiração
Quanto mais tempo uma credencial existir, mais oportunidade há para ela ser exposta ou roubada. Sempre que possível:
- Definir datas de validade em personal access tokens.
- Girar segredos em um agendamento regular.
Para obter informações sobre como gerenciar tokens, consulte Gerenciar seus tokens de acesso pessoal e Vencimento e revogação de token.
Próximas Etapas
- Mesmo com fortes controles preventivos em vigor, incidentes de segurança ainda podem ocorrer. Há várias ferramentas críticas e processos de resposta que você deve garantir que sejam configurados com antecedência. Consulte Preparando-se para um incidente de segurança.