• Aucun résultat trouvé

7.1 Conclusion

L’approche à base de composants permet de concevoir des applications logicielles flexibles, modulaires et réutilisables. Le travail proposé dans le cadre de ce manuscrit consiste à sécuriser une application basé sur les composants en utilisant les patrons de sécu-rité.

Comme présenté dans la partie état de l’art, et dans la plus part des approches existantes (voir le chapitre 4), la sécurité est généralement intégrée à la fin du processus de dévelop-pement des systèmes. Cette façon de faire manque de flexibilité puisque la sécurité devient étroitement liée au code fonctionnel des applications et ne peut être configurée indépendam-ment. En effet, cette intégration tardive rend difficile la manipulation ou la modification des exigences de sécurité [Kanneganti et Chodavarapu,2008]. Dans ce travail, nous proposons d’intégrer la sécurité dés les premières phases de développement d’une application en uti-lisant la notion des patrons de sécurité en fonction des besoins et des exigences du système. En particulier, nous nous sommes intéressés aux applications à base de composants. Dans ce travail de thèse, nous avons proposé un processus complet pour sécuriser les applications orientées composants. Ce processus est basé sur l’approche MDA. En effet ce choix nous a permis d’appliquer dynamiquement les patrons de sécurité de la phase de modélisation jusqu’à la génération de code.

Dans la première partie de ce travail, nous avons dressé un état de l’art qui nous a permis de nous positionner par rapport à l’existant. Dans cette première étape, nous nous sommes focalisés en particulier sur la modélisation à base de composants. Nous avons présenté les différents concepts relatifs à cette approche ainsi que les modèles académiques et indus-trielles existants. Dans ce sens nous avons illustré en détail ce paradigme à travers le mo-dèle UML 2.0 sur le quel nous nous sommes basé dans le cadre de ce travail de thèse. Dans un second temps nous avons étudié la notion de patron et particulièrement les patrons de sécurité. Nous avons présenté ainsi une cartographie des principaux patrons de sécurité proposés dans la littérature. Et nous nous sommes focalisé en particulier sur les patrons traitants les problèmes liés aux droits d’accès. Cette cartographie sera en effet utilisée lors de l’implémentation de l’approche en permettant une sélection guidée des patrons à uti-liser. L’objectif de ce travail est de proposer un processus basé sur l’IDM. Dans cet esprit nous nous sommes intéressés en particulier à présenter les principaux concepts et notions

liés à l’IDM. Afin d’assurer la séparation entre le code fonctionnelle des applications et les propriétés non fonctionnelles à rajouter (la sécurité dans notre cas), nous avons choisi l’uti-lisation de la programmation par aspects pour assurer cette séparation. Dans cette même partie nous avons donc présenté les principaux avantages de cette approche.

Nous avons aussi présenté, d’une manière non exhaustive, les principaux travaux déjà existants visant à sécurisé des applications. Ces travaux et comme déjà présentés (pointeur vers section travaux connexes) restent limités par le manque de supports et ne se sont pas intéressé, comme dans le cadre de se travail, à l’utilisation des patrons de sécurité pour des applications à base de composants.

En se basant sur cet état de l’art et l’ensemble des travaux connexes présentés, nous avons présenté le processus SCRIP. Il s’agit d’un processus IDM permettant la prise en compte des aspects relatif à la sécurité dans les applications basées sur les composants. La sécurité est donc intégrée à travers les patrons dès les premières phases de conception. Cette application passe par la définition d’un ensemble de règles et de transformations. Nous uti-lisons ainsi la notion de profil pour étendre les modèles UML. En effet nous définissons pour chaque politique de sécurité un profil UML correspondant... Ainsi et à travers un en-semble de règle de transformation, nous assurons l’intégration dynamique de ces notions dans le modèle de l’application. A la phase de modélisation, les règles d’intégration sont appliquées semi-automatiquement après le choix de la politique à appliquer puis le choix du patron approprié afin de produire un modèle à composants sécurisé.

Le processus présenté définit explicitement une méthodologie permettant la prise en compte des solutions proposées par les patrons dans les modèles à base de composants. Ce processus couvre les différentes phases du processus de développement.

Ce processus présente l’avantage de la séparation entre l’expertise du domaine d’appli-cation et l’expertise en matière de sécurité. L’inclusion de la sécurité au cours du processus de développement de logiciels devient donc plus pratique pour les architectes/designers. L’approche que nous proposons reste relativement simple et parfaitement utilisable par des non experts en sécurité. Comprendre les patrons de sécurité à partir de leur description lisible et avoir une connaissance sur les applications à base de composants sont les compé-tences suffisantes pour utiliser ce processus.

Une fois définis, nous avons formalisé le processus SCRIP avec le formalisme SPEM. Cela nous a permis de vérifier l’applicabilité et la cohérence du processus à travers la cohérence des différentes étapes ainsi que les différents inputs et outputs.

La troisième partie de ce manuscrit présente l’implémentation et la mise en ?uvre du processus présenté dans la deuxième partie. Un premier prototype nommé SCRI-TOOL sup-portant la démarche d’intégration des patrons de sécurité, allant de la modélisation jusqu’à la génération de code a été réalisé. Ce prototype, opérationnel, a été développé sous Eclipse. Le choix du langage d’implantation des règles s’est porté sur le langage ATL. Ce choix nous a permis de coder la plupart des règles sous une forme déclarative.

Ce travail offre aux développeurs non experts en sécurité la possibilité d’exploiter de façon pertinente les patrons de sécurité lors du développement de leurs applications. De plus l’utilisation du plug-in proposé ne nécessite pas de connaissances spécifiques.

Le prototype proposé se présente sous forme d’un plug-in qui peut être installé sous l’environnement de développement Eclipse. Le concepteur ayant déjà le modèle à base de composants de son application, peut sélectionner dans un premier temps le patron de sécu-rité qu’il souhaite intégrer. En lançant le processus, la politique de sécusécu-rité encapsulée par ce patron sera intégrée dans le modèle à composants. Comme résultat de cette application, le prototype nous propose un modèle à composants sécurisé intégrant les solutions proposées par le patron. Cette application peut être faite de manière itérative en sélectionnant à chaque fois les patrons adéquats selon les besoins de l’application.

Lors de la génération de code, et dans le but de garder la séparation entre les propriétés fonctionnelles de l’application à modéliser et la sécurité, nous avons opté pour les techno-logies aspects. Ce choix nous a permis d’intégrer proprement la sécurité au niveau code tous en assurant cette séparation. Les aspects sont codés en Java et sont intégrés au code fonctionnel en utilisant un tisseur d’aspects, AspectJ dans notre cas.

Afin de valider le prototype proposé, nous avons appliqué l’approche proposée à travers l’outil SCRI-TOOL sur divers exemples. Cette application nous a permis dans un premier temps de valider les différents choix techniques réalisés comme l’utilisation du langage ATL pour coder les règles de transformation ou bien le choix des aspects pour la génération du code. Nous avons ainsi présenté un cas d’étude global dans la troisième partie de ce ma-nuscrit. Pour cela nous avons choisi un système de gestion des soins et particulièrement la gestion des dossiers médicaux personnels.Le choix de ce cas d’étude s’explique par l’impor-tance ainsi que les différentes exigences en terme de sécurité requise pour le bon fonction-nement d’une telle application.

7.2 Perspectives

Le travail décrit dans cette thèse a permis la mise en place d’un processus IDM pour l’intégration des patrons de sécurité dans une architecture à base de composants. Dans cette thèse, nous avons cherché à couvrir l’ensemble des étapes de développement logiciel, allant de la modélisation à la génération de code.

Nous avons proposé un processus d’élaboration de profils UML à partir des patrons de sécurité. Ce travail laisse entrevoir plusieurs perspectives. A court terme, il serait possible de définir des règles permettant de (semi)-automatiser l’élaboration de ces profils. Puisque, dans les patrons de sécurité plusieurs participants partagent la même sémantique et dans un but de réutilisation ces règles peuvent être factoriser pour définir de nouvelles règles.

7.2.1 Vers un méta-modèle de composants générique

L’approche proposée est illustré dans un premier temps en utilisant le modèle à com-posant UML 2.0. L’utilisation d’autres modèles à comcom-posants reste parmi les perspectives intéressantes à traiter. Cela permettra de généraliser l’approche et de la rendre plus univer-selle. En effet pouvoir intégrer les patrons de sécurité dans différents modèles architecturaux comme les modèles multi-agents ou orientées services est parmi les perspectives intéres-santes qui s’ouvrent à nous.

Une première réflexion consiste à proposer un cadre générique pour concevoir une ap-plication à base de composants, c’est-à-dire proposer un méta-modèle générique, complet et extensible qui couvre l’ensemble des modèles déjà proposés. L’idée principale est de pro-poser une représentation commune pour cibler plusieurs modèles à base de composants existants (par exemple CCM, Fractal, etc.). L’avantage principal de proposer un modèle de composants générique est d’avoir un modèle indépendant de toute technologie pour pou-voir utiliser (exporter) les applications générées dans n’importe quel environnement quelle que soit la technologie utilisée. Ce premier travail a déjà fait l’objet d’une présentation dans une conférence internationale. Nous pensons à court terme proposer un éditeur sous Eclipse permettant la représentation de modèles en se basant sur le méta-modèle proposé.

7.2.2 Couvrir d’autres propriétés non fonctionnelles

Un des thèmes sous-jacents à notre thèse et qui nous semble particulièrement important à approfondir est la traçabilité des choix de politiques et aussi des patrons de sécurité appli-qué à une même application.Couvrir d’autres politiques de sécurité et d’autres propriétés non-fonctionnelles comme la sûreté de fonctionnement ou la tolérance aux fautes est aussi parmi nos perspectives. Cela nous amène à enrichissement de la cartographie des patrons de sécurité, afin de «couvrir» la plupart voir toutes les politiques de sécurité. En utilisant l’arbre de décision, et selon la politique de sécurité choisie, des patrons pré-sélectionnés peuvent être proposés au concepteur afin de faciliter la sélection des patrons appropriés à partir d’un nombre potentiellement énorme des patrons de sécurité.

7.2.3 Vers un atelier logiciel plus riche

L’outil devrait être en mesure de faire des suggestions précises de patrons de sécurité lors du développement d’une application utilisant la dépendance entre les patrons. L’implé-mentation de cette phase de prédiction est en cours. Le processus proposé est en adéquation avec les besoins et les objectifs fixés. L’illustration à travers l’étude de cas met en évidence l’efficacité d’une telle approche. Cependant, il serait aussi intéressant de vérifier d’une façon formelle l’étape de transformation appliquée et de s’assurer que le modèle en sortie reste en adéquation avec le modèle en entrée en ajoutant seulement les contraintes de sécurité. Dans cet esprit beaucoup de travaux peuvent être réutilisés comme [Hatebur et al.,2007] [ Robin-son,2007].