Notes et transcriptions du cours “Défis et enjeux de la cybersécurité” proposé par l' UBS1) sur la plateforme FUN MOOC.
Pour parler de la sécurité de l’information, il faudra parler d’abord de ce qu’est la vulnérabilité, car elle est la source des attaques, et de ce qui va nuire à l’information.
Il existe un institut aux États-Unis, responsable de la standardisation et de la promotion de technologies, qui a construit une base de données concernant les vulnérabilités. En regardant l’historique de cette construction, en septembre 2012, ils avaient classifié plus de 52 000 vulnérabilités, en août 2015, plus de 71 000, en début 2016, il y a eu plus de 74 000 vulnérabilités classifiées et entre janvier et avril 2016, on voit que presque 2 000 vulnérabilités ont été rajoutées.
Ainsi, on voit bien que la surface d’attaque est de plus en plus grande. Pourquoi on parle de surface d’attaque ? Car plus il y a de vulnérabilités possibles, plus il y a des possibilités d’attaques, ce qui se traduit par une surface d’attaque de plus en plus grande.
Ainsi, le nombre de vulnérabilités augmente chaque année et l’augmentation des vulnérabilités est accompagnée de l’augmentation des attaques. En effet, puisque la surface d’attaque augmente, il y a plus de possibilités d’attaques, il est très probable que cela attire les attaquants, ce qui fait augmenter leur nombre. De plus, nous avons vu qu’il y a derrière des organisations mafieuses qui profitent de la situation et qui emploient des personnes pour pouvoir réaliser ces attaques.
Alors sécuriser ce qu’on appelle le réseau périphérique, ce qui est fait le plus souvent en termes de sécurité, n’est pas suffisant. Pour preuve, les attaques sont toujours de plus en plus nombreuses et on trouve de plus en plus de vulnérabilités.
Ainsi, si on veut vraiment résoudre le problème, il faudra aller plus loin dans la sécurisation. Aller plus loin c’est aller à la source du problème. La source du problème, en réalité, c’est la qualité du logiciel.
Pendant longtemps, l’industrie du logiciel appliquait le principe de time to market, c’est à dire dès qu’on a un concept on essaye de l’industrialiser le plus vite possible. Ainsi, il y a eu beaucoup d’efforts de recherche, et même d’industrialisation, sur comment accélérer les étapes de production du logiciel. Beaucoup d’effort a été réalisés pour l’étape de maintenance, car c’est ce qui coûte le plus cher dans un logiciel. En effet, la maintenance est estimée à plus de 80% du coût global, tout au long de la vie d’un logiciel. La sécurité a été pendant très longtemps, trop longtemps, le maillon faible de cette stratégie.
Quand on parle de la sécurité de l’information, il faut comprendre quelles sont les propriétés qui régissent ce type de sécurité. On va parler des trois plus importantes :
Ces propriétés, en réalité, ne sont pas indépendantes les unes des autres. On ne va pas dire : « ok je veux avoir un système complètement sécurisé, donc, il faut augmenter les trois propriétés en même temps ».
Malheureusement ce n’est pas aussi facile que ça, parce que chaque propriété est liée aux autres. Par exemple, si on considère la confidentialité et la disponibilité, en augmentant la disponibilité, forcément on va nuire à la confidentialité puisque l’information risque d’être moins confidentielle (moins cachée aux autres).
Si on augmente la confidentialité, très probablement on va diminuer la disponibilité de l’information. C’est pareil avec l’intégrité, si on augmente la disponibilité il y a risque de perte d’intégrité vis-à-vis de l’information, parce qu’elle est disponible, donc accessible et potentiellement, elle peut être modifiée de manière non conforme à ses propriétés. Donc, tout l’exercice consiste à réaliser un équilibre, entre ces trois propriétés de sécurité, à chaque fois que nous avons besoin de spécifier la sécurité d’un système d’information.
Revenons à la notion de vulnérabilité. Nous pouvons dire qu’il y a vulnérabilité, lorsqu’une des propriétés spécifiées de sécurité est brisée. Le plus souvent, la vulnérabilité est découverte, d’abord, par les attaquants. Elle devient publique, parfois grâce aux médias, avant même que le vendeur de la solution informatique ne soit au courant. À ce moment-là, ce dernier met en place les correctifs pour corriger la vulnérabilité à travers un patch. Ce dernier correspond à un ensemble logiciel qui vient corriger, chez tous les clients, la vulnérabilité. En effet, dès que les clients ont accès au patch, ils vont l’appliquer pour corriger la vulnérabilité.
Mais, la vulnérabilité ne va pas disparaître du paysage, parce que beaucoup de clients n’appliquent pas le patch, beaucoup de clients ne peuvent pas l’appliquer parce qu’ils n’ont pas forcément le logiciel de manière complètement légale, etc. Tout cela fait qu’on se retrouve avec trop de vulnérabilités, donc, beaucoup trop d’attaquants, et les personnes qui sont responsables de la sécurité des systèmes d’information se retrouvent devant une charge énorme de travail. De plus, l’augmentation excessive de la charge de travail est aussi une source de vulnérabilités, car on peut passer à côté de certaines choses importantes.
En bref, les menaces cybernétiques sont de plus en plus développées, c’est à dire il y a un développement continu et ça augmente de plus en plus à travers le monde. Actuellement, l’avantage est aux attaquants.
En effet, la défense passe son temps à courir après les attaquants, qui n’ont que ça à faire sur une surface d’attaque trop grande. Les attaquants ont, le plus souvent, plus d’expertises dans les attaques que les défenseurs, tout simplement parce que ces derniers ont, en plus, la charge de concevoir et faire fonctionner les systèmes.
Par ailleurs, les technologies sont de plus en plus complexes et pas forcément très agiles pour pouvoir corriger rapidement les erreurs se trouvant dans les systèmes.
De plus, la complexité des systèmes actuels rend difficile d’éviter des erreurs, il faudra donc changer de stratégie.
Il existe des travaux de recherche dont l’objectif est, justement, d’inverser cette tendance et donner l’avantage aux défenseurs par rapport aux attaquants. Pour le moment, le changement de stratégie consiste déjà à dire : la situation elle est comme elle est, les intrusions il y en aura, alors je mets en place un contrôle permanent pour pouvoir les détecter le plus tôt possible afin d’éviter les dégâts. Cela implique une réflexion en amont sur une stratégie pour minimiser les risques. Donc, comment rendre mon système résiliant.
De plus, il faudra prévoir, à chaque fois que cela est possible, de corriger la vulnérabilité au niveau du code, c’est à dire à la source même. En effet, plusieurs de vulnérabilités d’un même système peuvent avoir comme origine la même partie du code. En d’autres termes, une erreur, ou faiblesse, dans le code peut ouvrir différentes possibilités d’attaques.
Enfin, la stratégie de partage de connaissances, comme le fait le NIST (National Institute of Standards and Technology), qui a créé une base de données pour les vulnérabilités, permet aux autres défenseurs de savoir quelles sont les vulnérabilités et comment les éviter.