Comment les architectures cloud se protègent-elles contre la vague de cyberattaques ?

A mesure que nous nous dirigeons vers un monde post pandémique, de plus en plus d'entreprises investissent dans le renforcement de leur cyber résilience. En effet, l'année 2020 a été marquée par un nombre record d'attaques par déni de service distribué (DDoS) et de ransomwares. Des chiffres qui devraient continuer de croitre jusqu'à la fin de la décennie.

Le cloud et les architectures natives du cloud peuvent contribuer à la résilience grâce à trois attributs clés. Premièrement, les applications et services distribués : si les applications tirent parti d'un modèle de distribution, par exemple des services basés sur le cloud tels que les réseaux de diffusion de contenu (CDN), les entreprises sont moins exposées aux attaques DDoS. En effet, ces attaques fonctionnent mieux lorsqu’elles concentrent leur puissance dans une seule direction. Dans un second temps, lorsque les applications utilisent des solutions qui ne modifient pas les enregistrements, mais qui les ajoutent à l'écriture, cela rend l'ensemble des données immuable. De fait, les organisations ont moins à se soucier des attaques visant l’intégralité de ces données car il est alors plus facile de les détecter et de les remonter. On retrouve pour finir les charges de travail éphémères. Pour les entreprises ayant recours à des applications éphémères par nature, il n’y a plus de risque que les attaquants établissent une résistance et se déplacent latéralement. De plus, la valeur des informations confidentielles est réduite, car ces actifs sont simplement mis hors service et de nouveaux sont instanciés dans un laps de temps réduit.

En exploitant les architectures cloud native modernes qui sont distribuées, immuables et éphémères, les entreprises peuvent venir à bout des problèmes de confidentialité, d'intégrité et de disponibilité qui sont à la base de la trilogie de la cybersécurité. Comment les organisations mettent-elles ces attributs en évidence dans leurs applications ? Les architectures cloud modernes passent de modèles monolithiques à plusieurs niveaux à des architectures distribuées basées sur des microservices, où chacun peut évoluer indépendamment, dans une région géographique ou entre régions. Par ailleurs, chaque microservice dispose de son propre stockage et de sa propre base de données optimisés pour fonctionner sans état (ou, plus précisément, en utilisant un modèle d'état partagé dans lequel ce dernier est partagé entre les instances en cours d'exécution via la couche de stockage/base de données). Ainsi, ces services peuvent devenir véritablement éphémères et distribués.

Le concept « Pets vs. Cattle »

On en arrive à un concept qui a déjà fait l'objet de nombreuses discussions dans le domaine du cloud computing : Pets vs. Cattle. D'un côté les animaux domestiques (pets) ont de beaux prénoms et peuvent être reconnus individuellement. Lorsqu'ils tombent malades, leurs propriétaires les emmènent chez le vétérinaire. Les propriétaires s'occupent de leurs animaux toute leur vie et veillent à ce qu'ils vivent en bonne santé le plus longtemps possible. On peut comparer les applications traditionnelles à des animaux de compagnie. Chaque instance est unique. Si l'application est infectée, elle est emmenée chez le cyber-vétérinaire. Mettre en place une procédure de correctif est courant avec les applications traditionnelles, ce qui rend ces instances uniques. Le travail des équipes IT consiste à maintenir les applications en état de marche le plus longtemps possible.

De l'autre côté, le bétail (cattle) quant à lui n'a pas de nom, mais il est identifié par des numéros. En général, il n'est pas possible de distinguer les bovins d'un troupeau et il n'est pas possible de nouer des relations avec ces derniers. En cas de maladie ou d'infection, c'est tout le troupeau qu'il faut abattre. Les applications modernes sont comme le bétail. Les services sont créés sous forme d'un grand nombre d'instances en cours d'exécution, et chacune est indiscernable des autres.  On ne fait jamais de correctifs sur place, c'est-à-dire qu'on ne personnalise jamais les instances. Il incombe aux équipes IT de rendre les instances éphémères, en les détruisant rapidement pour en créer de nouvelles. Ce faisant, ils construisent des systèmes résilients et non des systèmes fragiles.

Les avantages du cloud computing

Le cloud offre de nombreux outils permettant de construire des systèmes qui suivent ce paradigme. Par exemple, Amazon a annoncé en fin d'année dernière une "ingénierie du chaos" as-a-service, qui permet aux organisations d'introduire des éléments perturbateurs dans leurs charges de travail de production, comme l'arrêt d'instances en cours d'exécution. Ceci garantit que les performances globales ne sont pas affectées et que les charges de travail deviennent, au fil du temps, résilientes face à ce type de perturbations opérationnelles.

Arriver à ce stade constitue un long voyage et les entreprises doivent adopter plusieurs mesures pour y parvenir. Par exemple, faire passer ses applications physiques au cloud sans modifier de manière significative l'architecture des applications, n'est qu'une étape. Le terme courant pour désigner cette opération est "lift and shift". Une fois que ces applications sont dans le cloud et que les entreprises ont commencé à se familiariser avec les outils cloud native, elles peuvent s'atteler à la réarchitecture de ces applications dans des architectures modernes, distribuées, immuables et éphémères. En d'autres termes, elles peuvent passer du statut d'animaux domestiques au sein du cloud à celui de bétail dans le cloud. Une fois arrivé à ce stade, les organisations doivent veiller à ne pas faire marche arrière et éviter de mettre en place des correctifs ou de maintenir des instances en fonctionnement plus longtemps que nécessaire.