IBM Cloud Docs
Gerenciando problemas de incidentes

Gerenciando problemas de incidentes

A partir de uma perspectiva de conformidade, criação, armazenamento e atualização de problemas de incidentes (vulnerabilidade, CVE) como parte dos pipelines Integração Continuada e Compliance Continuous Compliance são essenciais para a coleta de evidências.

Durante a execução do pipeline PR com a coleta de evidências ativada, os pipelines CI e CC, o collect-evidence script cria problemas de incidentes, anexa-os às evidências coletadas e os armazena no repositório de problemas de incidentes.

O script collect-evidence usa as funções do comando cocoa incident process, que processa os resultados de varredura fornecida e cria novos problemas de incidentes no repositório fornecido por vulnerabilidade ou atualiza as questões de incidentes existentes com base nos pares de incidentes de assunto. Por isso, as questões de incidentes são ligadas a ativos e criadas de acordo com os resultados de ferramentas específicas. Para obter mais informações, consulte Diferença entre o processamento de emissão em pipelines de IC e CC.

Processamento de problemas de incidentes no pipeline de RP

O pipeline de PR com a coleta de evidências ativada pode criar problemas de incidentes quando qualquer vulnerabilidade ou CVE for encontrado. Para ativar a coleta de evidências no pipeline de relações públicas, consulte:coleta de evidências do pipeline de relações públicas

O gerenciamento de problemas no pipeline de PR para problemas de incidentes é semelhante ao do pipeline de CI. A única diferença está na lógica da autoclavagem.

Um problema de incidente criado pelo pipeline de PR pode ser encerrado automaticamente apenas por um pipeline de PR em execução no mesmo PR. O problema não pode ser autoclavado por um canal de RP quando:

  • O problema é encontrado por um pipeline de PR em execução em qualquer outro PR.
  • O problema é encontrado por qualquer pipeline de CI ou CC.

Processamento de emissão de incidentes

Embora os pipelines CI e CC tenham etapas comuns, o processamento de problemas desses pipelines tem algumas diferenças:

  • Questões de incidentes que são criadas durante o pipeline de IC não carregam uma data de vencimento, enquanto questões de incidentes que são criadas durante o pipeline CC do.
  • Questões de incidentes que são criadas durante o pipeline de IC são encontradas durante a construção, enquanto questões de incidentes que são criadas durante o pipeline CC são encontradas no ambiente de produção.

As Figuras 1 a 6 mostram os possíveis casos de uso que são baseados nessas diferenças.

Ciclo de vida do problema:

O ciclo de vida do problema estende-se de PRs de código para varreduras de produção

Fluxo de casos de uso de vulnerabilidade
DevSecOps/ ciclo de vida de um pipeline

Caso de uso 1: vulnerabilidade localizada na construção

A nova construção introduz uma vulnerabilidade, que não é aceita A implementação é bloqueada, a menos que a solicitação de mudança seja um CR emergencial aprovado manualmente.

Vulnerabilidade encontrada na compilação
Vulnerabilidade encontrada na compilação

Esse fluxo de pipeline de construção no caso de uma vulnerabilidades localizada e as ações do usuário correspondentes foram explicadas abaixo:

O pipeline de construção detectou uma vulnerabilidade
O pipeline de construção detectou uma vulnerabilidade

Caso de uso 2: vulnerabilidade localizada na construção que também está em produção

A nova construção contém uma vulnerabilidades que também está na produção atualmente implementada As equipes têm um cronograma para corrigir o problema, mas novos recursos ou correções ainda podem ser implementados.

Vulnerabilidade encontrada na compilação que também está em produção
Vulnerabilidade encontrada na compilação que também está em produção

O pipeline do CC configura a linha de tempo para corrigir tais vulnerabilidades encontradas na produção Ele só falhará quando a linha de tempo para corrigir a vulnerabilidade tiver expirado O fluxo foi esboçado abaixo

Vulnerabilidade localizada na produção
Vulnerabilidade localizada na produção

Caso de uso 2A: a vulnerabilidade que está localizada na produção permite PRs

A vulnerabilidade na produção não impede que as RCs se mesclem.

A vulnerabilidade encontrada na produção permite PRs
A vulnerabilidade encontrada na produção permite PRs

Caso de uso 3: falsos positivos

Se a equipe categorizar um problema como falso positivo, o problema poderá ser rotulado como Isento O problema pode, então, ser tratado como um problema sem bloqueio. Para manter uma trilha de auditoria, as solicitações de mudança mantêm os problemas visíveis

Falsos positivos
Falsos positivos

Caso de uso 4: fechando automaticamente problemas corrigidos

Executar periodicamente o pipeline CC pode fechar problemas que estão abertos e ter uma data de vencimento configurada. Além disso, a vulnerabilidade relevante não pode ser localizada em varreduras

Fechamento automático de problemas corrigidos
Fechamento automático de problemas corrigidos

O diagrama a seguir explica o fluxograma do pipeline CC detectando quais problemas devem ser encerrados e quais problemas devem ser criados.

O pipeline CC fecha automaticamente os problemas corrigidos
O pipeline CC fecha automaticamente os problemas corrigidos

Como definir a data de vencimento para questões de incidentes

Se as questões de incidentes forem encontradas na produção, a propriedade Due Date poderá ser adicionada à questão para especificar o período de carência em que deve ser corrigida. A duração do período de carência é determinada pela gravidade da vulnerabilidade encontrada.

Para obter mais informações sobre como personalizar os períodos de carência, consulte Configurando os períodos de graça personalizados no pipeline CC.

Problemas de incidentes de etiquetagem

Problemas de incidentes que são criados pelos pipelines de integração contínua (IC) ou de conformidade contínua (CC) podem ter etiquetas padrão.

Etiquetas para problemas de incidentes descobertos pelo Code Risk Analyzer

O Code Risk Analyzer (CRA) detecta vários tipos de vulnerabilidades, como dependência de app e vulnerabilidade de imagem.

O tipo de vulnerabilidade pode ser do seguinte: name os, python, js, golang ou java.

Se o tipo de vulnerabilidade for do tipo os, um rótulo os-vulnerability é anexado ao assunto. Para qualquer outro tipo de vulnerabilidade, um rótulo app-vulnerability é anexado ao assunto.

Etiquetas para problemas de incidentes com correções disponíveis

Para questões de incidentes que são criados pelo pipeline de integração contínua (CI) ou pipeline de conformidade contínua (CC), o scanner pode ter informações de correção como uma parte do resultado da varredura. Se informações de correção estiverem disponíveis, uma etiqueta fix-available é adicionada ao problema de incidente com um link para a descrição da correção dentro da descrição do problema.

A ausência da etiqueta fix-available não significa que a questão não seja acionável porque nem todo scanner inclui as informações de correção no resultado da varredura. O scanner sugere as informações de correção, e essa informação vem de onde quer que o scanner fontes este dado de "correção". Alguns scanners podem não ter dicionários de "fix" atualizados ou não conter informações para uma correção.

Problemas de incidentes com a data de vencimento

Quando você usa o script colete-evidências, questões de incidentes são criadas e anexadas às provas coletadas. Se forem encontradas questões na produção, elas podem ter um período de tempo especificado no qual devem ser corrigidas para que as implementações não sejam bloqueadas. O prazo fornecido para corrigir o problema na produção é chamado de período de carência. No entanto, para melhor legibilidade, o Due Date agora está disponível em questões de incidentes para que os usuários conheçam a data em que a correção é devida sem calculá-la a partir do período de carência.

Se uma questão como vulnerabilidade ou CVE é encontrada na produção, e o mesmo problema também é encontrado em uma construção, a construção não torna a situação pior. O recurso pode ser implantado, e a equipe pode se concentrar na fixação da questão na produção.

Configurando períodos de carência personalizados no pipeline CC

O Pipeline de Conformidade Contínua (CC) calcula as datas de vencimento de questões de incidentes com base na gravidade de uma emissão. Você pode alterar os valores de período de carência padrão e substituí-los por valores personalizados.

O pipeline calcula o período de carência de acordo com a tabela a seguir:

Períodos de carência padrão
Gravidade Período de carência
Informativo 90 dias
Baixo 45 dias
Médio 45 dias
Alta 15 dias
Crítico 15 dias

Para alterar a configuração padrão, crie uma nova propriedade nas propriedades de ambiente do pipeline CC denominadas grace-period-configuration. Esta propriedade de ambiente deve ser uma string JSON e combinar o seguinte formato:

{
  "informational": 50,
  "low": 40,
  "medium": 30,
  "high": 20,
  "critical": 10
}

Se a propriedade do ambiente não corresponder ao formato esperado ou não for uma string JSON válida, o pipeline utiliza os valores padrão.

A propriedade de ambiente grace-period-configuration estabelece datas de vencimento para questões que não possuem data de vencimento já definida. Para questões que possuem um conjunto de datas de vencimento, a reconfiguração do grace-period-configuration não atualiza essas datas de vencimento.

Cálculo de data de vencimento

A data de constatação é quando o pipeline de conformidade contínua (CC) é executado e encontra a questão no ambiente de produção. Se a questão existir, CC atualiza-o com o Due Date que é calculado a partir daquele momento.

<due date> = <date of finding the issue in prod> + <grace period in days (determined by severity)>

Formato de data de vencimento

A data de vencimento está no formato ISO 8601 e mostra como YYYYY-MM-DD.

Exemplo:Due Date: 2022-04-01

Casos de uso

  • Uma vulnerabilidade é encontrada em uma das imagens de base em produção pelo pipeline CC. A equipe é notificada de uma emissão de incidente com um período de carência configurado de acordo com a gravidade da vulnerabilidade. O período de carência é o número de dias que a equipe tem para implantar uma correção.

  • A equipe constrói um novo release com um novo recurso. A construção encontra um CVE associado à imagem base que é utilizada para a aplicação. A equipe executa o pipeline CC manualmente, que varre artefatos já em produção. A execução manual CC detecta o mesmo CVE no mesmo aplicativo em produção e acrescenta o Período de Graça à Incidente de Incidente. A equipe agora pode construir e implementar sem ser bloqueada.

Diferenças entre o processamento de emissão em pipelines de IC e CC

Problemas de incidentes são criados em dutos de IC e CC:

  • Uma questão que é criada em IC significa que foi encontrada durante a construção.
  • Uma questão que é criada em CC significa que ela foi encontrada no ambiente de produção.

Um Due Date pode ser incluído automaticamente em questões apenas se estiverem relacionadas a problemas encontrados no ambiente de produção. Isso significa que apenas o pipeline CC tem permissão para adicionar o Due Date a um problema. Se o CI encontrar a questão e o Due Data não estiver disponível, o valor do Due Date será n / a.

Processamento de resultados em questões

Problemas para problemas que são encontrados são criados de acordo com os resultados de ferramentas específicas. O script collect-evidence tenta processar os arquivos de resultado nos anexos e criar uma lista de questões.

As questões são ligadas a ativos, que podem ser comuns em um repositório ou uma imagem de docker com um digest.

Uma questão é criada para cada ID de emissão-um ID de emissão é composto pelos seguintes componentes:

  • Ativo ligado
  • A ferramenta que encontrou a vulnerabilidade
  • O identificador de vulnerabilidades (o ID CVE, por exemplo)

Por exemplo, se CVE-2022-001 for encontrado por duas ferramentas separadas, o processo cria duas questões hoje.

Ferramentas suportadas

Atualmente, as ferramentas a seguir são suportadas para processamento de emissão:

  • CRA
  • VA
  • Gosec
  • Detecção de segredos
  • Scanner de API OWASP-ZAP
  • Scanner OWASP-ZAP UI
  • SonarQube

Ferramentas não suportadas ou formatos de resultados

Se o script collect-evidence receber um anexo a partir de uma ferramenta não suportada, ou o formato de arquivo de resultado não for reconhecido durante o processamento, o script pula questões e usa o arquivo de resultado como um simples anexo às provas.

Conteúdo da emissão

  • Problema é o nome do problema ou vulnerabilidade.
  • Due Date mostra a data em que a correção é devida ou n / a se nenhum prazo final estiver disponível.
  • Assunto é o ativo que a questão está vinculada.
  • URL é o link para a versão exata do ativo.
  • Tipo de Ferramenta é a ferramenta que produziu o conteúdo para a emissão

Para problemas criados no Git Repos and Issue Tracking, a data de vencimento é configurada no campo de data de vencimento nativo do GitLab em vez da descrição do problema.

A descrição do problema contém o timestamp quando a questão foi descoberta pela primeira vez. Por exemplo, First found on 2022-04-07. A data está no formato YYYY-MM-DD. Os locais onde o problema ocorre estão listados nos comentários do assunto.

Adiando a data de vencimento de uma questão incidente

Se você quiser adiar a data de vencimento de um problema de incidente, você pode pedir uma revisão a partir de um focal de segurança. Dependendo da revisão, você pode adiar a data de vencimento modificando o campo Due date no incidente Git Repos and Issue Tracking problemas de metas.

Definição e atualização da data de vencimento em Git Repos and Issue Tracking
Definição e atualização da data de vencimento em Git Repos and Issue Tracking

Certifique-se de referencia a revisão focal de segurança na questão, como fornecer um link para ele em um comentário.

Slack alertas para problemas pendentes e vencidos para pipeline CC

O Pipeline de Conformidade Contínua (CC) pode configurar datas de vencimento para as questões de incidentes. O pipeline também pode notificar os usuários sobre questões que se aproximado de datas de vencimento e vencidas as datas de vencimento usando o Slack, se a integração do Slack estiver ativada.

Para obter mais informações, consulte Configurar uma cadeia de ferramentas de Integração Continuada(CI). Para mais informações sobre datas de vencimento, veja [Problemas de Incidentes com a data de vencimento](/docs/devsecops?topic = devsecops-incident-emite#devsecops-devsecops-questões-due-date.

As questões que são notificadas são classificadas da seguinte forma:

  • Questões tendo datas de vencimento pendentes dentro de um cronograma específico: questões que estão abertas, têm datas de vencimento, e estão vencidas dentro de um cronograma.
  • Questões tendo as datas de vencimento anteriores: questões que estão abertas, têm datas de vencimento e a data é passada.

As durações do cronograma são overdue, due in 1 day, due in 2 days, due in 5 days e due in 10 days.

Um exemplo dessa capacidade é o seguinte:

Overdue issues:
- <issue url#1>
- <issue url#2>
- <issue url#3>

Issues due in 1 day:
- <issue url#4>

Issues due in 2 days:
- <issue url#5>

Issues due in 5 days:
- <issue url#6>
- <issue url#7>

Issues due in 10 days
- <issue url#8>
- <issue url#9>
- <issue url#10>
- <issue url#11>
- <issue url#12>

A lista agregada é ordenada com os problemas que são vencidos em primeiro lugar, e os problemas com datas de vencimento mais próximos são listados antes daqueles com data de vencimento posterior.

O estágio cc-finish nas consultas de pipeline CC para as questões com base nos critérios e aciona um alerta Slack.