O blog da AWS

Analise e entenda o uso de roles do IAM com o Amazon Detective

Por Pedro Gadelha, Arquiteto de Soluções na AWS e
Pedro Rosinholi, Arquiteto de Soluções na AWS 

 

As roles do AWS Identity and Access Management (IAM) fornecem um mecanismo valioso que você pode usar para delegar acesso a usuários e serviços para gerenciar e acessar seus recursos da AWS, porém o uso de roles do IAM pode tornar mais complexo determinar quem executou uma dada ação. Os logs do AWS CloudTrail rastreiam o uso vinculado a roles do IAM, porém, atribuir a atividade a um recurso específico que assumiu uma role requer o armazenamento dos logs do CloudTrail e análise da telemetria destes logs. Compreender o uso de roles por meio da análise de logs fica ainda mais complexo se houver utilização de roles entre contas, pela necessidade de coletar, agrupar e analisar logs de várias contas. Em alguns casos, as permissões podem autorizar que um recurso assuma sequencialmente uma série de roles diferentes (encadeamento de roles), complicando ainda mais a atribuição de atividade a um recurso específico.

Nesse artigo demonstraremos como você pode usar o novo recurso de análise de sessão de role do Amazon Detective para investigar descobertas de segurança vinculadas ao uso de uma role do IAM. Você aprenderá sobre como usar esse novo recurso de análise de sessão de role para determinar qual recurso da Amazon Web Services (AWS) assumiu a role que provocou uma descoberta e para entender o contexto das atividades que o recurso executou quando a descoberta foi provocada. Como resultado desse passo a passo, você entenderá como verificar rapidamente comportamentos anômalos de identidade e acesso. Embora esta demonstração utilize uma descoberta do Amazon GuardDuty como ponto de partida, as técnicas demonstradas neste artigo destacam como o Detective pode ser utilizado para investigar comportamentos de acesso vinculados ao uso de roles do IAM.

Com sua análise integrada de logs de várias contas, o novo recurso de análise de sessão de role do Detective fornece visibilidade sobre o uso de rolesroles assumidas entre contas e quaisquer atividades de encadeamento de roles que possam ter sido realizadas nas contas. Com esse recurso, você pode determinar rapidamente quem ou o que assumiu uma role, independentemente de ser um usuário federado do IAM ou outro recurso. O recurso mostra quando as roles foram assumidas e por quanto tempo, e ajuda a determinar as atividades que foram realizadas durante a utilização da mesma. O Detective visualiza esses resultados com base na análise automática de logs do CloudTrail e do tráfego de logs de fluxo da VPC (VPC Flow Logs) que ele processa continuamente para contas ativadas, independentemente destes logs estarem habilitados em cada conta.

Para demonstrar essa funcionalidade, investigaremos uma descoberta de “log do CloudTrail desabilitado” que é acionada pelo Amazon GuardDuty como resultado da atividade realizada por um recurso que assumiu uma role do IAM. O Amazon GuardDuty é um serviço da AWS que monitora continuamente comportamentos maliciosos ou não autorizados para ajudar a proteger seus recursos da AWS, incluindo contas da AWS, chaves de acesso e instâncias Amazon Elastic Compute Cloud (EC2). O GuardDuty identifica atividades incomuns ou não autorizadas, como mineração de criptomoedas, acesso a dados armazenados no S3 a partir de endereços incomuns ou implantações de infraestrutura em uma região que nunca foi usada.

Comece a investigação no GuardDuty

GuardDuty emite uma descoberta do tipo CloudTrailLoggingDisabled para alertá-lo de que o log do CloudTrail foi desativado em uma de suas contas. Essa é uma descoberta importante, pois pode indicar que um usuário não autorizado está tentando esconder seus rastros. Como o Detective recebe uma cópia do tráfego do CloudTrail diretamente da infraestrutura da AWS, o Detective continuará recebendo chamadas de API feitas depois que o log do CloudTrail for desativado.
Para investigar adequadamente esse tipo de descoberta e determinar se esse é um problema com o qual você precisa se preocupar, você precisará responder a algumas perguntas específicas:

  1. Você precisará determinar qual usuário ou recurso desativou o CloudTrail.
  2. Você precisará ver quais outras ações eles executaram depois de desativar os registros no CloudTrail.
  3. Você vai querer entender se o padrão e o comportamento de acesso deles são consistentes com os padrões e comportamentos de acesso anteriores.

Vamos dar uma olhada em uma descoberta do CloudTrailloggingDisabled no GuardDuty enquanto começamos a tentar responder a essas perguntas. Quando você acessa o console do GuardDuty, uma lista de suas descobertas recentes é exibida. Na Figura 1, um filtro foi aplicado para exibir a descoberta do CloudTrailLoggingDisabled.

 

Figura 1: Uma descoberta do GuardDuty mostrando que o CloudTrail foi desativado

Depois de selecionar a descoberta do GuardDuty, você pode ver os detalhes da descoberta, incluindo algumas das informações do usuário relacionadas à descoberta. A Figura 2 mostra a seção Recursos afetados da descoberta.

 

Figura 2: Verificando dados do usuário relacionados à descoberta do GuardDuty

O campo Recursos afetados (Affected resources) indica que a trilha demo-trail-2 é onde os logs foram desativados. Você também pode ver que Tipo de usuário (User type) está definido como AssumedRole e que Nome de usuário (User name) contém a role AWSReservedSSO_AdministratorAccess_598c5f73f8b2b4e5. Essa foi a role que foi assumida para desabilitar o log do CloudTrail. Essas informações podem ajudá-lo a entender os recursos aos quais essa role delega acesso e as permissões que ela fornece. Você ainda precisa identificar quem assumiu especificamente a role para desativar o log do CloudTrail e as atividades que eles realizaram posteriormente. Você pode usar o Amazon Detective para responder a essas perguntas.

 

Investigue a descoberta no Amazon Detective

Para investigar a descoberta do GuardDuty no Detective, selecione a descoberta e, em seguida, selecione Investigar (Investigate) no menu Ações (Actions), como mostrado na Figura 3.

 

Figura 3: Escolha ‘Investigar com o Detective (Investigate with Detective)’ e selecione o ID de descoberta do GuardDuty (GuardDuty finding) no pop-up para investigar a descoberta

Veja a página de localização do perfil

Ao escolher a ação Investigar (Investigate) para a descoberta de CloudTrailLoggingDisabled no GuardDuty, você será redirecionado para a página de perfil da descoberta no console do Detective, conforme mostrado na Figura 4. O Detective tem o conceito de uma página de perfil que exibe resumos e análises coletados dos logs de gerenciamento do CloudTrail, do VPC Flow Logs e das descobertas do GuardDuty para recursos da AWS, endereços IP e usuários. Cada página de perfil pode exibir até 12 meses de informações para o recurso selecionado e tem como objetivo ajudar quem está investigando a revisar e entender o comportamento de um recurso ou fazer uma triagem rápida e aprofundar em possíveis problemas. O Detective não exige que um cliente habilite o log do CloudTrail ou do VPC Flow Logs para recuperar esses dados e, como mencionado anteriormente, fornece 12 meses de visibilidade independentemente das políticas de retenção ou arquivamento de logs do cliente.

 

Figura 4: Visualizando uma descoberta do GuardDuty no Detective

 

Janela de tempo

Para ajudar a focar sua investigação, o Detective padroniza o intervalo de tempo e, portanto, as informações exibidas em um perfil de descoberta para cobrir o período de tempo em que a descoberta foi criada até quando foi atualizada pela última vez. No exemplo mencionado anteriormente, a janela de tempo cobre um período de 1 hora. É possível alterar a janela de tempo escolhendo o ícone de calendário no canto superior direito da página, caso queira examinar informações adicionais antes ou depois da criação da descoberta. A janela de tempo padrão é suficiente para esta investigação, então podemos deixá-lo como está.

Visão geral da sessão da Role

O Detective usa guias para agrupar informações nas páginas de perfil e, para essa descoberta, mostra por padrão a guia de visão geral da sessão da role. A sessão da role representa as atividades e o comportamento do recurso que assumiu a role vinculada à nossa descoberta. Nesse caso, a role foi assumida por alguém com o nome de usuário Sara conforme mostrado na Figura 4, no campo Assumido por (Assumed by). Presumiremos que o primeiro nome da usuária é Sara. Ao analisar as informações da sessão da role nos logs do CloudTrail, o Detective identificou imediatamente que Sara era a usuária que desativou o log do CloudTrail e gerou a descoberta. Respondendo a pergunta de quem executou essa ação.

Antes de responder às outras perguntas sobre o comportamento e as ações de Sara, vamos discutir as sessões de role com mais detalhes. Cada sessão de role tem um nome, Sara nesse caso, e um identificador de sessão de role exclusivo. O identificador da sessão de role é o ID da role assumida e o nome da sessão da role concatenados. As melhores práticas determinam que, para uma role específica que é assumida por um recurso específico, o nome da sessão da role represente o nome de usuário do IAM ou do usuário federado ou inclui outras informações úteis sobre o recurso que assumiu a role (para obter mais informações, consulte o artigo nomeando sessões individuais de roles de IAM). Nesse caso, como as melhores práticas estão sendo seguidas, o Detective é capaz de rastrear as atividades e o comportamento de Sara cada vez que ela assume a role AWSReservedSSO_AdministratorAccess_598c5f73f8b2b4e5.

O Detective rastreia estatísticas como o momento em que uma sessão de role foi observada pela primeira vez (Outubro no caso da Sara para essa role), bem como as ações realizadas e insights comportamentais, como dados de geolocalização onde Sara assumiu tal role. Saber que Sara já assumiu essa role antes é útil, porque agora você pode avaliar se o uso da role mudou durante a janela de 1 hora da janela de tempo que você está analisando, em comparação com todas as vezes que ela assumiu anteriormente essa role.

Analise as mudanças nos padrões de acesso e nas operações da Sara

Durante uma investigação de segurança, determinar se os padrões de acesso foram alterados pode ser útil para destacar atividades maliciosas. O Amazon Detective rastreia mudanças no acesso geográfico e nas operações na guia Novo comportamento (New behavior). Vamos escolher a guia Novo comportamento (New behavior) para a sessão da role para ver essas informações, conforme exibido na Figura 5.

Figura 5: Visualizando o comportamento da nova sessão da role

Como o Detective rastreia quando a Sara assumiu a role AWSReservedSSO_AdministratorAccess_598c5f73f8b2b4e5, ele pode mostrar o local onde Sara assumiu essa  role e se essa atividade ocorreu em um local recorrente.

Na Figura 5, é possível observar que Sara tem um histórico de assumir a role AWSReservedSSO_AdministratorAccess_598c5f73f8b2b4e5 de Bellevue, WA e Ashburn, VA, uma vez que essas localizações são mostradas em azul. Se ela tivesse assumido essa role a partir de um novo local, seria possível observar a nova posição indicada em laranja no mapa. Como as chamadas de API feitas por esse usuário são de um local observado anteriormente, é muito improvável que as credenciais do usuário tenham sido comprometidas. Fazer essa determinação por meio de uma análise manual dos logs do CloudTrail seria muito mais demorado.

Outras informações que você pode coletar na guia de sessão da role Novo comportamento (New behavior) incluem chamadas de API recentemente realizadas, chamadas de API com maior volume, organizações de sistema autônomos recém-observadas e agentes de usuário recém-observados. É útil poder validar que as operações realizadas por Sara durante a janela de tempo atual são relativamente consistentes com as operações que ela realizou no passado. Isso ajuda a ter mais certeza de que era realmente Sara quem estava conduzindo essa atividade.

Investigue as atividades de API de Sara

Agora que determinamos que o padrão de acesso e as atividades de Sara são consistentes com seu comportamento anterior, vamos usar o Detective para analisar mais profundamente as atividades de Sara e determinar se ela desativou acidentalmente o log do CloudTrail ou se havia uma possível intenção maliciosa por trás de sua ação.

Para investigar as ações do usuário

  1. Na página de localização do perfil, na lista na parte superior da tela, selecioneVisão geral: Sessão da Role (Overview: Role Session)para voltar à guia Visão geral (Overview).

 

Figura 6: Navegando até a página ‘Visão geral: sessão da role’ (Overview: Role Session)

 

  1. Quando estiver na guiaVisão geral (Overview), navegue até o painelVolume geral de chamadas de API (Overall API call volume).

 

Figura 7: Navegando até o painel ‘Volume geral de chamadas de API’ (Overall API call volume)

 

Este painel exibe um gráfico das chamadas de API bem-sucedidas e malsucedidas feitas pela Sara enquanto assumida a role AWSReservedSSO_AdministratorAccess_598c5f73f8b2b4e5. O gráfico mostra um retângulo preto em torno das atividades que foram realizadas durante o período da janela de tempo das descobertas do CloudTrail. Ele também exibe atividades históricas e mostra uma linha de base no gráfico para destacar o quão ativamente ela usa as permissões concedidas a ela assumindo essa role.

  1. Clique no botãomostrar detalhes para a janela de tempo (display details for scope time)para buscar os detalhes de chamada de API que foram executadas pela Sara durante a janela de tempo, para que seja possível determinar as ações dela após desabilitar os logs do CloudTrail.

 

Figura 9: Exibindo os métodos de API (API method) chamados

O painel Volume geral de chamadas da API (Overall API call volume) irá expandir para mostrar todos os endereços IP, chamadas de API e chaves de acesso usados por Sara durante a janela de tempo desta descoberta.

  1. Escolha a guiaMétodo da API (API method)para ver uma lista de todas as chamadas de API que foram feitas.

 

Figura 9: Exibindo os métodos de API (API method) chamados

Neste caso, é possível observar que ela invocou apenas duas chamadas de API durante essa janela de tempo: as chamadas de API StopLogging e AssumeRole. Você já estava ciente de que Sara desativou o log do CloudTrail, mas não sabia que ela assumiu outra role. Quando um usuário assume uma role enquanto está utilizando outra, isso é chamado de encadeamento de funções/roles. Embora o encadeamento de roles possa ser usado porque um usuário precisa de permissões adicionais, ele também pode ser usado para ocultar atividades. Como não sabemos quais outras ações a Sara realizou depois de assumir essa segunda role, vamos nos aprofundar. Isso pode esclarecer por que ela escolheu desativar o log do CloudTrail.

 

Examine tarefas encadeadas de assumir roles

Para saber mais sobre o uso de encadeamento de roles por Sara, vamos olhar para a outra role que ela assumiu durante essa sessão.

Para analisar a outra role do usuário

  1. Navegue de volta ao topo da página de busca de perfil. No painelDetalhes da sessão da role (Role session details), escolhaAWSReservedSSO_AdministratorAccess_598c5f73f8b2b4e5.

 

Figura 10: Localizando o nome ‘Role assumida’ (Assumed Role)

O Detective exibe a página de perfil AWS Role para essa role, e é possível observar a atividade que ocorreu em todos os recursos que assumiram essa role. Para destacar informações relevantes para o período de sua investigação, o Detective mantém sua janela de tempo à medida que você passa da página de perfil de localização do CloudTrailLoggingDisabled para a página de perfil da role.

  1. O objetivo de acessar esta página é determinar qual outra role Sara assumiu após assumir AWSReservedSSO_AdministratorAccess_598c5f73f8b2b4e5, então escolha a guia Interação de recurso (Resource interaction). Nesta guia, você verá os três painéis a seguir: Recursos que assumiram essa role (Resources that assumed this role), Roles assumidas (Assumed roles) e Sessões envolvidas (Sessions involved). Na Figura 11, você pode ver o painel Recursos que assumiram essa role (Resources that assumed this role), o qual lista todos os recursos da AWS que assumiram essa role, seu tipo (instância do EC2, usuário federado ou IAM, roledo IAM), sua conta e quando assumiram a role pela primeira e pela última vez. Sara está nessa lista, mas o Detective não mostra uma conta da AWS ao lado dela porque os usuários federados não estão vinculados a uma conta específica. O campo de conta é preenchido para outros tipos de recursos exibidos neste painel e pode ser útil para entender a adoção da role entre contas.

 

Figura 11: Visualizando recursos que assumiram uma role

 

  1. Na mesma guia deInteração com Recursos (Resource Interaction), ao rolar para baixo, você verá o painel Roles assumidas (Assumed Roles), Figura 12, que ajuda a entender o encadeamento de roles listando as outras roles que foram assumidas pela role AWSReservedSSO_AdministratorAccess_598c5f73f8b2b4e5. Nesse caso, a role assumiu várias outras roles, incluindo a DemoRole1 durante a mesma janela de tempo em que a descoberta do evento CloudTrailLoggingDisabled ocorreu.

 

Figura 12: Visualizando as roles que foram assumidas

 

  1. Na Figura 13, você pode ver o painel Sessões envolvidas (Sessions involved) que mostra as sessões de rolepara todos os recursos que assumiram essa rolee as sessões de role em que essa role assumiu outras roles dentro da janela de tempo. Como é possível observar, há duas sessões de role com o nome de sessão Sara, uma em que a mesma assumiu a role AWSReservedSSO_AdministratorAccess_598c5f73f8b2b4e5 e outra onde AWSReservedSSO_AdministratorAccess_598c5f73f8b2b4e5 assumiu DemoRole1.

 

Figura 13: Visualizando as sessões de role com as quais essa role estava envolvida

 

Agora que você sabe que a Sara também usou a role DemoRole1 durante a sessão de role dela, vamos olhar mais de perto quais ações ela executou.

 

Visualize operações de API que foram chamadas dentro de uma role encadeada

Neste passo, serão analisadas as atividades de Sara dentro da role DemoRole1, focando nas chamadas de API executadas.

Para visualizar a atividade do usuário em outra role

  1. No painel Sessões envolvidas (Sessions involved), na coluna Nome da sessão (Session name), localize a linha em que Demorole1 é o valor Role assumida (Assumed role). Escolha o nome da sessão nesta linha, Sara, para ir para a página de perfil da sessão da role.
  2. Para investigar melhor os métodos de API que foram chamados durante essa sessão derole poderá visualizá-los no painel Volume geral de chamadas da API (Overall API call volume). Conforme mostrado na Figura 14, você pode ver que a Sara acessou a Demorole1 antes, porque há chamadas registradas no gráfico antes das chamadas na janela de tempo.
  3. Escolha o botãoexibir detalhes para a janela de tempo (display details for scope time) no painel Volume geral de chamadas da API (Overall API call volume) e, em seguida, escolha a guia Método da API (API method).

 

Figura 14: Visualizando as chamadas de método da API da sessão de role

 

Na Figura 14, você pode ver que as chamadas foram feitas para os métodos da API DescribeInstances e RunInstances. Agora você sabe que Sara determinou o tipo de instâncias do Amazon EC2 que estavam sendo executadas em sua conta e, em seguida, criou com êxito uma instância do EC2 chamando o método da API RunInstances. Você também pode ver que as chamadas bem-sucedidas e com falha foram feitas para o método da API AttachRolePolicy como parte da sessão. Isso poderia ser uma tentativa de elevar as permissões na conta e justificaria uma investigação mais aprofundada sobre as ações do usuário.

Durante a investigação, foi identificado que Sara era a usuária que desativou o log do CloudTrail e que seu padrão de acesso era consistente com seus acessos anteriores. Também foi possível identificar as outras ações que ela executou depois que ela desativou o registro e assumiu uma segunda role, mas você pode continuar investigando mais detalhadamente, respondendo a perguntas adicionais, como:

  • O que Sara fez com Demorole1 quando ela assumiu essa role no passado? As atividades atuais dela são consistentes com as atividades do passado?
  • Quais atividades estão sendo realizadas nessa conta? São consistentes com as atividades da Sara?

Ao usar os recursos do Detective que foram demonstrados nesta postagem, você poderá responder as perguntas como as listadas acima.

Resumo

Depois de ler este artigo, esperamos que você tenha um melhor entendimento das formas que o Amazon Detective coleta, organiza e apresenta dados de log para simplificar suas investigações de segurança. Todas as assinaturas do serviço Detective incluem os novos recursos de análise de sessão de role. Com esses recursos, você pode atribuir rapidamente a atividade executada sob uma role a um recurso específico em seu ambiente, entender atividades de assumir role entre contas, determinar o comportamento de encadeamento de roles e ver rapidamente as chamadas de API.

Todos os clientes possuem um período gratuito de 30 dias ao ativar o Amazon Detective. Consulte a página de Serviços Regionais da AWS para verificar todas as regiões em que o Detective está disponível. Para saber mais, visite a página do produto Amazon Detective ou veja os recursos adicionais no final deste artigo para expandir ainda mais seu conhecimento sobre os recursos e capacidades do Detective.

Recursos Adicionais

Recursos do Amazon Detective
Amazon Detective Visão Geral e Demonstração (em inglês)
Perguntas frequentes do Amazon Detective
Endpoints e Cotas do Amazon Detective
Nomeando sessões individuais de roles de IAM (em inglês)

 

Se você tem um feedback sobre este artigo, envie um comentário na seção de Comentários abaixo.

Quer mais conteúdo sobre Segurança na AWS, novidades, e anúncio de funcionalidades? Siga-nos no Twitter.

 

Este artigo foi traduzido do Blog da AWS em Inglês.

 


Sobre os tradutores

Pedro Gadelha é Arquiteto de Soluções na AWS com experiência no âmbito de redes, migração e segurança. Se empenha em ajudar empresas a utilizarem todo o potencial da nuvem.

 

 

 

 

 

Pedro Rosinholi é Arquiteto de Soluções na AWS com mais de 10 anos de experiência em soluções de TI. Ajuda empresas de diversas indústrias em sua jornada para a nuvem de maneira segura, escalável e resiliente. No tempo livre coloca uns discos de vinil para tocar.

 

 

 

 

Revisado por Carolina Ferreira e Rafael Almeida