Pour gérer vos consentements :
Categories: DéveloppeursProjets

Sécurité de l’open source : Mozilla parie sur WebAssembly

Sécuriser la réutilisation de code tiers dans des projets de développement ? Il y a les « nanoprocessus » pour ça.

Intel, Red Hat, Mozilla et Fastly entendent mettre ce concept en œuvre sous l’égide de la Bytecode Alliance, dont ils viennent d’annoncer la constitution.

Leur support de travail se nomme WebAssembly.

Il s’agit d’un langage de bas niveau conçu à l’origine comme un complément à JavaScript. Son format binaire est lisible par l’homme.
Sur le web, il fournit un moyen d’exécuter du code écrit dans divers langages (C, C++, Rust) à une vitesse proche du natif.

L’une de ses spécificités réside dans la prise en charge de l’exécution en bac à sable (sandbox).

Isoler pour maîtriser

C’est cette particularité que la Bytecode Alliance compte mettre à profit pour étendre WebAssembly au-delà des navigateurs.

En toile de fond, un constat : en moyenne, 80 % du code utilisé dans les projets de développement est issu de sources tierces.
Il en résulte d’autant plus de risques de sécurité. Mozilla et consorts les illustrent par l’exemple de Zip Slip. La faille a touché de nombreux écosystèmes dont JavaScript, Ruby, .NET et Go.

Solution envisagée : adapter WebAssembly pour proposer une protection équivalente à celle que les systèmes d’exploitation garantissent à travers l’isolation des processus. Mais avec une empreinte mémoire optimisée.

Cette vision se résume dans la notion de « nanoprocessus », chacun d’entre eux pouvant contenir une ou plusieurs instances de modules WebAssembly.

Du datacenter à la périphérie

Par défaut, tous ces modules résident dans une sandbox. Ils n’accèdent aux API et aux appels système que si on les y autorise explicitement.
Ils n’ont pas ailleurs accès qu’à la zone mémoire qui leur est assignée, sans reposer sur une ressource partagée.

Pour assurer la communication entre modules, la Bytecode Alliance développe diverses interfaces. Objectif : permettre la copie de données sans les sérialiser et les désérialiser. Y compris pour deux modules compilés dans différents langages.

Une autre interface est développée afin d’intégrer un système de permissions aux API et appels systèmes. Un mécanisme de virtualisation est par ailleurs à l’étude pour faciliter la communication entre les modules et leurs dépendances.

La Bytecode Alliance a pris sous son aile une première sélection de projets. Parmi eux :

  • Wasmtime
    Ce runtime indépendant peut servir de CLI ou être embarqué dans d’autres systèmes. Compatible x86_64, il doit servir de base à des runtimes plus spécifiques.
  • Lucet
    C’est l’un de ces runtimes « spécifiques ». Porté par Fastly, il est axé sur la réduction de la latence (notamment à travers la compilation anticipée (AOT). Ce qui le destine en particulier aux CDN et à l’informatique en périphérie (edge).
  • WARM (WebAssembly Micro-Runtime)
    Un runtime destiné au monde de l’embarqué (Arm, MIPS, x86 32 et 64 bits). Il utilise un interpréteur pour limiter l’empreinte mémoire.

La Bytecode Alliance promeut aussi des outils destinés à entrer dans la composition de runtimes. Par exemple le générateur de code Cranelift, qui parallélise la compilation au niveau des fonctions.

Photo d’illustration © isaak55 – Shutterstock.com

Recent Posts

Pour son premier LLM codeur ouvert, Mistral AI choisit une architecture alternative

Pour développer une version 7B de son modèle Codestral, Mistral AI n'a pas utilisé de…

17 heures ago

Microsoft x Inflection AI : l’autorité de la concurrence britannique lance son enquête

L’Autorité de la concurrence et des marchés (CMA) britannique ouvre une enquête sur les conditions…

19 heures ago

Thomas Gourand, nouveau Directeur Général de Snowflake en France

Thomas Gourand est nommé Directeur Général pour la France. Il est chargé du développement de…

21 heures ago

Accord Microsoft-CISPE : comment Google a tenté la dissuasion

Pour dissuader le CISPE d'un accord avec Microsoft, Google aurait mis près de 500 M€…

21 heures ago

Vers des mises à jour cumulatives intermédiaires pour Windows

Pour réduire la taille des mises à jour de Windows, Microsoft va mettre en place…

22 heures ago

RH, finances, stratégie… Les complexités de la Dinum

De l'organisation administrative à la construction budgétaire, la Cour des comptes pointe le fonctionnement complexe…

2 jours ago