

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Integre bidirecionalmente AWS Security Hub CSPM com o software Jira
<a name="bidirectionally-integrate-aws-security-hub-with-jira-software"></a>

*Joaquin Rinaudo, Amazon Web Services*

## Resumo
<a name="bidirectionally-integrate-aws-security-hub-with-jira-software-summary"></a>

Essa solução oferece suporte a uma integração bidirecional entre AWS Security Hub CSPM e o Jira. Usando essa solução, você pode criar e atualizar tíquetes do Jira de forma automática e manual a partir das descobertas do CSPM do Security Hub. As equipes de segurança podem usar essa integração para notificar as equipes de desenvolvedores sobre descobertas graves de segurança que exigem ação.

A solução permite que você:
+ Selecione quais controles CSPM do Security Hub criam ou atualizam tickets automaticamente no Jira.
+ No console CSPM do Security Hub, use as ações personalizadas do CSPM do Security Hub para escalar manualmente os tíquetes no Jira.
+ Atribua tickets automaticamente no Jira com base nas Conta da AWS tags definidas em AWS Organizations. Se essa tag não for definida, um destinatário padrão será usado.
+ Suprima automaticamente as descobertas de CSPM do Security Hub marcadas como falso positivo ou risco aceito no Jira.
+ Feche automaticamente um ticket do Jira quando sua descoberta relacionada for arquivada no CSPM do Security Hub.
+ Reabra os tíquetes do Jira quando as descobertas do CSPM do Security Hub ocorrerem novamente.

**Fluxo de trabalho do Jira**

A solução usa um fluxo de trabalho personalizado do Jira que permite aos desenvolvedores gerenciar e documentar riscos. À medida que o problema avança no fluxo de trabalho, a integração bidirecional garante que o status do ticket do Jira e da descoberta do CSPM do Security Hub seja sincronizado entre os fluxos de trabalho em ambos os serviços. Este fluxo de trabalho é um derivado do *SecDevOps Risk Workflow* de Dinis Cruz, licenciado sob a versão 2.0 da [Licença Apache](https://www.apache.org/licenses/LICENSE-2.0). Recomendamos adicionar uma condição de fluxo de trabalho do Jira para que somente membros da sua equipe de segurança possam alterar o status do tíquete.

![Um diagrama do fluxo de trabalho de um problema do Jira. Você pode corrigir o problema, aceitar o risco ou marcá-lo como falso positivo.](https://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/206b9907-c2a3-4142-90bf-d4eabee534c0/images/10b08232-437e-4b0a-b6a5-b5ef4d415ac5.png)


Para ver um exemplo de um tíquete do Jira gerado automaticamente por essa solução, consulte a seção [Informações adicionais](#bidirectionally-integrate-aws-security-hub-with-jira-software-additional) desse padrão.

## Pré-requisitos e limitações
<a name="bidirectionally-integrate-aws-security-hub-with-jira-software-prereqs"></a>

**Pré-requisitos **
+ Se você quiser implantar essa solução em um AWS ambiente com várias contas:
  + Seu ambiente de várias contas está ativo e é gerenciado por AWS Organizations.
  + O CSPM do Security Hub está habilitado em seu. Contas da AWS
  + Em AWS Organizations, você designou uma conta de administrador CSPM do Security Hub.
  + Você tem uma função entre contas AWS Identity and Access Management (IAM) que tem `AWSOrganizationsReadOnlyAccess` permissões para a conta AWS Organizations de gerenciamento.
  + (Opcional) Você marcou seu Contas da AWS com`SecurityContactID`. Essa tag é usada para atribuir tíquetes do Jira aos contatos de segurança definidos.
+ Se você quiser implantar essa solução em uma única solução Conta da AWS:
  + Você tem uma Conta da AWS ativa.
  + O CSPM do Security Hub está habilitado em seu. Conta da AWS
+ Uma instância do Jira Data Center
**Importante**  
Essa solução é compatível com o uso do Jira Cloud. No entanto, o Jira Cloud não suporta a importação de fluxos de trabalho XML, então você precisa recriar manualmente o fluxo de trabalho no Jira. Você pode encontrar as transições e o status no GitHub repositório.
+ Permissões de administrador no Jira
+ Use um dos seguintes tokens do Jira:
  + Para o Jira Enterprise, um token de acesso pessoal (PAT). Para obter mais informações, consulte [Uso de tokens de acesso pessoal](https://confluence.atlassian.com/enterprise/using-personal-access-tokens-1026032365.html) (suporte da Atlassian).
  + Para o Jira Cloud, um token da API do Jira. Para obter mais informações, consulte [Gerenciamento de tokens de API](https://support.atlassian.com/atlassian-account/docs/manage-api-tokens-for-your-atlassian-account/) (suporte da Atlassian).

## Arquitetura
<a name="bidirectionally-integrate-aws-security-hub-with-jira-software-architecture"></a>

Esta seção ilustra a arquitetura da solução em vários cenários, como quando o desenvolvedor e o engenheiro de segurança decidem aceitar o risco ou resolver o problema.

*Cenário 1: o desenvolvedor resolve o problema*

1. O Security Hub CSPM gera uma descoberta em relação a um controle de segurança especificado, como os do padrão [AWS Foundational Security Best](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-standards-fsbp.html) Practices.

1. Um CloudWatch evento da Amazon associado à descoberta e à `CreateJIRA` ação inicia uma AWS Lambda função.

1. A função do Lambda usa seu arquivo de configuração e o campo `GeneratorId` da descoberta para avaliar se ela deve escalar a descoberta.

1. A função Lambda determina que a descoberta deve ser escalada e obtém a etiqueta da conta AWS Organizations na `SecurityContactID` conta de gerenciamento. AWS Esse ID está associado ao desenvolvedor e é usado como ID do destinatário do tíquete do Jira.

1. A função Lambda usa as credenciais armazenadas AWS Secrets Manager para criar um ticket no Jira. O Jira notifica o desenvolvedor.

1. O desenvolvedor aborda a descoberta de segurança subjacente e, no Jira, altera o status do tíquete para `TEST FIX`.

1. O Security Hub CSPM atualiza a descoberta à medida `ARCHIVED` que um novo evento é gerado. Esse evento faz com que a função do Lambda encerre o tíquete do Jira automaticamente.

![Um diagrama de arquitetura mostrando a integração entre o Jira e o Security Hub quando um desenvolvedor corrige um problema.](https://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/206b9907-c2a3-4142-90bf-d4eabee534c0/images/18d9a6ce-dd38-4d36-a95d-270fce776c30.png)


*Cenário 2: o desenvolvedor decide aceitar o risco*

1. O Security Hub CSPM gera uma descoberta em relação a um controle de segurança especificado, como os do padrão [AWS Foundational Security Best](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-standards-fsbp.html) Practices.

1. Um CloudWatch evento associado à descoberta e à `CreateJIRA` ação inicia uma função Lambda.

1. A função do Lambda usa seu arquivo de configuração e o campo `GeneratorId` da descoberta para avaliar se ela deve escalar a descoberta.

1. A função Lambda determina que a descoberta deve ser escalada e obtém a etiqueta da conta AWS Organizations na `SecurityContactID` conta de gerenciamento. AWS Esse ID está associado ao desenvolvedor e é usado como ID do destinatário do tíquete do Jira.

1. A função do Lambda usa as credenciais armazenadas no Secrets Manager para criar um tíquete no Jira. O Jira notifica o desenvolvedor.

1. O desenvolvedor decide aceitar o risco e, no Jira, altera o status do tíquete para `AWAITING RISK ACCEPTANCE`.

1. O engenheiro de segurança analisa a solicitação e considera a justificativa comercial apropriada. O engenheiro de segurança altera o status do tíquete do Jira para `ACCEPTED RISK`. Isso fecha o tíquete do Jira.

1. Um evento CloudWatch diário inicia a função de atualização do Lambda, que identifica tickets fechados do Jira e atualiza suas descobertas relacionadas ao CSPM do Security Hub como. `SUPPRESSED`

![Um diagrama de arquitetura mostrando a integração entre o Jira e o Security Hub quando um desenvolvedor aceita o risco de uma descoberta.](https://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/206b9907-c2a3-4142-90bf-d4eabee534c0/images/d5a2f946-9c79-4661-96c1-74c813cbf406.png)


## Ferramentas
<a name="bidirectionally-integrate-aws-security-hub-with-jira-software-tools"></a>

**Serviços da AWS**
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)ajuda você a configurar AWS recursos, provisioná-los de forma rápida e consistente e gerenciá-los em todo o ciclo de vida em todas Contas da AWS as regiões.
+ [O Amazon CloudWatch Events](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html) ajuda você a monitorar eventos do sistema para seus AWS recursos usando regras para combinar eventos e encaminhá-los para funções ou fluxos.
+ O [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) é um serviço de computação que ajuda a executar código sem exigir provisionamento ou gerenciamento de servidores. Ele executa o código somente quando necessário e dimensiona automaticamente, assim, você paga apenas pelo tempo de computação usado.
+ [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html)é um serviço de gerenciamento de contas que ajuda você a consolidar várias Contas da AWS em uma organização que você cria e gerencia centralmente.
+ O [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) ajuda a substituir credenciais codificadas, incluindo senhas, por uma chamada de API ao Secrets Manager para recuperar o segredo por programação.
+ [AWS Security Hub CSPM](https://docs.aws.amazon.com/securityhub/latest/userguide/what-is-securityhub.html)fornece uma visão abrangente do seu estado de segurança em AWS. Também ajuda você a verificar seu AWS ambiente de acordo com os padrões e as melhores práticas do setor de segurança.

**Repositório de código**

O código desse padrão está disponível em GitHub, no repositório [aws-securityhub-jira-software-integration](https://github.com/aws-samples/aws-securityhub-jira-software-integration/). Ele inclui o código de amostra e o fluxo de trabalho do Jira para essa solução.

## Épicos
<a name="bidirectionally-integrate-aws-security-hub-with-jira-software-epics"></a>

### Configurar o Jira
<a name="configure-jira"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Implantar o fluxo de trabalho. | Como administrador no Jira, importe o arquivo `issue-workflow.xml` para sua instância do Jira Data Center. Se você usa o Jira Cloud, precisa criar o fluxo de trabalho de acordo com os arquivos `assets/jira-cloud-transitions.png` e `assets/jira-cloud-status.png`. <br />Os arquivos podem ser encontrados no repositório [aws-securityhub-jira-software-integration](https://github.com/aws-samples/aws-securityhub-jira-software-integration/) em. GitHub Para obter instruções, consulte [Uso do XML para criar um fluxo de trabalho](https://confluence.atlassian.com/adminjiraserver/using-xml-to-create-a-workflow-938847525.html) (documentação do Jira). | Administrador do Jira | 
| Ative e atribua o fluxo de trabalho. | Os fluxos de trabalho ficam inativos até que você os atribua a um esquema de fluxo de trabalho. Em seguida, você atribui o esquema do fluxo de trabalho a um projeto.1. Para seu projeto, certifique-se de ter identificado um esquema de tipo de problema para o projeto. Você pode criar um novo tipo de problema ou selecionar um existente, como `Bug`.<br />2. Atribua o fluxo de trabalho importado a um esquema de fluxo de trabalho de acordo com as instruções em [Ativar um fluxo de trabalho](https://support.atlassian.com/jira-cloud-administration/docs/manage-issue-workflows/#Activate-a-workflow) (documentação do Jira).<br />3. Atribua o esquema de fluxo de trabalho a um projeto de acordo com as instruções em [Associar um esquema de fluxo de trabalho a um projeto](https://support.atlassian.com/jira-cloud-administration/docs/manage-issue-workflows/#Associate-a-workflow-scheme-with-a-project) (documentação do Jira). | Administrador do Jira | 

### Estabeleça os parâmetros da solução
<a name="set-up-the-solution-parameters"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure os parâmetros da solução. | 1. Na pasta **conf**, abra `params_prod.shfile`.<br />2. Forneça valores para os parâmetros a seguir:`ORG_ACCOUNT_ID`— O ID da conta da sua conta AWS Organizations de gerenciamento. A solução lê as tags da conta e atribui tickets aos contatos de segurança específicos definidos nessas Conta da AWS tags.`ORG_ROLE`— O nome da função do IAM usada para acessar a conta AWS Organizations de gerenciamento. Esse perfil deve ter `OrganizationsReadOnlyAccess` permissões.`EXTERNAL_ID`: um parâmetro opcional se você estiver usando um ID externo para assumir o perfil do IAM definido em `ORG_ROLE`. Para obter mais informações, consulte [Como usar uma ID externa](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html) (documentação do IAM).`JIRA_DEFAULT_ASSIGNEE`: esse é o destinatário padrão do Jira para todos os problemas de segurança. Esse destinatário padrão é usado caso a conta não esteja marcada corretamente ou o perfil não possa ser assumido.`JIRA_INSTANCE`: o endereço HTTPS do seu endpoint Jira no seguinte formato: `team-<team-id>.atlassian.net/``JIRA_PROJECT_KEY`: o nome da chave do projeto Jira usada para criar tíquetes, como `SEC` ou `TEST`. Esse projeto já deve existir no Jira. `ISSUE_TYPE`: o nome do esquema de tipo de problema atribuído ao projeto no Jira, como `Bug` ou `Security Issue`.`REGIONS`— Lista de Região da AWS códigos nos quais você deseja implantar essa solução, como`eu-west-1`.<br />3. Salve e feche o arquivo de parâmetros da solução. | Administrador de sistemas AWS | 
| Identifique as descobertas que você deseja automatizar. | 1. Abra o console [CSPM do Security Hub](https://console.aws.amazon.com/securityhub/).<br />2. No painel de navegação do CSPM do Security Hub, selecione **Descobertas**.<br />3. Selecione o título da descoberta.<br />4. Selecione o ID da descoberta. Isso exibe o JSON completo da descoberta.<br />5. No JSON, copie a string no campo `GeneratorId`. Esse valor está no [AWS Security Finding Format (ASFF)](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-findings-format.html). Por exemplo, `aws-foundational-security-best-practices/v/1.0.0/S3.1` corresponde às descobertas do controle de segurança *S3.1. A configuração S3 Block Public Access deve estar ativada*.<br />6. Repita essas etapas até copiar todos os valores de `GeneratorID` das descobertas que você deseja automatizar. |  | 
| Adicione as descobertas ao arquivo de configuração. | 1. Em **src/code**, abra o arquivo `config.jsonconfig`.<br />2. Cole os valores `GeneratorID` recuperados na história anterior no parâmetro `default` e use vírgulas para separar cada ID.<br />3. Salve e feche o arquivo de configuração.O exemplo de código a seguir mostra como automatizar as descobertas `aws-foundational-security-best-practices/v/1.0.0/SNS.1` e `aws-foundational-security-best-practices/v/1.0.0/S3.1`.<pre>{<br />    "Controls" : {<br />        "eu-west-1": [<br />         "arn:aws:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0/rule/1.22" <br />     ],<br />        "default": [<br />aws-foundational-security-best-practices/v/1.0.0/SNS.1,<br />aws-foundational-security-best-practices/v/1.0.0/S3.1<br />     ]<br />    } <br /> }</pre>Você pode optar por automatizar descobertas diferentes para cada uma Região da AWS. Uma boa prática para ajudar a evitar descobertas duplicadas é selecionar uma única região para automatizar a criação de controles relacionados ao IAM. | Administrador de sistemas AWS | 

### Implantar a integração
<a name="deploy-the-integration"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Implantar a integração. | Em um terminal de linha de comando, digite o seguinte comando:<pre>./deploy.sh prod</pre> | Administrador de sistemas AWS | 
| Faça upload das credenciais do Jira para o Secrets Manager. | 1. Abra o [console do Secrets Manager](https://console.aws.amazon.com/secretsmanager/).<br />2. Em **Secrets** (Segredos), escolha **Store a new secret** (Armazenar um novo segredo).<br />3. Em **Tipo de segredo**, escolha **Outro tipo de segredo**.<br />4. Se você estiver usando o Jira Enterprise, faça o seguinte para **pares de chave/valor**:Na primeira linha, insira `auth` na caixa chave e, em seguida, insira `token_auth` na caixa de valor.Adicione uma segunda linha, insira `token` na caixa da chave e, em seguida, insira seu token de acesso pessoal na caixa de valor.<br />Se você estiver usando o Jira Cloud, faça o seguinte para **pares de chave/valor**:Na primeira linha, insira `auth` na caixa chave e, em seguida, insira `basic_auth` na caixa de valor.Adicione uma segunda linha, insira `token` na caixa de chave e, em seguida, insira seu token de API na caixa de valor.Adicione uma terceira linha, insira `email` na caixa chave e, em seguida, insira seu endereço de e-mail na caixa de valor.<br />5. Escolha **Próximo**.<br />6. Para o **Nome do segredo**, insira `Jira-Token` e, na parte inferior da página, escolha **Próximo**.<br />7. Na página **Secret rotation** (Alternância do segredo), mantenha **Disable automatic rotation** (Desabilitar alternância automática) e, em seguida, na parte inferior da página, escolha **Next** (Próximo).<br />8. Na página **Review** (Revisar), revise os detalhes do segredo e escolha **Store** (Armazenar). | Administrador de sistemas AWS | 
| Crie a ação personalizada CSPM do Security Hub. | 1. Para cada um Região da AWS, no AWS Command Line Interface (AWS CLI), use o [create-action-target](https://docs.aws.amazon.com/cli/latest/reference/securityhub/create-action-target.html)comando para criar uma ação personalizada CSPM do Security Hub chamada. `CreateJiraIssue`<pre>aws securityhub create-action-target --name "CreateJiraIssue" \<br /> --description "Create ticket in JIRA" \<br /> --id "CreateJiraIssue"<br />--region $<aws-region></pre><br />2. Abra o console [CSPM do Security Hub](https://console.aws.amazon.com/securityhub/).<br />3. No painel de navegação do CSPM do Security Hub, selecione **Descobertas**.<br />4. Na lista de descobertas, selecione as que você deseja escalar.<br />5. No menu **Ações**, selecione `CreateJiraIssue`. | Administrador de sistemas AWS | 

## Recursos relacionados
<a name="bidirectionally-integrate-aws-security-hub-with-jira-software-resources"></a>
+ [AWS Conector de gerenciamento de serviços para o Jira Service Management](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/integrations-jiraservicedesk.html)
+ [AWS Padrão básico de melhores práticas de segurança](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-standards-fsbp.html)

## Mais informações
<a name="bidirectionally-integrate-aws-security-hub-with-jira-software-additional"></a>

**Exemplo de um tíquete do Jira**

Quando ocorre uma descoberta de CSPM especificada do Security Hub, essa solução cria automaticamente um ticket do Jira. O tíquete inclui as seguintes informações:
+ **Título**: o título identifica o problema de segurança no seguinte formato:

  ```
  AWS Security Issue :: <AWS account ID> :: <Security Hub finding title>
  ```
+ **Descrição** — A seção de descrição do ticket descreve o controle de segurança associado à descoberta, inclui um link para a descoberta no console CSPM do Security Hub e fornece uma breve descrição de como lidar com o problema de segurança no fluxo de trabalho do Jira.

Veja a seguir um exemplo de um tíquete do Jira gerado automaticamente.


|  | 
| --- |
| Título | AWS Problema de segurança:: 012345678912:: Lambda.1 As políticas da função Lambda devem proibir o acesso público. | 
| --- |--- |
| **Descrição** | **Qual é o problema?** Detectamos uma descoberta de segurança na Conta da AWS 012345678912 pela qual você é responsável.<br />Esse controle verifica se a política de AWS Lambda função anexada ao recurso Lambda proíbe o acesso público. Se a política da função do Lambda permitir acesso público, o controle falhará.<br /><Link to Security Hub CSPM finding><br />**O que devo fazer com o tíquete?**+ Acesse a conta e verifique a configuração. Reconheça o trabalho no tíquete movendo-o para “Alocado para correção”. Depois de corrigido, mova para o teste da correção, para que a segurança valide que o problema foi resolvido.<br />+ Se você acha que o risco deve ser aceito, mova-o para “Aguardando aceitação do risco”. Isso exigirá a análise de um engenheiro de segurança.<br />+ Se você achar que é um falso positivo, faça a transição para “Marcar como falso positivo”. Isso será revisado por um engenheiro de segurança e reopened/closed , consequentemente. | 

 