Uma técnica persistente de escalonamento de privilégios na AWS que permite que invasores com permissões limitadas executem código sob funções de execução com privilégios mais altos em instâncias EC2 e instâncias de notebook SageMaker.
Documentado pela primeira vez por Grzelak em 2016 para EC2, o método explora configurações modificáveis de tempo de inicialização para injetar cargas maliciosas, ignorando controles IAM padrão como PassRole.
Uma análise recente do pesquisador de segurança Daniel Grzelak confirma que o padrão persiste nos serviços da AWS, destacando os riscos contínuos em ambientes de computação em nuvem.
Os invasores com permissões ec2:StartInstances, ec2:StopInstances e ec2:ModifyInstanceAttribute têm como alvo instâncias EC2 existentes anexadas a perfis de instância poderosos.
Escalação de privilégios do SageMaker
Ao interromper a instância, eles modificam o atributo userData usando uma diretiva #cloud-boothook, que aciona a execução do script em cada reinicialização.
Reiniciar a instância executa o código injetado, como a exfiltração de credenciais, no contexto da função de execução da instância, concedendo acesso às suas permissões completas.
Essa técnica permanece viável hoje, pois a documentação da AWS ainda permite modificações de userData após o lançamento. Os logs do CloudTrail revelam o ataque por meio de sequências como StopInstances → ModifyInstanceAttribute → StartInstances de entidades de segurança inesperadas.
A mitigação exige restringir ec2:ModifyInstanceAttribute a administradores confiáveis, tratando-o como equivalente à execução arbitrária de código na função de destino.
As instâncias de notebook do Amazon SageMaker, alimentadas por ambientes Jupyter gerenciados, introduzem um vetor paralelo por meio de configurações de ciclo de vida e scripts de shell executados no início ou na criação.
Permissões para sagemaker:StopNotebookInstance, sagemaker:UpdateNotebookInstance (com lifecycle-config-name) e sagemaker:StartNotebookInstance habilitam o escalonamento: interrompa um notebook, crie ou anexe uma configuração de ciclo de vida maliciosa com código de roubo de credenciais codificado em base64 e reinicie.
Daniel Grzelak, da Plerion, forneceu um código bash de prova de conceito que demonstra toda a cadeia, desde a criação da configuração até a exfiltração por meio de um endpoint de retorno de chamada.
A complexidade do SageMaker, abrangendo notebooks, domínios e estúdios, amplifica a exposição, já que as funções de execução geralmente possuem amplas permissões de ciência de dados, como acesso S3 ou implantação de modelo.
O Rhino Security Labs notou anteriormente abusos semelhantes do SageMaker, mas as atualizações do ciclo de vida representam uma modificação pós-configuração mais sutil.
A principal falha decorre de verificações PassRole que ocorrem apenas na criação de recursos, dissociando a atribuição de funções das alterações no código de tempo de execução. Padrões semelhantes afetam o Lambda (via UpdateFunctionCode), conjuntos de alterações do CloudFormation e, potencialmente, o SageMaker Studios.
Os invasores podem caçar sistematicamente endpoints de API da AWS com dependências de função de execução, permitindo exploração generalizada.
A detecção depende do monitoramento do CloudTrail para padrões Stop → Update → Start em recursos de computação, principalmente de identidades não operacionais.
A prevenção envolve escopo de privilégio mínimo em torno de ações de modificação de configuração, políticas de controle de serviço (SCPs) que negam passagens amplas de funções de execução e fluxos de trabalho de aprovação para reinicializações.
A AWS classifica isso como problemas de configuração no modelo de responsabilidade compartilhada, incentivando as equipes a auditar rigorosamente as suposições da função de execução.
Siga-nos no Google News, LinkedIn e X para atualizações diárias de segurança cibernética. Entre em contato conosco para apresentar suas histórias.





