Vérification automatique pour l’exécution sécurisée de composants Java
Pierre Parrend, Stéphane Frénot
Numéro spécial de la revue L'Objet Composants, Services et Aspects : techniques et outils pour la vérification
Résumé:
Les plates-formes dynamiques de services permettent d’exécuter simultanément
plusieurs composants fournis par des tiers. Ceci apporte une grande flexibilité dans leur utilisation,
aussi bien en environnements à ressources limitées que dans le cas de serveurs d’applications.
Toutefois, les implications pour la sécurité du système sont encore mal connues: quels
sont les risques posés par l’exécution de composants tiers pour la plate-forme d’execution ?
pour les autres composants ? Comment y remédier ? A partir d’expérimentations réalisées
sur la plate-forme Java/OSGi, nous proposons une classification des vulnérabilités des platesformes
dynamiques de services. Deux cas sont considérés: les vulnérabilités de la plate-forme
elle-même, et les vulnérabilités des composants. Plusieurs solutions sont proposées pour résoudre
ces vulnérabilités. Premièrement, le Contrôle d’accès basé Composants (CBAC, pour
Component-based Access Control) permet de limiter l’accès à des méthodes dangereuses de
la plate-forme ou des composants. La validation est effectuée par analyse statique de code.
La configuration est entièrement déclarative, ce qui rend cette approche extensible, et adaptée
pour la protection de méthodes fournies par des composants tiers. Deuxièmement, l’Analyse de
Composants faibles (WCA, pour Weak Component Analysis) permet d’identifier les vulnérabilités
des composants, par analyse statique de code également. CBAC et WCA exploitent la phase
d’installation des composants pour réaliser les vérifications nécessaires. Seuls les composants
valides sont installés. WCA peut également être utilisé lors du dévelopement pour améliorer la
qualité du code.
Abstract:
Service-oriented Programming (SOP) platforms allow to simultaneously execute several
components provided by third parties. This introduces flexibility in applications for embedded
environments and for application servers. However, the security implications are not well
understood so far. Which are the risks of executing third party components for the platform ?
For other components ? How to remedy to them ? Based on experiments performed with the
Java/OSGi platform, we propose a classification of SOP platform vulnerabilities. Two cases
are to be considered: platform vulnerabilities and component vulnerabilities. Several solutions
are proposed to solve these vulnerabilities. First, Component-based Access Control (CBAC)
enables to restrict the acccess to sensitive methods in the platform or components. Validation
is performed through code static analysis. Configuration is fully declarative, which makes the
approach extensible and suitable for handling third party components. Secondly, Weak Component
Analysis (WCA) enables to identify vulnerabilities in the component Bytecode with a
similar static analysis technique. CBAC and WCA exploit the installation phase of componentts
to perform required validations. Only valid components can then be installed. WCA can also
be used as a development tool to enhance code quality.
Mots clés: Analyse statique, composants, Service-oriented Programming, Java, OSGi.
Keywords : Static analysis, components, Service-oriented Programming, Java, OSGi.
Bibtex :
@ARTICLE{Parrend2008lobjet,
author = {Pierre Parrend and St\'{e}phane Fr\'{e}not},
title = {V\'{e}rification automatique pour l'ex\'{e}cution s\'{e}curis\'{e}e
de composants Java},
journal = {Num\'{e}ro sp\'{e}cial de la revue L'Objet - Composants, Services
et Aspects : techniques et outils pour la v\'{e}rification},
year = {2008},
}