FR3069937A1 - Syteme embarque securise et procede de securisation - Google Patents

Syteme embarque securise et procede de securisation Download PDF

Info

Publication number
FR3069937A1
FR3069937A1 FR1770839A FR1770839A FR3069937A1 FR 3069937 A1 FR3069937 A1 FR 3069937A1 FR 1770839 A FR1770839 A FR 1770839A FR 1770839 A FR1770839 A FR 1770839A FR 3069937 A1 FR3069937 A1 FR 3069937A1
Authority
FR
France
Prior art keywords
application software
software program
processor
kernel
policy
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR1770839A
Other languages
English (en)
Other versions
FR3069937B1 (fr
Inventor
Dominique Bolignano
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Prove & Run
Original Assignee
Prove & Run
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Prove & Run filed Critical Prove & Run
Priority to FR1770839A priority Critical patent/FR3069937B1/fr
Priority to US16/637,425 priority patent/US11734428B2/en
Priority to EP18746973.9A priority patent/EP3665576A1/fr
Priority to PCT/EP2018/071352 priority patent/WO2019030208A1/fr
Publication of FR3069937A1 publication Critical patent/FR3069937A1/fr
Application granted granted Critical
Publication of FR3069937B1 publication Critical patent/FR3069937B1/fr
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3608Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
    • G06F21/126Interacting with the operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • G06F8/436Semantic checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44589Program code verification, e.g. Java bytecode verification, proof-carrying code

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Quality & Reliability (AREA)
  • Technology Law (AREA)
  • Computing Systems (AREA)
  • Multimedia (AREA)
  • Computational Linguistics (AREA)
  • Storage Device Security (AREA)
  • Computer And Data Communications (AREA)

Abstract

L'invention concerne un système embarqué (1) comprenant un processeur (2) exploité au moyen d'un noyau (3) exécutable par ledit processeur, un périphérique matériel (8, 9), une mémoire (5) et un programme logiciel applicatif (6) enregistré dans ladite mémoire (5), ledit programme logiciel applicatif (6) étant exécuté au moyen dudit noyau (3) exécutable par ledit processeur (2), ainsi qu'un procédé de sécurisation. L'invention se caractérise en ce que caractérisé en ce que le noyau (3) exécutable par ledit processeur (2) contrôle ledit périphérique matériel (8,9), impose audit programme logiciel applicatif (6) qu'il exécute une politique de contrôle d'accès audit périphérique de communication (8, 9) et est prouvé formellement comme satisfaisant à au moins une propriété sécuritaire.

Description

SYTEME EMBARQUE SECURISE ET PROCEDE DE SECURISATION
DOMAINE DE L'INVENTION
La présente invention concerne un système embarqué comprenant un processeur exploité au moyen d'un noyau exécutable par ledit processeur, une mémoire, et un programme logiciel applicatif enregistré dans ladite mémoire, ledit programme logiciel applicatif étant exécutable au moyen dudit noyau exécutable par ledit processeur. Elle concerne par ailleurs un procédé de sécurisation d'un tel système.
ART ANTERIEUR
L'Internet des objets (IoT - Internet of Things) et, plus généralement, les systèmes embarqués, joue un rôle de plus important dans le domaine large de l'informatique. La cybersécurité a commencé à apparaître dans plusieurs domaines de 1'IOT et, en particulier, dans le domaine des voitures maisons intelligents, des des les pirates de modèles connectées, des réseaux intelligentes, des bureaux intelligents, villes intelligentes, de l'avionique, de la maintenance adaptative, de l'industrie dite 4.0. Les problèmes de sécurité auront tendance à croître à un rythme encore plus élevé que l'IoT lui-même, car professionnels bénéficieront également commerciaux plus rentables provenant de volumes plus élevés, de la plus grande valeur des objets individuels impliqués, d'autres fonctionnalités de l'IoT, etc., pour se propager dans d'autres domaines de l'IOT, par exemple, dans le domaine de l'assistance médicale à domicile, de l'équipement médical, de la production sur demande, jusqu'à devenir rapidement essentiel et essentiel pour le déploiement réussi de l'IoT.
De nombreuses cyber-attaques ont été signalées dans un passé récent. Même si ces attaques étaient principalement destinées aux automobiles et aux téléphones portables, la plupart d'entre elles sont assez générales et pourraient se produire dans presque toutes les domaines de l'IoT.
Si une partie des attaques peuvent être évitées en appliquant l'état de l'art dans le domaine de la sécurité, il apparaît qu'une partie importante desdites attaques subsisteront à cause de la vulnérabilité des quelques systèmes d'exploitations inévitablement présents dans les bases de confiances de tels systèmes embarqués.
Diverses bases de données publiques fournissent des statistiques sur les bogues publics ou les vulnérabilités sur toutes sortes de logiciels. Ces bases de données montrent clairement que les systèmes d'exploitation et les noyaux actuels souffrent d'un grand nombre d'erreurs et de faiblesses et ce, même lorsqu'ils sont développés par équipes chevronnées et quel que soit l'ancienneté de leur date de création. En particulier, de nouvelles erreurs sont toujours signalées par milliers chaque année sur des systèmes considérés comme étant bien maîtrisés comme Linux™.
Cette situation est essentiellement due à inhérente de ces systèmes d'exploitation dépendent de plus en plus de matériels sophistiqués. Les systèmes d'exploitation la complexité et noyaux, qui complexes et et les noyaux sont par nature concurrents et extrêmement complexes en raison de la nécessité de supporter différents types de périphériques. Il s'agit notamment de la gestion de l'interruption qui devient de plus en plus difficile, et des objectifs de performance tels que, par exemple, la complexité de la gestion du cache, les problèmes de consommation de ressources tels que, par exemple, le besoin d'une gestion sophistiquée de l'alimentation, etc. Cette complexité augmente avec le temps, augmente avec les nouvelles architectures de l'IoT et augmente en ce qui concerne les microprocesseurs réels par opposition aux microcontrôleurs.
RESUME DE L'INVENTION
Compte tenu de ce qui précède, un problème que se propose de résoudre l'invention est de fournir un système embarqué comprenant un processeur exploité au moyen d'un noyau exécutable par ledit processeur, une mémoire, et un programme logiciel applicatif enregistré dans ladite mémoire, ledit programme logiciel applicatif étant exécutable au moyen dudit noyau exécutable par ledit processeur, ainsi qu'un procédé pour la sécurisation d'un tel système, qui pallie les inconvénients précités de l'art antérieur, en proposant une sécurisation améliorée desdits systèmes.
La solution proposée de l'invention à ce problème posé a pour premier objet un système embarqué comprenant un processeur exploité au moyen d'un noyau exécutable par ledit processeur ; un périphérique matériel ; une mémoire ; et un programme logiciel applicatif enregistré dans ladite mémoire, ledit programme logiciel applicatif étant exécuté au moyen dudit noyau exécutable par ledit processeur, caractérisé en ce que le noyau exécutable par ledit processeur contrôle ledit périphérique de communication, impose audit programme logiciel applicatif qu'il exécute une politique de contrôle d'accès audit périphérique matériel et est prouvé formellement comme satisfaisant à au moins une propriété sécuritaire.
Elle a pour second objet un procédé de sécurisation d'un système embarqué comprenant un processeur exploité au moyen d'un noyau exécutable par ledit processeur ; un périphérique matériel ; une mémoire ; et un programme logiciel applicatif enregistré dans ladite mémoire, ledit programme logiciel applicatif étant exécuté au moyen dudit noyau exécutable par ledit processeur, caractérisé en ce que le noyau exécutable par ledit processeur contrôle ledit périphérique de communication, impose audit programme logiciel applicatif qu'il exécute une politique de contrôle d'accès audit périphérique matériel et est prouvé formellement comme satisfaisant à au moins une propriété sécuritaire.
Ainsi, en prouvant formellement processeur et en faisant de sorte politique de contrôle d'accès communication, on aboutit à une système selon l'invention.
au moins un noyau du
que ce noyau impose une
au périphérique de
sécurisation élevée du
De manière avantageuse, - le périphérique matériel est un périphérique de communication ; - le système comporte au moins un programme logiciel applicatif additionnel, et une politique d'accès audit périphérique matériel est imposée audit au moins un programme logiciel applicatif additionnel ; - le noyau impose en outre, au programme logiciel applicatif, une politique d'accès audit au moins un programme logiciel applicatif additionnel ; - le noyau impose en outre, à au moins un programme logiciel applicatif additionnel, une politique d'accès au programme logiciel applicatif ; - le système comporte une pluralité de programmes logiciels applicatifs additionnels, et un programme logiciel applicatif additionnel est soumis à une politique d'accès à un autre programme logiciel applicatif additionnel par le noyau ;
- le programme logiciel applicatif, exécuté par le noyau prouvé formellement, est prouvé formellement comme satisfaisant à ladite au moins une propriété sécuritaire ; - le noyau prouvé formellement et/ou le programme logiciel applicatif prouvé formellement satisfait à une exigence de sécurité égale ou supérieure au niveau EAL5 ;
- le processeur est exploité par le noyau prouvé formellement et par au moins un noyau additionnel, ledit noyau additionnel n'étant pas prouvé formellement, et le programme logiciel applicatif est uniquement exécutable par le noyau prouvé formellement du processeur ; - le périphérique de communication est un périphérique de communication à un réseau et/ou un objet connecté, et le programme logiciel applicatif filtre toutes les données et/ou instructions transmises et/ou reçues dudit réseau et/ou objet connecté ; - le système comprend en outre un périphérique de communication à un réseau d'objets connectés, et le programme logiciel applicatif filtre toutes les instructions et/ou données transmises et/ou reçues dudit réseau d'objets connectés ; - le programme logiciel applicatif filtre les données et/ou instructions
transmises par l'objet connecté au réseau d'objets
connectés et/ou transmises par le réseau d'objets
connectés à l'objet connecté, en ce qui concerne la
propriété sécuritaire, comme respectant cette propriété ; - ladite au moins une propriété sécuritaire est une politique de sécurité relative à l'intégrité des données et/ou instructions, de confidentialité des données, de contrôle d'accès à une ressource matérielle et/ou logicielle ou de sens de circulation des données et/ou instructions ; - ladite politique de sécurité est relative au sens de circulation des données et/ou instructions et, selon cette politique de sécurité, lesdites données et/ou instructions ne sont laissées passées que dans un unique sens de circulation ; - le système comprend périphérique de communication à un objet connecté et réseau d'objets connectés et l'unique sens de circulation est le sens allant de l'objet connecté vers le réseau d'objets connectés.
BREVE DESCRIPTION DES FIGURES
L ' invention sera mieux comprise à la lecture de la
description non limitative qui suit, rédigée au regard
des dessins annexés, dans lesquels :
la figure 1 est un schéma montrant différent
moyen mis en œuvre dans un système selon l'invention ; et
la figure 2 est un schéma montrant les
interactions entre les différents moyens montrés à la
figure 1.
DESCRIPTION
DETAILLEE DE
L'INVENTION
L'invention concerne un système embarqué. Un tel système est montré à la figure 1. Il est référencé 1 dans cette figure. Il s'agit d'un système informatique autonome spécialisé, bien souvent en vue d'exécuter une tâche bien précise, et comprenant des ressources aussi bien matérielles que logicielles, lesdites ressources étant généralement à tout le moins limitées sur le plan spatial et sur le plan de la consommation énergétique. Les systèmes sur puce (SoC, System on Chip) sont des systèmes embarqués selon l'invention.
Le système embarqué selon l'invention comprend un processeur 2. Ce processeur est un composant électronique présent dans le système selon l'invention, qui exécute des instructions de programmes logiciels. En général, il s'agit d'un microprocesseur. Il peut cependant s'agir aussi d'un microcontrôleur.
Le processeur selon l'invention comprend au moins un jeu d'instructions dont certaines ne sont accessibles que dans certains modes d'exécution privilégiés. Un noyau ou micro-noyau 3 est un programme qui va exploiter ces instructions en mode privilégié pour gérer les - ou certaines - ressources de la machine pour les applications 6, 7-1, 7-2, 7-3 qu'il va permettre d'exécuter et qui elles ne s'exécuteront pas en mode privilégié mais dans un mode moins privilégié généralement appelé le mode utilisateur. Selon l'invention, le noyau 3 exécutable par le processeur 2est prouvé formellement comme satisfaisant à au moins une propriété sécuritaire. Cela signifie qu'il a été démontré par une méthode formelle que le noyau 3 est sécurisé pour ce qui concerne la propriété sécuritaire en question. Il s'agit par exemple d'un noyau satisfaisant au niveau d'assurance d'évaluation EAL5 ou à un niveau supérieur
EAL6 ou EAL7. La propriété sécuritaire est en particulier une politique de sécurité relative à l'intégrité des données et/ou instructions, de confidentialité des données, de contrôle d'accès à une ressource matérielle, par exemple un périphérique matériel, notamment un périphérique de communication et/ou à une ressource logicielle, par exemple un programme logiciel applicatif, ou de sens de circulation des données et/ou instructions. Il s'agit dans un exemple particulier d'une politique de sécurité relative au sens de circulation des données et/ou instructions.
Le système selon l'invention comprend en outre une mémoire 5. Cette mémoire est un dispositif électronique permettant de stocker des informations, par exemple des données et/ou des programmes logiciels applicatifs.
Le système selon l'invention comprend par ailleurs au moins un programme logiciel applicatif 6. Il comprend en outre éventuellement au moins un et, en général, une pluralité d'autres programmes logiciels applicatifs additionnels 7-1, 7-2, 7-3. Le programme logiciel applicatif 6 est enregistré dans la mémoire 5. Il est exécutable au moyen du noyau 3 du processeur 2. Selon l'invention, le programme logiciel applicatif 6 est avantageusement prouvé formellement comme satisfaisant à la propriété sécuritaire qui fait l'objet de la preuve formelle du noyau 3 du processeur 2.
Enfin, le système selon l'invention comporte divers composants additionnels de nature logicielle ou de nature matérielle.
Il s'agit de périphériques matériels tels que des capteurs, des périphériques de contrôle, par exemple, d'une action ou d'un moteur, ou tels que des périphériques matériels de communication 8, 9. Ces périphériques de communication sont par exemple des périphériques de communication Ethernet™.
Il s'agit en outre de composants logiciels tels que des programmes logiciels applicatifs additionnels, notamment de logiciels pilotes 7-3 en particulier des périphériques de communication 8, 9, de programmes logiciels applicatifs permettant la création de réseaux virtuels privés 7-1 tels que OpenVPN™, de couches logicielles telles que par exemple une couche de transport d'information sécuritaire (TLS, Transport Layer Security), un programme logiciel applicatif assurant la communication avec le monde extérieur selon le protocole TCP/IP 7-2. Il peut s'agir aussi de pilote (driver en langue anglaise) de périphérique, car dans le cas d'un micro-noyau ceci peuvent tourner en mode utilisateur, c'est-à-dire comme des applications.
En pratique, le système 1 selon l'invention est un système embarqué qui comprend ou est connecté à un ou plusieurs objets connectés, ou à un réseau connecté composé potentiellement de serveurs. Il s'agit d'objets inclus dans ledit système 2 ou directement connecté à celui-ci ou il s'agit d'objets connectés au système au travers d'un réseau par exemple un réseau IoT. Dans l'exemple de la figure 1, le périphérique de communication 8 est directement connecté à un objet connecté 10 et le périphérique de communication 9 est connecté à un réseau d'objets connectés 11 au travers de l'Internet 12, ledit réseau étant muni d'un serveur de confiance. Dans un tel cas, le réseau d'objets connecté 11 est considéré comme constituant le monde extérieur au système et l'objet connecté 10 fait partie du monde intérieur audit système.
additionnel 7-1, 7-2, l'invention comprend
Selon l'invention, le noyau 3 contrôle le ou lesdits périphériques de communication 8, 9. A cet effet, il impose au programme logiciel applicatif 6 qu'il exécute une politique de contrôle d'accès auxdits périphériques de communication 8, 9. Lorsque le système embarqué selon l'invention comporte au moins un programme logiciel applicatif additionnel 7-1, 7-2, 7-3, le noyau 3 prouvé formellement impose une politique de contrôle d'accès audit au moins un programme logiciel applicatif additionnel 7-1, 7-2, 7-3 et d'accès audit périphérique de communication 8, 9 par ledit au moins un programme applicatif additionnel 7-1, 7-2, 7-3. Il impose en outre, au programme logiciel applicatif 6, une politique d'accès audit au moins un programme logiciel applicatif 7-3. Lorsque le système selon une pluralité logiciels applicatifs additionnels 7-1, programme logiciel applicatif additionnel 7-1, 7-2, 7-3 est soumis à une politique d'accès à un autre programme logiciel applicatif additionnel 7-1, 7-2, 7-3, par le noyau 3. De telles politiques de contrôle d'accès seront généralement configurables pour permettre audit noyau d'être utilisé dans différentes configurations de programmes 7-2, 7-3, un différentes
Elle seront généralement configurées de manière statique pour le système mais pourront être dans certains cas modifiées dynamiquement. La politique de
contrôle manières d'accès peut être considérée de différentes
• Par exemple comme une matrice carrée entre les
différentes applications et périphériques et
potentiellement le deuxième OS s'il existe d'un côté (c'est-à-dire les abscisses) et les mêmes applications et périphériques de l'autre et le deuxième OS s'il existe (c'est-à-dire les ordonnées) et indiquant ce qui est permis et autorisé (par le noyau) en terme d'accès/communication entre chacune des abscisses et ordonnées).
• Ou de manière équivalente comme une case de cette matrice, auquel cas on aura un ensemble de politiques de contrôle d'accès (représentant d'une différente manière la matrice précédente).
Cette (ou ces) politique(s) de contrôle d'accès est (sont) potentiellement paramétrable(s) ou configurable(s). Elle autorise ou interdit les communications entre les programme logiciels applicatifs et/ou entre lesdits programmes logiciels applicatifs et/ou les périphériques.
Selon l'invention, le noyau prouvé formellement 3 du processeur 2 exécute le programme logiciel applicatif prouvé formellement 6. Avantageusement, le programme logiciel applicatif prouvé formellement 6 est uniquement exécutable par le noyau prouvé formellement 3 du processeur 2. Le noyau est le seul à exécuter 1'application.
Ainsi, on aboutit à une sécurisation élevée du système selon l'invention. Il n'est pas nécessaire de prouver formellement l'entièreté du noyau, ou du programme applicatif. En fait la preuve doit être utilisée sur les parties du système qui sans la preuve ne permettrait pas d'atteindre un niveau de qualité ne laissant potentiellement plus que quelques bogues ou erreurs résiduelles (le nombre de bogues résiduels dans le noyau doit être proche ou meilleur que celui des bogues résiduels dans le processeur. Dans le cas d'un noyau, compte tenu de la complexité du matériel et des algorithmes logiciels utilisés la quasi totalité du noyau doit être prouvé, à l'exception peut-être de quelques parties séquentielles comme le mécanismes de « boot » (lancement du noyau), ou quelques parties encapsulant le matériel et utilisant des algorithmes simples et typiquement séquentiels. Pour un programme applicatif la part de ce qui est à prouver peut-être beaucoup plus marginale, voire nulle dans les cas où la logique du programme peut être amené à très un niveau de qualité (nombre de bogues ou erreurs résiduelles extrêmement faible, voire nulle).
Dans un premier exemple de mise en œuvre du système selon l'invention, on souhaite filtrer des communications entre l'objet connecté 10 et l'IoT 11 et ce pour être certain que les communications entrantes et sortantes du système, entre ledit objet et l'IoT, respectent chacune des politiques de sécurités particulières. Par exemple, on accepte que seules certaines commandes bien particulières en provenance de l'extérieur et, plus particulièrement, du serveur de confiance contenu dans l'IoT et on ne laisse sortir que certaines données vers l'extérieur. On souhaite par exemple remonter des informations de capteurs embarqués tels que l'objet 10 vers des serveurs de données de l'IoT, tout conservant la possibilité d'envoyer certaines commandes vers le système embarqué telles que des commandes de configuration ou des demandes d'information. Cet exemple est donc un exemple dans lequel le système selon l'invention forme un filtre.
Dans un deuxième exemple de mise en œuvre du système selon l'invention, le filtre est un filtre particulier dont le fonctionnement est du type diode, c'est-à-dire un filtre qui ne laisse passer l'information que dans un unique sens et ne contrôle pas l'information qui passe dans l'autre sens ou sens autorisé. Ainsi, un tel système ne vérifie pas quel type de données circule dans le sens autorisé. On appelle généralement de tels systèmes ou services des diodes, en référence aux composants électroniques du même nom. On trouve par exemple de tels filtres du type diode sur les avions pour envoyer, au cours du vol, réacteurs vers Compte tenu des données des serveurs de de capteurs de confiance du
1'architecture situés sur les situés à terre, système selon l'invention, on peut construire de telles diodes en développant des applications et en configurant l'environnement Linux™ de manière à ce que la communication ne soit possible que dans un sens, à savoir le sens autorisé par la diode. Le problème est qu'une mauvaise configuration et surtout des erreurs dans le noyau Linux™ ou dans la manière dont l'ensemble fort complexe est configuré peuvent être utilisés par un attaquant pour créer des canaux non voulus en contournant par exemple les applications filtres, ou même en corrompant l'intégrité de tout ou partie du système luimême .
Selon le premier exemple précité, et en se référant à la figure 2, pour fournir un filtre de haut niveau de résistance à des attagues distantes l'invention propose, à titre d'exemple, un système selon l'invention dans leguel les flux d'information contrôlés et autorisés par le noyau prouvée sont représentés par des doubles-flèches dont le contenu est hachuré. Pour évaluer le niveau de résistance à des attagues logigues on estime le coût théorigue pour mettre en place une attague distante. Pour un système d'exploitation ou un noyau gérant les ressources d'un microprocesseur moderne, typiguement un Cortex A™ développé par ARM™, obtenir une résistance de même niveau gue le matériel nécessite généralement la preuve formelle gue le noyau vérifie des certaines propriétés de haut niveau, par exemple une séparation entre espaces. Pour une application s'appuyant sur un tel système d'exploitation, la preuve formelle n'est pas forcément nécessaire guand l'application reste simple car des technigues de validation connues peuvent suffire : tests exhaustifs, relecture de code, etc. Selon l'invention, on utilise un noyau gui, en plus d'être prouvé formellement, pour des propriétés tels la séparation, peut être configuré pour contrôler rigoureusement les flux d'informations entre ses différentes applications. On notera gue le noyau prouvé formellement est ici un micro-noyau. Les logiciels pilotes applicatifs de matériels sont conformes à ce gu'on a défini de même gue pour ce gui est des flux d'information entre ses applications et les périphérigues. Dans cet exemple, le noyau garantit et ce, à un très haut de résistance, que seule l'application pilote Ethernet1
7-3 peut communiquer avec le périphérique Ethernet™ 9, que l'application TCP/IP 7-2, qui est implémente la pile du même nom ne peut communiquer qu'avec l'application pilote Ethernet™ 7-3, et l'application filtre 6 et l'application VPN 7-2, que l'application pilote Ethernet™ 7-1 est la seule à pouvoir communiquer avec le périphérique Ethernet™ 8, et ne peut communiquer par ailleurs qu'avec l'application filtre 6. Ces contrôles sont imposés par l'OS ou le noyau sur les communications qui représentent les communications autorisés par l'OS entre les différentes applications et les différents périphériques de communication. D'autres canaux de communications peuvent ne pas être pas contrôlés directement par le noyau. L'architecture est ici simplifiée : l'application filtre 6, qui doit être suffisamment simple pour être menée à un très haut de niveau de résistance ne communique typiquement pas directement avec le pilote de comunication, car cela aurait tendance à augmenter inutilement sa complexité, mais au travers d'autres applications, et piles logiciels n'offrant pas nécessairement le même niveau de résistance. Typiquement, on ajouterait des couches protocolaires, ce qui fait que le système implémente une rupture protocolaire qui lui permet de filtrer les données abstraites de haut niveau. Typiquement on utiliserait un VPN pour protéger les données externes et toute ou partie de l'agent VPN pourrait tourner et être protéger et contrôler par le noyau prouvé. L'application 6 de filtre avec son noyau sous-jacent 3 permet en fin de compte de réduire le fonctionnement du matériel sousjacent (par nature généraliste) à un fonctionnement beaucoup plus restreint. Pour passer du monde dit intérieur au monde extérieur, l'information doit passer et être acceptée par l'application filtre 6 posée sur son noyau 3 fortement résistant, et ce quelle que soit la qualité des autres piles logicielles 7-1, 7-2, 7-3. Ici, les communications entre l'extérieur et l'intérieur - le monde extérieur ne peut communiquer avec le sous-système d'intérêt qu'à travers le périphérique Ethernet™ 9, alors que le monde intérieur ne peut communiquer avec le soussystème d'intérêt qu'à travers le périphérique Ethernet™
Selon l'art antérieur, pour obtenir un diode à forte résistance, et donc certifiable à un très haut niveau on utilise généralement une diode physique. Une diode physique utilise par définition un phénomène physique dissymétrique comme exemple un faisceau laser qui est utilisé à une étape de l'envoi de l'information et ne peut par construction envoyer l'information que dans un sens .
L'alternative selon le deuxième exemple précité selon l'invention est une diode logicielle qui, fonctionnellement, est équivalente. Grâce à l'invention une telle diode logicielle peut atteindre le même niveau de résistance qu'une diode physique, et peut en particulier être évaluée au niveau le plus haut des schémas de certification de sécurité, en particulier le standard ISO des Critères Communs. Il n'est pas possible en effet, au moyen d'un système selon l'invention, possédant une application filtre du type diode, d'exploiter une faille dans l'OS sous-jacent pour par exemple reprogrammer une fonction ou by-passer l'application pour permettre la communication dans 1'autre sens.
La solution proposée selon ce deuxième exemple est finalement basée sur l'architecture décrite précédemment dans laquelle l'application filtre est remplacée par une application qui ne laisse passer l'information que dans un sens. Une telle application peut-être écrite très simplement à condition que l'OS sous-jacent fournisse des services de haut niveau qui abstraient la complexité du matériel. Il faut aussi pouvoir garantir que cette application ne puisse pas être contournée et que l'intégrité de l'OS ne puisse pas être atteinte. La politique de contrôle d'accès imposée par le noyau est donc ici essentielle.
Pour les mêmes raisons que pour le filtre logiciel, l'architecture proposée permet cela et la diode logicielle selon l'invention permet potentiellement d'offrir un niveau de résistance de niveau comparable à une diode matérielle tout en offrant des caractéristiques très intéressantes : utilisation de composants génériques (le cœur du système peut utiliser un microprocesseur générique), et évolution possible des fonctionnalités (on peut par exemple en munissant une telle architecture d'un système de mise à jour du microprogramme (Firmware Update) de haut niveau de résistance ajouter des fonctionnalités, les mettre à jour, etc., voire, dans nos exemples passer de la diode au filtre ou l'inverse, etc.. Il est aussi possible de certifier très rapidement une telle architecture au plus haut niveau de sécurité en s'appuyant sur les certifications ou pré-certifications des composants les plus lourds, par exemple le système d'exploitation. Pour des raisons évidentes le même niveau pourrait être potentiellement obtenu pour le filtre du premier exemple alors que cela est actuellement considéré comme hors d'atteinte compte tenu des contraintes économiques.
Bien entendu, les exemples du filtre et de la diode ne sont que des exemple particuliers selon l'invention. Il est en effet possible de restreindre le fonctionnement de systèmes conformes à l'objet de l'invention de très nombreuses autres manières, y compris de manière dynamique pendant la vie du système. Dans d'autres exemples, il est possible de filtrer ou contrôler finement certains périphériques, on d'interdire certains flux entre périphériques.

Claims (16)

1. Système embarqué (1) comprenant :
un processeur (2) exploité au moyen d'un noyau (3) exécutable par ledit processeur ;
un périphérique matériel (8, 9) ;
une mémoire (5) ; et un programme logiciel applicatif (6) enregistré dans ladite mémoire (5), ledit programme logiciel applicatif (6) étant exécuté au moyen dudit noyau (3) exécutable par ledit processeur (2), caractérisé en ce que le noyau (3) exécutable par ledit processeur (2) contrôle ledit périphérique matériel (8, 9), impose audit programme logiciel applicatif (6) qu'il exécute une politique de contrôle d'accès audit périphérique matériel (8, 9) et est prouvé formellement comme satisfaisant à au moins une propriété sécuritaire.
2. Système selon la revendication 1, caractérisé en ce que le périphérique matériel (8, périphérique de communication.
est un
3. Système selon la revendication 2, caractérisé en ce qu'il comporte au moins un programme logiciel applicatif additionnel (7-1, 7-2, 7-3), en ce qu'une politique d'accès audit périphérique matériel (8, 9) est imposée audit au moins un programme logiciel applicatif additionnel (7-1, 7-2, 7-3) .
4. Système selon la revendication 3, caractérisé en ce que le noyau (3) impose en outre, au programme logiciel applicatif (6), une politique d'accès audit au moins un programme logiciel applicatif additionnel (7-1, 7-2, 7-3).
5. Système selon l'une des revendications 3 ou 4, caractérisé en ce que le noyau (3) impose en outre, à au moins un programme logiciel applicatif additionnel (7-1, 7-2, 7-3), une politique d'accès au programme logiciel applicatif (6).
6. Système selon l'une des revendications 3, 4 ou 5, caractérisé en ce qu'il comporte une pluralité de programmes logiciels applicatifs additionnels (7-1, 7-2, 7-3), et en ce que un programme logiciel applicatif additionnel (7-1, 7-2, 7-3) est soumis à une politique d'accès à un autre programme logiciel applicatif additionnel (7-1, 7-2, 7-3), par le noyau (3).
7. Système selon l'une des revendications précédentes, caractérisé en ce que le programme logiciel applicatif (6), exécuté par le noyau (3) prouvé formellement, est prouvé formellement comme satisfaisant à ladite au moins une propriété sécuritaire.
8. Système selon l'une des revendications précédentes, caractérisé en ce que le noyau (3) prouvé formellement et/ou le programme logiciel applicatif (6) prouvé formellement satisfait à une exigence de sécurité égale ou supérieure au niveau EAL5.
9. Système selon l'une des revendications précédentes, caractérisé en ce que le processeur (2) est exploité par le noyau (3) prouvé formellement et par au moins un noyau additionnel (4), ledit noyau additionnel n'étant pas prouvé formellement, et le programme logiciel applicatif (6) est uniquement exécutable par le noyau (3) prouvé formellement du processeur (2).
10. Système selon l'une des revendications 2 à 9, caractérisé en ce que le périphérique de communication (8) est un périphérique de communication à un réseau et/ou un objet connecté (10), et en ce que le programme logiciel applicatif (6) filtre toutes les données et/ou instructions transmises et/ou reçues dudit réseau et/ou objet connecté (10).
11. Système selon l'une des revendications 2 à 9, caractérisé en ce qu'il comprend en outre un périphérique de communication (9) à un réseau d'objets connectés (il), et en ce que le programme logiciel applicatif (6) filtre toutes les instructions et/ou données transmises et/ou reçues dudit réseau d'objets connectés.
12. Système selon les revendications 10 et 11, caractérisé en ce que le programme logiciel applicatif (3) filtre les données et/ou instructions transmises par l'objet connecté (10) selon la revendication 9 au réseau d'objets connectés (il) selon la revendication 10 et/ou transmises par le réseau d'objets connectés (11) selon la revendication 10 à l'objet connecté (10) selon la revendication 9, en ce qui concerne la propriété sécuritaire, comme respectant cette propriété.
13. Système selon l'une des revendications précédentes, caractérisé en ce que ladite au moins une propriété sécuritaire est une politique de sécurité relative à l'intégrité des données et/ou instructions, de confidentialité des données, de contrôle d'accès à une ressource matérielle et/ou logicielle ou de sens de circulation des données et/ou instructions.
14. Système selon la revendication 13, caractérisé en ce que ladite politique de sécurité est relative au sens de circulation des données et/ou instructions et en ce que selon cette politique de sécurité, lesdites données et/ou instructions ne sont laissées passées que dans un unique sens de circulation.
15. Système selon la revendication 14, caractérisé en ce qu'il comprend périphérique de communication à un objet connecté selon la revendication 10 et réseau d'objets connectés selon la revendication 11 et en ce que l'unique sens de circulation est le sens allant de l'objet connecté vers le réseau d'objets connectés.
16. Procédé de sécurisation d'un système embarqué comprenant un processeur (2) exploité au moyen d'un noyau (3) exécutable par ledit processeur ;
un périphérique matériel (8, 9) ;
une mémoire (5) ; et un programme logiciel applicatif (6) enregistré dans ladite mémoire (5), ledit programme logiciel applicatif (6) étant exécuté au moyen dudit par noyau (3;
exécutable ledit processeur caractérisé en ce que le noyau (3) exécutable par ledit processeur (2) contrôle ledit périphérique de communication (8,9), impose audit programme logiciel applicatif (6) qu'il exécute une politique de contrôle d'accès audit périphérique matériel (8, 9) et est prouvé formellement comme satisfaisant à au moins sécuritaire.
FR1770839A 2017-08-07 2017-08-07 Syteme embarque securise et procede de securisation Active FR3069937B1 (fr)

Priority Applications (4)

Application Number Priority Date Filing Date Title
FR1770839A FR3069937B1 (fr) 2017-08-07 2017-08-07 Syteme embarque securise et procede de securisation
US16/637,425 US11734428B2 (en) 2017-08-07 2018-08-07 Secure embedded system and method of making secure
EP18746973.9A EP3665576A1 (fr) 2017-08-07 2018-08-07 Systeme embarque securise et procede de securisation
PCT/EP2018/071352 WO2019030208A1 (fr) 2017-08-07 2018-08-07 Systeme embarque securise et procede de securisation

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1770839A FR3069937B1 (fr) 2017-08-07 2017-08-07 Syteme embarque securise et procede de securisation
FR1770839 2017-08-07

Publications (2)

Publication Number Publication Date
FR3069937A1 true FR3069937A1 (fr) 2019-02-08
FR3069937B1 FR3069937B1 (fr) 2021-10-01

Family

ID=60955354

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1770839A Active FR3069937B1 (fr) 2017-08-07 2017-08-07 Syteme embarque securise et procede de securisation

Country Status (4)

Country Link
US (1) US11734428B2 (fr)
EP (1) EP3665576A1 (fr)
FR (1) FR3069937B1 (fr)
WO (1) WO2019030208A1 (fr)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11606694B2 (en) 2020-10-08 2023-03-14 Surendra Goel System that provides cybersecurity in a home or office by interacting with internet of things devices and other devices
CN114579977A (zh) * 2022-02-25 2022-06-03 无锡物联网创新中心有限公司 一种用于嵌入式操作***的代码漏洞检测方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8074231B2 (en) * 2005-10-26 2011-12-06 Microsoft Corporation Configuration of isolated extensions and device drivers
US8918841B2 (en) * 2011-08-31 2014-12-23 At&T Intellectual Property I, L.P. Hardware interface access control for mobile applications
CN104424034A (zh) * 2013-09-04 2015-03-18 华为技术有限公司 硬件资源访问方法及装置
US20170206351A1 (en) * 2014-07-22 2017-07-20 Viasat, Inc. Mobile device security monitoring and notification
US10650156B2 (en) * 2017-04-26 2020-05-12 International Business Machines Corporation Environmental security controls to prevent unauthorized access to files, programs, and objects

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
DOMINIQUE BOLIGNANO: "Formally Proven and Certified Off-The-Shelf Software Components: the Critical Links for Securing the Internet of Things", C&ESAR 2016 CONFERENCE COMPUTER & ELECTRONICS SECURITY APPLICATIONS RENDEZ-VOUS - INTERNET DES OBJETS VOUS AVEZ DIT SÉCURITÉ? - 2 1-23 NOVEMBRE 2016, RENNES, FRANCE, 21 November 2016 (2016-11-21), Rennes, pages 1 - 4, XP055471570, Retrieved from the Internet <URL:https://www.cesar-conference.org/wp-content/uploads/2017/06/Actes_Cesar_2016.pdf> [retrieved on 20180430] *
DOMINIQUE BOLIGNANO: "Proven Security for the Internet of Things", EMBEDDED WORLD CONFERENCE 2016, 1 January 2016 (2016-01-01), pages 1 - 11, XP055471559, Retrieved from the Internet <URL:http://www.provenrun.com/wp-content/uploads/2016/02/Proven-Security-for-the-Internet-of-Things-v2.pdf> [retrieved on 20180430] *
STÉPHANE LESCUYER: "ProvenCore: Towards a Verified Isolation Micro-Kernel", PROVE & RUN'S DOCUMENT ONLINE, 1 January 2015 (2015-01-01), pages 1 - 8, XP055471557, Retrieved from the Internet <URL:http://ceec-project.org/wp-content/uploads/2015/01/Prove-Run-ProvenCore-Towards-a-Verified-Isolation-Micro-Kernel.pdf> [retrieved on 20180430] *

Also Published As

Publication number Publication date
US20200226259A1 (en) 2020-07-16
WO2019030208A1 (fr) 2019-02-14
US11734428B2 (en) 2023-08-22
EP3665576A1 (fr) 2020-06-17
FR3069937B1 (fr) 2021-10-01

Similar Documents

Publication Publication Date Title
Kumari et al. A taxonomy of blockchain-enabled softwarization for secure UAV network
Singh et al. A survey on cloud computing security: Issues, threats, and solutions
EP3479285B1 (fr) Procédé et dispositif de surveillance de la sécurité d&#39;un système d&#39;information
EP3156931B1 (fr) Procédé de détection de vulnerabilités dans un serveur virtuel de production d&#39;un système informatique virtuel ou en nuage
Wueest Targeted attacks against the energy sector
US9177154B2 (en) Remediation of computer security vulnerabilities
Akhtar et al. A comprehensive overview of privacy and data security for cloud storage
Soares et al. Cloud security: state of the art
US20240028721A1 (en) Utilizing Machine Learning to detect malicious executable files efficiently and effectively
Al-Hawawreh et al. Securing the Industrial Internet of Things against ransomware attacks: A comprehensive analysis of the emerging threat landscape and detection mechanisms
Allodi et al. The work‐averse cyberattacker model: theory and evidence from two million attack signatures
FR2850503A1 (fr) Procede et systeme dynamique de securisation d&#39;un reseau de communication au moyen d&#39;agents portables
FR3069937A1 (fr) Syteme embarque securise et procede de securisation
US20230412626A1 (en) Systems and methods for cyber security and quantum encapsulation for smart cities and the internet of things
Podjarny et al. Serverless security
De Faveri et al. A SPL framework for adaptive deception-based defense
Haber et al. Mitigation Strategies
Bird Information Security risk considerations for the processing of IoT sourced data in the Public Cloud
WO2020084222A1 (fr) Technique de collecte d&#39;informations relatives à un flux acheminé dans un réseau
Wheeler et al. Securing the loT Cloud
Vallois Securing industrial internet of things architectures through Blockchain
FR3098322A1 (fr) Architecture informatique en nuage securisee et procede de securisation
Udayakumar Design and Deploy Security for Infrastructure, Data, and Applications
West Advances in data security for more effective decision-making in agriculture
Sharma et al. Security from insider theft on cloud computing

Legal Events

Date Code Title Description
PLSC Publication of the preliminary search report

Effective date: 20190208

PLFP Fee payment

Year of fee payment: 3

PLFP Fee payment

Year of fee payment: 4

PLFP Fee payment

Year of fee payment: 5

PLFP Fee payment

Year of fee payment: 6

PLFP Fee payment

Year of fee payment: 7