Esta ação do GitHub permite usar o scanner de código líder da indústria da Contrast Security (varredura de contraste) para encontrar vulnerabilidades em seu código. A ação compara a análise de digitalização do código do PR à última análise de varredura de código da filial de destino. O GitHub falha no cheque se novas vulnerabilidades foram introduzidas.
Se você não estiver familiarizado com as ações do GitHub, leia a documentação do GitHub Actions para saber o que são ações do GitHub e como configurá -las. Depois disso, complete as seguintes etapas:
Configure os seguintes segredos do github contrast_api_key, contrast_organization_id, contrast_auth_header e contrast_api_url

CodeSec, contrastando os usuários de segurança: recuperar detalhes de autenticação para os segredos usando a CLI.
Instruções de instalação aqui: https://www.contrastsecurity.com/developer/codesec
Se você é um novo usuário, crie uma conta com o comando 'Contraste Auth'
Execute o comando 'Config Contrast' na CLI para coletar as credenciais necessárias

Usuários de segurança de contraste licenciados: Obtenha seus detalhes de autenticação para os segredos do menu 'Configurações do usuário' na interface da Web Contraste: você precisará do seguinte

Copie o fluxo de trabalho de amostra abaixo e crie uma ramificação do seu código para adicionar verificação de segurança de contraste. Esta filial está normalmente localizada em .github/workflows/build.yml
Atualize o arquivo de fluxo de trabalho para especificar quando a ação deve ser executada (por exemplo, no pull_request, em push)
on :
# Trigger analysis when pushing to main or an existing pull requests. Also trigger on
# new pull requests
push :
branches :
- main
pull_request :
types : [opened, synchronize, reopened]Atualize o filepath no arquivo de fluxo de trabalho para especificar a localização do artefato ou arquivo construído para digitalizar
with :
artifact : mypath/target/myartifact.jar Falhar com base na gravidade da vulnerabilidade encontrou severidade definida (crítica/alta/média ou baixa) e falha no verdadeiro
severity : high
fail : true Para que o GitHub listasse vulnerabilidades na guia de segurança do repo, a ação de contraste deve ser acompanhada por esta ação do github
- name : Upload SARIF file
uses : github/codeql-action/upload-sarif@v2
with :
sarif_file : results.sarif O valor do sarif_file deve ser results.sarif .
Depois de comprometer, crie uma solicitação de tração (PR) para mesclar a atualização de volta à sua filial principal. Criar o PR desencadeia a varredura para executar. A verificação extra de "varredura de código" aparece no PR
Como é provável que haja novas descobertas ao adicionar digitalização de contraste, não queremos falhar e bloquear a fusão do PR que adiciona verificação de contraste, forçando o proprietário do PR a consertar agora todas as vulnerabilidades recém -expostas que já existiam na base de código.
Após a varredura de contraste na filial principal, todos os novos PRs que você cria onde a varredura de contraste é executada falha, a verificação de digitalização de código se eles introduzirem novas vulnerabilidades além da linha de base que você acabou de estabelecer.
Todos os segredos de conta relacionados ao contraste devem ser configurados como segredos do GitHub e serão passados para o scanner por meio de variáveis de ambiente no Runner do Github. Um simples fluxo de trabalho para começar é:
on :
# Trigger analysis when pushing to main or an existing pull requests. Also trigger on
# new pull requests
push :
branches :
- main
pull_request :
types : [opened, synchronize, reopened]
name : Contrast Security Scan
jobs :
build_and_scan :
permissions :
contents : read # for actions/checkout
security-events : write # for github/codeql-action/upload-sarif
actions : read # only required for a private repository by github/codeql-action/upload-sarif to get the Action run status
runs-on : ubuntu-latest
# check out project
steps :
- uses : actions/checkout@v2
# steps to build the artifact you want to scan
# -name: Build Project
# ...
# Scan Artifact
- name : Contrast Scan Action
uses : Contrast-Security-OSS/[email protected]
with :
artifact : mypath/target/myartifact.jar
apiKey : ${{ secrets.CONTRAST_API_KEY }}
orgId : ${{ secrets.CONTRAST_ORGANIZATION_ID }}
authHeader : ${{ secrets.CONTRAST_AUTH_HEADER }}
severity : high
fail : true
# To list vulnerabilities in the GitHub Security Tab of the repo include GitHub upload-sarif action
# The value of `sarif_file` must be `results.sarif`
- name : Upload SARIF file
uses : github/codeql-action/upload-sarif@v2
with :
sarif_file : results.sarif Esta ação do Github e o plug -in de contraste do Maven realizam a mesma coisa. Você não pode usar os dois ao mesmo tempo. Por exemplo, se você estiver usando o Maven para criar seu código e executar org.contrastSecurity.maven: Scan durante a compilação, não use a ação do Github Scan Github.