Rolle an Cognito Identity Pool binden
Kann eine Rolle an einen Cognito Identity Pool binden und ihre Anmeldeinformationen einlösen.
Ermöglicht Eskalation nur in Kombination. All diese sind zusammen erforderlich:
iam:PassRolecognito-identity:SetIdentityPoolRolesiam:PassRole kann eine Rolle an einen Cognito Identity Pool binden und dessen Anmeldeinformationen einlösen, aber nur, wenn sie zusammen mit cognito-identity:SetIdentityPoolRoles gehalten wird. Gemeinsam gehalten erreichen sie Administratorzugriff.
Warum es gefährlich ist
Ein Principal besitzt iam:PassRole auf der Zielrolle sowie cognito-identity:SetIdentityPoolRoles, sodass er die Zielrolle als (unauthentifizierte) Rolle eines Cognito Identity Pools binden und dann über GetId + GetCredentialsForIdentity temporäre Anmeldeinformationen für die Zielrolle einlösen kann. Weil die Zielrolle cognito-identity.amazonaws.com vertraut (AssumeRoleWithWebIdentity), wird die Bindung akzeptiert; ist die Zielrolle privilegiert, ist dies eine vollständige Privilege Escalation, sogar für einen anonymen Aufrufer erreichbar.
In MITRE ATT&CK entspricht dies T1078.004, Valid Accounts: Cloud Accounts, unter der Taktik Privilege Escalation. AWS protokolliert dies in CloudTrail als SetIdentityPoolRoles, GetCredentialsForIdentity. Der Aufruf erscheint in CloudTrail, geht aber in der normalen Administration unter, daher braucht es eine Regel, damit er auffällt.
Erkennung
SetIdentityPoolRolesGetCredentialsForIdentityVoraussetzungen
Die Vertrauensrichtlinie der Zielrolle muss cognito-identity.amazonaws.com über sts:AssumeRoleWithWebIdentity zulassen; ein bestehender Identity Pool (unauthentifizierter Zugriff für den anonymen Pfad aktiviert).
MITRE ATT&CK
T1078.004 · Valid Accounts: Cloud AccountsTaktik
Privilege Escalation
Eine Maßnahme, die ihn beseitigen würde: iam:PassRole / cognito-identity:SetIdentityPoolRoles entfernen; Identity-Pool-Rollen einschränken und unauthentifizierten Zugriff deaktivieren.
Ob sie angewendet werden sollte, hängt davon ab, wie die Berechtigung in Ihrer Umgebung verwendet wird, daher ist es eine geschäftliche Entscheidung und keine automatische Behebung. Dieselbe Berechtigung kann in einem Konto tragend und in einem anderen reines Risiko sein.
Pathbreak bestätigt, ob dieser Pfad in Ihrem Konto auflösbar ist, stuft ihn gegenüber den anderen danach ein, wie viel er eröffnet, und nutzt Ihr Bedrohungsmodell und Ihren Geschäftskontext, um zu zeigen, welche Pfade es wert sind, unterbrochen zu werden.
Fragen
Was erlaubt iam:PassRole?
Kann eine Rolle an einen Cognito Identity Pool binden und ihre Anmeldeinformationen einlösen.
Was ist außerdem nötig, damit iam:PassRole gefährlich ist?
Es wird erst zur Eskalation, wenn es mit cognito-identity:SetIdentityPoolRoles kombiniert wird. Für sich allein reicht es nicht aus, was die Kombination leicht übersehbar macht.
Wie wird das Binden einer Rolle an einen Cognito Identity Pool erkannt?
Achten Sie in CloudTrail auf SetIdentityPoolRoles, GetCredentialsForIdentity. Der Aufruf erscheint in CloudTrail, geht aber in der normalen Administration unter, daher braucht es eine Regel, damit er auffällt.
Wie unterbricht man diesen Pfad?
Eine Maßnahme, die ihn beseitigen würde, ist: Entfernen Sie iam:PassRole / cognito-identity:SetIdentityPoolRoles; beschränken Sie Identity-Pool-Rollen und deaktivieren Sie unauthentifizierten Zugriff. Ob sie angewendet werden sollte, hängt davon ab, wie die Berechtigung in Ihrem Konto verwendet wird, es ist also eine geschäftliche Entscheidung und keine automatische Behebung.
Welche MITRE ATT&CK Technik ist das?
T1078.004, Valid Accounts: Cloud Accounts, unter der Taktik Privilege Escalation.
Verwandte Pfade
Referenzen
Finden Sie dies in Ihrem eigenen Konto
Wir führen einen schreibgeschützten Scan eines AWS-Kontos durch und zeigen Ihnen, welche dieser Pfade existieren, nach Blast-Radius priorisiert, mit der Änderung, die jeden einzelnen unterbricht. Erste validierte Pfade innerhalb der Stunde.