Visual Studio 2015 Update 1 unterstĂĽtzt Intel MPX
Intels Memory Protection Extensions überprüfen Zeiger und sollen so Pufferüberläufe verhindern, die ein typisches Angriffsziel in anfälliger Software sind. Die C/C++-Compiler-Option ist zunächst experimentell.
Microsft bringt mit Visual Studio 2015 Update 1 einige experimentelle Funktionen, die Entwickler optional aktivieren können. So kündigte das Team bereits im November Editor-Erweiterungen für C/C++ an. Diesmal geht es unter die Haube: Update 1 für VS 2015 bringt experimentellen Compiler- und Debugger-Support für Intel MPX. Die Memory Protection Extensions sind eine Erweiterung des x86-Befehlssatzes, die Pufferüberläufe verhindern wollen.
Angriffsfläche vermeiden
Buffer Overflows führen nicht nur potenziell zu Abstürzen, sondern sind vor allem eine Sicherheitslücke: Angreifer setzen sie gezielt ein, um Speicherbereiche anzusprechen oder das Verhalten eines Programms zu verändern. Intel MPX überprüft alle lesenden und schreibenden Zeigeroperationen und begrenzt sie auf die für das Programm reservierten Speicherbereiche.
(Bild:Â Microsoft)
Auswirkungen auf die Performance
Update 1 für Visual Studio 2015 führt die Compiler-Option /d2MPX ein, mit der Entwickler ihren Code für MPX optimieren. Derzeit überprüft das System dadurch schreibende Speicherzugriffe auf Pufferüberläufe für lokale und globale Zeiger und Arrays. Das Plus an Sicherheit bezahlt der Nutzer mit Einbußen bei der Performance und einem erhöhten Speicherbedarf. Im FAQ-Teil der Ankündigung heißt es dazu: "Der Overhead ist während der Testphase erträglich. Wenn Entwickler die Erweiterung jedoch für Produktionscode aktivieren, müssen sie abwägen, ob der Zugewinn an Speichersicherheit stärker wiegt als die Perfomanceansprüche der Kunden". Das Mischen von Code mit und ohne MPX-Erweiterung ist durchaus möglich.
Voraussetzung dafür, dass Programme die Erweiterung nutzen, ist der passenden Intel-Prozessor ab der sechsten Generation (Skylake), der zugehörige MPX-Runtime-Treiber und Windwos 10 mit dem Update von November 2015. Auf anderen Systemen und Prozessoren arbeitet der Code jedoch fehlerfrei und behandelnden die MPX-relevanten Funktionen als Nulloperationen (NOP).
Die genauen Schritte und Voraussetzung beschreibt der Blog-Beitrag zu der Erweiterung. (rme)