Software Security Models for Service-Oriented Programming (SOP) Platforms
Pierre Parrend
PhD Thesis, INSA de Lyon. 2008/12/09.
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 Prevention).
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 oeuvre 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
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.
Abstract:
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. Hardened
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.
Mots clés: Intergiciel, Génie Logiciel, Sécurité, Composants, Programmation Orientée Service, Language Java, Plate-forme OSGi, Analyse statique, vulnérabilités de code.
Keywords : Middleware, Software Engineering, Security, Components, Service-oriented Programming, Java Language, OSGi Platform, Code Static analysis, Code vulnerabilities.
Document : pdf file.
Presentation : pdf file.
Bibtex :
@PHDTHESIS{Parrend2008phd,
author = {Pierre Parrend},
title = {Software Security Models for Service-Oriented Programming (SOP) Platforms},
school = {Institut National des Sciences Appliqu\'{e}es de Lyon, France},
year = {2008},
month = {December},
keywords = {Middleware, Software Engineering, Security, Components, Service-oriented
Programming, Java Language, OSGi Platform, Code Static analysis,
Code vulnerabilities.},
}