Blog

Chaînes mortelles, Internet des objets et optimisation combinatoire quantique : Une salade de mots à la mode

6
Septembre
,
2023
Ariel Smoler et Gal Winer

Selon les personnes interrogées, la taille du marché de la cybersécurité est actuellement (en août 2023) estimée à quelques centaines de milliards de dollars US par an. Il est plus difficile d'estimer la taille du marché de l'internet des objets, car les définitions sont plus vagues que celles de la cybersécurité. Un grille-pain connecté au web est-il un appareil de l'internet des objets (IOT) ? Oui, peut-être, mais qu'en est-il d'une étiquette d'identification par radiofréquence (RF) dotée d'une puce électronique collée sur une boîte d'œufs ? Oui, c'est probablement aussi lié à l'IdO. Par coïncidence, ces deux exemples peuvent être la cible de cyberattaques. Toutefois, on ne sait pas encore quel renard à queue rouge maléfique, capable de cyber-attaques, s'attaquera à cette modeste mais délicieuse friandise connectée à l'internet.

Quelle que soit la taille exacte du marché, les deux marchés sont incontestablement énormes et lucratifs. Le marché de l'informatique quantique, bien que très précoce, est encore beaucoup plus petit. Estimons amicalement sa taille à environ 1 % (ou moins) de celle du cybermarché, soit environ 1 milliard de dollars par an. Néanmoins, les projections de croissance sont stupéfiantes.

Une partie de la croissance prévue résulte de la façon dont les capacités d'informatique quantique facilitent d'autres marchés. En particulier, dans le billet d'aujourd'hui, nous discuterons de la façon dont l'utilisation d'algorithmes quantiques pour l'optimisation combinatoire, qui peuvent potentiellement surpasser leurs homologues classiques, est utile dans les industries de notre exposition : IOT et cybersécurité.

Un patch par jour permet de tenir les attaquants à distance.

Qu'est-ce que la cybersécurité? C'est l'art et la manière d'empêcher des acteurs malveillants d'accéder à des choses auxquelles vous préféreriez qu'ils n'aient pas accès : vos données, vos ordinateurs et votre grille-pain. Le problème, c'est que de nos jours, les systèmes informatiques ne sont pas souvent déconnectés les uns des autres. Tout est maillé via un réseau, essentiellement une vaste collection d'actifs interconnectés.

Chaque actif d'un réseau est un logiciel ou est associé à un logiciel. Une base de données sensible contient des informations que vous souhaitez garder pour vous et fonctionne avec un fournisseur et une version de base de données spécifiques. Un oubli dans la conception de la couche réseau d'un système d'exploitation a laissé un trou béant que quelqu'un peut exploiter pour transformer votre ordinateur en un nœud de distribution de fictions non autorisées de fans de Harry Potter ; la liste est encore longue.

Comme la plupart des systèmes complexes, les systèmes informatiques permettent toujours, par inadvertance, une utilisation non prévue par leur concepteur initial. Heureusement, pour les ordinateurs, nous pouvons déployer des correctifs pour combler les failles connues. L'application correcte de correctifs sur les actifs d'un réseau est l'un des facteurs les plus importants pour un réseau sain et cybersécurisé. Il s'avère que ce n'est pas une tâche triviale.

La fermeture hermétique de tous les problèmes connus à l'aide de correctifs pose de nombreuses difficultés. Tout d'abord, le nombre de problèmes à suivre et à appliquer est écrasant. Vous trouverez ci-dessous le nombre de problèmes publiés et connus collectés sur CVE, le registre des vulnérabilités en ligne. La tendance à l'augmentation de la menace est claire, et le nombre se chiffre en dizaines de milliers. Le fait que les correctifs doivent également tenir compte des problèmes de compatibilité, qu'ils peuvent affecter les performances du système et qu'ils doivent être coordonnés au sein d'un réseau hétérogène montre clairement qu'il s'agit d'un défi difficile à relever.


Juste ce qu'il faut aux bons endroits.

Le physicien Eugen Wigner a déclaré un jour que les mathématiques étaient "déraisonnablement efficaces" dans les sciences naturelles. En termes simples, c'est une bonne idée de créer un modèle mathématique si l'on veut résoudre un problème. Ici aussi, nous devrions probablement le faire. Le modèle présenté ici suit le travail original publié dans[https://arxiv.org/abs/2211.13740] et est un modèle de théorie des graphes. Nous commençons par quelques définitions.

- Nous travaillons avec un graphe reliant les actifs et les vulnérabilités.
- Un actif est un élément qui a de la valeur pour un attaquant, par exemple des données stockées dans le système. La disponibilité, la cohérence et l'intégrité des actifs doivent être préservées.
- Une vulnérabilité est une faille par laquelle un attaquant peut exploiter un actif, par exemple un logiciel mal patché, un mot de passe faible, une mauvaise configuration du réseau, etc.

Un lien entre un bien et une vulnérabilité signifie que le bien est susceptible d'en être affecté. Cet ordinateur a un mot de passe stupide, cet ordinateur fonctionne sous Windows XP d'il y a 20 ans, etc. De tels liens signifient qu'il existe des moyens connus d'accéder à cet ordinateur. Des moyens comme deviner un mot de passe est "Password" (qui, inexplicablement, est toujours une supposition très probable https://en.wikipedia.org/wiki/List_of_the_most_common_passwords).

Le danger d'avoir des actifs affectés est que de tels "maillons de la chaîne" peuvent être attachés ensemble. Ainsi, lorsqu'ils sont combinés, de multiples liens non sécurisés et apparemment sans rapport permettent à un attaquant de se déplacer latéralement dans le réseau. L'attaquant peut alors établir un scénario d'attaque complet pour cibler l'actif critique qu'il souhaite. Un tel ensemble de mouvements est illustré dans l'image ci-dessous. Bien que cela ressemble au nom d'un film particulièrement mauvais (particulièrement bon ?) de Steven Segal datant de 1998, l'enchaînement de vulnérabilités s'appelle une "chaîne de mise à mort".

Les objets coûteux et leur emplacement

Nous voulons toujours patcher un réseau. Nous le voulons vraiment. Mais nous devons faire un léger détour pour expliquer un concept mathématique essentiel et montrer comment il peut être utilisé pour sécuriser une application de l'internet des objets.

Un exemple de scénario IOT est l'utilisation d'une large collection de capteurs communicants. Les réseaux de capteurs sans fil (WSN), comme on les appelle, peuvent être déployés pour protéger une forêt des incendies (en déployant des capteurs sensibles à divers facteurs environnementaux tels que l'humidité, la température et la pression atmosphérique), pour surveiller des applications industrielles dans lesquelles de nombreuses machines travaillent à l'unisson, pour coordonner des réseaux de transport et dans bien d'autres contextes encore. Le diagramme de [1] ci-dessous montre un WSN à 11 nœuds. Le nœud numéro 1 est marqué différemment des autres car il contrôle le réseau et en collecte les informations de manière centralisée.

[1] Yigit Y, Dagdeviren O et Challenger M 2022 Self-Stabilizing Capacitated Vertex Cover Algorithms for Internet-of-Things-Enabled Wireless Sensor Networks (Algorithmes de couverture de sommet capté auto-stabilisants pour les réseaux de capteurs sans fil compatibles avec l'Internet des objets) Sensors 22 3774 En ligne : http://dx.doi.org/10.3390/s22103774

Un WSN, comme tout autre réseau informatique, peut être la cible d'une attaque. Je suis peut-être propriétaire d'une usine de crème glacée et mon concurrent veut vraiment savoir à quelle température je fabrique mes pépites de chocolat à la menthe. Alors, comment protéger son réseau ?

Certains nœuds de réseau peuvent être plus intelligents que d'autres. Ils peuvent avoir des capacités de surveillance leur permettant, par exemple, d'inspecter le contenu des informations transmises par le réseau (paquets réseau) et de créer des alertes si les paquets semblent malveillants. Ce type d'application est appelé scénario de surveillance des liens.

Il n'est pas possible de faire de tous les nœuds du WSN des nœuds de surveillance. Ce serait une solution coûteuse en termes de coût réel par nœud et de consommation d'énergie. Imaginez, par exemple, que vos nœuds soient disséminés dans une vaste forêt et qu'ils fonctionnent sur batterie. Dans ce cas, il peut s'avérer nécessaire de changer les piles de temps en temps. Le déploiement de nœuds économes en énergie vous faciliterait grandement la vie. Rendre chaque nœud intelligent, gourmand en énergie et coûteux n'est pas la bonne solution.

Nous voulons maintenant savoir quels sont les nœuds de notre réseau qui "voient" le plus d'autres nœuds. Le diagramme ci-dessous, également tiré de [1], montre une sélection de nœuds de surveillance indiqués par une couleur rouge.

Dans la théorie des graphes, la sélection des nœuds qui peuvent "voir" (c'est-à-dire qui sont connectés à) la plus grande partie possible de l'ensemble du graphe est appelée couverture maximale des sommets (MVC) du graphe[https://en.wikipedia.org/wiki/Vertex_cover].

Trouver le MVC n'est pas une tâche informatique facile. Il s'agit d'un problème techniquement classé dans la catégorie NP-hard. Ces problèmes ont des solutions faciles à vérifier (facile signifie que vous pouvez vérifier si une solution tient relativement rapidement, en "temps polynomial") mais difficiles à trouver (ce qui signifie qu'il n'y a pas de solutions rapides - en "temps polynomial").

C'est là qu'intervient l'informatique quantique. Nous pouvons trouver une solution approximative au problème MVC à l'aide d'un algorithme quantique !

Application du patch quantique

Revenons au problème initial : la gestion des correctifs. Notre objectif était d'identifier les correctifs à appliquer à notre réseau informatique pour détruire les chaînes les plus meurtrières.

Les graphes mathématiques sont des structures de données que les algorithmes quantiques ont tendance à apprécier. Il existe des algorithmes pour séparer les graphes, d'autres pour les parcourir, etc.

Le graphe que nous utilisons pour représenter notre situation difficile est techniquement connu sous le nom de graphe bipartite. Cela signifie qu'il s'agit d'une collection de nœuds de deux types distincts (actifs et vulnérabilités) qui sont reliés par des arêtes. Une arête représente la capacité d'un attaquant à se déplacer d'un bien à un autre en exploitant les vulnérabilités disponibles sur ce bien.

Représentons le "kill chain" que nous avons montré ci-dessus sous la forme d'un graphe bipartite. Les chiffres 1,4,8 représentent des vulnérabilités spécifiques, ils ne signifient rien en particulier. Imaginez simplement qu'il s'agit d'une vulnérabilité spécifique parmi une liste de vulnérabilités connues.

Nous aimerions éliminer de ce graphe toutes les arêtes entre les vulnérabilités et les actifs, ce qui revient à dire que nous voulons appliquer tous les correctifs à tous les actifs et tout sécuriser à 100 %. Mais ce n'est pas possible. Nous devons donc trouver une stratégie pour classer les vulnérabilités par ordre de priorité de manière à rompre la chaîne d'élimination. Dans cet exemple simple, l'élimination de la vulnérabilité 4 rompt la chaîne d'exécution.

Nous pouvons introduire une méthode pour le constater. Il peut sembler étrange de modifier le graphe pour cet exemple simple, mais cela s'avérera utile plus tard dans des scénarios plus complexes. Définissons le graphe dual.

Le graphique double examine les vulnérabilités et les met en relation directement si elles sont connectées via un actif dans le graphe "original". Voici le double graphe de notre exemple :

L'intuition que nous avions auparavant selon laquelle la suppression de la vulnérabilité 4 briserait la chaîne est désormais plus palpable, et il ne sera pas possible de passer de 1 à 8.

Que se passe-t-il si nous avons un graphique plus complexe ?

Considérons maintenant un exemple plus complexe, avec plus d'actifs et plus de vulnérabilités. Il ne s'agit encore que d'un petit modèle comparé à un réseau réel comptant des centaines de milliers de nœuds, mais il devient déjà visuellement compliqué.

En convertissant ce graphe en son graphe dual, on obtient le graphe suivant :


Pour simplifier, nous avons construit un graphe non orienté. Cela peut se justifier par le fait que nous voulons briser la chaîne quelle que soit la direction et donner la priorité aux vulnérabilités les mieux connectées. En outre, cela nous facilite la vie et il est souvent préférable de commencer simplement et d'introduire progressivement de la complexité. Les choses sont déjà difficiles.

En examinant ce graphique, il n'est pas évident de savoir quels nœuds seront supprimés pour briser le plus grand nombre de chaînes d'élimination. Que faire alors ? Trouver le MVC, bien sûr !

Le MVC du graphe dual nous indique quels correctifs nous devons appliquer pour déconnecter les nœuds les plus dépourvus de correctifs les uns des autres, empêchant ainsi une séquence de vulnérabilités. En d'autres termes, il s'agit de briser les chaînes de mise à mort.

Dans ce cas, les nœuds marqués en bleu indiquent la solution MVC. Il convient d'appliquer ces correctifs pour obtenir la meilleure protection au moindre coût.

Cette solution peut être reconvertie sous la forme d'un graphe bipartite, ce qui donne une forme beaucoup plus simple que celle que nous avions auparavant. Il est essentiel de noter qu'il est impossible de passer d'une vulnérabilité à une autre par l'intermédiaire des actifs. Les chaînes sont brisées !

MVC et quantum : La méthode Classiq

Nous disposons désormais d'une méthode mathématique pour résoudre les problèmes de cybersécurité. Dans l'exemple de la surveillance des liens et pour les chaînes d'exécution, la clé est de trouver le MVC. C'est facile.

Comme nous l'avons déjà mentionné, le problème est que la recherche du MVC est NP-hard. Étant donné qu'un réseau d'entreprise réel peut compter 100 000 hôtes ou plus, il s'agit généralement d'un problème insoluble.

La recherche d'une couverture maximale approximative des sommets peut être effectuée sur un ordinateur quantique en un temps sous-exponentiel à l'aide d'un algorithme quantique, un cheval de bataille d'une classe de problèmes d'optimisation combinatoire abordés par l'informatique quantique : QAOA.

Le MVC est un exemple typique de problème d'optimisation combinatoire. La difficulté provient du nombre même de combinaisons d'éléments ; il y a généralement des contraintes à respecter lors de la sélection d'une combinaison particulière, et le problème n'est pas suffisamment structuré pour que l'on puisse faire une sélection intelligente. Le problème n'est pas suffisamment structuré pour permettre une sélection intelligente. Il faut donc vérifier toutes les possibilités et trouver celle qui fonctionne. En d'autres termes, la recherche d'une solution coûtera un temps exponentiel en fonction de la taille du problème.

Le QAOA vous permet d'être plus rapide que cela, ou sous-exponentiel, du moins si vous êtes prêt à trouver une approximation plutôt qu'une solution exacte. Nous n'expliquerons pas QAOA en profondeur, mais si le public le souhaite (contactez-nous sur le serveur Slack de Classiq), nous pourrons le faire à l'avenir. Vous pouvez lire de nombreuses critiques en ligne, par exemple ici[https://arxiv.org/abs/2306.09198].

La résolution de problèmes d'optimisation combinatoire avec QAOA est l'un des points forts de la plateforme Classiq. Il y a trois étapes simples à suivre ici :

1. Définir le modèle quantique en utilisant les capacités d'optimisation combinatoire de Classiq.
2. Utiliser le moteur de Classiq pour générer un circuit quantique paramétré .
3. Exécuter le circuit dans la plateforme Classiq pour obtenir les paramètres optimaux représentant la solution.

La technique de construction des modèles Classiq impliquant des QAOA et des graphes est assez naturelle, car elle est compatible avec des outils standards et open-source. Lorsque l'on utilise le SDK Classiq Python, un graphe de réseau est d'abord construit avec la bibliothèque networkx. L'étape suivante consiste à définir le problème d'optimisation. Il existe différents langages d'optimisation. Une façon générale et expressive de le faire dans l'écosystème Python est d'utiliser le langage PyOmo en Python[http://www.pyomo.org/]. PyOmo est puissant et riche, et il permet aux utilisateurs d'exprimer un grand nombre de modèles d'optimisation. PyOmo est unique car il est étroitement intégré au modèle Classiq[https://docs.classiq.io/latest/tutorials/advanced/optimization/].

L'image suivante montre un circuit synthétisé par la plateforme Classiq, trouvant un MVC approximatif pour un simple réseau double. Ce circuit peut être facilement exécuté sur du matériel quantique réel ou sur des simulateurs de la plateforme Classiq en cliquant sur un bouton.

Vous pouvez le vérifier par vous-même. L'inscription à la plateforme sur platform.classiq.io est actuellement totalement gratuite. Nous disposons d'une collection d'exemples de modèles cybernétiques que vous pouvez synthétiser et exécuter sur l'une des offres autorisées par Classiq. Vous pouvez accéder à la fois aux simulateurs quantiques et aux différentes plateformes matérielles. Vous n'avez pas besoin de réécrire le circuit pour des cibles matérielles spécifiques, car cela est pris en charge automatiquement.

Conclusion

La cybersécurité pose d'innombrables problèmes non triviaux susceptibles de ravager les réseaux informatiques et de provoquer des perturbations coûteuses ou dangereuses. Certains de ces problèmes peuvent être formulés mathématiquement et traités à l'aide d'outils informatiques.

La taille des réseaux informatiques modernes, dont nous dépendons dans notre vie quotidienne, peut être immense, ce qui rend la résolution de certains problèmes de calcul dans le domaine de la cybersécurité impossible avec des ressources informatiques normales.

Heureusement, il existe des outils de calcul quantique qui permettent de trouver des solutions, mais il serait peut-être plus pratique de générer des logiciels quantiques pour rechercher ces solutions.

La plateforme Classiq présente la meilleure et la plus simple façon d'appliquer des algorithmes quantiques de pointe à des problèmes du monde réel en utilisant les outils standard utilisés dans les problèmes d'optimisation, comme le langage PyOmo.

Selon les personnes interrogées, la taille du marché de la cybersécurité est actuellement (en août 2023) estimée à quelques centaines de milliards de dollars US par an. Il est plus difficile d'estimer la taille du marché de l'internet des objets, car les définitions sont plus vagues que celles de la cybersécurité. Un grille-pain connecté au web est-il un appareil de l'internet des objets (IOT) ? Oui, peut-être, mais qu'en est-il d'une étiquette d'identification par radiofréquence (RF) dotée d'une puce électronique collée sur une boîte d'œufs ? Oui, c'est probablement aussi lié à l'IdO. Par coïncidence, ces deux exemples peuvent être la cible de cyberattaques. Toutefois, on ne sait pas encore quel renard à queue rouge maléfique, capable de cyber-attaques, s'attaquera à cette modeste mais délicieuse friandise connectée à l'internet.

Quelle que soit la taille exacte du marché, les deux marchés sont incontestablement énormes et lucratifs. Le marché de l'informatique quantique, bien que très précoce, est encore beaucoup plus petit. Estimons amicalement sa taille à environ 1 % (ou moins) de celle du cybermarché, soit environ 1 milliard de dollars par an. Néanmoins, les projections de croissance sont stupéfiantes.

Une partie de la croissance prévue résulte de la façon dont les capacités d'informatique quantique facilitent d'autres marchés. En particulier, dans le billet d'aujourd'hui, nous discuterons de la façon dont l'utilisation d'algorithmes quantiques pour l'optimisation combinatoire, qui peuvent potentiellement surpasser leurs homologues classiques, est utile dans les industries de notre exposition : IOT et cybersécurité.

Un patch par jour permet de tenir les attaquants à distance.

Qu'est-ce que la cybersécurité? C'est l'art et la manière d'empêcher des acteurs malveillants d'accéder à des choses auxquelles vous préféreriez qu'ils n'aient pas accès : vos données, vos ordinateurs et votre grille-pain. Le problème, c'est que de nos jours, les systèmes informatiques ne sont pas souvent déconnectés les uns des autres. Tout est maillé via un réseau, essentiellement une vaste collection d'actifs interconnectés.

Chaque actif d'un réseau est un logiciel ou est associé à un logiciel. Une base de données sensible contient des informations que vous souhaitez garder pour vous et fonctionne avec un fournisseur et une version de base de données spécifiques. Un oubli dans la conception de la couche réseau d'un système d'exploitation a laissé un trou béant que quelqu'un peut exploiter pour transformer votre ordinateur en un nœud de distribution de fictions non autorisées de fans de Harry Potter ; la liste est encore longue.

Comme la plupart des systèmes complexes, les systèmes informatiques permettent toujours, par inadvertance, une utilisation non prévue par leur concepteur initial. Heureusement, pour les ordinateurs, nous pouvons déployer des correctifs pour combler les failles connues. L'application correcte de correctifs sur les actifs d'un réseau est l'un des facteurs les plus importants pour un réseau sain et cybersécurisé. Il s'avère que ce n'est pas une tâche triviale.

La fermeture hermétique de tous les problèmes connus à l'aide de correctifs pose de nombreuses difficultés. Tout d'abord, le nombre de problèmes à suivre et à appliquer est écrasant. Vous trouverez ci-dessous le nombre de problèmes publiés et connus collectés sur CVE, le registre des vulnérabilités en ligne. La tendance à l'augmentation de la menace est claire, et le nombre se chiffre en dizaines de milliers. Le fait que les correctifs doivent également tenir compte des problèmes de compatibilité, qu'ils peuvent affecter les performances du système et qu'ils doivent être coordonnés au sein d'un réseau hétérogène montre clairement qu'il s'agit d'un défi difficile à relever.


Juste ce qu'il faut aux bons endroits.

Le physicien Eugen Wigner a déclaré un jour que les mathématiques étaient "déraisonnablement efficaces" dans les sciences naturelles. En termes simples, c'est une bonne idée de créer un modèle mathématique si l'on veut résoudre un problème. Ici aussi, nous devrions probablement le faire. Le modèle présenté ici suit le travail original publié dans[https://arxiv.org/abs/2211.13740] et est un modèle de théorie des graphes. Nous commençons par quelques définitions.

- Nous travaillons avec un graphe reliant les actifs et les vulnérabilités.
- Un actif est un élément qui a de la valeur pour un attaquant, par exemple des données stockées dans le système. La disponibilité, la cohérence et l'intégrité des actifs doivent être préservées.
- Une vulnérabilité est une faille par laquelle un attaquant peut exploiter un actif, par exemple un logiciel mal patché, un mot de passe faible, une mauvaise configuration du réseau, etc.

Un lien entre un bien et une vulnérabilité signifie que le bien est susceptible d'en être affecté. Cet ordinateur a un mot de passe stupide, cet ordinateur fonctionne sous Windows XP d'il y a 20 ans, etc. De tels liens signifient qu'il existe des moyens connus d'accéder à cet ordinateur. Des moyens comme deviner un mot de passe est "Password" (qui, inexplicablement, est toujours une supposition très probable https://en.wikipedia.org/wiki/List_of_the_most_common_passwords).

Le danger d'avoir des actifs affectés est que de tels "maillons de la chaîne" peuvent être attachés ensemble. Ainsi, lorsqu'ils sont combinés, de multiples liens non sécurisés et apparemment sans rapport permettent à un attaquant de se déplacer latéralement dans le réseau. L'attaquant peut alors établir un scénario d'attaque complet pour cibler l'actif critique qu'il souhaite. Un tel ensemble de mouvements est illustré dans l'image ci-dessous. Bien que cela ressemble au nom d'un film particulièrement mauvais (particulièrement bon ?) de Steven Segal datant de 1998, l'enchaînement de vulnérabilités s'appelle une "chaîne de mise à mort".

Les objets coûteux et leur emplacement

Nous voulons toujours patcher un réseau. Nous le voulons vraiment. Mais nous devons faire un léger détour pour expliquer un concept mathématique essentiel et montrer comment il peut être utilisé pour sécuriser une application de l'internet des objets.

Un exemple de scénario IOT est l'utilisation d'une large collection de capteurs communicants. Les réseaux de capteurs sans fil (WSN), comme on les appelle, peuvent être déployés pour protéger une forêt des incendies (en déployant des capteurs sensibles à divers facteurs environnementaux tels que l'humidité, la température et la pression atmosphérique), pour surveiller des applications industrielles dans lesquelles de nombreuses machines travaillent à l'unisson, pour coordonner des réseaux de transport et dans bien d'autres contextes encore. Le diagramme de [1] ci-dessous montre un WSN à 11 nœuds. Le nœud numéro 1 est marqué différemment des autres car il contrôle le réseau et en collecte les informations de manière centralisée.

[1] Yigit Y, Dagdeviren O et Challenger M 2022 Self-Stabilizing Capacitated Vertex Cover Algorithms for Internet-of-Things-Enabled Wireless Sensor Networks (Algorithmes de couverture de sommet capté auto-stabilisants pour les réseaux de capteurs sans fil compatibles avec l'Internet des objets) Sensors 22 3774 En ligne : http://dx.doi.org/10.3390/s22103774

Un WSN, comme tout autre réseau informatique, peut être la cible d'une attaque. Je suis peut-être propriétaire d'une usine de crème glacée et mon concurrent veut vraiment savoir à quelle température je fabrique mes pépites de chocolat à la menthe. Alors, comment protéger son réseau ?

Certains nœuds de réseau peuvent être plus intelligents que d'autres. Ils peuvent avoir des capacités de surveillance leur permettant, par exemple, d'inspecter le contenu des informations transmises par le réseau (paquets réseau) et de créer des alertes si les paquets semblent malveillants. Ce type d'application est appelé scénario de surveillance des liens.

Il n'est pas possible de faire de tous les nœuds du WSN des nœuds de surveillance. Ce serait une solution coûteuse en termes de coût réel par nœud et de consommation d'énergie. Imaginez, par exemple, que vos nœuds soient disséminés dans une vaste forêt et qu'ils fonctionnent sur batterie. Dans ce cas, il peut s'avérer nécessaire de changer les piles de temps en temps. Le déploiement de nœuds économes en énergie vous faciliterait grandement la vie. Rendre chaque nœud intelligent, gourmand en énergie et coûteux n'est pas la bonne solution.

Nous voulons maintenant savoir quels sont les nœuds de notre réseau qui "voient" le plus d'autres nœuds. Le diagramme ci-dessous, également tiré de [1], montre une sélection de nœuds de surveillance indiqués par une couleur rouge.

Dans la théorie des graphes, la sélection des nœuds qui peuvent "voir" (c'est-à-dire qui sont connectés à) la plus grande partie possible de l'ensemble du graphe est appelée couverture maximale des sommets (MVC) du graphe[https://en.wikipedia.org/wiki/Vertex_cover].

Trouver le MVC n'est pas une tâche informatique facile. Il s'agit d'un problème techniquement classé dans la catégorie NP-hard. Ces problèmes ont des solutions faciles à vérifier (facile signifie que vous pouvez vérifier si une solution tient relativement rapidement, en "temps polynomial") mais difficiles à trouver (ce qui signifie qu'il n'y a pas de solutions rapides - en "temps polynomial").

C'est là qu'intervient l'informatique quantique. Nous pouvons trouver une solution approximative au problème MVC à l'aide d'un algorithme quantique !

Application du patch quantique

Revenons au problème initial : la gestion des correctifs. Notre objectif était d'identifier les correctifs à appliquer à notre réseau informatique pour détruire les chaînes les plus meurtrières.

Les graphes mathématiques sont des structures de données que les algorithmes quantiques ont tendance à apprécier. Il existe des algorithmes pour séparer les graphes, d'autres pour les parcourir, etc.

Le graphe que nous utilisons pour représenter notre situation difficile est techniquement connu sous le nom de graphe bipartite. Cela signifie qu'il s'agit d'une collection de nœuds de deux types distincts (actifs et vulnérabilités) qui sont reliés par des arêtes. Une arête représente la capacité d'un attaquant à se déplacer d'un bien à un autre en exploitant les vulnérabilités disponibles sur ce bien.

Représentons le "kill chain" que nous avons montré ci-dessus sous la forme d'un graphe bipartite. Les chiffres 1,4,8 représentent des vulnérabilités spécifiques, ils ne signifient rien en particulier. Imaginez simplement qu'il s'agit d'une vulnérabilité spécifique parmi une liste de vulnérabilités connues.

Nous aimerions éliminer de ce graphe toutes les arêtes entre les vulnérabilités et les actifs, ce qui revient à dire que nous voulons appliquer tous les correctifs à tous les actifs et tout sécuriser à 100 %. Mais ce n'est pas possible. Nous devons donc trouver une stratégie pour classer les vulnérabilités par ordre de priorité de manière à rompre la chaîne d'élimination. Dans cet exemple simple, l'élimination de la vulnérabilité 4 rompt la chaîne d'exécution.

Nous pouvons introduire une méthode pour le constater. Il peut sembler étrange de modifier le graphe pour cet exemple simple, mais cela s'avérera utile plus tard dans des scénarios plus complexes. Définissons le graphe dual.

Le graphique double examine les vulnérabilités et les met en relation directement si elles sont connectées via un actif dans le graphe "original". Voici le double graphe de notre exemple :

L'intuition que nous avions auparavant selon laquelle la suppression de la vulnérabilité 4 briserait la chaîne est désormais plus palpable, et il ne sera pas possible de passer de 1 à 8.

Que se passe-t-il si nous avons un graphique plus complexe ?

Considérons maintenant un exemple plus complexe, avec plus d'actifs et plus de vulnérabilités. Il ne s'agit encore que d'un petit modèle comparé à un réseau réel comptant des centaines de milliers de nœuds, mais il devient déjà visuellement compliqué.

En convertissant ce graphe en son graphe dual, on obtient le graphe suivant :


Pour simplifier, nous avons construit un graphe non orienté. Cela peut se justifier par le fait que nous voulons briser la chaîne quelle que soit la direction et donner la priorité aux vulnérabilités les mieux connectées. En outre, cela nous facilite la vie et il est souvent préférable de commencer simplement et d'introduire progressivement de la complexité. Les choses sont déjà difficiles.

En examinant ce graphique, il n'est pas évident de savoir quels nœuds seront supprimés pour briser le plus grand nombre de chaînes d'élimination. Que faire alors ? Trouver le MVC, bien sûr !

Le MVC du graphe dual nous indique quels correctifs nous devons appliquer pour déconnecter les nœuds les plus dépourvus de correctifs les uns des autres, empêchant ainsi une séquence de vulnérabilités. En d'autres termes, il s'agit de briser les chaînes de mise à mort.

Dans ce cas, les nœuds marqués en bleu indiquent la solution MVC. Il convient d'appliquer ces correctifs pour obtenir la meilleure protection au moindre coût.

Cette solution peut être reconvertie sous la forme d'un graphe bipartite, ce qui donne une forme beaucoup plus simple que celle que nous avions auparavant. Il est essentiel de noter qu'il est impossible de passer d'une vulnérabilité à une autre par l'intermédiaire des actifs. Les chaînes sont brisées !

MVC et quantum : La méthode Classiq

Nous disposons désormais d'une méthode mathématique pour résoudre les problèmes de cybersécurité. Dans l'exemple de la surveillance des liens et pour les chaînes d'exécution, la clé est de trouver le MVC. C'est facile.

Comme nous l'avons déjà mentionné, le problème est que la recherche du MVC est NP-hard. Étant donné qu'un réseau d'entreprise réel peut compter 100 000 hôtes ou plus, il s'agit généralement d'un problème insoluble.

La recherche d'une couverture maximale approximative des sommets peut être effectuée sur un ordinateur quantique en un temps sous-exponentiel à l'aide d'un algorithme quantique, un cheval de bataille d'une classe de problèmes d'optimisation combinatoire abordés par l'informatique quantique : QAOA.

Le MVC est un exemple typique de problème d'optimisation combinatoire. La difficulté provient du nombre même de combinaisons d'éléments ; il y a généralement des contraintes à respecter lors de la sélection d'une combinaison particulière, et le problème n'est pas suffisamment structuré pour que l'on puisse faire une sélection intelligente. Le problème n'est pas suffisamment structuré pour permettre une sélection intelligente. Il faut donc vérifier toutes les possibilités et trouver celle qui fonctionne. En d'autres termes, la recherche d'une solution coûtera un temps exponentiel en fonction de la taille du problème.

Le QAOA vous permet d'être plus rapide que cela, ou sous-exponentiel, du moins si vous êtes prêt à trouver une approximation plutôt qu'une solution exacte. Nous n'expliquerons pas QAOA en profondeur, mais si le public le souhaite (contactez-nous sur le serveur Slack de Classiq), nous pourrons le faire à l'avenir. Vous pouvez lire de nombreuses critiques en ligne, par exemple ici[https://arxiv.org/abs/2306.09198].

La résolution de problèmes d'optimisation combinatoire avec QAOA est l'un des points forts de la plateforme Classiq. Il y a trois étapes simples à suivre ici :

1. Définir le modèle quantique en utilisant les capacités d'optimisation combinatoire de Classiq.
2. Utiliser le moteur de Classiq pour générer un circuit quantique paramétré .
3. Exécuter le circuit dans la plateforme Classiq pour obtenir les paramètres optimaux représentant la solution.

La technique de construction des modèles Classiq impliquant des QAOA et des graphes est assez naturelle, car elle est compatible avec des outils standards et open-source. Lorsque l'on utilise le SDK Classiq Python, un graphe de réseau est d'abord construit avec la bibliothèque networkx. L'étape suivante consiste à définir le problème d'optimisation. Il existe différents langages d'optimisation. Une façon générale et expressive de le faire dans l'écosystème Python est d'utiliser le langage PyOmo en Python[http://www.pyomo.org/]. PyOmo est puissant et riche, et il permet aux utilisateurs d'exprimer un grand nombre de modèles d'optimisation. PyOmo est unique car il est étroitement intégré au modèle Classiq[https://docs.classiq.io/latest/tutorials/advanced/optimization/].

L'image suivante montre un circuit synthétisé par la plateforme Classiq, trouvant un MVC approximatif pour un simple réseau double. Ce circuit peut être facilement exécuté sur du matériel quantique réel ou sur des simulateurs de la plateforme Classiq en cliquant sur un bouton.

Vous pouvez le vérifier par vous-même. L'inscription à la plateforme sur platform.classiq.io est actuellement totalement gratuite. Nous disposons d'une collection d'exemples de modèles cybernétiques que vous pouvez synthétiser et exécuter sur l'une des offres autorisées par Classiq. Vous pouvez accéder à la fois aux simulateurs quantiques et aux différentes plateformes matérielles. Vous n'avez pas besoin de réécrire le circuit pour des cibles matérielles spécifiques, car cela est pris en charge automatiquement.

Conclusion

La cybersécurité pose d'innombrables problèmes non triviaux susceptibles de ravager les réseaux informatiques et de provoquer des perturbations coûteuses ou dangereuses. Certains de ces problèmes peuvent être formulés mathématiquement et traités à l'aide d'outils informatiques.

La taille des réseaux informatiques modernes, dont nous dépendons dans notre vie quotidienne, peut être immense, ce qui rend la résolution de certains problèmes de calcul dans le domaine de la cybersécurité impossible avec des ressources informatiques normales.

Heureusement, il existe des outils de calcul quantique qui permettent de trouver des solutions, mais il serait peut-être plus pratique de générer des logiciels quantiques pour rechercher ces solutions.

La plateforme Classiq présente la meilleure et la plus simple façon d'appliquer des algorithmes quantiques de pointe à des problèmes du monde réel en utilisant les outils standard utilisés dans les problèmes d'optimisation, comme le langage PyOmo.

A propos de "The Qubit Guy's Podcast" (Le podcast du gars de Qubit)

Animé par The Qubit Guy (Yuval Boger, notre directeur marketing), le podcast accueille des leaders d'opinion de l'informatique quantique pour discuter de questions commerciales et techniques qui ont un impact sur l'écosystème de l'informatique quantique. Nos invités fournissent des informations intéressantes sur les logiciels et algorithmes d'ordinateurs quantiques, le matériel informatique quantique, les applications clés de l'informatique quantique, les études de marché de l'industrie quantique et bien plus encore.

Si vous souhaitez proposer un invité pour le podcast, veuillez nous contacter.

Voir aussi

Aucun élément trouvé.

Créez des logiciels quantiques sans contraintes

contactez-nous