Configurando varreduras GoSec

Use o gosec para inspecionar o código-fonte Golang em seus repositórios verificados.

Parâmetros necessários

O pipeline precisa do parâmetro na Tabela 1 para executar a varredura Gosec. Para obter uma lista completa de parâmetros de pipeline, consulte Parâmetros de pipeline.

parâmetros de varredura gosec
Nome Tipo Descrição Necessário ou Opcional
opt-in-gosec text Para ativar a varredura gosec, defina a propriedade como qualquer valor não vazio. Para desativar a varredura, defina-a como um valor vazio ou remova a propriedade completamente. (O padrão é vazio) Obrigatório

Ativando a varredura gosec para repositórios privados do Git

Se o seu projeto requerer dependências que estejam localizadas em um repositório privado do Git e, portanto, precisar de autenticação baseada em SSH, será possível ativar o pipeline para recuperar as dependências fornecendo parâmetros opcionais Para obter mais informações, consulte Ativar download de dependência para repositórios privados.

Se for necessário especificar um proxy para recuperar dependências, você poderá especificar o endereço URL juntamente com as credenciais (nome de usuário e token) usando os parâmetros do pipeline. Para obter mais informações, consulte Ativar GOPROXY..

Ativar download de dependências para repositórios privados

O download de dependências para repositórios pode ser ativado fornecendo todos os seguintes parâmetros de pipeline.

Parâmetros de pipeline
Nome Tipo Descrição Necessário ou opcional
gosec-private-repository-url text (obsoleto) Sua base de repositório privado URL. opcional
gosec-private-repository-host text Seu host de repositório privado. opcional
gosec-private-repository-ssh-key secret A chave SSH para o repositório privado opcional
gosec-private-repository-user text Usuário do repositório privado com acesso https (padrão: x-oauth-basic) optional
gosec-private-repository-token secret O token usado para acesso https ao repositório privado (o padrão é o token configurado para a primeira integração do git na cadeia de ferramentas cujo repositório URL está hospedado no valor de gosec-private-repository-host) opcional

Ativar GOPROXY

Se GOPROXY tiver que ser especificado, todos os parâmetros a seguir deverão ser fornecidos:

Parâmetros GOPROXY
Nome Tipo Descrição Necessário ou opcional
gosec-proxy-virtual-repository-user text O usuário do repositório virtual para proxy gosec opcional
gosec-proxy-virtual-repository-token secret O token do repositório virtual para proxy gosec opcional
gosec-proxy-virtual-repository-url text A URL do repositório virtual para o proxy gosec opcional

Parâmetros opcionais

O parâmetro gosec-scan-image pode ser usado para especificar uma imagem gosec diferente para usar, como uma imagem customizada ou uma versão específica da imagem gosec oficial.

O uso do sinalizador gosec-additional-flags é mostrado na seção de exemplos

parâmetros opcionais do gosec
Nome do parâmetro Valor padrão Descrição
gosec-additional-flags text Sinalizadores adicionais a serem anexados ao início do comando gosec
gosec-scan-image text Especifica uma imagem gosec alternativa, incluindo imagens customizadas ou versões específicas da imagem oficial.
gosec-repo-path-$repo_owner-$repo_name text Caminho do subdiretório no repositório em que a raiz do módulo Go está localizada. Para ser usado em uma base por repositório quando go.mod não estiver na raiz do repositório.

Exemplos

Defina o valor de gosec-additional-flags como -exclude-dir=<your_folder_1> -exclude-dir=<your_folder_2> -nosec=true e a execução do comando gosec será atualizada como:

./gosec -exclude-dir=<your_folder_1> -exclude-dir=<your_folder_2> -nosec=true -no-fail -fmt=json -out=gosec-results.json -stdout -verbose=text ./...

Para digitalizar um módulo Go localizado em um subdiretório, defina o parâmetro gosec-repo-path-$repo_owner-$repo_name. Por exemplo, se o proprietário do repositório for myorg, o nome do repositório for myrepo e o módulo Go estiver no diretório cmd/myapp, defina o parâmetro como:

  • Nome do parâmetro:gosec-repo-path-myorg-myrepo
  • Valor do parâmetro: cmd/myapp

Isso examinará o código Go a partir do caminho cmd/myapp em vez da raiz do repositório.

Usando o seu próprio arquivo de configuração

Para modificar a configuração padrão, crie um arquivo config.json no repositório de destino. Para obter mais informações sobre os parâmetros de análise no arquivo de configuração, consulte gosec configuration

Usando outra implementação de varredura estática

Se desejar usar sua própria implementação de varredura estática, modifique seu arquivo .pipeline-config.yaml e inclua seu script customizado no estágio static-scan. Para obter mais informações, consulte Scripts customizados..