Mozilla hat damit begonnen, den Großteil des C++-Codes seines Browsers Firefox durch in der sichereren Alternativsprache Rust geschriebene Komponenten zu ersetzen. Der für 2. August angekündigte Firefox 48 wird einen in Rust verfassten MP4 Track Metadata Parser enthalten, der damit erstmals unter Windows und 32-Bit-Editionen von Linux verfügbar wird. Für OS X und 64-Bit-Linux liegt der Parser schon seit Firefox 45 vor.
„Medienformate wurden bekanntermaßen schon dazu missbraucht, fiese Sicherheitslücken in Dekodern auszunutzen, die aus Speicherverwaltungsfehlern im Implementierungscode von Webbrowsern resultieren“, schreibt Dave Hermann, leitender Forscher von Mozilla Research und Director of Strategy, in einem Blogbeitrag. „Das macht eine speichersichere Programmiersprache wie Rust zu einer zwingenden Ergänzung von Mozillas Werkzeugsammlung für den Schutz vor potenziell gefährlichen Medieninhalten.“
Weiter führt Hermann aus: „Unsere ersten Messungen zeigen, dass die Rust-Komponente sehr gut funktioniert und im Vergleich zur originalen C++-Komponente, die sie ersetzt, identische Ergebnisse liefert, aber jetzt in einer speichersicheren Programmiersprache implementiert.“
Das bisher größte Projekt, bei dem Rust zum Einsatz kommt, ist die Web-Rendering-Engine Servo, die seit Anfang Juli in einer ersten Vorschau vorliegt. Servo ist der Nachfolger von Firefox‘ Browser-Engine Gecko, soll diese aber nicht sofort ersetzen, sondern zunächst ergänzen. Eine bedeutende Verbesserung ist beispielsweise die automatische Speicherverwaltung mit eigenem Typsystem. Sie soll Speicherzugriffsfehler und Pufferüberläufe verhindern, die für Angriffe missbraucht werden können. Außerdem soll Servo die parallele Rechenkraft aktueller Prozessoren besser nutzen. Im Rahmen seines Projekts Oxidation plant Mozilla zudem, Rust auch für Firefox‘ URL Parser und WebM Demuxer zu verwenden sowie Teile von Servos CSS-Code in Gecke zu integrieren.
Mehr Sicherheit im smarten Zuhause
Wie Sie Ihr persönliches Internet der Dinge vor versteckten Gefahren schützen
Neben dem in Rust geschriebenen Parser wird Firefox 48 auch die Multi-Prozess-Architektur Electrolysis (E10S) mitbringen. Damit wird künftig die Browser-Benutzeroberfläche in einem von den Webinhalten, Plug-ins und Medieninhalten getrennten Prozess ausgeführt.
Dies soll sich positiv auf die Leistung und Sicherheit von Firefox auswirken, sorgt aber zugleich dafür, dass zahlreiche Erweiterungen nicht mehr funktionieren werden. Um die daraus entstehenden Probleme relativ gering zu halten, plant Mozilla eine schrittweise Einführung. „Sollten Probleme auftauchen, können wir die Einführung verlangsamen oder pausieren oder E10S sogar bei denjenigen deaktivieren, die es bereits erhalten haben“, erklärte Entwickler Asa Dotzler vergangenen Monat.
[mit Material von Chris Duckett, ZDNet.com]
Tipp: Wie gut kennen Sie sich mit Browsern aus? Testen Sie Ihr Wissen – mit dem Quiz auf silicon.de.
Neueste Kommentare
Noch keine Kommentare zu Mozilla ergänzt Firefox um erste Rust-Komponente
Kommentar hinzufügenVielen Dank für Ihren Kommentar.
Ihr Kommentar wurde gespeichert und wartet auf Moderation.