Comment améliorer la sécurité des microservices ?

ameliorez la sécurité des microservices

Comment améliorer la sécurité des Microservices ?

A l’origine les services et applications étaient monolithiques. Ils devaient gérer la base de données, l’authentification des utilisateurs ou encore permettre l’accès aux objets.

Le principal problème de cette architecture était la centralisation de tous les besoins et leur limitation par l’utilisation d’une seule technologie dans leurs mises en œuvre. Les applications ou services devenaient également très complexes au fur et à mesure de l’ajout de fonctionnalités.

sécurité des microservicesAujourd’hui, les microservices fonctionnent suivant la culture Linux. Chaque entité est dédiée à une fonction, elle est spécialisée dans cette tâche, elle n’exécute que celle-ci et elle doit la faire parfaitement.

Un microservice c’est donc un composant avec une fonctionnalité exécutée par un processus qui utilise les technologies adéquates : langage (C++, java, Ruby…), Framework, …

On utilise des images pour compartimenter chaque entité en différents niveaux. Chaque niveau est restreint en fonction de l’identification et des niveaux d’autorisation des modules.
microservices segmentes

 

La sécurité des microservices

Les microservices sont des fonctions élémentaires qui s’appellent les unes les autres au travers du réseau via des API. Chacun d’eux peut être isolé au sein de ce réseau, ils n’ont donc pas l’obligation d’être dans le même sous-réseau. Comme tous les microservices communiquent entre eux, il faut que ces communications soient sécurisées, que les requêtes soient authentifiées et autorisées. Chaque brique est séparée des autres. Des restrictions doivent être mises en place entre les services et les utilisateurs. Chaque opération est enregistrée pour assurer la traçabilité.
Ces actions correctement suivies, il est donc très facile d’obtenir les réponses à ces questions : Qui, quoi (action et objet) et quand ?
architecture microservices

 

La sécurité du Framework

L’environnement dans lequel le micro-service sera exécuté doit être sécurisé.

  • Il faut appliquer le principe des moindres privilèges pour le partage des données,
  • Ne donner les accès aux utilisateurs que pour ce qu’ils ont besoin et rien de plus,
  • Attention également au chiffrement des données, lors de leur stockage et lors de leur transfert,
  • Les clés de chiffrement doivent être également bien protégées pour obtenir une sécurité optimale,
  • Enfin, il faut toujours enregistrer les logs pour garder un historique des actions menées.

 

Microservices & DevOps

Les microservices sont soit déployés dans un environnement de “container” soit dans une machine virtuelle. Comme les microservices interagissent entre eux, il faut cloisonner les accès entre les container ou machines virtuelles. Certaines règles de sécurité sont nécessaires :

  • Authentification forte, autorisations restreintes,
  • Communications sécurisées,
  • Chiffrement des données,
  • Stockage sécurisé des clés d’accès,
  • Durcissement des systèmes.

virtualisation vs container

OWASP 2017

Dans l’Open Web Application Security Project (OWASP) 2017 (qui est encore en Release Candidate), un point est dédié à la protection des API : “A10 – Underprotected APIs”.

Les applications et les API modernes impliquent souvent des applications clientes – comme JavaScript dans le navigateur internet – et les applications mobiles, qui se connectent à une API (SOAP / XML, REST / JSON, RPC, GWT, etc.). Ces API sont souvent mal protégées et contiennent de nombreuses vulnérabilités.

L’OWASP met également en avant 4 points de sécurité impactant à la fois les applications Web et les API. Ces points de sécurité ou failles peuvent être exploités que ce soit par interface web ou par API.

  • A3 – XSS
  • A6 – Sensitive Data Exposure
  • A7 – Insufficient Attack Protection
  • A9 – Using Components with Known Vulnerabilities

Il faut donc prendre les mêmes précautions pour les API que les services Web dont les points suivants :

  • mettre en place un canal sécurisé (SSL / TLS),
  • instaurer une authentification par multi-facteurs,
  • définir plusieurs niveaux d’autorisation (Lecture, Listing, Ecriture, Effacement) ou (GET, POST, PUT, DELETE).

 

Scan de vulnérabilités

Plusieurs types de scanners peuvent être utilisés pour vérifier la sécurité des microservices. En effet, cela va de la détection de la présence de microservice, jusqu’aux tests spécifiques Web en passant par la détection de vulnérabilités connues ou erreurs de configuration :

  • Scan réseau via “nmap” : il permet de détecter les équipements du réseau et les services sur les composants du réseau
  • Scan de vulnérabilités : il permet de détecter les vulnérabilités CVE, les problèmes de configuration et de durcir les serveurs Center for Internet Security (CIS)
  • Scan Web via des outils “OWASP” : par exemple le Zed Attack Proxy (ZAP) permet de détecter les failles relatives aux applications Web

 

Intégrer la sécurité des microservices dans le cycle DevOps.

La sécurité doit être intégrée dans l’approche DevOps de la création du projet jusqu’à son terme. Elle doit donc faire partie du processus DevOps (SecDevOps / DevSecOps).

Des scans de vulnérabilités doivent être effectués avant la mise en production tout comme des tests d’intrusions. Cela permettra aux équipes de remédier les failles de sécurité puis d’exécuter les mises à jour. Ces actions doivent être effectuées en continu pour qu’elles soient efficaces et puissent entraîner un cercle vertueux.  Elles seront intégrées comme “tickets” dans le cycle DevOps pour le développement et le déploiement de projets.

 

Bénéfices de la sécurité des microservices

Les principaux bénéfices de ces actions pour renforcer la sécurité des microservices sont :

  • Réduire la « fenêtre » de faiblesse du système d’information (en termes de sécurité),
  • Minimiser l’impact opérationnel,
  • Détecter les problèmes reproductibles,
  • Gagner du temps par la priorisation et la planification des tâches correctives notamment en suivant des Indicateurs de Risque,
  • Diminuer les coûts : éviter les pertes suite à un arrêt de production / Meilleure rentabilité pour les auditeurs

Pour plus de détails sur la sécurité des microservices, nous vous invitons à regarder la présentation de Frédéric Donnat, Directeur Technique et cofondateur de SecludIT, lors des SophiaConf de Sophia Antipolis.

 

 

Sources :

OWASP : Projet OWASP TOP10
https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project

OWASP : Sécurité REST
https://www.owasp.org/index.php/REST_Security_Cheat_Sheet

OWASP : Sécurité Web Service
https://www.owasp.org/index.php/Web_Service_Security_Cheat_Sheet

Leave a Reply