Share:

Javier Merchan revient sur un projet récent et sur la manière dont lui et son équipe ont utilisé la technologie sans serveur pour créer une solution de sécurité plus efficace et plus rentable pour un client.

Il n’y a pas longtemps, je travaillais sur un rapport d’activité assez routinier, résumant les six derniers mois de mon projet. Après, alors que je réfléchissais à l’ensemble des changements survenus au cours de cette période, j’ai eu l’idée de rédiger un article pour mon blog.

En apparence, cette activité semblait un peu banale : je devais passer en revue toutes nos factures AWS afin de recenser les services et la main-d’œuvre et de faire correspondre les coûts à la feuille de route ainsi qu’au budget de mon projet. Plutôt monotone pour être honnête, mais cela m’a aidé à réaliser l’ampleur de l’impact de l’adoption du sans serveur sur notre infrastructure de sécurité.

J’ai remarqué que si nous dépensons beaucoup moins en matière de sécurité, nous avons mis en place une protection plus solide contre les cybercriminels. De plus, nous avons moins de ressources inutilisées, moins de personnes chargées de la maintenance et, surtout, nous utilisons des outils plus intéressants.

Avant et après

Il y a six mois, l’infrastructure de sécurité de mon projet était largement basée sur des serveurs : la détection des menaces était principalement effectuée sur des instances EC2 avec des outils de sécurité installés, fonctionnant en continu (car les intrus et les robots ne dorment pas la nuit).

Autrefois, tous ces serveurs nécessitaient des tâches de maintenance et parfois même une identification et une remédiation rapides après que des systèmes d’exploitation ou des applications obsolètes ou non corrigés aient exposé des vulnérabilités potentielles.

Aujourd’hui, mon projet passe par le sans serveur. Il a fallu du temps pour y arriver, mais mon équipe commence à l’apprécier : moins de gestion d’infrastructure et moins de maintenance. Plus besoin de se précipiter pour faire des patchs et plus d’interventions nocturnes.

Services sans serveur

« Il y a toujours serveur dans sans serveur », comme le disent parfois certains ingénieurs chevronnés. Ils ont tout à fait raison, mais je préfère penser que maintenant AWS gère tous ces serveurs en mon nom. À moyen terme, si l’on compare les chiffres d’il y a plusieurs mois, les chiffres de disponibilité sont meilleurs sur le sans serveur.

Mon équipe a remplacé certains outils basés sur le serveur par leurs homologues sans serveur. Par exemple, GuardDuty est désormais le principal outil de détection des menaces de mon projet. Moins connu, il peut avoir besoin d’une introduction. GuardDuty est un service géré qui surveille tous les appels d’API sur vos comptes ainsi que les journaux de flux. Il génère des alertes en cas de détection d’une activité anormale : attaques par force brute, sondage de ports, minage de bitcoins, utilisation abusive de l’IAM, etc. En outre, il utilise l’IA pour réduire les temps de réaction et détecter les nouvelles attaques, de plus en plus sophistiquées.

GuardDuty a directement fourni de bons résultats, alors l’étape suivante était d’essayer Macie. Ce service géré recherche des informations personnelles identifiables indiscrètes laissées sur les buckets S3 et est très efficace à ce niveau. Le service est alimenté par l’IA et il est particulièrement utile pour les évaluations et les audits de conformité au RGPD.

Juste sans serveur

Au lieu de traiter manuellement les résultats de GuardDuty, mon équipe s’appuie sur des mesures correctives automatisées. Ces mesures correctives sont adaptées aux différents types de menaces et agissent sur place, ce qui réduit la surface d’attaque. Ce n’est possible qu’en utilisant Lambda et son grand frère : Step Functions.

Dans ce cas, le sans serveur nous permet d’augmenter automatiquement la puissance de calcul lorsque c’est nécessaire, réduisant ainsi le coût total de possession. Plus intéressant encore, nous profitons de sa nature asynchrone en faisant tourner un grand nombre de remédiations simultanées en cas d’attaques prolongées ou distribuées.

Ce que je préfère dans le sans serveur, c’est qu’il me réconcilie avec mes antécédents d’informaticien : il est faiblement couplé (chaque fonction Lambda fait, en moyenne, environ 30 lignes) et le code est fréquemment réutilisé (mêmes Lambdas pour plusieurs types de résultats différents, couches Lambda pour notre code couramment utilisé).

Entièrement sans serveur

Dans ce projet, les services gérés ont bien fonctionné jusqu’à présent avec le Functions-As-Code. Maintenant, je voudrais vous présenter un outil 100 % sans serveur.

Cloud Custodian (c7n pour les initiés) est un outil de mise en conformité sans serveur open-source. Il déploie des Lambdas contenant toutes les bibliothèques nécessaires dans les comptes AWS cibles et travaille main dans la main avec CloudWatch pour une exécution planifiée.

Un développeur de systèmes Cloud doit seulement créer des descriptions YAML (politiques dans le jargon c7n) en utilisant le DSL propre à Custodian pour les règles de conformité afin que c7n puisse les vérifier automatiquement. De cette manière, les ressources peuvent être vérifiées en permanence pour s’assurer de leur conformité, ce qui minimise le risque de failles de sécurité potentielles.

En cas de détection de ressources non conformes, c7n peut invoquer des fonctions Lambda pour automatiser la notification, l’archivage, la remédiation ou l’intégration avec d’autres outils et services.

Nous pouvons même réutiliser les fonctions Lambda des remédiations de GuardDuty pour automatiser l’application de la conformité sur les résultats de Custodian. Nous pouvons ainsi bénéficier d’une double protection sans frais supplémentaires.

Je suis vraiment impressionné par cet outil, car il peut fonctionner en utilisant exclusivement des actifs sans serveur. Je pense que ce modèle architectural peut être utilisé pour de nombreux types d’applications différentes, et pas seulement pour la sécurité et la conformité.

Conclusion

Envisagez de passer à la sécurité sans serveur : de nombreuses fonctionnalités, des améliorations quasi-quotidiennes et des économies de coûts, que demander de plus ?