Memory-Safe Sprachen
Was ist Memory-Safe Sprachen?
Memory-Safe SprachenMemory-safe Sprachen wie Rust, Go, Swift, Java und C# verhindern die raeumlichen und zeitlichen Speicherfehler, die die meisten ausnutzbaren Luecken in C und C++ ausmachen.
Memory-safe Sprachen erzwingen zur Compile- oder Laufzeit Bound-Checks, Ownership oder Garbage-Collection-Lebenszeiten und Typkonsistenz. Rust nutzt Ownership und einen Borrow-Checker fuer Sicherheit ohne GC; Go und Swift verwenden managed Allocation mit bound-checked Slices; Java und C# stuetzen sich auf eine managed Runtime. Der Bericht Back to the Building Blocks des US-amerikanischen ONCD (2024) empfiehlt memory-safe Sprachen fuer neuen Code und kritische Komponenten, um die 60-70 Prozent schwerer Luecken durch Speicherfehler zu eliminieren. Strategien sind Hotspot-Rewrites, Strangler-Pattern und FFI-Grenzen fuer Legacy-Interop.
● Beispiele
- 01
Android setzt Teile des Bluetooth-Stacks in Rust um, um UAFs zu vermeiden.
- 02
AWS schreibt Teile von Firecracker und s2n-tls in Rust um.
● Häufige Fragen
Was ist Memory-Safe Sprachen?
Memory-safe Sprachen wie Rust, Go, Swift, Java und C# verhindern die raeumlichen und zeitlichen Speicherfehler, die die meisten ausnutzbaren Luecken in C und C++ ausmachen. Es gehört zur Kategorie Anwendungssicherheit der Cybersicherheit.
Was bedeutet Memory-Safe Sprachen?
Memory-safe Sprachen wie Rust, Go, Swift, Java und C# verhindern die raeumlichen und zeitlichen Speicherfehler, die die meisten ausnutzbaren Luecken in C und C++ ausmachen.
Wie funktioniert Memory-Safe Sprachen?
Memory-safe Sprachen erzwingen zur Compile- oder Laufzeit Bound-Checks, Ownership oder Garbage-Collection-Lebenszeiten und Typkonsistenz. Rust nutzt Ownership und einen Borrow-Checker fuer Sicherheit ohne GC; Go und Swift verwenden managed Allocation mit bound-checked Slices; Java und C# stuetzen sich auf eine managed Runtime. Der Bericht Back to the Building Blocks des US-amerikanischen ONCD (2024) empfiehlt memory-safe Sprachen fuer neuen Code und kritische Komponenten, um die 60-70 Prozent schwerer Luecken durch Speicherfehler zu eliminieren. Strategien sind Hotspot-Rewrites, Strangler-Pattern und FFI-Grenzen fuer Legacy-Interop.
Wie schützt man sich gegen Memory-Safe Sprachen?
Schutzmaßnahmen gegen Memory-Safe Sprachen kombinieren typischerweise technische Kontrollen und operative Praktiken, wie in der Definition oben beschrieben.
Welche anderen Bezeichnungen gibt es für Memory-Safe Sprachen?
Übliche alternative Bezeichnungen: MSL, Memory-safe Programmiersprachen.
● Verwandte Begriffe
- appsec№ 670
Speichersicherheit
Speichersicherheit (Memory Safety) ist die Eigenschaft, dass ein Programm niemals Speicher liest, schreibt oder ausfuehrt, den es nicht legitim allokiert hat, und schaltet damit ganze Schwachstellenklassen aus.
- appsec№ 953
Sicherheitseigenschaften von Rust
Rust erzwingt Speicher- und Thread-Sicherheit zur Compile-Zeit ueber Ownership, Borrowing und Lifetimes und beseitigt UAF und Data Races ohne Garbage Collector.
- appsec№ 217
Control-Flow Integrity
Control-Flow Integrity (CFI) beschraenkt indirekte Aufrufe und Returns auf einen vorab berechneten Satz legitimer Ziele und blockiert ROP- bzw. JOP-Angriffe.
- appsec№ 064
ASLR
Address Space Layout Randomization platziert Code, Stacks, Heaps und Bibliotheken bei jedem Programmstart zufaellig im Speicher, sodass Angreifer Zieladressen nicht vorhersagen koennen.
- appsec№ 925
Return-Oriented Programming
Return-Oriented Programming (ROP) ist eine Exploit-Technik des Code-Reuse, die kurze, mit RET endende Instruktionsfolgen verkettet, um beliebige Berechnungen ohne neuen Code auszufuehren.
- appsec№ 545
Intel CET
Intel CET (Control-flow Enforcement Technology) ist eine CPU-Funktion, die einen Hardware-Shadow-Stack mit Indirect Branch Tracking (IBT) kombiniert, um ROP-, JOP- und COP-Exploits zu stoppen.
● Siehe auch
- № 581KASLR