Guards guarding a castle

Habilitando a segurança avançada do GitHub

Nicholas Liffen
Nicholas Liffen // Director, GitHub Advanced Security // GitHub

Proteger sua base de código contra vulnerabilidades conhecidas e evitar vazamento de segredos é tão simples quanto clicar em apenas algumas opções nas configurações do repositório. Ao final deste guia, você terá o GitHub Advanced Security (GHAS) em execução em seu repositório de exemplo e estará pronto para ativá-los em seus próprios repositórios.

A TELUS compartilhará alguns insights sobre o uso do GitHub Advanced Security pela empresa para ajudar você ao longo do caminho.


Neste guia, você aprenderá:

  • Como habilitar o GitHub Advanced Security no nível de repositório, incluindo varredura de código, CodeQL, revisão de dependência e verificação de segredo.

  • Como o GHAS protege o código sem bloquear a produtividade do desenvolvedor.


 1. Configure o repositório de teste.

Crie fork para o repositório do Juice Shop em uma organização com GHAS habilitado, caso ainda não o tenha feito.

Clique em Actions sob o nome do repositório. Se não for possível ver a guia Actions, selecione o menu suspenso “...” e clique em Actions.

Screenshot of Actions tab

Clique no botão que diz I understand my workflows, go ahead and enable them.

2. Habilite o GitHub Advanced Security.

Na página GitHub.com do repositório do Juice Shop, clique em Settings abaixo do nome do repositório. Se não for possível ver a guia Settings, selecione o menu suspenso “...” e clique em Settings.

Screenshot of Settings tab

Na seção de segurança da barra lateral, clique em Code security and analysis.

Role a página para baixo até GitHub Advanced Security e clique em Enable. Se, em vez disso, você vir Disable, isso significa que o GHAS já está habilitado para o repositório.

2. Habilite a verificação de segredo.

Role a página para baixo e clique em Enable para verificação de segredo. Se você vir Disable, isso significa que a verificação de segredo já está habilitada para o repositório.

Screenshot of Code security and analysis setting with GitHub Advanced Security option enabled

Uma nova subseção chamada Push protection aparecerá sob Secret scanning. Clique em Enable.

Você pode estar pensando que o Dependabot, o CodeQL e a verificação de segredo parecem legais, mas que não há como habilitá-los por padrão em toda a sua organização. Eu tentei. Mas conseguimos habilitar a verificação de segredo com proteção push na TELUS em menos de um dia de planejamento. Também temos o CodeQL e o Dependabot habilitados em toda a empresa.

A razão pela qual conseguimos adotar essas ferramentas universalmente é simples: elas não impedem os desenvolvedores de fazer commit no código e não exigem nenhum conhecimento específico ou treinamento. Depois que você ativa esses serviços, eles são executados automaticamente em segundo plano. Você não precisa executar uma campanha interna de conscientização para fazer com que os desenvolvedores os ativem ou expliquem como usá-los. Se você enviar um código que não tenha uma vulnerabilidade ou um segredo, nada mudará para você.

Mesmo quando um problema é detectado, o GitHub orienta você sobre o que fazer em seguida. Se você tentar fazer algo potencialmente inseguro, receberá um aviso, mas não será bloqueado. Se você precisar fazer fazer commit de um token inválido como parte de um exemplo de código, você pode. Se houver algum motivo pelo qual você precise fazer fazer commit de uma chave válida para um repositório não público e removê-la mais tarde, você também pode fazer isso.

Não bloquear não significa não responsabilizar. Por exemplo, se você fizer fazer commit de um segredo com a opção “I’ll fix it later”, o GitHub alertará os proprietários da organização, os gerentes de segurança e os administradores de repositório. Isso coloca mais atenção em decisões de segurança importantes e ajuda a garantir que os problemas realmente sejam corrigidos.

É igualmente fácil ativar e desativar esses recursos. Se você habilitar a proteção por push em toda a organização e tiver problemas, basta desativá-la.

Justin Watts
Justin Watts // Director, Engineering Productivity // TELUS

3. Habilite o CodeQL.

Observação: como este repositório é um fork, é necessário habilitar o GitHub Actions antes de poder habilitar o CodeQL. Na página github.com do repositório do Juice Shop, clique em Actions sob o nome do repositório. Se não for possível ver a guia Actions, selecione o menu suspenso “” e clique em Actions. Clique em I understand my workflows, go ahead and enable them.

Esse processo é muito semelhante ao processo de habilitar a verificação de segredo.

Na página github.com do repositório do Juice Shop, clique em Settings sob o nome do repositório. Se não for possível ver a guia Settings, selecione o menu suspenso “…” e clique em Settings.

Na seção de segurança da barra lateral, clique em Code security and analysis

Na seção de varredura de código, selecione Set up. Haverá as opções Default e Advanced. Selecione Default. Abordaremos a opção Advanced em um guia futuro.

Screenshot of Code scanning setting displaying Default and Advanced options

Você verá uma caixa de diálogo de "configuração padrão do CodeQL" que resume a configuração criada automaticamente pela configuração padrão, incluindo as linguagens e consultas que serão executadas. Não altere essas configurações por enquanto. O pacote de consulta padrão é altamente selecionado para incluir as melhores e mais precisas consultas a fim de manter o código seguro gerando poucos falso-positivos. Abordaremos a personalização dessas configurações em um guia futuro.

Clique em Enable CodeQL.

Isso é tudo o que é necessário para habilitar a análise estática no repositório. A primeira varredura levará um tempo para ser executada, portanto, examinaremos os resultados no próximo guia. Por ora, vamos avançar para a próxima etapa.

4. Habilite os recursos de segurança da cadeia de suprimentos de software. 

A revisão de dependência está habilitada por padrão e não pode ser desabilitada, mas vamos garantir que temos o Dependabot e gráfico de dependência ativados. Na página github.com do repositório do Juice Shop, clique em Settings sob o nome do repositório. Se não for possível ver a guia Settings, selecione o menu suspenso “…” e clique em Settings.

Na seção de segurança da barra lateral, clique em Code security and analysis.

Sob Code security and analysis, clique em Enable ao lado de "Dependency graph" e "Dependabot alerts”. Vamos apenas usar as configurações padrão por enquanto.  

Abordaremos a configuração da revisão de dependência no módulo intermediário.

A seguir: Examinando os resultados da verificação do GitHub Advanced Security

É isso! Com apenas alguns cliques, o GitHub Advanced Security agora está protegendo o seu repositório.

Em seguida, vamos conferir os resultados da varredura do CodeQL e testar a verificação de segredo e a segurança da cadeia de suprimentos de software.