Hebergement en zone CEMAC : Comment préparer votre certification PCI-DSS

PCI-DSS est l’une des certifications les plus précieuses du cloud computing. Cette certification prouve que votre plateforme suit les meilleures pratiques afin de gérer les données de cartes de crédit. Il s’agit d’imposer des normes à appliquer, mais pas les outils à utiliser, ce qui est le choix du client.

Il existe quatre niveaux de conformité PCI, qui sont déterminés par le nombre de transactions que l’organisation traite chaque année.

  • Niveau 1 : plus 6 millions de transactions par an
  • Niveau 2 : de 1 à 6 millions de transactions par an
  • Niveau 3 : de 20 000 à 1 million de transactions par an
  • Niveau 4 : moins de 20 000 transactions par an

Cet article est un ensemble de flashcards qui expliqueront notre expérience pour concevoir une plate-forme compatible PCI-DSS.

Nous mettrons en évidence les principaux points à considérer pour la conception d’environnement, les services que nous avons utilisés et comment renforcer cette conception par des outils externes pour répondre aux exigences de cette certification.

L’isolation des environnements (dev, staging, prod) est une exigence.

PCI-DSS nécessite la collecte de tous les journaux d’accès.

Avoir ces journaux dans un point de collecte centralisé vous aide à effectuer une meilleure gestion.

Accès à différents niveaux

Il est fortement recommandé d’avoir plusieurs niveaux d’accès pour les utilisateurs sur l’environnement

Cela permet de garantir la stratégie du moindre privilège (plus connu dans sa version anglaise : least privilege) aux utilisateurs.

Vous pouvez utiliser différents profils tels que : Master, Admin, Developper, Security Auditor, …

Cependant, PCI-DSS exige que ces niveaux d’accès soient bien documentés et expliqués, avec la liste des utilisateurs et leurs profils.

Utiliser l’authentification forte

PCI-DSS exige que tous les accès à l’environnement utilisent un second facteur d’authentification (2FA/MFA). En outre, il existe également des exigences en matière de mot de passe, qui doit :

  • Être changé tous les 90 jours
  • Respectez un nombre minimum de caractères (> = 9)
  • Respecter une variété de caractères minimum

 

De plus, l’utilisateur doit être verrouillé après 5 tentatives d’authentification échouées (maximum).  AD peut garantir ces exigences. Ceci peut être assuré à l’aide d’un compte d’authentification pour gérer uniquement ce processus, et centraliser tous les accès à la plateforme.

La Conception de l’infrastructure AWS

PCI-DSS ne nécessite pas de modèle d’infrastructure spécifique à mettre en œuvre, mais il exige la présence de certains composants et l’application de bonnes pratiques.

Durcissement OS

Il existe différents types de normes de durcissement qui peuvent être implémentées : CIS, ISO, SANS, NIST…. PCI-DSS exige d’en choisir une et de l’appliquer.

Le durcissement d’un système d’exploitation prend du temps, en particulier lorsque vous avez beaucoup d’alertes à corriger.

L’auditeur vous demandera de fournir le rapport d’évaluation de la sécurité pour vérifier la conformité. Parfois, nous ne pouvons pas corriger tous les résultats en raison de certains problèmes techniques. Par exemple, dans le cas d’un orchestrateur de conteneurs utilisant Docker, vous devez garder les règles iptables ouvertes pour que l’orchestrateur puisse fonctionner correctement. Ces explications doivent également être fournies à l’auditeur.

Durcissement des conteneurs

Une image de conteneur embarque une grande partie de ce qui définit généralement un système, les règles de durcissement s’y appliquent de la même façon. Idéalement, les images de conteneur doivent être signées pour garantir leur intégrité.

Gestion des secrets et protection des données :

Le chiffrement des données est obligatoire. Les données chiffrées et les clés de chiffrement ne doivent pas résider au même endroit. Assurez-vous que vous pouvez faire la rotation des secrets et les mettre à jour au moins une fois par an, c’est une exigence PCI-DSS.

Protection contre la perte des données (DLP) :

PCI-DSS exige de scanner les données sortantes de la plateforme pour empêcher toute perte de données sensibles, notamment les numéros de carte de crédit.

SSL / TLS partout

SSL/TLS doit être utilisé pour chiffrer les données en transit, à l’intérieur et à l’extérieur de votre SI.

De plus, les communications internes doivent également être chiffrées. Si vous utilisez un orchestrateur de conteneurs comme Kubernetes, Nomad ou autre, le mode TLS doit systématiquement être activé.

La restriction et filtrage du réseau

PCI-DSS exige que les flux entrants et sortants soient limités et filtrés.

L’auditeur vous demandera de fournir le schéma réseau détaillé, ainsi que les explications des ports et protocoles ouverts dans l’infrastructure. Il effectuera également des vérifications dans l’environnement pour valider la documentation que vous avez fournie.

Analyse de vulnérabilité

PCI-DSS nécessite l’utilisation d’un scanner de vulnérabilité pour prouver que votre plate-forme ne présente pas de risque important.

vous devez vous fier à des outils tiers pour accomplir cette exigence, par exemple : Qualys, Rapid7, Beyond Security…etc. Ces outils peuvent exécuter des analyses approfondies de l’infrastructure, sur le réseau, le système et les applications et fournir un rapport très détaillé. Ce dernier sera demandé lors de l’audit pour validation. À savoir :  toutes les constatations “de niveau 5” (critiques) doivent être clôturées avant la fin de l’audit. Les autres doivent être traitées le plus tôt possible après.

 

Analyse antivirus du serveur

La certification nécessite un agent antivirus qui exécute et analyse le système en continu

Scan de PAN / carte de crédit

Le but ici est de prouver que les systèmes de fichiers du serveur ne stockent aucune information sensible comme les numéros de carte de crédit. L’auditeur peut vous demander de vérifier ce point en exécutant un scanner de pan / carte de crédit sur les serveurs. Il existe des projets open source qui peuvent être utilisés à cet effet comme CCSRCH ou Pantastic.

 

Traçabilité des accès aux services :

Nous avons introduit ce point dans la section «La conception de l’environnement , Accès à différents niveaux», et nous nous concentrerons sur la traçabilité dans cette partie.

Traçabilité des accès aux serveurs:

Tous les accès aux serveurs doivent être limités aux seuls utilisateurs désignés, et toutes les actions du système doivent être suivies et archivées.

Outre la traçabilité, PCI-DSS exige également que tous les journaux système soient collectés dans un SIEM pour détecter toute activité malveillante sur les serveurs.

De plus, les journaux système doivent être conservés dans un format permettant d’identifier quel utilisateur a effectué quelle action sur quel serveur, et à quel moment.

La documentation

Il faut également souligner l’importance de la documentation, en particulier pour l’audit PCI-DSS. Elle constitue la vitrine de votre environnement. Rassurez-vous, l’auditeur ne rentrera pas dans tous les détails de votre infrastructure, mais il est utile d’avoir une documentation claire qui explique son fonctionnement. Il vérifiera la cohérence par rapport à la réalité lors de l’audit. De plus, une grande partie de cette documentation servira de preuve pour l’auditeur. Vous devrez en fournir une pour passer l’audit, donc évitez vous une charge de dernière minute en intégrant la documentation dans votre Definition-of-Done dès la construction de votre infrastructure.

Il n’y a aucune exigence sur le format de la documentation, mais elle doit être suffisamment claire et compréhensible. L’utilisation de schémas est fortement recommandée. De nombreux outils peuvent être utilisés, on peut citer: lucidChart , Draw.io, CloudMapper, etc.

Les points les plus importants à documenter sont :

  • Le schéma d’organisation, expliquez bien comment les environnements sont séparés les uns des autres.
  • Le schéma d’infrastructure système
  • Les schémas des flux réseau, , sous-réseaux, tables de routage, points de terminaison VPN, etc.
  • La configuration des protocoles et des ports réseau.
  • Montrer comment les données sont acheminées au sein de votre infrastructure et comment les services communiquent entre eux.
  • Décrire le déroulement de l’authentification sur l’environnement et la gestion des utilisateurs, vous devez expliquer comment ajouter, mettre à jour et supprimer un utilisateur.
  • L’accès au compte racine doit être délégué à une seule personne identifiée dans l’entreprise.

Lors de l’audit, l’auditeur peut vous demander de fournir des preuves supplémentaires, pour valider la conformité de votre environnement AWS. Voici quelques points pour vous donner une idée :

  • journaux;
  • journaux de session;
  • captures d’écran de la configuration AD / IAM ;
  • rapports d’analyse des vulnérabilités internes et externes ;
  • informations sur les paniers / cartes de crédit, rapports d’analyse du système de fichiers.

 

Conclusion

En synthèse, voici les points à garder en tête lors de votre préparation au passage PCI-DSS :

  • les bonnes choses commencent dès le début, avoir une bonne conception (organisation, infrastructure système, IaC) vous permet de corriger plus rapidement pendant l’audit ;
  • automatisation, on peut dire que c’est un must en particulier pour les infrastructures à grande échelle ;
  • le Well-Architected framework est votre guide des bonnes pratiques pendant la réalisation
  • Prenez soin de la documentation et démarrez-la dès le début. Il doit être inclus dans la «Definition Of Done»
  • préparez une réponse pour chaque point qui n’est pas conforme et qui ne peut pas être corrigé pour certaines raisons techniques ;
  • sachez que, malheureusement dans certains cas, votre hebergeur s’appuie sur des outils tiers pour répondre aux exigences PCI-DSS ;
  • Consultez toutes les directives PCI DSS Cloud Computing et les améliorations de version ici;
  • enfin, PCI-DSS consiste à ne configurer que ce dont vous avez besoin et à ne pas laisser les portes ouvertes dans votre infrastructure ;