Guards guarding a castle

Compreensão do GitHub Advanced Security

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

O GitHub Advanced Security (GHAS) é uma solução de teste de segurança de aplicações centrada no desenvolvedor e traz os recursos de segurança de classe mundial do GitHub para repositórios públicos e privados. A maioria dos recursos do GitHub Advanced Security é gratuita para repositórios públicos, mas requer uma licença do GitHub Advanced Security para repositórios privados. São necessários apenas alguns cliques para começar. Logo de cara, você se beneficiará de recursos de detecção e correção altamente selecionados, criados por alguns dos melhores engenheiros de segurança do mundo, para garantir que seu código e sua cadeia de suprimentos de software sejam os mais seguros possíveis. Ele é totalmente automatizado, portanto, uma vez ativado, você não precisa se lembrar de executar testes GHAS ou esperar por uma revisão de segurança antes de fazer a mesclagem.

Antes de falarmos sobre a habilitação e o uso do GHAS, vamos conhecer melhor suas funcionalidades principais. A TELUS compartilhará alguns insights sobre o uso do GitHub Advanced Security pela empresa para ajudar você em sua jornada.


Neste guia, você aprenderá:

  • O que o método GHAS inclui 

  • Como os diferentes recursos ajudam a proteger as diferentes partes do software

  • Quais recursos estão disponíveis para relato no progresso da segurança


Verificação de segredo

A verificação de segredo protege você contra o vazamento acidental de tokens e outros segredos, procurando em todo o repositório, incluindo nos problemas e no histórico do Git, por todas as credenciais baseadas em modelos que possam ter feito o commit a uma base de código. A verificação de segredo testa mais de 200 tipos de token e tem o suporte de um programa de parceiros de aproximadamente 150 provedores de serviços para detectar segredos vazados em ferramentas comuns, que você usa no desenvolvimento de software. Você pode também definir mais de 500 modelos personalizados na sua empresa para os segredos singulares ou proprietários, garantindo que eles também sejam detectados. Você pode até usar expressões regulares para criar padrões personalizados. A proteção por push da verificação de segredos oferece proteção preventiva que alerta ativamente os desenvolvedores quando fizerem o commit de novos segredos a um repositório.

Varredura de código

A varredura de código é a interface para o teste de segurança das aplicações do GitHub. É nela que reside a solução de análise estática do GitHub, o CodeQL, um mecanismo de análise semântica que descobre não só as vulnerabilidades conhecidas, como também as variações desconhecidas, práticas de desenvolvimento de código não seguras e outros problemas de qualidade com o código.

O CodeQL prepara o código para a análise criando um banco de dados do código de um repositório, o que fornece a versão do código do usuário representada como dados estruturados que o CodeQL usa para entender o fluxo de dados da aplicação, ao invés de somente verificar o código estático sem contexto. O CodeQL então executa uma série de consultas no banco de dados de todo o repositório. 

Você pode criar suas próprias consultas, mas o GitHub oferece milhares de consultas que incluem os tipos de vulnerabilidades mais críticas. Por exemplo, a combinação das nossas consultas CodeQL e Dependabot padrão ajudarão a garantir a conformidade com o OWASP Top 10 e o SANS Top 25. Essas consultas foram selecionadas devido à sua alta precisão, garantindo uma baixa taxa de falsos positivos para o usuário.

As consultas padrão do CodeQL atendem à maioria das nossas necessidades. Estamos começando a ver algumas equipes escrevendo consultas personalizadas à medida que os desenvolvedores se familiarizam mais com a plataforma, mas ainda obtemos muito valor apenas usando os padrões.

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

Além do CodeQL, a varredura de código pode ser usada para visualizar e interagir com qualquer outra ferramenta de segurança da aplicação que produza um arquivo no padrão SARIF (Static Analysis Results Interchange Format). O GitHub oferece mais de 70 GitHub Actions prontos para uso, a fim de integrar automaticamente os códigos abertos mais usados e as soluções comerciais de segurança da aplicação de várias categorias, incluindo análise dinâmica, qualidade do código e segurança de contêineres. Os resultados dessas integrações aparecem na interface da varredura de código e são exibidos no mesmo formato do CodeQL, promovendo uma experiência consistente em todas as ferramentas.

Segurança da cadeia de fornecedores

Como base do código aberto, o GitHub oferece vários recursos gratuitos de Segurança da cadeia de suprimentos, honrando nosso compromisso de tornar o uso do código aberto seguro para todos os usuários. Isso inclui acesso ao GitHub Advisory Database e à pesquisa do Security Lab, que hospedam as fontes mais relevantes e precisas de dados de vulnerabilidade do código aberto em todo o mundo, além de gráficos de dependência, o que resume as dependências, além do Dependabot, que identifica vulnerabilidades nas dependências e sugere formas automáticas de fazer correções, atualizações ou aplicar patches.

Para estender esses recursos aos usuários corporativos, o GHAS oferece segurança da cadeia de suprimentos personalizada para a empresa, como a revisão de dependências, um recurso proativo que ajuda a evitar que dependências sem segurança entrem nos repositórios privados.

Relatórios

Após ativar os recursos GHAS, você poderá relatar sua adoção e postura de segurança com a visão geral da segurança. A visão geral da segurança oferece uma visão de alto nível sobre como as iniciativas de segurança são executadas com o tempo, além de fornecer recursos de filtragem granular para identificar e priorizar áreas problemáticas da base de código que exigem atenção imediata.

Próximo: Habilitando o GitHub Advanced Security

Agora que você já sabe o que cada um desses recursos faz, vamos ativá-los. Você se surpreenderá ao ver como é fácil!