Anfang Mai hatten wir darüber berichtet, dass Microsoft den Windows Kernel mit der Programmiersprache Rust sicherer machen will. Den ersten Ansatz davon haben wir schon in der Canary Insider. Mark Russinovich hat es gestern auf Twitter, na nennen wir es einmal „angeteasert“.
Ich hab einmal nachgeschaut und es stimmt. Die 25357 hat die Änderung schon enthalten. In der Canary Insider deshalb, weil wir dort seit zwei Builds mit dem zn_release unterwegs sind. zn steht für Zink und wird der Nachfolger von ni (Nickel) in der Dev, Beta und in der aktuellen Windows 11 22H2.
Durch die Änderung von C in Rust wird die Sicherheit des Kernels noch einmal gesteigert. Ein Hauptgrund, warum Microsoft die Änderungen vornimmt. Immerhin 90.000 Zeilen, die geändert wurden, bzw. geändert werden.
Windows 11 Tutorials und Hilfe
- In unserem Windows 11 Wiki findet ihr sehr viele hilfreiche Tipps und Tricks.
- Falls ihr Fragen habt, dann stellt diese ganz einfach bei uns im Forum.
- Installationsmedien: Aktuelle Windows 11 ISOs findet ihr hier: 21H2, 22H2 (22621), 22H2 (22624) Ansonsten immer in der rechten Sidebar.
- Windows 11 neu clean installieren Tipps und Tricks.
- Windows 11 mit lokalem Konto auch Offline installieren.
- Windows 11 Inplace Upgrade Reparatur oder Feature Update.
- Automatisch anmelden Pin entfernen Windows 11.
- Alle Beiträge zu Windows 11 im Blog findet ihr über diese Seite. Wobei auch alle anderen Artikel interessant sein können.
Oha… Ob das wirklich ein gutes Marketing ist wenn man erzählt dass der Kernel rostet 😁😁😁😁
🎵 Der Rost, der Rost, der Rost ist im Kernel,
(Wir brauchen keine Firewall, lass den Virus brennen)
(Brenn, Virus, brenn) 🎵
Haha! Witz, komm raus, du bist umzingelt! 😂
gepostet mit der Deskmodder.de-App für Android
ohje sehe ja die eingabe, das langt mir für heute.
Es gab kürzlich einen interessanten Speech u.a. zu diesem Thema von David Weston.
https://www.youtube.com/watch?v=8T6ClX-y2AE&t=2608s
Ich hoffe wirklich dass Microsoft die Anstrengungen hier intensiviert.
Ca. 75% aller Sicherheitsprobleme die Microsoft in der Vergangenheit hatte wären nie aufgetreten hätte man damals Rust schon zur Verfügung gehabt.
Russinovich hat recht wenn er sagt dass man generell keine C / C++ Projekte mehr starten sollte.
Seine Keynote an der Bluehat IL war vom Feinsten:
https://www.youtube.com/watch?v=8hXBqpVvV0g&t=133s
Um in C sicher zu programmieren braucht es halt tief fundiertes Wissen wie z.B. Speichermanagement funktioniert. Seltsamerweise hat der Linux-Kernel nicht solche extremen Probleme. C++ allerdings ist einfach nur hässlich, das sagt selbst Torvald. Ich unbedeutender Wicht der seit Jahrzehnten AVRs programmiert stimme dem zu. Rust ist gut, aber im Grunde nur eine Hilfestellung um grobe Fehler zu verhindern weil viele Leute sich keine Gedanken machen wie sie gerade Speicher allozieren.
> Um in C sicher zu programmieren braucht es halt tief fundiertes Wissen wie z.B. Speichermanagement funktioniert.
Die Geschichte der IT in den letzten 50+ Jahren zeigt eindrücklich, dass es unmöglich ist, Coding-Standards in grösseren Organisationen durchzusetzen. Der Compiler muss diese Aufgabe übernehmen, und bei Rust ist dies gegeben.
> Seltsamerweise hat der Linux-Kernel nicht solche extremen Probleme.
Dem kann ich nur bedingt zustimmen. Auch bei Linux wird man nicht darum herum kommen manches nach und nach in Rust neu zu schreiben. Wird aber im Zuge all der „Mini-Linuxe“ die als Basis von Containern/Pods im Kubernetes-Umfeld eingesetzt werden ohnehin passieren.
Rust löst nicht alle Probleme, aber statistisch gesehen ca. 75%, und das ist eine enorme Verbesserung.
Angenehme und sehr reflektierte Art die Dinge zu sehen, Herr Signer. Gut, meine Mikrocontroller haben auch nicht so viel Code wie ein Kernel, und nur ich arbeite daran.
Wir beide wohl können die übermenschliche Leistung von Linus Torvald nur würdigen. Diese Unmenge an Code zu bändigen und teils mit seinem ruppigen Ton die Coding-Standards einzuhalten, da er ja nicht alleine programmiert, und dennoch ist es besser gemanaged als jede Firma.
Rust ist gut, aber wir alten C-Programmierer wollen noch nicht wie die Dinosaurier von der Erde verschwinden
> Rust ist gut, aber wir alten C-Programmierer wollen noch nicht wie die Dinosaurier von der Erde verschwinden
Im Gegenteil haben C-Programmierer die besten Voraussetzungen bei der Migration zu / dem Einbau von Rust Code in grösseren Projekten mitzuhelfen. Es war vom ersten Moment an der Fokus von Rust die Kommunikation zwischen Rust- und C-Komponenten möglichst einfach zu gestalten. Und das Ganze wird sich ohnehin über viele viele Jahre, Jahrzehnte erstrecken – die Menge an vorhandenem C-Code sowohl im Unix- als auch im Windows-Universum ist unfassbar gross.
Was bei Rust auch sehr gut gelöst ist – der Mechanismus für Nebenläufigkeit. So etwas wie eine „Race Condition“ kann es so nicht mehr geben. Das wird manchem Projekt helfen die heutige Hardware mit zig Cores auch wirklich effizient zu nutzen. Die Performance auf einem einzelnen Core kann man nicht mehr beliebig steigern, aber beim Parallelisieren liegt noch viel Potenzial brach.
Erst vor kurzem wurde eine Lücke im Linux Kernel gefunden, die auf falschem Speichermanagement beruht:
https://www.heise.de/news/Luecken-im-Linux-Kernel-erlauben-lokale-Rechteausweitung-8992648.html
Und das ist jetzt auch nicht ungewöhnlich, wenn wir uns nur mal die Lücken anschauen für die CVEs erstellt wurden:
https://www.cvedetails.com/product/47/Linux-Linux-Kernel.html
Die Kategorien „Code Execution“, „Overflow“ und „Memory Corruption“ sind alle Speicherfehler und wie man sieht ist das der Großteil der sicherheitskritischen Fehler.
Ähnliche Statistiken gibt es von Microsoft, Google und Apple (meist wird eine Spanne von 50% bis 75% der sicherheitskritischen Fehler genannt). Microsoft hat explizit gesagt, dass die Ratio auch mit moderneren C++ Versionen, statischer Analyse, Fuzzing und Sanatizern nicht besser geworden ist. Wie hier schon geschrieben wurde, ist es bei großen Projekten, bei denen mehrere Leute Kollaborieren, selbst bei sehr erfahrenen Programmieren recht wahrscheinlich, dass es zu solchen Fehlern kommt. Das ist zwar nur eine Kategorie von Fehlern, aber eben eine sehr sicherheitskritische.
Wer C wegen seiner Einfachheit mag, wird Rust allerdings nicht so sehr mögen, denn die Sprache ist viel Komplexer als C. Aber auch nicht so überladen und komplex wie C++, und mit besseren Defaults, und mehr Sicherheit, und besseren Fehlermeldungen vom Compiler
Mal ne Frage…. Wird Rust implentiert wenn es fertig ist oder muss ich neu installieren damit endlich NTFS weg ist? 😂 Sry für die doofe frage.
Du verwechselst da jetzt Rust mit ReFS.
Oh Gott…..stimmt…..peinlich. Aber die Frage würde mich in dem Fall auf ReFs schon interessieren.
Das kann Dir im Moment noch keiner beantworten, da das Ganze noch sehr experimentell ist und derzeit nur über Neuinstallation geht. Muss man abwarten, wie es damit weiter geht.
Rust ist eine Programmiersprache, kein Dateisystem.
Bei der Nutzung wirst du von der Änderung nichts merken.
„Bei der Nutzung wirst du von der Änderung nichts merken.“
Also meiner Meinung nach merke ich an meinen Notebook mit i5-7200U schon etwas von dieser Änderung, denn seit 1-3 Canary Builds reagiert Windows schneller auf Eingaben, wirkt „Reaktionsfreudiger“. Zeitlich könnte es mit der Rust Umstellung passen.
Bist du dir sicher, dass das kein Placebo ist? 😉 Kann mir wirklich nicht vorstellen, dass durch die Änderung einiger Codezeilen im Kernel das Arbeitstempo merklich steigt… Ich verstehe ja so gut wie nichts von solchen Dingen, aber, rein vom Gefühl her kommt mir das sehr unwahrscheinlich vor. Hatte eh gedacht, dass das rein architektonische Auswirkungen hat, und keinen Performanceschub bringt.