Segurança de código é um tópico importante para pessoas desenvolvedoras do mundo todo. A comunidade de segurança identifica novas vulnerabilidades em um ritmo surpreendente, o que ajuda esses profissionais a efetivamente proteger seu código. Para facilitar ainda mais essa colaboração, o GitHub desenvolveu ferramentas como relatórios privados de vulnerabilidade e GitHub Advisory Database. E agora, anunciou o próximo passo para ajudar a comunidade a manter os códigos em segurança: a análise de variantes de múltiplos repositórios (MRVA, sigla em inglês).
A análise de variantes é uma técnica importante para identificar novos tipos de vulnerabilidades de segurança. “O CodeQL, mecanismo de análise estática que capacita o escaneamento de credenciais, é uma ótima ferramenta para análise de variantes porque permite modelar vulnerabilidades como consultas CodeQL personalizadas e altamente precisas”, é o que afirmam James Fletcher, gerente de Produto do GitHub, e Walker Chabbott, gerente de Marketing de Produto do GitHub.
O uso de consultas oferece um alto nível de personalização, permitindo que pesquisas de segurança tenham mais flexibilidade para encontrar exatamente o que procuram, e o MRVA dimensiona essa capacidade de análise profunda: com muitos milhares de repositórios ao seu alcance, é fácil dimensionar a análise de variantes em um grande número de bases de código, economizando tempo e permitindo achar rapidamente novas vulnerabilidades.
O laboratório de segurança do GitHub já utiliza a análise de variantes de múltiplos repositórios para detectar novas vulnerabilidades, incluindo em um caso recente de alertas do Android que afetaram mais de 10 milhões de aplicativos.
Como a análise de variantes funciona com o CodeQL?
Ao executar uma consulta CodeQL em uma base de código, ela não apenas identifica o problema original modelado, mas também pode captar variantes lógicas do problema, ajudando a identificar classes inteiras de vulnerabilidades de uma só vez. Essa técnica pode ser útil para identificar e analisar novas vulnerabilidades, especialmente aquelas baseadas em casos anteriores ou padrões de ataque já conhecidos.
No contexto do MRVA, se houver suspeita de que um exploit seja baseado em uma vulnerabilidade conhecida em um pacote de software específico, pesquisadores da comunidade podem analisar bases de código inteiras e comparar seu código com variantes conhecidas. Ao identificar semelhanças e diferenças entre os dois, podem obter informações sobre como o exploit funciona e quais medidas podem ser tomadas para prevenir ou mitigar o ataque.
Como começar a usar a análise de variantes de múltiplos repositórios
Executar uma consulta CodeQL com MRVA é muito semelhante a executar uma consulta em uma única base de código no CodeQL para Visual Studio Code (VS Code). As consultas são executadas nos bancos de Dados CodeQL, que são representações de uma base de código contendo informações consultáveis sobre a estrutura sintática do código, gráfico de fluxo de dados e gráfico de fluxo de controle.
O MRVA permite executar uma consulta CodeQL em uma lista de até 1.000 repositórios, e em vez de baixar os bancos de dados CodeQL para cada repositório no VS Code, o MRVA aciona um GitHub Action, que já executa sua consulta em cada um. À medida que cada consulta é concluída, os resultados são enviados de volta ao VS Code para que a pessoa desenvolvedora possa verificar.
A funcionalidade cria automaticamente listas de 10, 100 e 1.000 repositórios públicos para testar facilmente as consultas do CodeQL. Essas listas foram desenvolvidas em parceria com a equipe de pesquisa de código do GitHub e apresentam uma variedade de repositórios OSS para cada linguagem suportada pelo CodeQL. Para segmentar repositórios diferentes, o GitHub também oferece suporte à criação de listas personalizadas ou permite acionar uma execução MRVA em até 1.000 repositórios em uma única organização da plataforma.
Depois que os resultados estiverem prontos, é possível gerar relatórios usando o recurso “Export results” (“Exportar resultados”).
Quais repositórios estão disponíveis para o MRVA?
Para repositórios públicos, a plataforma armazena bancos de Dados CodeQL para cada repositório que executa o escaneamento de códigos do GitHub. Se a pessoa desenvolvedora deseja que seu repositório público esteja disponível para MRVA, basta ativar a verificação de código com o CodeQL.
Mas, para oferecer flexibilidade para executar análises de variantes em repositórios que não estejam executando o escaneamento de código com o CodeQL, a plataforma também armazenou bancos de Dados CodeQL para milhares de repositórios públicos no GitHub.com que não possuem o escaneamento de código habilitado.
“Disponibilizamos esses repositórios para MRVA para que a comunidade CodeQL possa ajudar a manter o software open source seguro. A lista de repositórios disponíveis para MRVA está em constante evolução para garantir que os mais relevantes estejam disponíveis para pesquisa de segurança”, ressaltam James Fletcher e Walker Chabbott.
Também é possível utilizar o MRVA para analisar quaisquer repositórios privados, basta ter acesso de leitura e que o escaneamento de código com CodeQL esteja habilitado. Assim, ao desenvolver uma consulta para detectar uma nova vulnerabilidade, profissionais também podem usar o MRVA para identificar e eliminar bugs em todo o portfólio da organização.
Serviço
codeql.github.com/docs/codeql-for-visual-studio-code/running-codeql-queries-at-scale-with-mrva
Leia nesta edição:
PRÊMIO IC - DESTAQUES DE TIC 2024
Usuários e profissionais do setor de TIC escolhem os produtos e as marcas que melhor os atenderam
TELECOMUNICAÇÕES
5G: a real revolução ainda está para acontecer
ESCPECIAL - ANUÁRIO DE TIC 2024/25
Contatos estratégicos
Esta você só vai ler na versão digital
TENDÊNCIAS
As tecnologias que estão moldando o futuro do e-commerce
Baixe o nosso aplicativo