Seit Jahren Intel hat an Linux-Patches zur Unterstützung ihrer Control-Flow Enforcement Technology (CET) mit Indirect Branch Tracking und Shadow Stack-Unterstützung gearbeitet. Es ist seit Jahren in Arbeit und hat viele Überarbeitungen durchlaufen, während sie jetzt einen neuen Weg einschlagen und sich nur auf die Benutzerbereichsfunktionalität von Shadow Stack konzentrieren.
Die Shadow-Stack-Funktion konzentriert sich auf die Abwehr von Return-Oriented-Programming-Angriffen (ROP). Der Shadow Stack bewahrt eine Kopie jedes CALL auf und überprüft bei einer Rückkehr (RET) die im normalen Stack gespeicherte Rücksendeadresse, um sicherzustellen, dass sie mit dem Inhalt des Shadow Stack übereinstimmt, sonst wird ein Fehler erzeugt.
Intel Shadow Stack-Unterstützung ist für Linux wieder in Arbeit.
Intel hat CET dabei unterstützt, zurück zu Tiger Lake-Systemen zu gehen, mit Indirect Branch Tracking als Teil davon auch zur Abwehr von JOP/COP-Angriffen. Während an IBT-Linux-Patches gearbeitet wurde, konzentriert sich Intel in Zukunft nur auf die Unterstützung des Shadow Stack-Benutzerbereichs, um für den Mainline-Linux-Kernel upstreamed zu werden. Das ist zumindest kurzfristig der Plan, da die IBT-Patches jetzt in den Hintergrund treten.
Rick Edgecombe von Intel stellte am Sonntag in einer neuen Patch-Serie fest:
Dies ist ein kleiner Neustart der Userspace-CET-Serie. Ich werde die Serie von Yu-cheng übernehmen. Aufgrund einiger interner Empfehlungen habe ich die Versionsnummer zurückgesetzt und nenne es eine neue Serie. Hoffentlich sorgt es nicht für Verwirrung.
Der neue Plan sieht vor, an dieser Stelle nur die Userspace Shadow Stack-Unterstützung hochzuladen. IBT kann später folgen, aber im Moment konzentriere ich mich ausschließlich auf den am meisten nachgefragten und am weitesten verbreiteten (mit dem Feature jetzt auf AMD-CPUs) Teil von CET.
So, jetzt sind wir dran unter der Satz von 35 Patches, die für Shadow-Stacks vorgeschlagen werden Benutzerbereich. Dies konzentriert sich nicht nur auf die Verbesserung der Sicherheit mit modernen x86_64-Prozessoren, sondern Google prüft auch die Verwendung von Shadow-Stacks zur Verbesserung der Ablaufverfolgung mit besserer Leistung und Zuverlässigkeit.
Mit der neuen Patch-Serie gibt es einen neuen Systemaufruf für die Shadow-Stack-Zuweisung, Änderungen, um sicherzustellen, dass ältere Binärdateien nicht beschädigt werden, und mehr. Während die neuesten Prozessoren der AMD Ryzen 5000-Serie auch Shadow Stacks unterstützen können, sind die aktuellen Patches speziell auf Intel-CPUs beschränkt. Der Plan ist, AMD-CPU-Unterstützung für User-Space-Shadow-Stacks zuzulassen, sobald jemand sie getestet hat – hoffentlich geschieht dies, bevor die Patches zusammengeführt werden.
Wir werden sehen, ob diese neue Shadow Stacks für User-Space-Serie schneller aufgegriffen wird als die zuvor ins Stocken geratene CET-Patch-Serie.