Quel horrible weekend ! J’ai très mal dormi. Je n’ai pas arrêté de me retourner dans mon lit, en sueur, et de me réveiller pendant la nuit. J’ai fait des cauchemars sur le centre de données.
Vous savez, la sécurité informatique suit des principes très clairs. Selon le premier principe, « Defence-in-depth » (« défense en profondeur »), des contrôles de sécurité doivent être effectués à chaque niveau de la pile logicielle et matérielle : gestion des vulnérabilités et mises à jours agiles et régulières ; développement sécurisé et professionnel de logiciels ; nomenclatures logicielles (Software Bill of Materials – SBOM) ; plans éprouvés de continuité des activités et de reprise après sinistre ; détection des connexions et des intrusions ; contrôle des accès ; segmentation réseau et parcellisation ; pare-feu et mise en quarantaine de courriels ; diodes de données ; bastions ; passerelles et serveurs proxy. Selon le deuxième principe, « KISS » ─ « Keep it simple, stupid » (« ne vous compliquez pas la vie »), il faut éviter toute complexité inutile et rester proche des « standards ».
Mais plus rien n’est simple. Le temps où le secteur des accélérateurs, les expériences de physique et le département IT pouvaient utiliser des fermes de PC pour faire leurs calculs est révolu. Il s’agissait des mêmes PC que l’on trouvait dans les bureaux. Au niveau de la sécurité, les PC de l’époque étaient faciles à protéger : une carte mère et son « BIOS » (système d’exploitation) et votre application préférée. Rien de plus facile que de sécuriser ces trois couches. Auparavant, nous avions des centres de calcul séparés. Aujourd’hui, cela reviendrait trop cher car les besoins combinés du secteur des accélérateurs, des expériences, du département IT et de la communauté des utilisateurs sont devenus trop importants.
Revers de la médaille, un centre de données moderne est complexe. Il est composé de cinq couches au lieu de trois : la carte mère (utilisant un véritable système d’exploitation), un hyperviseur, une ou plusieurs machines virtuelles exploitant les nombreux processeurs de la carte mère, les conteneurs et, enfin, votre application favorite qui est exécutée dans ceux-ci. Et comme tout devient virtuel, le même matériel informatique doit pouvoir exécuter une multitude d’autres applications en parallèle. Cette capacité à être « élastique » et « agile » permet d’assurer la répartition des charges, la continuité des activités et la reprise après sinistre. Un centre de données moderne doit également adapter l’infrastructure pour l’analyse des mégadonnées, pour l’apprentissage automatique et, cela ne saurait tarder, pour ChatGPT. Il fournit les ressources en nuages publics, privés ou hybrides ainsi que les processeurs graphiques. À terme, il permettra d’implémenter l’informatique quantique. En allemand, nous utiliserions l’expression suivante pour le décrire : « eine eierlegende Wollmilchsau »*. Nous en arrivons au troisième principe de la sécurité informatique : « all convenient and damn cheap » ou « AC/DC » (« pratique et bon marché »). En effet, personne ne fera passer la sécurité avant l’aspect pratique ou le rapport qualité-prix. « AC/DC » complique tout et pose des défis de sécurité considérables. C’est mon pire cauchemar. Mais mettons-nous à rêver maintenant.
Des rêves de réseaux séparés
Récapitulons : un réseau pour le matériel et son BIOS, maintenant appelé IPMI ou BMC (un système d’exploitation à part entière) ; un réseau pour le provisionnement des machines virtuelles et des conteneurs ; un réseau pour l’intranet du CERN (le réseau du campus du CERN) ; plusieurs réseaux pour gérer les accélérateurs, les infrastructures et les expériences. Il faudrait que ces réseaux soient physiquement séparés les uns des autres pour pouvoir garantir la « sécurité ». En effet, la mise en commun de matériel informatique (routeurs, commutateurs), par exemple pour tisser les réseaux VLAN, pourrait présenter des failles exploitables par les cyberpirates pour passer d’un réseau à un autre. Je commence à m’agiter dans mon lit.
En outre, il faut gérer le réseau : DHCP, DNS, NTP. Dans l’idéal, il faudrait un système par réseau. Malheureusement, ces systèmes doivent être synchronisés entre eux. Il est donc nécessaire de connecter les réseaux ou d’avoir un unique système central. Un système qui les gouverne tous. Un système qui peut faillir. Les pensées se bousculent dans mon esprit.
Pourtant, ce n’est pas forcément la source du problème. L’utilisation d’hyperviseurs crée déjà des ponts entre les réseaux, à moins d’avoir un hyperviseur par tâche (ce qui entrerait en contradiction avec le troisième principe : ce n’est ni élastique, ni pratique, ni bon marché). Hélas, il existe plusieurs exemples de cas où les vulnérabilités des hyperviseurs se sont propagées, sautant d’une machine virtuelle à l’autre et interconnectant les réseaux : « Spectre », « Meltdown » et « Foreshadow » (toutes les trois découvertes en 2018) ; « Fallout » (2019) ; « Hetzbleed » (2022) ; « Downfall » (2022) ; et « Inception » (2023). Je sue à grosses gouttes.
Mais il y a pire encore. Notre matériel, notre centre de calcul, est censé être à notre service. Quelquefois, il est au service de plusieurs clients : le secteur des accélérateurs et les expériences et, en même temps, le réseau du campus du CERN ; ou pire encore, le réseau du campus et l’internet à la fois : un serveur, un service ou une application (par exemple un registre en ligne) est alors visible depuis la salle de contrôle de l’accélérateur, depuis les expériences, depuis le réseau du campus et depuis le monde entier, à la merci des rançongiciels. Je me réveille brutalement.
Des hallucinations : une gestion et un provisionnement contrôlés
Oublions à présent toutes ces complications. Je me rendors. Cette fois-ci, je rêve de la gestion du centre de données. Dans l’idéal, les administrateurs ont une première console pour le réseau IPMI/BMC et une deuxième pour le provisionnement, voire une troisième, si l’on prend en compte celle qui gère le réseau du campus. Mais qui souhaite avoir autant de consoles sur son bureau ? Personne, si l’on suit le troisième principe. Une fois de plus, on relie les réseaux entre eux. Une unique console (un ordinateur de bureau), idéalement accessible en ligne pour la télémaintenance, gère tous ces réseaux. Et a-t-on pensé aux risques associés ? Je m’agite à nouveau.
Nous n’avons même pas abordé le sujet du provisionnement, c’est-à-dire l’utilisation des outils informatiques Puppet et Ansible pour « orchestrer » le centre de données en « poussant » les machines virtuelles et les conteneurs hors des systèmes de stockage et des bases de données et en les déployant dans l’hyperviseur. Il s’avère que cette orchestration ainsi que les systèmes de stockage et les bases de données doivent également être accessibles à la communauté des utilisateurs étant donné que le CERN autorise la communauté à développer ses propres services, machines virtuelles et conteneurs. Le réseau de provisionnement se retrouve donc une fois de plus connecté à l’Intranet. Je suis en nage.
La transe des nuages
La configuration décrite ci-dessus, avec toutes ses complications, peut être considérée comme un « nuage privé ». Seulement, les personnes modernes ne s’arrêtent pas là. Elles utilisent des nuages publics, connectant notre centre de données à Amazon, Google, Microsoft ou encore Oracle. À notre grand désespoir, des ponts sont créés entre nos réseaux et les leurs via l’internet. En parallèle, ces personnes utilisent d’autres ressources en ligne : machines virtuelles publiques, conteneurs courants à disposition, bibliothèques de logiciels et progiciels partagés en open source. L’internet regorge de toutes sortes de choses utiles, mais aussi de choses nuisibles, par exemple des machines virtuelles compromises, des conteneurs malveillants ou des logiciels vulnérables. Celles-ci se retrouvent directement canalisées dans notre centre de données, sans filtre ni rien. J’ai de nouveau les yeux grands ouverts.
Des cauchemars sur le centre de données
Voilà. Je fais des cauchemars sur le centre de données. La sécurité des centres de données est menacée par des vulnérabilités courantes au niveau du matériel et par des services de base à cheval sur plusieurs réseaux (DNS, SSO/LDAP, orchestration, stockage, bases de données, etc.). Une cacophonie toujours plus assourdissante de dépendances, d’agilité, d’hétérogénéité et de complexité bafoue le second principe. On passe de « KISS » (« ne vous compliquez pas la vie ») à « AC/DC » (« pratique et bon marché »), sans mentionner notre dépendance toujours plus forte aux services de nuage externes et aux importations de logiciels. Si vous avez des idées lumineuses (autres que des somnifères, par pitié), n’hésitez pas à nous les envoyer à l’adresse Computer.Security@cern.ch.
_____
Pour en savoir plus sur les incidents et les problèmes en matière de sécurité informatique au CERN, lisez notre rapport mensuel (en anglais). Si vous souhaitez avoir plus d’informations, poser des questions ou obtenir de l’aide, visitez notre site ou contactez-nous à l’adresse Computer.Security@cern.ch.