GitHub lançou análise de código estático para vulnerabilidades





Após extensos testes, o GitHub o disponibilizou publicamente para verificar o código em busca de vulnerabilidades . Qualquer pessoa pode executar um scanner em seu próprio repositório e encontrar vulnerabilidades antes de ir para a produção. O scanner funciona para repositórios em C, C ++, C #, JavaScript, TypeScript, Python e Go.



O scanner é baseado na tecnologia CodeQL desenvolvida pela Semmle, que foi adquirida pelo GitHub no ano passado . CodeQL é considerado o primeiro scanner de vulnerabilidade do mundo. Os testes beta começaram no GitHub em maio de 2020. A função agora está disponível para todos.



Como ligar



A digitalização começa na guia Segurança no repositório.







Lá, clicamos em Configurar verificação de código .







Na próxima janela, precisamos selecionar o fluxo de trabalho que queremos usar para a digitalização. O fato é que CodeQL suporta a conexão de motores de terceiros. Para o mecanismo padrão, selecione "Análise CodeQL".







Em princípio, este fluxo de trabalho pode ser configurado: habilite a varredura programada, faça a varredura para cada pushsolicitação ou pull, use seu próprio arquivo de configuração, inicie consultas de pesquisa adicionais durante a varredura.



Em seguida, clique no botão Iniciar commit e escreva um nome para o novo commit.







Escolhemos nos comprometer com o branch master ou criar um novo branch e lançar uma solicitação pull.







É tudo. No final, clique no botão Confirmar novo arquivo ou Propor novo arquivo .



Depois de especificar o commit, o scanner de vulnerabilidade analisará seu código de acordo com a frequência especificada no fluxo de trabalho .



Depois de ativar o CodeQL, você pode visualizar os resultados e alterar os parâmetros de varredura .



Motor CodeQL







O mecanismo CodeQL procura vulnerabilidades potenciais usando um dicionário de mais de 2.000 consultas. O dicionário é compilado pelo GitHub e pela comunidade de usuários que testaram o sistema. Este banco de dados será constantemente atualizado, e todos podem adicioná-lo individualmente, simplesmente editando o arquivo de configuração.



A ferramenta de varredura é construída no padrão de análise de código estático SARIF (OASIS Static Analysis Results Interchange Format) e oferece suporte à conexão de mecanismos de terceiros que funcionarão em uma única interface. A exportação de resultados por meio de APIs unificadas também é compatível.



Desde o envio em maio de 2020, mais de 12.000 repositórios foram verificados (1,4 milhão de passes no total) e mais de 20.000 problemas de segurança foram identificados, incluindo vulnerabilidades de execução remota de código (RCE), injeção de SQL e cross-site scripting (XSS).



Os desenvolvedores e mantenedores corrigiram 72% das vulnerabilidades encontradas 30 dias após sua descoberta, antes de mesclar o código no branch principal. Este é um bom resultado, porque de acordo com as estatísticas, menos de 30% das vulnerabilidades encontradas são corrigidas dentro de um mês após a detecção.



Como resultado do teste beta, 132 commits da comunidade foram feitos para o dicionário de consulta de código aberto. Para que os usuários do GitHub executem ferramentas de terceiros, acordos foram concluídos com mais de uma dúzia de desenvolvedores de sistemas de segurança e ferramentas de código aberto para análise estática, verificação de contêiner e validação de infraestrutura como código (Infraestrutura como código; IaC) - esta é uma abordagem para gerenciar e descrever infraestrutura por meio de configuração arquivos, e não através da edição manual de configurações em servidores ou interação interativa.



Além de pesquisar vulnerabilidades, o GitHub também tem parceria com 24 provedores de serviços terceirizados para encontrar seus segredos em seu código que não podem ser publicados em claro, como chaves de acesso. Os parceiros incluem AWS, Google Cloud, Azure, Dropbox, Slack, Discord, npm, Stripe e Twilio. A verificação de segredos ocorre automaticamente em repositórios públicos e privados.







A varredura de código é gratuita para repositórios públicos e está incluída no pacote de Segurança Avançada para GitHub Enterprise (que é um serviço pago ). Algumas opções exóticas (lista de endereços IP permitidos, SAML, suporte a LDAP, etc.) estão disponíveis apenas na versão paga.



No entanto, você precisa adicionar uma mosca na pomada a esse barril de mel. Alguns autores de programas de código aberto reclamam ( 1 ,2 ) que a varredura fornece muitos falsos positivos.





Em teoria, verificar automaticamente todos os repositórios é uma coisa boa, mas na prática não é muito agradável ser constantemente distraído por relatórios de falsas "vulnerabilidades", especialmente em repositórios de desenvolvimento ou arquivos desatualizados que nunca irão para a produção. Fica chato muito rapidamente. Alguns autores afirmam que a maioria das vulnerabilidades em seu próprio código são na verdade ruídos ou não aplicáveis ​​em um caso particular.



Ou seja, o rastreador do GitHub pode acionar todos os sintomas de uma condição conhecida como fadiga da segurança. Para mais informações sobre esta condição, consulte o artigo científico(doi: 10.1109 / MITP.2016.84). Afirma que essa condição em uma pessoa reforça sua relutância em seguir as diretrizes de segurança e afeta a análise geral de benefício-custo.



All Articles