Microsoft monte une nouvelle quipe pour la modernisation de l’infrastructure cloud de M365 via Rust Et ravive le dbat sur la dsignation de Rust comme meilleur gage de scurisation des logiciels

Microsoft Defender Threat Intelligence pour cartographier l'internet, et Microsoft Defender External Attack Surface Management



Microsoft monte une nouvelle quipe pour la modernisation de linfrastructure cloud de Microsoft 365 via le langage Rust. Les dtails sont parus dans une offre demploi de lentreprise qui souligne que les responsabilits comprennent l’orientation technique, la conception et la mise en uvre de bibliothques de composants Rust, de SDK et la rimplmentation de services existants en Rust partir de C#. La manuvre vient relancer le dbat sur lintrt pour la langage Rust en matire de scurisation des logiciels au dtriment dautres langages. Mme Linus Torvalds reconnat que Rust, qui a t adopt comme deuxime langage pour le dveloppement du noyau Linux, est digne dintrt dun point de vue technique.

Rust de Mozilla Research est le type de langage de programmation auquel ceux qui crivent du code pour des systmes dentre/sortie de base (BIOS), des chargeurs damorce, des systmes dexploitation, etc. portent un intrt. De faon graduelle, Microsoft migre vers ce dernier au dtriment dautres langages que lentreprise juge moins outills pour la mise sur pied dapplications dites systme. Motif : Rust offre de meilleures garanties en matire de scurisation des accs mmoire des logiciels.

Les problmes de gestion de la mmoire sont exploits depuis des dcennies et sont encore trop courants aujourd’hui. Nous devons utiliser de faon systmatique des langages scuriss pour la mmoire et d’autres protections lors du dveloppement de logiciels afin d’liminer ces faiblesses des cyberacteurs malveillants , dclare Neal Ziring, directeur technique de la cyberscurit de la NSA.

Une publication de la NSA permet de faire le tour sur ce problme de la scurit de la mmoire

La faon dont un programme logiciel gre la mmoire est essentielle pour prvenir de nombreuses vulnrabilits et garantir la robustesse d’un programme. L’exploitation d’une gestion de la mmoire mdiocre ou ngligente peut permettre un cyberacteur malveillant d’accomplir des actes nfastes, tels que planter le programme volont ou modifier les instructions du programme en cours d’excution pour faire ce que l’acteur dsire. Mme des problmes inexploitables avec la gestion de la mmoire peuvent entraner des rsultats de programme incorrects, une dgradation des performances du programme au fil du temps ou des plantages de programme apparemment alatoires.

La scurit de la mmoire est une vaste catgorie de problmes lis la faon dont un programme gre la mmoire. Un problme courant est le dbordement de tampon , o les donnes sont accessibles en dehors des limites d’un tableau. D’autres problmes courants concernent l’allocation de mmoire. Les langages peuvent allouer de nouveaux emplacements de mmoire pendant l’excution d’un programme, puis dsallouer la mmoire, galement appele libration ou libration de la mmoire, plus tard lorsque la mmoire n’est plus ncessaire. Mais si cela n’est pas fait avec soin par le dveloppeur, de la nouvelle mmoire peut tre alloue encore et encore au fur et mesure que le programme s’excute. Par consquent, la mmoire n’est pas toujours libre lorsqu’elle n’est plus ncessaire, ce qui entrane une fuite de mmoire qui pourrait entraner le programme manquer de mmoire disponible.

En raison d’erreurs logiques, les programmes peuvent galement tenter d’utiliser la mmoire qui a t libre, ou mme de librer de la mmoire qui a dj t libre. Un autre problme peut survenir lorsque les langages autorisent l’utilisation d’une variable qui n’a pas t initialise, ce qui fait que la variable utilise la valeur prcdemment dfinie cet emplacement en mmoire. Enfin, un autre problme difficile est appel une condition de concurrence. Ce problme peut se produire lorsque les rsultats d’un programme dpendent de l’ordre de fonctionnement de deux parties du programme accdant aux mmes donnes. Tous ces problmes de mmoire sont des occurrences beaucoup trop courantes.

En exploitant ces types de problmes de mmoire, les acteurs malveillants, qui ne sont pas lis par les attentes normales d’utilisation du logiciel, peuvent dcouvrir qu’ils peuvent entrer des entres inhabituelles dans le programme, provoquant l’accs, l’criture, l’allocation ou la dsallocation de la mmoire de manire inattendue. Dans certains cas, un acteur malveillant peut exploiter ces erreurs de gestion de la mmoire pour accder des informations sensibles, excuter du code non autoris ou provoquer d’autres impacts ngatifs. Puisqu’il peut falloir beaucoup d’exprimentation avec des entres inhabituelles pour en trouver une qui provoque une rponse inattendue, les acteurs peuvent utiliser une technique appele « fuzzing » pour crer de manire alatoire ou intelligente une multitude de valeurs d’entre dans le programme jusqu’ ce qu’on en trouve une qui provoque le plantage du programme.

Les progrs des outils et des techniques de fuzzing ont facilit la recherche d’entres problmatiques pour les acteurs malveillants ces dernires annes. Une fois qu’un acteur dcouvre qu’il peut faire planter le programme avec une entre particulire, il examine le code et travaille pour dterminer ce qu’une entre spcialement conue pourrait faire. Dans le pire des cas, une telle entre pourrait permettre l’acteur de prendre le contrle du systme sur lequel le programme s’excute.

C#, Go, Java, Ruby, Rust et Swift font partie des langages pour une gestion scurise de la mmoire mais Rust est de plus en plus mis en avant par les gants technologiques

L’utilisation d’un langage scuris pour la mmoire peut aider empcher les programmeurs d’introduire certains types de problmes lis la mmoire. La mmoire est gre automatiquement dans le cadre du langage informatique ; il ne repose pas sur l’ajout de code par le programmeur pour implmenter des protections de mmoire. Le langage institue des protections automatiques en utilisant une combinaison de vrifications au moment de la compilation et de l’excution. Ces fonctionnalits inhrentes au langage protgent le programmeur contre l’introduction involontaire d’erreurs de gestion de la mmoire. C#, Go, Java, Ruby, Rust et Swift sont des exemples de langage scuris pour la mmoire.

Mme avec un langage scuris pour la mmoire, la gestion de la mmoire n’est pas entirement scurise pour la mmoire. La plupart des langages de mmoire scuriss reconnaissent que les logiciels doivent parfois excuter une fonction de gestion de mmoire non scurise pour accomplir certaines tches. En consquence, des classes ou des fonctions sont disponibles qui sont reconnues comme non scurises pour la mmoire et permettent au dveloppeur d’effectuer une tche de gestion de la mmoire potentiellement dangereuse. Certains langages exigent que tout ce qui n’est pas sr en mmoire soit explicitement annot comme tel pour que le dveloppeur et tous les rviseurs du programme sachent qu’il n’est pas sr. Les langages scuriss pour la mmoire peuvent galement utiliser des bibliothques crites dans des langages non scuriss pour la mmoire et peuvent donc contenir des fonctionnalits de mmoire non scurises. Bien que ces faons d’inclure la mmoire ne soient pas sres et subvertissent la scurit inhrente la mmoire, elles aident localiser o des problmes de mmoire pourraient exister, permettant un examen plus approfondi de ces sections de code.

Les langages varient dans leur degr de scurit de la mmoire institu par des protections et des attnuations inhrentes. Certains langages n’offrent qu’une scurit de mmoire relativement minimale alors que certains langages sont trs stricts et offrent des protections considrables en contrlant la manire dont la mmoire est alloue, accessible et gre. Pour les langages avec un niveau extrme de protection inhrente, un travail considrable peut tre ncessaire pour obtenir simplement le programme compiler en raison des vrifications et des protections.

La scurit de la mmoire peut tre coteuse en matire de performances et de flexibilit. La plupart des langages mmoire scuriss ncessitent une sorte de rcupration de place pour rcuprer la mmoire qui a t alloue, mais qui n’est plus ncessaire au programme. Il existe galement une surcharge de performances considrable associe la vrification des limites de chaque accs la baie qui pourrait potentiellement se trouver en dehors de la baie.

Alternativement, un impact similaire sur les performances peut exister dans un langage non scuris en mmoire en raison des vrifications qu’un dveloppeur ajoute au programme pour effectuer la vrification des limites et d’autres protections de gestion de la mmoire. Les cots supplmentaires lis l’utilisation de langages non scuriss pour la mmoire incluent une corruption de mmoire difficile diagnostiquer et des plantages occasionnels des programmes ainsi que de potentielles exploitations des vulnrabilits d’accs la mmoire. Il n’est pas anodin de faire passer une infrastructure de dveloppement logiciel mature d’un langage informatique un autre. Les dveloppeurs qualifis doivent tre forms dans un nouveau langage et il y a un coup d’efficacit lors de l’utilisation d’un nouveau langage.

Les dveloppeurs doivent endurer une courbe d’apprentissage et se frayer un chemin travers toutes les erreurs de dbutant . Alors qu’une autre approche consiste embaucher des dveloppeurs comptents dans un langage scuris pour la mmoire, ils auront eux aussi leur propre courbe d’apprentissage pour comprendre la base de code existante et le domaine dans lequel le logiciel fonctionnera.

Source : Offre demploi

Et vous ?

Quel tat des lieux faites-vous de la scurit de la mmoire dans nos logiciels actuels ?

Le langage Rust est-il la solution ultime cette catgorie de problmes ?

Voir aussi :

La NSA exhorte les organisations passer des langages de programmation scuriss dans la gestion de la mmoire pour liminer un vecteur d’attaque souvent exploit par les cybercriminels

La NSA et la CISA des tats-Unis publient un guide pour renforcer la scurit des clusters Kubernetes, en vue d’aider les entreprises rendre leurs infrastructures plus rsilientes

Choisir Rust est opter pour une meilleure scurisation des logiciels qu’avec le C, mais une efficacit nergtique et une performance d’excution que seul le C offre , d’aprs l’quipe AWS



Source link

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.