Coletar registros do AWS Aurora

Compatível com:

Este documento explica como transferir os registros do AWS Aurora para o Google Security Operations. O AWS Aurora é um serviço de banco de dados relacional gerenciado que oferece alto desempenho, escalonabilidade e disponibilidade. Nesta integração, você vai configurar o AWS Aurora para encaminhar registros ao Google SecOps para análise, monitoramento e detecção de ameaças.

Antes de começar

  • Verifique se você tem uma instância do Google SecOps.
  • Verifique se você tem acesso privilegiado à AWS.
  • Verifique se o cluster de banco de dados do AWS Aurora está configurado e em execução.

Configurar o bucket do Amazon S3

  1. Crie um bucket do Amazon S3 seguindo este guia do usuário: Criar um bucket.
  2. Salve o Nome e a Região do bucket para uso futuro.
  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 futuro.
  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 as políticas AmazonS3FullAccess e CloudWatchLogsFullAccess.
  18. Clique em Próxima.
  19. Clique em Adicionar permissões

Configurar o monitoramento aprimorado

  1. Faça login no Console de Gerenciamento da AWS.
  2. Na barra de pesquisa, digite RDS e selecione RDS na lista de serviços.
  3. No Painel do RDS, selecione Bancos de dados no painel de navegação.
  4. Selecione o cluster do Aurora que você quer monitorar.
  5. Na seção Logs e monitoramento, clique em Modificar.
  6. Acesse a seção Monitoramento e ative o Monitoramento aprimorado.
  7. Defina a função de monitoramento como a função do IAM adequada que tem permissões para publicar no CloudWatch Logs ou no S3.
  8. Salve as alterações e aplique-as ao cluster do Aurora.

Configurar os registros de auditoria do AWS Aurora

  1. No Painel do RDS, selecione Bancos de dados e clique no Cluster do Aurora.
  2. Na seção Logs e monitoramento, clique em Modificar.
  3. Na seção Opções do banco de dados, verifique se a opção Ativar registros de auditoria está selecionada.
  4. Em Destino, escolha S3 e especifique o bucket do S3 em que os registros serão armazenados.
  5. Clique em Salvar alterações para aplicar as configurações.

Opcional: configuração dos registros do AWS Aurora usando o CloudWatch

Para outros recursos de monitoramento, configure os Registros do CloudWatch para capturar registros do Aurora.

  1. No Painel do RDS, selecione seu cluster do Aurora.
  2. Na seção Registros e monitoramento, verifique se a integração com os Registros do CloudWatch está ativada.
  3. Acesse os Registros do CloudWatch e crie um novo grupo de registros para armazenar os registros do Aurora.
  4. Na tela Log Groups, escolha o nome do novo Log Group.
  5. Selecione Ações > Exportar dados para o Amazon S3.
  6. Na tela Exportar dados para o Amazon S3, em Definir exportação de dados, defina o período de tempo para a exportação de dados usando De e Para.

  7. Escolha o bucket do S3, selecione a conta associada ao bucket do Amazon S3.

  8. Nome do bucket do S3, selecione um bucket do Amazon S3.

  9. Prefixo do bucket do S3, insira a string gerada aleatoriamente especificada na política do bucket.

  10. Escolha Export para exportar os dados de registro para o Amazon S3.

  11. Para conferir o status dos dados de registro exportados para o Amazon S3, selecione Ações > Conferir todas as exportações para o Amazon S3.

Configurar um feed no Google SecOps para ingerir registros do AWS Aurora

  1. Acesse Configurações do SIEM > Feeds.
  2. Clique em Adicionar novo.
  3. No campo Nome do feed, insira um nome para o feed (por exemplo, AWS Aurora Logs).
  4. Selecione Amazon S3 como o Tipo de origem.
  5. Selecione AWS Aurora como o Tipo de registro.
  6. Clique em Próxima.
  7. 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 bucket.
    • O URI é: selecione Diretório ou Diretório que inclui subdiretórios.
    • Opções de exclusão da origem: selecione a opção de exclusão de acordo com sua preferência.

    • ID da chave de acesso: a chave de acesso do usuário com acesso ao bucket do S3.

    • Chave de acesso secreta: a chave secreta do usuário com acesso ao bucket do S3.

    • Namespace de recursos: o namespace de recursos.

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

  8. Clique em Próxima.

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

Tabela de mapeamento do UDM

Campo de registro Mapeamento do UDM Lógica
account principal.group.product_object_id Mapeado diretamente do campo account no registro bruto.
column1 timestamp_epoch Mapeado diretamente do campo column1 no registro bruto. Usado para derivar metadata.event_timestamp.
column10 Varia Pode ser principal.process.command_line, object ou number, dependendo do formato do registro.
column11 ddl, response ou command_line2 Pode ser principal.resource.resource_subtype (ddl), security_result.outcomes.value (resposta) ou parte de principal.process.command_line (command_line2), dependendo do formato do registro.
column12 operation, response ou command_line3 Pode ser sr.summary (operação), security_result.outcomes.value (resposta) ou parte de principal.process.command_line (command_line3), dependendo do formato do registro.
column13 database ou response Pode ser target.resource.name (banco de dados) ou security_result.outcomes.value (resposta), dependendo do formato do registro.
column14 object Mapeado diretamente para principal.resource.product_object_id ou target_data.resource.name, dependendo do formato do registro.
column15 command_line Mapeado diretamente para principal.process.command_line.
column16 response Mapeado diretamente para security_result.outcomes.value.
column2 timestamp ou timestamp_ms Mapeado diretamente do campo column2 no registro bruto.
column3 ip ou hostname Pode ser principal.ip ou principal.resource.name, dependendo do formato do registro.
column4 port ou userid Pode ser principal.port ou principal.user.userid, dependendo do formato do registro.
column5 userid ou ip Pode ser principal.user.userid ou principal.ip, dependendo do formato do registro.
column6 hostname ou connection_id Pode ser principal.resource.name ou network.session_id, dependendo do formato do registro.
column7 connection_id ou query_id Pode ser network.session_id ou principal.process.pid, dependendo do formato do registro.
column8 operation Mapeado diretamente para sr.summary ou metadata.product_event_type.
column9 query_id ou database Pode ser principal.process.pid ou target_data.resource.name, dependendo do formato do registro.
command_line principal.process.command_line Mapeado diretamente do campo command_line extraído.
connection_id network.session_id Mapeado diretamente do campo connection_id extraído.
database target.resource.name Mapeado diretamente do campo database extraído. Derivado de vários campos, como operation, command_line, has_principal_user e has_principal_machine, usando a lógica condicional no analisador. Pode ser RESOURCE_DELETION, RESOURCE_CREATION, RESOURCE_READ, RESOURCE_WRITTEN, USER_RESOURCE_ACCESS, USER_UNCATEGORIZED ou GENERIC_EVENT. Fixado em "AWS_AURORA". Mapeado de column8 ou derivado da lógica do analisador. Fixado em "AURORA". Fixado em "AMAZON".
has_principal_machine has_principal_machine Defina como "true" se principal.ip estiver presente. Caso contrário, será inicializado como "false".
has_principal_user has_principal_user É definido como "true" se principal.user.userid estiver presente. Caso contrário, será inicializado como "false".
hostname principal.resource.name Mapeado diretamente do campo hostname extraído.
ip principal.ip Mapeado diretamente do campo ip extraído.
logevent.id security_result.detection_fields.value Aninhado em target.logEvents.logEvents, mapeado com a chave "id".
logevent.message security_result.detection_fields.value Aninhado em target.logEvents.logEvents, mapeado com a chave "message". Usado para extrair principal.ip, time_unix, operation e user.
logevent.timestamp security_result.detection_fields.value Aninhado em target.logEvents.logEvents, mapeado com a chave "carimbo de tempo".
object target_data.resource.name ou principal.resource.product_object_id Mapeado diretamente do campo object extraído.
operation sr.summary Mapeado diretamente do campo operation extraído.
port principal.port Mapeado diretamente do campo port extraído.
query_id principal.process.pid Mapeado diretamente do campo query_id extraído.
response security_result.outcomes.value Mapeado diretamente do campo response extraído.
service principal.application Mapeado diretamente do campo service no registro bruto.
src_ip principal.ip Extraídos de logevent.message na estrutura aninhada target.logEvents.logEvents.
target.logEvents.logGroup target.resource.attribute.labels.value Mapeado com a chave "logGroup".
target.logEvents.logStream target.resource.attribute.labels.value Mapeado com a chave "logStream".
target.logEvents.messageType target.resource.attribute.labels.value Mapeado com a chave "messageType".
target.logEvents.owner target.resource.attribute.labels.value Mapeado com a chave "owner".
timestamp_epoch metadata.event_timestamp Conversão para metadata.event_timestamp usando o filtro date.
user principal.user.userid Extraídos de logevent.message na estrutura aninhada target.logEvents.logEvents.
userid principal.user.userid Mapeado diretamente do campo userid extraído.

Alterações

2024-01-12

  • Mapeou "logEvents.messageType", "logEvents.owner", "logEvents.logGroup" e "logEvents.logStream" para "target.resource.attribute.labels".
  • "logEvents.logEvents.message", "logEvents.logEvents.timestamp" e "logEvents.logEvents.id" foram mapeados para "securit_result.detection_fields".
  • Um padrão Grok foi adicionado para extrair o endereço IP de "logEvents.logEvents.message" e mapear "src_data" para "principal.ip".
  • Mapeamos "user" para "principal.user.userid".

2023-11-02

  • Parser recém-criado.

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