FR 3138220 A1 20240126 FR 2207523 A 20220722 Procédé de détection d'anomalies réseau La présente description concerne un procédé comprenant : - la réception, par l'intermédiaire d'une interface (112) d'un dispositif électronique (100), d'un premier flux de paquets envoyés par une source qui est externe et/ou l'émission d'un premier flux de paquets vers une destination externe ; - le calcul, par un circuit de traitement (110), d'un premier identifiant de flux de paquets sur la base d'au moins : une adresse de source de paquet des paquets du premier flux ; et une adresse de destination de paquet du premier flux : ; - la recherche, dans une structure de données dynamique ordonnée (114) stockée dans une mémoire (104, 106) et comprenant une pluralité d'entrées, dans lequel la recherche est effectuée sur la base de la valeur du premier identifiant de flux de paquets comparée à une ou plusieurs valeurs de seuil de recherche ; et - sur la base de métadonnées associées à la première entrée, le blocage de la réception du premier flux de paquets. Figure pour l'abrégé : Fig. 1 Procédé de détection d'anomalies réseau La présente description concerne de façon générale le domaine des communications réseau et, en particulier, la détection d'anomalies réseau. Dans le domaine des systèmes embarqués avec l'Internet des Objets (IoT), par exemple dans le domaine automobile, des connexions à des réseaux tels que l'Internet deviennent omniprésentes. Ces connexions rendent des dispositifs embarqués dans de tels réseaux sujets à devenir des victimes potentielles de pirates informatiques par l'intermédiaire d'attaques par intrusion de réseau. Un mécanisme de défense contre de telles attaques consiste à détecter toutes les anomalies présentes dans des communications vers ou en provenance du réseau afin de détecter des attaques potentielles et de permettre de prendre des contre-mesures afin d'assurer la sécurité et la confidentialité de données sensibles du dispositif embarqué. Plusieurs techniques ont été développées afin de détecter toutes les anomalies dans des communications de données entre un dispositif et un réseau. A titre d'exemple, des systèmes de détection d'intrusion dans un réseau (IDS) ont été proposés et plus particulièrement un IDS basé sur des flux. Toutefois, un inconvénient des techniques existantes est qu'elles tendent à requérir une puissance de traitement relativement élevée et/ou être lentes pour maintenir le suivi de tous les flux en cours. Il existe un besoin dans l'état de l'art d'une détection d'anomalies réseau qui pallie tout ou partie des problèmes de l'art antérieur. Des modes de réalisation de la présente description pallient tout ou partie des inconvénients des procédé connus de détection d'anomalies réseau. Un mode de réalisation pallie tout ou partie des inconvénients d'un procédé connu de détection d'anomalies réseau. Un mode de réalisation prévoit un procédé comprenant : - la réception, par l'intermédiaire d'une interface d'un dispositif électronique, d'un premier flux de paquets envoyés par une source qui est externe au dispositif électronique et/ou l'émission, par l'intermédiaire de l'interface, d'un premier flux de paquets vers une destination externe au dispositif électronique ; - Le calcul, par un circuit de traitement du dispositif électronique, d'un premier identifiant de flux de paquets sur la base d'au moins une adresse parmi : une adresse de source de paquet des paquets du premier flux ; et une adresse de destination de paquet des paquets du premier flux ; et - la recherche, dans une structure de données dynamique ordonnée stockée dans une mémoire du dispositif électronique et comprenant une pluralité d'entrées, chaque entrée comprenant des métadonnées de flux de paquets associées à un identifiant de flux de paquets correspondant, pour identifier une première entrée associée au premier identifiant de flux de paquets, dans lequel la recherche est effectuée sur la base de la valeur du premier identifiant de flux de paquets par rapport à une ou plusieurs valeurs de seuil de recherche ; et - sur la base des métadonnées associées à la première entrée, le blocage de la réception du premier flux de paquets. Selon un mode de réalisation, la structure de données ordonnée est une structure de données dynamique, le procédé comprenant en outre : - la réception, par l'intermédiaire de l'interface, d'un deuxième flux de paquets envoyé par une autre source qui est externe au dispositif électronique et/ou l'émission, par l'intermédiaire de l'interface, d'un deuxième flux de paquets à une autre destination externe au dispositif électronique ; - Le calcul, par le circuit de traitement, d'un deuxième identifiant de flux de paquets sur la base d'au moins une adresse de source de paquet et une adresse de destination de paquet des paquets du deuxième flux ; et - la recherche, dans la structure de données dynamique ordonnée, d'une deuxième entrée associée au deuxième identifiant de flux de paquets, dans lequel s'il est déterminé que le deuxième identifiant de flux de paquets ne correspond à aucune des entrées : - l'extraction de métadonnées caractérisant le deuxième flux de paquets ; et - l'insertion, dans la structure de données dynamique ordonnée, d'une nouvelle entrée comprenant les métadonnées caractérisant le deuxième flux de paquets en association avec le deuxième identifiant de flux de paquets. Selon un mode de réalisation, les métadonnées de flux de paquets associées à chaque identifiant de flux de paquets comprend au moins une des valeurs suivantes : - une adresse de port de destination d'un flux de paquets identifié par l'identifiant de flux de paquets ; - un protocole internet d'un flux de paquets identifié par l'identifiant de flux de paquets ; - une durée d'un flux de paquets identifié par l'identifiant de flux de paquets ; - un rapport entre un nombre de paquets de liaison descendante et un nombre de paquets de liaison montante dans un flux de paquets identifié par l'identifiant de flux de paquets ; - une longueur maximale de paquets dans un flux de paquets identifié par l'identifiant de flux de paquets ; - une longueur moyenne de paquets avant et/ou arrière dans un flux de paquets identifié par l'identifiant de flux de paquets ; - un débit en octet par seconde pour un flux de paquets identifié par l'identifiant de flux de paquets ; - un débit de paquets pour un flux de paquets identifié par l'identifiant de flux de paquets ; - un nombre de paquets avant et/ou arrière dans un flux de paquets identifié par l'identifiant de flux de paquets ; - une longueur totale de paquet avant et/ou arrière dans un flux de paquets identifié par l'identifiant de flux de paquets ; et - une longueur maximale d'un paquet avant et/ou arrière dans un flux de paquets identifié par l'identifiant de flux de paquets. Selon un mode de réalisation, la structure de données dynamique ordonnée est une liste à enjambements. Selon un mode de réalisation, la structure de données dynamique ordonnée est un arbre binaire équilibré. Selon un mode de réalisation, la structure de données dynamique ordonnée est un arbre bicolore. Selon un mode de réalisation, le premier identifiant de flux de paquets est une concaténation, effectuée par le circuit de traitement dans un registre à décalage du dispositif, d'au moins l'adresse de source de paquet et/ou l'adresse de destination de paquet des paquets du premier flux. Selon un mode de réalisation, le premier identifiant de flux de paquets est une valeur entière. Selon un mode de réalisation, le premier identifiant de flux de paquets est une valeur à virgule flottante. Selon un mode de réalisation, le premier identifiant de flux de paquets est en outre basé sur l'adresse de port de source de paquet et sur l'adresse de port de destination de paquet. Un mode de réalisation prévoit un dispositif électronique comprenant : - une interface configurée pour recevoir un premier flux de paquets, envoyé par une source qui est externe au dispositif électronique et/ou pour émettre un premier flux de paquets à une destination qui est externe au dispositif électronique ; - un circuit de traitement configuré pour calculer un premier identifiant de flux de paquets appartenant à un ensemble ordonné, sur la base d'une adresse parmi : une adresse de source de paquet des paquets du premier flux ; et une adresse de destination de paquet des paquets du premier flux ; et - une mémoire configurée pour stocker une structure de données dynamique ordonnée comprenant une pluralité d'entrées, chaque entrée comprenant des métadonnées de flux de paquets associées à un identifiant de flux de paquets correspondant, le circuit de traitement étant en outre configuré pour rechercher, dans la structure de données dynamique ordonnée, pour identifier une première entrée associée au premier identifiant de flux de paquets, dans lequel la recherche est effectuée sur la base de la valeur du premier identifiant de flux de paquets comparé à une ou plusieurs valeurs de seuil de recherche, et pour bloquer la réception du premier flux de paquets sur la base des métadonnées. Selon un mode de réalisation, l'interface est en outre configurée pour recevoir un deuxième flux de paquets envoyé par une autre source externe ou pour émettre un deuxième flux de paquets vers une autre destination qui est externe au dispositif électronique et dans lequel le circuit de traitement est en outre configuré pour : - calculer un deuxième identifiant de flux de paquets sur la base d'au moins une adresse de source de paquet et d'une adresse de destination de paquet des paquets du deuxième flux ; et - rechercher dans la structure de données dynamique ordonnée une deuxième entrée associée au deuxième identifiant de flux de paquets et, s'il est déterminé que le deuxième identifiant de flux de paquets ne correspond à aucune des entrées : - extraire des métadonnées caractérisant le deuxième flux de paquets ; et - insérer, dans la structure de données dynamique ordonnée, une nouvelle entrée comprenant les métadonnées caractérisant le deuxième flux de paquets en association avec le deuxième identifiant de flux de paquets. Selon un mode de réalisation, le circuit de traitement est en outre configuré pour calculer le premier identifiant de flux de paquets en concaténant au moins l'adresse de source de paquet et l'adresse de destination de paquet des paquets du premier flux. Ces caractéristiques et avantages, ainsi que d'autres, seront exposés en détail dans la description suivante de modes de réalisation particuliers faite à titre non limitatif en relation avec les figures jointes parmi lesquelles : la représente schématiquement un exemple d'un dispositif électronique selon un mode de réalisation de la présente description ; la représente un exemple d'une structure de données non ordonnée ; la représente un autre exemple d'une structure de données non ordonnée ; la représente un exemple d'une structure de données ordonnée ; la est un diagramme représentant le temps d'insertion d'éléments pour plusieurs structures de données ; la représente un autre exemple d'une structure de données ordonnée ; et la est un organigramme illustrant des opérations d'un procédé de détection d'anomalies réseau selon un mode de réalisation de la présente description. De mêmes éléments ont été désignés par de mêmes références dans les différentes figures. En particulier, les éléments structurels et/ou fonctionnels communs aux différents modes de réalisation peuvent présenter les mêmes références et peuvent disposer de propriétés structurelles, dimensionnelles et matérielles identiques. Par souci de clarté, seuls les étapes et éléments utiles à la compréhension des modes de réalisation décrits ont été représentés et sont détaillés. En particulier, différentes structures de données non ordonnées et ordonnées n'ont pas été décrites et sont connues de la personne du métier. Sauf précision contraire, lorsque l'on fait référence à deux éléments connectés entre eux, cela signifie directement connectés sans éléments intermédiaires autres que des conducteurs, et lorsque l'on fait référence à deux éléments reliés (en anglais "coupled") entre eux, cela signifie que ces deux éléments peuvent être connectés ou être reliés par l'intermédiaire d'un ou plusieurs autres éléments. Dans la description qui suit, lorsque l'on fait référence à des qualificatifs de position absolue, tels que les termes "avant", "arrière", "haut", "bas", "gauche", "droite", etc., ou relative, tels que les termes "dessus", "dessous", "supérieur", "inférieur", etc., ou à des qualificatifs d'orientation, tels que les termes "horizontal", "vertical", etc., il est fait référence sauf précision contraire à l'orientation des figures. Sauf précision contraire, les expressions "environ", "approximativement", "sensiblement", et "de l'ordre de" signifient à 10 % près, de préférence à 5 % près. Dans la description qui suit, les termes liaison montante et liaison descendante désignent respectivement le chargement de données à partir d'un dispositif terminal dans un réseau et le téléchargement de données depuis un réseau dans un dispositif terminal. Les termes paquets avant et paquets arrière désignent respectivement des paquets de données traversant une passerelle d'un réseau dans des directions opposées, la direction avant correspondant par exemple à la direction d'un premier paquet de données d'un flux donné de paquets. La représente schématiquement un exemple d'un dispositif électronique 100 comprenant un circuit intégré 102 selon un mode de réalisation de la présente description. Le dispositif électronique 100 est par exemple un dispositif terminal dans un réseau, ou un dispositif de passerelle dans un réseau, ou peut jouer le rôle d'un dispositif terminal pour certains flux de paquets et d'un dispositif de passerelle pour d'autres flux de paquets. Dans certains modes de réalisation, le dispositif 100 est un dispositif IoT. De plus ou selon une variante, le dispositif électronique 100 fait par exemple partie d'un système électronique d'une automobile. Le dispositif électronique 100 comprend en outre une mémoire non volatile 104 (NV MEM) et une mémoire volatile 106 (RAM). La mémoire non volatile 104 est par exemple une mémoire FLASH. La mémoire volatile 106 est par exemple une mémoire vive. Les mémoires 104 et 106 sont par exemple reliées l'une à l'autre par l'intermédiaire d'un bus 108. Le dispositif électronique 100 comprend en outre un circuit de traitement 110 (CPU) et une interface de communications 112 (INTERFACE), par exemple reliée aux mémoires 104 et 106 par l'intermédiaire du bus 108. Dans certains modes de réalisation, le circuit de traitement 110 est un processeur configuré pour exécuter des instructions stockées par exemple dans la mémoire 106. Selon un autre exemple, le circuit de traitement 110 est mis en œuvre par un matériel dédié, par exemple par un sous-système électronique dédié ou un ASIC (de l'anglais "Application Specific Integrated Circuit", circuit intégré propre à une application). L'interface de communications 112 est par exemple configurée pour émettre et recevoir des flux de paquets vers des ou en provenance de dispositifs externes au dispositif électronique 100. Dans certains modes de réalisation, l'interface de communications 112 est une interface sans fil configurée pour recevoir des flux de paquets de données provenant de sources externes et envoyés par l'intermédiaire d'un réseau tel que, par exemple, un réseau Wi-Fi (de l'anglais "Wireless Fidelity", sans fil fidélité). De plus ou selon une variante, l'interface de communications 112 est une interface sans fil configurée pour émettre des flux de paquets de données vers des destinations externes par l'intermédiaire d'un réseau tel que, par exemple, un réseau Wi-Fi. Par exemple, le dispositif électronique 100 est connecté à l'Internet des Objets par l'intermédiaire de l'interface 112. Dans un autre mode de réalisation, l'interface 112 est une interface câblée configurée pour recevoir des flux de paquets de données provenant de sources externes et envoyés par l'intermédiaire d'un réseau câblé tel que, par exemple, un réseau Ethernet. Le dispositif électronique 100 est par exemple configuré pour mettre en œuvre un procédé IDS basé sur des flux afin de protéger le dispositif 100 contre des attaques de pirates. L'IDS basé sur des flux implique l'analyse du flux de paquets en cours afin d'extraire des métadonnées sur le temps, qui sont ensuite comparées à un ou plusieurs seuils afin de détecter des anomalies indicatives d'une attaque. Par exemple, les métadonnées comprennent un nombre n de parties d'informations. Le nombre n de parties d'informations est, par exemple, égal à 41 dans un jeu de données IDS KDD-CUP99, à 49 dans un jeu de données IDS UNSW-NB ou à 84 dans un jeu de données IDS CICIDS2017. Plus généralement, le nombre de parties d'informations peut varier et dépend d'un jeu de données IDS considéré. Par exemple, les métadonnées sont basées sur le nombre de paquets d'un flux de paquets donné reçu pendant une période de temps donné et/ou sur la taille de paquet total associée à un flux de paquets donné reçu pendant une période de temps donné. Chaque flux de paquets correspond par exemple aux paquets émis depuis une adresse de source donnée à une adresse de destination donnée. Les métadonnées sont par exemple collectées pendant le flux de paquets et stockées dans une structure de données 114 (DATA STRUC.), qui est par exemple stockée dans la mémoire volatile 106. Si le flux existe déjà dans la structure de données 114, les métadonnées associées sont mises à jour dans la structure de données 114. Si le flux n'existe pas dans la structure de données 114, les métadonnées sont calculées pour ce nouveau flux et insérées dans la structure de données 114. L'efficacité d'un IDS basé sur des flux dépend de la complexité du temps de recherche de la structure de données 114. En effet, des métadonnées nouvelles et/ou mises à jour concernant un flux donné devraient être stockées dans l'entrée appropriée de la structure de données 114 en temps réel de sorte qu'aucune information ne soit ratée et une alerte appropriée peut être générée dans le cas de la détection d'une anomalie. En particulier, la structure de données peut être utilisée pour charger des flux de paquets en cours et nouveaux afin de permettre le recueil et le stockage des métadonnées et la génération des alertes dans le cas où des anomalies sont détectées. La structure de données 114 est par exemple une structure de données dynamique, ce qui signifie que de nouvelles entrées peuvent être ajoutées à la structure de données d'une façon telle que les nouvelles entrées, ainsi que toutes les entrées existantes, peuvent être localisées en recherchant la structure de données. Avantageusement, la structure de données 114 est une structure de données dynamique ordonnée. Certains exemples de structure de données dynamique non ordonnée et ordonnée sont décrits dans la suite en relation avec les figures 2 à 6. La représente un exemple d'une structure de données non ordonnée 200 et, en particulier, une structure de liste chaînée. Par exemple, la liste chaînée 200 comprend 9 éléments, qui sont représentés sous forme d'entiers. Par exemple les premier au neuvième éléments de la liste sont respectivement les entiers 62, 15, 12, 29, 33, 23, 58, 47 et 79. A chaque fois qu'un nouvel élément est inséré dans la liste chaînée 200, il devient, par exemple, le nouveau premier ou le nouveau dernier élément de la liste. Ainsi, une liste chaînée a une structure non ordonnée, dans la mesure où les entiers de la liste chaînée 200 sont agencés en ordre d'insertion dans la liste et non pas en ordre croissant ou décroissant. Pendant une recherche d'un élément cible dans la liste chaînée 200, les éléments de la liste sont analysés, un par un, en commençant par le premier élément, jusqu'à ce que l'élément cible soit trouvé. Le temps de recherche dans une liste chaînée 200 est ainsi proportionnel au nombre d'éléments qu'elle contient. En d'autres termes, pour une liste chaînée comprenant un nombre d'éléments, la complexité du temps de recherche est . La complexité du temps de recherche est un concept bien connu dans le domaine et fournit une indication du temps de recherche dans une structure de données donnée. La représente un exemple d'une autre structure de données non ordonnée 300 et, en particulier, une structure de table de hachage qui est présentée selon un exemple dans lequel elle est utilisée pour stocker des données d'un annuaire téléphonique. La table de hachage 300 permet d'associer un élément, par exemple un couple de valeurs 302 comprenant un nom et un numéro de téléphone, à une clef (KEY). Dans l'exemple de la table de hachage 300, le couple de valeurs (LISA SMITH, 521-8976) est associé à la clef LISA SMITH. Tous les éléments de la table de hachage 300 sont stockés consécutivement et sont accessibles par un index (INDEX) correspondant, par exemple à une valeur de hachage. Par exemple, l'index associé au couple (LISA SMITH, 521-8976) est généré en appliquant une fonction de hachage (HASH) à la clef LISA SMITH. Par exemple, la valeur d'index correspond à la valeur de hachage générée, modulo la taille de la table de hachage 300. Par exemple, la valeur d'index associée au couple (LISA SMITH, 521-8976) est la valeur 001. Par exemple, la table de hachage 300 comprend en outre un couple (SAM DOE, 521-5030) ayant, pour index, la valeur 254 et un couple (TED BAKER, 418-4165) ayant, pour index, la valeur 153. Par conséquent, pendant la recherche d'un élément cible, l'index correspondant est calculé à partir d'une clef correspondante, par exemple, le nom. L'élément cible est ensuite accessible avec la valeur d'index. Pour insérer un nouvel élément donné dans la table de hachage 300, par exemple le nom SANDRA DEE avec le numéro de téléphone 521-9655, l'index correspondant, par exemple 152, est généré et l'élément est inséré dans la structure de données 300. Dans l'exemple de la table de hachage 300, un autre élément, qui est le couple (JOHN SMITH, 521-1234), est déjà identifié par la valeur d'index 152. Par conséquent, il y a un conflit et, dans un tel cas, les éléments ayant le même index sont par exemple agencés dans une liste chaînée. Dans l'exemple représenté par la , une entrée 304 indique s'il y a au moins un conflit. Par exemple, une croix (x) indique qu'il n'y a pas de conflit et un point () indique la présence d'au moins un conflit pour l'index correspondant. Des conflits apparaissent seulement lorsque la table de hachage 300 est presque pleine, c'est-à-dire quand le nombre d'éléments de données stockés est proche d'une valeur de taille seuil. Par exemple, la valeur de taille seuil est égale à un pourcentage de la taille de la table de hachage 300, le pourcentage étant par exemple égal à 75 %. Lorsque la table de hachage 300 atteint une taille seuil, sa taille est par exemple doublée et tous les index sont recalculés. Cela permet de réagencer la table de hachage 300 et de faire disparaître certains conflits. Par exemple, en doublant la taille de la table de hachage 300, la valeur de hachage de la clef SANDRA DEE, modulo la nouvelle taille de la table de hachage, ne sera plus égale à 152. Pour une table de hachage ne comprenant aucun conflit, tous les éléments sont accessibles avec un retard temporel constant. En raison de l'apparition d'un certain retard de temps à autre, tel que par exemple dans le cas d'un conflit ou d'une augmentation de la taille de la table de hachage 300, la complexité de temps de recherche est dans un temps amorti. La représente un exemple d'une structure de données ordonnée 400 et, en particulier, une structure de liste à enjambements comprenant neuf éléments entiers. La liste à enjambements 400 est une structure de données probabiliste partageant certaines des propriétés d'une liste chaînée, tout en limitant ses inconvénients. La liste à enjambements 400 comprend par exemple quatre couches. Une couche inférieure est une liste chaînée comprenant les neuf éléments, une valeur de base (-) et une valeur de tête (+), ces éléments et valeurs étant agencés de façon croissante. La valeur de base est plus petite que tous les éléments de la liste à enjambements 400 et la valeur de tête est supérieure à tous les éléments de la liste à enjambements 400. Pendant la construction de la liste à enjambements 400, chaque élément entier de la couche a une probabilité , où , d'être ajouté à une deuxième couche . En d'autres termes, pour chaque élément, une décision aléatoire est prise s'agissant de l'ajouter ou non à la deuxième couche . Dans l'exemple de la liste à enjambements 400, est par exemple égal à 2 donc statistiquement 1 sur 2 des éléments sont ajoutés à la deuxième couche , ce qui dans l'exemple de la figure 4 correspond aux éléments 15, 29, 33 et 62. De façon similaire, pendant la construction de la liste à enjambements 400, chaque élément de la couche a une probabilité d'être ajouté à la couche au-dessus, qui est la couche . La probabilité de placer un élément sur une -ième couche , étant en entier, est égale à , ce qui réduit la probabilité que le nombre de couches augmente considérablement. Dans l'exemple de la liste à enjambements 400, seulement l'élément 29 est ajouté à la couche . De plus, les couches et sont également des listes ordonnées et contiennent les éléments de base et de tête. L'élément 29 n'est par exemple pas communiqué à une troisième couche et une couche supérieure contient seulement les éléments de base et de tête. En général, une liste à enjambements de éléments comprend un nombre de couches et une couche supérieure. La recherche d’un élément cible commence dans la couche supérieure. Les éléments sont analysés horizontalement, depuis le plus petit, jusqu'à ce qu'un élément soit trouvé qui soit supérieur ou égal en valeur à l'élément cible. Lorsque l'élément analysé est égal à l'élément cible, alors l'élément cible a été trouvé. Lorsque l'élément analysé est supérieur à l'élément cible, le processus est répété après un retour à l'élément précédent, c'est-à-dire l'élément plus petit le plus proche de l'élément cible de la couche, et un saut à la couche plus basse suivante. Dans l'exemple de la figure 4, l'élément cible est par exemple l'entier 79 et l'analyse de la couche supérieure conduit automatiquement à l'analyse de l'élément de base de la couche . L'élément de base étant par définition plus petit que l'élément cible, l'élément suivant de la couche est analysé, l'élément 29 est plus petit que l'élément cible, mais l'élément suivant est la valeur haute. Donc, l'analyse se poursuit à partir de l'élément 29 dans la couche . Dans la couche , l'élément 29 est suivi des éléments 33 et 62, chacun plus petit que l'élément cible. L'élément de tête suit l'élément 62. Donc, la recherche se poursuit à partir de l'élément 62 dans la couche . Dans l'élément de couche, l'élément cible suit l'élément 62, et est ainsi trouvé. Le procédé d'insertion d'un nouvel élément entier est similaire au procédé de recherche. La liste à enjambements est analysée de la couche supérieure à la couche basse afin d'identifier l'emplacement dans lequel insérer, de façon ordonnée, le nouvel élément dans la couche basse. Le nouvel élément est ensuite ajouté à la couche au-dessus avec la probabilité 1/p et, s'il est ajouté à la couche au-dessus, il est ensuite ajouté à la couche au-dessus avec la probabilité 1/p, etc. Pour une liste à enjambements, la complexité du temps de recherche et la complexité du temps d'insertion sont . De façon similaire à la complexité du temps de recherche, la complexité du temps d'insertion est un concept bien connu dans le domaine et fournit une indication du temps d'insertion d'une nouvelle entrée dans une structure de données donnée. La est un diagramme 500 représentant le temps d'insertion d'éléments pour plusieurs structures de données. En particulier, le diagramme 500 représente trois graphes 502, 504 et 506 représentant respectivement le temps d'insertion (TIME(ns)) en nanosecondes en fonction de la taille (NB OF ELEMENTS) de la table de hachage 300, la liste à enjambements 400 et la liste chaînée 200. L'insertion d'éléments dans la table de hachage 300 amène par exemple le doublement de la taille de la table de hachage seulement lorsque l'insertion amène la table de hachage 300 à atteindre un seuil de taille. Par exemple, la table de hachage a initialement une taille permettant le stockage de 12 éléments. L'insertion du treizième élément provoque par exemple le doublement de la taille de la table de hachage 300. Le doublement provoque un pic dans le graphe 502. Les insertions suivantes, jusqu'à la vingt-quatrième, ne sont pas coûteuse en temps car la table de hachage a déjà les emplacements pour ces insertions. Comme pour la treizième, la vingt-cinquième insertion provoque un pic dans le graphe 502. En effet, chaque insertion provoquant le doublement de la table de hachage 300 provoque un tel pic. Le temps d'insertion nécessaire à chaque doublement de la taille de la table de hachage 300 devient de plus en plus grand. Par exemple, le temps d'insertion nécessaire pour l'insertion du treizième élément est d'environ nanosecondes, alors que le temps d'insertion nécessaire pour l'insertion du 393 217-ième élément est d'environ nanosecondes. Lorsqu'une table de hachage est utilisée pour mettre en œuvre la structure de données 114 de la , ce temps augmentant exponentiellement peut amener la surcharge du circuit de traitement 110 lorsqu'un nombre relativement grand de flux de paquets est reçu. Le temps d'insertion nécessaire pour la liste à enjambements 400 croît lentement en fonction de la taille de liste à enjambements 400. Par exemple, le temps d'insertion maximal nécessaire pour insérer un élément, lorsque la taille est inférieure à 393 216, est d'environ 3 000 nanosecondes, ce qui est un temps considérablement plus court que pour la table de hachage 300. Le temps d'insertion d'éléments dans la liste chaînée 200 est relativement constante et un petit peu inférieur à 100 nanosecondes. Le faible temps d'insertion nécessaire est dû à la faible complexité de l'insertion d'un élément dans la liste chaînée 200. En effet, des éléments sont toujours insérés, par exemple, au début ou à la fin de la liste chaînée, alors que, pour la liste à enjambements 400, l'élément est ordonné entre les éléments existants. Néanmoins, la complexité du temps de recherche de la liste chaînée 200 décale largement le gain de temps fourni par les insertions relativement courtes. La représente un exemple d'une structure de données ordonnée 600 et, en particulier, une structure d'arbre bicolore équilibré. L'arbre bicolore équilibré 600 est un type d'arbre binaire équilibré. L'arbre 600 comprend par exemple une racine 602 à laquelle est associée une valeur de données, égale à 29 dans l'exemple de la . L'arbre 600 comprend en outre des nœuds, incluant un nœud 603, un nœud 604 et un nœud 605 associés respectivement à des valeurs de données 15, 62 et 79. L'arbre 600 comprend par exemple une pluralité d'autres nœuds, non référencés en . L'arbre 600 comprend en outre des feuilles 606, chaque feuille 606 étant un nœud final de l'arbre 600. Les feuilles 606 ne sont pas associées à une quelconque valeur de données et sont représentées avec un élément nul NIL. La racine et chaque nœud sont parents de deux enfants, un enfant étant soit un autre nœud, soit une feuille. Pour un nœud donné, un enfant droit (enfant positionné à la droite du nœud dans la couche en-dessous) a une valeur supérieure à celle du nœud, ou est une feuille, et un enfant gauche (enfant positionné à la gauche du nœud dans la couche en-dessous) a une valeur inférieure à celle du nœud, ou est une feuille. Comme pour un arbre binaire équilibré, la recherche d'un élément cible, par exemple 79, dans l'arbre 600 implique de parcourir l'arbre, depuis la racine, jusqu'à ce que l'élément cible soit trouvé. Par exemple, l'élément 29 de la racine de l'arbre 600 est inférieur à l'élément cible et la recherche se poursuit par l'analyse de l'enfant droit de la racine, qui est le nœud 604 avec la valeur 62. La valeur 62 est inférieure à l'élément cible et la recherche se poursuit par l'analyse de l'enfant droit du nœud 604 qui est le nœud 605. Le nœud 605 est associé à l'élément cible et ainsi la recherche se termine. La complexité du temps de recherche d'un arbre binaire équilibré, incluant un arbre bicolore binaire équilibré, comprenant un nombre d'éléments est . Par rapport à des arbres binaires équilibrés standards, chaque nœud de l'arbre bicolore 600 est associé en outre à un attribut supplémentaire. Par exemple, l'attribut supplémentaire est un bit unique d'informations, qui peut être conceptuellement représenté par une couleur, rouge ou noire. La racine et les feuilles d'un arbre bicolore équilibré sont toujours noires. De plus, les enfants, qui ne sont pas une feuille, d'un nœud noir sont des nœuds rouges et les enfants, qui ne sont pas une feuille, d'un nœud rouge sont noirs. Une propriété importante d'un arbre bicolore équilibré est que chaque trajet d'un nœud donné à une quelconque de ses feuilles descendantes passe à travers le même nombre de nœuds noirs. Cette règle fournit l'avantage que le temps d'insertion dans un arbre binaire bicolore équilibré est meilleur que le temps d'insertion dans un arbre binaire équilibré normal. En effet, le temps d'insertion pour un arbre binaire équilibré normal comprenant éléments est entre et , en fonction de l'arbre, et est pour un arbre bicolore équilibré. La est un organigramme représentant des opérations d'un procédé de détection d'anomalies réseau apparaissant dans le dispositif 100 de la selon un mode de réalisation de la présente description. Dans une opération 700 (COMMUNICATION), une communication est par exemple établie entre le dispositif 100 et une source externe. Cette communication est par exemple établie par l'intermédiaire d'un réseau de communication de données, tel que l'internet, et/ou d'autres réseaux locaux. Pendant l'opération 700, le dispositif 100 reçoit et/ou émet par exemple un ou plusieurs flux en cours de paquets. L'opération 700 est par exemple suivie par une opération 702 (NORMAL TASKS), dans laquelle le dispositif 100 effectue par exemple des taches sur la base des paquets reçus. Pour assurer que les paquets d'un flux en cours de paquets ne soient pas le résultat d'une anomalie de réseau, telle que, par exemple, une intrusion, une opération 704 (INTRUSION DETECTION) est par exemple effectuée en parallèle de l'opération 702. L'opération 704 est par exemple effectuée par le circuit de traitement 110 et implique une pluralité d'opérations 706 à 715. Par exemple, dans l'opération 706 (WAIT FOR PACKET), le circuit de traitement 110 surveille l'interface 112, dans l'attente de la réception d'un nouveau flux de paquets ou dans l'attente de la réception d'un nouveau paquet appartenant à un flux en cours de paquets. Un paquet reçu peut provenir d'une source externe ou peut être un paquet qui doit être transmis à une destination externe. Le circuit de traitement 110 est par exemple configuré pour déterminer si un paquet d'un flux de paquets est reçu ou non par l'interface dans une opération 707 (PACKET RECEIVED?). Si le circuit de traitement 110 ne détecte aucun paquet (branche N), le processus se poursuit en répétant l'opération 706 après un retard temporel donné et cela est répété jusqu'à ce qu'un paquet soit reçu. Si, dans l'opération 707, le circuit de traitement 110 détecte la réception d'un paquet (branche Y), le processus se poursuit dans une étape 708 (IDENTIFICATION AND SEARCHING). Selon un mode de réalisation, l'opération 708 implique la génération d'un identifiant pour le flux en cours de paquets, sur la base du paquet reçu. Cet identifiant est par exemple basé sur une combinaison de champs identifiant uniquement le flux en cours. Les champs comprennent par exemple l'adresse de source de paquet et/ou l'adresse de destination de paquet. Les champs peuvent en outre comprendre l'adresse de port de source de paquet et l'adresse de port de destination de paquet. Les champs peuvent en outre comprendre une indication du protocole, tel que par exemple TCP (de l'anglais "Transmission Control Protocol", protocole de contrôle de transmission), ou du service, tel que par exemple FTP (de l'anglais "File Transfer Protocol", protocole de transfert de fichiers), utilisés pour la communication, qui sont des données de catégorie et difficiles à convertir en données entières. Par exemple, l'interface de communications 112 comprend une pluralité de ports transmettant des flux de paquets et une pluralité de ports pour recevoir des flux de paquets. Les adresses de port de source et de destination constituent par exemple des champs de l'en-tête de chaque paquet du flux et l'un ou l'autre de ces champs ou les deux sont ainsi par exemple utilisés pour calculer l'identifiant du flux de paquets en cours. Selon un mode de réalisation, l'identifiant est généré de sorte à appartenir à une structure de données ordonnée, telle que, par exemple, la définition de nombres réels ou d'entiers naturels. Selon un mode de réalisation, l'identifiant est généré sur la base d'une concaténation des valeurs des champs sur lesquelles il est basé. Par exemple, le circuit de traitement 110 comprend un registre à décalage configuré pour recevoir une pluralité de champs du paquet reçu d'une façon en série et pour fournir en sortie les bits des champs en parallèle pour former l'identifiant. Selon un autre mode de réalisation, l'identifiant est généré par le circuit de traitement 110, qui est en outre configuré pour appliquer une fonction mathématique aux valeurs des champs. La fonction mathématique pourrait par exemple être une quelconque combinaison d'additions, de soustractions, de multiplications et/ou d'autres opérations mathématiques. Dans un autre exemple, la fonction mathématique est appliquée en tant que prétraitement des valeurs des champs avant la génération, sur la base d'une concaténation, de l'identifiant. Selon un mode de réalisation, pour un flux de paquets bidirectionnel, deux identifiants distincts sont calculés sur la base des champs qui permettent d'identifier les paquets entrants et sortants comme étant des flux séparés. Par exemple, dans ce cas, l'adresse de destination de paquet n'est pas utilisée pour calculer l'identifiant des paquets unidirectionnels. Selon un mode de réalisation, la structure de données ordonnée est une liste à enjambements ou un arbre binaire équilibré, tel que, par exemple, un arbre bicolore, des arbres B-, des arbres B+, etc., stockés dans la mémoire volatile 106. La structure de données ordonnée est par exemple vide à chaque démarrage du circuit de traitement 110. En outre, la structure de données ordonnée est par exemple configurée pour stocker des métadonnées, provenant des paquets d'un flux de paquets reçu par l'interface 112, en association avec une entrée. L'entrée est par exemple identifiée par l'identifiant généré à partir de champs des paquets du flux de paquets. Le circuit de traitement 110 est par exemple en outre configuré pour rechercher l'identifiant dans la structure de données ordonnée et pour déterminer, dans une opération 709 (FOUND?), si l'identifiant correspond à une entrée existante de la structure de données ordonnée. La recherche comprend par exemple la comparaison de l'identifiant à une ou plusieurs valeurs de seuil de recherche, qui correspondent par exemple aux éléments de la liste à enjambements de la ou aux nœuds de l'arbre binaire de la . Si l'identifiant ne correspond aucune des entrées existantes, ou si la structure de données ordonnée est vide (branche N), le processus se poursuit dans une opération 710 (INSERTION), dans laquelle une nouvelle entrée est insérée dans la structure de données et les métadonnées constituent l'entrée dans la structure de données ordonnée en association avec l'identifiant. L'entrée insérée dans l'opération 710 contient par exemple des métadonnées caractérisant le flux de paquets reçu. Le nombre d'éléments de métadonnées pour un nouveau flux de paquets est par exemple le même que le nombre d'éléments de métadonnées d'un flux en cours. Dans un autre exemple, certaines valeurs statistiques requièrent plus d'échantillons à calculer, auquel cas le nombre d'éléments de métadonnées d'un nouveau flux de paquets diffère du nombre d'éléments de métadonnées d'un flux en cours. Le temps d'insertion d'une nouvelle entrée en association avec l'identifiant dépend du type de la structure de données ordonnée. Une fois l'opération 710 terminée, le processus se poursuit en revenant à l'opération 706 et en attendant la réception d'un autre paquet. Si, pendant l'opération 709, le circuit de traitement 110 trouve une entrée de la structure de données ordonnée (branche Y) correspondant à l'identifiant, alors le processus se poursuit dans une opération 711 (UPDATE METADATA). Dans l'opération 711, le circuit de traitement 110 extrait par exemple des informations constituant les métadonnées qui caractérisent le paquet du flux en cours. Le circuit de traitement 110 utilise également par exemple les informations extraites pour mettre à jour des métadonnées du flux en cours. Par exemple, les métadonnées du flux en cours comprennent une ou plusieurs des valeurs suivantes : - une adresse de port de destination d'un flux de paquets identifié par l'identifiant de flux de paquets ; - un protocole internet d'un flux de paquets identifié par l'identifiant de flux de paquets ; - une durée d'un flux de paquets identifié par l'identifiant de flux de paquets ; - un rapport entre un nombre de paquets de liaison descendante et un nombre de paquets de liaison montante dans un flux de paquets identifié par l'identifiant de flux de paquets ; - une longueur maximale de paquets dans un flux de paquets identifié par l'identifiant de flux de paquets ; - une longueur moyenne de paquets avant et/ou arrière dans un flux de paquets identifié par l'identifiant de flux de paquets ; - un débit en octet par seconde pour un flux de paquets identifié par l'identifiant de flux de paquets ; - un débit de paquets pour un flux de paquets identifié par l'identifiant de flux de paquets ; - un nombre de paquets avant et/ou arrière dans un flux de paquets identifié par l'identifiant de flux de paquets ; - une longueur totale de paquet avant et/ou arrière dans un flux de paquets identifié par l'identifiant de flux de paquets ; - une longueur maximale d'un paquet avant et/ou arrière dans un flux de paquets identifié par l'identifiant de flux de paquets ; et - un rapport entre un nombre de paquets avant et un nombre de paquets arrière dans un flux de paquets identifié par l'identifiant de flux de paquets, par exemple dans le cas où les paquets traversent une passerelle. Ces exemples de valeurs d'informations possibles constituant des métadonnées ne sont pas limitatifs et de nombreuses autres valeurs d'informations pourraient être prises en compte. Les métadonnées du flux en cours comprennent en outre par exemple : - un temps d'intervalle d'arrivée minimal et/ou maximal entre des paquets dans un flux de paquets identifié par l'identifiant de flux de paquets ; - une valeur moyenne et/ou une valeur d'écart type d'intervalle de temps d'arrivée minimal et/ou maximal entre des paquets dans un flux de paquets identifié par l'identifiant de flux de paquets ; - une valeur d'indicateur de paquets provenant d'un flux de paquets identifié par l'identifiant de flux de paquets, l'indicateur étant par exemple un indicateur URG (URGENT), un indicateur PSH (POUSSE, en anglais « PUSH »), etc. De plus, les métadonnées sont par exemple extraites de la direction avant, ou de la direction arrière, ou des deux directions d'un flux de paquets en cours identifié par l'identifiant de flux de paquets. Le circuit de traitement 110 est par exemple configurée pour mettre à jour les métadonnées stockées dans la structure de données ordonnée en association avec l'identifiant à chaque réception d'un paquet associé à cet identifiant. La mise à jour des métadonnées comprend par exemple la mise à jour des statistiques sur la base d'algorithmes appropriés afin de prendre en compte les caractéristiques de chaque nouveau paquet. Dans une opération 712 (RECEPTION ENDED?), le processeur 110 détermine par exemple si la réception du flux en cours de paquets identifié dans l'opération 709 est terminée. Par exemple, le paquet final du flux contient dans son en-tête une indication qu'il est le dernier paquet du flux en cours. Dans un autre exemple, le circuit 102 comprend en outre une minuterie configurée pour envoyer un signal au circuit de traitement 110 lorsqu'une valeur de temps seuil a été atteinte depuis le début de l'opération 706. Le circuit de traitement 110 est par exemple configuré pour déterminer que la réception du flux en cours est terminé à la réception de ce signal. S'il est déterminé dans l'opération 712 que la réception du flux de paquets n'est pas encore terminée (branche N) le processus se poursuit en répétant l'opération 706, impliquant d'attendre un autre paquet provenant du flux en cours de paquets. Si, dans l'opération 712, il est déterminé que le flux en cours de paquets est terminé (branche Y), alors le processus se poursuit dans une opération 713 (CLASSIFY). Pendant cette opération 713, le circuit de traitement 110 est par exemple configuré pour comparer les métadonnées stockées dans la structure de données ordonnée associée à l'identifiant avec un ou plusieurs seuils, ce qui permet par exemple de classer le flux comme étant normal ou anormal. Par exemple, les un ou plusieurs seuils peuvent correspondre à : une limite supérieure de la taille moyenne de paquet des paquets dans le flux de paquets ; et/ou une limite supérieure et/ou inférieure de l'écart type de la taille de paquet des paquets dans le flux de paquets ; et/ou une limite supérieure du nombre de paquets dans le flux de paquets. Dans une opération 714 (ATTACK?), le circuit de traitement 110 est par exemple configuré pour déterminer, sur la base de la classification effectuée dans l'opération 713, si le flux en cours provient d'une anomalie réseau, telle qu'une attaque par intrusion du réseau. Si le circuit de traitement 110 détermine qu'il n'y a pas d'anomalie réseau (branche N), le processus se poursuit en répétant l'opération 706, impliquant d'attendre un nouveau flux de paquets. Si le circuit de traitement détermine, dans l'opération 714, qu'il y a éventuellement une anomalie réseau (branche Y), le processus se poursuit dans une opération 715 (TAKE ACTION) dans laquelle au moins une contre-mesure est prise. Par exemple, le flux en cours de paquets est bloqué, ce qui signifie que les paquets du flux sont rejetés sans être traités dans l'opération 702. Le procédé retourne ensuite par exemple à l'opération 706, impliquant d'attendre un nouveau flux de paquets. Un avantage des modes de réalisation de la présente description est que, en générant un identifiant de chaque flux de paquets sur la base de champs d'un quelconque paquet du flux et en utilisant cet identifiant afin de localiser une entrée correspondante dans une liste ordonnée, les métadonnées associées au flux en cours de paquets peuvent être accédées en temps opportun, permettant d'identifier rapidement des anomalies réseau, telles que des attaques d'intrusion de réseau. En outre, en utilisant une liste à enjambements comme structure de données ordonnées, le temps d'insertion peut être considérablement lent, permettant d'insérer un nombre relativement grand de nouveaux flux de paquets. Divers modes de réalisation et variantes ont été décrits. La personne du métier comprendra que certaines caractéristiques de ces divers modes de réalisation et variantes pourraient être combinées, et d’autres variantes apparaîtront à la personne du métier. En particulier, bien que des exemples particuliers aient été décrits des champs qui peuvent être utilisés pour générer les identifiants de flux de paquets, il sera clair pour la personne du métier que d'autres champs de paquets pourraient être utilisés qui permettent d'identifier un flux donné uniquement par une valeur tombant dans un jeu ordonné. En outre, bien que certains exemples de structures de données ordonnées ayant des avantages particuliers aient été décrits, il sera clair pour la personne du métier que l'utilisation d'autres types de structures de données ordonnées serait possible. Enfin, la mise en oeuvre pratique des modes de réalisation et variantes décrits est à la portée de la personne du métier à partir des indications fonctionnelles données ci-dessus. Procédé comprenant : - la réception, par l'intermédiaire d'une interface (112) d'un dispositif électronique (100), d'un premier flux de paquets envoyés par une source qui est externe au dispositif électronique et/ou l'émission, par l'intermédiaire de l'interface, d'un premier flux de paquets vers une destination externe au dispositif électronique ; - le calcul, par un circuit de traitement (110) du dispositif électronique, d'un premier identifiant de flux de paquets sur la base d'au moins : une adresse de source de paquet des paquets du premier flux ; et une adresse de destination de paquets des paquets du premier flux ; et - la recherche, dans une structure de données dynamique ordonnée (114) stockée dans une mémoire (104, 106) du dispositif électronique et comprenant une pluralité d'entrées, chaque entrée comprenant des métadonnées de flux de paquets associées à un identifiant de flux de paquets correspondant, pour identifier une première entrée associée au premier identifiant de flux de paquets, dans lequel la recherche est effectuée sur la base de la valeur du premier identifiant de flux de paquets comparée à une ou plusieurs valeurs de seuil de recherche ; et - sur la base des métadonnées associées à la première entrée, le blocage de la réception du premier flux de paquets. Procédé selon la revendication 1, dans lequel la structure de données ordonnée (114) est une structure de données dynamique, le procédé comprenant en outre : - la réception, par l'intermédiaire de l'interface (112), d'un deuxième flux de paquets envoyé par une autre source qui est externe au dispositif électronique et/ou l'émission, par l'intermédiaire de l'interface, d'un deuxième flux de paquets à une autre destination externe au dispositif électronique ; - le calcul, par le circuit de traitement (110), d'un deuxième identifiant de flux de paquets sur la base d'au moins une adresse de source de paquet et une adresse de destination de paquet des paquets du deuxième flux ; et - la recherche, dans la structure de données dynamique ordonnée, d'une deuxième entrée associée au deuxième identifiant de flux de paquets, dans lequel s'il est déterminé que le deuxième identifiant de flux de paquets ne correspond à aucune des entrées : - l'extraction de métadonnées caractérisant le deuxième flux de paquets ; et - l'insertion, dans la structure de données dynamique ordonnée, d'une nouvelle entrée comprenant les métadonnées caractérisant le deuxième flux de paquets en association avec le deuxième identifiant de flux de paquets. Procédé selon la revendication 1 ou 2, dans lequel les métadonnées de flux de paquets associées à chaque identifiant de flux de paquets comprend au moins une des valeurs suivantes : - une adresse de port de destination d'un flux de paquets identifié par l'identifiant de flux de paquets ; - un protocole internet d'un flux de paquets identifié par l'identifiant de flux de paquets ; - une durée d'un flux de paquets identifié par l'identifiant de flux de paquets ; - un rapport entre un nombre de paquets de liaison descendante et un nombre de paquets de liaison montante dans un flux de paquets identifié par l'identifiant de flux de paquets ; - un rapport entre un nombre de paquets arrière et un nombre de paquets avant dans un flux de paquets identifié par l'identifiant de flux de paquets ; - une longueur maximale de paquets dans un flux de paquets identifié par l'identifiant de flux de paquets ; - une longueur moyenne de paquets avant et/ou arrière dans un flux de paquets identifié par l'identifiant de flux de paquets ; - un débit en octet par seconde pour un flux de paquets identifié par l'identifiant de flux de paquets ; - un débit de paquets pour un flux de paquets identifié par l'identifiant de flux de paquets ; - un nombre de paquets avant et/ou arrière dans un flux de paquets identifié par l'identifiant de flux de paquets ; - une longueur totale de paquet avant et/ou arrière dans un flux de paquets identifié par l'identifiant de flux de paquets ; et - une longueur maximale d'un paquet avant et/ou arrière dans un flux de paquets identifié par l'identifiant de flux de paquets. Procédé selon l'une quelconque des revendications 1 à 3, dans lequel la structure de données dynamique ordonnée (114) est une liste à enjambements. Procédé selon l'une quelconque des revendications 1 à 3, dans lequel la structure de données dynamique ordonnée (114) est un arbre binaire équilibré. Procédé selon la revendication 5, dans lequel la structure dynamique ordonnée (114) est un arbre bicolore. Procédé selon l'une quelconque des revendications 1 à 6, dans lequel le premier identifiant de flux de paquets est une concaténation, effectuée par le circuit de traitement dans un registre à décalage du dispositif (100), d'au moins l'adresse de source de paquet et/ou l'adresse de destination de paquet des paquets du premier flux. Procédé selon l'une quelconque des revendications 1 à 7, dans lequel le premier identifiant de flux de paquets est une valeur entière. Procédé selon l'une quelconque des revendications 1 à 7, dans lequel le premier identifiant de flux de paquets est une valeur à virgule flottante. Procédé selon l'une quelconque des revendications 1 à 9, dans lequel le premier identifiant de flux de paquets est en outre basé sur l'adresse de port de source de paquet et sur l'adresse de port de destination de paquet. Dispositif électronique (100) comprenant : - une interface (112) configurée pour recevoir un premier flux de paquets, envoyé par une source qui est externe au dispositif électronique et/ou pour émettre un premier flux de paquets à une destination qui est externe au dispositif électronique ; - un circuit de traitement (110) configuré pour calculer un premier identifiant de flux de paquets appartenant à un ensemble ordonné, sur la base d'au moins une adresse parmi : une adresse de source de paquet des paquets du premier flux ; et une adresse de destination de paquet des paquets du premier flux ; et - une mémoire (104, 106) configurée pour stocker une structure de données dynamique ordonnée (114) comprenant une pluralité d'entrées, chaque entrée comprenant des métadonnées de flux de paquets associées à un identifiant de flux de paquets correspondant, le circuit de traitement étant en outre configuré pour rechercher, dans la structure de données dynamique ordonnée, pour identifier une première entrée associée au premier identifiant de flux de paquets, dans lequel la recherche est effectuée sur la base de la valeur du premier identifiant de flux de paquets comparée à une ou plusieurs valeurs de seuil de recherche et pour bloquer la réception du premier flux de paquets sur la base des métadonnées. Dispositif électronique (100) selon la revendication 11, dans lequel l'interface (112) est en outre configurée pour recevoir un deuxième flux de paquets envoyé par une autre source externe ou pour émettre un deuxième flux de paquets vers une autre destination qui est externe au dispositif électronique et dans lequel le circuit de traitement est en outre configuré pour : - calculer un deuxième identifiant de flux de paquets sur la base d'au moins une adresse de source de paquet et une adresse de destination de paquet des paquets du deuxième flux ; et - rechercher dans la structure de données dynamique ordonnée (114) une deuxième entrée associée au deuxième identifiant de flux de paquets et, s'il est déterminé que le deuxième identifiant de flux de paquets ne correspond à aucune des entrées : - extraire des métadonnées caractérisant le deuxième flux de paquets ; et - insérer, dans la structure de données dynamique ordonnée, une nouvelle entrée comprenant les métadonnées caractérisant le deuxième flux de paquets en association avec le deuxième identifiant de flux de paquets. Dispositif électronique (100) selon la revendication 11 ou 12, dans lequel le circuit de traitement (110) est en outre configuré pour calculer le premier identifiant de flux de paquets en concaténant au moins l'adresse de source de paquet et l'adresse de destination de paquet des paquets du premier flux.