Rolle an Elastic Beanstalk übergeben
Kann eine Elastic-Beanstalk-Umgebung mit einer Rolle bereitstellen und Code als diese ausführen.
Ermöglicht Eskalation nur in Kombination. All diese sind zusammen erforderlich:
iam:PassRoleelasticbeanstalk:CreateApplicationVersionelasticbeanstalk:CreateEnvironmentiam:PassRole kann eine Elastic-Beanstalk-Umgebung mit einer Rolle bereitstellen und Code als diese ausführen, aber nur, wenn sie zusammen mit elasticbeanstalk:CreateApplicationVersion, elasticbeanstalk:CreateEnvironment gehalten wird. Gemeinsam gehalten erreichen sie Administratorzugriff.
Warum es gefährlich ist
Ein Principal besitzt iam:PassRole auf der Zielrolle sowie elasticbeanstalk:CreateApplicationVersion und elasticbeanstalk:CreateEnvironment, sodass er eine Elastic-Beanstalk-Anwendung in einer Umgebung bereitstellen kann, die eine EC2-Instanz mit der Zielrolle als Instanzprofil bereitstellt, der Anwendungscode des Angreifers (oder eine Shell auf der Maschine) läuft als Zielrolle und liest die Anmeldeinformationen der Zielrolle über IMDS. Weil die Zielrolle ec2.amazonaws.com vertraut, wird der Pass akzeptiert; ist die Zielrolle privilegiert, ist dies eine vollständige Privilege Escalation auf Kontoebene, die PaaS-Variante des Startens einer Instanz.
In MITRE ATT&CK entspricht dies T1578.002, Modify Cloud Compute Infrastructure: Create Cloud Instance, unter der Taktik Privilege Escalation. AWS protokolliert dies in CloudTrail als CreateApplicationVersion, CreateEnvironment. Der Aufruf ist in CloudTrail gut sichtbar und hebt sich von normaler Aktivität ab.
Erkennung
CreateApplicationVersionCreateEnvironmentVoraussetzungen
Die Zielrolle muss als EC2-Instanzprofil nutzbar sein (die Elastic-Beanstalk-EC2-Rolle, z. B. aws-elasticbeanstalk-ec2-role) und ec2.amazonaws.com vertrauen. CreateEnvironment akzeptiert außerdem eine EB-Service-Rolle, die elasticbeanstalk.amazonaws.com vertraut; die Run-as-Rolle, die der Angreifer stiehlt, ist das EC2-Instanzprofil.
Taktik
Privilege Escalation
Eine Maßnahme, die ihn beseitigen würde: iam:PassRole für diese Rolle entfernen oder mit iam:PassedToService einschränken.
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 Elastic-Beanstalk-Umgebung mit einer Rolle bereitstellen und Code als diese ausführen.
Was ist außerdem nötig, damit iam:PassRole gefährlich ist?
Es wird erst zur Eskalation, wenn es mit elasticbeanstalk:CreateApplicationVersion, elasticbeanstalk:CreateEnvironment kombiniert wird. Für sich allein reicht es nicht aus, was die Kombination leicht übersehbar macht.
Wie wird das Übergeben einer Rolle an Elastic Beanstalk erkannt?
Achten Sie in CloudTrail auf CreateApplicationVersion, CreateEnvironment. 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: Entfernen Sie iam:PassRole für diese Rolle oder beschränken Sie es mit iam:PassedToService. 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.002, Modify Cloud Compute Infrastructure: Create Cloud Instance, 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.