AWS - STS Privesc
STS
sts:AssumeRole
sts:AssumeRole
Cada função é criada com uma política de confiança de função, essa política indica quem pode assumir a função criada. Se uma função da mesma conta diz que uma conta pode assumi-la, significa que a conta poderá acessar a função (e potencialmente escalar privilégios).
Por exemplo, a seguinte política de confiança de função indica que qualquer pessoa pode assumi-la, portanto qualquer usuário poderá escalar privilégios para as permissões associadas a essa função.
Você pode se passar por um papel executando:
Impacto Potencial: Escalação de privilégios para a função.
Note que, neste caso, a permissão sts:AssumeRole
precisa ser indicada na função para ser abusada e não em uma política pertencente ao atacante.
Com uma exceção, para assumir uma função de uma conta diferente a conta do atacante também precisa ter a permissão sts:AssumeRole
sobre a função.
sts:GetFederationToken
sts:GetFederationToken
Com essa permissão, é possível gerar credenciais para se passar por qualquer usuário:
Esta é a forma como essa permissão pode ser concedida de forma segura sem conceder acesso para se passar por outros usuários:
sts:AssumeRoleWithSAML
sts:AssumeRoleWithSAML
Uma política de confiança com essa função concede aos usuários autenticados via SAML acesso para se passar pelo papel.
Um exemplo de uma política de confiança com essa permissão é:
Para gerar credenciais para se passar pelo papel em geral, você poderia usar algo como:
Mas os provedores podem ter suas próprias ferramentas para facilitar isso, como onelogin-aws-assume-role:
Impacto Potencial: Escalação de privilégios para a função.
sts:AssumeRoleWithWebIdentity
sts:AssumeRoleWithWebIdentity
Esta permissão concede permissão para obter um conjunto de credenciais de segurança temporárias para usuários que foram autenticados em um aplicativo móvel, web, EKS... com um provedor de identidade web. Saiba mais aqui.
Por exemplo, se uma conta de serviço EKS deve ser capaz de se passar por uma função IAM, ela terá um token em /var/run/secrets/eks.amazonaws.com/serviceaccount/token
e pode assumir a função e obter credenciais fazendo algo como:
Abuso de Federação
AWS - Federation AbuseLast updated