Bewertung der Effektivität der Anwendung von MiraclePtr zur Verhinderung von Sicherheitsanfälligkeiten in Chrome.

Google hat die Effizienz der Verwendung des Typs MiraclePtr (raw_ptr<T>) im C++-Code im Vergleich zu herkömmlichen Zeigern zur Abwehr von Sicherheitsanfälligkeiten, die durch den Zugriff auf bereits freigegebene Speicherbereiche (use-after-free) entstehen, analysiert. MiraclePtr bietet eine Wrapper-Implementierung für Zeiger, die zusätzliche Prüfungen durchführt und bei Erkennung eines Zugriffs auf freigegebene Speicherbereiche einen Notbetrieb auslöst. Die Unterstützung für MiraclePtr wurde im Mai 2022 (in Chrome 102) standardmäßig für Windows- und Android-Plattformen aktiviert, und im Juni 2023 für ChromeOS, Linux und macOS. Die auf MiraclePtr basierende Sicherheitsmaßnahme in Chrome gilt für alle Prozesse, mit Ausnahme des Rendering-Prozesses.

Nach der Analyse der Dynamik von Berichten über Sicherheitsanfälligkeiten und Abstürze sowie der Untersuchung sicherheitsrelevanter Vorfälle und der Ergebnisse von Fuzzing-Tests wurde festgestellt, dass die Einführung von MiraclePtr einen Schutz gegen 57 % der vulnerabilities der Kategorie use-after-free bot, da Felder von Klassen und Callback-Parameter auf MiraclePtr umgestellt wurden. Darüber hinaus wird erwähnt, dass 5 der 6 kritischen Sicherheitsanfälligkeiten, die im letzten Jahr in der stabilen Version von Chrome identifiziert wurden, aufgrund der Überprüfung von Absturzberichten im Zusammenhang mit der Verwendung von MiraclePtr erkannt wurden.

Der Preis für die Anwendung von MiraclePtr ist ein erhöhtes Speicherverbrauch, da für Zeiger zusätzlich 4 Byte für den Zähler erforderlich sind. Der Speicherverbrauch des Hauptprozesses des Browsers steigt bei der Verwendung von MiraclePtr um 5,5-8 % in Desktop-Versionen und um 2 % in der Android-Version. Der durchschnittliche Anstieg für alle Prozesse wird auf 1-3 % geschätzt. Darüber hinaus wurden bei der Verwendung von MiraclePtr einige Regressionen festgestellt, die zu Leistungseinbußen führen, jedoch nicht mit den Schlüsselmetriken wie Lade- und Renderzeiten der Seite in Verbindung stehen. Zu den festgestellten Regressionen gehören eine Verzögerung von 1,5 % beim ersten Eingeben in Chrome OS, eine Verlangsamung von 1,5 % beim Öffnen von Tabs auf Android und eine erhöhte Wahrscheinlichkeit von Eingabeverzögerungen aufgrund von Konkurrenz im Hauptthread (eine 10 %ige Erhöhung der Wahrscheinlichkeit im 99. Perzentil).

Quelle: opennet.ru

60GB SSD 8Gb DDR4