Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 74 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
74
Dung lượng
10,51 MB
Nội dung
UNIVERSITÉ NATIONALE DU VIETNAM, HANOÏ INSTITUT FRANCOPHONE INTERNATIONAL Fo kossi DAGBEGNIKIN L’analyse et le développement de projets informatiques avec les technologies web et Blockchain MÉMOIRE DE FIN D’ÉTUDES DU MASTER INFORMATIQUE Sous la direction de l’Ingénieur Diplômé de l’EPITA : M Romain GRIFFITHS ( Directeur Technique de NEOFACTO - France) HANOÏ - 2019 UNIVERSITÉ NATIONALE DU VIETNAM, HANOÏ INSTITUT FRANCOPHONE INTERNATIONAL Fo kossi DAGBEGNIKIN L’analyse et le développement de projets informatiques avec les technologies web et Blockchain Spécialité : Systèmes Intelligents et Multimédia Code : Programme pilote MÉMOIRE DE FIN D’ÉTUDES DU MASTER INFORMATIQUE Sous la direction de l’Ingénieur Diplômé de l’EPITA : M Romain GRIFFITHS ( Directeur Technique de NEOFACTO - France) HANOÏ - 2019 Attestation sur l’honneur J’atteste sur l’honneur que ce mémoire a été réalisé par moi-même et que les données et les résultats qui y sont présentés sont exacts et n’ont jamais été publiés ailleurs La source des informations citées dans ce mémoire a bien été précisée Signature de l’étudiant Remerciements Ce travail de mémoire de Master recherche est le résultat de l’engagement de plusieurs personnes qui ont décidé de m’accompagner résolument dans cet exaltant parcours Je remercie Dieu le tout Puissant, très Miséricordieux, qui m’a donné la force, le courage et la persévérance durant ces deux années C’est avec une certaine émotion et une grande reconnaissance que je remercie l’Université Nationale du Vietnam travers l’Institut Francophone International et toute son équipe pédagogique Je remercie les professeurs pour les valeurs et méthodes inculqués durant le cursus : la curiosité, le goût du travail, de l’effort, le sens de la persévérance, la volonté de se remettre en question etc Autant de trésors qui me seront, sans nul doute, utiles toute ma vie Je tiens adresser mes profonds remerciements toute l’équipe NEOFACTO France, très chaleureusement Mlle Vénissia PIERRU, M Pierre GERARD, M Clément PAVUE et en particulier mon encadrant M Romain GRIFFITHS qui m’a beaucoup aidé lors de ce stage ; ses conseils et son coaching m’ont permis de cibler et de m’orienter tout au long de ce stage J’ai eu l’occasion d’être associé leur travail et celle de toute l’équipe technique pour acquérir de nouvelles connaissances et compétences Celles-ci me seront fort précieuses pour la réalisation de mes projets venir Ainsi, le temps, l’attention, l’intérêt qu’ils ont bien voulu me témoigner n’ont pas été perdus, et ne seront pas perdus Ils m’ont donné envie de persévérer dans ce métier pour lequel ils ont le plus grand respect la recherche et l’innovation Le privilège est pour moi de participer ce projet Horizon 2020 de l’UE, ses séances de travail et sa présentation auprès de l’équipe d’experts de la Commission de l’Union Européenne Bruxelles Un grand merci ma mère Mme Akouavi Martine HOUNGBO, mes parrains, mes frères et soeurs pour leurs conseils ainsi que pour leur soutien inconditionnel Je voudrais profiter de cet espace pour leur exprimer toute ma gratitude et ma reconnaissance Grâce vous, j’aborde une nouvelle étape de ma vie avec confiance et dynamisme Fo kossi DAGBEGNIKIN Résumé Le projet CYBER-TRUST vise développer un système innovant de collecte, de détection, et une plate-forme d’atténuation pour relever les grands défis de la sécurisation de l’écosystème des appareils IoT La sécurité, les problèmes liés la conception défectueuse du matériel hérité et des périphériques intégrés permettent aux cybercriminels de les compromettre et lancer des attaques grande échelle vers les cyberinfrastructures critiques Ce projet interdisciplinaire opte pour une approche qui prendra en compte les différentes phases de ces attaques émergentes, avant et après, connues (même des années) ou inconnues Les cybercriminels ont largement exploité les vulnérabilités (zero-day) pour lancer des attaques L’accent est mis sur la mise en place d’un système pro-actif de collecte et de partage de renseignements sur les cyber-menaces afin d’empêcher l’exploitation des vulnérabilités Ces informations seront utilisées pour maintenir des profils de vulnérabilité précis des dispositifs IoT, conformément la protection des données, la confidentialité ou d’autres réglementations, et vise modifier de manière optimale la surface d’attaque de manière minimiser les dommages causés par les cyber-attaques De nouvelles technologies seront développées, basées sur des grands livres distribués et des blockchains, contrôler l’état de l’intégrité des dispositifs et le comportement du réseau, ce qui augmentera considérablement les capacités de détection contre les cyber-attaques ciblées et interdisciplinaires En cas de présumée activité malveillante, des outils pour la collecte et le stockage des preuves scientifiques-légales sur une structure de blockchain inviolable seront livrés, en tenant compte des besoins spécifiques des organismes chargés de l’application de la loi La surveillance du réseau préservant la confidentialité et basée sur la réalité virtuelle avancée et des techniques de visualisation seront utilisées pour détecter rapidement les réseaux de zombies, les attaques DDoS et autres incidents S’appuyant sur la recherche interdisciplinaire, un cadre intelligent et autonome de cyber-défense sera construit pour fournir des moyens intelligents d’isoler les dispositifs sous le contrôle d’un attaquant (ou infectés) et de répondre efficacement en atténuant les attaques grande échelle Mots clés : Blockchain, vulnérabilités «zero-day», partage de la menace, surveillance du réseau, preuves scientifiques-légales, appareil falsification, attaques DDoS, détection et atténuation, systèmes de réputation, protection des données et confidentialité Abstract The CYBER-TRUST project aims to develop an innovative cyber-threat intelligence gathering, detection, and mitigation platform to tackle the grand challenges towards securing the ecosystem of IoT devices The security problems arising from the flawed design of legacy hardware and embedded devices allows cyber-criminals to easily compromise them and launch large-scale attacks toward critical cyber-infrastructures The proposed interdisciplinary approach will capture different phases of such emerging attacks, before and after known (even years old) or unknown (zero-day) vulnerabilities have been widely exploited by cyber-criminals to launch the attack Emphasis is given on building a proactive cyber-threat intelligence gathering and sharing system to prevent the exploitation of zero-day vulnerabilities This intelligence information will be used to maintain accurate vulnerability profiles of IoT devices, in accordance with data protection, privacy, or other regulations, and optimally alter their attack surface to minimise the damage from cyber-attacks Novel technologies will be developed, based on distributed ledgers and blockchains, to monitor devices’ integrity state and network behaviour that will considerably increase the detection and response capabilities against targeted and interdisciplinary cyber-attacks In the case of alleged malicious activity, tools for collecting and storing forensic evidence on a tamper-proof blockchain structure will be delivered, taking into account the specific needs of law enforcement agencies Privacy-preserving network monitoring and advanced virtual realitybased visualisation techniques will be employed for quickly detecting botnets, DDoS attacks and other incidents Relying on interdisciplinary research, an intelligent autonomous cyber-defence framework will be built for providing intelligent ways of isolating the devices under an attacker’s control (or infected) and effectively responding to and mitigating large-scale attacks Keywords : Zero-day vulnerabilities, threat sharing, network monitoring, blockchain, forensic evidence, device tampering, DDoS attacks, detection and mitigation, reputation systems, data protection and privacy Table des matières Table des figures i Introduction Générale Présentation de la structure d’accueil 2.1 NEOFACTO 2.1.1 Missions de l’équipe 2.2 SCORECHAIN 3 Contexte d’étude et problématique 3.1 Projet Cyber-Trust 3.2 Objectifs 3.3 Contexte d’étude 3.3.1 La Blockchain 3.4 Problématique 3.4.1 Les spécifications du projet 3.4.1.1 Les exigences du projet 3.4.1.2 Les difficultés prévues 3.5 Résultats attendus 5 8 9 9 10 Etat de l’art 4.1 Blockchain 4.2 Le Framework Blockchain 4.2.1 Bitcoin [16] 4.2.2 Ethereum [17] 4.2.3 Hyperledger [18] 4.2.4 IOTA [20] 4.2.5 Monero [21] 4.2.6 Zcash [22] 4.2.7 Corda [23] 4.2.8 Nano [24] 11 11 11 11 12 12 13 13 13 13 14 i TABLE DES MATIÈRES 4.2.9 Étude comparative 4.3 Quelques exemples d’algorithmes de consensus [26] 4.3.1 Proof of work 4.3.2 Proof of stake 4.3.3 Solo 4.3.4 Kafka/Zookeeper 4.3.5 Proof of Elapsed Time 4.3.6 PBFT-based Méthodes proposées 5.1 Technologie 5.1.1 Hyperledger Fabric 5.1.2 Etat actuel d’Hyperledger Fabric [29] 5.1.3 Modèle de confidentialité 5.1.3.1 Définitions 5.1.3.2 Confidentialité des transactions (Transaction confidentiality) A Public to the members B N-Peer Channel C Private Data D Offchain avec Hash Onchain E Transport F Authentification du serveur G Mutual authentication 5.1.4 Pourquoi avons-nous choisi 1.4.0 ? 5.1.5 Modèle de sécurité dans Hyperledger 5.2 Architecture de l’application 5.2.1 Architecture d’Hyperledger 5.2.2 Composants natifs de Hyperledger A Fabric Peer B Fabric Orderer C Fabric Chaincode D Fabric CA 5.2.3 Exemple de transaction basé sur l’architecture native Hyperledger Fabric 5.2.4 Décomposition et relation des composants 5.3 Interfaces 5.3.1 Relation avec les autres composants de la plate-forme 5.3.2 Patterns de communication 5.3.2.1 Appel REST 5.4 Architecture de données 5.4.1 Diagramme des classes 5.5 Outils et Technologies ii 14 15 15 16 16 16 16 16 18 19 19 19 20 20 20 20 20 20 21 21 21 21 21 21 22 22 22 22 23 23 23 23 24 27 27 27 27 28 28 29 TABLE DES MATIÈRES 5.6 Architecture physique 5.6.1 Vue de déploiement 5.6.2 Configuration requise pour une machine virtuelle 5.6.3 Mesures de sécurité 5.6.4 Processus de déploiement 5.6.5 Domaines de sécurité des applications 5.6.6 Domaines de sécurité de l’infrastructure Implémentation et analyse des résultats 6.1 Les étapes d’implémentation du projet 6.1.1 Diagramme de classe implémenté 6.1.2 Installation des pré-requis 6.1.3 Déploiement du système 6.1.4 Tests et analyses des résultats A Sur l’image suivante nous faisons la mise jour de l’organization(O6) avec les Patchs publiés 30 30 30 31 32 32 33 35 35 35 36 37 40 52 Conclusion et Perspectives 55 7.1 Conclusion générale 55 7.2 Perspectives 55 A Quelques fonctions du smart contract iii 58 CHAPITRE IMPLÉMENTATION ET ANALYSE DES RÉSULTATS 47 F IGURE 6.18 – Patch informations from Ledger CHAPITRE IMPLÉMENTATION ET ANALYSE DES RÉSULTATS Sur l’image suivante nous retrouvons une liste des transactions effectuées F IGURE 6.19 – Some list of Blockchain event logs Sur les images suivantes, nous pouvons voir le détail de chaque transaction en nous connectant dans le repertoire du back-end Pour chaque transaction, nous pouvons observer le statut de la transaction, les messages et métadata émis, l’id de la transaction, le nom de l’évènement émis l’issue de la transaction, les attributs de l’entité retourné dans le Payload de la transaction ainsi que le txId (Id de la transaction) : F IGURE 6.20 – CreateOrganization transaction Les images suivantes montre les étapes de création de Patch avec deux PatchFiles, pour chaque étape un évènement est émis 48 CHAPITRE IMPLÉMENTATION ET ANALYSE DES RÉSULTATS F IGURE 6.21 – CreatePatch transaction (1) F IGURE 6.22 – Requesting a first CreatPatchFile for CreatePatch transaction (2) 49 CHAPITRE IMPLÉMENTATION ET ANALYSE DES RÉSULTATS F IGURE 6.23 – First AddPatchFile for CreatePatch transaction (3) F IGURE 6.24 – Requesting a second CreatPatchFile for CreatePatch transaction (4) 50 CHAPITRE IMPLÉMENTATION ET ANALYSE DES RÉSULTATS F IGURE 6.25 – Second AddPatchFile transaction for CreatePatch transaction (5) 51 CHAPITRE IMPLÉMENTATION ET ANALYSE DES RÉSULTATS F IGURE 6.26 – AddPublishedPatch transaction A Sur l’image suivante nous faisons la mise jour de l’organization(O6) avec les Patchs publiés Contenu des logs en se constant aux conteneurs dockers des peers 52 CHAPITRE IMPLÉMENTATION ET ANALYSE DES RÉSULTATS F IGURE 6.27 – Docker peer log -Transactions details (1) F IGURE 6.28 – Docker peer log -Transactions details (2) 53 CHAPITRE IMPLÉMENTATION ET ANALYSE DES RÉSULTATS F IGURE 6.29 – Docker peer log -Transactions details (3) 54 Chapitre Conclusion et Perspectives 7.1 Conclusion générale Dans ce document, nous avons affiné notre choix initial de technologie et l’avons transformé en une architecture tenant compte des exigences du cahier des charges en matière de cas d’utilisation et des spécificités techniques du projet Cyber-Trust Nous avons ộgalement conỗu et dộcrit des API de communication avec notre blockchain pour faciliter le travail des autres membres du consortium Cyber-Trust Au vu des resultats obtenus, la mise en oeuvre de notre blockchain est effective, fonctionnelle et permet l’enregistrement des données de la plateforme de manière immuable 7.2 Perspectives Le projet Cyber-Trust étant modulé dans son cahier des charges par un calendrier de délivrable fixé, nous avons ce jours implémenté l’objectif lié notre délivrable du mois d’Octobre 2019 Les respectives venir se tourneront vers la mise en oeuvre effective de la Private Data pour permettre des échanges et accès privés entre composants de la plate-forme Il s’agira aussi de pouvoir mettre en place les autres chaincodes restantes savoir : Trusted File Storage, Mitigation Management, Forensic File Storage 55 Bibliographie [1] Treleaven, Philip, Richard Gendal Brown, and Danny Yang "Blockchain Technology in Finance." Computer 50.9 (2017): 14-17 [2] L THERON (Juillet 2016) Quel consensus dans une blockchain privée ? [Accès le 26-Avril-2018], adresse : http://blog.octo.com/quel-consensus-dans-une-blockchain-privee/ [3] A DECAZES (Janvier 2017) Les ’smart contract’ dans la blockchain : quézako ? [Accès le 1-Mai-2018], adresse : http://www.usine- digitale.fr/article/les- smartcontract-dans-la-blockchain-quezako.N494204 [4] https://fr.wikipedia.org/wiki/Blockchain [5] https://www.blockchain.com/ [6] https://blockgeeks.com/guides/what-is-blockchain-technology/ [7] https://sudonull.com/posts/3370-Hyperledger-Fabric-Smart-ContractDevelopment-and-Testing [8] https://medium.com/everis-blockchain/hyperledger-fabric-private-datatutorial-dcd73dcf1ed5 [9] https://helm.sh/ [10] https://kubernetes.io/ [11] https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/ [12] https://www.docker.com/products/docker-desktop [13] https://docs.cloud.oracle.com/iaas/Content/ContEng/Tasks/ contengsettingupingresscontroller.htm [14] http://www.think-foundry.com/deploy-hyperledger-fabric-on-kubernetes-part1/ [15] https://medium.com/zhanghenry/how-to-deploy-hyperledger-fabric-onkubernetes-2-751abf44c807 [16] https://bitcoin.org/fr/ 56 BIBLIOGRAPHIE [17] https://www.ethereum.org/ [18] https://www.hyperledger.org/ [19] https://hyperledger-fabric.readthedocs.io/en/latest/tutorials.html [20] https://www.iota.org/get-started/what-is-iota [21] https://blockgeeks.com/guides/monero/ [22] https://blockgeeks.com/guides/zcash/ [23] https://medium.com/corda/what-is-corda-6417b14c8dc7 [24] https://nano.org/en/about/ [25] http://cryptomani.net/index.php/2018/08/14/les-algorithmes-de-consensusdans-la-blockchain-proof-of-work-proof-of-stake/ [26] https://bitcoin.fr/les-differents-algorithmes-de-consensus-1-2/ [27] https://www.binance.vision/blockchain/what-is-a-blockchain-consensusalgorithm [28] https://buildmedia.readthedocs.org/media/pdf/hlf/latest/hlf.pdf [29] https://github.com/hyperledger/fabric/releases [30] http://www.golangbootcamp.com/book/basics [31] https://github.com/hyperledger/fabric/releases [32] https://chrome.google.com/webstore/detail/react-developertools/fmkadmapgofadopljbjfkapdkoienihi?hl=en [33] https://code.visualstudio.com/ [34] https://github.com/hyperledger/fabric/blob/release1.4/core/chaincode/shim/chaincode.go [35] https://medium.com/wearetheledger/hyperledger-fabric-concurrency-reallyeccd901e4040 57 Annexe A Quelques fonctions du smart contract F IGURE A.1 – Annexe- fonctions de la classe Device du chaincode 58 ANNEXE A QUELQUES FONCTIONS DU SMART CONTRACT F IGURE A.2 – Annexe- appels fonctions du chaincodes (a) 59 ANNEXE A QUELQUES FONCTIONS DU SMART CONTRACT F IGURE A.3 – Annexe- appels fonctions du chaincodes (b) 60 ANNEXE A QUELQUES FONCTIONS DU SMART CONTRACT 61 ...UNIVERSITÉ NATIONALE DU VIETNAM, HANOÏ INSTITUT FRANCOPHONE INTERNATIONAL Fo kossi DAGBEGNIKIN L’analyse et le développement de projets informatiques avec les technologies web et Blockchain Spécialité... la réalisation de projets Blockchain, Web et Mobiles Pour cela un package de formations a été élaboré sur les technologies Blockchain afin de donner aux structures les clés de compréhension nécessaires... développer de nouvelles technologies et des nouveaux mod les commerciaux dans le but de mieux comprendre les futurs besoins des entreprises 2.1.1 Missions de l’équipe L’équipe est composé de plusieurs