Résumé
Les mécanismes d’isolation logicielle ont pour but d’exécuter un logiciel potentiellement malveillant en l’empêchant d’attaquer d’autres logiciels s’exécutant dans le même environnement ou de compromettre les mécanismes de sécurité essentiels du système d’exploitation et du matériel. Le cours a décrit et comparé plusieurs approches de l’isolation logicielle : mémoire virtuelle, architectures à capacités, isolation logicielle des fautes (par transformation du code machine) et isolation par le langage de programmation et ses interfaces logicielles (API, Application Programming Interfaces). Nous avons étudié comment cette dernière approche se réalise dans le langage Java (par une API à base de capacités et par l’inspection de la pile d’appels) et, plus péniblement, dans le langage Javascript (en utilisant finement la portée statique des liaisons).