Langages memory safe
Qu'est-ce que Langages memory safe ?
Langages memory safeLes langages memory safe comme Rust, Go, Swift, Java et C# empechent les erreurs memoire spatiales et temporelles qui causent la majorite des vulnerabilites exploitables en C et C++.
Ces langages imposent au compilateur ou a l'execution des verifications de bornes, une gestion de la propriete ou des durees de vie via garbage collector, et la coherence des types. Rust s'appuie sur l'ownership et un borrow checker pour atteindre la securite sans GC ; Go et Swift utilisent une allocation geree et des slices a bornes verifiees ; Java et C# s'appuient sur un runtime gere. Le rapport Back to the Building Blocks de l'ONCD des Etats-Unis (2024) recommande l'adoption des langages memory safe pour le nouveau code et les composants critiques, afin d'eliminer 60 a 70 pour cent des vulnerabilites graves dues aux bugs memoire. Les strategies d'adoption incluent la reecriture des hotspots, le pattern strangler et les frontieres FFI.
● Exemples
- 01
Android porte des composants Bluetooth en Rust pour reduire le risque d'UAF.
- 02
AWS reecrit des parties de Firecracker et s2n-tls en Rust pour la securite memoire.
● Questions fréquentes
Qu'est-ce que Langages memory safe ?
Les langages memory safe comme Rust, Go, Swift, Java et C# empechent les erreurs memoire spatiales et temporelles qui causent la majorite des vulnerabilites exploitables en C et C++. Cette notion relève de la catégorie Sécurité applicative en cybersécurité.
Que signifie Langages memory safe ?
Les langages memory safe comme Rust, Go, Swift, Java et C# empechent les erreurs memoire spatiales et temporelles qui causent la majorite des vulnerabilites exploitables en C et C++.
Comment fonctionne Langages memory safe ?
Ces langages imposent au compilateur ou a l'execution des verifications de bornes, une gestion de la propriete ou des durees de vie via garbage collector, et la coherence des types. Rust s'appuie sur l'ownership et un borrow checker pour atteindre la securite sans GC ; Go et Swift utilisent une allocation geree et des slices a bornes verifiees ; Java et C# s'appuient sur un runtime gere. Le rapport Back to the Building Blocks de l'ONCD des Etats-Unis (2024) recommande l'adoption des langages memory safe pour le nouveau code et les composants critiques, afin d'eliminer 60 a 70 pour cent des vulnerabilites graves dues aux bugs memoire. Les strategies d'adoption incluent la reecriture des hotspots, le pattern strangler et les frontieres FFI.
Comment se défendre contre Langages memory safe ?
Les défenses contre Langages memory safe combinent habituellement des contrôles techniques et des pratiques opérationnelles, comme détaillé dans la définition ci-dessus.
Quels sont les autres noms de Langages memory safe ?
Noms alternatifs courants : MSL, Langages memory safe.
● Termes liés
- appsec№ 670
Securite memoire
La securite memoire est la propriete qu'un programme ne lise, n'ecrive ni n'execute jamais une memoire qu'il n'a pas legitimement allouee, ce qui supprime des classes entieres de vulnerabilites.
- appsec№ 953
Proprietes de securite de Rust
Rust applique la securite memoire et de threads a la compilation via ownership, borrowing et lifetimes, eliminant use-after-free et data races sans ramasse-miettes.
- appsec№ 217
Integrite du flot de controle
L'integrite du flot de controle (CFI) restreint les appels indirects et les retours du programme a un ensemble precalcule de cibles legitimes, bloquant ROP et JOP.
- appsec№ 064
ASLR
La randomisation de l'espace d'adressage place aleatoirement le code, les piles, les tas et les bibliotheques en memoire afin qu'un attaquant ne puisse pas predire les adresses cibles.
- appsec№ 925
Return-Oriented Programming
Le ROP est une technique d'exploitation par reutilisation de code qui enchaine de courtes sequences terminees par RET pour executer un calcul arbitraire sans injecter de code.
- appsec№ 545
Intel CET
Intel CET (Control-flow Enforcement Technology) est une fonctionnalite du processeur qui combine une shadow stack materielle et l'Indirect Branch Tracking (IBT) pour bloquer ROP, JOP et COP.
● Voir aussi
- № 581KASLR