Verwundbare Base-Images

Verwundbare Base-Images

Ihre Abhängigkeiten werden überprüft. Das Betriebssystem darunter tut dies nicht.

Was ist Verwundbare Base-Images?

Anwendungsabhängigkeiten werden bei jeder Änderung überprüft. Bei der darunter liegenden Betriebssystemschicht ist dies häufig nicht der Fall. Ein Floating-Tag wie „node:18“ bedeutet, dass sich die Ebene unter Ihrem Code ändert, wenn die Registrierung etwas Neues bereitstellt, und dass im Laufe der Zeit Fehler gefunden werden, sodass eine Bereinigung des Images zum Zeitpunkt der Auslieferung jetzt von entscheidender Bedeutung sein kann. Sie scannen ein veraltetes Service-Image, finden CVE-2023-4863 in libwebp und wandeln es in eine Remote-Codeausführung um. Anschließend heften Sie die Basis an einen genauen Digest, erstellen ihn neu und scannen ihn erneut. Das Fixieren hat seinen Preis: Es erfordert einen bewussten Wiederaufbaurhythmus.

Was Sie lernen in Verwundbare Base-Images

Verwundbare Base-Images — Trainingsschritte

  1. Das Scheduler-Image in der Registry

    Bob hat über ein geleaktes Robot-Token Lesezugriff auf Bremhollows Container-Registry. Er schaut sich nicht den Code an — er schaut sich an, wie frisch die Images sind, denn ein Dienst, der eine Weile nicht neu gebaut wurde, ist ein Dienst, dessen Base-Image still und leise gealtert ist. Der Scheduler verarbeitet hochgeladene Bilder, was das, worauf er aufbaut, für ihn sehr interessant macht. Öffne seine Seite und sieh, was die Registry sagt.

  2. Ein Image, das stehen geblieben ist

    Die Registry muss sich nicht irren, um Bob zu helfen. Eine einzige Zeile verrät ihm, dass das deployte Image alt ist und auf einer schwimmenden Base aufbaut.

  3. Die Base nach einem Einstiegsweg durchsuchen

    Bob zieht das Image und lässt einen Schwachstellenscanner darüberlaufen, dasselbe Tool, das auch ein Verteidiger nutzen würde. Er interessiert sich nicht für den Anwendungscode. Er will eine bekannte, veröffentlichte Schwachstelle in den Betriebssystem-Paketen, die das Base-Image mitgebracht hat, denn dafür gibt es funktionierende Exploits.

  4. Die CVE in eine Shell verwandeln

    Ein Scanner-Fund ist kein Exploit, bis ihn jemand ausführt. Für CVE-2023-4863 gibt es einen öffentlichen Proof-of-Concept: ein präpariertes WebP, das libwebp genau in dem Moment zum Überlauf bringt, in dem es dekodiert wird. Der Scheduler dekodiert jedes hochgeladene Bild, also bindet Bob die PoC-Datei in einen Wegwerf-Lauf des verwundbaren Images ein und dekodiert sie — und beweist damit, dass der Fund ein funktionierender Remote-Code-Execution-Weg ist, bevor er überhaupt die Produktion berührt.

  5. Wo die Schwachstelle steckt

    Ein kurzer Moment beim Mechanismus, bevor die Reaktion beginnt.

  6. Der Scanner schlägt bei der Flotte Alarm

    Bremhollow hat Image-Scanning in seine Pipeline aufgenommen, und der erste vollständige Durchlauf über das, was bereits in Produktion läuft, hat etwas zutage gefördert, das nicht warten kann.

  7. Sieh es dir selbst an

    Bevor sie etwas ändert, führt Alice denselben Scan am deployten Image aus. Sie will den Fund sehen, wo er sitzt, und was die Base tatsächlich ist.

  8. Das Dockerfile öffnen

    Das Base-Image wird in einer einzigen Zeile des Dockerfiles gewählt. Alles, was der Scanner gefunden hat, kam über diese Zeile herein.

  9. Die schwimmende Base finden

    Hier ist nichts falsch geschrieben oder fehlerhaft. Das Problem ist eine einzige Zeile, die weniger aussagt, als sie sollte.

  10. Die Base per Digest fixieren

    Ein Tag ist ein Label, das jemand verschieben kann; ein Digest ist der Inhalts-Fingerabdruck des Images und kann niemals auf etwas anderes zeigen. Alice fixiert die Base per Digest auf ein exaktes, aktuelles, schlankes node:18, sodass ab jetzt jeder Build dieselben geprüften Bytes zieht, und das Verschieben dieses Pins wird zu einer bewussten, überprüfbaren Änderung.

Abdeckung der Sicherheits-Frameworks

CWE

  • CWE-1104 Use of Unmaintained Third Party Components
  • CWE-1395 Dependency on Vulnerable Third-Party Component

MITRE ATT&CK

  • T1190 Exploit Public-Facing Application

CIS Controls

  • CIS 7 Continuous Vulnerability Management
  • CIS 2 Inventory and Control of Software Assets

NIST CSF

  • PR.AT-02 Individuals in specialized roles are provided with awareness and training so that they possess the knowledge and skills to perform relevant tasks with cybersecurity risks in mind
  • ID.RA Risk Assessment
  • ID.AM Asset Management