Java Components Vulnerabilities - An Experimental Classification Targeted at the OSGi Platform
The OSGi Platform finds a growing interest in two different applications domains: embedded systems, and applications servers. However, the security properties of this platform are hardly studied, which is likely to hinder its use in production system…
Authors: ** Pierre Parrend, Stéphane Frénot **
apport de recherche ISSN 0249-6399 ISRN INRIA/RR--6231--FR+ENG Thème COM INSTITUT N A TION AL DE RECHERCHE EN INFORMA TIQUE ET EN A UTOMA TIQUE J ava Components V ulnerabilities - An Experimental Classification T argeted at the OSGi Platf orm Pierre Parrend — Stéphane Frénot N° 6231 June 2007 Unité de recherche INRIA Rhône-Alpe s 655, av enue de l’Europ e, 38334 Montbon not Saint Ismier (France) Téléphone : +33 4 76 61 52 00 — Télécopie +33 4 76 61 52 52 Ja v a Comp onen ts V ulnerabilities - An Exp erimen tal Classiation T argeted at the OSGi Platform ∗ Pierre P arrend, Stéphane F rénot Thème COM Systèmes omm unian ts Pro jet ARES Rapp ort de re her he n ° 6231 June 2007 84 pages Abstrat: The OSGi Platform nds a gro wing in terest in t w o dieren t appliations domains: em b edded systems, and appliations serv ers. Ho w ev er, the seurit y prop erties of this platform are hardly studied, whi h is lik ely to hinder its use in pro dution systems. This is all the more imp ortan t that the dynami asp et of OSGi-based appliations, that an b e extended at run time, mak e them vulnerable to maliious o de injetion. W e therefore p erform a systemati audit of the OSGi platform so as to build a vul- nerabilit y atalog that in tends to referene OSGi V ulnerabilities originating in the Core Sp eiation, and in b eha viors related to the use of the Ja v a language. Implemen tation of Standard Servies are not onsidered. T o supp ort this audit, a Semi-formal V ulnerabilit y P attern is dened, that enables to uniquely haraterize fundamen tal prop erties for ea h vulnerabilit y , to inlude v erb ose de- sription in the pattern, to referene kno wn seurit y protetions, and to tra k the imple- men tation status of the pro of-of-onept OSGi Bundles that exploit the vulnerabilit y . Based on the analysis of the atalog, a robust OSGi Platform is built, and reommenda- tions are made to enhane the OSGi Sp eiations. Key-w ords: OSGi tm Platform, Seurit y , Dep endabilit y , Ja v a, Hardened Exeution Plat- form, V ulnerabilit y Catalog ∗ This W ork is partialy founded b y Muse IST Pro jet n ° 026442. V ulnerabilités des Comp osan ts Ja v a - Une Classiation Exp érimen tale Dans le Cadre de la Plate-forme OSGi Résumé : La plate-forme d'exéution OSGi renon tre un in térêt grandissan t dans deux domaines d'appliations diéren ts: les systèmes em barqués, et les serv eurs d'appliations. Cep endan t, les propriétés de ette plate-forme relativ es à la séurité ne son t que très p eu étudiées, e qui p eut fortemen t freiner son adoption dans les systèmes industriels. Cei est d'autan t plus ritique que la p ossibilité d'extension dynamique à l'exéution oerte par la plate-forme OSGi rend elle-i vulnérable à l'injetion de o de maliieux. Nous eetuons un audit de l'en vironnemen t d'exéution OSGi, an de réer un atalogue de vulnérabilités. Nous her hons à référener les vulnérabilités ausées par la sp éiation `Core', ou bien par la ma hine virtuelle Ja v a sous-jaen te. Les autres élémen ts dénis par OSGi, omme les servies standards, ne son t pas onsidérés. An de mener à bien et audit, nous dénissons un P attern de V ulnérabilité semi-formel, qui p ermet de dérire les aratéristiques des vulnérabilités de manière unique, de donner des informations omplémen taires, de référener les protetions existan tes, et d'iden tier le status de l'implémen tation des Bundles OSGi de test qui démon tren t haque vulnérabilité. A partir de ette analyse, un plate-forme OSGi robuste est onstruite, et des reomman- dations p our les sp éiations OSGi son t données. Mots-lés : Plate-forme OSGi tm , Séurité, Ja v a, Plate-forme d'exéution renforée, Ca- talogue de V ulnérabilités OSGi V ulner abilities 3 Con ten ts 1 In tro dution 8 2 Charaterization of V ulnerabilities in Comp onen t-based Systems 10 2.1 Denitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.2 F rom Databases to T op-V ulnerabilit y Lists . . . . . . . . . . . . . . . . . . . . 10 2.3 V ulnerabilit y P atterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3 The Semi-formal Soft w are V ulnerabilit y P attern 15 3.1 The Struture of the Semi-formal V ulnerabilit y P attern . . . . . . . . . . . . 16 3.2 V ulnerabilit y T axonomies for OSGi-based Systems . . . . . . . . . . . . . . . 17 3.3 A V ulnerabilit y Example: `Managemen t Utilit y F reezing - Innite Lo op' . . . 21 4 Requiremen ts for seure OSGi Systems 24 4.1 Catalog Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 4.2 Requiremen ts for a Hardened OSGi Platform . . . . . . . . . . . . . . . . . . 27 4.3 Reommendations for a Hardened Exeution En vironmen t . . . . . . . . . . . 30 5 Conlusions 33 A The OSGi platform 37 A.1 Ov erview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 A.2 The Bundles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 A.3 In terations b et w een Bundles . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 B V ulnerabilities List 39 B.1 The Lindqvist Classiation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 B.2 Common W eaknesses En umeration (CWE) . . . . . . . . . . . . . . . . . . . 40 B.3 Nineteen Dealy Sins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 B.4 O W ASP T op T en . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 B.5 Sev en Kingdoms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 C F ormal Expression of the V ulnerabilit y P attern 43 D V ulnerabilit y Catalog 45 D.1 Bundle Ar hiv e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 D.1.1 In v alid Digital Signature V alidation . . . . . . . . . . . . . . . . . . . 45 D.1.2 Big Comp onen t Installer . . . . . . . . . . . . . . . . . . . . . . . . . . 47 D.1.3 Deompression Bom b . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 D.2 Bundle Manifest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 D.2.1 Dupliate P a k age Imp ort . . . . . . . . . . . . . . . . . . . . . . . . . 49 D.2.2 Exessiv e Size of Manifest File . . . . . . . . . . . . . . . . . . . . . . 50 D.2.3 Erroneous v alues of Manifest attributes . . . . . . . . . . . . . . . . . 51 RR n ° 6231 4 Parr end & F r énot D.3 Bundle A tiv ator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 D.3.1 Managemen t Utilit y F reezing - Innite Lo op . . . . . . . . . . . . . . . 52 D.3.2 Managemen t Utilit y F reezing - Thread Hanging . . . . . . . . . . . . . 54 D.4 Bundle Co de - Nativ e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 D.4.1 Run time.exe.kill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 D.4.2 CPU Load Injetion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 D.5 Bundle Co de - Ja v a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 D.5.1 System.exit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 D.5.2 Run time.halt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 D.5.3 Reursiv e Thread Creation . . . . . . . . . . . . . . . . . . . . . . . . 59 D.5.4 Hanging Thread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 D.5.5 Sleeping Bundle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 D.5.6 Big File Creator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 D.5.7 Co de Observ er . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 D.5.8 Comp onen t Data Mo dier . . . . . . . . . . . . . . . . . . . . . . . . . 64 D.5.9 Hidden Metho d Laun her . . . . . . . . . . . . . . . . . . . . . . . . . 65 D.5.10 Memory Load Injetion . . . . . . . . . . . . . . . . . . . . . . . . . . 66 D.5.11 Stand Alone Innite Lo op . . . . . . . . . . . . . . . . . . . . . . . . . 67 D.5.12 Innite Lo op in Metho d Call . . . . . . . . . . . . . . . . . . . . . . . 68 D.5.13 Exp onen tial Ob jet Creation . . . . . . . . . . . . . . . . . . . . . . . 69 D.6 Bundle Co de - OSGi APi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 D.6.1 Laun h a Hidden Bundle . . . . . . . . . . . . . . . . . . . . . . . . . 70 D.6.2 Pirat Bundle Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 D.6.3 Zom bie Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 D.6.4 Cyle Bet w een Servies . . . . . . . . . . . . . . . . . . . . . . . . . . 73 D.6.5 Numerous Servie Registration . . . . . . . . . . . . . . . . . . . . . . 74 D.6.6 F reezing Numerous Servie Registration . . . . . . . . . . . . . . . . . 75 D.7 Bundle F ragmen ts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 D.7.1 Exeute Hidden Classes . . . . . . . . . . . . . . . . . . . . . . . . . . 76 D.7.2 F ragmen t Substitution . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 D.7.3 A ess Proteted P a k age through split P a k ages . . . . . . . . . . . . 78 E A tta k Implemen tations 79 E.1 Innite Lo ops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 E.1.1 First Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 E.1.2 Seond Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 E.1.3 Third Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 E.1.4 F ourth Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 E.1.5 Fifth Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 E.1.6 Other Implemen tations . . . . . . . . . . . . . . . . . . . . . . . . . . 80 E.2 Hanging Thread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 E.2.1 First Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 E.2.2 Seond Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 INRIA OSGi V ulner abilities 5 E.2.3 Other Implemen tations . . . . . . . . . . . . . . . . . . . . . . . . . . 83 F XML2T ex Do umen tation Generator 84 RR n ° 6231 6 Parr end & F r énot List of Figures 1 P oten tial Lo ations of maliious Co de in a Bundle . . . . . . . . . . . . . . . 19 2 V ulnerabilit y Soures in an OSGi-based System . . . . . . . . . . . . . . . . . 19 3 P oten tial T argets of A tta ks against an OSGi Platform . . . . . . . . . . . . . 20 4 Consequenes of the V ulnerabilities of the OSGi Platform . . . . . . . . . . . 20 5 In tro dution Time for the iden tied a ws . . . . . . . . . . . . . . . . . . . . 20 6 Exploit Time for the iden tied Fla ws . . . . . . . . . . . . . . . . . . . . . . . 21 7 En tities that are Soure of the vulnerabilities . . . . . . . . . . . . . . . . . . 25 8 F untions that pro v e to b e dangerous in the on text of an OSGi Platform . . 25 9 Fla ws in an OSGi Exeution En vironmen t . . . . . . . . . . . . . . . . . . . . 26 10 T argets of A tta ks against an OSGi Exeution en vironmen t . . . . . . . . . . 27 11 A tual Protetion Me hanisms . . . . . . . . . . . . . . . . . . . . . . . . . . 29 12 Cardinalit y for ea h p oten tial Seurit y Me hanisms for the OSGi platform . . 30 13 Ov erview of an OSGi Platform . . . . . . . . . . . . . . . . . . . . . . . . . . 37 14 In tern Struture of an OSGi bundle . . . . . . . . . . . . . . . . . . . . . . . 38 15 Life Cyle of an OSGi Bundles inside the platform . . . . . . . . . . . . . . . 39 16 In teration Me hanisms b et w een the OSGi Bundles . . . . . . . . . . . . . . . 39 17 XML2T ex Pro ess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 INRIA OSGi V ulner abilities 7 List of T ables 1 V ulnerabilities for the main Op en Soure OSGi Platforms . . . . . . . . . . . 28 RR n ° 6231 8 Parr end & F r énot 1 In tro dution The OSGi Platform, whi h enables m ulti-appliation managemen t o v er Ja v a Virtual Ma- hines, is urren tly seeing a dramati inrease in its appliation domains. First targeted at em b edded systems su h as m ultimedia automotiv e devies, it has sine widespread in the w orld of appliations, with the Elipse In tegrated Dev elopmen t En vironmen t, and then to appliation serv ers, su h as IBM W ebsphere 6.1, or reen t dev elopmen t with JBoss. Sun is en visioning to in tegrate it in the Sun JVM, and sev eral Ja v a Sp eiation Request (JSR) w ork groups ha v e b een set up on the sub jet 1 . Ho w ev er, target systems are lik ely to b e highly net w ork ed ones, and seurit y impliations ha v e so far b een mostly o v erlo ok ed. A tually , the run time extensibilit y of appliations that is supp orted b y the OSGi platform op en a brand new atta k v etor: o de an b e installed on the y , and no me hanism urren tly guaran tees that this o de is not maliious. As OSGi-based systems mo v e from Op en-Soure pro jets and losed em b edded devies to w ard large-sale systems, this w eakness an turn in to a ma jor vulnerabilit y , unless seurit y impliations are b etter understo o d. W e therefore p erform in this study a systemati analysis of vulnerabilities that are implied b y OSGi bundles, and prop ose adequate oun ter-measures. Up to no w, T w o omplemen tary me hanisms are used to enfore seurit y in the on text of OSGi-based systems. The rst me hanism is bundle digital signature [OSG05 , PF06℄, whi h guaran tees that only bundles from trusted issuers are installed. This trust requiremen t fores the issuer to publish only safe bundles, sine he will liable for an y iniden t aused b y the o de he pro vides. The seond me hanism is based on Ja v a p ermissions, that enable to swit h on or o some atta k-prone features of the Ja v a Virtual Ma hine. These me hanisms are mostly insuien t to guaran tee that systems are safe. First, kno wing the iden tit y of a bundle issuer do es not giv e guaran tees related to the qualit y of its bundles. Seondly , most implemen tations do not ha v e a prop er implemen tation of the digital signature me hanism: they rely on the JVM built-in v eriation me hanism, whi h is not omplian t with OSGi sp eiations [PF07 ℄. And, lastly , Ja v a p ermissions an not b e onsidered as a panaea, sine they are usually not dynami, and ha v e a great ost in term of funtionalit y , but also in term of p erformane. New metho ds and new seurit y me hanisms therefore need to b e dened to pro vide hardened OSGi Platforms. W e presen t in this rep ort our on tribution to this problem, b y addressing sev eral requiremen ts. A metho d for analyzing the seurit y prop erties of the OSGi Platform is dened. It is based on a atalog of vulnerabilities, and an therefore b e ompleted when further kno wledge relativ e to OSGi V ulnerabilities is gathered. Based on the analysis of this atalog, OSGi sp ei vulnerabilities are iden tied, and a protot yp e is built to sho w the seurit y me hanisms that an b e used. Reommendations for an ev olution of the sp eiation of the OSGi Core platform are prop osed to enable the OSGi Comm unit y to tak e adv an tage of this w ork. This resear h rep ort is organized as follo ws. W orks related to vulnerabilit y harateri- zation and analysis are presen ted in Setion 2 . A denition of our Soft w are V ulnerabilit y 1 h ttp://jp.org/en/jsr/detail?id=277,h ttp://jp.org/ en/jsr/ det ail?id=291 INRIA OSGi V ulner abilities 9 P attern is giv en in Setion 3 : it haraterized the prop erties of an OSGi system that need to b e listed so as to supp ort vulnerabilit y analysis. The analysis of the vulnerabilit y atalog is then pro vided, and reommendation for building a hardened OSGi Platform is giv en in Setion 4. Complemen tary informations are to b e found in the App endies. In partiular, a pre- sen tation of the OSGi Platform is giv en in App endix A; the formal expression of the V ul- nerabilit y P attern w e dened is giv en in App endix C; the vulnerabilit y atalog in giv en in its in tegralit y in App endix D; and the sp ei implemen tations of atta ks based on the iden tied vulnerabilities are giv en in App endix E . RR n ° 6231 10 Parr end & F r énot 2 Charaterization of V ulnerabilities in Comp onen t-based Systems The lassiation of the seurit y - and vulnerabilit y - prop erties of systems is neessary to omprehend their w eaknesses and to mak e them more robust. W e presen t here the eort that ha v e b een done to establish a preise kno wledge of what vulnerabilities are, ho w to analyse them, and ho w to tak e adv an tage from them to impro v e the omputing systems. First, the terms that are used to haraterize vulnerabilities are dened. Next, the dislosure me hanisms for soft w are a ws are presen ted. And V ulnerabilit y P atterns that supp ort vulnerabilit y analysis are giv en. 2.1 Denitions The lassiation of seurit y prop erties is based on the distintion b et w een atta k, vulner- abilit y , and a w. The related maliious ations an b e prev en ted b y the use of seurit y protetions, or oun termeasures. The denitions of these terms follo w. Seurit y: the onurren t existene of a) a v ailabilit y for authorized users only , b) onden- tialit y , and ) in tegrit y [ AJB00 ℄. A tta ks: ations that attempt to defeat the exp eted seurit y status of a system. Soft w are vulnerabilit y: an instane of an error in the sp eiation, dev elopmen t, or on- guration of soft w are su h that its exeution an violate the seurit y p oliy [ Krs98 ℄. Soft w are Fla w: a a w is a harateristi of a soft w are system that builds, when put to- gether with other a ws, a vulnerabilit y . The more generi term of WIFF (W eaknesses, Idiosynrasies, F aults, Fla ws) is also used [ MCJ05 ℄. Seurit y Protetion, or Mitigations, or Coun termeasures or A v oidane strategies: me h- anisms and te hniques that on trol the aess of exeuting programs to stored infor- mation [SS73 ℄ or to other programs. No w that the neessary terms are dened, dislosure me hanisms are presen ted. 2.2 F rom Databases to T op-V ulnerabilit y Lists V ulnerabilit y dislosure aims at pro viding users and designers informations that enable them to tra k the seurit y status of their systems. T w o main approa hes exist: rst, vulnerabili- ties of widespread appliations are published in Referene V ulnerabilit y Information (R VI) Databases so as to en tralize this information; seondly , these vulnerabilities are lassied aording to T op-V ulnerabilit y Lists, that supp ort a omprehensiv e views of p oten tial w eak- nesses. INRIA OSGi V ulner abilities 11 Referene V ulnerabilit y Information (R VI) Databases Catalogs, Lists and T ax- onomies are the fa v orite v etor for expressing the vulnerabilities that are iden tied in soft- w are systems. The approa h v aries aording to the target of the vulnerabilit y iden tiation w ork. Extensiv e databases are mean t to main tain up to date referenes on kno wn soft w are vulnerabilities, so as to fore the system v endor to pat h the error b efore ha k ers an exploit it. T axonomies are partiularly used in resear h w orks, whi h foster to impro v e the kno wl- edge relativ e to the vulnerabilities. Their goal is to dev elop to ols based on this taxonomies. The dra wba k of these systemati approa hes - atalog and taxonomies - is that they are not easy to remem b er, and are th us of limited usefulness for dev elop ers or o de auditor. Sev eral T op V ulnerabilit y Lists ha v e b een prop osed to solv e this problem, and pro vide the soft w are professionals with on v enien t pratial data. The main existing referenes are vulnerabilit y databases. They are also kno wn under the denomination of Rened V ulnerabilit y Information (R VI) soures. T w o main t yp es of R VI exists: the vulnerabilit y mailing lists, and the vulnerabilit y databases. The main mailing lists are the follo wing: Bugtraq, 1993 on w ards (see h ttp://msgs.seurep oin t.om/bugtraq/), V uln w at h, 2002 on w ards (see h ttp://www.vuln w at h.org/), F ull Dislosure, 2002 on w ards (see among others h ttp://selists.org/). The referene vulnerabilit y databases are the follo wing. They are mean t to publish and main tain referene lists of iden tied vulnerabilities. the CER T (Computer Emergeny Resp onse T eam) Database. It is based on the Com- mon Language for Seurit y Iniden ts [HL98 ℄ 2 . the CVE (Common V ulnerabilities and Exp osures) Database 3 . the CWE (Common W eaknesses En umeration) Database. It is b ounded with the CWE, and aims at tra king w eaknesses and a ws that ha v e not y et turned out to b e exploitable for atta k ers 4 . the CIA C (Computer Iniden t A dvisory Capabilit y) Database 5 . the OSVDB, Op en Soure V ulnerabilit y Database 6 . It is en tered at Op en Soure Pro duts. Complemen tary Rened V ulnerabilit y Informations Soures are the follo wing organiza- tions: SeuriT eam 7 , P a k et Storm Seurit y 8 , the F ren h Seurit y Iniden t Resp onse T eam 9 , ISS X-F ore 10 , Seunia, and Seurit yF o us. 2 h ttp://www.ert.org/ 3 h ttp://v e.mitre.org/ 4 h ttp://w e.mitre.org/index.h tml 5 h ttp://www.ia.org/ia/index.h tml 6 h ttp://osvdb.org/ 7 h ttp://www.seuriteam.om/ 8 h ttp://pa k etstormseurit y .nl/ 9 h ttp://www.frsirt.om/ 10 h ttp://xfore.iss.net/xfore/alerts RR n ° 6231 12 Parr end & F r énot The limitations of the R VIs is that they follo w no stable p oliy , whi h mak es omparison b et w een soures and b et w een the item of a giv en soures diult [ Chr06 ℄. T op-V ulnerabilit y Lists Sine atalogs are not that easy to remem b er, and therefore to put in to pratie, sev eral `T op N' lists ha v e b een dened. The motiv ation for su h lists is the reurren t dra wba ks of other approa hes: vulnerabilit y atalogs do not pro vide a useful o v erview of the iden tied vulnerabilities [Chr06 ℄. Therefore, an alternativ e approa h has b een dev elop ed: to publish lists of prev alen t atta k ategories. Their goal is to b e used as reminder for dev elop er or seurit y analysts [MG06 ℄, and to serv e as referene for soft w are pro dut haraterization, through in tegration in to seurit y-based o de assessmen t to ols [ MCJ05 ℄. The most imp ortan t of these vulnera- bilit y lists are presen ted. One lassiation of omputer seurit y In trusions is giv en b y Lindqvist [ LJ97 ℄ (see ap- p endix B.1). It on tains external and hardw are misuse, and sev eral soft w are misuse ases: b ypassing in tended on trol, ativ e and passiv e misuse of resoures, preparation for other misuse ases. The Plo v er lassiation 11 is an example of rationalization of V ulnerabilit y atalogs to supp ort analysis. It is based on the MITRE CVE Database, and on tains 300 sp ei en tries that reet 1400 vulnerabilities iden tied in the CVE database. Its goal is to suppress re- dundany from the original database, so as to enable sien ti analysis, e.g. using statistial approa hes [Chr05 ℄. The Nineteen Deadly Sins of soft w are systems are dened b y Mi hael Ho w ard, from Mirosoft [HL V05 ℄ (see app endix B.3 ). They desrib e the most ommon vulnerabilities that are to b e found in en terprise information systems. They onern W eb based systems, as w ell as the ar hiteture of the information systems and the te hnologies in v olv ed. The Op en W eb Appliation Seurit y Pro jet (O W ASP) main tains a TOP 10 of W eb Appliations vulnerabilities 12 (see the app endix B.4 ). It onerns input v alidation, data storage, as w ell as onguration and error managemen t. Another onsortium for W eb Ap- pliation seurit y enforemen t, the W ASC (W eb Appliation Seurit y Consortium), pro vides its o wn threat lassiation 13 .) A on v enien t vulnerabilit y list is pro vided b y Gary MGra w, through the Sev en King- doms of soft w are vulnerabilities [MG06 ℄ [TCM05 ℄. The n um b er 7 is hosen to b e easily remem b ered, and ea h en try is ompleted with Ph yla i.e. preise example of the broader ategories that are dened b y the Kingdoms. The kingdoms are the follo wing: Input V alida- tion and represen tation, API abuse, Seurit y F eatures, Time and state, error handling, o de qualit y , enapsulation + en vironmen t (see the app endix B.5). This lassiation is targeted at en terprise information systems. The publiation of newly diso v ered vulnerabilities and of T op-Lists helps the prati- tioner sta y informed of the atual seurit y risks of the system they use, but they pro vide 11 h ttp://v e.mitre.org/do s/plo v er/ 12 h ttp://www.o w asp.org/index.php/O W ASP_T op_T en_Pro jet 13 h ttp://www.w ebappse.org/pro jets/thre at/ INRIA OSGi V ulner abilities 13 little supp ort for systemati analysis. V ulnerabilit y P atterns m ust b e dened to formalize vulnerabilit y informations. 2.3 V ulnerabilit y P atterns The desriptiv e spirit of Design P attern [Ale77 ℄, [GHJV94 ℄, [MM97 ℄, is w ell suited for ap- pliation in the seurit y elds, where the question of organization and exploitation of the kno wledge is en tral to the protetion of systems - and not straigh tforw ard, if one judges from the v arious approa hes that are used. T w o t yp es of patterns are dened in the seurit y domain: A tta k P atterns, and V ulnerabilit y P atterns. A tta k P atterns represen t p oten tial atta ks against a system. They mo del the preon- ditions, pro ess and p ostonditions of the atta k. They an b e om bined with atta k trees, so as to automate the iden tiation of atta ks that are atually build from simpler atomi atta ks [MEL01℄. An extensiv e presen tation of the appliation of atta k pattern is giv en in the b o ok b y Markus S h uma her [S h03 ℄. The use of A tta k P atterns together with with soft w are ar hiteture desription to iden tify vulnerabilities is desrib ed b y Gegi k [GW05℄. The limitation of this approa h is that the atta ks m ust b e mo delized, but the system m ust also b e, whi h mak es this approa h impratial, and often not realisti based on the atual kno wledge that is a v ailable on systems. The V ulnerabilit y P atterns are used in the atalog of vulnerabilities. They often on tain a limited n um b er of information that are mean t to iden tify the vulnerabilit y , but also to not mak e it easily repro dueable without a reasonable amoun t of eort, to prev en t lazy ha k ers to exploit the vulnerabilit y databases as a soure of ready-to-exploit atta k referenes. W e list here the most wide-spread V ulnerabilit y P atterns, along with the attribute they on tain: Ro ky He kman pattern 14 : Name, t yp e, subt yp e, AKA, desription, more information; CER T (Computer Emergeny Resp onse T eam) pattern: name, date, soure, systems aeted, o v erview, desription, qualitativ e impat, solution, referenes; CVE 15 (Common V ulnerabilit y and Exp osures) pattern: name, desription, status, referene(s); CIA C 16 (US Departmen t of Energy) pattern: iden tier, name, problem desription, platform, damage, solution, vulnerabilit y assessmen t, referenes. These V ulnerabilit y P atterns are quite simple ones. They ha v e an informativ e goal, but do not in tend as other patterns do at supp orting the repro dution of the vulnerabilit y with a minim um of eort. This approa h mak es sense relativ e to their use on text - making users and administrators a w are of the existene of the a ws - but are not suien t to supp ort detailed analysis of the related vulnerabilities. 14 h ttp://www.ro kyh.net/ 15 h ttp://v e.mitre.org/ 16 h ttp://www.ia.org/ia/index.h tml RR n ° 6231 14 Parr end & F r énot So as to supp ort the automation of the seurit y pro ess, and to mak e vulnerabilit y analysis p ossible, it is neessary to put onstrain ts on the V ulnerabilit y P atterns. This is p erformed through the denition of taxonomies, whi h pro vide a ne grain desription of the prop erties of ea h vulnerabilit y . Ea h taxonom y should v erify the prop erties of a v alid taxonom y , as dened b y [Krs98 ℄ and [HL98 ℄. These prop erties are the follo wing: ob jetivit y , determinism, rep eatabilit y , sp eiit y (disjuntion), observ abilit y . The seminal w ork on vulnerabilit y taxonom y has b een p erformed b y Abb ott [A CD + 75 ℄ and Bisb ey [BH78 ℄. The a ws are lassied b y t yp e of error (su h as inomplete P arameter v alidation). This approa h turns out not to supp ort deterministi deisions, sine one a w an often b e lassied in sev eral ategories aording to the on text. T o solv e this prob- lem, Landw ehr [LBMC94 ℄ denes three fundamen tal t yp es of taxonomies for vulnerabilities: lassiation b y genesis of the vulnerabilit y , b y time of in tro dution, and b y lo ation (or soure). Moreo v er, vulnerabilities should b e onsidered aording to sp ei onstrain ts or as- sumptions, sine there existene most of the time dep ends on the prop erties of the en vi- ronmen t [Krs98 ℄. This assumptions mak e it neessary to rely on a w ell dened system mo del. F or generi omputing systems, su h a mo del is prop osed b y the Pro ess/Ob jet Mo del [BA T06 ℄. This requiremen t mak es it imp ossible for generi purp ose databases to rely on sp ei taxonomies. F or instane, the Common V ulnerabilit y En umeration [BCHM99 ℄ pro jet has giv en up the use of taxonomies. An expliit system mo del m ust th us b e a v ailable to supp ort vulnerabilit y taxonomies, and therefore the p ossibilit y of seurit y automation or analysis. Extensiv e disussions of vulnerabilit y taxonomies an b e found in [ Krs98 ℄, [SH05 ℄, [WKP05 ℄. The CWE (Common W eaknesses En umeration) Pro jet main tains a w eb page with addi- tional referenes, and a graphial represen tation of ea h taxonom y 17 . In this setion, fundamen tal onepts of vulnerabilit y analysis ha v e b een in tro dued: denitions ha v e b een giv en to pro vide a rm basis to w ork on, and the existing w orks in the domain of vulnerabilit y analysis ha v e b een presen ted. This w ork onerns V ulnerabilit y prop erties, whi h are often presen ted under the form of a taxonom y , and V ulnerabilit y P atterns, whi h gather the information onerning sev eral prop erties in a formalized w a y . Existing Prop erties and P atterns are not suien t to desrib e the vulnerabilities of an OSGi Platform, for sev eral reason: rst, they do not tak e expliitly in to aoun t the presene of a virtual ma hine; seondly , they are usually targeted at monolithi systems, whereas OSGi pro vides a high degree of mo dularit y through the bundles and the dep endeny resolution. W e therefore rst need to dene the prop erties of in terest for an OSGi-based System, as w ell as a suitable P attern, b efore the atual vulnerabilities of the platform an b e analyzed. 17 h ttp://w e.mitre.org/ab out/soures.h tml INRIA OSGi V ulner abilities 15 3 The Semi-formal Soft w are V ulnerabilit y P attern The goal of this study is to iden tify and to haraterize the vulnerabilities of the OSGi platform, whi h is in tro dued in the App endix A. This haraterization is to b e done with a set of sp ei prop erties, and organized in a semi-formal V ulnerabilit y P attern. Existing referenes are not suien t to desrib e the vulnerabilities of the OSGi Platform: neither virtualization nor omp onen tization, that are pro vided in the on text of OSGi, are tak en in to aoun t. Moreo v er, w e w an t our V ulnerabilit y P attern to pro vide us with enough information to pat h them or build suitable seurit y me hanism, whi h is not the ase in the literature. The prop erties of in terested that are tra k ed are tak en from existing soft w are seurit y taxonomies. W e add a new en try , the `Consequene Desription', that aims at ev aluating the seriousness of the vulnerabilit y . The P attern is made up of four parts: a Referene, for rapid onsultation, a Desription part, for additional and p oten tially more v erb ose information, an Implemen tation part, to iden tify the test onditions of the vulnerabilit y , a Protetion part, b eause the ob jetiv e of iden tifying the vulnerabilit y is to b e able to pat h them. Our exp erimen tal pro ess is the follo wing. First, kno wn a ws that an aet Ja v a o de [Blo01 , BG05 ℄ ha v e b een iden tied, and their impat on an OSGi Platform has b een tested. Seondly , p oten tially dangerous me hanisms, su h as nativ e o de exeution, ha v e b een se- leted from related pro jets. The third soure of information in our quest for vulnerabilities of OSGi bundles is the sp eiations of the elemen ts that mak e up an OSGi platform: the Ja v a Virtual Ma hine, and the OSGi platform itself. Sev eral Ja v a API let the o de aess to the Virtual Ma hine itself ( e.g. the System or Run time API), or are kno wn to ause the exeution hang (Threads). The b eha vior of the OSGi platform in the presene of mal- formed or maliious bundles is not sp eied. W e therefore review the v arious en tities that mak e up this exeution en vironmen t: the format of the bundle meta-data (Manifest File), the registration of servies, the bundle managemen t and fragmen t funtionalities. F or ea h p oten tial vulnerabilit y , w e implemen ted a maliious bundle. This mak es p ossible to v alidate the h yp othesis, and to iden tify the onditions for ea h atta k. When protetions against these atta ks exist, they are v alidated through exp erimen t. The atta k bundles are tested in the four main Op en Soure implemen tations of OSGi, F elix, Knopersh, and Equino x, and Conierge. W e fo us on the b eha vior of the ore of the onsidered exeution en vironmen t, whi h omprises the JVM and the OSGi platform. W e therefore do not onsider the manage- men t to ols for Ja v a systems, su h as JMX, or JVM TI. JMX enables to manage a JVM though o de exeuted inside it. JVM TI is a C library that mak es full on trol o v er the JVM p ossible through a third part y program, whi h an then aess the a v ailable threads, pro vides an extensiv e debugging of the platform, and on trol the JVM state. Seondly , the OSGi bundles omm uniate through servies they publish inside the framew ork. A - ording to the t yp e of data they handle, these servies an b e sub jet to sp ei vul- RR n ° 6231 16 Parr end & F r énot nerabilities. A list of Servie-Lev el vulnerabilities is giv en b y the Findbugs referene list (h ttp://ndbugs.soureforge.net/bugDesriptions.h tml, `Maliious Co de V ulnerabilit y' at- egory). Lastly , the OSGi sp eiation denes a bun h of standard servies (HTTP , devie, servie wiring, UPnP servies, et.). W e do not onsider these servies either. A V ulnerabilit y P attern is dened to normalize the information gathered relativ e to ea h vulnerabilit y (see setion 3.1 ). The taxonomies for ea h prop erties of in terest are giv en and explained in setion 3.2 . An example is giv en in setion 3.3 to highligh t the information pro vided b y the V ulnerabilit y P attern. 3.1 The Struture of the Semi-formal V ulnerabilit y P attern The harateristis of in terest to desrib e the vulnerabilities of a soft w are system need to b e gathered in a oheren t set that on tains all the informations that are useful to understand and prev en t these vulnerabilities. W e therefore dene a `Semi-formal V ulnerabilit y P attern' that is similar to the `A tta k P atterns' [MEL01 ℄. On the opp osite of this latter, the V ulnerabilit y P attern is en tered around the iden tied vulnerabilit y , so as to mak e their orretion easy . Existing vulnerabilit y patterns, whi h are presen ted in the setion 2 , an not b e reused as-is, sine they pro vide not enough details for our purp ose. The V ulnerabilit y P attern is omp ound of follo wing informations. Its formal expression is giv en in the Ap endix C. V ulnerabilit y Referene V ulnerabilit y Name: The desriptiv e name of the vulnerabilit y Iden tier: a unique iden tier for ea h vulnerabilit y . In our atalog, the iden tier is built out of the atalog iden tier, the abbreviation of the soure en tit y , and the n um b er ID of the vulnerabilit y in the atalog for the related soure en tit y . Origin: The bibliographi referene of the vulnerabilit y . Lo ation of Exploit Co de: Where the o de that p erforms the atta k is lo ated in the maliious Bundle (see Figure 1). Soure: the en tit y in the exeution platform that is the soure of the vulnerabilit y , along with the exat a w or funtionalit y ausing it. T arget: the target of the atta k that an b e p erformed through the vulnerabilit y , i.e. the vitim of the atta k (see gure 3 ). Consequene T yp e: the t yp e of onsequene of an atta k exploiting this vulnerabilit y (see gure 4 ). Time of In tro dution: the Life Cyle phase where the vulnerabilit y is in tro dued. Corretiv e measures an b e tak en at this time. Seurit y measures an b e tak en in subsequen t phases so as to prev en t the exploitation of the vulnerabilit y (see gure 5 ). Time of Exploit: the life-yle phase where the vulnerabilit y an b e exploited (see gure 6). This is the last phase where seurit y measures an b e undertak en. INRIA OSGi V ulner abilities 17 V ulnerabilit y Desription Desription: a desription of the atta k Preonditions: prop erties if the systems that m ust b e true so as to mak e the ex- ploitation of the vulnerabilit y p ossible. A tta k Pro ess: desription of the pro ess of exploitation of the vulnerabilit y . Consequene Desription: more information relativ e to the onsequenes of an atta k using this vulnerabilit y . See also: other vulnerabilities based on similar atta k soures. V ulnerabilit y Implemen tation Co de Referene: the referene of the implemen tation o de ( i.e. the name of the maliious OSGi bundle.) Conerned OSGi Prole: the OSGi prole(s) where this vulnerabilit y exists. Date: the date of the reation of the V ulnerabilit y P attern (for referene) T est Co v erage: the p eren tage of the kno wn implemen tations of the vulnerabilit y that ha v e b een implemen ted in a test bundle. The iden tied implemen tations for the main atta ks are giv en in the App endix E . T ested on: the OSGi Platform Implemen tations for whi h this vulnerabilit y ha v e b een tested. Protetion Existing me hanisms: a v ailable protetions to prev en t this vulnerabilit y from b eing exploited. Life-yle enforemen t p oin t: the life-yle phase where the protetion me hanisms m ust b e enfored. P oten tial me hanisms: protetions that ould b e dev elop ed so as to prev en t this vulnerabilit y from b eing exploited. A tta k Prev en tion: the measures that an b e tak en to prev en t an atta k based on this vulnerabilit y to b e fullled, ev en if it is laun hed. Reation: the orretion ation that an b e tak en to reo v er from a suessful atta k. 3.2 V ulnerabilit y T axonomies for OSGi-based Systems Before analyzing ea h vulnerabilit y , it is neessary to iden tify the prop erties of in terest that need to b e haraterized. Moreo v er, the p oten tial v alues for ea h prop ert y should b e iden tied, and build a prop erly dened taxonom y . F ollo wing asp ets need to b e onsidered: the referene of the atta k bundle implemen tation that tak es adv an tage of the vulnerabilit y , the life-yle harateristis of the vulnerabilit y , so as to kno w when the vulnerabilit y is in tro dued, and when it is exploited, and the existing and p oten tial seurit y me hanisms. RR n ° 6231 18 Parr end & F r énot The prop erties w e seleted to b e inluded in the vulnerabilit y pattern are th us the fol- lo wing: the referene of the vulnerabilit y pattern (to iden tify the o de, and the ondition of the exp erimen ts), the lo ation of the maliious o de, the soure of the a w(s) in the system (and the sp ei a w(s) and/or the dangerous funtionalit y(ies)), the target of atta ks based on the vulnerabilit y , the onsequenes of the related atta k, and the time of in tro dution of the vulnerabilit y , the time of exploitation of the vulnerabilit y , the exiting protetions against this atta k, the p oten tial protetions against this atta k. The goal of these prop erties is to mak e the information explanatory , preditiv e [ Krs98 ℄, but also useful [WKP05 ℄. Explanatory , b eause the vulnerabilit y should b e in tuitiv ely un- dersto o d b y the p ersons who onsult the vulnerabilit y atalog w e prop ose, ev en with little previous kno wledge of the OSGi Platform. Preditiv e, b eause the p oten tial v alues of ea h harateristi should o v er the whole eld of p ossible options, or to explain wh y some are not onerned. Useful, b eause the ob jetiv e of a vulnerabilit y atalog is to highligh t the seu- rit y requiremen ts of the platform under study . The onlusions of the analysis is presen ted in the setion 4 . F or ea h prop ert y , a taxonom y is dened, that on tains the v alues this prop ert y an tak e. T w o approa hes are used to dene this taxonom y . It is either dened a priori, i.e. b efore the atalog is ompleted, or a p osteriori, with data that are iden tied during the exp erimen ts. W e no w presen t the taxonom y for ea h of the prop erties of in terest. The rst t w o prop erties of in terest are the Lo ation of the maliious o de and the soure of the vulnerabilit y . The lo ation onerns the plae in the atta k bundle where the atta k `pa yload' is lo ated. The soure indiates whi h en tit y in the exeution en vironmen t is resp onsible for the vulnerabilit y , i.e. for the system b eha vior that op ens the do or to the atta k. Figure 1 sho ws the p oten tial lo ations of maliious o de inside a malev olen t bundle. The maliious o de an b e lo ated in the ar hiv e struture (su h as ar hiv e o v ersize, or a de- ompression b om b), in the manifest (su h as dupliate imp orts, whi h mak e the installation ab ord), or in the bundle A tiv ator (is this latter is hanging). It an also b e lo ated in the appliativ e o de of the bundle, b eing nativ e o de, Ja v a o de, the Ja v a APIs, or the OSGi API. The maliious o de an also b e lo ated in fragmen t, whi h are sp ei bundle t yp es. The atual soures of vulnerabilities mat h the dieren t La y ers that are dened b y the OSGi Sp eiation, along with the Bundle Rep ository lien t whi h enables installation from remote bundles, and v arious o de prop erties su h as Servies, the JVM APIs, or the algo- rithmi prop erties of the programs. They are sho wn in Figure 2 . Figure 3 sho ws the p oten tial targets of atta ks against an OSGi Platform. These targets an b e either the whole platform, or sp ei OSGi Elemen ts. A tta ks against the whole INRIA OSGi V ulner abilities 19 Figure 1: P oten tial Lo ations of maliious Co de in a Bundle Figure 2: V ulnerabilit y Soures in an OSGi-based System Platform an for instane result in omplete una v ailabilit y if this latter. The vitim OSGi Elemen ts an b e the Platform Managemen t Utilit y , whi h mak es it p ossible for the user to on trol the life-yle of bundles (the ativ ator an hang), the bundle itself (whi h an b e started or stopp ed), Servies (whi h an suer from yles) or pa k ages (for instane, stati data that is b y default not aessible ould b e mo died through Bundle F ragmen ts). Figure 4 sho ws the p oten tial onsequenes of an atta k against an OSGi Platform. Three t yp es of onsequenes are iden tied: Una v ailabilit y , P erformane Breakdo wn, and Undue A ess. Una v ailabilit y an b e ause b y stopping the platform; P erformane Breakdo wn an b e the result of an innite lo op; and Undue A ess an b e p erformed through F ragmen ts or through Reetion o v er Servies. Figure 5 sho ws the atual in tro dution time of the vulnerabilities. The in tro dution time an b e as early as the design and implemen tation of the platform (when the a w originates in the platform), or b e the dev elopmen t time, the generation of the Meta-data of the bundles, the digital signature of the bundle, the installation, or ev en the publiation and resolution of servies. RR n ° 6231 20 Parr end & F r énot Figure 3: P oten tial T argets of A tta ks against an OSGi Platform Figure 4: Consequenes of the V ulnerabilities of the OSGi Platform Figure 5: In tro dution Time for the iden tied a ws The taxonom y for Time of Exploit of the vulnerabilit y is represen ted in gure 6. This time of exploit onerns neessarily the Life-Cyle steps inside the exeution platform. They an therefore b e: the do wnload, installation, Bundle start (if the vulnerabilit y is presen t in the bundle ativ ator) or exeution time (either through servie all, or through use of exp orted pa k ages). The existing protetions against atta ks based on the iden tied vulnerabilit y are the follo wing: only run time exeution p ermissions, either at the JVM lev el or at the OSGi Platform lev el, are urren tly a v ailable to protet an OSGi Platform from ha k ers. W e INRIA OSGi V ulner abilities 21 Figure 6: Exploit Time for the iden tied Fla ws prop ose our o wn implemen tation of the OSGi Bundle Digital Signature v alidation pro ess, whi h is part of the OSGi Seurit y La y er. Ja v a P ermissions, OSGi P ermissions (in partiular A dminP ermission), SF elix implemen tation of the Bundle Digital Signature V alidation. The prop erties of in terest that haraterize a vulnerabilit y ha v e b een presen ted. Next paragraph giv es the full V ulnerabilit y P attern that is based on these prop erties, and adapted for b etter omprehension. 3.3 A V ulnerabilit y Example: `Managemen t Utilit y F reezing - In- nite Lo op' So as to highligh t the role of the dened V ulnerabilit y P attern, w e no w presen t an example of vulnerabilit y; the `Managemen t Utilit y F reezing - Innite Lo op' vulnerabilit y . The whole vulnerabilit y atalog is giv en in the App endix D . This vulnerabilit y onsists in the presene of an innite Lo op in the ativ ator of a giv en Bundle, whi h auses the platform managemen t to ol (often an OSGi shell) to freeze. The presene of innite lo ops as a vulnerabilit y is giv en b y Blo o h is `Ja v a Puzzlers - T raps, Pitfalls and Corner Cases', puzzlers 26 to 33 [BG05 ℄. The mat hing P attern is rst giv en, and then explained. The V ulnerabilit y P attern V ulnerabilit y Referene V ulnerabilit y Name: Managemen t Utilit y F reezing - Innite Lo op Extends: Innite Lo op in Metho d Call Iden tier: Mb.osgi.4 Origin: Ares resear h pro jet `maliious-bundle' Lo ation of Exploit Co de: Bundle A tiv ator Soure: OSGi Platform - Life-Cyle La y er (No safe Bundle Start) RR n ° 6231 22 Parr end & F r énot T arget: OSGi Elemen t - Platform Managemen t Utilit y Consequene T yp e: P erformane Breakdo wn; Una v ailabilit y In tro dution Time: Dev elopmen t Exploit Time: Bundle Start V ulnerabilit y Desription Desription: An innite lo op is exeuted in the Bundle A tiv ator Preonditions: - A tta k Pro ess: An innite lo op is exeuted in the Bundle A tiv ator Consequene Desription: Blo k the OSGi Managemen t en tit y (the felix, equino x or knopersh shell; when laun hed in the KF graphial in terfae, the shell remain a v ailable but the GUI is frozen). Beause of the innite lo op, most CPU resoure is onsumed See Also: CPU Load Injetion, Innite Lo op in Metho d Call, Stand Alone Innite Lo op, Hanging Thread Protetion Existing Me hanisms: - Enforemen t P oin t: - P oten tial Me hanisms: Co de stati Analysis ; Resoure Con trol and Isolation - CPU ; OSGi Platform Mo diation - Bundle Startup Pro ess (laun h the bundle a- tiv ator in a separate thread to prev en t startup hanging) A tta k Prev en tion: - Reation: - V ulnerabilit y Implemen tation Co de Referene: F r.inria.ares.innitelo opinmetho dall-0.1.jar OSGi Prole: J2SE-1.5 Date: 2006-08-24 T est Co v erage: 10% Kno wn V ulnerable Platforms: F elix; Equino x; Knopersh; Conierge Kno wn Robust Platforms: SF elix Details of the V ulnerabilit y P attern The `Managemen t Utilit y F reezing - Innite Lo op' is referened under the iden tier `m b.osgi.4', whi h means `maliious bundle ata- log - originates in the OSGi Platform itself - n um b er 4. This vulnerabilit y is an extension of the `Innite Lo op in Metho d Call' one. It has b een iden tied in the frame of the resear h pro jet `Maliious Bundles' of the INRIA Ares T eam.. The lo ation of the maliious o de that p erforms the atta k is the Bundle A tiv ator. Its soure is the Life-Cyle La y er of the OSGi Platform, whi h is not robust against su h a INRIA OSGi V ulner abilities 23 vulnerabilit y . Its target is the Platform Managemen t Utilit y , whi h an b e either the OSGi shell or a graphial in terfae su h as the Knopersh GUI. This vulnerabilit y has a t w o-fold onsequene: the metho d do es not return, so that the aller also freezes; and the innite lo op onsumes most of the a v ailable CPU, whi h auses the existing servies to suer from a serious p erformane breakdo wn. This vulnerabilit y is in tro dued during dev elopmen t, and exploited at bundle start time. Related V ulnerabilit y P atterns are `Managemen t Utilit y F reezing - Hanging Thread', that also targets the Managemen t Utilit y , `Innite Lo op in Metho d Call', `CPU Load Injetion', `Stand-alone Innite Lo op' that ha v e the same onsequene of p erformane breakdo wn, and the `Hanging Thread', that also freezes the alling thread. No sp ei protetion urren tly exists. T w o p oten tial solutions ha v e b een iden tied. The rst onsists in laun hing ev ery Bundle A tiv ator in a new Thread, so as not to blo k the aller if the ativ ator hangs. The seond solution w ould enable to prev en t in v alid algorithms to b e exeuted: stati o de analysis te hniques su h as Pro of Carrying Co de or similar approa hes [Ne97 ℄ an pro vide formal pro v es of o de w ellformedness. Its referene implemen tation is a v ailable in the OSGi bundle named `fr.inria.ares.innite- lo opinmetho dall-0.1.jar', referened the 2006-08-24. The test o v erage is 10 %, sine ten t yp es of innite lo ops ha v e b een iden tied (see the app endix E), and only one has b een implemen ted. The test bundle ha v e b een tested on the follo wing implemen tations of the OSGi platform: F elix, Equino x, Knopersh, and Conierge. The only robust Platform is our SF elix Platform, whi h is a protot yp e mean t to enhane to urren t F elix implemen tation. This example highligh ts the informations that an b e found in ea h V ulnerabilit y P at- terns. The information related to the other vulnerabilities is giv en under the form of pat- terns, to pro vide a qui k o v erview of the harateristis, and to mak e analysis p ossible. The atalog of the vulnerabilit y patterns is presen ted in the setion D . The setion 4 presen ts the analysis of this atalog, and the seurit y requiremen ts an an b e dedued from it. RR n ° 6231 24 Parr end & F r énot 4 Requiremen ts for seure OSGi Systems The analysis of the V ulnerabilit y P atterns w e presen ted in the atalog pro vides guidelines for programming seure OSGi-based systems. The ob jetiv e here is t w o fold. First, the w eaknesses of the OSGi Platform are to b e iden tied, so as to pro vide a framew ork for the ev olution of its sp eiation. Seondly , these w eaknesses are to b e made a v ailable in a dev elop er-omplian t w a y , so that programmers an refer to them to v erify that their system do not op en the w a y to kno wn atta ks: the Seven De ad ly Sins of the OSGi R4 Platform are therefore dened. These guidelines are - o ourse - based on the atalog at the momen t of its publiation, and an therefore ev olv e in the future, when new vulnerabilities will b e diso v ered, or when new part of OSGi systems will b e onsidered. A tually , the managemen t to ols su h as JVMTI, and the OSGi standard servies are not onsidered, and an b e the soure for new vulnerabilities. This setion is organized as follo ws. Subsetion 4.1 presen ts the analysis of the atalog through statistis related to the signian t prop erties of the vulnerabilities. Subsetion 4.2 presen ts the Seurit y Requiremen ts for a hardened OSGi Platform. Lastly , Subsetion 4.3 giv es a series of reommendation for the OSGi Sp eiation, in order to mak e the platform more robust. 4.1 Catalog Analysis The analysis of the iden tied V ulnerabilit y P atterns pro vides quan titativ e data relativ e to these vulnerabilities. This subsetion pro vides a summary of the signian t prop erties that haraterize a vulnerabilit y in an OSGi Exeution En vironmen t. W e use the term OSGi Exeution En vironmen t to desrib e an exeution platform running OSGi on top of a JVM. This denomination highligh ts the fat that not all vulnerabilities are b ound to the OSGi sp eiation itself, but an also originate in other parts of the system. First, quan titativ e results relativ e to the vulnerabilit y soures, funtions, a ws, as w ell as the iden tied atta k targets are giv en. Next, a summary of the vulnerabilities for ea h tested OSGi Platform implemen tation is presen ted. Figure 7 sho ws the soure en tit y of the iden tied vulnerabilities. The most imp ortan t soure is the Ja v a API, whi h auses the bigger part of the vulnerabilities. Next, the Appliation Co de prop erties, the OSGi Life-Cyle La y er and the OSGi Mo dule La y er also generate an imp ortan t n um b er of vulnerabilities. Next omes the Ja v a Run time API, whi h is partiularly sensitiv e, and the OSGi Servie La y er. The Op erating System and the Bundle Rep ository Clien t m ust also b e onsidered as p oten tial soure of vulnerabilities, ev en though their impat is more marginal. Figure 8 sho ws the ardinalit y of the iden tied dangerous funtions. First ome the OSGi Bundle F ailit y , and the Ja v a APIs Reetion, ClassLoader, and Thread. Next, the bundle managemen t, the Ja v a File API and the opp ortunit y of exeuting nativ e o de op en the w a y to abuses. Sev eral other funtions pro v e to b e dangerous: the Run time.halt() and INRIA OSGi V ulner abilities 25 0 1 2 3 4 5 6 7 8 9 JVM - APIs Application Code OSGi Platform - Life-Cycle Layer OSGi Platform - Module Layer JVM - Runtime API OSGi Platform - Service Layer OS OSGi Platform - Bundle Repository Client Source Entity Figure 7: En tities that are Soure of the vulnerabilities the System.exit() metho ds, the la k of on trol on metho d parameters, and the kill utilit y at the OS lev el whi h an b e used to sh ut the platform do wn. 0 0.5 1 1.5 2 2.5 3 3.5 4 Bundle Fragments ClassLoader API Thread API Reflection API Native Code Execution File API Bundle Management Kill utility Value of Method Parameters System.exit method Runtime.halt method Source Function Figure 8: F untions that pro v e to b e dangerous in the on text of an OSGi Platform RR n ° 6231 26 Parr end & F r énot Figure 9 sho ws the ardinalit y of the a ws of a Ja v a-based exeution en vironmen t with the OSGi Platform. The most imp ortan t a w is the la k of algorithm safet y in the Ja v a language. Next ome sev eral prop erties of the OSGi platforms, su h as the la k of safe-default bundle meta-data handling during the dep endeny resolution phase, the la k of on trol on the servie registration pro ess, and the la k of robustness of the bundle start me hanism, whi h hea vily relies on the v alidit y of the bundle ativ ators. Sev eral other puntual a ws ha v e b een iden tied: data of uninstalled bundles is often k ept on the disk spae, b eing not aessible, no dep endeny on trol is p erformed at the servie lev el, the pro ess of Digital Signature v alidation is sometimes not omplian t with the OSGi R4 Sp eiations, and the bundle ar hiv e is nev er he k ed for size or v alidit y , whi h pro vides no protetion against deompression b om bs or large les, in partiular in resoure-onstrain t en vironmen ts. 0 1 2 3 4 5 6 No Algorithm Safety - Java Bundle Meta-data Handling - No Safe-Default Uncontrolled Service Registration No safe Bundle Start No Removal of Uninstalled Bundle Data Architecture of the Application - No Validation of Service Depe Non OSGi R4-compliant Digital Signature Validation in the JVM No Verification of Bundle Archive Validity No Algorithm Safety - Native Code No Check of Size of Loaded Bundles Source Flaw Figure 9: Fla ws in an OSGi Exeution En vironmen t Figure 10 sho ws the target of atta ks against an OSGi exeution en vironmen t. The en tit y that is the rst target of the iden tied atta ks is the platform. This means that most of the iden tied atta k an easily prev en t all servies on the platform the b e exeuted in a satisfatorily manner. OSGi sp ei elemen ts, su h as pa k ages, Bundles or servies are other frequen t targets. Lastly , the Platform Managemen t Utilit y an also b e targeted, whi h w ould not prev en t the platform to pro vide existing servies, but w ould prev en t an y ev olution of these servies - as w ell as the remo v al of the maliious bundle. The table 1 sho ws a summary of the prop erties of the OSGi Platform implemen ta- tions under study . The onsidered platforms are the main Op en Soure Pro jets: F elix 18 , 18 h ttp://wiki.apa he.org/FELIX/index.h tml INRIA OSGi V ulner abilities 27 0 2 4 6 8 10 12 14 Platform OSGi Element - Package OSGi Element - Bundle OSGi Element - Service OSGi Element - Platform Management Utility Attack Target Figure 10: T argets of A tta ks against an OSGi Exeution en vironmen t Knopersh 19 , Elipse Equino x 20 , and Conierge 21 . F or omparison, w e also pro vide the data related to SF elix, whi h is the Hardened OSGi Platform w e dev elop. It is based on the F elix Platform 0.8.0. Most Op en Soure OSGi Platforms are v ery fragile regarding the set of vulnerabilit y w e iden tied. Equino x pro v es to ha v e sligh tly b etter results than the other ones. SF elix urren tly do es not in tend to pro vide protetions against all the iden tied vulnerabilities, but only to pro vide a rst enhanemen t of urren t implemen tations. The result of our analysis ha v e b een presen ted for the prop erties that haraterize vulner- abilities of an OSGi Platform: Lo ation of the maliious pa yload in Bundles, V ulnerabilit y Soure, Fla ws and dangerous F untions, as w ell as the iden tied A tta k T argets. It is no w p ossible to iden tify the requiremen t for a Hardened OSGi Platform. 4.2 Requiremen ts for a Hardened OSGi Platform The requiremen t for a Hardened OSGi Platform an b e dedued from the atual and p oten- tial seurit y me hanisms. The ob jetiv e is to highligh t the seurit y me hanisms that need to b e b etter exploited (for the existing ones), and the ones that need to b e dev elop ed (for the p oten tial ones). Priorities an b e set aording to the t yp e of target and onsequenes of the 19 h ttp://www.knopersh.org/ 20 h ttp://www.elipse.org/equino x/ 21 h ttp://onierge.soureforge.net/ RR n ° 6231 28 Parr end & F r énot V ulnerabilit y F elix Knopersh Equino x Conierge SF elix An y with Ja v a P er- missions Exp onen tial Ob jet Creation V V V V V - Exessiv e Size of Manifest File V V R V R - A ess Proteted P a k age through split P a k ages V V V - V R F reezing Numerous Servie Regis- tration - - - V - - Big File Creator V V V V V R Managemen t Utilit y F reezing - Thread Hanging V V V V R - Erroneous v alues of Manifest at- tributes V V V V V - In v alid Digital Signature V alida- tion V - - - R - Cyle Bet w een Servies V V V V V - Hanging Thread V V V V V - Managemen t Utilit y F reezing - In- nite Lo op V V V V R - F ragmen t Substitution V V V - V R Numerous Servie Registration V V V V R - Sleeping Bundle V V V V V - Co de Observ er V V V - V R Reursiv e Thread Creation V V V V V - Dupliate P a k age Imp ort V V R R R - Memory Load Injetion V V V V V - Innite Lo op in Metho d Call V V V V V - Run time.halt V V V V V R CPU Load Injetion V V V V V R System.exit V V V V V R Run time.exe.kill V V V V V R Comp onen t Data Mo dier V V V V V R Stand Alone Innite Lo op V V V V V - Exeute Hidden Classes V V V - V R Pirat Bundle Manager V V V V V R Big Comp onen t Installer - - - - R - Laun h a Hidden Bundle V V V V V R Zom bie Data V R R V R - Deompression Bom b - - - - - - Hidden Metho d Laun her V V V V V R V: Platform is V ulnerable; R: Platform is Robust; - : not relev an t T able 1: V ulnerabilities for the main Op en Soure OSGi Platforms INRIA OSGi V ulner abilities 29 atta ks: it is in an y ase w orth prev en ting an atta k that mak es the whole platform una v ail- able, but it ma y b e less imp ortan t to prev en t atta ks that pro v ok e only the una v ailabilit y of the maliious bundle itself. Figure 11 sho ws the ardinalit y of the atual protetion me hanisms. Most of the vul- nerabilities an b e prev en ted b y Ja v a P ermissions. Ho w ev er, an imp ortan t n um b er of them urren tly ha v e no asso iated protetions. The OSGi A dmin P ermission and the SF elix im- plemen tation of the OSGi Seurit y La y er (Digital Signature V alidation part) aoun t ea h for one vulnerabilit y . 0 2 4 6 8 10 12 14 16 Java Permissions - OSGi AdminPermission SFelix OSGi Security Layer Existing Security Mechanisms Figure 11: A tual Protetion Me hanisms The Figure 12 sho ws the p oten tial protetions iden tied to protet an OSGi Platform against the onsidered atta ks. This p oten tial protetions are o ourse only set as h yp othe- ses: as long as no implemen tation is a v ailable, it is not p ossible to assert that no sp eial ase or hard-to-tra k false p ositiv es and negativ es dot not o ur if the prop ose te hnique is used. The most promising approa h seems to b e stati o de analysis, that w ould help tra k b oth dangerous alls without hea vyw eigh t p ermissions and unsafe algorithms. The OSGi Platform itself w ould tak e b enet of sev eral minor mo diations: b etter handling of ill-formed meta-data, safe startup pro ess for bundles, b etter on trol of servie publiation. Some of these me hanisms ha v e b een exp eriened in the SF elix Platform, and pro v e to b e easy to implemen t. Also, resoure on trol and isolation me hanisms (CPU, Memory , disk spae) w ould mak e the supp ort of m ulti-pro esses safer. The p oten tial protetion me hanism represen t the elemen t that are w orth an imp or- tan t dev elopmen t eort. Ho w ev er, they do not sho w the relativ e priorit y of the seurit y me hanisms. Urgen t seurit y me hanisms are the ones that prev en t atta ks with serious onsequenes - for instane platform una v ailabilit y - to b e p erformed, or the ones that are RR n ° 6231 30 Parr end & F r énot 0 2 4 6 8 10 12 Code static Analysis - Resource Control and Isolation - CPU OSGi Platform Modification - Bundle Startup Process OSGi Platform Modification - Installation Meta-data Handling Resource Control and Isolation - Memory Miscellaneous OSGi Platform Modification - Service Publication Bundle size control before download OSGi Platform Modification - Bundle Uninstall Process Access Control - FileSystem Service-level dependency validation Resource Control and Isolation - Disk Space Potential Security Mechanisms Figure 12: Cardinalit y for ea h p oten tial Seurit y Me hanisms for the OSGi platform required to mak e the use of existing me hanisms eien t and on v enien t for dev elop ers. Consequen tly , the priorit y is to b e set on follo wing protetion me hanisms: Protetion of A tta ks targeted at the whole Platform (see Figure 10 ), and that impair the a v ailabilit y or the p erformane of all exeuted bundles sim ultaneously , Protetion against silen t atta ks: lassial aess on trol me hanisms are required inside the OSGi Platform, to supp ort m utually un trustful bundles, to ols are required to tak e adv an tages of existing me hanisms: for instane, P ermission are supp orted, but urren tly extremely unon v enien t to set and manage. W e presen ted the requiremen t for dev eloping a Hardened OSGi Platform b y iden tifying the b est promising p oten tial seurit y me hanisms as w ell as the most urgen t to ols for pre- v en ting serious atta ks, or taking adv an tage of existing protetions. Ho w ev er, dev elop ers require ready-to-use guidelines to tak e adv an tage of the kno wledge w e gathered in these study: in the absene of a v ailable to ols, they ha v e to tak e are b y themselv es that the o de they pro due is safe from the kno wn vulnerabilities. 4.3 Reommendations for a Hardened Exeution En vironmen t Hardening the Sp eiations of the OSGi Platform Based on the iden tied vulner- abilit y of the OSGi Platform, w e prop ose follo wing reommendation for an enhaned OSGi INRIA OSGi V ulner abilities 31 Platform. These reommendation do not pretend to solv e ev ery iden tied problems, but in tend to mak e the omm unit y a w are of the easy hanges that an b e made to the OSGi Sp eiation so as to prev en t a v oidable a ws. These reommendations are v alidated b y the Platform SF elix v ersion 0.2, whi h is a robust extension to the F elix 0.8.0 implemen tation of the OSGi Platform. F ollo wing impro v emen t to the OSGi Release 4 Sp eiation should b e made: Bundle Installation Pro ess: a maxim um storage size for bundle ar hiv es is set. Alternativ ely , a maxim um storage size for all data stored on the lo al disk is set ( Bund le A r hives and les r e ate d by the bund les ); OSGi R4 p ar. 4.3.3 . Bundle Uninstallation Pro ess: remo v e the data on the lo al bundle lesystem when a bundle is uninstalled (and not when the platform is stopp ed); OSGi R4 p ar. 4.3.8 . Bundle Signature V alidation Pro ess: the digital signature m ust b e he k ed at installed time. It m ust not rely on the Ja v a built-in v alidation me hanism, sine this latter is not omplian t with the OSGi R4 Sp eiations [PF07 ℄; OSGi R4, Par agr aph 2.3 . Bundle Dep endeny Resolution Pro ess: do not rejet dupliate imp orts. just ignore them; OSGi R4 p ar. 3.5.4 . Bundle Start Pro ess: laun h the Bundle A tiv ator in a separate thread; OSGi R4 p ar. 4.3.5 . OSGi Servie Registration: set a Platform Prop ert y that expliitly limits the n um b er of registered servies (default ould b e 50); OSGi R4 p ar. 5.2.3 . Bundle Do wnload: when a bundle do wnload failit y is a v ailable, the total size of the bundles to installed should b e he k ed immediately after the dep endeny resolution pro ess. The bundles should b e installed only if the required storage is a v ailable. T o supp ort this mo diations of the OSGi R4 sp eiations, follo wing hanges ha v e b een applied to the API: In the Class BundleCon text, a metho d `getA v ailableStorage()' is dened, A prop ert y `osgi.storage.max' is dened, that is set in the prop ert y onguration le of the OSGi framew ork. In the lass org.osgi.servie.obr.Resoure, a metho d `getSize()' is dened. This metho d relies on the `size' en try of the bundle meta-data represen tation (usually a XML le). In addition to these simple enhanemen t, more resear h w ork is required in order to dene prop er solution to the iden tied vulnerabilities. The most imp ortan t ones are the follo wing: Stati Co de Analysis for Ja v a, Con v enien t P ermission Managemen t for Ja v a and OSGi, RR n ° 6231 32 Parr end & F r énot Resoure isolation in omp onen t systems, Mandatory Servie Managemen t. Through this study , w e iden tied b oth te hnial requiremen ts for enhanemen t of the OSGi R4 Sp eiations, and neessary resear h w ork that is neessary to protet the OSGi Platform. Hardening the Sp eiations of the Ja v a Virtual Ma hine Some safet y require- men ts ha v e also b een iden tied at the Virtual Ma hine Lev el. The a ws that ha v e b een iden tied in the Sun Ja v a Virtual Ma hine v ersion 1.6 are the follo wing: the Ja v a P ermission `exitVM' app ears not to b e eetiv e, the presene of a manifest with a h uge size in a loaded Jar le in tro dues a dramati slo wdo wn of the JVM when the ar hiv e Manifest is extrated. Our implemen tation sho ws that a simple pat h an orret this matter of fat. A a w has also b een iden tied in the Gn u Classpath, whi h is an op en soure implemen- tation of the Ja v a lasses. Gn u Classpath is used in onjuntion with the Jam VM Virtual Ma hine and targets resoure-limited devies: the presene of a manifest with a h uge size in a loaded Jar le in tro dues a dramati slo wdo wn of the JVM when the orresp onding JarFile Ob jet is reated, ev en though the Manifest sta ys un used. Requiremen ts for programming seure OSGi Systems ha v e b een iden tied. First, a hard- ened v ersion of the OSGi Platform is needed to prev en t most of the iden tied vulnerabilities to b e exploited. Ho w ev er, sine su h a platform will tak e time to dev elop and v alidate, a pragmati approa h is to b e tak en. First, to ols should b e dev elop ed to ease the managemen t of urren t seurit y me hanisms su h as Ja v a P ermissions, whi h are urren tly not adapted to dynami systems. Seondly , dev elop ers need to k eep on mind what the OSGi vulnerabilities are: this is made p ossible b y the Seven De ad ly Sins of the OSGi R4 Platform. INRIA OSGi V ulner abilities 33 5 Conlusions The ob jetiv e of our study is to impro v e the dep endabilit y lev el of the OSGi platform, as w ell as the kno wledge that is a v ailable relativ e to the vulnerabilities of the OSGi Platform. This impro v emen t is a hiev ed through four omplemen tary on tributions. First, w e dene a metho d for analyzing the seurit y status of soft w are systems, based on a sp ei Soft w are V ulnerabilit y P attern. Seondly , w e pro vide a vulnerabilit y atalog that iden tied a set of vulnerabilities, and the k ey prop erties for understanding - and prev en ting - them. Thirdly , w e dev elop ed a hardened OSGi Platform, SF elix v0.2 22 , that pro vides pro of of onept protetion me hanisms. And w e issue a set of reommendations for the OSGi Sp eiations that in tegrate these protetion me hanisms. Our study is en tered on the OSGi Core sp eiation, and do es not tak e in to aoun t sev eral me hanisms that are - or an b e - often used together with OSGi platforms. In partiular, managemen t failities, su h as JVMTI, and with less impat JMX ha v e not b een studied. OSGi standard servies are neither b een onsidered, and servie engineering questions ha v e b een negleted. These three elemen ts will require further w ork, and will lik ely enri h our vulnerabilit y atalog. A side-eet a hiev emen t of our study is to preisely iden tify the requiremen ts in term of resear h and dev elopmen t, so as to pro vide OSGi platform that are atually robust, and not just partially hardened. Stati Co de analysis seem to b e v ery promising, but suers from signian t theoretial limitation, esp eially in the w orld of Ob jet-Orien ted Languages. Con v enien t p ermission managemen t, and prop er resoure isolation in Ja v a m ulti-appliation systems are also a strong need on the road to w ard OSGi seurit y . The presen t study pro vides a pragmati approa h to soft w are seurit y onerns, targeted at the w orld of OSGi Platforms. It presen t an imp ortan t step to w ard a b etter understanding of OSGi-related seurit y , and help pratitioners implemen t safer system b y pro viding a hardened OSGi protot yp e, SF elix v0.2. An imp ortan t resear h eort is still required to pro vide an OSGi platform whi h seurit y me hanisms an b e said to b e omplete. 22 h ttp://sfelix.gforge.inria.fr/ RR n ° 6231 34 Parr end & F r énot Referenes [A CD + 75℄ R. P . Abb ott, J. S. Chin, J. E. Donnelley , W. L. K onigsford, S. T okub o, and D. A. W ebb. Seurit y analysis and enhanemen ts of omputer op erating systems. T e hnial rep ort, NA TIONAL BUREA U OF ST AND ARDS W ASHINGTONDC INST F OR COMPUTER SCIENCES AND TECHNOLOGY, Deem b er 1975. [AJB00℄ A.A vizienis, J.C.Laprie, and B.Randell. F undamen tal onepts of dep endabilit y . T e hnial Rep ort No00493, LAAS (T oulouse, F rane), 2000. 3rd Information Sur- viv abilit y W orkshop (ISW'2000), Boston (USA), 24-26 Otobre 2000, pp.7-12. [Ale77℄ Christopher Alexander. A Pattern L anguage . Oxford Univ ersit y Press, 1977. [BA T06℄ Anil Bazaz, James D. Arth ur, and Joseph G. T ron t. Mo deling seurit y vulnera- bilities: A onstrain ts and assumptions p ersp etiv e. In 2nd IEEE International Symp osium on Dep endable, A utonomi and Se ur e Computing (D ASC'06) , 2006. [BCHM99℄ Da vid W. Bak er, Stev en M. Christey , William H. Hill, and Da vid E. Mann. The dev elopmen t of a ommon en umeration of vulnerabilities and exp osures. In Se ond International W orkshop on R e ent A dvan es in Intrusion Dete tion , 1999. [BG05℄ Josh ua Blo h and Neal Gafter. Java Puzzlers - T r aps, Pitfal ls and Corner Cases . P earson Eduation, June 2005. [BH78℄ Ri hard Bisb ey and Dennis Hollingw orth. Protetion analysis: Final rep ort. T e h- nial Rep ort ARP A ORDER NO. 2223, ISI/SR-78-13, Information Sienes Insti- tute, Univ ersit y of Southern California, Ma y 1978. [Blo01℄ Josh ua Blo h. Ee tive Java Pr o gr amming L anguage Guide . A ddison-W esley Pro- fessional, 2001. [Chr05℄ Stev e Christey . The preliminary list of vulnerabilit y examples for resear hers (plo v er). In NIST W orkshop Dening the State of the A rt of Softwar e Se urity T o ols, Gaithersbur g, MD , August 2005. [Chr06℄ Stev en M. Christey . Op en letter on the in terpretation of "vulnerabilit y statistis". Bugtraq, F ull-Dislosure Mailing list, Jan uary 2006. [CO05℄ D. Cro k er and P . Ov erell. Augmen ted bnf for syn tax sp eiations: Abnf. IETF RfC 4234, Otob er 2005. [GHJV94℄ Eri h Gamma, Ri hard Helm, Ralph Johnson, and John M. Vlissides. Design Patterns: Elements of R eusable Obje t-Oriente d Softwar e . A ddison-W esley Pro- fessional Computing Series. A ddison W esley Professional., 1994. [GW05℄ Mi hael Gegi k and Laurie Williams. Mat hing atta k patterns to seurit y vulnera- bilities in soft w are-in tensiv e system designs. A CM SIGSOFT Softwar e Engine ering Notes , 30(4), July 2005. INRIA OSGi V ulner abilities 35 [HL98℄ John D. Ho w ard and Thomas A. Longsta. A ommon language for omputer seurit y iniden ts. T e hnial Rep ort SAND98-8667, Sandia National Lab oratories, USA, Otob er 1998. [HL V05℄ Mi hael Ho w ard, Da vid LeBlan, and John Viega. 19 De ad ly Sins of Softwar e Se urity . MGra w-Hill Osb orne Media, July 2005. [Krs98℄ Iv an Vitor Krsul. SOFTW ARE VULNERABILITY ANAL YSIS . PhD thesis, Purdue Univ ersit y , Ma y 1998. [LBMC94℄ Carl E. Landw ehr, Alan R. Bull, John P . MDermott, and William S. Choi. A taxonom y of omputer program seurit y a ws, with examples. In A CM Computing Surveys , v olume 26, pages 211254, Septem b er 1994. [LJ97℄ Ulf Lindqvist and Erland Jonsson. Ho w to systematially lassify omputer seurit y in trusions. In IEEE Symp osium on Se urity and Privay , pages 154163, Ma y 1997. [MG06℄ Gary MGra w. Softwar e Se urity - Building Se urity In . P earson Eduation, Jan uary 2006. [MCJ05℄ Rob ert A. Martin, Stev en M. Christey , and Jo e Jarzom b ek. The ase for ommon a w en umeration. In NIST W orkshop on "Softwar e Se urity Assur an e T o ols, T e hniques, and Metho ds", L ong Be ah, CA., USA , No v em b er 2005. [MEL01℄ Andrew P . Mo ore, Rob ert J. Ellison, and Ri hard C. Linger. A tta k mo deling for information seurit y and surviv abilit y . T e hnial Rep ort CMU/SEI-2001-TN-001, CMU/SEI, Mar h 2001. [MM97℄ Thomas J. Mo wbra y and Raphael C. Malv eau. Corb a Design Patterns . John Wiley & Sons, Jan uary 1997. [Ne97℄ George C. Neula. Pro of-arrying o de. In Confer en e R e or d of POPL '97: The 24th A CM SIGPLAN-SIGA CT Symp osium on Priniples of Pr o gr amming L an- guages , pages 106119, P aris, F rane, jan 1997. [OSG05℄ OSGI Alliane. Osgi servie platform, ore sp eiation release 4. Draft, 07 2005. [PF06℄ Pierre P arrend and Stephane F renot. Seure omp onen t deplo ymen t in the osgi(tm) release 4 platform. T e hnial Rep ort R T-0323, INRIA, June 2006. [PF07℄ Pierre P arrend and Stephane F renot. Supp orting the seure deplo ymen t of osgi bundles. In First IEEE W oWMoM W orkshop on A daptive and Dep endA ble Mission- and BUsiness-riti al mobile Systems, Helsinki, Finland , June 2007. [S h03℄ Markus S h uma her. Se urity Engine ering with Patterns . Springer V erlag, 2003. LNCS n 2754. RR n ° 6231 36 Parr end & F r énot [SH05℄ Rob ert C. Seaord and Allen Householder. A strutured approa h to lassifying se- urit y vulnerabilities. T e hnial Rep ort CMU/SEI-2005-TN-003, Carnegie Mellon Univ ersit y - Soft w are Engineering Institute, Jan uary 2005. [SS73℄ Jerome H. Saltzer and Mi hael D. S hro eder. The protetion of information in omputer systems. In F ourth A CM Symp osium on Op er ating System Priniples , Otob er 1973. [Sun03℄ Sun Mirosystems, In. Jar le sp eiation. Sun Ja v a Sp eiations, 2003. [TCM05℄ Katrina T sip en yuk, Brian Chess, and Gary MGra w. Sev en p erniious kingdoms: A taxonom y of soft w are seurit y errors. IEEE Se urity & Privay , 3(6):8184, No v em b er/Deem b er 2005. [WKP05℄ Sam W eb er, P aul A. Karger, and Amit P aradk ar. A soft w are a w taxonom y: Aiming to ols at seurit y . In Softwar e Engine ering at Se ur e Systems - Building T rustworthy Appli ations , June 2005. INRIA OSGi V ulner abilities 37 A The OSGi platform The OSGi Platform 23 [OSG05 ℄ is a omp onen tization la y er to the Ja v a Virtual Ma hine. It supp orts the run time extension of Ja v a-based appliation through a mo dular approa h: the appliations are parted in to `bundles', that an b e loaded, installed and managed indep en- den tly from ea h other. In this setion, w e presen t rst an o v erview of the OSGi Platform, then the ore onept of OSGi: the bundles and their Life Cyle, and the p ossible in terations b et w een bundles. A.1 Ov erview The OSGi Platform has b een dev elop ed so as to supp ort extensible Ja v a-based systems in resoure-onstrain t systems, su h as automotiv e and mobile en vironmen ts. It has sine then spread in to the w orld of In tegrated Dev elopmen t Appliations (in partiular with Elipse), and in to appliativ e serv ers (IBM W ebsphere 6.1, Harmon y , Co o on, Diretory ...). It runs as an o v erla y to the Ja v a Virtual Ma hine (JVM). The gure 13 sho ws the o v erview of an OSGi-based system, with the Op erating System (OS), the JVM, the platform itself, and the bundles it on tains. Figure 13: Ov erview of an OSGi Platform Three main onepts sustain the OSGi platform: the platform, the bundle, and the in terop erabilit y b et w een the bundles. The Platform manages the appliations. The bundles are the unit of deplo ymen t and exeution. The in terop erabilit y b et w een the bundles is a hiev ed at the lass lev el (aess to pa k ages from other bundles) and at the servie lev el (aess to servies registered b y other bundles). A.2 The Bundles An OSGi bundle is a Jar le [Sun03 ℄ whi h is enhaned b y sp ei meta-data. The t ypi- al struture of a bundle is sho wn in the gure 14 . The MET A-INF/MANIFEST.MF le on tains the neessary OSGi meta-data: the bundle referene name (the `sym b oli name'), its v ersion, the dep endenies and the pro vided resoures. Some pa k ages are exp orted, i.e. 23 h ttp://www.osgi.org/ RR n ° 6231 38 Parr end & F r énot aessible from other bundles inside the platform. The ativ ator is used b y the platform as an initial b o otstrap when the bundle is started. P a k ages an b e exp orted. Servies an b e registered, so as to b e a v ailable for other bundles. Figure 14: In tern Struture of an OSGi bundle Ea h bundle has a restrited view on the OSGi platform: the OSGi Con text, whi h is transmitted to the bundle ativ ator at start time. This on text referene is needed to publish and lo ok-up for servies. It also supp orts the aess to the managemen t funtionalities of the platform. The OSGi bundles an also aess the Op erating System of the ma hine it is running on through nativ e libraries. This p ossibilit y is not sp ei to the OSGi en vironmen t, sine it relies on the Ja v a Run time API, but it allo ws the bundles to break their isolation. The Life Cyle of a bundle inside the OSGi Platform is dened as follo ws. The bundle m ust rst b e installed. When it is required to start, the pa k age-lev el dep endenies with other bundles are resolv ed. When all dep endenies are resolv ed, the bundle ativ ator is laun hed: the sta rt() metho d is alled, and the related o de is exeuted. T ypially , these op erations onsist in onguration and publiation of servies. The bundle is then in the `started' state. Up dating, stopping and uninstalling build the last p ossible op erations for bundle managemen t The gure 15 sho ws the Life Cyle of a bundle inside a OSGi Platform. A.3 In terations b et w een Bundles The in terations b et w een the bundles are done through t w o omplemen tary me hanisms: the pa k age exp ort/imp ort and the servie registration lo okup failit y . These me hanisms are sho wn in the gure 16 . The publiation and lo okup of servies are p erformed through the BundleCon text refer- ene that ea h bundle reeiv es ar startup time. During the publiation pro ess, the adv er- tising bundles registers a servie b y publishing a Ja v a in terfae it is implemen ting, and b y pro viding a lass implemen ting this in terfae. The lo okup is p erformed b y the lien t bundle, whi h gets the servie from the BundleCon text and uses it as a standard Ja v a ob jet. INRIA OSGi V ulner abilities 39 Figure 15: Life Cyle of an OSGi Bundles inside the platform Figure 16: In teration Me hanisms b et w een the OSGi Bundles B V ulnerabilities List The most ommon V ulnerabilit y Lists presen ted in the setion 2.2 are giv en here. B.1 The Lindqvist Classiation The omputer seurit y in trusions iden tied b y Lindqvist [ LJ97 ℄ are the follo wing: external misuse (not te hnial), hardw are misuse, masquerading, setting up subsequen t misuse, b ypassing in tended on trols, RR n ° 6231 40 Parr end & F r énot ativ e misuse of resoure, passiv e misuse of resoure, misuse resulting from ination, use of an indiret aid in ommitting other misuse. B.2 Common W eaknesses En umeration (CWE) The ategories dened in the Common W eaknesses En umeration [ MCJ05 ℄ are the follo wing: Buer o v ero ws, format strings, et. [BUFF℄; Struture and V alidit y Problems;[SVM℄; Sp eial Elemen ts [SPEC℄; Common Sp eial Elemen t Manipulations[SPECM℄; T e hnology-Sp ei Sp eial Elemen ts[SPECTS℄; P athname T ra v ersal and Equiv alene Errors [P A TH℄; Channel and P ath Errors [CP℄; Information Managemen t Errors [INF O℄; Rae Conditions [RA CE℄; P ermissions, Privileges, and A CLs [PP A℄; Handler Errors [HAND℄; User In terfae Errors [UI℄; In teration Errors [INT℄; Initialization and Clean up Errors [INIT℄; Resoure Managemen t Errors [RES℄; Numeri Errors [NUM℄; Authen tiation Error [A UTHENT℄; Cryptographi errors [CR YPTO℄; Randomness and Preditabilit y [RAND℄; Co de Ev aluation and Injetion [CODE℄; Error Conditions, Return V alues, Status Co des [ERS℄; Insuien t V eriation of Data [VER℄; Mo diation of Assumed-Imm utable Data [MAID℄; Pro dut-Em b edded Maliious Co de [MAL℄; Common A tta k Mitigation F ailures [A TTMIT℄; Con tainmen t errors (on tainer errors) [CONT℄; Misellaneous WIFF s [MISC℄. B.3 Nineteen Dealy Sins The 19 Deadly Sins dened b y Ho w ard [ HL V05 ℄ are the follo wing: buer o v ero ws, ommand injetion, INRIA OSGi V ulner abilities 41 Cross-site sripting (XSS), format string problems, in teger range error, SQL injetion, trusting net w ork address information, failing to protet net w ork tra, failing to store and protet data, failing to use ryptographially strong random n um b ers, improp er le aess, improp er use of SSL, use of w eak passw ord-based systems, unauthen tiated k ey ex hange, signal rae ondition, use of 'magi' URLs and hidden forms, failure to handle errors, p o or usabilit y , information leak age. B.4 O W ASP T op T en The O W ASP T op T en V ulnerabilit y list for 2007 is the follo wing 24 : Cross Site Sripting (XSS) Injetion Fla ws Maliious File Exeution Inseure Diret Ob jet Referene Cross Site Request F orgery (CSRF) Information Leak age and Improp er Error Handling Brok en Authen tiation and Session Managemen t Inseure Cryptographi Storage Inseure Comm uniations F ailure to Restrit URL A ess B.5 Sev en Kingdoms The Sev en Kingdoms dened b y Gary MGra w [MG06 ℄ are the follo wing. Note that ea h Kingdom on tains a ertain n um b er of Ph yla, that help giv e more preise hin ts so as the atual vulnerabilities. Input V alidation and represen tation, API abuse, Seurit y F eatures, 24 h ttp://www.o w asp.org/index.php/T op_10_2007-WIKI-F ORMA T-TEST RR n ° 6231 42 Parr end & F r énot Time and state, error handling, o de qualit y , enapsulation + en vironmen t INRIA OSGi V ulner abilities 43 C F ormal Expression of the V ulnerabilit y P attern This setion presen ts the V ulnerabilit y P attern in the Augmen ted Ba kus Naur F orm (BNF) [CO05 ℄. The urren t grammar is not mean t to b e losed: it reets the kno wledge relativ e to the onsidered vulnerabilities at a giv en time. It an b e extended with additional attribute v alues. The atalog of the OSGi Maliious Bundles is referred as the `m b' atalog. V ulnerabilit y Referene VULNERABILITY_NAME ::= text IDENTIFIER ::= CA T ALOG_ID.SR C_REF.ID with: CA T ALOG_ID ::= m b SR C_REF ::= ar hiv e|ja v a|nativ e|osgi ID ::= (0-9)* ORIGIN ::= text LOCA TION ::= Bundle ( Ar hiv e | Manifest | A tiv ator | F ragmen t ) | Appliation Co de - ( Nativ e Co de | Ja v a ( Co de | API ) | OSGi API ) SOUR CE ::= (ENTITY ( FUNCTIONNALITY | FLA W ;)+;)+ with ENTITY ::= OS | JVM - ( Run time API | APIs )| OSGi Platform - (( Mo dule | Life-Cyle | Servie ) La y er | Bundle Rep ository Clien t )| Appliation Co de FUNCTIONNALITY ::= Kill utilit y | V alue of Metho d P arameters | ( System.exit | Run time.halt ) metho d | Nativ e Co de Exeution | Thread API | Reetion API | ClassLoader API | File API | Ja v a Ar hiv e | Bundle Managemen t | Bundle F ragmen ts and: FLA W ::= No Algorithm Safet y - ( Ja v a | Nativ e Co de )| Non OSGi R4-omplian t Digital Signature V alidation in the JVM | No V eriation of Bundle Ar hiv e V alidit y | No Che k of Size of Loaded Bundles | No Che k of Size of stored Data | No safe Bundle Start | No Remo v al of Uninstalled Bundle Data | Bundle Meta-data Handling - No Safe-Default | Unon trolled Servie Registration | Ar hiteture of the Appliation - No V alidation of Servie Dep endeny T AR GET ::= Platform | OSGi Elemen t - ( Platform Managemen t Utilit y | Bundle | Servie|P a k age ) CONSEQUENCE_TYPE ::= ( Una v ailabilit y | P erformane Breakdo wn | Undue A - ess )( - ( Platform | Servie | P a k age )(, ( Platform | Servie | P a k age ))*)? INTR ODUCTION_TIME ::= Platform Design or Implemen tation | Dev elopmen t | Bundle Meta-data Generation | Bundle Digital Signature | Installation | Servie Pub- liation or Resolution EXPLOIT_TIME ::= Do wnload | Installation | Bundle Start | Exeution V ulnerabilit y Desription RR n ° 6231 44 Parr end & F r énot DESCRIPTION ::= text PRECONDITIONS ::= text A TT A CK_PR OCESS ::= text CONSEQUENCE_DESCRIPTION ::= text SEE_ALSO ::= VULNERABILITY_NAME (, VULNERABILITY_NAME)* V ulnerabilit y Implemen tation CODE_REFERENCE ::= FILE_NAME with FILE_NAME the name of a le, as dened b y Unix File Names OSGI_PR OFILE ::= CDC-1.0/F oundation-1.0 | OSGi/Minim um-1.1 | JRE-1.1 | J2SE- 1.2 | J2SE-1.3 | J2SE-1.4 | J2SE-1.5 | J2SE-1.6 | P ersonalJa v a-1.1 | P ersonalJa v a-1.2 | CDC-1.0/P ersonalBasis-1.0 | CDC-1.0/P ersonalJa v a-1.0 D A TE ::= MONTH.D A Y.YEAR with MONTH ::= (1-12), D A Y ::= (1-31), YEAR ::= (0-3000) TEST_CO VERA GE ::= (0-100) % TESTED_ON ::= Osar | F elix | Knopersh | Equino x Protetion EXISTING_MECHANISMS ::= Ja v a P ermissions | OSGi A dminP ermission | SF elix OSGi Seurit y La y er | - ENF OR CEMENT_POINT ::= Platform startup | Bundle Installation | - POTENTIAL_MECHANISMS ::= (POTENTIAL_MECHANISM_NAME (POTEN- TIAL_MECHANISM_DESCR)?)+ with POTENTIAL_MECHANISM_NAME ::= Co de stati Analysis | OSGi Platform Mo diation - ( Bundle Startup Pro ess | Instal- lation Meta-data Handling | Servie Publiation )| Bundle size on trol b efore do wn- load | Servie-lev el dep endeny v alidation | Resoure Con trol and Isolation - ( CPU | Memory | Disk Spae )| A ess Con trol - FileSystem | Misellaneous | - and POTEN- TIAL_MECHANISM_DESCR ::= text A TT A CK_PREVENTION ::= Stop a ill-b eha ving thread | - REA CTION ::= Uninstall the maliious bundle | Erase les | Stop the system pro ess | Restart the platform | - INRIA OSGi V ulner abilities 45 D V ulnerabilit y Catalog D.1 Bundle Ar hiv e D.1.1 In v alid Digital Signature V alidation V ulnerabilit y Referene V ulnerabilit y Name: In v alid Digital Signature V alidation Iden tier: Mb.ar hiv e.1 Origin: Ares resear h pro jet `maliious-bundle' Lo ation of Exploit Co de: Bundle Ar hiv e Soure: OSGi Platform - Life-Cyle La y er (Non OSGi R4-omplian t Digital Signature V alidation in the JVM) T arget: Platform Consequene T yp e: Undue A ess In tro dution Time: Bundle Digital Signature Exploit Time: Installation V ulnerabilit y Desription Desription: A bundle whi h signature is NOT omplian t to the OSGi R4 Digital Signature is installed on the platform Preonditions: No Digital Signature V alidation, or Digital Signature V alidation Pro- ess that relies on the Ja v a JarFile API to p erform the v alidation of the digital signa- ture. The bundle signature m ust b e non OSGi R4 omplian t in one of the follo wing w a ys: resoures ha v e b een remo v ed from the ar hiv e; resoures ha v e b een added; the rst resoures in the ar hiv e are NOT the Manifest File, the Signature File and the Signature Blo k le in this order (see [ PF06℄). A tta k Pro ess: Install a bundle with an in v alid digital signature (see preonditions) Consequene Desription: - See Also: - Protetion Existing Me hanisms: SF elix OSGi Seurit y La y er Enforemen t P oin t: Bundle Installation P oten tial Me hanisms: - A tta k Prev en tion: - Reation: Uninstall the maliious bundle V ulnerabilit y Implemen tation Co de Referene: Bindex-resoureRemo v ed-1.0.jar, bindex-resouresA dded-1.0.jar, bindex-un v alidResoureOrder-1.0.jar RR n ° 6231 46 Parr end & F r énot OSGi Prole: J2SE-1.5 Date: 2007-04-25 T est Co v erage: 100% Kno wn V ulnerable Platforms: F elix Kno wn Robust Platforms: SF elix INRIA OSGi V ulner abilities 47 D.1.2 Big Comp onen t Installer V ulnerabilit y Referene V ulnerabilit y Name: Big Comp onen t Installer Iden tier: Mb.ar hiv e.2 Origin: Ares resear h pro jet `maliious-bundle' Lo ation of Exploit Co de: Bundle Ar hiv e Soure: OSGi Platform - Bundle Rep ository Clien t (No Che k of Size of Loaded Bundles) T arget: Platform Consequene T yp e: P erformane Breakdo wn In tro dution Time: Platform Design or Implemen tation Exploit Time: Exeution V ulnerabilit y Desription Desription: Remote installation of a bundle whi h size is of similar to the a v ailable devie memory Preonditions: OSGi platform running on a memory limited devie A tta k Pro ess: - Consequene Desription: Little memory is a v ailable for subsequen t op erations See Also: Big File Creator Protetion Existing Me hanisms: OSGi A dminP ermission Enforemen t P oin t: - P oten tial Me hanisms: Bundle size on trol b efore do wnload A tta k Prev en tion: - Reation: - V ulnerabilit y Implemen tation Co de Referene: - OSGi Prole: J2SE-1.5 Date: 2007-02-20 T est Co v erage: 00% RR n ° 6231 48 Parr end & F r énot D.1.3 Deompression Bom b V ulnerabilit y Referene V ulnerabilit y Name: Deompression Bom b Iden tier: Mb.ar hiv e.3 Origin: Ares resear h pro jet `maliious-bundle' Lo ation of Exploit Co de: Bundle Ar hiv e Soure: OSGi Platform - Life-Cyle La y er (No V eriation of Bundle Ar hiv e V alid- it y) T arget: Platform Consequene T yp e: P erformane Breakdo wn In tro dution Time: Dev elopmen t Exploit Time: Exeution V ulnerabilit y Desription Desription: The Bundle Ar hiv e is a deompression Bom b (either a h uge le made of iden tial b ytes, or a reursiv e ar hiv e) Preonditions: - A tta k Pro ess: Pro vide a Bundle Ar hiv e that is a deompression Bom b for instal- lation (on a OBR, et.) Consequene Desription: Imp ortan t onsumption of CPU or memory . See Also: - Protetion Existing Me hanisms: - Enforemen t P oin t: - P oten tial Me hanisms: OSGi Platform Mo diation - Bundle Startup Pro ess (Che k that the Bundle is not a Deompression Bom b ar hiv e) A tta k Prev en tion: - Reation: - V ulnerabilit y Implemen tation Co de Referene: F r.inria.ares.deompression b om b-0.1.jar OSGi Prole: J2SE-1.5 Date: 2007-04-20 T est Co v erage: 50% INRIA OSGi V ulner abilities 49 D.2 Bundle Manifest D.2.1 Dupliate P a k age Imp ort V ulnerabilit y Referene V ulnerabilit y Name: Dupliate P a k age Imp ort Iden tier: Mb.osgi.1 Origin: Ares resear h pro jet `maliious-bundle' Lo ation of Exploit Co de: Bundle Manifest Soure: OSGi Platform - Mo dule La y er (Bundle Meta-data Handling - No Safe- Default) T arget: OSGi Elemen t - Bundle Consequene T yp e: Una v ailabilit y In tro dution Time: Bundle Meta-data Generation Exploit Time: Installation V ulnerabilit y Desription Desription: A pa k age is imp orted t wie (or more) aording to manifest attribute 'Imp ort-P a k age'. In the F elix and Knopersh OSGi implemen tations, the bundle an not b e installed Preonditions: - A tta k Pro ess: - Consequene Desription: - See Also: Exessiv e Size of Manifest File, Un v alid A tiv ator Meta-data, Erroneous v alues of Manifest attributes, Insuien t User Meta-data Protetion Existing Me hanisms: - Enforemen t P oin t: - P oten tial Me hanisms: OSGi Platform Mo diation - Installation Meta-data Han- dling (ignore the rep eated imp orts during OSGi metadata analysis) A tta k Prev en tion: - Reation: - V ulnerabilit y Implemen tation Co de Referene: F r.inria.ares.dupliateimp ort-0.1.ja OSGi Prole: J2SE-1.5 Date: 2006-10-28 T est Co v erage: 100% Kno wn V ulnerable Platforms: F elix; Knopersh Kno wn Robust Platforms: Equino x; Conierge; SF elix RR n ° 6231 50 Parr end & F r énot D.2.2 Exessiv e Size of Manifest File V ulnerabilit y Referene V ulnerabilit y Name: Exessiv e Size of Manifest File Iden tier: Mb.osgi.2 Origin: Ares resear h pro jet `maliious-bundle' Lo ation of Exploit Co de: Bundle Manifest Soure: OSGi Platform - Mo dule La y er (Bundle Meta-data Handling - No Safe- Default) T arget: OSGi Elemen t - Bundle Consequene T yp e: Una v ailabilit y In tro dution Time: Bundle Meta-data Generation Exploit Time: Installation V ulnerabilit y Desription Desription: A bundle with a h uge n um b er of (similar) pa k age imp orts (more than 1 Mb yte) Preonditions: - A tta k Pro ess: Insert a big n um b er of imp orts in the manifest le of the bundle Consequene Desription: In the F elix and Knopersh implemen tations, the laun her pro ess tak es a long time (sev eral min utes) to parse the metadata le See Also: Dupliate P a k age Imp ort, Un v alid A tiv ator Meta-data, Erroneous v alues of Manifest attributes, Insuien t User Meta-data Protetion Existing Me hanisms: - Enforemen t P oin t: - P oten tial Me hanisms: OSGi Platform Mo diation - Installation Meta-data Han- dling ( he k the size of manifest b efore the installation; more generally , he k the format of the manifest size b efore the installation) A tta k Prev en tion: - Reation: - V ulnerabilit y Implemen tation Co de Referene: F r.inria.ares.h ugemanifest-0.1.jar OSGi Prole: J2SE-1.5 Date: 2006-10-28 T est Co v erage: 100% Kno wn V ulnerable Platforms: F elix; Knopersh; Conierge Kno wn Robust Platforms: SF elix; Equino x INRIA OSGi V ulner abilities 51 D.2.3 Erroneous v alues of Manifest attributes V ulnerabilit y Referene V ulnerabilit y Name: Erroneous v alues of Manifest attributes Iden tier: Mb.osgi.3 Origin: Ares resear h pro jet `maliious-bundle' Lo ation of Exploit Co de: Bundle Manifest Soure: OSGi Platform - Mo dule La y er (Bundle Meta-data Handling - No Safe- Default) T arget: OSGi Elemen t - Bundle Consequene T yp e: Una v ailabilit y In tro dution Time: Bundle Meta-data Generation Exploit Time: Installation V ulnerabilit y Desription Desription: A bundle that pro vides false meta-data, in this example an non existen t bundle up date lo ation Preonditions: - A tta k Pro ess: Set a false v alue for a giv en meta-data en try Consequene Desription: The ations that rely on the meta-data an not b e exeuted (here, no up date p ossible) See Also: Dupliate Imp ort, Exessiv e Size of Manifest File Protetion Existing Me hanisms: - Enforemen t P oin t: - P oten tial Me hanisms: OSGi Platform Mo diation - Installation Meta-data Han- dling ( he k the format of the manifest size b efore the installation, and pro vide failsafe default) A tta k Prev en tion: - Reation: - V ulnerabilit y Implemen tation Co de Referene: F r.inria.ares.malformedup datelo ation-0.1.jar OSGi Prole: J2SE-1.5 Date: 2006-10-28 T est Co v erage: 10% Kno wn V ulnerable Platforms: F elix; Equino x; Knopersh; Conierge; SF elix RR n ° 6231 52 Parr end & F r énot D.3 Bundle A tiv ator D.3.1 Managemen t Utilit y F reezing - Innite Lo op V ulnerabilit y Referene V ulnerabilit y Name: Managemen t Utilit y F reezing - Innite Lo op Extends: Innite Lo op in Metho d Call Iden tier: Mb.osgi.4 Origin: Ares resear h pro jet `maliious-bundle' Lo ation of Exploit Co de: Bundle A tiv ator Soure: OSGi Platform - Life-Cyle La y er (No safe Bundle Start) T arget: OSGi Elemen t - Platform Managemen t Utilit y Consequene T yp e: P erformane Breakdo wn; Una v ailabilit y In tro dution Time: Dev elopmen t Exploit Time: Bundle Start V ulnerabilit y Desription Desription: An innite lo op is exeuted in the Bundle A tiv ator Preonditions: - A tta k Pro ess: An innite lo op is exeuted in the Bundle A tiv ator Consequene Desription: Blo k the OSGi Managemen t en tit y (the felix, equino x or knopersh shell; when laun hed in the KF graphial in terfae, the shell remain a v ailable but the GUI is frozen). Beause of the innite lo op, most CPU resoure is onsumed See Also: CPU Load Injetion, Innite Lo op in Metho d Call, Stand Alone Innite Lo op, Hanging Thread Protetion Existing Me hanisms: - Enforemen t P oin t: - P oten tial Me hanisms: Co de stati Analysis ; Resoure Con trol and Isolation - CPU ; OSGi Platform Mo diation - Bundle Startup Pro ess (laun h the bundle a- tiv ator in a separate thread to prev en t startup hanging) A tta k Prev en tion: - Reation: - V ulnerabilit y Implemen tation Co de Referene: F r.inria.ares.innitelo opinmetho dall-0.1.jar OSGi Prole: J2SE-1.5 Date: 2006-08-24 INRIA OSGi V ulner abilities 53 T est Co v erage: 10% Kno wn V ulnerable Platforms: F elix; Equino x; Knopersh; Conierge Kno wn Robust Platforms: SF elix RR n ° 6231 54 Parr end & F r énot D.3.2 Managemen t Utilit y F reezing - Thread Hanging V ulnerabilit y Referene V ulnerabilit y Name: Managemen t Utilit y F reezing - Thread Hanging Extends: Hanging Thread Iden tier: Mb.osgi.5 Origin: Ares resear h pro jet `maliious-bundle' Lo ation of Exploit Co de: Bundle A tiv ator Soure: OSGi Platform - Life-Cyle La y er (No safe Bundle Start) T arget: OSGi Elemen t - Platform Managemen t Utilit y Consequene T yp e: Una v ailabilit y In tro dution Time: Dev elopmen t Exploit Time: Bundle Start V ulnerabilit y Desription Desription: A hanging thread in the Bundle A tiv ator mak es the managemen t utilit y freeze Preonditions: - A tta k Pro ess: - Consequene Desription: Blo k the OSGi Managemen t en tit y (the felix, equino x or knopersh shell; when laun hed in the KF graphial in terfae, the shell remain a v ailable but the GUI is frozen). See Also: Managemen t Utilit y F reezing - Innite Lo op, Hanging Thread Protetion Existing Me hanisms: - Enforemen t P oin t: - P oten tial Me hanisms: OSGi Platform Mo diation - Bundle Startup Pro ess (laun h the bundle ativ ator in a separate thread); Co de stati Analysis A tta k Prev en tion: - Reation: - V ulnerabilit y Implemen tation Co de Referene: F r.inria.ares.hangingthread-0.1.jar, fr.inria.ares.hangingthread2- 0.1.jar OSGi Prole: J2SE-1.5 Date: 2006-08-24 T est Co v erage: 20% Kno wn V ulnerable Platforms: F elix; Equino x; Knopersh; Conierge Kno wn Robust Platforms: SF elix INRIA OSGi V ulner abilities 55 D.4 Bundle Co de - Nativ e D.4.1 Run time.exe.kill V ulnerabilit y Referene V ulnerabilit y Name: Run time.exe.kill Iden tier: Mb.nativ e.1 Origin: Ares resear h pro jet `maliious-bundle' Lo ation of Exploit Co de: Appliation Co de - Nativ e Co de Soure: OS (Kill utilit y); JVM - Run time API (Nativ e Co de Exeution) T arget: Platform Consequene T yp e: Una v ailabilit y In tro dution Time: Dev elopmen t Exploit Time: Exeution V ulnerabilit y Desription Desription: A bundle that stops the exeution platform through an OS all Preonditions: No Seurit yManager, or FileP ermission `exeute' on the required utilities (kill, ps, grep, ut) A tta k Pro ess: Kill the OS pro ess whi h orresp onds to the exeution platform; this pro ess is iden tied as far it is the paren t pro ess of the pro ess in whi h the maliious sript is exeuted Consequene Desription: The sh utdo wn ho oks of the platforms arer exeuted See Also: System.exit, Run time.halt, Reursiv e Thread Creation Protetion Existing Me hanisms: Ja v a P ermissions Enforemen t P oin t: Platform startup P oten tial Me hanisms: Co de stati Analysis A tta k Prev en tion: - Reation: Restart the platform V ulnerabilit y Implemen tation Co de Referene: F r.inria.ares.run time_exe_kill-0.1.jar OSGi Prole: J2SE-1.5 Date: 2006-08-21 T est Co v erage: 100% Kno wn V ulnerable Platforms: F elix; Equino x; Knopersh; Conierge; SF elix RR n ° 6231 56 Parr end & F r énot D.4.2 CPU Load Injetion V ulnerabilit y Referene V ulnerabilit y Name: CPU Load Injetion Iden tier: Mb.nativ e.2 Origin: MOSGI, Ares resear h pro jet Lo ation of Exploit Co de: Appliation Co de - Nativ e Co de Soure: Appliation Co de (No Algorithm Safet y - Nativ e Co de); JVM - Run time API (Nativ e Co de Exeution) T arget: Platform Consequene T yp e: Una v ailabilit y In tro dution Time: Dev elopmen t Exploit Time: Exeution V ulnerabilit y Desription Desription: A maliious bundle that onsumes 80% of the host CPU Preonditions: No Seurit yManager, or Run timeP ermission `loadLibrary' A tta k Pro ess: Exeute a C all that onsume CPU b y swit hing b et w een CPU- in tensiv e alulation and sleep time, aording to the sp eied ratio Consequene Desription: Most of the a v ailable CPU of the system is onsumed artiially See Also: Memory Load Injetion, Ramping Memory Load Injetion, Innite Lo op, Stand-alone Innite Lo op Protetion Existing Me hanisms: Ja v a P ermissions Enforemen t P oin t: Platform startup P oten tial Me hanisms: Misellaneous (extension of the Ja v a-Lev el seurit y me ha- nisms to the nativ e o de) A tta k Prev en tion: - Reation: Uninstall the maliious bundle V ulnerabilit y Implemen tation Co de Referene: F r.inria.ares.puloadinjetor-0.1.jar OSGi Prole: J2SE-1.5 Date: 2006-08-24 T est Co v erage: 00% Kno wn V ulnerable Platforms: F elix; Equino x; Knopersh; Conierge; SF elix INRIA OSGi V ulner abilities 57 D.5 Bundle Co de - Ja v a D.5.1 System.exit V ulnerabilit y Referene V ulnerabilit y Name: System.exit Iden tier: Mb.ja v a.1 Origin: Ares resear h pro jet `maliious-bundle' Lo ation of Exploit Co de: Appliation Co de - Ja v a API Soure: JVM - Run time API (System.exit metho d) T arget: Platform Consequene T yp e: Una v ailabilit y In tro dution Time: Dev elopmen t Exploit Time: Exeution V ulnerabilit y Desription Desription: A bundle that stops the platform b y alling 'System.exit(0)' Preonditions: No Seurit yManager, or presene of the Run timeP ermission `exitVM' A tta k Pro ess: - Consequene Desription: - See Also: Run time.halt, Exe.Kill, Reursiv e Thread Creation Protetion Existing Me hanisms: Ja v a P ermissions Enforemen t P oin t: Platform startup P oten tial Me hanisms: Co de stati Analysis A tta k Prev en tion: - Reation: Restart the platform V ulnerabilit y Implemen tation Co de Referene: F r.inria.ares.system_exit-0.1.jar OSGi Prole: J2SE-1.5 Date: 2006-08-11 T est Co v erage: 100% Kno wn V ulnerable Platforms: F elix; Equino x; Knopersh; Conierge; SF elix RR n ° 6231 58 Parr end & F r énot D.5.2 Run time.halt V ulnerabilit y Referene V ulnerabilit y Name: Run time.halt Iden tier: Mb.ja v a.2 Origin: Ares resear h pro jet `maliious-bundle' Lo ation of Exploit Co de: Appliation Co de - Ja v a API Soure: JVM - Run time API (Run time.halt metho d) T arget: Platform Consequene T yp e: Una v ailabilit y In tro dution Time: Dev elopmen t Exploit Time: Exeution V ulnerabilit y Desription Desription: A bundle that stops the platform b y alling 'Run time.getRun time.halt(0)' Preonditions: No Seurit yManager, or Run timeP ermission `exitVM' A tta k Pro ess: - Consequene Desription: The sh utdo wn ho oks are b y-passed See Also: System.exit, Exe.Kill, Reursiv e Thread Creation Protetion Existing Me hanisms: Ja v a P ermissions Enforemen t P oin t: Platform startup P oten tial Me hanisms: Co de stati Analysis A tta k Prev en tion: - Reation: Restart the platform V ulnerabilit y Implemen tation Co de Referene: F r.inria.ares.run time_halt-0.1.jar OSGi Prole: J2SE-1.5 Date: 2006-08-11 T est Co v erage: 100% Kno wn V ulnerable Platforms: F elix; Equino x; Knopersh; Conierge; SF elix INRIA OSGi V ulner abilities 59 D.5.3 Reursiv e Thread Creation V ulnerabilit y Referene V ulnerabilit y Name: Reursiv e Thread Creation Iden tier: Mb.ja v a.3 Origin: Ares resear h pro jet `maliious-bundle' Lo ation of Exploit Co de: Appliation Co de - Ja v a API Soure: JVM - APIs (Thread API); Appliation Co de (No Algorithm Safet y - Ja v a) T arget: Platform Consequene T yp e: Una v ailabilit y In tro dution Time: Dev elopmen t Exploit Time: Exeution V ulnerabilit y Desription Desription: The exeution platform is brough t to rash b y the reation of an exp o- nen tial n um b er of threads Preonditions: - A tta k Pro ess: Ea h thread reated b y the atta k bundle reates three other threads, and on tains a relativ ely small pa yload (a p df le). An exessiv e n um b er of Sta kOv ero wErrors auses an OutOfMemoryError Consequene Desription: - See Also: System.exit, Run time.halt, Exe.kill, Exp onen tial Ob jet Creation Protetion Existing Me hanisms: - Enforemen t P oin t: - P oten tial Me hanisms: - A tta k Prev en tion: Stop the ill-b eha ving thread Reation: Restart the platform V ulnerabilit y Implemen tation Co de Referene: F r.inria.ares.exp onen tialthreadn um b er-0.1.jar OSGi Prole: J2SE-1.5 Date: 2006-08-21 T est Co v erage: 50% Kno wn V ulnerable Platforms: F elix; Equino x; Knopersh; Conierge; SF elix RR n ° 6231 60 Parr end & F r énot D.5.4 Hanging Thread V ulnerabilit y Referene V ulnerabilit y Name: Hanging Thread Iden tier: Mb.ja v a.4 Origin: Ja v a puzzlers 77, 85 [ BG05 ℄ Lo ation of Exploit Co de: Appliation Co de - Ja v a API Soure: JVM - APIs (Thread API); Appliation Co de (V alue of Metho d P arameters) T arget: OSGi Elemen t - Servie; OSGi Elemen t - P a k age Consequene T yp e: Una v ailabilit y In tro dution Time: Dev elopmen t Exploit Time: Exeution V ulnerabilit y Desription Desription: Thread that mak e the alling en tit y hang (servie, or pa k age) Preonditions: - A tta k Pro ess: Use the Thread.sleep all with a large sleep duration to mak e the exeution hang Consequene Desription: If the sleep all is p erformed in a syn hronized blo k, the SIG_KILL (Ctrl+C) signal is augh t b y the platform See Also: Innite Startup Lo op Protetion Existing Me hanisms: - Enforemen t P oin t: - P oten tial Me hanisms: Co de stati Analysis A tta k Prev en tion: - Reation: - V ulnerabilit y Implemen tation Co de Referene: F r.inria.ares.hangingthread-0.1.jar, fr.inria.ares.hangingthread2- 0.1.jar OSGi Prole: J2SE-1.5 Date: 2006-08-28 T est Co v erage: 20% Kno wn V ulnerable Platforms: F elix; Equino x; Knopersh; Conierge; SF elix INRIA OSGi V ulner abilities 61 D.5.5 Sleeping Bundle V ulnerabilit y Referene V ulnerabilit y Name: Sleeping Bundle Iden tier: Mb.ja v a.5 Origin: Ares resear h pro jet `maliious-bundle' Lo ation of Exploit Co de: Appliation Co de - Ja v a API Soure: JVM - APIs (Thread API) T arget: OSGi Elemen t - Servie; OSGi Elemen t - P a k age Consequene T yp e: P erformane Breakdo wn In tro dution Time: Dev elopmen t Exploit Time: Exeution V ulnerabilit y Desription Desription: A maliious bundle that go es to sleep during a sp eied amoun t of time b efore ha ving nished its job (exp eriene time is 50 se.) Preonditions: - A tta k Pro ess: - Consequene Desription: - See Also: Hanging Thread Protetion Existing Me hanisms: - Enforemen t P oin t: - P oten tial Me hanisms: Co de stati Analysis A tta k Prev en tion: - Reation: - V ulnerabilit y Implemen tation Co de Referene: F r.inria.ares.sleepingbundle-0.1.jar OSGi Prole: J2SE-1.5 Date: 2006-08-28 T est Co v erage: 100% Kno wn V ulnerable Platforms: F elix; Equino x; Knopersh; Conierge; SF elix RR n ° 6231 62 Parr end & F r énot D.5.6 Big File Creator V ulnerabilit y Referene V ulnerabilit y Name: Big File Creator Iden tier: Mb.ja v a.6 Origin: Ares resear h pro jet `maliious-bundle' Lo ation of Exploit Co de: Appliation Co de - Ja v a API Soure: JVM - APIs (File API) T arget: Platform Consequene T yp e: P erformane Breakdo wn In tro dution Time: Dev elopmen t Exploit Time: Exeution V ulnerabilit y Desription Desription: A maliious bundle that reate a big (relativ e to a v ailable resoures) les to onsume disk memory spae Preonditions: No Seurit yManager, or FileP ermission `write' to the maliious bundl A tta k Pro ess: - Consequene Desription: - See Also: Big Bundle Installer Protetion Existing Me hanisms: Ja v a P ermissions Enforemen t P oin t: Platform startup P oten tial Me hanisms: Resoure Con trol and Isolation - Disk Spae (p er user/bundle); A ess Con trol - FileSystem (Limit the aess to the FileSystem to the data diretory of the bundle; on trol the size of the data reated through the BundleCon text) A tta k Prev en tion: - Reation: Erase les V ulnerabilit y Implemen tation Co de Referene: F r.inria.ares.biglereator-0.1.jar OSGi Prole: J2SE-1.5 Date: 2006-08-29 T est Co v erage: 00% Kno wn V ulnerable Platforms: F elix; Equino x; Knopersh; Conierge; SF elix INRIA OSGi V ulner abilities 63 D.5.7 Co de Observ er V ulnerabilit y Referene V ulnerabilit y Name: Co de Observ er Iden tier: Mb.ja v a.7 Origin: Ares resear h pro jet `maliious-bundle' Lo ation of Exploit Co de: Appliation Co de - Ja v a API Soure: JVM - APIs (Reetion API; ClassLoader API) T arget: OSGi Elemen t - P a k age; OSGi Elemen t - Servie Consequene T yp e: Undue A ess In tro dution Time: Dev elopmen t Exploit Time: Exeution V ulnerabilit y Desription Desription: A omp onen t that observ es the on ten t of another one Preonditions: No Seurit yManager, or ReetP ermission A tta k Pro ess: Use of the reetion API and the ClassLoader API Consequene Desription: Observ ation of the implemen tation of the published pa k ages and servies, the lasses that are aggregated to these pa k ages and servies, and lasses whi h name are kno wn (or guessed) See Also: Comp onen t Data Mo dier, Hidden Metho d Laun her Protetion Existing Me hanisms: Ja v a P ermissions Enforemen t P oin t: Platform startup P oten tial Me hanisms: - A tta k Prev en tion: - Reation: - V ulnerabilit y Implemen tation Co de Referene: Priv atelasssp y/fr.inria.ares.servieabuser -0.1 .jar OSGi Prole: J2SE-1.5 Date: 2007-02-12 T est Co v erage: 100% Kno wn V ulnerable Platforms: F elix; Equino x; Knopersh; SF elix RR n ° 6231 64 Parr end & F r énot D.5.8 Comp onen t Data Mo dier V ulnerabilit y Referene V ulnerabilit y Name: Comp onen t Data Mo dier Extends: Co de Observ er Iden tier: Mb.ja v a.8 Origin: Ares resear h pro jet `maliious-bundle' Lo ation of Exploit Co de: Appliation Co de - Ja v a API Soure: JVM - APIs (Reetion API; ClassLoader API) T arget: OSGi Elemen t - P a k age; OSGi Elemen t - Servie Consequene T yp e: Undue A ess In tro dution Time: Dev elopmen t Exploit Time: Exeution V ulnerabilit y Desription Desription: A bundle that mo dies the data (i.e. the v alue of the attributes of the lasses) of another one Preonditions: No Seurit yManager or ReetP ermission set; the name of the non- exp orted mo died lass m ust b e kno wn b eforehand, and on tain a publi stati eld. A tta k Pro ess: Use of the reetion API and the ClassLoader API to aess and mo dify the v alue of attributes Consequene Desription: Mo diation of the publi elds of the ob jets that are aessible from another bundle (servie implemen tations, or ob jets that are attributes of these servie implemen tations, or ob jets that are attributes of these latter ob jets, ...), or of the publi stati (non nal) elds of lasses whi h name is kno wn See Also: Co de Observ er, Hidden Metho d Laun her Protetion Existing Me hanisms: Ja v a P ermissions Enforemen t P oin t: Platform startup P oten tial Me hanisms: - A tta k Prev en tion: - Reation: - V ulnerabilit y Implemen tation Co de Referene: Priv atelassmanipulator/fr.inria.ares.servieabuse r-0 .1.jar OSGi Prole: J2SE-1.5 Date: 2007-02-12 T est Co v erage: 100% Kno wn V ulnerable Platforms: F elix; Equino x; Knopersh; Conierge; SF elix INRIA OSGi V ulner abilities 65 D.5.9 Hidden Metho d Laun her V ulnerabilit y Referene V ulnerabilit y Name: Hidden Metho d Laun her Extends: Co de Observ er Iden tier: Mb.ja v a.9 Origin: Ares resear h pro jet `maliious-bundle' Lo ation of Exploit Co de: Appliation Co de - Ja v a API Soure: JVM - APIs (Reetion API; ClassLoader API) T arget: OSGi Elemen t - P a k age Consequene T yp e: Undue A ess In tro dution Time: Dev elopmen t Exploit Time: Exeution V ulnerabilit y Desription Desription: A bundle that exeutes metho ds from lasses that are not exp orted of pro vided as servie. All lasses that are referened (diretly or indiretly) as lass attributes an b e aessed. Only publi metho ds an b e in v ok ed Preonditions: No Seurit yManager, or ReetP ermission set A tta k Pro ess: Use of the reetion API and the ClassLoader API to aess and exeutes metho ds in lasses that are not exp orted b y the bundle Consequene Desription: - See Also: Co de Observ er, Comp onen t Data Mo dier Protetion Existing Me hanisms: Ja v a P ermissions Enforemen t P oin t: Platform startup P oten tial Me hanisms: - A tta k Prev en tion: - Reation: - V ulnerabilit y Implemen tation Co de Referene: Hiddenlassexeutor/fr.inria.ares.servieabuser- 0.1 .jar OSGi Prole: J2SE-1.5 Date: 2007-02-12 T est Co v erage: 100% Kno wn V ulnerable Platforms: F elix; Equino x; Knopersh; Conierge; SF elix RR n ° 6231 66 Parr end & F r énot D.5.10 Memory Load Injetion V ulnerabilit y Referene V ulnerabilit y Name: Memory Load Injetion Iden tier: Mb.ja v a.10 Origin: MOSGI Ares Resear h Pro jet (OSGi Platform Monitoring) Lo ation of Exploit Co de: Appliation Co de - Ja v a API Soure: Appliation Co de (No Algorithm Safet y - Ja v a) T arget: Platform Consequene T yp e: P erformane Breakdo wn In tro dution Time: Dev elopmen t Exploit Time: Exeution V ulnerabilit y Desription Desription: A maliious bundle that onsumes most of a v ailable memory (61,65 MB in the example) Preonditions: - A tta k Pro ess: Store a h uge amoun t of data in a b yte arra y Consequene Desription: Only a limited memory spae is a v ailable for the exe- ution of programs See Also: Ramping Memory Load Injetion, CPU Load Injetion Protetion Existing Me hanisms: - Enforemen t P oin t: - P oten tial Me hanisms: Co de stati Analysis ; Resoure Con trol and Isolation - Memory A tta k Prev en tion: - Reation: - V ulnerabilit y Implemen tation Co de Referene: F r.inria.ares.memloadinjetor-0.1.jar OSGi Prole: J2SE-1.5 Date: 2006-08-24 T est Co v erage: 100% Kno wn V ulnerable Platforms: F elix; Equino x; Knopersh; Conierge; SF elix INRIA OSGi V ulner abilities 67 D.5.11 Stand Alone Innite Lo op V ulnerabilit y Referene V ulnerabilit y Name: Stand Alone Innite Lo op Iden tier: Mb.ja v a.11 Origin: Ares resear h pro jet `maliious-bundle' Lo ation of Exploit Co de: Appliation Co de - Ja v a Co de Soure: Appliation Co de (No Algorithm Safet y - Ja v a) T arget: Platform Consequene T yp e: P erformane Breakdo wn In tro dution Time: Dev elopmen t Exploit Time: Exeution V ulnerabilit y Desription Desription: A v oid lo op in a lonesome thread that onsumes m u h of the a v ailable CPU Preonditions: - A tta k Pro ess: Innite lo op laun hed in an indep enden t thread Consequene Desription: - See Also: Innite Startup Lo op, CPU Load Injetion Protetion Existing Me hanisms: - Enforemen t P oin t: - P oten tial Me hanisms: Co de stati Analysis ; Resoure Con trol and Isolation - CPU A tta k Prev en tion: - Reation: - V ulnerabilit y Implemen tation Co de Referene: F r.inria.ares.standalonelo op-0.1.jar OSGi Prole: J2SE-1.5 Date: 2006-09-22 T est Co v erage: 10% Kno wn V ulnerable Platforms: F elix; Equino x; Knopersh; Conierge; SF elix RR n ° 6231 68 Parr end & F r énot D.5.12 Innite Lo op in Metho d Call V ulnerabilit y Referene V ulnerabilit y Name: Innite Lo op in Metho d Call Iden tier: Mb.ja v a.12 Origin: Ja v a puzzlers 26 to 33 [ BG05 ℄ Lo ation of Exploit Co de: Appliation Co de - Ja v a Co de Soure: Appliation Co de (No Algorithm Safet y - Ja v a) T arget: Platform; OSGi Elemen t - Servie; OSGi Elemen t - P a k age Consequene T yp e: P erformane Breakdo wn - Platform; Una v ailabilit y - Servie, P a k age In tro dution Time: Dev elopmen t Exploit Time: Exeution V ulnerabilit y Desription Desription: An innite lo op is exeuted in a metho d all (at lass use, pa k age use) Preonditions: - A tta k Pro ess: An innite lo op is exeuted in a metho d all Consequene Desription: Blo k the alling en tit y (the alling lass or servie. Beause of the innite lo op, most CPU resoure is onsumed See Also: CPU Load Injetion, Stand-alone Innite Lo op, Hanging Thread Protetion Existing Me hanisms: - Enforemen t P oin t: - P oten tial Me hanisms: Co de stati Analysis ; Resoure Con trol and Isolation - CPU A tta k Prev en tion: - Reation: - V ulnerabilit y Implemen tation Co de Referene: F r.inria.ares.innitelo opinmetho dall-0.1.jar OSGi Prole: J2SE-1.5 Date: 2006-08-24 T est Co v erage: 10% Kno wn V ulnerable Platforms: F elix; Equino x; Knopersh; Conierge; SF elix INRIA OSGi V ulner abilities 69 D.5.13 Exp onen tial Ob jet Creation V ulnerabilit y Referene V ulnerabilit y Name: Exp onen tial Ob jet Creation Iden tier: Mb.ja v a.13 Origin: Ares resear h pro jet `maliious-bundle' Lo ation of Exploit Co de: Appliation Co de - Ja v a Co de Soure: Appliation Co de (No Algorithm Safet y - Ja v a) T arget: OSGi Elemen t - Servie; OSGi Elemen t - P a k age Consequene T yp e: Una v ailabilit y In tro dution Time: Dev elopmen t Exploit Time: Exeution V ulnerabilit y Desription Desription: Ob jets are reated in a exp onen tial w a y Preonditions: - A tta k Pro ess: A giv en ob jet reate in its onstrutor 3 instanes of ob jet of the same lass Consequene Desription: The metho d all ab orts with a 'Sta kOv ero wError' See Also: Reursiv e Thread Creation Protetion Existing Me hanisms: - Enforemen t P oin t: - P oten tial Me hanisms: Co de stati Analysis ; Resoure Con trol and Isolation - Memory A tta k Prev en tion: - Reation: - V ulnerabilit y Implemen tation Co de Referene: F r.inria.ares.exp onen tialob jetreation-0.1 OSGi Prole: J2SE-1.5 Date: 2007-01-09 T est Co v erage: 50% Kno wn V ulnerable Platforms: F elix; Equino x; Knopersh; Conierge; SF elix RR n ° 6231 70 Parr end & F r énot D.6 Bundle Co de - OSGi APi D.6.1 Laun h a Hidden Bundle V ulnerabilit y Referene V ulnerabilit y Name: Laun h a Hidden Bundle Iden tier: Mb.osgi.6 Origin: Ares resear h pro jet `maliious-bundle' Lo ation of Exploit Co de: Appliation Co de - OSGi API Soure: OSGi Platform - Life-Cyle La y er (Bundle Managemen t); JVM - APIs (File API) T arget: Platform Consequene T yp e: Undue A ess In tro dution Time: Dev elopmen t Exploit Time: Exeution V ulnerabilit y Desription Desription: A bundle that laun hes another bundle it on tains (the on tained bun- dle ould b e masqued as with a 'MyFile.ja v a' le name) Preonditions: No Seurit yManager, or OSGi P ermissionA dmin and FileP ermission `write' for the maliious bundle A tta k Pro ess: A bundle reates a new bundle on the le system, and laun hes i Consequene Desription: A non foreseen bundle is installed. If install time he k- ing exists (su h as digital signature), it passes through the v eriation pro ess See Also: Pirat Bundle Manager Protetion Existing Me hanisms: Ja v a P ermissions Enforemen t P oin t: Platform startup P oten tial Me hanisms: - A tta k Prev en tion: - Reation: Uninstall the maliious bundle V ulnerabilit y Implemen tation Co de Referene: F r.inria.ares.silen tloader-0.1.jar, fr.inria.ares.silen tloader.onierge- 0.1.jar (without swing) OSGi Prole: J2SE-1.5 Date: 2006-10-28 T est Co v erage: 100% Kno wn V ulnerable Platforms: F elix; Equino x; Knopersh; Conierge; SF elix INRIA OSGi V ulner abilities 71 D.6.2 Pirat Bundle Manager V ulnerabilit y Referene V ulnerabilit y Name: Pirat Bundle Manager Iden tier: Mb.osgi.7 Origin: Ares resear h pro jet `maliious-bundle' Lo ation of Exploit Co de: Appliation Co de - OSGi API Soure: OSGi Platform - Life-Cyle La y er (Bundle Managemen t) T arget: OSGi Elemen t - Bundle Consequene T yp e: Undue A ess In tro dution Time: Dev elopmen t Exploit Time: Exeution V ulnerabilit y Desription Desription: A bundle that manages others without b eing requested to do so(here: stops and starts the vitim bundle) Preonditions: No Seurit yManager, or OSGi P ermission A dmin A tta k Pro ess: The pirat bundle aesses to the bundle on text, and then to its vitim bundle Consequene Desription: - See Also: Laun h Hidden Bundle Protetion Existing Me hanisms: Ja v a P ermissions Enforemen t P oin t: Platform startup P oten tial Me hanisms: - A tta k Prev en tion: - Reation: - V ulnerabilit y Implemen tation Co de Referene: F r.inria.ares.piratbundlemanager-0.1.jar, fr.inria.ares.piratbundlemanager.onierge- 0.1.jar (no swing) OSGi Prole: J2SE-1.5 Date: 2006-10-30 T est Co v erage: 40% Kno wn V ulnerable Platforms: F elix; Equino x; Knopersh; Conierge; SF elix RR n ° 6231 72 Parr end & F r énot D.6.3 Zom bie Data V ulnerabilit y Referene V ulnerabilit y Name: Zom bie Data Iden tier: Mb.osgi.8 Origin: Ares resear h pro jet `maliious-bundle' Lo ation of Exploit Co de: Appliation Co de - OSGi API Soure: OSGi Platform - Life-Cyle La y er (No Remo v al of Uninstalled Bundle Data) T arget: Platform Consequene T yp e: P erformane Breakdo wn In tro dution Time: Dev elopmen t Exploit Time: Exeution V ulnerabilit y Desription Desription: Data stored in the lo al OSGi data store are not deleted when the related bundle is uninstalled. It th us b eomes una v ailable and onsumes disks spae (esp eially on resoure onstrain t devies) Preonditions: No SeuriyManager, or FileP ermission set A tta k Pro ess: - Consequene Desription: - See Also: Big File Creator Protetion Existing Me hanisms: Ja v a P ermissions Enforemen t P oin t: Platform startup P oten tial Me hanisms: OSGi Platform Mo diation - Bundle Uninstall Pro ess (Delete Bundle Data when Bundles are uninstalled) A tta k Prev en tion: - Reation: Erase les V ulnerabilit y Implemen tation Co de Referene: F r.inria.ares.biglereator-0.1.jar OSGi Prole: J2SE-1.5 Date: 2007-04-20 T est Co v erage: 100% Kno wn V ulnerable Platforms: F elix; Conierge Kno wn Robust Platforms: Equino x; Knopersh; SF elix INRIA OSGi V ulner abilities 73 D.6.4 Cyle Bet w een Servies V ulnerabilit y Referene V ulnerabilit y Name: Cyle Bet w een Servies Iden tier: Mb.osgi.9 Origin: Ares resear h pro jet `maliious-bundle' Lo ation of Exploit Co de: Appliation Co de - OSGi API Soure: OSGi Platform - Servie La y er (Ar hiteture of the Appliation - No V alida- tion of Servie Dep endeny) T arget: OSGi Elemen t - Servie; OSGi Elemen t - P a k age Consequene T yp e: Una v ailabilit y In tro dution Time: Servie Publiation or Resolution Exploit Time: Exeution V ulnerabilit y Desription Desription: A yle exists in the servies all Preonditions: - A tta k Pro ess: Servie 1 alls servie 2, whi h alls servie 1. The atta k an b e implemen ted as a fak e 'servie 2', whi h alls servie 1 ba k instead of return prop erly from the metho d that servie 1 alled Consequene Desription: `ja v a.lang.Sta kOv ero wError', servie 1 an not b e exeuted See Also: - Protetion Existing Me hanisms: - Enforemen t P oin t: - P oten tial Me hanisms: Servie-lev el dep endeny v alidation A tta k Prev en tion: - Reation: - V ulnerabilit y Implemen tation Co de Referene: F r.inria.ares.lien tserv er1-0.1.jar, fr.inria.ares.lien tserv er2-0.1.jar OSGi Prole: J2SE-1.5 Date: 2006-10-28 T est Co v erage: 100% Kno wn V ulnerable Platforms: F elix; Equino x; Knopersh; Conierge; SF elix RR n ° 6231 74 Parr end & F r énot D.6.5 Numerous Servie Registration V ulnerabilit y Referene V ulnerabilit y Name: Numerous Servie Registration Iden tier: Mb.osgi.10 Origin: Ares resear h pro jet `maliious-bundle' Lo ation of Exploit Co de: Appliation Co de - OSGi API Soure: OSGi Platform - Servie La y er (Unon trolled Servie Registration) T arget: OSGi Elemen t - Bundle; OSGi Elemen t - Platform Managemen t Utilit y Consequene T yp e: P erformane Breakdo wn In tro dution Time: Dev elopmen t Exploit Time: Exeution V ulnerabilit y Desription Desription: Registration of a high n um b er of (p ossibly iden tial) servies through an lo op Preonditions: No Seurit yManager, or OSGi ServieP ermission A tta k Pro ess: Publish a giv en servie in a(n) (e.g. innite) lo op Consequene Desription: Imp ortan t duration of bundle stop See Also: - Protetion Existing Me hanisms: Ja v a P ermissions Enforemen t P oin t: Platform startup P oten tial Me hanisms: OSGi Platform Mo diation - Servie Publiation (limita- tion of the n um b er of servies published in the framew ork) A tta k Prev en tion: - Reation: - V ulnerabilit y Implemen tation Co de Referene: F r.inria.ares.n umerousservies-0.1.jar OSGi Prole: J2SE-1.5 Date: 2007-01-09 T est Co v erage: 100% Kno wn V ulnerable Platforms: F elix; Equino x; Knopersh; Conierge Kno wn Robust Platforms: SF elix INRIA OSGi V ulner abilities 75 D.6.6 F reezing Numerous Servie Registration V ulnerabilit y Referene V ulnerabilit y Name: F reezing Numerous Servie Registration Iden tier: Mb.osgi.11 Origin: Ares resear h pro jet `maliious-bundle' Lo ation of Exploit Co de: Appliation Co de - OSGi API Soure: OSGi Platform - Servie La y er (Unon trolled Servie Registration) T arget: OSGi Elemen t - Bundle; OSGi Elemen t - Platform Managemen t Utilit y Consequene T yp e: P erformane Breakdo wn In tro dution Time: Dev elopmen t Exploit Time: Exeution V ulnerabilit y Desription Desription: Registration of a high n um b er of (p ossibly iden tial) servies through an lo op, in the Conierge OSGi Platform implemen tation Preonditions: No Seurit yManager, or OSGi ServieP ermission; exeution in the Conierge OSGi Platform A tta k Pro ess: Publish a giv en servie in a(n) (e.g. innite) lo op Consequene Desription: The Platform almost totally freeze. OutOfMemory- Errors are rep orted v ery frequen tly when the shell is used or when bundles p erform ations. See Also: - Protetion Existing Me hanisms: Ja v a P ermissions Enforemen t P oin t: Platform startup P oten tial Me hanisms: OSGi Platform Mo diation - Servie Publiation (limita- tion of the n um b er of servies published in the framew ork) A tta k Prev en tion: - Reation: - V ulnerabilit y Implemen tation Co de Referene: F r.inria.ares.n umerousservies-0.1.jar OSGi Prole: J2SE-1.5 Date: 2007-04-20 T est Co v erage: 100% Kno wn V ulnerable Platforms: Conierge RR n ° 6231 76 Parr end & F r énot D.7 Bundle F ragmen ts D.7.1 Exeute Hidden Classes V ulnerabilit y Referene V ulnerabilit y Name: Exeute Hidden Classes Iden tier: Mb.osgi.12 Origin: Ares resear h pro jet `maliious-bundle' Lo ation of Exploit Co de: Bundle F ragmen t Soure: OSGi Platform - Mo dule La y er (Bundle F ragmen ts) T arget: OSGi Elemen t - P a k age Consequene T yp e: Undue A ess In tro dution Time: Dev elopmen t Exploit Time: Exeution V ulnerabilit y Desription Desription: A fragmen t bundle exp orts a p k age that is not made visible b y the host. Other bundles an then exeute the lasses in this pa k age Preonditions: No Seurit yManager, or BundleP ermission, `HOST' set to the host, and BundleP ermission, `FRA GMENT', set to the maliious fragmen t A tta k Pro ess: - Consequene Desription: Mo diation of stati attributes, publiation of hidden data or exeution of seret pro edure; Conierge do es not supp ort fragmen t, and do es therefore not on tains this vulnerabilit y See Also: F ragmen t Substitution, A ess Proteted P a k age through split P a k ages Protetion Existing Me hanisms: Ja v a P ermissions Enforemen t P oin t: Platform startup P oten tial Me hanisms: - A tta k Prev en tion: - Reation: - V ulnerabilit y Implemen tation Co de Referene: Usehiddenlass/pa k ageexp ortfragmen t.jar + usehiddenlass/fr.inria.ares.fragmen taomplie-0 .1.jar OSGi Prole: J2SE-1.5 Date: 2007-02-14 T est Co v erage: 100% Kno wn V ulnerable Platforms: F elix; Equino x; Knopersh; SF elix INRIA OSGi V ulner abilities 77 D.7.2 F ragmen t Substitution V ulnerabilit y Referene V ulnerabilit y Name: F ragmen t Substitution Iden tier: Mb.osgi.13 Origin: Ares resear h pro jet `maliious-bundle' Lo ation of Exploit Co de: Bundle F ragmen t Soure: OSGi Platform - Mo dule La y er (Bundle F ragmen ts) T arget: OSGi Elemen t - Bundle Consequene T yp e: Undue A ess In tro dution Time: Dev elopmen t Exploit Time: Exeution V ulnerabilit y Desription Desription: A sp ei fragmen t bundle is replae b y another, whi h pro vides the same lasses but with maliious implemen tation Preonditions: No Seurit yManager, or BundleP ermission `HOST' and `FRA G- MENT' set to the required bundles, and OSGi A dminP ermission set to the substitutor bundle A tta k Pro ess: A maliious bundles uninstalls the urren t fragmen t, and install a maliious one (that is em b edded in it) instead Consequene Desription: The host bundle exeutes a false implemen tations of lasses pro vided b y a fragmen t; Conierge do es not supp ort fragmen t, and do es there- fore not on tains this vulnerabilit y See Also: Laun h Hidden Bundle, Pirat Bundle Manager, Exeute Hidden Class, A ess Proteted P a k age through split P a k ages Protetion Existing Me hanisms: Ja v a P ermissions Enforemen t P oin t: Platform startup P oten tial Me hanisms: - A tta k Prev en tion: - Reation: - V ulnerabilit y Implemen tation Co de Referene: F ragmen tpro videspa k agestohost/fr.inria .ar es.fra gmen tsubstitutor (has an em b edded fragmen tpro videspa k agestohost/testfrag men tlone bundle) OSGi Prole: J2SE-1.5 Date: 2007-02-16 T est Co v erage: 100% Kno wn V ulnerable Platforms: F elix; Equino x; Knopersh; SF elix RR n ° 6231 78 Parr end & F r énot D.7.3 A ess Proteted P a k age through split P a k ages V ulnerabilit y Referene V ulnerabilit y Name: A ess Proteted P a k age through split P a k ages Iden tier: Mb.osgi.14 Origin: Ares resear h pro jet `maliious-bundle' Lo ation of Exploit Co de: Bundle F ragmen t Soure: OSGi Platform - Mo dule La y er (Bundle F ragmen ts) T arget: OSGi Elemen t - P a k age Consequene T yp e: Undue A ess In tro dution Time: Dev elopmen t Exploit Time: Exeution V ulnerabilit y Desription Desription: A pa k age is built in the fragmen t, that ha v e the same name than a pa k age in the host. All pa k age-proteted lasses and metho ds an then b e aessed from the fragmen t, and through a pro xy exp orted in the framew ork Preonditions: No Seurit yManager, or BundleP ermission `HOST' and `FRA G- MENT' set to the suitable bundles A tta k Pro ess: - Consequene Desription: Conierge do es not supp ort fragmen t, and do es there- fore not on tains this vulnerabilit y See Also: Exeute Hidden Class, F ragmen t Substitution Protetion Existing Me hanisms: Ja v a P ermissions Enforemen t P oin t: Platform startup P oten tial Me hanisms: Misellaneous (the Ja v a Ar hiv e dened 'seal' k eyw ord in the Manifest File do es not prev en t the pa k age to b e ompleted b y a split pa k age in the fragmen t. It probably should) A tta k Prev en tion: - Reation: - V ulnerabilit y Implemen tation Co de Referene: F ragmen tsplitpa k age/fr.inria.ares.testhostbundle-0.1.jar + fragmen tsplitpa k age/testfragmen t-0.1.jar + fragmen tsplitpa k age/fr.inria.ares.fragmen tlien t-0 .1.jar OSGi Prole: J2SE-1.5 Date: 2007-02-17 T est Co v erage: 100% Kno wn V ulnerable Platforms: F elix; Equino x; Knopersh; SF elix INRIA OSGi V ulner abilities 79 E A tta k Implemen tations The implemen tations of the presen ted atta ks are giv en. T w o t yp es of atta ks an b e p er- formed through sev eral dieren t implemen tations. E.1 Innite Lo ops The v arious implemen tations of Innites Lo ops in Ja v a are giv en. They mat h the V ulner- abilit y m b.ja v a.8 and m b.ja v a.12 in our atalog. E.1.1 First Option boolean ondition==true; While(ondition ); E.1.2 Seond Option This implemen tation is giv en in the Ja v a Puzzler #26 [BG05 ℄. publi stati final int END = Integer.MAX\_VA LUE ; publi stati final int START = END - 100; // or any other start value for (int i = START; i <= END; i++); E.1.3 Third Option This implemen tation is giv en in the Ja v a Puzzler #27 [BG05 ℄. int i = 0; while (-1 << i != 0) {i++;} E.1.4 F ourth Option This implemen tation is giv en in the Ja v a Puzzler #28 [BG05 ℄. RR n ° 6231 80 Parr end & F r énot double i = 1.0/0.0; //an also be set to Double.POSITIVE\ _IN FI NI TY, //or a suffiiently big number (suh as 1.0e17 or bigger) while (i == i + 1); E.1.5 Fifth Option This implemen tation is giv en in the Ja v a Puzzler #45 [BG05 ℄. publi stati void main(String[℄ args) { workHard(); } private stati void workHard() { try { workHard(); } finally { workHard(); } } E.1.6 Other Implemen tations F or further implemen tation of the innite lo op, y ou an also refer to the Ja v a Puzzler #29 (double i = Double.NaN;while(i! =i);), the Ja v a Puzzler #30 (String i = a; while (i != i + 0)), puzzler 31 ( short i = -1; while (i != 0) i >= 1;), the Ja v a Puzzler #32 (In teger i = new In teger(0); In teger j = new In teger(0); while (i <= j && j <= i && i != j);), the Ja v a Puzzler #33 (in t i = In teger.MIN_V ALUE; while (i != 0 && i == -i);(//or long i = Long.MIN_V ALUE), for() lo op with unsuitable mo diation of the v ariables that in terv ene in the stop ondition). E.2 Hanging Thread The v arious implemen tations of Hanging Threads in Ja v a are giv en. They mat h the V ul- nerabilit y m b.ja v a.9 in our atalog. INRIA OSGi V ulner abilities 81 E.2.1 First Option This implemen tation is giv en in the Ja v a Puzzler #77 [BG05 ℄. RR n ° 6231 82 Parr end & F r énot import java.util.Timer ; import java.util.Timer Ta sk; publi lass Stopper extends Thread{ private volatile boolean quittingTime = false; publi void run() { while (!quittingTime) pretendToWork(); System.out.print ln( `` Be er is good''); } private void pretendToWork() { try { Thread.sleep(300) ; // Sleeping on the job? } ath (InterruptedEx ept io n ex) { } } // It's quitting time, wait for worker - Called by good boss synhronized void quit() throws InterruptedExep tio n { quittingTime = true; join(); } // Resind quitting time - Called by evil boss synhronized void keepWorking() { quittingTime = false; } publi void hang(){ System.out.prin tln (` `H ang in gT hre ad Stopper ready'' +``to behave badly''); try { final Stopper worker = new Stopper(); worker.start(); Timer t = new Timer(true); // Daemon thread t.shedule(new TimerTask() { publi void run() { worker.keepWorki ng () ; } }, 500); Thread.sleep(400 ); worker.quit(); } ath( InterruptedExe pti on e) { e.printStakTra e( ); } } } INRIA OSGi V ulner abilities 83 E.2.2 Seond Option This implemen tation is giv en in the Ja v a Puzzler #85 [BG05 ℄. stati { Thread t = new Thread(new Runnable() { publi void run() { initialized = true; } }); t.start(); try { t.join(); } ath(Interrupted Ex e pti on e) { throw new AssertionError(e ); } } E.2.3 Other Implemen tations F or other implemen tations, see the JLin t Man ual 25 for `deadlo k errors' (2 o urrenes). 25 h ttp://artho.om/jlin t/man ual.h tml RR n ° 6231 84 Parr end & F r énot F XML2T ex Do umen tation Generator T o ease the v alidation of the V ulnerabilit y P atterns and the generation of the atalog, w e dev elop ed a small to ol based on XML te hnologies, XML2T ex. The o v erall pro ess of the XML2tex Do umen tation Generation pro ess is giv en in Figure 17 . Figure 17 presen ts the o v erview of the XML2tex Do umen tation Generation pro ess. Figure 17: XML2T ex Pro ess First, the vulnerabilit y pattern is he k ed against a referene XML S hema (XSD). Se- ondly , its is transformed in to an XML rep ort through XSL transformations. An XML Rep ort is a sp ei XML le whi h is easily mappable to do umen tation: its on tains in partiular a title, paragraphs, and so on. Thirdly , the XML rep ort is transformed in to a T ex le through an A d-Ho parser named Rep ort2T ex. The v alidit y of the V ulnerabilit y P atterns of the atalog is guaran teed b y their v alidation against the formal expression of the P attern giv en in the app endix C. The w ell-formedness of the XML Rep ort and of the T ex le are ensures b y the suessiv e parsers. INRIA Unité de recherche INRIA Rhône-Alpe s 655, av enue de l’Eu rope - 38334 Montbonn ot Sain t-Ismier (France) Unité de reche rche INRIA Futurs : Parc Club Orsay Uni versité - ZAC des V ignes 4, rue Jacques Monod - 91893 ORSA Y Cedex (Franc e) Unité de reche rche INRIA Lorraine : LORIA, T echnopôle de Nancy -Brabois - Campus scientifique 615, rue du Jardin Botani que - BP 101 - 54602 V illers-lè s-Nancy Cedex (France) Unité de reche rche INRIA Rennes : IRISA, Campus univ ersitai re de Beaulie u - 35042 Rennes Cedex (Franc e) Unité de recherch e INRIA Rocquen court : Domaine de V oluceau - Rocquencourt - BP 105 - 78153 Le Chesnay Cedex (France) Unité de reche rche INRIA Sophia Antipolis : 2004, route des Lucioles - BP 93 - 06902 Sophia Antipolis Cedex (France) Éditeur INRIA - Domaine de V oluceau - Rocquencourt , BP 105 - 78153 Le Chesnay Cede x (France) http://www.inria.fr ISSN 0249 -6399 apport technique
Original Paper
Loading high-quality paper...
Comments & Academic Discussion
Loading comments...
Leave a Comment