Sobre a code scanning
A Code scanning é um recurso que você usa para analisar o código em um repositório GitHub para encontrar vulnerabilidades de segurança e erros de codificação. Os problemas que forem identificados pela análise serão mostrados em seu repositório.
Você pode configurar code scanning para executar análise de CodeQL e análise de terceiros. O Code scanning também é compatível com a execução de análise nativa usando GitHub Actions ou externamente usando a infraestrutura de CI/CD existente. Os marcadores abaixo resumem todas as opções disponíveis para os usuários quando você configura o sua instância do GitHub Enterprise Server para permitir que o code scanning use as ações.
- CodeQL : usa o GitHub Actions com a configuração padrão (confira "Como definir a configuração padrão da verificação de código") ou a configuração avançada (confira "Como definir a configuração avançada para verificação de código"), ou executa a análise do CodeQL em um sistema de CI (integração contínua) de terceiros (confira "Usando a varredura de código com seu sistema de CI existente").
- Terceiro: usa GitHub Actions ou resultados de upload e ferramenta de terceiros para GitHub Enterprise Server (confira "Fazer o upload de arquivo SARIF para o GitHub").
Verificando se a sua licença inclui GitHub Advanced Security
Identifique se a sua empresa tem uma licença do GitHub Advanced Security revisando as configurações da empresa. Para obter mais informações, confira "Como habilitar a Segurança Avançada do GitHub para sua empresa".
Pré-requisitos para code scanning
-
Uma licença do GitHub Advanced Security (confira Sobre o faturamento da Segurança Avançada do GitHub)
-
Code scanning habilitado no console de gerenciamento (confira Como habilitar a Segurança Avançada do GitHub para sua empresa)
-
Uma VM ou contêiner para que a análise de code scanning seja executada.
Executar code scanning usando GitHub Actions
Como provisionar um executor auto-hospedado
GitHub Enterprise Server pode executar code scanning usando um workflow GitHub Actions. Primeiro, você precisa fornecer um ou mais executores auto-hospedados de GitHub Actions em seu ambiente. É possível fornecer executores auto-hospedados no nível da conta do repositório, organização ou empresa. Confira Sobre executores auto-hospedados e Adicionar executores auto-hospedados.
Se você estiver provisionando um executor auto-hospedado para análise CodeQL, o executor precisará usar uma versão do sistema operacional CodeQL e uma arquitetura de CPU com suporte. Consulte os Requisitos do sistema do CodeQL.
Se estiver usando a configuração padrão da code scanning, você também poderá atribuir executores auto-hospedadoscom o rótulo code-scanning
. Confira Como definir a configuração padrão da verificação de código.
Para obter informações sobre como usar a configuração padrão para análise de digitalização de código de linguagens compiladas, confira Verificação de código do CodeQL para linguagens compiladas.
Você deve garantir que o Git esteja na variável do PATH em qualquer executor auto-hospedados que você usar para executar ações de CodeQL.
Note
Se você usar a CodeQL para executar a code scanning para analisar o código escrito em Python na sua empresa, verifique se o executor auto-hospedado tem o Python 3 instalado.
Provisionamento de um conjunto de dimensionamento para o executor
É possível usar o Actions Runner Controller com a finalidade de criar um conjunto de dimensionamento para o executor dedicado para sua instância do GitHub Enterprise Server. Confira Como implantar conjuntos de dimensionamento de executores com o Actions Runner Controller.
Provisionando ações para code scanning
Caso você deseje usar ações para executar a code scanning no GitHub Enterprise Server, as ações precisam estar disponíveis no seu dispositivo.
A ação CodeQL está incluída na sua instalação de GitHub Enterprise Server. Se o GitHub Enterprise Server 3.15 e o executor do GitHub Actions tiverem acesso à Internet, a ação baixará automaticamente o pacote da 2.18.4 do CodeQL necessário para realizar a análise. Como alternativa, você pode usar uma ferramenta de sincronização para tornar a versão mais recente do pacote de análise de CodeQL disponível localmente. Consulte Configurar a análise de CodeQL em um servidor sem acesso à internet abaixo.
Você também pode disponibilizar ações de terceiros para os usuários de code scanning, configurando GitHub Connect. Confira Como configurar a verificação de código do seu dispositivo abaixo.
Configurar a análise de CodeQL em um servidor sem acesso à internet
Se o servidor em que você está executando GitHub Enterprise Server não estiver conectado à internet e você deseja permitir que os usuários habilitem CodeQL code scanning para seus repositórios, você deverá usar a ferramenta de sincronização de ação CodeQL para copiar o pacote de análises CodeQL de GitHub.com para seu servidor. A ferramenta e os detalhes de como usá-la estão disponíveis em https://github.com/github/codeql-action-sync-tool.
Se você configurar a ferramenta de sincronização de ação de CodeQL, você poderá usá-la para sincronizar as últimas versões da ação de CodeQL e pacote de análise associado a CodeQL. Estes são compatíveis com GitHub Enterprise Server.
Configurar GitHub Connect para sincronizar GitHub Actions
- Se você deseja fazer o download dos fluxos de trabalho de ação sob demanda a partir de GitHub.com, você deverá habilitar o GitHub Connect. Confira Como habilitar o GitHub Connect no GitHub.com.
- Você também precisará habilitar GitHub Actions. Confira Primeiros passos com o GitHub Actions para o GitHub Enterprise Server.
- A próxima etapa é configurar o acesso a ações no GitHub.com usando GitHub Connect. Confira Habilitar o acesso automático a GitHub.com usando o GitHub Connect.
- Adicione um executor auto-hospedado ao seu repositório, organização ou conta corporativa. Confira Adicionar executores auto-hospedados.
Executando a digitalização de código usando o CodeQL CLI
Se você não quiser usar GitHub Actions, você deverá executar code scanning usando o CodeQL CLI.
O CodeQL CLI é uma ferramenta de linha de comando que você usa para analisar bases de código em qualquer máquina, incluindo um sistema de CI/CD de terceiros. Confira Usando a varredura de código com seu sistema de CI existente.