Conception et réalisation d`une application de gestion de
Transcription
Conception et réalisation d`une application de gestion de
FACULTE DE MATHEMATIQUES ET D’INFORMATIQUE DESS CCI Compétence Complémentaire en Informatique Conception et réalisation d’une application de gestion de base de données biologiques et chimiques Présenté par : FOSCHIATTI Franck Encadré par : PUGET Karine et CLAVIER Karine Tuteur enseignant : KRETZ Michel Année Universitaire 2001-2002 Foschiatti Franck Rapport de stage Avril-Août 2002 Sommaire Remerciements Glossaire Abréviations Introduction Introduction générale. . . . . . . . . . . . . . . . . . . . . . . . . . . . p.1 Présentation du laboratoire. . . . . . . . . . . . . . . . . . . . . . . . p.2 Matériels et méthodes Le serveur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p.4 Langages utilisés. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p.6 Résultats Le site intranet Présentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ajout des données. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modification des données. . . . . . . . . . . . . . . . . . . . . . . . . . . . Upload d’un fichier excel. . . . . . . . . . . . . . . . . . . . . . . . . . . . Bilan thématique. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Changement de mot de passe. . . . . . . . . . . . . . . . . . . . . . . . . Architecture du site. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p.7 p.9 p.11 p.11 p.12 p.14 p.14 La sécurité. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p.16 Conclusion Annexe 1 : Rapport sur la sécurité Annexe 2 : Morceau de programme Résumé p.18 Foschiatti Franck Rapport de stage Avril-Août 2002 Remerciements Je souhaiterais dans un premier temps remercier le professeur Jean Martinez pour m’avoir accepté au sein de son laboratoire. Je désirerais également rendre hommage à mon maître de stage Karine Puget qui a su me faire confiance et qui m’a proposé un sujet de stage instructif, intéressant et attrayant tout autant que pour son soutien, ainsi qu’à Karine Clavier qui m’a épaulé et aidé quand il le fallait. Je les remercie toutes deux de m’avoir accompagné tout au long de ce stage. J’en profiterais également pour saluer tous les autres membres du laboratoire pour leur amabilité à mon égard et leur sympathie, pour leur patience et leurs explications. Je me dois également de remercier le professeur Michel Kretz pour avoir accepté que je fasse ce stage et pour avoir répondu à toutes mes questions. A Montpellier et à ses charmes… Foschiatti Franck Rapport de stage Avril-Août 2002 Glossaire Biologie Agoniste : Il s’agit d’une molécule qui se fixe sur les mêmes récepteurs que le peptide naturel et qui entraîne une activité biologique. Ces agonistes peuvent être par exemple utilisés pour augmenter l’activité d’une molécule naturelle. Antagoniste : Appelé aussi compétiteur, il s’agit d’une molécule qui déplace les peptides naturels des récepteurs pour en prendre la place, mais qui n’entraîne pas d’activité biologique. Génome : Ensemble des gènes d'une espèce. Il est à la base de la synthèse des protéines et des peptides, et donc de la construction fonctionnelle de notre corps. Peptide : Petite molécule formée par une succession d'aminoacides fixés les uns aux autres par une liaison peptidique. Protéine : Macromolécule composée essentiellement d'aminoacides et qui peut avoir de nombreuses fonctionnalités différentes : certaines auront un rôle dans la structure, d'autres dans la régulation, l'activation ou l'inhibition de processus divers. Récepteur : Molécule biologique qui capte un signal à l’extérieur de la cellule par la fixation d’une d’un peptide sur son site de liaison par exemple, et le transforme en un signal intracellulaire. Criblage : Recherche systématique d’un type de molécule en en passant un grand nombre en revue. Séquençage peptidique : Cherche à définir une séquence peptidique en obtenant l’ensemble des aminoacides qui forme cette dernière. Séquence peptidique : Ensemble des aminoacides qui forme le peptide. Selon la séquence, la conformation spatiale sera différente. Informatique Adresses IP : Adresses Internet utilisées pour connaître la localisation d’un ordinateur lors d’un envoi de paquets (ex : email). Chaque adresse est unique, car elle définit un réseau et sous-réseau. Foschiatti Franck Rapport de stage Avril-Août 2002 Driver : Pilote permettant à la carte mère de gérer une autre interface (carte graphique, carte son…). Firewall : Appelé également pare-feu, coupe-feu ou encore garde-barrière, il sert à protéger l’ordinateur de différentes attaques extérieures. Il existe des firewall logiciels ou matériels. Login : Nom d’utilisateur autorisant l’accès à une application. Permissions : Un fichier peut être lu, écrit et/ou exécutable. Un fichier en lecture seul ne peut être que visualisé et non modifié. Sous Unix/Linux, ces permissions sont démultipliées en trois groupes : le propriétaire (du fichier), le groupe auquel appartient le propriétaire, et les autres. Chacun des groupes peut avoir des permissions différentes. Port : Accès vers l’extérieur de l’ordinateur permettant de communiquer avec lui par l’intermédiaire de câbles (port physique : parallèle, série, USB), ou par une connexion Internet (port virtuel : port 80 = http, port 21 = FTP, …). Serveur : Il s’agit d’un ordinateur donnant accès à certaines de ses informations à d’autres machines clientes ayant un accès réseau. Foschiatti Franck Rapport de stage Avril-Août 2002 Abréviations CAPS : Computeur-Assisted Peptide Search HTML : Hyper Text Markup Langage HTTP : Hyper Text Transfert Protocol IP : Internet Protocol LAPP : Laboratoire des Aminoacides, Peptides et Protéines PHP : PHP Hyper Text Preprocessor RAID : Redundancy Array of Independant Disk, ensemble redondant de disques indépendants UMI : Université Montpellier I UMII : Université Montpellier II Foschiatti Franck Rapport de stage Avril-Août 2002 Introduction Introduction générale Dans le cadre du DESS Compétence Complémentaire en Informatique suivi durant l’année scolaire 2001-2002 à l’ULP de Strasbourg, j’ai effectué un stage de 4 mois ½ dans les locaux du Laboratoire des Aminoacides, Peptides et Protéines (LAPP), laboratoire mixte UMI/UMII/CNRS à la faculté de Pharmacie de Montpellier. J’ai choisi de réaliser mon stage au sein du LAPP car le sujet qui m’était proposé répondait parfaitement à mes objectifs. En effet, souhaitant me diriger vers une double compétence Biologie-Informatique, ce laboratoire me proposait de créer un site Intranet, de le gérer par un serveur installé par mes soins, permettant de piloter une base de données scientifique. Lors de mon arrivée au LAPP, la base de données était créée et les valeurs étaient ajoutées manuellement en insérant les données d’un fichier Excel au format .csv dans la base. L’objectif que m’a confié Mademoiselle Puget Karine, Chef de Projet dans le laboratoire, consistait donc à créer une interface conviviale afin que les utilisateurs puissent entrer leurs valeurs ou le contenu de leurs fichiers Excel par l’intermédiaire du site et que tous les traitements suivants soient automatisés. Le code source a été écrit sous HTML et PHP, et la base de donnée sous MySQL. Le serveur servira donc d’entité indépendante permettant l’addition des données sans la nécessité d’une tierce personne. Après une présentation du laboratoire, vous trouverez dans ce rapport un descriptif des travaux réalisés, des problèmes rencontrés ainsi que des connaissances acquises au cours de ce stage. 1 Foschiatti Franck Rapport de stage Avril-Août 2002 Présentation du laboratoire Le laboratoire des Aminoacides, Peptides et Protéines est divisé en deux unités, l’une à l’Université Montpellier I (UMI), la deuxième à l’Université Montpellier II (UMII), toutes dirigées par le professeur Jean Martinez. Le laboratoire comprend une centaine de personnes réparties sur les deux universités. Alors qu’à l’UMII, les travaux sont davantage orientés vers la chimie organique, l’unité de l’UMI est beaucoup plus diversifiée, comprenant la biologie moléculaire, la pharmacologie, la chimie peptidique et la modélisation moléculaire. Toutes ces branches se rejoignent dans différents travaux de recherche, la plupart orientés vers la thérapeutique. De nombreux travaux sont réalisés en partenariat avec des laboratoires privés, comme ceux menés par le groupe C.A.P.S. (Computeur-Assisted Peptide Search) du LAPP avec qui j’ai réalisé mon stage et qui travaille conjointement avec le laboratoire pharmaceutique IPSEN-Beaufour. Cette équipe est composée de neuf personnes : trois chimistes (synthèse et analyse) trois biologistes (pharmacologie, biologie générale et biologie moléculaire), deux bioinformaticiens (modélisation moléculaire, administrateur de base de données) et la chef de projet Karine Puget sur l’initiative du professeur Jean Martinez. Cette équipe recherche de nouvelles cibles thérapeutiques (des peptides naturels et leurs récepteurs) par une méthode novatrice. En effet, beaucoup de laboratoires sélectionnent un récepteur et font ensuite un « screening » de toutes les molécules possibles afin d’en trouver une qui ait une activité biologique. Le groupe CAPS traite le problème à l’envers en recherchant de nouveaux peptides naturels dont la fonction est inconnue et en cherchant ensuite sa cible biologique et son activité. Il est également possible d’en chercher des antagonistes ou des agonistes qui pourront alors avoir de larges applications thérapeutiques (diabète, obésité, ostéoporose, maladies cardiovasculaires ...). Pour initialiser ces recherches, il fallait trouver de nouveaux peptides naturels non connus. De plus en plus de génomes d’organismes divers sont séquencés et les informations stockées dans des banques de données, et la moitié seulement des fonctions des protéines codées identifiées sont connues. Il est donc probable de rencontrer de nouveaux peptides jusqu’alors inconnus ou de découvrir de nouvelles fonctions aux protéines déjà identifiées. Pour cela, l’analyse des protéines à partir desquels les peptides sont générés a permis de définir un « portrait robot » (ou filtre informatique) de la séquence codante. La séquence des génomes a ensuite été comparée à ce filtre et les précurseurs potentiels de peptides ont été 2 Foschiatti Franck Rapport de stage Avril-Août 2002 retenus afin de générer une liste de peptides à étudier. Chacun d’eux est donc synthétisé et testé afin d’évaluer son activité biologique. Tout comme les séquençages, toutes ces recherches, les tests, les résultats chimiques et biologiques entraînent une masse énorme d’informations. Celles-ci devant être accessibles afin de pouvoir les analyser et les réutiliser, la solution la plus logique a été la création d’une base de données. La plupart du temps, ce sont les manipulateurs qui peuvent avoir besoins des résultats. N’étant pas informaticiens, ils pourraient avoir des difficultés à appréhender la base de données sans un apprentissage préalable. C’est pourquoi, afin de prévoir un niveau de sécurité suffisant d’une part, et d’apporter une touche de convivialité et de simplicité à l’accès de ces données d’autre part, il m’a été demandé de créer le site Intranet qui est présenté dans ces quelques pages. Il tient donc compte du niveau d’exigence des utilisateurs et de la sécurité, importante variable qui doit assurer la confidentialité des données. Pour finir, une base similaire sera mise en place au sein d’une Start-Up en instance de création par Karine Puget, qui regroupera toute l’équipe CAPS et qui s’appellera GENEPEP. Les données recueillies dans cette base étant très importantes, il est logique qu’une attention toute particulière ait été apportée à la sécurité, un thème récurrent que vous retrouverez dans ce rapport. Photo de l’équipe CAPS 3 Foschiatti Franck Rapport de stage Avril-Août 2002 Matériel et Méthodes Le serveur Le serveur possède trois disques durs, un de 20 Go qui contient le système d’exploitation (Linux RedHat), et deux de 100 Go qui sont montés en RAID 1. Le RAID (Redundancy Array of Independant Disk, ensemble redondant de disques indépendants) est une méthode qui permet d’associer plusieurs disques durs dans différentes perspectives. Le RAID 0 ou « stripping » permet de lire et d’écrire des données en parallèle afin d’augmenter les performances. Le RAID 1 quant à lui s’appelle également « hard disks mirroring », ce qui signifie que toutes les actions menées sur le premier disque se produisent simultanément sur le deuxième. Ce dernier est caché, empêchant quiconque de modifier directement ses données sans passer par le premier disque. Bien entendu, si l’on efface les données du premier disque, elles le seront également sur le deuxième puisqu’il agit en miroir. Ce système permet néanmoins de garantir une certaine sécurité des données, notamment en se protégeant contre d’éventuels « crash disk ». Enfin, le RAID 0+1 regroupe les deux premiers. Il nécessite quatre disques puisqu’il utilise le stripping et le mirroring. Il existe encore d’autres types de RAID que nous ne détaillerons pas ici. La carte mère est une KR7A RAID possédant un contrôleur de RAID, le HPT372 ATA, ce qui permet une configuration du RAID directement dans le BIOS. Toutefois, la difficulté fut d’installer le système d’exploitation Linux. Ce dernier avait été choisi en raison de la sécurité, de la stabilité, de la fiabilité ainsi que son coût. Mais, le premier problème fut le lancement de l’installation. En effet, dès le départ, un message précisait : « Attempt to kill init ». Après quelques recherches, ce dysfonctionnement venait non pas de la version de Linux, mais du noyau de ce denier qui ne possédait pas les drivers du contrôleur de RAID (ceux qui étaient fournis étaient uniquement ceux de Windows). Il a donc fallu ajouter ceux-ci lors de l’installation. Une deuxième erreur indiquait que le RAID n’était pas entièrement reconstruit. Il s’avéra après certaines recherches et vérifications que cela n’affectait en rien l’efficacité du RAID. Puis il fallut résoudre les quelques difficultés résultant de l’installation de différents logiciels tel qu’Apache, MySQL ou encore phpMyAdmin, Java et Jext (un éditeur de programmes comme Java, PHP, … écrit en Java). Après modification des permissions pour 4 Foschiatti Franck Rapport de stage Avril-Août 2002 MySQL, l’ajout d’un lien symbolique sur le Socket de MySQL pour avoir accès à phpMyAdmin et l’ajout d’un script exportant les variables d’environnement de Java pour l’utilisation de Jext, le serveur était quasiment opérationnel. Le dernier point, et non le moindre, était l’accès réseau à partir des machines devant pouvoir atteindre la base de données. Il s’avérait que le serveur était enfermé dans un cocon alors qu’il était bien branché au niveau du réseau. Ne venant pas de la configuration du routeur, une légère suspicion s’est portée sur le firewall intégré à Linux. Quelles étaient ses options paramétrées par défaut ? Certes, il était logique qu’il n’autorise aucune entrée ou sortie de données, mais encore fallait-il y penser. Ainsi, après configuration du firewall, mais surtout ajout des adresses IP autorisées à accéder au serveur, ce dernier était prêt à remplir ses offices tout en assurant une sécurité à toute épreuve. 5 Foschiatti Franck Rapport de stage Avril-Août 2002 Les langages utilisés Le HTML et le PHP sont certainement les langages de programmation les plus utilisés sur Internet. Le HTML (Hyper Text Markup Langage) est un langage de balise et sert essentiellement à la présentation graphique d’un site. Le PHP quant à lui permet tout le traitement en arrière plan. Il permet par exemple de gérer les données entrées par l’utilisateur et envoyées par la méthode GET ou POST par la page HTML. Il peut récupérer également des valeurs inscrites dans la base de données, les comparer aux valeurs de l’utilisateur, ce qui peut servir pour une identification. Et enfin, il peut envoyer des données vers la base MySQL par l’intermédiaire du serveur, dans notre cas Apache. Ces deux langages ont été utilisés conjointement afin de donner forme au site tel que vous le découvrirez. Ils ont permis d’obtenir à la fois une interface graphique intéressante et une convivialité garantissant une facilité d’utilisation. Ils ont ainsi autorisé l’accès à la base de données afin d’y ajouter ou modifier des résultats tout en proposant un ensemble de protections et de recherches d’erreurs pour limiter leur nombre dans la base. MySQL qui est en réalité un système de gestion de base de données relationnel, utilise le langage SQL qui permet d’entrer des données dans la base grâce à un ensemble de requêtes. Celles utilisées dans le programme se résument essentiellement à la sélection d’éléments de la base en fonction de certains critères comme l’appartenance à une table où la correspondance entre deux éléments de deux tables différentes, l’insertion de données ou la modification de celles-ci. Avec ces quatre commandes (SELECT, INSERT, DELETE et UPDATE), il a été possible de combler les attentes des différents membres du groupe qui doivent utiliser ce site. 6 Foschiatti Franck Rapport de stage Avril-Août 2002 Résultats Le site Intranet 1) Présentation Le groupe CAPS se décompose en plusieurs secteurs d’activités, chacun d’eux pouvant avoir besoin de la base de données. Ainsi le site Intranet est lui-même découpé en groupes, augmentant le niveau de sécurité et permettant une réduction des données modifiables par chacun d’eux. Chaque utilisateur doit d’abord passer une page d’identification : Figure 1 : page d’identification Celle-ci permet de comparer le login et le mot de passe avec ceux de la base, et après correspondance, d’envoyer l’utilisateur vers une page personnalisée au groupe auquel il appartient. Pour cela, il faut que la base possède préalablement les informations nécessaires sur « l’intranaute », c'est-à-dire ses login, mot de passe, et groupe, mais il est possible d’y 7 Foschiatti Franck Rapport de stage Avril-Août 2002 intégrer d’autres informations comme son nom, son prénom, son email, un identifiant et enfin un bit d’accès utilisé pour sécuriser la base (ceci sera expliqué ultérieurement). Il existe six groupes différents : les chimistes, les biologistes, les bioinformaticiens, les anciens utilisateurs, les autres qui n’appartiennent pas au groupe CAPS, un groupe appelé « Tout », et l’administrateur. Le groupe des Anciens et des Autres permet seulement d’obtenir une page leur précisant qu’il ne leur est pas ou plus permis d’accéder à la base. Ces groupes existent pour qu’il reste une trace des travaux effectués par ces personnes, car certains attributs de la base réclament le nom du manipulateur. Le groupe Tout, actuellement composé de Karine Puget et du professeur Jean Martinez, est en fait le point de surveillance de la base qui leur permet d’accéder à la consultation de la base entière et aux différents bilans. L’administrateur ayant directement accès à la base via phpMyAdmin (par exemple), il n’a donc pas besoin d’une interface graphique supplémentaire pour consulter ou modifier les données. Il sera ainsi le seul à pouvoir ajouter ou modifier un compte, et donc à débloquer ce dernier en cas de nécessité (voir section Sécurité). Les autres groupes peuvent quant à eux avoir accès aux bilans reprenant l’ensemble des informations recueillies dans la base sur un peptide donné, ajouter ou modifier leurs propres données par l’intermédiaire des pages proposées à cet effet, les ajouter par l’intermédiaire de feuilles de calcul Excel ou enfin modifier leur mot de passe. Figure 2 : Page d’accueil du groupe Chimie 8 Foschiatti Franck Rapport de stage Avril-Août 2002 3) Ajout de données Le choix d’ajouter ses données est personnalisé en fonction du groupe. En effet, chacun d’eux à la possibilité d’ajouter différentes valeurs dans différentes tables de la base, et chacune d’elle est donc présentée par une page HTML différente. La liste déroulante située au côté de cette option permet donc de choisir quelle table l’utilisateur veut remplir. Si aucune valeur n’est choisie dans cette liste, une nouvelle page avec le choix de la table à remplir est ouverte. Figure 4 : Choix du type de données à ajouter dans le groupe chimie 9 Foschiatti Franck Rapport de stage Avril-Août 2002 Figure 5 : Exemple de données à rentrer par les chimistes Puis la page HTML choisie donne la possibilité d’entrer ses valeurs qui sont envoyées vers une page PHP qui va elle-même envoyer les données vers la base. Cette page est donc transparente à l’utilisateur. C’est là que se déroule tout le traitement, en particulier les vérifications qui permettront de limiter au maximum les erreurs. Par exemple, pour une séquence peptidique, certaines lettres de l’alphabet ne correspondent pas à un acide aminé, il est donc possible de déceler leur présence fortuite et d’en avertir l’utilisateur. Mais si ce dernier intervertit deux aminoacides, il est impossible de s’en assurer, c’est pourquoi il n’est pas possible de parer à toutes les éventualités. Ensuite, pour que l’utilisateur sache si ses données ont été correctement entrées ou quelle a été son erreur, les informations sont envoyées vers une nouvelle page HTML. Celle-ci affiche à l’écran un récapitulatif des valeurs enregistrées ainsi que celles qui ont été calculées et ajoutées automatiquement dans le cas où 10 Foschiatti Franck Rapport de stage Avril-Août 2002 tout était correct. Dans le cas contraire, rien n’est rentré dans la base et la page indique l’erreur commise ainsi que le moyen d’y remédier. Figure 6 : Résultats 4) Modification des données Cette option, assez similaire à l’ajout des données, se distingue de celle-ci d’une part par la sélection du peptide à modifier, puis par l’affichage immédiat des données le concernant. Ces dernières pourront donc être effacées et remplacées à convenance, et il sera possible de remplir les cases omises, volontairement ou non, lors de la phase préalable de l’ajout des données. 5) « Upload » d’un fichier Excel La possibilité d’ajouter ses données par l’intermédiaire d’un fichier Excel enregistré avec l’extension .csv est présente car les volumes de données à entrer en une fois peuvent être 11 Foschiatti Franck Rapport de stage Avril-Août 2002 importants. Par exemple, les chimistes peuvent synthétiser 80 peptides à la fois grâce à un automate et souhaitent donc rentrer toutes leurs valeurs en une fois. En utilisant cette méthode pour intégrer leurs nouvelles données à la base, cela automatisera ces actions. En effet, jusqu’alors, chaque utilisateur devait apporter ou envoyer son fichier à la bioinformaticienne qui s’occupait ensuite, manuellement, d’ajouter les données à la base. Ceci permettra donc un gain de temps. Figure 7 : « Upload » d’un fichier .csv 6) Bilan thématique De la même façon, le bilan thématique pour un peptide donné est lui aussi personnalisé en fonction du groupe, car chacun n’a pas les mêmes besoins, et les informations doivent donc être différentes. Ce bilan comprend des caractéristiques chimiques et biologiques regroupant toutes les informations nécessaires au manipulateur sur le peptide en question pour qu’il puisse travailler. Ce traitement des données avait déjà été commencé sous Access, mais il a fallu le reformuler entièrement pour qu’il puisse être affiché sous un format HTML. Il a néanmoins été demandé que chacun puisse avoir accès au bilan des autres groupes dont certains résultats peuvent leur être utile. Ainsi, dans chacun des groupes, il est possible de consulter les trois types de bilans qui ne présentent pas les même les résultats. 12 Foschiatti Franck Rapport de stage Avril-Août 2002 Dans un premier temps, l’utilisateur a le choix entre un format imprimable ou non. Puis, en choisissant une référence d’un peptide, l’utilisateur pourra visualiser un tableau qui regroupe des données recueillies dans différentes tables de la base en fonction des exigences des manipulateurs. La version non imprimable propose en plus la possibilité de sélectionner une nouvelle référence d’un peptide appartenant à la même famille que le premier ou la référence du JMIB source, c'est-à-dire la référence du « chef de famille », qui permet alors de regrouper dans le même tableau l’ensemble des peptides de sa famille. Enfin, dans le cas où certains tableaux n’auraient pas l’utilité d’être présents, tels les renseignements sur le marquage ou la purification, qui n’ont de sens que si le peptide a subi les expériences requises, ceux-ci ne s’affichent pas. Figure 8 : Bilan de données bioinformatique 13 Foschiatti Franck Rapport de stage Avril-Août 2002 7) Changement de mot de passe Enfin, l’utilisateur peut changer son mot de passe. En effet, il est conseillé, au niveau sécurité des données, de changer régulièrement de mot de passe, cette page permet donc de faciliter cette formalité. Figure 9 : Changement de mot de passe 8) Architecture du site Pour résumer l’ensemble du travail, voici en un schéma les liens des différents fichiers utilisés. 14 Foschiatti Franck Avril-Août 2002 Rapport de stage Identification.php Pagebilan.php Bilan.php Indexident.php Retouraccueil.php Consultation.php Accueil.php Password.php Excel.php Indexchimie.php Données.php Modif.php Peptide2.php Introsynthese.php Synthese2.php Synthese.php Date.php Purification2.php Marquage2.php Marquage.php Newprotocole.php Purification.php Contenuprotocole.php Figure 10 : Architecture des fichiers du groupe chimie Le site est composé de ? fichiers, soit ? lignes de code. Bien entendu, tout est étudié afin d’optimiser au mieux la sécurité du site. 15 Foschiatti Franck Rapport de stage Avril-Août 2002 La sécurité La sécurité est un élément important à ne pas omettre lorsque l’on parle de bases de données, d’autant plus lorsqu’elles ont une valeur financière à ne pas négliger. Il a donc fallu parer à un maximum d’éventualités. Le premier élément bien entendu est le serveur lui-même. Après en avoir discuté avec l’administrateur réseau, les accès au serveur furent limités au maximum. Tous les ports sont fermés mis à part le port 80 qui donne accès au http, mais il est restreint au sous-réseau local. Le pare-feu intégré à Linux permet d’augmenter ces restrictions à dix machines seulement en limitant l’accès du serveur aux adresses IP prérentrées. Une attaque extérieure est donc physiquement impossible. Ensuite, pour limiter les possibles attaques internes, un premier élément est la page d’identification. Pour entrer sur le site, il est nécessaire d’avoir un login et un mot de passe. Pour augmenter la protection, chaque utilisateur possède un bit d’accès fixé à 3. Il s’agit en vérité d’un compteur qui sera décrémenté à chaque fois que le login entré par un utilisateur sera identique à celui du compte en question et dont le mot de passe sera faux. Ainsi, quel que soit le temps écoulé, si, pour un login donné, trois erreurs au niveau du mot de passe sont signalées, le compteur alors à 0 bloquera l’accès au site. Néanmoins, si l’utilisateur entre le bon mot de passe, le compteur retourne à 3. Dans le cas contraire, pour avoir de nouveau la possibilité d’entrer dans le site avec ce login, l’utilisateur devra aller voir l’administrateur qui pourra modifier la base de donnée et remettre le bit d’accès à 3. Cette méthode permet ainsi d’échapper aux attaques types ‘dictionnaires’ et des attaques types ‘force brute’ par exemple, qui choisissent un login et tentent tous les mots de passes possibles. Le deuxième niveau de sécurité interne se fait via la page PHP qui traite toutes les données, servant ainsi d’intermédiaire entre la base et les pages HTML. L’accès à la base nécessite un mot de passe et un login. Chacun d’eux correspond à des comptes différents qui possèdent des « privilèges » plus ou moins limités à la base en fonction des nécessités. S’il s’agit seulement de lire des données dans la base, un accès en lecture seul suffit. Si maintenant on souhaite ajouter des données dans la base, alors de nouveaux droits sont nécessaires. D’une part, comme le site n’est accessible que par le groupe CAPS et d’autre part, comme il n’est pas possible d’avoir accès aux pages en PHP, les comptes ayant accès à la base sont donc protégés. 16 Foschiatti Franck Rapport de stage Avril-Août 2002 Vient ensuite le problème d’un accès indirect à la base en passant par une page différente de la page d’identification. Pour y remédier, il a été ajouté des fichiers .htaccess dans chacun des répertoires contenant les pages HTML, mis à part la page d’identification qui se trouve dans un répertoire parent. Lorsque quelqu’un essai de se connecter par une page interne du site, une pop-up demande le login et le mot de passe qu’elle comparera avec les données entrées dans un autre fichier : .htpassword. Ce fichier se trouve hors de l’arborescence accessible par le site et est protégé en écriture. Les mots de passes sont cryptés par un algorithme irréversible. Aussi, le mot de passe entré par l’utilisateur est codé par le même algorithme et le résultat est comparé à celui contenu dans le fichier. Si l’utilisateur passe par la page d’identification normale, la comparaison se fait automatiquement et la popup n’apparaît pas. Le dernier niveau de sécurité se fait par l’intermédiaire de l’éducation des utilisateurs. En effet, quel est l’intérêt de mots de passes si l’on quitte son ordinateur en le laissant sur le site censé être protégé ? Quiconque passant alors après pourrait avoir accès aux données confidentielles. Il est donc nécessaire que chacun prenne conscience de l’importance de la sécurité, l’utilité d’un choix judicieux d’un mot de passe, … C’est d’ailleurs dans cette optique qu’a été organisée une réunion afin d’inculquer quelques notions essentielles à la sauvegarde de données confidentielles (voir annexe 1 : Rapport sur la sécurité). 17 Foschiatti Franck Rapport de stage Avril-Août 2002 Conclusion Ce stage aura été enrichissant sur de nombreux points. Tout d’abord, il m’a permis d’appréhender le PHP, le HTML et MySQL. Le PHP est un langage assez proche du C, mais il est plus tolérant et possède ses fonctions propres. Cette liberté d’action est parfois appréciable, mais cela oblige à être beaucoup plus vigilant. Néanmoins, l’association entre le PHP et le HTML permet de faire du travail qui je l’espère est de qualité et m’a ouvert la voie de la création d’un site Internet. Il doit certes rester en interne, mais il m’aura donné la possibilité de chercher des connexions entre le programme et la base de données. J’ai également pu approfondir mes connaissances dans ce domaine, même si les requêtes utilisées dans le programme sont assez simples, et cela m’a amené à exploiter certaines facettes du lien entre le site et la base pour en augmenter la sécurité. Il est évident que la protection des données était un thème récurent du stage. J’ai ainsi pu étudier davantage sur ce sujet, d’une part en sécurisant le site et la base, et d’autre part en organisant, avec l’aide de Karine Clavier, une réunion sur la sécurité informatique (voir annexe). J’ai donc été confronté à certains choix tactiques quant à la protection du serveur et à certains problèmes d’installations qui furent tous résolus. Un dernier point important à noter est la gestion du temps. J’avais quatre mois pour achever mon ouvrage et il n’est pas évident d’estimer avec exactitude le temps nécessaire à accomplir un tel travail lorsque c’est la première fois, mais tout c’est bien passé puisque j’ai terminé dans les temps. Enfin, j’ajouterai que j’ai été baigné dans les résultats biologiques et chimiques ce qui a excité une fibre scientifique. J’ai ainsi pu découvrir d’autres modes de réflexion et de recherche et il m’a été donné d’observer les hommes et les machines à l’œuvre dans une cause commune à la recherche et la synthèse de peptides actifs. 18 Foschiatti Franck Rapport de stage Avril-Août 2002 Résumé Le stage s’est déroulé au Laboratoire des Aminoacides, Peptides et Protéines de Montpellier sur une thématique développée en collaboration avec le laboratoire pharmaceutique IPSEN-Beaufour. Elle a pour but la découverte de nouveaux ligands naturels actifs à fort potentiel, utilisés comme modèle pour la synthèse de nouveaux médicaments qui miment ou bloquent leurs effets biologiques. Dans ce contexte, ma mission a consisté en la conception et la réalisation d’un site qui permet la gestion d’une base de données contenant les résultats scientifiques. Cela implique une certaine maîtrise de la programmation fonctionnelle (PHP), conception graphique (HTML) et connaissance des bases de données (MySQL). Il faut ajouter à cela la mise en place et la maintenance d’un serveur sous Linux et la recherche d’une sécurité qui se doit d’être maximal, ce qui demande un certain savoir-faire au niveau système d’exploitation et réseau. Une compréhension des résultats chimiques et biologiques facilitant l’adéquation entre les attentes des scientifiques et le travail informatique, un savant dosage de ces multiples compétences permet ainsi de réaliser un site intranet à l’aspect convivial, facile d’utilisation, alliant simplicité et sécurité. Il faut voir en ce travail un programme fini mais évolutif selon les demandes des utilisateurs. Il est évident qu’en fonction de leurs travaux, la base peut changer, le site doit donc suivre le même parcours. En outre, un accès au site par l’extérieur du sous-réseau est impossible car le serveur n’est lié qu’à quelques machines et ne possède pas de connexion Internet, l’ensemble étant protégé par des mots de passe. Ceci implique une certaine sensibilisation du personnel à ce sujet ce qui nécessite un certain échange d’où l’intérêt d’une réunion informative sur la sécurité. Voilà les raisons qui font de ce stage un projet aux nombreux attraits. The traning period takes place in the “Laboratoire des Aminoacides, Peptides et Protéines” of Montpellier on a thematic developped in collaboration with the IPSEN-Beaufour pharmaceutic laboratory. The aim of this collaboration is the discovery of new active natural ligands with great potential used as model for the synthesis of new medecines which mime or bloc their biologic effect. In this context, my mission has been the conception and the realization of a scientific result database management site. Actually, it require functionnal programming skill (PHP), graphical conception (HTML), database knowledge (MySQL), the installation and maintenance of a Linux server and a maximum security level which imply network and operating system abilities. An understanding of biologic and chemical results facilitating the links between scientists’ expectations and the data processing, the good use of these large amounts of skills allows the realization of a convivial aspect and easy to use intranet site which ally simplicity and security. This work is a finished program but may evolve in function of the users’ requests. With the evolution of their works, the database can change and the site must follow the same way. Moreover, an access to the site by an external position from the under-network is impossible, because the server is linked with only a small number of computers and do not have Internet connection. The whole system is protected by passwords. This must involve the employees’ sensitization to this topic hence the importance of an informative meeting on the security. These are the reasons which prove that this work is a project with numerous appeals.