More Vulnerabilities in the Java/OSGi Platform: A Focus on Bundle Interactions
Pierre Parrend and Stephane Frenot
INRIA Technical Report n° 6649.
Abstract:
Extensible Component Platforms can discover and install code during runtime.
Although this feature introduces flexibility, it also brings new security threats: malicious
components can quite easily be installed and exploit the rich programming environment and
interactions with other components to perform attacks against the system. One example of
such environments is the Java/OSGi Platform, which widespreads in the industrial world.
Attacks from one component against another can not be prevented through conventional
security mechanisms, since they exploit the lack of proper isolation between them:
components often share classes and objects. This reports intends to list the vulnerabilities
that a component can contain, both from the literature and from our own experience. The
Vulnerable Bundle catalog gathers this knowledge. It provides informations related to the
characteristics of the vulnerabilities, their consequence, the security mechanisms that would
help prevent their exploitation, as well as to the implementation state of the proof-of-concept
bundles that are developed to prove that the vulnerability is actually exploitable.
The objective of vulnerability classification is of course to provide tools for identifying and
preventing them. A first assessment is performed with existing tools, such as Java Permission
and FindBugs, and a specific prototype we develop, WBA ( Weak Bundle Analysis), and
manual code review.
Keywords : Software Security, Vulnerability Benchmarking, Code Static Analysis, Java Language, Component Platforms, OSGi
Résumé :
Les Plates-formes Extensibles à composants peuvent découvrir et installer des
programmes pendant leur exécution. Bien que cette possibilité introduise de la flexibilité,
elle apporte également de nouvelles menaces de sécurité: des composants malveillants peuvent
être aisément installés, et exploiter l'environment de programmation de la plate-forme,
ainsi que les interactions avec les autres composants, pour attaquer le système. Un exemple
d'environnement de ce type est Java/OSGi, qui devient de plus en plus utilisé dans
l'industrie.
Les attaques d'un composant contre un autre ne peuvent pas être évitées par des mécanismes
de sécurité conventionnels, dans la mesure où elles exploitent le manque d'isolation
entre composants, qui partagent souvent des classes et des objets. Ce rapport liste les
vulnérabilités possibles d'un composant à partir de la litérature mais également de notre
propre expérience. Le catalogue Bundles Vulnerables rassemble ces données. Il contient des
informations concernant les caractéristiques des vulnérabilités, leur conséquence, les mécanismes
de sécurité qui permettent d'éviter leur exploitation, de même que des informations
concernant la mise en oeuvre des bundles que nous développons pour démontrer que ces
vulnérabilités sont aisément exploitables.
L'objectif d'une telle classification de vulnérabilités est bien sûr de fournir des outils
afin de les identifier et de les prévenir. Une première évaluation est réalisée, avec des outils
existants comme les Permissions Java et FindBugs, un outil ad hoc que nous avons développé,
WBA ( Weak Bundle Analysis), ainsi que l'examen manuelle de code.
Mots clés : Sécurité Logicielle, Evaluation de Vulnérabilités, Analyse statique de Code, Langage Java, Plates-formes à Composants OSGi
Technical Report : pdf file.
Bibtex :
@TECHREPORT{Parrend2008bundleVulnerabilities,
author = {Pierre Parrend and St\'{e}phane Fr\'{e}not},
title = {More Vulnerabilities in the {J}ava/{OSGi} Platform: A Focus on Bundle
Interactions},
institution = {INRIA},
year = {2008},
number = {RR-6649},
month = {September},
}