Coletar registros da Central de Segurança da AWS

Compatível com:

Neste documento, explicamos como ingerir registros do AWS Security Hub no Google Security Operations. O AWS Security Hub oferece uma visão abrangente de alertas e descobertas de segurança em contas da AWS. Ao enviar essas descobertas para o Google SecOps, você pode usar os recursos dele para melhorar o monitoramento e a detecção de ameaças.

Antes de começar

Verifique se você atende aos seguintes pré-requisitos:

  • Instância do Google SecOps
  • Acesso privilegiado à AWS

Configurar o AWS IAM e o S3

  1. Crie um bucket do Amazon S3 seguindo este guia do usuário: Como criar um bucket.
  2. Salve o Nome e a Região do bucket para uso posterior.
  3. Crie um usuário seguindo este guia: Como criar um usuário do IAM.
  4. Selecione o usuário criado.
  5. Selecione a guia Credenciais de segurança.
  6. Clique em Criar chave de acesso na seção Chaves de acesso.
  7. Selecione Serviço de terceiros como o Caso de uso.
  8. Clique em Próxima.
  9. Opcional: adicione uma tag de descrição.
  10. Clique em Criar chave de acesso.
  11. Clique em Fazer o download do arquivo CSV para salvar a chave de acesso e a chave de acesso secreta para uso posterior.
  12. Clique em Concluído.
  13. Selecione a guia Permissões.
  14. Clique em Adicionar permissões na seção Políticas de permissões.
  15. Selecione Adicionar permissões.
  16. Selecione Anexar políticas diretamente.
  17. Pesquise e selecione a política AmazonS3FullAccess.
  18. Clique em Próxima.
  19. Clique em Adicionar permissões

Criar uma função Lambda

  1. Faça login no Console de Gerenciamento da AWS.
  2. Acesse Lambda.
  3. Clique em Criar função e selecione Criar do zero.
  4. Dê um nome à função, por exemplo, SecurityHubToS3.
  5. Escolha Python 3.x para o ambiente de execução.
  6. Insira o código do Lambda que extrai as descobertas do EventBridge e as grava no bucket do S3:

    import json
    import boto3
    from datetime import datetime
    
    # Initialize the S3 client
    s3_client = boto3.client('s3')
    
    # S3 bucket where findings will be stored
    bucket_name = 'aws-security-hub-findings-stream'
    
    def lambda_handler(event, context):
       # Extract Security Hub findings from the event
       findings = event['detail']['findings']
    
       # Generate a timestamp for the file name to avoid overwriting
       timestamp = datetime.now().strftime('%Y-%m-%dT%H-%M-%S')
    
       # Generate the S3 object key (file name) based on the timestamp
       object_key = f"security_hub_findings_{timestamp}.json"
    
       # Convert findings to JSON format
       findings_json = json.dumps(findings)
    
       # Upload the findings to S3
       try:
          response = s3_client.put_object(
                Bucket=bucket_name,
                Key=object_key,
                Body=findings_json,
                ContentType='application/json'
          )
          print(f"Successfully uploaded findings to S3: {response}")
       except Exception as e:
          print(f"Error uploading findings to S3: {e}")
          raise e
    
       return {
          'statusCode': 200,
          'body': json.dumps('Successfully processed findings')
       }
    
  7. Defina as permissões do Lambda adicionando uma função do IAM à função do Lambda com a seguinte política:

    {
       "Version": "2012-10-17",
       "Statement": [
          {
                "Effect": "Allow",
                "Action": [
                   "s3:PutObject"
                ],
                "Resource": "arn:aws:s3:::aws-security-hub-findings-stream/*"
          }
       ]
    }
    

Como configurar a Central de segurança da AWS para encaminhar descobertas com o EventBridge

  1. Faça login no Console de Gerenciamento da AWS.
  2. Na barra de pesquisa, digite e selecione Security Hub na lista de serviços.
  3. Clique em Configurações.
  4. Na seção Integrações, encontre EventBridge e clique em Ativar.
  5. Na barra de pesquisa, digite e selecione EventBridge na lista de serviços.
  6. No console do EventBridge, clique em Regras > Criar regra.
  7. Forneça a seguinte configuração de regra:
    1. Nome da regra: informe um nome descritivo para a regra, por exemplo, SendSecurityHubFindingsToS3.
    2. Origem do evento: selecione Serviços da AWS.
    3. Nome do serviço: escolha Security Hub.
    4. Tipo de evento: selecione Descobertas do Security Hub.
    5. Defina o destino: escolha Função Lambda.
    6. Selecione a função Lambda que você acabou de criar (SecurityHubToS3).
  8. Clique em Criar.

Configurar feeds

Há dois pontos de entrada diferentes para configurar feeds na plataforma do Google SecOps:

  • Configurações do SIEM > Feeds
  • Central de conteúdo > Pacotes de conteúdo

Configure feeds em Configurações do SIEM > Feeds

Para configurar vários feeds para diferentes tipos de registros nessa família de produtos, consulte Configurar vários feeds.

Para configurar um único feed, siga estas etapas:

  1. Acesse Configurações do SIEM > Feeds.
  2. Clique em Adicionar novo feed.
  3. Na próxima página, clique em Configurar um único feed.
  4. No campo Nome do feed, insira um nome para o feed, por exemplo, Registros do AWS Security Hub.
  5. Selecione Amazon S3 como o Tipo de origem.
  6. Selecione AWS Security Hub como o Tipo de registro.
  7. Clique em Próxima.
  8. Especifique valores para os seguintes parâmetros de entrada:

    • Região: a região em que o bucket do Amazon S3 está localizado.
    • URI do S3: o URI do bucket.
      • s3://your-log-bucket-name/
        • Substitua your-log-bucket-name pelo nome real do seu bucket do S3.
    • URI é um: selecione Diretório ou Diretório que inclui subdiretórios, dependendo da estrutura do bucket.
    • Opções de exclusão de origem: selecione a opção de exclusão de acordo com suas preferências de ingestão.

    • ID da chave de acesso: a chave de acesso do usuário com permissões para ler do bucket do S3.

    • Chave de acesso secreta: a chave secreta do usuário com permissões para ler do bucket do S3.

    • Namespace do recurso: o namespace do recurso.

    • Rótulos de ingestão: o rótulo a ser aplicado aos eventos deste feed.

  9. Clique em Próxima.

  10. Revise a nova configuração do feed na tela Finalizar e clique em Enviar.

Configurar feeds na Central de conteúdo

Especifique valores para os seguintes campos:

  • Região: a região em que o bucket do Amazon S3 está localizado.
  • URI do S3: o URI do bucket.
    • s3://your-log-bucket-name/
      • Substitua your-log-bucket-name pelo nome real do seu bucket do S3.
  • URI é um: selecione Diretório ou Diretório que inclui subdiretórios, dependendo da estrutura do bucket.
  • Opções de exclusão de origem: selecione a opção de exclusão de acordo com suas preferências de ingestão.
  • ID da chave de acesso: a chave de acesso do usuário com permissões para ler do bucket do S3.

  • Chave de acesso secreta: a chave secreta do usuário com permissões para ler do bucket do S3.

Opções avançadas

  • Nome do feed: um valor pré-preenchido que identifica o feed.
  • Tipo de origem: método usado para coletar registros no Google SecOps.
  • Namespace do recurso: namespace associado ao feed.
  • Rótulos de ingestão: rótulos aplicados a todos os eventos deste feed.

Tabela de mapeamento do UDM

Campo de registro Mapeamento do UDM Lógica
account principal.group.product_object_id O ID da conta da AWS associada à descoberta.
configurationItem.ARN target.resource.id O nome do recurso da Amazon (ARN) do item de configuração.
configurationItem.awsAccountId principal.user.userid O ID da conta da AWS do item de configuração.
configurationItem.awsRegion target.asset.location.country_or_region A região da AWS do item de configuração.
configurationItem.configuration.complianceType security_result.summary O tipo de compliance do item de configuração.
configurationItem.configuration.configRuleList[].complianceType security_result.summary Status de compliance de cada regra de configuração.
configurationItem.configuration.configRuleList[].configRuleArn security_result.rule_id O ARN da regra do AWS Config.
configurationItem.configuration.configRuleList[].configRuleId security_result.about.labels.configRuleId O ID da regra do AWS Config.
configurationItem.configuration.configRuleList[].configRuleName security_result.rule_name O nome da regra do AWS Config.
configurationItem.configuration.privateIpAddress target.ip O endereço IP particular do item de configuração.
configurationItem.configuration.publicIpAddress target.ip O endereço IP público do item de configuração.
configurationItem.configurationItemCaptureTime target.asset.attribute.creation_time O horário de captura do item de configuração, convertido em um carimbo de data/hora.
configurationItem.configurationItemStatus target.asset.attribute.labels.Configuration Item Status O status do item de configuração.
configurationItem.relationships[].resourceId target.asset.attribute.cloud.vpc.id O ID do recurso relacionado, usado para o ID da VPC se corresponder a vpc.
configurationItem.resourceId target.resource.id O ID do recurso do item de configuração.
configurationItem.resourceName target.resource.name O nome do recurso.
configurationItem.resourceType target.resource.resource_subtype O tipo de recurso do item de configuração.
configurationItem.tags.Contact principal.user.user_display_name OU principal.user.email_addresses Detalhes de contato extraídos de tags e analisados para e-mail e nome de usuário.
configurationItem.tags.OS / configurationItem.tags.Os target.asset.platform_software.platform O sistema operacional das tags, mapeado para a plataforma se for Windows ou Linux.
configurationItemDiff.changeType metadata.event_type O tipo de mudança, mapeado para RESOURCE_WRITTEN ou RESOURCE_CREATION.
detail.accountId principal.group.product_object_id O ID da conta da AWS associada à descoberta.
detail.actionDescription detail.actionName detail.description sec_result.description A descrição da descoberta.
detail.findings[].AwsAccountId principal.group.product_object_id O ID da conta da AWS associada à descoberta.
detail.findings[].CompanyName detail.findings[].CreatedAt detail.findings[].Description sec_result.description A descrição da descoberta.
detail.findings[].FindingProviderFields.Severity.Label sec_result.severity O rótulo de gravidade da descoberta, convertido em letras maiúsculas.
detail.findings[].FindingProviderFields.Types[] detail.findings[].FirstObservedAt detail.findings[].GeneratorId detail.findings[].Id detail.findings[].LastObservedAt detail.findings[].ProductArn detail.findings[].ProductFields. Consulte abaixo Vários campos usados para informações adicionais, principais e de destino.
detail.findings[].ProductName detail.findings[].RecordState detail.findings[].Region target.location.name A região da AWS da descoberta.
detail.findings[].Resources[].Details. Consulte abaixo Detalhes sobre os recursos envolvidos na descoberta.
detail.findings[].Resources[].Id target.resource.product_object_id O ID do recurso.
detail.findings[].Resources[].Partition detail.findings[].Resources[].Region target.location.name A região da AWS do recurso.
detail.findings[].Resources[].Tags detail.findings[].Resources[].Type target.resource.resource_type, target.resource.resource_subtype, metadata.event_type O tipo de recurso usado para mapeamento de tipo, subtipo e tipo de evento.
detail.findings[].Sample detail.findings[].SchemaVersion detail.findings[].Severity.Label detail.findings[].SourceUrl detail.findings[].Title sec_result.summary O título da descoberta.
detail.findings[].Types[] detail.findings[].UpdatedAt detail.findings[].Workflow.Status detail.findings[].WorkflowState detail-type metadata.product_event_type O tipo de detalhe do evento.
id metadata.product_log_id O ID do evento.
region target.location.name A região da AWS do evento.
resources[] source time version (lógica do analisador) metadata.event_timestamp O horário de criação da entrada de registro original, usado como carimbo de data/hora do evento.
(Lógica do analisador) metadata.log_type Defina como AWS_SECURITY_HUB.
(Lógica do analisador) metadata.product_name Defina como AWS Security Hub.
(Lógica do analisador) metadata.vendor_name Defina como AMAZON.
(Lógica do analisador) target.asset.attribute.cloud.environment Defina como AMAZON_WEB_SERVICES.
(Lógica do analisador) metadata.event_type Definido como USER_RESOURCE_ACCESS por padrão se não for mapeado de Resources[].Type ou configurationItemDiff.changeType. Definido como STATUS_UPDATE se configurationItems estiver presente e nenhum outro tipo de evento estiver definido. Defina como RESOURCE_READ se configurationItem ou configurationItems estiver presente e o status for OK ou ResourceDiscovered. Defina como RESOURCE_DELETION se configurationItem ou configurationItems estiver presente e o status for ResourceDeleted.
(Lógica do analisador) metadata.description Defina como guardduty se detail.findings[].ProductFields.aws/guardduty/service/serviceName estiver presente.
(Lógica do analisador) target.asset.attribute.cloud.vpc.resource_type Defina como VPC_NETWORK se configurationItems.relationships[].resourceId corresponder a vpc.
(Lógica do analisador) target.resource.resource_type Defina como VIRTUAL_MACHINE se configurationItem ou configurationItems estiver presente. Defina como UNSPECIFIED se nenhum outro tipo de recurso estiver definido.
(Lógica do analisador) target.asset.platform_software.platform Defina como WINDOWS ou LINUX com base na presença de Windows ou (Linux|LINUX) na mensagem para configurationItem. Para configurationItems, ele é definido com base em configItem.tags.OS ou configItem.tags.Os.
(Lógica do analisador) disambiguation_key Adicionado quando vários eventos são gerados de uma única entrada de registro.

Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.