Sobre este guia
Como proprietário da organização, evitar a exposição de dados privados ou confidenciais deve ser uma prioridade máxima. Sejam intencionais ou acidentais, os vazamentos de dados podem causar um risco significativo para as partes envolvidas. Embora GitHub execute medidas para ajudar a protegê-lo contra vazamentos de dados, você também é responsável por administrar sua organização para proteger a segurança.
Há vários componentes importantes quando se trata de se defender contra os vazamentos de dados:
- Adoção de uma abordagem proativa em relação à prevenção
- Detecção antecipada de possíveis vazamentos
- Manutenção de um plano de mitigação quando ocorre um incidente
A melhor abordagem dependerá do tipo de organização que você está gerenciando. Por exemplo, uma organização que se concentra no desenvolvimento de código aberto pode exigir controles mais flexíveis do que uma organização totalmente comercial, a fim de permitir a colaboração externa. Este artigo fornece diretrizes de alto nível sobre os GitHub recursos e configurações a serem considerados, que você deve implementar de acordo com suas necessidades.
Proteger as contas
Proteja os repositórios e as configurações de sua organização implementando melhores práticas de segurança, incluindo habilitação da 2FA e exigência de que todos os membros adotem a verificação, além de estabelecer diretrizes de senha fortes.
-
Exigir que membros da organização, colaboradores externos e gerentes de cobrança habilitem a 2FA para suas contas pessoais, tornando mais difícil para os atores mal-intencionados acessarem os repositórios e as configurações de uma organização. Para saber mais, confira Exigindo a autenticação de dois fatores na sua organização.
-
Incentivando seus usuários a criar senhas fortes e protegê-las adequadamente seguindo GitHubas diretrizes de senha recomendadas. Para obter mais informações, consulte Criar uma senha forte.
-
Incentive os usuários a manter a proteção por push para usuários habilitados em sua conta pessoal para contar com essa proteção independentemente do repositório público ao qual efetuem push. Para obter mais informações, consulte Gerenciando a proteção por push para usuários.
-
Estabelecendo uma política de segurança interna em GitHub, para que os usuários saibam as etapas apropriadas a serem tomadas e quem contatar se houver suspeita de um incidente. Para saber mais, confira Adicionar uma política de segurança a um repositório.
Para obter informações mais detalhadas sobre como proteger contas, consulte Melhores práticas para proteger contas.
Evitar vazamentos de dados
Como proprietário da organização, você deve limitar e revisar o acesso conforme apropriado para o tipo da sua organização. Considere as seguintes configurações para um controle mais rígido:
| Recomendação | Mais informações |
|---|---|
| Desabilite a capacidade de criar fork de repositórios. |
[AUTOTITLE](/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/managing-the-forking-policy-for-your-repository)
Desabilite a alteração da visibilidade do repositório. |
Restringir as alterações de visibilidade de repositório na organização
Restrinja a criação do repositório a privado ou interno. |
Restringir a criação de repositórios na organização
Desabilite a exclusão e a transferência do repositório. |
Definir permissões para excluir ou transferir repositórios
| |
Restrinja os escopos personal access tokenàs permissões mínimas necessárias. | None
Proteja seu código convertendo repositórios públicos em privados sempre que apropriado. Você pode alertar os proprietários do repositório sobre essa alteração automaticamente usando um GitHub App. |
Prevent-Public-Repos em GitHub Marketplace
Confirme a identidade da sua organização verificando o domínio e restringindo as notificações por email somente aos domínios de email verificados. |
Verificar ou aprovar um domínio para sua organização
Verifique se sua organização foi atualizada para o GitHub Contrato de Cliente em vez de usar os Termos de Serviço Padrão. |
Atualizando para o Contrato do Cliente do GitHub
Impeça que os colaboradores façam commits acidentais. |
Remover dados confidenciais de um repositório
Detectar vazamentos de dados
Não importa o quão bem você reforce sua organização para evitar vazamentos de dados, alguns ainda podem ocorrer, e você pode responder usando secret scanning, o log de auditoria e as regras de proteção de ramo.
Utilize secret scanning
Secret scanning ajuda a proteger o código e manter os segredos seguros entre organizações e seus repositórios, verificando e detectando segredos que foram acidentalmente comprometidos ao longo do histórico completo do Git de cada branch nos repositórios de GitHub. Todas as cadeias de caracteres que correspondem aos padrões fornecidos por parceiros de verificação secretos, por outros provedores de serviços ou definidas por você ou sua organização, são relatadas como alertas na guia **Segurança** dos repositórios.
Há duas formas de secret scanning disponibilidade: Alertas de verificação de segredo para parceiros e Alertas de verificação secreta para usuários.
-
Alertas de verificação de segredo para parceiros: eles são habilitados por padrão e são executados automaticamente em todos os repositórios públicos e pacotes npm públicos. -
Alertas de verificação secreta para usuários: para obter recursos de verificação adicionais para sua organização, você precisa habilitar alertas de verificação de segredos para usuários.Quando habilitado, alertas de verificação de segredos para usuários pode ser detectado nos seguintes tipos de repositório:
- Repositórios públicos de propriedade de contas pessoais em GitHub.com
- Repositórios públicos pertencentes a organizações
- Repositórios privados e internos pertencentes a organizações que usam GitHub Team ou GitHub Enterprise Cloud, com uma licença para GitHub Code Security
Dica
Independentemente do status de habilitação de secret scanning e da proteção por push, as organizações em GitHub Team e GitHub Enterprise podem executar um relatório gratuito para verificar o código na organização em busca de segredos vazados. Consulte Sobre a segurança secreta com o GitHub.
Para obter mais informações sobre secret scanning, confira Sobre a verificação de segredo.
Você também pode habilitar a secret scanning como uma proteção por push para um repositório ou uma organização. Quando você habilita esse recurso, a secret scanning impede que os colaboradores efetuem push de um código com um segredo detectado. Para obter mais informações, consulte [AUTOTITLE](/code-security/secret-scanning/protecting-pushes-with-secret-scanning). Por fim, você também pode estender a detecção para incluir estruturas de cadeias de caracteres de segredos personalizados. Para saber mais, confira [AUTOTITLE](/code-security/secret-scanning/using-advanced-secret-scanning-and-push-protection-features/custom-patterns/defining-custom-patterns-for-secret-scanning).
Revisar o log de auditoria da sua organização
Você também pode proteger proativamente o IP e manter a conformidade para sua organização aproveitando o log de auditoria da sua organização, acompanhado da API de Log de Auditoria do GraphQL. Para saber mais, confira Revisar o log de auditoria da organização e Interfaces.
Configurar regras de proteção de branch
Para garantir que todo o código seja revisado corretamente antes de ser mesclado no branch padrão, você pode habilitar a proteção de branch. Ao definir regras de proteção de branch, você pode impor determinados fluxos de trabalho ou requisitos antes que um colaborador possa efetuar push de alterações. Para saber mais, confira Sobre branches protegidos.
Como alternativa às regras de proteção de branch, você pode criar conjuntos de regras. Os conjuntos de regras têm algumas vantagens em relação às regras de proteção de branches, como status, e melhor capacidade de detecção sem exigir acesso de administrador. Você também pode aplicar vários conjuntos de regras ao mesmo tempo. Para saber mais, confira Sobre os conjuntos de regras.
Atenuar os vazamentos de dados
Se um usuário realizar o envio de dados, peça para removê-los usando a ferramenta git filter-repo. Para saber mais, confira Remover dados confidenciais de um repositório. Além disso, se os dados confidenciais ainda não tiverem sido enviados por push, você poderá simplesmente desfazer essas alterações localmente; para obter mais informações, consulte the GitHub Blog (mas observe que git revert não é uma maneira válida de desfazer a adição de dados confidenciais, pois ele deixa a confirmação confidencial original no histórico do Git).
Se você não conseguir coordenar diretamente com o proprietário do repositório para remover os dados que você tem certeza de que são seus, preencha um formulário de aviso de remoção do DMCA e informe isso ao Suporte do GitHub. Certifique-se de incluir os hashes dos commits problemáticos. Para obter mais informações, confira Aviso de remoção do DMCA.
Observação
Se um dos seus repositórios foi removido devido a uma alegação falsa, você deve preencher um formulário de contranotificação DMCA e alertar o Suporte do GitHub. Para obter mais informações, confira Contra-aviso do DMCA.
Revogar tokens expostos
Se as credenciais tiverem sido expostas em um GitHub repositório, GitHubsecret scanning poderão ser usadas para relatar e revogar as credenciais. Para saber mais, confira Resolução de alertas da verificação de segredos.
Você também pode revogar as credenciais expostas que você não possui e que foram expostas fora dos GitHub repositórios. Ao fazer isso, você está contribuindo para a segurança geral da GitHub comunidade e pode limitar rapidamente o impacto dessas credenciais. A API dá suporte à revogação:
-
Personal access tokens (classic) com o `ghp_` prefixo -
Fine-grained personal access tokens com o `github_pat_` prefixo -
OAuth app tokens prefixados com `gho_` -
GitHub App tokens de usuário para servidor com o `ghu_` prefixo -
GitHub App atualizar tokens com o `ghr_` prefixo
Se você encontrar tokens expostos em GitHub ou em outro lugar, poderá enviar uma solicitação de revogação usando a API REST. Consulte Revogação para obter a lista completa e autoritativa de tipos de credencial com suporte.
Próximas etapas
-
[AUTOTITLE](/code-security/supply-chain-security/end-to-end-supply-chain/securing-code) -
[AUTOTITLE](/code-security/supply-chain-security/end-to-end-supply-chain/securing-builds)