Lambda-Invoke per Ressourcenrichtlinie selbst gewähren
Kann sich selbst zur Invoke-Richtlinie einer Funktion hinzufügen und sie auslösen (läuft als die Ausführungsrolle).
Ermöglicht Eskalation für sich allein.
lambda:AddPermissionFür sich allein kann lambda:AddPermission sich selbst zur Invoke-Richtlinie einer Funktion hinzufügen und sie auslösen (läuft als die Execution Role). Bei einem weiten Ressourcenbereich erreicht dies allein Zugriff für einen externen oder öffentlichen Principal.
Warum es gefährlich ist
Ein Principal kann lambda:AddPermission auf einer privilegierten Funktion aufrufen, um sich selbst (oder ein externes Konto) zur Invoke-Richtlinie der Funktion hinzuzufügen, und sie dann auslösen. Die Funktion läuft als ihre Ausführungsrolle, ihr Aufruf ist also Code-Ausführung als diese Rolle, der Gewinn ist nicht die Funktion, sondern die Rolle, die sie preisgibt, und alles, was diese Rolle erreichen kann. Der Angreifer schreibt das Invoke-Schloss um, statt einen bestehenden Invoke-Grant zu besitzen.
In MITRE ATT&CK entspricht dies T1098, Account Manipulation, unter der Taktik Privilege Escalation. AWS protokolliert dies in CloudTrail als AddPermission. Der Aufruf erscheint in CloudTrail, geht aber in der normalen Administration unter, daher braucht es eine Regel, damit er auffällt.
Erkennung
AddPermissionVoraussetzungen
lambda:AddPermission für die Funktion. Der Missbrauch setzt zusätzlich voraus, dass kein SCP-/Boundary-/PrincipalOrgID-Schutzmechanismus die Übergewährung blockiert, UND dass das Aufrufen der Funktion tatsächlich die Ausführungsrolle preisgibt (vom Angreifer beeinflusster Code oder die Funktion verliert Anmeldeinformationen/Ausgaben), ein einfacher Aufruf von vertrauenswürdigem Code tut das nicht.
MITRE ATT&CK
T1098 · Account ManipulationTaktik
Privilege Escalation
Eine Maßnahme, die ihn beseitigen würde: lambda:AddPermission auf Funktionsbesitzer beschränken; Schreibzugriffe auf die Invoke-Richtlinie per SCP verweigern; aws:PrincipalOrgID / SourceArn bei Funktions-Ressourcenrichtlinien erfordern; die Ausführungsrolle nach dem Least-Privilege-Prinzip gestalten.
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 lambda:AddPermission?
Kann sich selbst zur Invoke-Richtlinie einer Funktion hinzufügen und sie auslösen (läuft als die Ausführungsrolle).
Kann lambda:AddPermission allein Privilegien eskalieren?
Ja. Auf einer ausreichend breiten Ressource gehalten, erreicht sie ohne weitere Berechtigung Zugriff für einen externen oder öffentlichen Principal.
Wie wird das Selbst-Gewähren von Lambda-Invoke über eine Ressourcenrichtlinie erkannt?
Achten Sie in CloudTrail auf AddPermission. 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: Beschränken Sie lambda:AddPermission auf Funktionseigentümer; verweigern Sie Schreibzugriffe auf die Invoke-Richtlinie via SCP; verlangen Sie aws:PrincipalOrgID / SourceArn in Funktions-Ressourcenrichtlinien; vergeben Sie der Ausführungsrolle minimale Rechte. 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?
T1098, Account Manipulation, 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.