Rückportierung von räumlicher ... Notiz

Rückportierung von räumlicher Sicherheit auf Hunderte von Millionen von Zeilen C++-Code

Sicherheitslücken durch räumliche Speichersicherheit, die auftreten, wenn Code auf Speicherbereiche außerhalb seiner vorgesehenen Grenzen zugreift, stellen ein großes Sicherheitsrisiko dar und wurden von Angreifern genutzt, um Systeme und sensible Daten zu kompromittieren. Laut Google's Project Zero machen diese Sicherheitslücken 40% der in-the-wild-Sicherheitslücken durch Speichersicherheitsprobleme in den letzten zehn Jahren aus. Um diesem Problem zu begegnen, verfolgt Google einen umfassenden Ansatz für die Speichersicherheit, einschließlich der Verwendung von sprachlich sicheren Sprachen in neuen Code und der Implementierung von sicherheitsorientierten Prinzipien in bestehenden C++-Codebasen. Eine wichtige Strategie besteht darin, Überprüfungen der Grenzen für gemeinsame Datenstrukturen durchzuführen, beginnend mit der Sicherung der C++-Standardbibliothek (libc++). Die gehärtete libc++ führt Sicherheitsprüfungen durch, um Schwachstellen wie Zugriffe außerhalb der Grenzen in der Produktion zu erkennen. Google hat die gehärtete libc++ als Standard auf seinen serverseitigen Produktionsystemen eingeführt, was die räumliche Speichersicherheit über seine Dienste hinweg verbessert hat. Der Leistungseinfluss dieser Änderungen war überraschend gering, mit einem durchschnittlichen Einfluss von 0,30% auf die Dienste. Die Aktivierung der gehärteten libc++ hat bereits Exploits verhindert, Abstürze reduziert und die Korrektheit des Codes verbessert, mit über 1.000 entdeckten Fehlern und einer 30%igen Reduzierung von Segmentierungsfehlern. Google ist fest entschlossen, die Überprüfung der Grenzen auf andere Bibliotheken auszuweiten und seinen Code auf sichere Puffer umzustellen, die alle Zugriffe überprüfen müssen. Das Unternehmen fordert andere Organisationen, die C++ verwenden, auf, den gehärteten Modus ihrer Standardbibliothek universell als Standard zu aktivieren.