Configurando varreduras do IBM Cloud Code Risk Analyzer
Você pode usar o IBM Cloud Code Risk Analyzer para analisar seu código em busca de vulnerabilidades e validar a conformidade com as regras especificadas.
Quando o Code Risk Analyzer avalia seu aplicativo, é gerada uma lista de materiais de software (SBOM) que relaciona as dependências e as informações de licença disponíveis de todos os pacotes de terceiros. Isso pode ser gerado no formato cycloneDX-specific,
se necessário Os pacotes listados no arquivo SBOM são varridos para vulnerabilidades. Esse arquivo pode ser gerado no formato cycloneDX-specific. Como alternativa, você pode ativar a correção automática de vulnerabilidades encontradas
em aplicativos escritos em Node.js, Maven ou Gradle.
- Todos os seus arquivos Kubernetes são analisados para conformidade.
- Todos os planos do Terraform são analisados para conformidade.
O Code Risk Analyzer está disponível em todas as regiões do IBM Cloud nas quais são suportadas cadeias de ferramentas. Para obter mais informações, consulte a documentação do plug-in.
Configurando varreduras
Para gerar o arquivo SBOM, uma varredura do Code Risk Analyzer acessa artefatos no caminho do diretório especificado e executa descoberta profunda para identificar todas as dependências; incluindo dependências de transporte. Não há nenhuma variável de ambiente de pipeline específica que seja necessária para gerar o arquivo SBOM e descobrir vulnerabilidades, mas se o caminho contiver um Dockerfile, a imagem base será extraída e as imagens serão construídas para cada estágio de construção especificado no arquivo
Se o Dockerfile precisar de ARGS, configure um ARG individual como uma variável de ambiente em um script customizado e forneça o local do script customizado como o pipeline vairable.
| Variáveis de ambiente | Descrição | Necessária ou opcional | Propósito |
|---|---|---|---|
cra-custom-script-path |
Caminho para o script em seu repositório | Opcional | Configura variáveis de ambiente que são necessárias pelo script Docker. |
Para obter mais informações, consulte scripts customizados
Por padrão, os arquivos do Terraform não são analisados Para varrer seu arquivo Terraform, deve-se configurar as variáveis de ambiente de pipeline a seguir.
| Variáveis de ambiente | Descrição | Obrigatório ou opcional | Propósito |
|---|---|---|---|
opt-in-tfsec |
True ou False. Configure como False por padrão. | Opcional | Varre os arquivos do Terraform para segurança. |
opt-in-cra-tf-validate |
True ou False. Configure como False por padrão. | Opcional | Valida os arquivos do Terraform |
A varredura do Code Risk Analyzer utiliza a chave de API fornecida para efetuar login na CLI do IBMCloud e aciona uma construção do Docker A sessão da CLI existente do IBM Cloud continua a ser usada para o restante desta etapa do CRA No entanto,
a sessão da CLI do IBM Cloud expira após 20 minutos para um login de chave API padrão. Se o processo de construção levar mais de 20 minutos, a etapa do CRA falhará com uma mensagem de erro 401, pois a sessão expirou. Uma variável de ambiente
ibmcloud-enable-session-keep-alive foi introduzida para manter a sessão da CLI do IBM Cloud ativa para operações longas.
| Variáveis de ambiente | Descrição | Tipo | Obrigatório ou opcional | Propósito |
|---|---|---|---|---|
ibmcloud-enable-session-keep-alive |
0 ou 1. Definido como 0 por padrão. | selecionar | Opcional | Mantenha a sessão da CLI do IBM Cloud ativa para tarefas de longa execução na varredura do Code Risk Analyzer. |
Por padrão, o comando de análise de implementação do Code Risk Analyzer executa verificações de configuração em manifestos de implementação do Kubernetes O comando deployment-analyze
do Code Risk Analyzer é executado com a opção --strict configurada. Para ignorar arquivos durante a varredura de análise de implementação do Code Risk Analyzer, a variável de ambiente a seguir deve ser usada.
| Variáveis de ambiente | Descrição | Obrigatório ou opcional | Propósito |
|---|---|---|---|
cra-cis-fileignore-path |
O caminho do arquivo .fileignore no repositório. | Opcional | Especifique o caminho do arquivo .fileignore que contém as informações de arquivos a serem ignorados durante a varredura de análise de implementação do Code Risk Analyzer. |
Omitindo vulnerabilidades para implementar seu app
O Code Risk Analyzer foi projetado para encontrar pacotes vulneráveis antes que um conselho consultivo o faça. Em circunstâncias excepcionais, pode ser necessário implementar seu aplicativo mesmo se pacotes vulneráveis foram detectados e ainda não foram corrigidos. Sempre que possível, você deve atualizar os pacotes ou removê-los antes de reimplementar o código.
Para ignorar arquivos específicos e concluir seu push para produção, é possível criar um arquivo chamado .cra/.cveignore na raiz do repositório varrido com o esquema a seguir:
[
{
"cve": "string",
"alwaysOmit": "bool",
"untilRemediationAvailable": "bool",
"expiration": "string"
},
]
O trecho de código a seguir mostra um arquivo .cveignore de amostra:
[
{
"cve": "CVE-2021-27290",
"alwaysOmit": true
},
{
"cve": "CVE-2020-8244",
"untilRemediationAvailable": true,
},
{
"cve": "CLAIR-JAVA-ORGAPACHEHTTPCOMPONENTS-31517",
"expiration": "2022-02-10T22:08:41+04:00",
"comment": "Additional security measures are in place"
}
]
Esse arquivo costumava ser conhecido como .craveomit O formato de arquivo original foi descontinuado por .cra/.cveignore. Atualize seu código
para usar o arquivo mais recente.
É possível saber mais sobre os docs do plug-in do Code Risk Analyzer, ou também verificar os docs do CRA descontinuados.
Corrigindo vulnerabilidades automaticamente
É possível usar o Code Risk Analyzer como parte do pipeline de conformidade contínua (CC) para não apenas localizar, mas corrigir automaticamente as vulnerabilidades. O Code Risk Analyzer funciona como parte da etapa compliance-check do pipeline. Por padrão, a correção automática está desativada.
A correção automática está disponível apenas para o pipeline do CC
Quando a correção automática estiver ativada, o Code Risk Analyzer tentará atualizar um pacote vulnerável para uma versão não vunlnerable criando uma solicitação pull com as correções identificadas com relação à ramificação padrão de seu repositório Por padrão, o Code Risk Analyzer atualizará versões secundárias e de correção para o pacote vulnerável principal, bem como pacotes dependentes, mas não atualiza a versão principal de um pacote. Se a solicitação pull for aceitável, será possível aprovar e mesclar manualmente. Cada vez que o pipeline é executado, uma nova solicitação pull é gerada, portanto, certifique-se de revisar e mesclar conforme eles são abertos para evitar duplicações.
A correção automática está disponível para os repositórios Enterprise GitHub e GitLab e pode modificar os arquivos especificados na tabela a seguir.
| Ecossistema | Arquivos modificáveis |
|---|---|
| Nodejs | package.json e package-lock.json |
| Gradle | build.gradle, gradle.lockfile e buildscript-gradle.lockfile |
| Maven | pom.xml |
Para iniciar automaticamente corrigindo vulnerabilidades, configure as variáveis de ambiente opcionais a seguir para seu pipeline.
| Variável | Descrição | Configurações padrão |
|---|---|---|
opt-in-cra-auto-remediation |
Ativa a correção automática para o seu pipeline | falsePara iniciar a correção, configure essa variável como true |
opt-in-cra-auto-remediation-force |
Força uma atualização de pacote principal como parte da solicitação de pull que é aberta | falsePara forçar uma atualização do pacote principal, configure essa variável como true.. |
opt-in-cra-auto-remediation-enabled-repos |
Especifica os repositórios específicos nos quais você deseja ativar a correção automática | Ativado para todos os repositórios retornados quando list_repos é chamado. Para especificar repositórios específicos, forneça uma lista separada por vírgula de nomes de repositório. |