Weaponizing Distroless
Was ist Distroless
Ein Distroless-Container ist ein Container-Typ, der nur die erforderlichen Abhängigkeiten zum Ausführen einer bestimmten Anwendung enthält, ohne zusätzliche Software oder Tools, die nicht erforderlich sind. Diese Container sind darauf ausgelegt, so leichtgewichtig und sicher wie möglich zu sein und die Angriffsfläche zu minimieren, indem sie unnötige Komponenten entfernen.
Distroless-Container werden häufig in Produktionsumgebungen eingesetzt, in denen Sicherheit und Zuverlässigkeit oberste Priorität haben.
Einige Beispiele für Distroless-Container sind:
Bereitgestellt von Google: https://console.cloud.google.com/gcr/images/distroless/GLOBAL
Bereitgestellt von Chainguard: https://github.com/chainguard-images/images/tree/main/images
Bewaffnung von Distroless
Das Ziel der Bewaffnung eines Distroless-Containers besteht darin, beliebige Binärdateien und Payloads auszuführen, auch unter Berücksichtigung der Einschränkungen von Distroless (Fehlen gängiger Binärdateien im System) und der in Containern häufig vorkommenden Schutzmechanismen wie Read-Only oder No-Execute in /dev/shm
.
Über den Speicher
Kommt irgendwann 2023...
Über vorhandene Binärdateien
openssl
****In diesem Beitrag wird erklärt, dass die Binärdatei openssl
häufig in diesen Containern zu finden ist, möglicherweise weil sie von der Software benötigt wird, die innerhalb des Containers ausgeführt wird.
Durch Missbrauch der openssl
-Binärdatei ist es möglich, beliebige Dinge auszuführen.
Last updated