Lambda-Funktionscode kapern
Kann den Code einer Funktion überschreiben und sie als ihre Ausführungsrolle ausführen.
Ermöglicht Eskalation für sich allein.
lambda:UpdateFunctionCodeFür sich allein kann lambda:UpdateFunctionCode den Code einer Funktion überschreiben und als deren Execution Role ausführen. Bei einem weiten Ressourcenbereich erreicht dies allein Administratorzugriff.
Warum es gefährlich ist
Ein Principal kann lambda:UpdateFunctionCode auf einer bestehenden Funktion aufrufen, die als die Funktion läuft, und das Deployment-Paket der Funktion mit vom Angreifer kontrolliertem Code überschreiben. Beim nächsten Aufruf wird dieser Code mit den Berechtigungen der Funktion ausgeführt und liest die aktiven Anmeldeinformationen der Funktion aus der Lambda-Laufzeitumgebung, ohne iam:PassRole, weil die Funktion bereits an die Funktion gebunden ist. Ist die Funktion privilegiert, ist dies eine vollständige Privilege Escalation gegen eine Funktion, der bereits vertraut wurde.
In MITRE ATT&CK entspricht dies T1578, Modify Cloud Compute Infrastructure, unter der Taktik Privilege Escalation. AWS protokolliert dies in CloudTrail als UpdateFunctionCode20150331v2, UpdateFunctionCode. Der Aufruf ist in CloudTrail gut sichtbar und hebt sich von normaler Aktivität ab.
Erkennung
UpdateFunctionCode20150331v2UpdateFunctionCodeVoraussetzungen
Eine bestehende Lambda-Funktion mit einer Execution Role; Berechtigung, ihren Code zu aktualisieren. Die Ausführung erfolgt beim nächsten Trigger (oder einer Invocation, die der Angreifer auslösen kann), für den Diebstahl der Rollen-Anmeldeinformationen selbst ist keine separate Invoke-Berechtigung erforderlich.
MITRE ATT&CK
T1578 · Modify Cloud Compute InfrastructureTaktik
Privilege Escalation
Eine Maßnahme, die ihn beseitigen würde: lambda:UpdateFunctionCode auf CI/CD-Principals beschränken; die Berechtigungen der Funktions-Ausführungsrolle reduzieren.
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:UpdateFunctionCode?
Kann den Code einer Funktion überschreiben und sie als ihre Ausführungsrolle ausführen.
Kann lambda:UpdateFunctionCode allein Privilegien eskalieren?
Ja. Auf einer ausreichend breiten Ressource gehalten, erreicht sie ohne weitere Berechtigung Administratorzugriff.
Wie wird das Kapern von Lambda-Funktionscode erkannt?
Achten Sie in CloudTrail auf UpdateFunctionCode20150331v2, UpdateFunctionCode. Der Aufruf ist in CloudTrail laut und hebt sich von der normalen Aktivität ab.
Wie unterbricht man diesen Pfad?
Eine Maßnahme, die ihn beseitigen würde, ist: Beschränken Sie lambda:UpdateFunctionCode auf CI/CD-Principals; reduzieren Sie die Berechtigungen der Funktionsausführungsrolle. 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?
T1578, Modify Cloud Compute Infrastructure, 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.