Software Security Models for Service-Oriented Programming (SOP) Platforms

Software Security Models for Service-Oriented Programming (SOP) Platforms

No d’ordre : NOT-GIVEN Année 2008 Thèse Software Security Models for Service-Oriented Programming (SOP) Platforms À présenter devant l’Institut National des Sciences Appliquées de Lyon École Doctorale Informatique et Information pour la Société pour l’obtention du Grade de Docteur spécialité informatique par Pierre PARREND À soutenir le 9 Décembre 2008 Devant le jury composé de Directeurs : Stéphane Ubéda, Professeur, INSA de Lyon Stéphane Frénot, Maître de conférences, INSA de Lyon Rapporteurs : Didier Donsez, Professeur, Université Grenoble I Ralf Reussner, Professeur, Technische Universität Karlsruhe Examinateurs : Ciaran Bryce, Maître d’enseignement Université de Genève et de recherche, Pierre-Etienne Chargé de Recherche, INRIA Lorraine Moreau, habilité à diriger des recherches, Thèse effectuée au sein du Centre d’Innovation en Télécommunications et Intégration de Services (CITI) de l’INSA de Lyon et de l’équipe Architecture Réseaux et Systèmes (Ares) de l’INRIA Rhône-Alpes Résumé Les plates-formes dynamiques de services (SOP, pour ‘service-oriented programming’) sont des environnements d’exécution génériques qui définissent un modèle d’architecture logicielle structuré: les composants communiquent par le biais d’interfaces explicites, ce qui facilite la configuration et l’évolution de ces systèmes. Les plates-formes SOP utilisent leur envi- ronnement réseau pour réaliser des tâches fonctionnelles, mais également pour améliorer leur capacité de gestion et d’évolution. Elles sont exploitées dans des contextes variés, des serveurs d’application aux systèmes embarqués médicaux ou automobiles. La flexibilité apportée par les plates-formes SOP permet l’intégration de composants de plusieurs sources aussi bien lors de la conception qu’à l’exécution. Cette tendance induit cependant un risque important. Peu d’outils existent pour évaluer la qualité des systèmes résultants, et aucun ne garantit que les composants sélectionnés ne sont pas malicieux. Dans des contextes applicatifs tels que les systèmes e-Business ou les systèmes embarqués sensibles, l’existence d’attaques n’est pas à exclure. L’assurance de sécurité logicielle (Software Security Assurance) définit des méthodes pour le développement d’applications sûres, mais se concentre sur les systèmes monolithiques. Son principe est le suivant: les vulnérabilités doivent être identifiées et résolues tôt dans le cycle de vie pour éviter les attaques lors de l’exécution et limiter les coûts de réparation. Cepen- dant, cette approche ne peut s’appliquer directement aux applications à composants, où le développement n’est pas nécessairement contrôlé par l’intégrateur, et où l’intégration peut avoir lieu à l’exécution de manière automatisée. Nous proposons par conséquent de réaliser une analyse de sécurité pour une plate-forme SOP de référence, la plate-forme OSGi, et de fournir des mécanismes de protection adaptés aux besoins ainsi identifiés. L’analyse de sécurité de la plate-forme OSGi est réalisée par une méthode spécifique, SPIP , le Processus Spirale de Prévention d’Intrusion (Spiral Process for Intrusion Preven- tion). Elle permet l’évaluation des vulnérabilités du système cible et de la protection apportée par les mécanismes de sécurité associés. Le résultat de l’analyse est : les vulnérabilités de la plate-forme Java/OSGi, et les vulnérabilités des composants SOP Java. Plusieurs mécanismes de protection sont développés pour prévenir l’exploitation des vul- nérabilités identifiées. Ils sont implémentés dans la plate-forme elle-même et au niveau des composants. OSGi Robuste (Hardened OSGi) est un ensemble de recommandations pour la mise en œuvre de plates-formes OSGi résistantes. CBAC, le contrôle d’accès basé composants (Component-based Access Control) est un mécanisme de contrôle d’accès qui vérifie lors de l’installation qu’un composant n’exécute que les appels explicitement autorisés. Son objectif est d’être plus flexible que le gestion de sécurité Java, de garantir que seuls les composants valides soient installés et de réduire autant que possible le coût de vérification en terme de performance. WCA, l’analyse de composants faibles (Weak Component Analysis), est un outil pour identifier les vulnérabilités exploitables dans les composants SOP selon l’exposition des classes: les objets partagés tels les services SOP, les classes partagées et les classes internes iii des composants ne sont pas concernés par les mêmes vulnérabilités. Nos propositions sont validées par leur intégration avec une JVM sécurisée dédiée aux applications OSGi, la JnJVM. Les propriétés de sécurité de l’environnement ainsi réalisé sont encourageantes. iv Summary Service-oriented programming (SOP) platforms are generic execution environments enforcing a proper architectural model for applications: software components communicate through well-defined interfaces, which eases the configuration and evolution of applications. These platforms take advantage of their networked environment to perform distributed functional tasks, but also to enhance their management and evolution capacity. They are involved in numerous contexts, from applications servers to embedded health-care and automotive sys- tems. The increased flexibility brought in by SOP platforms enables to integrate components provided by different issuers during the design phase and even at runtime. This trend has nonetheless a serious drawback. Few tools exist to assess the actual quality of the resulting systems, and none is available to guarantee that the selected components do not perform malicious actions. In applications such as e-Business systems or sensitive embedded systems, the intervention of attackers can not be excluded. Software Security Assurance provides methods for the development of secure applications, but focuses on monolithic systems. Its principle is the following one: vulnerabilities should be identified and solved as early as possible in the life-cycle to avoid runtime abuses and to reduce patching costs. However, this approach is not well-suited for component applications: the development process is not controlled by the integrator. When the integration is performed at runtime, no human intervention is possible to evaluate the quality of the components. We therefore propose to perform a security analysis of one prototypical SOP platform, the OSGi platform, and to provide protection mechanisms tailored to the identified requirements. The security analysis of the OSGi platform is performed with a dedicated method we define for security benchmarking, SPIP , the Spiral Process for Intrusion Prevention. It supports the assessment of vulnerabilities of the target system and of the protective power of associated security mechanisms. The output of the analysis is: the vulnerabilities of the Java/OSGi platform, and the vulnerabilities of Java SOP components. Several protections mechanisms are developed to prevent the exploitation of identified vul- nerabilities. They are implemented in the platform itself and at the component level. Hard- ened OSGi is a set of recommendations for building more robust implementations of the OSGi platform. CBAC, Component-based Access Control, is an access control mechanism that ver- ifies at install time that a component only performs calls it is authorized to. It intends to be more flexible than the Java security manager, to ensure that policy-compliant components only are installed and to reduce as much as possible the verification performance overhead. WCA, Weak Component Analysis, is a tool for identifying exploitable vulnerabilities in SOP components, according to the exposition of classes: shared objects, i.e. SOP services, shared classes, and component internal classes are not plagued by the same type of vulnerabilities. Our propositions are validated through their integration with a secure JVM dedicated to OSGi applications, the JnJVM. The resulting environment proves to have very encouraging security benchmarking results. vi Remerciements Je remercie tout particulièrement Stéphane Frénot, mon directeur de thèse, qui a permis la réalisation de cette thèse dans l’équipe INRIA-Ares, puis INRIA-Amazones, du laboratoire CITI de l’INSA de Lyon. Il a su à la fois me fournir un environnement de recherche et une vision technique forts, et me donner l’autonomie de travailler sur des problématiques complémentaires mais différentes de celles qui existaient dans l’équipe. Merci également à Stéphane Ubéda, en tant que co-directeur de thèse et directeur de laboratoire, qui a fait preuve d’une efficacité constante dans ses deux fonctions, et qui a permit à cette thèse, comme à tant d’autres, de se dérouler dans de bonnes conditions. Je remercie Didier Donsez, Professeur à l’Université de Grenoble, et Ralf Reussner, Pro- fesseur à l’Université de Karslruhe, Allemagne, d’avoir accepté d’être les rapporteurs de ce document. Et en particulier d’avoir permis sa rédaction en anglais. Je remercie également Ciarán Bryce, de l’Université de Genève, et Pierre-Etienne Moreaux, de l’INRIA Lorraine, de s’être intéressés à mon travail et d’avoir accepté de faire partie du jury de thèse. Plusieurs personnes ont également contribué au contenu de cette thèse. Je citerai Gaël Thomas pour ses retours concernant la sécurisation de la machine virtuelle Java, Peter Kriens pour ses remarques concernant l’intégration de mes propositions dans les plates-formes OSGi, et Capers Jones pour les précieuses informations qu’il m’a fournies sur les processus de qualité logiciels. Je remercie l’équipe Middleware du CITI pour leur présence au long de ces trois

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    216 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us