Building Safe PaaS Clouds: a Survey on Security in Multitenant Software Platforms
Résumé
This paper surveys the risks brought by multitenancy in software platforms, along with the most prominent solutions proposed to address them. A multitenant platform hosts and executes software from several users (tenants). The platform must ensure that no malicious or faulty code from any tenant can interfere with the normal execution of other users' code or with the platform itself. This security requirement is specially relevant in Platform-as-a-Service (PaaS) clouds. PaaS clouds offer an execution environment based on some software platform. Unless PaaS systems are deemed as safe environments users will be reluctant to trust them to run any relevant application. This requires to take into account how multitenancy is handled by the software platform used as the basis of the PaaS offer. This survey focuses on two technologies that are or will be the platform-of-choice in many PaaS clouds: Java and .NET. We describe the security mechanisms they provide, study their limitations as multitenant platforms and analyze the research works that try to solve those limitations. We include in this analysis some standard container technologies (such as Enterprise Java Beans) that can be used to standardize the hosting environment of PaaS clouds. Also we include a brief discussion of Operating Systems (OSs) traditional security capacities and why OSs are unlikely to be chosen as the basis of PaaS offers. Finally, we describe some research initiatives that reinforce security by monitoring the execution of untrusted code, whose results can be of interest in multitenant systems.
Ce papier étudie les risques induits par les architectures multiutilisateurs pour les plates-formes logicielles, et les solutions les plus avancées pour résoudre ces questions. Une plate-forme multi-utilisateurs héberge et exécute des logiciels pour plusieurs utilisateurs. La plate-forme doit assurer qu'aucun code maliceux ou défaillant provenant d'un utilisateur ne vienne interférer avec l'exécution normale d'un autre code utilisateur ou avec la plate-forme en elle-même. Ce besoin de sécurité est particulièrement approprié dans les infrastructures en nuage de type PaaS (pour Platform-as-a-Service). Les PaaS en nuage offre un environnement d'exécution basé sur des plates-formes logicielles. A moins que les systèmes PaaS soient considérés comme des environnements sécurisés les utilisateurs seront récalcitrants a faire confiance à ces plates-formes pour exécuter les applications appropriées. Cela implique de prendre en compte la façon dont les multi-utilisateurs sont gérés par la plate-forme logicielle sousjacente au PaaS. Cette étude se focalise sur deux technologies qui ont été choisis dans de nombreuses plates-formes PaaS: Java et .NET. Nous décrivons les mécanismes de sécurités qu'elles fournissent, nous étudions leurs limitations dans le cadre de plates-formes multi-utilisateurs et nous analysons les travaux de recherche qui essaye de s'attaquer à ces limitations. De plus nous évoquerons des technologies a base de containers standards (telle que Enterprise Java Beans) qui peuvent être utilisées pour standardiser l'hébergement des PaaS. De plus, nous proposons une brève discussion sur les traditionnelles niveau de sécurité dans les systèmes d'exploitation et pourquoi les systèmes d'exploitation sont peu aptes a être choisi comme base de l'offre PaaS. Enfin, nous décrivons quelques initiatives de recherche qui renforce la sécurité par le monitorage de l'exécution de code non fiable, dont les résultats peuvent être intéressant dans le cadre de systèmes multi-utilisateurs.
Origine | Fichiers produits par l'(les) auteur(s) |
---|
Loading...