EP4457630A1 - Système et procédé de surveillance du fonctionnement d'un calculateur - Google Patents

Système et procédé de surveillance du fonctionnement d'un calculateur

Info

Publication number
EP4457630A1
EP4457630A1 EP22840225.1A EP22840225A EP4457630A1 EP 4457630 A1 EP4457630 A1 EP 4457630A1 EP 22840225 A EP22840225 A EP 22840225A EP 4457630 A1 EP4457630 A1 EP 4457630A1
Authority
EP
European Patent Office
Prior art keywords
unit
task
identifier
computer
memory
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.)
Pending
Application number
EP22840225.1A
Other languages
German (de)
English (en)
Inventor
Jimmy LE RHUN
Sylvain GIRBAL
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.)
Thales SA
Original Assignee
Thales SA
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 Thales SA filed Critical Thales SA
Publication of EP4457630A1 publication Critical patent/EP4457630A1/fr
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting

Definitions

  • the present invention relates to a system for monitoring the operation of a computer.
  • the present invention also relates to a method for monitoring the operation of a computer.
  • on-board computers respond to constraints expressed in the form of properties to be guaranteed, such as confidentiality, integrity, or availability in the field of security, or else reliability, real-time behavior, or traceability in the field of operational safety.
  • Such surveillance systems include in particular intrusion detection systems (more often called IDS, an abbreviation which refers to the corresponding English name of “Intrusion Detection System”) already exploiting the monitoring information of the operation of the software to detect cyberattacks.
  • IDS intrusion detection systems
  • IDS an abbreviation which refers to the corresponding English name of “Intrusion Detection System”
  • HIDS systems are also known.
  • the H refers to the corresponding English name of “Host”, i.e. “host” and IDS to the aforementioned abbreviation.
  • HIDS systems focus on a computer, at the level of its operating system. HIDS systems seek to detect abnormal behavior, by monitoring running processes, memory allocations, logged in users and the like. An alert is generated when one of the quantities monitored by the HIDS system in question deviates from a predefined standard.
  • control systems are used that generally exploit a system of temporal windows and prevent the material use of resources by applications outside the windows assigned to this application, thus guaranteeing strict partitioning and predictable temporal behavior at the cost of a drop in performance.
  • control systems are used, more flexible but offering less strict guarantees which monitor the use of material resources in real time, and are reactive only in the event of congestion on the path of these resources.
  • the description describes a system for monitoring the operation of a computer, the computer comprising hardware blocks, the hardware blocks comprising several cores, the computer also comprising a set of task scheduling units, the set being capable of ordering the execution of a task by assigning it an identifier and of storing the identifier on a first storage unit.
  • the monitoring system comprises a collection unit capable of counting the number of requests for each hardware block during the performance of a task, the collection unit also being capable of reading the identifier of the task performed in the first unit storage unit, the collection unit also being able to form an association between a request with the corresponding identifier and to store each association formed on a second storage unit.
  • the monitoring system also includes a monitoring unit capable of determining the state of operation of the computer by using the stored associations.
  • the surveillance system using a dedicated memory for the collection of surveillance information helps to guarantee a higher level of security. Indeed, the dedicated memory can only be addressed from hardware elements and not at the software level. This makes it possible to prevent the information collected from being accessible by the applications and thus to avoid their exploitation for malicious purposes.
  • each task here is a software task and the collection unit is a hardware block (physical component). This implies that the collection unit has a priori no information on the tasks which are scheduled by the operating system.
  • the monitoring system has one or more of the following characteristics, taken separately or according to all the technically possible combinations:
  • a hardware block is a main memory shared by the cores, the storage unit being part of the main memory.
  • a hardware block is a debug support unit shared by the cores, the memorization unit being part of the debug support unit.
  • the storage unit is a core-specific memory.
  • each core has a tightly coupled memory, the core-specific memory being the tightly coupled memory.
  • each core comprises a memory management unit, the memory specific to a core being located in the memory management unit.
  • each core has a performance measurement unit, the memory specific to a core being contained in the performance measurement unit.
  • each core includes a performance measurement unit, the collection unit being formed by all the performance measurement units.
  • the first storage unit is separate from the second storage unit.
  • the description also describes a method for monitoring the operation of a computer, the computer comprising hardware blocks, the hardware blocks comprising several cores, the computer also comprising a set of task scheduling units, the set being specific to ordering the execution of a task by assigning it an identifier and storing the identifier on a first storage unit, the method being implemented by a monitoring system comprising a collection unit and a monitoring unit, the method comprising a step of counting the number of requests of each hardware block during the performance of a task, a step of reading the identifier of the task performed in the first storage unit, a step of forming an association between a request with the corresponding identifier and storage of each association formed on a second storage unit, and a step of determining the state of operation of the computer by using the stored associations.
  • FIG. 2 is a schematic representation of the processes implemented by the computer
  • FIG. 3 is a schematic representation of another example of a computer.
  • a computer 10 is represented schematically in FIG.
  • the computer 10 is, for example, an on-board computer, in particular a critical computer.
  • Such a computer 10 can be used in an airplane, in a payload or a satellite platform or in implanted medical systems.
  • computer 10 is a multi-core computer.
  • Computer 10 includes cores 12, interconnect 14, main memory 16, and debug support unit 18.
  • a core 12 is a set of circuits capable of executing programs autonomously.
  • Each core 12 has a calculation unit 20 comprising a scheduling unit 22, cache memories 26, a tightly coupled memory 28, a memory management unit 30 and a performance measurement unit 34.
  • the calculation unit 20 is the unit that performs the various tasks.
  • a HYP hypervisor implements two operating systems OS1 and OS2. They all have a scheduling unit 22.
  • Each of these operating systems OS1 and OS2 in turn implement two respective processes.
  • the first operating system OS1 implements a first process P1 and a second process P2 while the second operating system OS2 implements a third process P3 and a fourth process P4.
  • Each process P1, P2, P3 or P4 corresponds to a set of several tasks.
  • the implementation of these tasks is managed by the scheduling unit 22.
  • the set of scheduling units 22 form a set 38 which is suitable for ordering the execution of a task by assigning it an identifier and for storing the identifier on a storage unit.
  • a cache memory is a memory that temporarily saves copies of data from a source, in order to reduce the time of a later access (in reading) of a computer hardware (in general, a processor) to these data.
  • the heart comprises several cache memories 26 represented in the form of a single block in figure 1.
  • a tightly coupled memory 28 is a memory capable of explicitly memorizing instructions or private data of a core 12, with access times comparable to the cache memory 26 but without generating implicit transactions on the interconnect 14.
  • Such a memory is more often designated by the abbreviation TCM referring to the corresponding English denomination of "Tightly Coupled Memory”.
  • the memory management unit 30 is used to control memory accesses.
  • the memory management unit 30 is more often designated by the abbreviation MMU referring to the corresponding English denomination of “Memory Management Unit”.
  • the performance measurement unit 34 is suitable for counting the number of requests for each element of the heart 12 during the performance of a task by the calculation unit 20.
  • Such a performance measurement unit 34 is often designated by the acronym PMU which refers to the English name of “Performance Monitoring Unit”.
  • the core 12 which has just been described has other elements and/or does not include all of the preceding blocks.
  • the core 12 may comprise an interrupt controller (sometimes called an IC block, the abbreviation IC referring to the English name of “Interrupt Controller”). As the name suggests, the interrupt controller handles interrupts.
  • an interrupt controller sometimes called an IC block, the abbreviation IC referring to the English name of “Interrupt Controller”. As the name suggests, the interrupt controller handles interrupts.
  • the interconnect 14 is used to provide the interconnection between the various elements of the cores 12 and the shared elements such as the main memory 16.
  • the interconnect is a NoC interconnect because it is assumed that 12 cores are part of the same chip.
  • NoC refers to the English name of “Network on Chip” which literally means “network on a chip”.
  • the main memory 16 is suitable for storing data shared between the cores 12. Being larger in capacity than the tightly coupled memories 28, the main memory 16 can store large amounts of data. It also allows data exchange between 12 cores.
  • the debugging support unit 18 is a unit suitable for observing the proper execution of the software on the various elements of the computer 10 in order to develop this software.
  • the debugging support unit 18 is more often referred to as the “Debug Support Unit”.
  • the computer 10 thus comprises a set of hardware blocks 36, the set 38, a monitoring system 40 and a storage unit 42.
  • a hardware block 36 is a physical component able to perform more or less complex tasks.
  • the elements of the cores 12 or the main memory 16 are hardware blocks 36.
  • the monitoring system 40 is suitable for monitoring the operation of the computer 10.
  • the monitoring system 40 is thus suitable for implementing a method for monitoring the operation of the computer 10.
  • the monitoring system 40 includes a collection unit 44 and a monitoring unit 46.
  • the collection unit 44 is able to count the number of requests for each hardware block 36 during the performance of a task.
  • task is used here in a generic way, it can be all or part of the following levels: a thread, a process, a partition, a virtual machine, a user co-routine or an interrupt request.
  • the collection unit 44 is also capable of reading the identifier of the task carried out in the storage unit 42.
  • the collection unit 44 is also capable of forming an association between a request with the corresponding task identifier.
  • the collection unit 44 is also capable of memorizing each association formed.
  • the collection unit 44 is also formed by the performance measurement units 34.
  • the monitoring unit 46 is able to determine the state of operation using the stored associations.
  • the operation of the monitoring system 46 is now described with reference to an example of implementation of a method for monitoring the operation of the computer 10, the monitoring method comprising several steps which are explained below.
  • the scheduling unit 22 orders the execution of a first task by assigning it an identifier.
  • the identifier is therefore a task identifier in the sense that it is specific to the task it identifies.
  • the identifier of the first task is called the first identifier.
  • the scheduling unit 22 then stores the first identifier on the storage unit 42, in this case in the main memory 16.
  • the first task is then implemented.
  • Such an implementation involves the solicitation of hardware blocks 36.
  • the performance measurement units 34 count each of these demands for each core 12.
  • first material demands For the sake of clarity, the demands of the first task are called “first material demands” in what follows.
  • the collection unit 44 simultaneously reads the first identifier in the zone 42 and each of the first hardware requests in the performance measurement unit 34.
  • the collection unit 44 stores the association of the first identifier and the first hardware requests in the main memory 16 for example.
  • Each of the previous steps is repeated for a second task.
  • the scheduling unit 22 orders the execution of a second task by assigning it a second identifier which is stored in the storage unit 42.
  • the performance measurement units 34 count the second hardware stresses and the collection unit 44 associates them with the second identifier.
  • the collection unit 44 stores this association in the main memory 16. These steps can be repeated for each task implementation.
  • a database is thus created associating the material stresses counted with a specific task.
  • the monitoring unit 46 determines the operating state of the computer 10.
  • the surveillance system 40 having context information related to a higher solicitation of a hardware block 36, this makes it possible to ensure additional monitoring since an attack changing the number of accesses to a hardware block 36 is now detectable.
  • the monitoring system 40 is therefore capable of detecting attacks exploiting hardware vulnerabilities at the processor level and generating stresses, such as the Specter attack, the Meltdown attack or the Rowhammer attack.
  • the monitoring system 40 provides better security for the computer 10.
  • monitoring system 40 is compatible with a real-time implementation.
  • the storage unit 42 may be different from the main memory 16 which poses the problem of being relatively far from the cores 12 and therefore of requiring relatively long accesses.
  • the storage unit 42 can be located in the memory management unit 30.
  • identifiers may be advantageous to store the identifiers in a local memory of a core 12 while the association would be stored in a shared memory.
  • FIG. 1 Another embodiment of the computer 10 is shown in Figure 3.
  • the collection unit 44 is suitable for collecting the information from the performance measurement units 34.
  • the collection unit 44 is here a centralized unit.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Debugging And Monitoring (AREA)

Abstract

L'invention concerne un système de surveillance (40) du fonctionnement d'un calculateur (10) comportant : - des blocs matériels (36) comportant plusieurs cœurs (12), - un ensemble (38) d'unités d'ordonnancement des tâches (22) propre à ordonner l'exécution d'une tâche en lui attribuant un identifiant et à mémoriser l'identifiant, le système de surveillance (40) comportant : - une unité de collecte (44) propre à compter le nombre de sollicitations de chaque bloc matériel (36) lors de la réalisation d'une tâche, à lire l'identifiant de la tâche réalisée dans une première unité de mémorisation (42), à former une association entre une sollicitation avec l'identifiant correspondant et à mémoriser chaque association formée sur une deuxième unité de mémorisation, et - une unité de surveillance (46) propre à déterminer l'état du fonctionnement du calculateur (10) en utilisant les associations mémorisées.

Description

Système et procédé de surveillance du fonctionnement d’un calculateur
La présente invention concerne un système de surveillance du fonctionnement d’un calculateur. La présente invention porte aussi sur un procédé de surveillance du fonctionnement d’un calculateur.
Le domaine des calculateurs embarqués critiques fiables est confronté à des problématiques de protection des systèmes utilisant les calculateurs embarqués (et éventuellement les utilisateurs de ces systèmes) en cas de défaillance ou de panne des calculateurs (problématique de sûreté de fonctionnement) mais aussi de résistance aux attaques malveillantes (cybersécurité).
Pour répondre à ces problématiques, il est souhaitable que les calculateurs embarqués répondent à des contraintes exprimées sous la forme de propriétés à garantir, telles que la confidentialité, l’intégrité, ou la disponibilité dans le domaine de la sécurité, ou bien la fiabilité, le comportement temps-réel, ou la traçabilité dans le domaine de la sûreté de fonctionnement.
Une bonne partie de la certification de ces calculateurs critiques consiste donc à garantir, démontrer et tester ces propriétés, ce qui est rendu possible par un ensemble de systèmes de surveillance (souvent désignés par le terme anglais correspondant de « monitoring ») qui permettent à la fois de concevoir des systèmes sûrs en amont, et d’observer les déviations générées par les cyber-attaques.
De tels systèmes de surveillance comprennent notamment les systèmes de détection d'intrusion (plus souvent nommés IDS, abréviation qui renvoie à la dénomination anglaise correspondante de « Intrusion Detection System ») exploitant déjà les informations de surveillance du fonctionnement des logiciels pour détecter des cyberattaques.
En particulier, les systèmes dits HIDS sont également connus. Dans l’appellation précédente, le H renvoie à la dénomination anglaise correspondante de « Host », c’est-à- dire « hôte » et IDS à l’abréviation précitée. Les systèmes HIDS se focalisent sur un ordinateur, au niveau de son système d'exploitation. Les systèmes HIDS cherchent à détecter des comportements anormaux, en surveillant les processus en cours d'exécution, les allocations de mémoire, les utilisateurs connectés et autres. Une alerte est générée quand une des grandeurs surveillées par le système HIDS considéré s'éloigne d'une norme prédéfinie.
Par ailleurs, dans le domaine de la sûreté de fonctionnement et dans le contexte de l’utilisation d’architectures matérielles multicœurs, il est aussi connu d’utiliser des systèmes pour garantir un niveau suffisant de ségrégation entre les logiciels ayant des ressources matérielles partagées.
D’une part, sont utilisés des systèmes de contrôle exploitant généralement un système de fenêtres temporelles et prévenant l’utilisation matérielle des ressources par les applications hors des fenêtres assignées à cette application, garantissant ainsi un strict partitionnement et un comportement temporel prévisible au prix d’une baisse des performances.
D’autre part, sont utilisés des systèmes de régulation, plus souples mais offrant moins de garanties strictes qui surveillent en temps réel l’utilisation des ressources matérielles, et sont réactifs uniquement en cas d’engorgement sur le chemin de ces ressources.
Toutefois, ces systèmes ne permettent pas de détecter les attaques exploitant les vulnérabilités matérielles au niveau du processeur, comme l’attaque Spectre, l’attaque Meltdown ou l’attaque Rowhammer.
Il existe donc un besoin pour un système de surveillance du fonctionnement d’un calculateur assurant une meilleure sécurité au calculateur.
À cet effet, la description décrit un système de surveillance du fonctionnement d’un calculateur, le calculateur comportant des blocs matériels, les blocs matériels comportant plusieurs cœurs, le calculateur comprenant également un ensemble d’unités d’ordonnancement des tâches, l’ensemble étant propre à ordonner l’exécution d’une tâche en lui attribuant un identifiant et à mémoriser l’identifiant sur une première unité de mémorisation. Le système de surveillance comporte une unité de collecte propre à compter le nombre de sollicitations de chaque bloc matériel lors de la réalisation d’une tâche, l’unité de collecte étant également propre à lire l’identifiant de la tâche réalisée dans la première unité de mémorisation, l’unité de collecte étant également propre à former une association entre une sollicitation avec l’identifiant correspondant et à mémoriser chaque association formée sur une deuxième unité de mémorisation. Le système de surveillance comporte aussi une unité de surveillance propre à déterminer l’état du fonctionnement du calculateur en utilisant les associations mémorisées.
Le système de surveillance en utilisant une mémoire dédiée pour la collection d’information de surveillance permet de garantir un niveau de sécurité plus élevé. En effet, la mémoire dédiée n’est adressable que depuis des éléments matériels et non au niveau logiciel. Cela permet d’éviter que les informations collectés soient accessibles par les applicatifs et ainsi d’éviter leur exploitation à des fins malveillantes.
Il peut également être noté que chaque tâche est ici une tâche logicielle et que l’unité de collecte est un bloc matériel (composant physique). Cela implique que l’unité de collecte n’a a priori aucune information sur les tâches qui, elles, sont ordonnancées par le système d’exploitation.
Selon des modes de réalisation particuliers, le système de surveillance présente une ou plusieurs des caractéristiques suivantes, prise(s) isolément ou selon toutes les combinaisons techniquement possibles :
- un bloc matériel est une mémoire principale partagée par les cœurs, l’unité de mémorisation faisant partie de la mémoire principale.
- un bloc matériel est une unité de support de débogage partagée par les cœurs, l’unité de mémorisation faisant partie de l’unité de support de débogage.
- l’unité de mémorisation est une mémoire spécifique à un cœur.
- chaque cœur comporte une mémoire étroitement couplée, la mémoire spécifique à un cœur étant la mémoire étroitement couplée.
- chaque cœur comporte une unité de gestion mémoire, la mémoire spécifique à un cœur étant située dans l’unité de gestion de mémoire.
- chaque cœur comporte une unité de mesure de la performance, la mémoire spécifique à un cœur étant contenue dans l’unité de mesure de la performance.
- chaque cœur comporte une unité de mesure de la performance, l’unité de collecte étant formée par l’ensemble des unités de mesure de la performance.
- la première unité de mémorisation est distincte de la deuxième unité de mémorisation.
La description décrit aussi un procédé de surveillance du fonctionnement d’un calculateur, le calculateur comportant des blocs matériels, les blocs matériels comportant plusieurs cœurs, le calculateur comportant également un ensemble d’unités d’ordonnancement des tâches, l’ensemble étant propre à ordonner l’exécution d’une tâche en lui attribuant un identifiant et à mémoriser l’identifiant sur une première unité de mémorisation, le procédé étant mis en œuvre par un système de surveillance comportant une unité de collecte et une unité de surveillance, le procédé comportant une étape de compte du nombre de sollicitations de chaque bloc matériel lors de la réalisation d’une tâche, une étape de lecture de l’identifiant de la tâche réalisée dans la première unité de mémorisation, une étape de formation d’une association entre une sollicitation avec l’identifiant correspondant et mémorisation de chaque association formée sur une deuxième unité de mémorisation, et une étape de détermination de l’état du fonctionnement du calculateur en utilisant les associations mémorisées.
Des caractéristiques et avantages de l’invention apparaîtront à la lecture de la description qui va suivre, donnée uniquement à titre d’exemple non limitatif, et faite en référence aux dessins annexés, sur lesquels : - la figure 1 est une représentation schématique d’un exemple de calculateur,
- la figure 2 est une représentation schématique des processus mis en œuvre par le calculateur, et
- la figure 3 est une représentation schématique d’un autre exemple de calculateur.
Un calculateur 10 est représenté schématiquement à la figure 1 .
Le calculateur 10 est, par exemple, un calculateur embarqué, notamment un calculateur critique.
Un tel calculateur 10 est utilisable dans un avion, dans une charge utile ou une plateforme de satellite ou des systèmes médicaux implantés.
Selon l’exemple décrit, le calculateur 10 est un calculateur multi-cœurs.
Le calculateur 10 comporte des cœurs 12, une interconnexion 14, une mémoire principale 16 et une unité de support de débogage 18.
Un cœur 12 est un ensemble de circuits capables d’exécuter des programmes de façon autonome.
Seuls deux cœurs 12 sont représentés sur la figure 1 pour simplifier, sachant que le nombre de cœurs 12 est possiblement beaucoup plus important.
Chaque cœur 12 comporte une unité de calcul 20 comprenant une unité d’ordonnancement 22, des mémoires caches 26, une mémoire étroitement couplée 28, une unité de gestion mémoire 30 et une unité de mesure de la performance 34.
L’unité de calcul 20 est l’unité qui effectue les différentes tâches.
Un exemple de fonctionnement de l’unité de calcul 20 sur le plan logiciel est illustré sur la figure 2.
Dans cette figure, un hyperviseur HYP met en œuvre deux systèmes d’exploitation OS1 et OS2. Ils comportent tous une unité d’ordonnancement 22.
Chacun de ces systèmes d’exploitation OS1 et OS2 mettent en œuvre à leur tour deux processus respectifs. Le premier système d’exploitation OS1 met en œuvre un premier processus P1 et un deuxième processus P2 tandis que le deuxième système d’exploitation OS2 met en œuvre un troisième processus P3 et un quatrième processus P4.
Chaque processus P1 , P2, P3 ou P4 correspond à un ensemble de plusieurs tâches.
La mise en œuvre de ces tâches est gérée par l’unité d’ordonnancement 22.
L’ensemble des unités d’ordonnancement 22 forme un ensemble 38 qui est propre à ordonner l’exécution d’une tâche en lui attribuant un identifiant et à mémoriser l’identifiant sur une unité de mémorisation. Par définition, une mémoire cache est une mémoire qui enregistre temporairement des copies de données provenant d'une source, afin de diminuer le temps d'un accès ultérieur (en lecture) d'un matériel informatique (en général, un processeur) à ces données.
Dans l’exemple proposé, le cœur comporte plusieurs mémoires caches 26 représentées sous forme d’un seul bloc dans la figure 1.
À titre d’exemple, il est classique de distinguer entre une mémoire cache mémorisant du code et une mémoire cache mémorisant des données.
Une mémoire étroitement couplée 28 est une mémoire propre à mémoriser explicitement des instructions ou des données privées d’un cœur 12, avec des temps d’accès comparables à la mémoire cache 26 mais sans générer de transactions implicites sur l’interconnexion 14.
Une telle mémoire est plus souvent désignée par l’abréviation TCM renvoyant à la dénomination anglaise correspondante de « Tightly Coupled Memory ».
L’unité de gestion de mémoire 30 sert à contrôler les accès mémoire.
L’unité de gestion de mémoire 30 est plus souvent désignée par l’abréviation MMU renvoyant à la dénomination anglaise correspondante de « Memory Management Unit ».
L’unité de mesure de la performance 34 est propre à compter le nombre de sollicitations de chaque élément du cœur 12 lors de la réalisation d’une tâche par l’unité de calcul 20.
Une telle unité de mesure de la performance 34 est souvent désignée par l’acronyme PMU qui renvoie à la dénomination anglaise de « Performance Monitoring Unit » .
Selon les modes de réalisation, le cœur 12 qui vient d’être décrit présente d’autres éléments et/ou ne comporte pas l’ensemble des blocs précédents.
À titre d’exemple, le cœur 12 peut comporter un contrôleur d’interruption (parfois appelée bloc IC, l’abréviation IC renvoyant à la dénomination anglaise de « Interrupt Controller »). Comme son nom l’indique, le contrôleur d’interruption gère les interruptions.
L’interconnexion 14 sert à assurer l’interconnexion entre les différents éléments des cœurs 12 et les éléments partagés comme la mémoire principale 16.
Selon l’exemple décrit, l’interconnexion est une interconnexion NoC car il est supposé que les cœurs 12 font partie de la même puce.
L’acronyme NoC renvoie à la dénomination anglaise de « Network on Chip » qui signifie littéralement « réseau sur une puce ».
La mémoire principale 16 est propre à mémoriser des données partagées entre les cœurs 12. Étant de plus grande capacité que les mémoires fortement couplées 28, la mémoire principale 16 peut stocker des données volumineuses. Elle permet également l’échange de données entre cœurs 12.
L’unité de support de débogage 18 est une unité propre à observer la bonne exécution du logiciel sur les différents éléments du calculateur 10 afin de mettre au point ce logiciel.
L’unité de support de débogage 18 est plus souvent dénommée sous l’appellation anglaise de « Debug Support Unit ».
Le calculateur 10 comporte ainsi un ensemble de blocs matériels 36, l’ensemble 38, un système de surveillance 40 et une unité de mémorisation 42.
Un bloc matériel 36 est un composant physique apte à effectuer des tâches plus ou moins complexes.
Certains blocs matériels 36 ont déjà été décrits précédemment.
Par exemple, les éléments du cœurs 12 ou la mémoire principale 16 sont des blocs matériels 36.
En outre, dans la figure 1 , il apparaît que l’unité de mémorisation 42 est contenue dans la mémoire principale 16.
D’autres implémentations possibles sont envisageables comme allouer une petite partie de la mémoire 16 pour la mémorisation des identifiants de tâche ou mémoriser les identifiants de tâche dans l’unité de mesure de la performance 34 ou dans la mémoire étroitement couplée 28.
Le système de surveillance 40 est propre à surveiller le fonctionnement du calculateur 10.
Le système de surveillance 40 est ainsi adapté pour mettre en œuvre un procédé de surveillance du fonctionnement du calculateur 10.
Le système de surveillance 40 comporte une unité de collecte 44 et une unité de surveillance 46.
L’unité de collecte 44 est propre à compter le nombre de sollicitations de chaque bloc matériel 36 lors de la réalisation d’une tâche.
Il est à noter que le terme de « tâche » est ici utilisé de manière générique, il peut s’agit de tout ou partie des niveaux suivants : un thread, un processus, une partition, une machine virtuelle, une co-routine utilisateur ou une requête d’interruption.
L’unité de collecte 44 est également propre à lire l’identifiant de la tâche réalisée dans l’unité de mémorisation 42.
L’unité de collecte 44 est également propre à former une association entre une sollicitation avec l’identifiant de tâche correspondant. L’unité de collecte 44 est aussi propre à mémoriser chaque association formée.
Dans le cas de la figure 1 , l’unité de collecte 44 est également formée par les unités de mesures de performance 34.
Cette interaction est montrée par une ligne en pointillés sur la figure 1 .
L’unité de surveillance 46 est propre à déterminer l’état du fonctionnement en utilisant les associations mémorisées.
Le fonctionnement du système de surveillance 46 est maintenant décrit en référence à un exemple de mise en œuvre d’un procédé de surveillance du fonctionnement du calculateur 10, le procédé de surveillance comportant plusieurs étapes qui sont explicitées dans ce qui suit.
L’unité d’ordonnancement 22 ordonne l’exécution d’une première tâche en lui attribuant un identifiant.
L’identifiant est donc un identifiant de tâche en ce sens qu’il est spécifique de la tâche qu’il identifie.
Dans la suite de la présente description, l’identifiant de la première tâche est appelé premier identifiant.
L’unité d’ordonnancement 22 mémorise ensuite le premier identifiant sur l’unité de mémorisation 42, en l’occurrence dans la mémoire principale 16.
La première tâche se met alors en œuvre.
Une telle mise en œuvre implique la sollicitation de blocs matériels 36.
Les unités de mesure de performance 34 comptent chacune de ces sollicitations pour chaque cœur 12.
Pour la clarté du propos, les sollicitations de la première tâche sont appelées « premières sollicitations matérielles » dans ce qui suit.
L’unité de collecte 44 lit simultanément le premier identifiant dans la zone 42 et chacune des premières sollicitations matérielles dans l’unité de mesure de performance 34.
L’unité de collecte 44 mémorise l’association du premier identifiant et des premières sollicitations matérielles dans la mémoire principale 16 par exemple.
Chacune des étapes précédentes est réitérée pour une deuxième tâche.
En utilisant le même formalisme pour dénommer l’identifiant et les sollicitations, cette réitération des étapes peut être décrite comme suit.
L’unité d’ordonnancement 22 ordonne l’exécution d’une deuxième tâche en lui attribuant un deuxième identifiant qui est mémorisé sur l’unité de mémorisation 42.
Puis, les unités de mesure de performance 34 comptent les deuxièmes sollicitations matérielles et l’unité de collecte 44 les associe au deuxième identifiant. L’unité de collecte 44 mémorise cette association dans la mémoire principale 16. Ces étapes pourront être réitérées pour chaque mise en œuvre de tâches.
Il est ainsi constitué une base de données associant les sollicitations matérielles comptées à une tâche spécifique.
En utilisant cette base de données, l’unité de surveillance 46 détermine l’état de fonctionnement du calculateur 10.
Par exemple, lorsque la sollicitation d’un bloc matériel 36 est trop élevée pour une tâche donnée, cela peut être le signe d’un fonctionnement altéré du calculateur 10.
Le système de surveillance 40 disposant des informations de contexte liées à une sollicitation plus élevée d’un bloc matériel 36, cela permet d’assurer une surveillance supplémentaire puisqu’une attaque changeant le nombre d’accès à un bloc matériel 36 est désormais détectable.
Le système de surveillance 40 est donc capable de détecter des attaques exploitant les vulnérabilités matérielles au niveau du processeur et générant des sollicitations, comme l’attaque Spectre, l’attaque Meltdown ou l’attaque Rowhammer.
De ce fait, le système de surveillance 40 procure une meilleure sécurité au calculateur 10.
En outre, le système de surveillance 40 est compatible avec une mise en œuvre en temps réel.
Il convient de noter que l’unité de mémorisation 42 peut être différente de la mémoire principale 16 qui pose le problème d’être relativement loin des cœurs 12 et donc de nécessiter des accès relativement longs.
Notamment, l’unité de mémorisation 42 peut être située dans l’unité de gestion de mémoire 30.
Une telle implémentation n’impacte pas les transactions dans le calculateur 10.
Il est également possible d’utiliser l’unité de support de débogage 18, les unités de mesure de la performance 34 ou les mémoires étroitement couplées 28.
Enfin, il peut être noté qu’il n’est pas nécessaire que l’identifiant soit mémorisé sur la même unité de mémorisation 42.
Par exemple, il peut être avantageux de mémoriser les identifiants dans une mémoire locale d’un cœur 12 alors que l’association serait mémorisée dans une mémoire partagée.
Un autre mode de réalisation du calculateur 10 est représenté à la figure 3.
Les mêmes remarques que pour le calculateur 10 de la figure 1 s’appliquent également pour celui de la figure 3. Aussi, seules les différences sont mises en avant dans ce qui suit. Dans ce cas, l’unité de collecte 44 est propre à récolter les informations issues des unités de mesure de la performance 34.
Au contraire du mode de réalisation de la figure 1 , l’unité de collecte 44 est ici une unité centralisée.

Claims

REVENDICATIONS
1. Système de surveillance (40) du fonctionnement d’un calculateur (10), le calculateur (10) comportant :
- des blocs matériels (36), les blocs matériels (36) comportant plusieurs cœurs (12),
- un ensemble (38) d’unités d’ordonnancement des tâches (22), l’ensemble (38) étant propre à ordonner l’exécution d’une tâche en lui attribuant un identifiant et à mémoriser l’identifiant sur une première unité de mémorisation (42), le système de surveillance (40) comportant :
- une unité de collecte (44) propre à compter le nombre de sollicitations de chaque bloc matériel (36) lors de la réalisation d’une tâche, l’unité de collecte (44) étant également propre à lire l’identifiant de la tâche réalisée dans la première unité de mémorisation (42), l’unité de collecte (44) étant également propre à former une association entre une sollicitation avec l’identifiant correspondant et à mémoriser chaque association formée sur une deuxième unité de mémorisation, et
- une unité de surveillance (46) propre à déterminer l’état du fonctionnement du calculateur (10) en utilisant les associations mémorisées.
2. Système de surveillance selon la revendication 1 , dans lequel chaque tâche est une tâche logicielle et l’unité de collecte (44) est un composant physique.
3. Système de surveillance selon la revendication 1 ou 2, dans lequel un bloc matériel (36) est une mémoire principale (16) partagée par les cœurs (12), l’unité de mémorisation (42) faisant partie de la mémoire principale.
4. Système de surveillance selon l’une quelconque des revendications 1 à 3, dans lequel un bloc matériel (36) est une unité de support de débogage (18) partagée par les cœurs, l’unité de mémorisation (42) faisant partie de l’unité de support de débogage (18).
5. Système de surveillance selon l’une quelconque des revendications 1 à 4, dans lequel l’unité de mémorisation (42) est une mémoire spécifique à un cœur (12).
6. Système de surveillance selon la revendication 5, dans lequel chaque cœur (12) comporte une mémoire étroitement couplée (28), la mémoire spécifique à un cœur (12) étant la mémoire étroitement couplée (28).
7. Système de surveillance selon la revendication 5 ou 6, dans lequel chaque cœur (12) comporte une unité de gestion mémoire (30), la mémoire spécifique à un cœur (12) étant située dans l’unité de gestion de mémoire (30).
8. Système de surveillance selon l’une quelconque des revendications 5 à 7, dans lequel chaque cœur (12) comporte une unité de mesure de la performance (34), la mémoire spécifique à un cœur (12) étant contenue dans l’unité de mesure de la performance (34).
9. Système de surveillance selon l’une quelconque des revendications 5 à 8, dans lequel chaque cœur (12) comporte une unité de mesure de la performance (34), l’unité de collecte (44) étant formée par l’ensemble des unités de mesure de la performance (34).
10. Système de surveillance selon l’une quelconque des revendications 1 à 9, dans lequel la première unité de mémorisation (42) est distincte de la deuxième unité de mémorisation.
11. Procédé de surveillance du fonctionnement d’un calculateur (10), le calculateur (10) comportant :
- des blocs matériels (36), les blocs matériels (36) comportant plusieurs cœurs (12),
- un ensemble (38) d’unités d’ordonnancement des tâches (22), l’ensemble (38) étant propre à ordonner l’exécution d’une tâche en lui attribuant un identifiant et à mémoriser l’identifiant sur une première unité de mémorisation (42), le procédé étant mis en œuvre par un système de surveillance (40) comportant une unité de collecte (44) et une unité de surveillance, le procédé comportant les étapes de:
- compte du nombre de sollicitations de chaque bloc matériel (36) lors de la réalisation d’une tâche,
- lecture de l’identifiant de la tâche réalisée dans la première unité de mémorisation (42),
- formation d’une association entre une sollicitation avec l’identifiant correspondant et mémorisation de chaque association formée sur une deuxième unité de mémorisation, et
- détermination de l’état du fonctionnement du calculateur (10) en utilisant les associations mémorisées.
EP22840225.1A 2021-12-30 2022-12-30 Système et procédé de surveillance du fonctionnement d'un calculateur Pending EP4457630A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR2114671A FR3131644B1 (fr) 2021-12-30 2021-12-30 Système et procédé de surveillance du fonctionnement d'un calculateur
PCT/EP2022/088069 WO2023126514A1 (fr) 2021-12-30 2022-12-30 Système et procédé de surveillance du fonctionnement d'un calculateur

Publications (1)

Publication Number Publication Date
EP4457630A1 true EP4457630A1 (fr) 2024-11-06

Family

ID=81851260

Family Applications (1)

Application Number Title Priority Date Filing Date
EP22840225.1A Pending EP4457630A1 (fr) 2021-12-30 2022-12-30 Système et procédé de surveillance du fonctionnement d'un calculateur

Country Status (4)

Country Link
US (1) US20250130916A1 (fr)
EP (1) EP4457630A1 (fr)
FR (1) FR3131644B1 (fr)
WO (1) WO2023126514A1 (fr)

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7657893B2 (en) * 2003-04-23 2010-02-02 International Business Machines Corporation Accounting method and logic for determining per-thread processor resource utilization in a simultaneous multi-threaded (SMT) processor
US8838940B2 (en) * 2006-06-07 2014-09-16 Azul Systems, Inc. CPU utilization metering on systems that include multiple hardware threads per core
EP2441005A2 (fr) * 2009-06-09 2012-04-18 Martin Vorbach Système et procédé d'antémémoire dans un processeur multi-coeurs
US20110055838A1 (en) * 2009-08-28 2011-03-03 Moyes William A Optimized thread scheduling via hardware performance monitoring
US20110179255A1 (en) * 2010-01-21 2011-07-21 Arm Limited Data processing reset operations
US9081628B2 (en) * 2011-05-27 2015-07-14 Intel Corporation Detecting potential access errors in a multi-threaded application
US9135172B2 (en) * 2012-08-02 2015-09-15 Qualcomm Incorporated Cache data migration in a multicore processing system
CN105229612B (zh) * 2013-03-18 2018-06-26 纽约市哥伦比亚大学理事会 使用基于硬件的微体系结构数据的异常程序执行的检测
US9842209B2 (en) * 2015-05-08 2017-12-12 Mcafee, Llc Hardened event counters for anomaly detection
JP6544054B2 (ja) * 2015-06-02 2019-07-17 富士通株式会社 情報処理装置、実行情報記録プログラムおよび実行情報記録方法
US10810310B2 (en) * 2016-01-14 2020-10-20 Georgia Tech Research Corporation Systems and methods for runtime program monitoring through analysis of side channel signals
AU2017210221B2 (en) * 2016-01-22 2020-02-06 Virsec Systems Inc. Pattern matching based dataset extraction
US12021831B2 (en) * 2016-06-10 2024-06-25 Sophos Limited Network security
US10372909B2 (en) * 2016-08-19 2019-08-06 Hewlett Packard Enterprise Development Lp Determining whether process is infected with malware
US11372972B2 (en) * 2018-03-19 2022-06-28 Intel Corporation Side-channel exploit detection
US11513838B2 (en) * 2018-05-07 2022-11-29 Micron Technology, Inc. Thread state monitoring in a system having a multi-threaded, self-scheduling processor
US11238155B2 (en) * 2018-06-28 2022-02-01 Intel Corporation Microarchitectural mechanisms for the prevention of side-channel attacks
US20190042479A1 (en) * 2018-06-29 2019-02-07 Intel Corporation Heuristic and machine-learning based methods to prevent fine-grained cache side-channel attacks
US10902123B2 (en) * 2018-07-30 2021-01-26 Mcafee, Llc Remediation of flush reload attacks
US11455392B2 (en) * 2018-11-01 2022-09-27 Intel Corporation Methods and apparatus of anomalous memory access pattern detection for translational lookaside buffers
US11074344B2 (en) * 2018-12-19 2021-07-27 Intel Corporation Methods and apparatus to detect side-channel attacks
US11188643B2 (en) * 2018-12-27 2021-11-30 Intel Corporation Methods and apparatus for detecting a side channel attack using hardware performance counters
US20190138719A1 (en) * 2018-12-27 2019-05-09 Salmin Sultana Methods and apparatus for detecting a side channel attack using a cache state
US11556646B2 (en) * 2019-05-31 2023-01-17 International Business Machines Corporation Identifying and responding to a side-channel security threat
US12314385B1 (en) * 2019-09-18 2025-05-27 Rapid7, Inc. Automated generation of anomaly scenarios for testing machine learned anomaly detection models
US11550965B2 (en) * 2020-04-22 2023-01-10 Arm Limited Analytics processing circuitry for mitigating attacks against computing systems
EP4030325A1 (fr) * 2021-01-19 2022-07-20 Nokia Solutions and Networks Oy Sécurité de système d'information
US20230205872A1 (en) * 2021-12-23 2023-06-29 Advanced Micro Devices, Inc. Method and apparatus to address row hammer attacks at a host processor

Also Published As

Publication number Publication date
FR3131644A1 (fr) 2023-07-07
WO2023126514A1 (fr) 2023-07-06
FR3131644B1 (fr) 2024-09-06
US20250130916A1 (en) 2025-04-24

Similar Documents

Publication Publication Date Title
US12093387B2 (en) Endpoint detection and response attack process tree auto-play
US11621996B2 (en) Computing infrastructure for configurable-quality random data
US9906548B2 (en) Mechanism to augment IPS/SIEM evidence information with process history snapshot and application window capture history
EP1939753B1 (fr) Protection de zones mémoire
CA2903175C (fr) Service de donnees aleatoires a qualite configurable
US10594780B2 (en) Sharing a data management policy with a load balancer
US9049232B2 (en) Configurable-quality random data service
US20260046304A1 (en) System and method for risk monitoring of cloud based computing environments
US20190391931A1 (en) Integration of application indicated minimum time to cache to least recently used track demoting schemes in a cache management system of a storage controller
CN115956234A (zh) 分布式计算环境中超额资源使用的检测和处理
CN114222990A (zh) 具有按需文件系统锁定和自动修复功能的自动勒索软件检测
CN107844542A (zh) 一种分布式文件存储方法及装置
EP4457630A1 (fr) Système et procédé de surveillance du fonctionnement d'un calculateur
EP1942417B1 (fr) Circuit de protection de zones mémoire
US12254094B2 (en) Cyber security testing for incorrectly authorized programs
US20200110669A1 (en) Disaster recovery data fetching control
EP2652624B1 (fr) Procede, programme d'ordinateur et dispositif de gestion d'acces memoire dans une architecture multiprocesseurs de type numa
US20230247063A1 (en) Techniques for prioritizing risk and mitigation in cloud based computing environments
Cao et al. Data security and malware detection in cloud storage services
US20200034466A1 (en) Matching non-sequential log metadata with out-of-order record data

Legal Events

Date Code Title Description
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: UNKNOWN

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE

PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE

17P Request for examination filed

Effective date: 20240627

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC ME MK MT NL NO PL PT RO RS SE SI SK SM TR

P01 Opt-out of the competence of the unified patent court (upc) registered

Free format text: CASE NUMBER: APP_61936/2024

Effective date: 20241120

DAV Request for validation of the european patent (deleted)
DAX Request for extension of the european patent (deleted)