CodeDeploy-Zielinstanzrolle kapern
Kann eine bösartige Revision bereitstellen und ein Skript als die Rolle der Ziel-Instanzen ausführen.
Ermöglicht Eskalation nur in Kombination. All diese sind zusammen erforderlich:
codedeploy:CreateDeploymentcodedeploy:RegisterApplicationRevisioncodedeploy:CreateDeployment kann eine bösartige Revision bereitstellen und ein Skript als die Rolle der Zielinstanzen ausführen, aber nur, wenn sie zusammen mit codedeploy:RegisterApplicationRevision gehalten wird. Gemeinsam gehalten erreichen sie Administratorzugriff.
Warum es gefährlich ist
Ein Principal kann codedeploy:CreateDeployment auf einer bestehenden Deployment-Gruppe aufrufen, deren Ziel-EC2-Instanzen die Instanzprofil-Rolle bereits tragen, und eine Revision bereitstellen, deren appspec.yml-Lifecycle-Hook ein Angreifer-Shell-Skript als root auf diesen Instanzen ausführt. Das Skript liest die aktiven Anmeldeinformationen der Gruppe aus IMDS, ohne iam:PassRole, weil die Gruppe bereits an die Maschinen gebunden ist. Ist die Gruppe privilegiert, ist dies eine vollständige Privilege Escalation gegen Instanzen, denen 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 CreateDeployment, RegisterApplicationRevision. Der Aufruf ist in CloudTrail gut sichtbar und hebt sich von normaler Aktivität ab.
Erkennung
CreateDeploymentRegisterApplicationRevisionVoraussetzungen
Eine bestehende Deployment Group, die auf EC2-Instanzen mit einem Instance Profile abzielt; der auf ihnen laufende CodeDeploy-Agent; ein S3-Bucket, um die Revision bereitzustellen; Berechtigung, ein Deployment zu erstellen. Appspec-Lifecycle-Hooks müssen erlaubt sein (die Voreinstellung).
MITRE ATT&CK
T1578 · Modify Cloud Compute InfrastructureTaktik
Privilege Escalation
Eine Maßnahme, die ihn beseitigen würde: codedeploy:CreateDeployment bei Deployment-Gruppen beschränken, deren Zielinstanzen ein privilegiertes Instanzprofil tragen; appspec-Lifecycle-Hooks prüfen.
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 codedeploy:CreateDeployment?
Kann eine bösartige Revision bereitstellen und ein Skript als die Rolle der Ziel-Instanzen ausführen.
Was ist außerdem nötig, damit codedeploy:CreateDeployment gefährlich ist?
Es wird erst zur Eskalation, wenn es mit codedeploy:RegisterApplicationRevision kombiniert wird. Für sich allein reicht es nicht aus, was die Kombination leicht übersehbar macht.
Wie wird das Kapern einer CodeDeploy-Zielinstanzrolle erkannt?
Achten Sie in CloudTrail auf CreateDeployment, RegisterApplicationRevision. 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 codedeploy:CreateDeployment bei Deployment-Gruppen, deren Ziel-Instanzen ein privilegiertes Instanzprofil tragen; überprüfen Sie appspec-Lifecycle-Hooks. 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.