Sécurité informatique : le dilemme de la défense fractale

Les fractales mathématiques ne sont-elles pas magnifiques ? Les ensembles de Mandelbrot et de Julia, le triangle de Sierpiński, l'éponge de Menger, le flocon de Koch (voir ici)… Basées sur des règles mathématiques simples, elles se développent rapidement en une mosaïque de facettes légèrement différentes les unes des autres. Plus vous vous en approchez, plus vous découvrez de nouvelles caractéristiques et des éléments semblables mais non identiques à l'image globale.

 

La sécurité informatique est analogue à ces fractales, mais en moins joli : simple au premier abord, mais de plus en plus complexe à mesure que vous vous intéressez aux détails. Plus vous creusez, plus la surface d'attaque grandit, et plus les possibilités offertes à des personnes mal intentionnées se multiplient, tel le flocon de Koch, dont le périmètre grandit exponentiellement à chaque étape.

Ainsi donc, la surface devant être défendue grandit, couche par couche, au fur et à mesure que l'on suit les bits et les bytes : cela commence au niveau des puces, des contrôleurs et des mémoires vives, où ils s'assemblent en données et instructions. Ces données, contrôlées par un système d'exploitation, s'échangent à travers des protocoles (des réseaux) et des interfaces pour donner naissance à des applications faciles à utiliser. Enfin, avec un clavier et une souris, l'être humain, ou « wetware », interagit avec ces applications pour donner naissance à plus de bits et de bytes.

Bien que ces abstractions rendent notre vie plus simple en occultant toute la complexité du matériel informatique et des langages utilisés, elles rajoutent à la zone de défense des méandres dans lesquels l’expert en sécurité informatique pourra patauger et se perdre. Plus vous évoluez « haut » dans ces abstractions, plus la défense devient difficile, et plus les possibilités d'attaque sont faciles.

Au cœur même du système, au niveau des processeurs ou de la mémoire vive, la complexité rend la détection d'attaques sophistiquées impossible. Des chercheurs de Google ont récemment trouvé comment manipuler les données stockées dans la mémoire vive en inversant un grand nombre de fois certains bits. Disséquer une puce ne permet même pas d’identifier les altérations physiques qui pourraient avoir été effectuées. Nous ne pouvons qu’espérer que personne n'ait implanté de matériel malveillant chez nous… (ou bien si ?).

Mais continuons notre ascension dans la complexité : tout le monde sait que tout logiciel contient des bugs. Les applications et les systèmes d'exploitation sont plus difficiles à défendre vu leur grand nombre de lignes de code. Une étude explique que, pour chaque millier de lignes de code écrites, en moyenne 10 à 20 défauts sont introduits (Steve McConnell, « Code Complete », 1993). Ainsi, des bugs sont découverts régulièrement, des vulnérabilités sont sans cesse publiées. Les logiciels « open source » sont peut-être une réponse à ce problème, mais qui peut examiner minutieusement des millions de lignes de code ? Comment s'assurer que les compilateurs, qui transforment le code lisible des logiciels en code machine, font bien ce qu'ils sont censés faire (comme le faisait remarquer Ken Thompson dans Reflections on Trusting Trust) ?

Les interfaces (API) et les protocoles, au niveau suivant, ne sont pas plus sûrs. Bien qu'ils soient souvent restreints et théoriquement définis, ils sont souvent énormes et présents absolument partout. Le protocole à la base d'internet, « IP », en est un parfait exemple. La version IPv4 avait ses faiblesses, mais un grand nombre d'entre elles étaient connues et des parades étaient en place. La version qui se répand de nos jours, IPv6, apporte peu en termes de sécurité, mais beaucoup en termes de vulnérabilités inconnues. Qui plus est, au fur et à mesure que le code est modifié pour s’adapter à cette nouvelle version, qui sait combien de nouveaux bugs sont introduits ?

Enfin, tout en haut de la chaîne, il est malheureusement souvent très efficace de s'attaquer directement à nous, utilisateurs, ou à nos appareils. Notre défense peut facilement être brisée, que ce soit par persuasion, tromperie ou même agression physique. Quelqu'un de mal intentionné et d’habile  pourra, en utilisant toute la gamme des sentiments et des relations humaines, vous faire faire pratiquement ce qu'il voudra pour pouvoir contourner les mesures de sécurité : on est là dans le domaine de la manipulation. Et si le malfaiteur arrive à voler ou à avoir en main ces appareils que nous utilisons de nos jours - ordinateurs portables, téléphones intelligents, tablettes… - la défense a évidemment perdu.

Vous voilà désormais initiés au problème de la défense fractale. Nous avons besoin de vous pour protéger le CERN. Nous devrions au moins arriver à assurer nos bases :

  • Protégez votre ordinateur : tout ordinateur non protégé est susceptible d’être infecté en quelques minutes seulement. Gardez votre système à jour, utilisez un anti-virus (fourni gratuitement par le CERN), n'installez pas de logiciel dans lequel vous n’avez pas entièrement confiance, et verrouillez votre écran avec un mot de passe lorsque vous quittez votre bureau.
 
  • Soyez prudents avec les courriels que vous recevez et les sites web que vous visitez : des personnes mal intentionnées peuvent essayer de vous tromper. Prenez le temps de réfléchir avant de cliquer : n'ouvrez pas de courriels (ni leurs fichiers joints) non attendus ou suspects, n'installez pas de « plugin » ne venant pas de sources sûres.
 
  • Protégez votre mot de passe : l'exposer peut entraîner une utilisation abusive de votre compte informatique. C'est pourquoi vous ne devez le partager avec personne. Un bon mot de passe doit être difficile à deviner et absent de tout dictionnaire. Changez-en régulièrement, car il pourrait avoir été exposé à votre insu.
 
  • Protégez vos données : restreignez l'accès à vos documents et dossiers en suivant le principe du privilège minimal - assurez-vous que seules les personnes ayant besoin d'accéder à vos fichiers et à vos données le peuvent.


Enfin, faites une petite place dans votre vie quotidienne pour la sécurité informatique, ici au CERN, mais aussi chez vous. Essayez de rendre automatiques les gestes d'hygiène informatique qui s’imposent à chaque fois que vous touchez à un clavier, à une souris ou à un écran tactile. Souvenez-vous que dans le milieu académique libre qu’est le CERN, la sécurité informatique vous est déléguée. Vous êtes, en première instance, responsables de la sécurité informatique des ordinateurs portables, téléphones et autres machines que vous utilisez, des comptes et mots de passe que vous possédez, des fichiers et documents que vous détenez, des programmes et applications que vous avez installés ou, tout particulièrement, que vous avez écrits, et des services et systèmes informatiques dont vous assurez la maintenance. Vous pouvez vous faire aider dans cette responsabilité par le département informatique, qui peut vous fournir une multitude de services informatiques sécurisés.


N'hésitez pas à contacter l'équipe de sécurité informatique
ou à consulter notre site web.

Si vous voulez en savoir plus sur les incidents et les problèmes de sécurité informatique rencontrés au CERN, consultez notre rapport mensuel (en anglais).


Accédez à la collection complète d'articles de l'équipe de sécurité informatique ici.

par Stefan Lueders, Computer Security Team