← GitHub Advanced Security: prevenção e remediação
08 / 8 · 45 MIN

CodeQL: query packs, model packs e evidência de cobertura

Distingue execução de queries de modelação de bibliotecas e valida a migração de configuração com resultados observados.

Conceito e mecanismo

A análise de código produz evidência apenas das linguagens, branches, queries, modelos e execuções que efetivamente cobriu. Um query pack contém queries e pode declarar suites, dependências e bibliotecas através de qlpack.yml. A função do pack é distribuir e executar consultas; não transforma automaticamente todas as APIs desconhecidas em fontes e destinos de dados.

Um model pack, atualmente em public preview nas linguagens indicadas pela documentação GitHub, acrescenta modelos de bibliotecas e frameworks através de data extensions. Estes modelos podem melhorar a análise de propagação, fontes e sinks quando as dependências do projeto não são suportadas por defeito.

Não assumas que a preview é estável ou está disponível em qualquer linguagem. Antes de usar um pack externo, verifica origem, versão, compatibilidade, permissões e impacto nas execuções. Uma falha de análise ou um job skipped não equivale a zero vulnerabilidades.

Os alertas existentes podem continuar no painel depois de uma nova configuração falhar; observabilidade da execução é distinta de inventário histórico de alertas.

Aplicação guiada

Numa demonstração sem credenciais de produção, começa por inventariar linguagem, modo default ou advanced, data da última análise completa e conjunto de queries em execução. Perante uma framework de entrada de dados sem modelos suficientes, decide se faltam queries para um problema conhecido ou se faltam modelos para compreender fontes, etapas de propagação e destinos.

Usa exemplos mínimos com resultado esperado, executa o CodeQL num ambiente autorizado e compara resultados com e sem a extensão, guardando falso positivo, falso negativo observado e impacto de tempo. Se a equipa migrar de default setup para advanced setup para personalizar o pipeline, verifica elegibilidade do repositório, permissões e runners, analisa os logs e confirma que a base de dados CodeQL e as queries realmente executaram.

Compara branches analisadas, pacotes carregados, alertas gerados e responsáveis de triagem. Não representes a criação do YAML como prova de cobertura, nem um alerta encerrado como prova da correção sem rever o motivo e a alteração do código.

NA PRÁTICA

Uma consulta adicional não identifica a origem de dados de uma API própria; um model pack pode fornecer essa semântica onde suportado, mas a eficácia só é conhecida depois de testar o fluxo relevante.

Armadilhas comuns

Query pack e model pack como sinónimos; tratar preview como suporte universal; YAML como prova de execução; alertas antigos como sinal de análise atual; pack externo sem origem validada.

Tópicos relacionados: Produtos, âmbito e prevenção · Credenciais, resposta e exceções · Dependências, inventário e prevenção no merge

Leva esta ideia contigo

Separa regras de deteção, modelos de dados e saúde do pipeline; valida cada um com evidência.

Criar conta

Referências

GitHub é uma marca comercial do grupo de empresas Microsoft. A dr.pt é uma plataforma de preparação independente e não está afiliada, associada, patrocinada, autorizada nem aprovada por Microsoft. Os conteúdos e as perguntas são originais, não são perguntas oficiais de exame, e concluir os nossos testes não atribui nem garante qualquer certificação. Os nomes são usados apenas para identificar o tema. Todas as outras marcas pertencem aos respetivos titulares.