Trilhas de auditoria - AWS Orientação prescritiva

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á.

Trilhas de auditoria

A trilha de auditoria (ou log de auditoria) fornece um registro cronológico relevante para a segurança dos eventos em sua Conta da AWS. Inclui eventos do Amazon RDS, que fornecem evidências documentais da sequência de atividades que afetaram seu banco de dados ou seu ambiente de nuvem. No Amazon RDS para MySQL ou MariaDB, o uso da trilha de auditoria envolve:

  • Monitoramento do log de auditoria da instância de banco de dados

  • Monitoramento de chamadas da API do Amazon RDS no AWS CloudTrail

Para uma instância de banco de dados Amazon RDS, os objetivos da auditoria geralmente incluem:

  • Possibilitar a responsabilização pelo seguinte:

    • Modificações realizadas no parâmetro ou na configuração de segurança

    • Ações executadas em um esquema, tabela ou linha de banco de dados, ou ações que afetam um conteúdo específico

  • Detecção e investigação de intrusões

  • Detecção e investigação de atividades suspeitas

  • Detecção de problemas de autorização, por exemplo, para identificar abusos de direitos de acesso por usuários regulares ou privilegiados

A trilha de auditoria do banco de dados tenta responder a estas perguntas frequentes: Quem visualizou ou modificou dados sensíveis em seu banco de dados? Quando isso ocorreu? De onde um usuário específico acessou os dados? Os usuários privilegiados abusaram de seus direitos de acesso ilimitado?

Tanto o MySQL quanto o MariaDB implementam o recurso de trilha de auditoria de instâncias de banco de dados usando o plug-in de auditoria do MariaDB. Esse plug-in registra a atividade do banco de dados, como usuários que fazem login no banco de dados, as consultas que são executadas no banco de dados e muito mais. O registro da atividade do banco de dados é armazenado em um arquivo de log. Para acessar o log de auditoria, a instância de banco de dados deve usar um grupo de opções personalizado com a opção MARIADB_AUDIT_PLUGIN. Para obter mais informações, consulte Suporte ao plug-in de auditoria do MariaDB para MySQL na documentação do Amazon RDS. Os registros no log de auditoria são armazenados em um formato específico, conforme definido pelo plug-in. Você pode encontrar mais detalhes sobre o formato do log de auditoria na documentação do MariaDB Server.

A trilha de auditoria da Nuvem AWS para sua conta da AWS é fornecida pelo serviço do AWS CloudTrail. O CloudTrail captura as chamadas de API para o Amazon RDS como eventos. Todas as ações do Amazon RDS são registradas em log. O CloudTrail fornece um registro de ações executadas no Amazon RDS por um usuário, um perfil ou outro serviço da AWS. Os eventos incluem ações executadas no Console de Gerenciamento da AWS, na AWS CLI e nos SDKs e APIs da AWS.

Exemplo

Em um cenário de auditoria comum, talvez seja necessário combinar trilhas do AWS CloudTrail com o log de auditoria do banco de dados e o monitoramento de eventos do Amazon RDS. Por exemplo, você pode ter um cenário em que os parâmetros do banco de dados da sua instância de banco de dados do Amazon RDS (por exemplo,database-1) tenham sido modificados e sua tarefa seja identificar quem fez a modificação, o que foi alterado e quando ocorreu a alteração.

Para realizar a tarefa, siga estas etapas:

  1. Liste os eventos do Amazon RDS que ocorreram com a instância database-1 do banco de dados e determine se há um evento na categoria configuration change que contém a mensagem Finished updating DB parameter group.

    $ aws rds describe-events --source-identifier database-1 --source-type db-instance { "Events": [ { "SourceIdentifier": "database-1", "SourceType": "db-instance", "Message": "Finished updating DB parameter group", "EventCategories": [ "configuration change" ], "Date": "2022-12-01T09:22:40.413000+00:00", "SourceArn": "arn:aws:rds:eu-west-3:111122223333:db:database-1" } ] }
  2. Identifique qual grupo de parâmetros de banco de dados a instância de banco de dados está usando:

    $ aws rds describe-db-instances --db-instance-identifier database-1 --query 'DBInstances[*].[DBInstanceIdentifier,Engine,DBParameterGroups]' [ [ "database-1", "mariadb", [ { "DBParameterGroupName": "mariadb10-6-test", "ParameterApplyStatus": "pending-reboot" } ] ] ]
  3. Use a AWS CLI para pesquisar eventos do CloudTrail na região em que database-1 está implantado, no período próximo ao evento do Amazon RDS descoberto na etapa 1, e onde EventName=ModifyDBParameterGroup.

    $ aws cloudtrail --region eu-west-3 lookup-events --lookup-attributes AttributeKey=EventName,AttributeValue=ModifyDBParameterGroup --start-time "2022-12-01, 09:00 AM" --end-time "2022-12-01, 09:30 AM" { "eventVersion": "1.08", "userIdentity": { "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AIDACKCEVSQ6C2EXAMPLE", "arn": "arn:aws:iam::111122223333:role/Role1", "accountId": "111122223333", "userName": "User1" } } }, "eventTime": "2022-12-01T09:18:19Z", "eventSource": "rds.amazonaws.com", "eventName": "ModifyDBParameterGroup", "awsRegion": "eu-west-3", "sourceIPAddress": "AWS Internal", "userAgent": "AWS Internal", "requestParameters": { "parameters": [ { "isModifiable": false, "applyMethod": "pending-reboot", "parameterName": "innodb_log_buffer_size", "parameterValue": "8388612" }, { "isModifiable": false, "applyMethod": "pending-reboot", "parameterName": "innodb_write_io_threads", "parameterValue": "8" } ], "dBParameterGroupName": "mariadb10-6-test" }, "responseElements": { "dBParameterGroupName": "mariadb10-6-test" }, "requestID": "fdf19353-de72-4d3d-bf29-751f375b6378", "eventID": "0bba7484-0e46-4e71-93a8-bd01ca8386fe", "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management", "sessionCredentialFromConsole": "true" }

O evento do CloudTrail revela que o User1, com o perfil Role1 da conta 111122223333 da AWS, modificou o grupo de parâmetros mariadb10-6-test do banco de dados, que foi usado pela instância database-1 do banco de dados em 2022-12-01 at 09:18:19 h. Dois parâmetros foram modificados e configurados com os seguintes valores:

  • innodb_log_buffer_size = 8388612

  • innodb_write_io_threads = 8

Recursos adicionais do CloudTrail e do CloudWatch Logs

É possível resolver problemas operacionais e incidentes de segurança dos últimos 90 dias no console do CloudTrail visualizando o Histórico de eventos. Para estender o período de retenção e aproveitar os recursos adicionais de consulta, você pode usar o AWS CloudTrail Lake. Com o AWS CloudTrail Lake, você pode manter os dados de eventos em um armazenamento de dados de eventos por até sete anos. Além disso, o serviço é compatível com consultas SQL complexas que oferecem uma visão mais profunda e personalizável dos eventos do que as visualizações fornecidas por pesquisas simples de chave/valor no Histórico de eventos.

Para monitorar suas trilhas de auditoria, definir alarmes e receber notificações quando uma atividade específica ocorrer, você precisa configurar o CloudTrail para enviar seus registros de trilha para o CloudWatch Logs. Depois que os registros da trilha forem armazenados como CloudWatch Logs, você poderá definir filtros de métricas para avaliar os eventos de logs de acordo com termos, frases ou valores e atribuir métricas aos filtros de métricas. Além disso, você pode criar alarmes do CloudWatch que são gerados de acordo com os limites e os períodos que você especificar. Por exemplo, você pode configurar alarmes que enviam notificações às equipes responsáveis para que elas possam tomar as medidas apropriadas. Você também pode configurar o CloudWatch para realizar uma ação automaticamente em resposta a um alarme.