Il suffit d’observer les entreprises pour comprendre que le monde a définitivement changé. Aujourd’hui, même les plus « vieille école » d’entre elles, ces entreprises qui opèrent sur des marchés très traditionnels, sont devenues dépendantes de leurs applications pour fonctionner au quotidien.
D’ailleurs, même les plus conservatrices d’entre elles dépendent de vraiment beaucoup d’applications au quotidien. Et cela peut conduire à un niveau de complexité stupéfiant. Inutile de se demander pourquoi nous constatons encore autant de brèches aujourd’hui alors même que nos processus et technologies de sécurité sont de plus en plus performants : c’est précisément cette complexité, difficile à gérer au quotidien, qui en est la cause.
C’est qu’en définitive les applications sont devenues l’infrastructure même de l’Internet. Elles sont dans tout, des téléphones aux thermostats, en passant par les voitures et les réseaux électriques. Et pour chaque transformation numérique rendue possible par les applications, l’application elle-même est une cible de choix, avec la logique métier qu’elle supporte et toutes les données qu’elle traite.
D’une part, une application n’est plus juste une application ! Il s’agit en réalité d’un écosystème particulièrement riche qui dépend d’un nombre significatif de composants : un proxy, un serveur d’application, un serveur web, un contrôleur d’entrée pour les conteneurs. Et l’on pourrait jeter un œil à l’intérieur des conteneurs, on trouverait encore des applications, qui elles-mêmes s’appuient sur des kits de développement SDK (encore du logiciel), qui eux-mêmes intègrent des bibliothèques logicielles (encore du code), et ainsi de suite… Ces liens d’interdépendance sont complexes et quasiment sans fin.
En outre, la façon dont ces applications sont construites évolue constamment. En plus de la cadence rapide imposée par le passage à un mode dit « Agile » et à la pratique du DevOps, il y a toujours de nouvelles API, de nouveaux langages et de nouveaux dispositifs qui entrent en scène. A chaque nouvelle technologie, les équipes de développement doivent intégrer de nouveaux concepts, de nouvelles bonnes pratiques, et sont susceptibles, durant cette phase de découverte, d’introduire des vulnérabilités.
Et sans même parler des nouveautés, la facilité d’accès de certains langages bien connus tel PHP ou ses différents frameworks de développement, a contribué à son extrême popularité… mais aussi au développement de sites et d’applications web par des amateurs séduits par la rapidité avec laquelle ils pouvaient mettre quelque chose en ligne… hélas de manière très vulnérable…
Et puis il y a la logique métier sous-jacente. Jusqu’à la révolution informatique et Internet, les métiers travaillaient de façon manuelle et hors ligne. Des fonctions comme les RH et les finances tenaient des dossiers et contrôlaient leurs processus dans des documents papier et des feuilles de calcul stockés dans des classeurs physiques. Aujourd’hui, avec les applications d’entreprise en mode SaaS, à l’image de Workday (RH) ou Salesforce (vente), ces documents et ces classeurs sont accessibles en ligne depuis n’importe où dans le monde, et ces processus sont vulnérables à la manipulation.
Nous avons tout autour de nous des exemples de processus métier qui basculent vers le numérique. Par exemple, en plus de permettre à des amis de garder le contact, Facebook est aussi une application de marketing direct. Il permet notamment aux entreprises et autres organisations d’atteindre instantanément des milliers de personnes. La « logique d’entreprise » qu’il remplace impliquait autrefois un effort physique important : publipostage, porte-à-porte, publicité...
Mais toute numérisation d’une logique métier crée aussi de nouvelles opportunités pour exploiter le système d’une manière que personne n’aurait pu imaginer. Si une entité malveillante obtenait par exemple les profils détaillés d’utilisateurs de Facebook, puis utilisait cette information à mauvais escient pour tenter de les influencer... eh bien, nous avons vu ce qui pourrait arriver !
Les réseaux sociaux ne sont qu’un exemple parmi tant d’autres, et ils ne font qu’effleurer les différents types d’abus que nous verrons probablement fleurir dans les années à venir, à mesure que s’accélère notre transition vers un monde numérique. Il y aura des failles dans la numérisation des processus métier, qui les laisseront ouverts à l’exploitation et aux abus. Et il sera impossible pour les concepteurs de ces outils ou de ces processus, qui demeurent humains, d’anticiper toutes les formes de détournement que les criminels les plus créatifs pourront découvrir.
Quels types d’exploits pourrait-il par exemple y avoir pour les RH-as-a-service ? Comment manipuler les intelligences artificielles pour les conduire à prendre de mauvaises décisions ? Comment le piratage d’un système de contrôle industriel pourrait-il perturber un processus de fabrication ?
Bref, en plus de comprendre les vulnérabilités techniques au cœur du code informatique, les professionnels de la sécurité doivent dès à présent se poser ce genre de questions !
Y aura-t-il donc d’autres atteintes de masse à la vie privée ? Probablement, mais pas parce que l’industrie de la sécurité n’est pas au niveau. Ce sera parce que les menaces qui pèsent sur les applications sont devenues beaucoup plus fortes au fur et à mesure que ces dernières prennent de l’importance au sein des entreprises, et la surface d’attaque beaucoup plus large. La sophistication, la créativité et le dévouement croissants des acteurs malveillants s’oppose en permanence à l’expertise des professionnels de la sécurité.
Mais cela ne signifie évidemment pas qu’il faut éviter toute démarche de transformation numérique ! Car le numérique est bel et bien une incroyable opportunité de création de valeur pour les entreprises. Une valeur qui, dès à présent, se trouve pour beaucoup dans le portefeuille d’applications déjà présentes ! Il est donc trop tard pour faire machine arrière, le génie est sorti de la bouteille et de toute manière il serait dommage de se priver de ses bénéfices.
Il est important, en revanche, d’apprendre à le contrôler. Pour les entreprises engagées dans un processus de transformation numérique, il est ainsi vital de bien comprendre que l’ère des applications isolées est terminée. Aujourd’hui, le développement d’une nouvelle application ou d’un nouveau service doit prendre des exigences de sécurité beaucoup plus larges que son propre code. Il faut désormais prendre en compte la manière dont toute nouvelle logique commerciale ou métier qui bascule dans le numérique pourrait être manipulée par un acteur malveillant, interne ou externe. Et il faut être en mesure de le faire rapidement : dans les environnements DevSecOps d’aujourd’hui, il est inconcevable d’attendre des semaines ou des mois pour modéliser des menaces.
Tout ceci prône donc pour un changement radical et résolument moderne de la manière dont sont conçues, développées et supportées les applications modernes, en intégrant la sécurité au plus tôt des réflexions et en automatisant au maximum les tâches techniques.