AWS: Les services de sécurités

C'est quoi la sécurité dans le cloud ?

La sécurité est un aspect crucial de toute infrastructure informatique, en particulier pour les données sensibles telles que les données de santé ou bancaires. AWS offre une infrastructure résiliente et sécurisée grâce à ses nombreux services qui garantissent des niveaux élevés de sécurité et de conformité.

Pour garantir cette sécurité, Amazon investit massivement dans l'innovation et la recherche et développement, avec un budget de 22 milliards de dollars en 2018. Les réseaux sont sécurisés avec des pare-feux intégrés et un chiffrement des données à la volée. De plus, les connexions sont dédiées sous forme de fibres noires à très haut débit, ce qui permet d'atténuer les attaques DDOS grâce au edge computing.

En outre, AWS propose des outils de déploiement, d'inventaire et de configuration pour garantir la conformité de l'infrastructure et assurer que tout est bien configuré. Ces outils comprennent une définition de modèle de sécurité et des outils de gestion qui permettent d'assurer la conformité du serveur.

Grâce à ces nombreux outils et services, AWS offre une infrastructure sécurisée et résiliente qui permet de stocker des données sensibles en toute sécurité, en garantissant la confidentialité et la conformité de l'infrastructure.

Les principes de sécurité

Pour garantir cette sécurité, il est essentiel de mettre en place des politiques et des outils pour contrôler l'accès aux données, tracer les actions et limiter le facteur humain.

Il est important d'identifier qui accède à quoi, quand et à quel niveau, en mettant en place des outils d'identification et de traçabilité pour garantir la sécurité des données en transit et au repos. Il est également essentiel d'automatiser les tâches pour limiter le facteur humain et garantir la conformité de l'infrastructure.

Pour garantir la sécurité de l'infrastructure, il est important de se maintenir à jour, d'appliquer de nouveaux outils et services, et de configurer le réseau de manière sécurisée. Amazon fournit de nombreux outils pour faciliter ces tâches et aider les utilisateurs à se conformer aux normes de sécurité.

La responsabilité de la sécurité du cloud est partagée entre AWS et les utilisateurs, avec AWS responsable de la sécurité du cloud et les utilisateurs responsables de tout ce qui se trouve dans le cloud. Pour faciliter la mise en place de politiques de sécurité, Amazon propose des outils de configuration, de chiffrement des données et de contrôle des accès pour garantir la sécurité de l'infrastructure.

Modèle OSI

# Couche Application Description
7 Application Données Permet la communication entre l'application et le réseau
6 Présentation Données Gère la représentation des données (chiffrement SSL)
5 Session Données Gère la communication entre les hôtes
4 Transport Segments Gère la fiabilité et la connexion de bout en bout
3 Réseau Paquets Gère l'adressage logique et la détermination de chemin
2 Liaisons de données Images Gère l'adressage physique
1 Physique Bits Gère la transmission multimédia, de signal et binaire

Ensuite, la couche de liaison de données découpe les données en trames, qui sont des suites de bits encapsulant les paquets. La couche Réseau fragmente les données en paquets plus petits et les encapsule. Finalement, un paquet encapsule des segments pour former un ensemble de données. C'est comme des poupées russes, les données sont emboîtées les unes dans les autres.

Recommandation sécurité

  • Utilisez l'authentification multi-facteur (MFA) avec chaque compte.
  • Utilisez SSL/TLS pour communiquer avec des ressources AWS.
  • Configurez l'API et la consignation des activités utilisateur avec AWS CloudTrail.
  • Utilisez des solutions de chiffrement AWS, ainsi que tous les contrôles de sécurité par défaut au sein des services AWS.
  • Utilisez des services de sécurité gérés comme Amazon Macie, qui contribue à la découverte et à la sécurisation des données personnelles stockées dans Amazon S3.
  • Chaque sous-réseau doit être associé à une table de routage, qui indique les routes autorisées pour le trafic sortant quittant le sous-réseau. Chaque sous-réseau que vous créez est automatiquement associé à la table de routage principale de votre VPC.
  • Un groupe de sécurité (stateful) agit en tant que pare-feu virtuel pour votre instance afin de contrôler le trafic entrant et sortant.
  • Un groupe de sécurité n'agit pas au niveau du sous-réseau.

liste de contrôle d'accès réseau (NACL)

Les listes de contrôle d'accès (ACL) sont une couche de sécurité facultative pour les réseaux Amazon VPC, qui agissent comme un pare-feu pour contrôler le trafic entrant et sortant d'un ou plusieurs sous-réseaux. Contrairement aux groupes de sécurité, les ACL sont stateless, ce qui signifie que les réponses au trafic entrant autorisé sont soumises aux règles du trafic sortant (et vice versa). On peut créer une liste ACL personnalisée et l'associer à un sous-réseau, et par défaut, chaque liste ACL refuse tout trafic entrant et sortant jusqu'à ce que vous ajoutiez des règles. Il est important de noter que les ACL fonctionnent au niveau de l'instance, tandis que les groupes de sécurité fonctionnent au niveau du réseau.

Réalisation de tests d'intrusion:

Il est possible de tester l'environnement AWS par rapport à des normes de sécurité définies. Mais uniquement pour les services suivants :

  • Instance Amazon EC2, NAT gateway et Elastic Load Balancer
  • Amazon RDS
  • Amazon CloudFront
  • Amazon Aurora
  • Amazon API Gateways
  • Fonctions AWS Lambda et Lambda Egde
  • Ressources Amazon Lightsail
  • Environnements Amazon Elastic Beanstalk

Il est par ailleurs interdit de :

  • Faire l'inspection de zone DNS via des zones hébergées sur Amazon Route 53
  • Des attaques DoS, DDoS, DoS simulé et DDoS simulé
  • Saturation des ports
  • Saturation des protocoles
  • Saturation des requêtes (saturation des requêtes de connexion et d'API)

Gestion des identités et des accès

IAM est un service qui permet de centraliser la gestion des utilisateurs et des groupes de manière sécurisée grâce à l'authentification multi-facteur (MFA). Il permet de partager l'accès à un compte AWS entre différentes entités et offre un contrôle granulaire des autorisations. IAM propose des entités fédérées avec un annuaire directory windows, Facebook, etc. et permet de gérer la rotation des mots de passe et la sécurité. IAM gère l'autorisation et l'interdiction via des stratégies.

IAM est comme un chef d'orchestre. Lors de la première connexion, nous commençons avec un compte racine, qui est le super-utilisateur avec tous les droits. Cela doit être manipulé avec précaution. IAM offre une granularité des autorisations et des actions possibles, la possibilité de créer des utilisateurs, des groupes, des rôles, des stratégies, et ainsi de suite.

Il est possible de créer un groupe d'administrateurs, d'y ajouter des utilisateurs et de créer ensuite une stratégie pour gérer les autorisations et les accès aux ressources. IAM permet également de créer des profils d'utilisateurs qui fournissent un accès console, pour lesquels l'utilisateur doit entrer un nom d'utilisateur et un mot de passe, des clés d'accès (ssh/API) avec un Access Key Id et une clé d'accès secrète, ainsi que l'authentification à facteur multiple (MFA).

Role

Les rôles IAM sont un ensemble de stratégies qui peuvent être associées à un utilisateur, à un groupe d'utilisateurs ou à un service. Ils permettent d'attribuer des méthodes d'authentification à des ressources de manière temporaire, ce qui génère à chaque fois un nouvel identifiant.

Pour chaque rôle, nous devons définir une stratégie d'approbation (Trust policy), qui autorise une entité à assumer le rôle via l'authentification, et une stratégie d'autorisation (Access policy), qui associe les droits au rôle.

Dans quels cas faut-il créer un utilisateur IAM plutôt qu'un rôle ?

  • Vous avez créé un compte AWS et vous êtes la seule personne à travailler dessus.
  • D'autres personnes de votre groupe doivent travailler sur votre compte AWS, et votre groupe n'utilise aucun autre mécanisme d'identité.
  • Vous souhaitez utiliser l'interface en ligne de commande (CLI) pour travailler avec AWS.

Dans quels cas faut-il créer un rôle IAM plutôt qu'un utilisateur ?

  • Vous créez une application qui s'exécute sur une instance EC2 et qui fait des requêtes à AWS.
  • Vous créez une application qui fonctionne sur un téléphone mobile et qui fait des requêtes à AWS.
  • Les utilisateurs de votre entreprise sont authentifiés dans votre réseau d'entreprise et souhaitent pouvoir utiliser AWS sans avoir à se reconnecter.

Bonnes pratiques :

  • Ne jamais utiliser le compte root et ne jamais partager son accès.
  • Utiliser un administrateur IAM pour effectuer toutes les actions.
  • Suivre les recommandations d'IAM : supprimer les clés d'accès du compte root, activer le MFA, créer des utilisateurs avec accès console ou accès programmatique, utiliser des groupes pour attribuer des permissions, utiliser des rôles pour les accès temporaires, appliquer une stratégie de mot de passe IAM.
  • Attention : les comptes root n'ont pas de restrictions et sont un service gratuit.

Stratégies

Une stratégie est un fichier texte au format JSON. Chaque ligne fournit des autorisations pour différentes ressources et fournit :

  • Le principal : désigne une ou plusieurs entités existantes, sachant qu'une entité est désignée par un ARN (Amazon Resource Name). Un ARN est un identifiant qui permet d'identifier une ressource.
  • L'action : décrit le type d'accès autorisé ou refusé.
  • La ressource.
  • La condition : liste les critères qui doivent être valides pour autoriser une action.

Fédération d'identité

La fédération d'identité ne permet pas d'utiliser un ARN. Si nos utilisateurs sont internes à notre entreprise, qui compte 600 utilisateurs, nous pouvons utiliser un broker propriétaire compatible avec la norme SAML 2.0, qui permet l'échange de données de sécurisation entre domaines. Notre annuaire peut s'identifier directement auprès de nos ressources AWS via le service de répertoire AWS Directory Service.

Nous pouvons utiliser des fournisseurs externes tels que Google, Facebook, etc. pour l'authentification.

AWS Organizations

AWS Organizations permet de contrôler l'accès, la conformité, la sécurité et la facturation, ainsi que de partager des ressources sur tous vos comptes AWS de manière centralisée. Pour cela, nous disposons de nombreux outils différents et nous pouvons contrôler via :

  • La console
  • La ligne de commande
  • Le kit de développement logiciel (SDK)
  • Les appels d'API HTTPS

Les étapes de création sont les suivantes :

  1. Créer l'organisation avec le compte racine.
  2. Créer les unités organisationnelles auxquelles nous pouvons appliquer des politiques de contrôle (SCP).
  3. Tester les politiques de notre organisation (par exemple, en créant une stratégie qui interdit toute action dans CloudTrail).
  4. Surveiller les changements importants dans notre organisation en :
  • Configurant un sélecteur d'événements dans CloudTrail.
  • Configurant une fonction Lambda.
  • Créant un sujet SNS Amazon qui envoie des e-mails et des SMS.
  • Créant une règle pour les événements dans CloudWatch.
  • Testant notre règle pour les événements CloudWatch.

AWS Cloudtrail

AWS CloudTrail vous permet de consigner, surveiller en continu et conserver l'activité de votre compte en ce qui concerne l'ensemble de votre infrastructure AWS. Tous les journaux sont conservés, et ce service vous permet de tracer l'ensemble des actions. Il offre les avantages suivants :

  • Simplification de la conformité.
  • Résolution des problèmes et analyse de la sécurité en fonction des logs.
  • Visibilité sur l'activité des utilisateurs et des ressources.
  • Automatisation de la sécurité.

Il est utilisé pour :

  • Aider à la conformité.
  • Analyser la sécurité.
  • Détecter l'exfiltration de données.
  • Résoudre les problèmes opérationnels.
  • Détecter les activités inhabituelles.

Sécurité, identité et conformité

Le point commun de ces trois thèmes, c'est l'utilisateur qui a les moyens d'interventions via :

Ce sont tous les moyens d'entrées de nos services. Il y a 3 moyens de vérifier les actions :

Les logs

  • Grace aux logs on peut détecter et alerter
  • On a alors une vue de ce qui se passe
  • On peut représenter l'infrastructure ainsi :

Voici un aperçu des différents services de sécurité proposés par AWS :

  • CloudWatch : permet d'envoyer des alertes par SMS et de scripter des actions.
  • GuardDuty : vérifie la source et la conformité des données entrantes.
  • AWS Config : permet de mettre en place la configuration des alertes.
  • Inspector : service permettant de lancer des cycles pour réaliser des audits.
  • Macie : permet de traiter les données pour s'assurer que l'exposition des données ne soit pas exposée.

AWS Directory Service

AWS Directory Service est un annuaire (base de données répliquée) qui permet d'avoir un annuaire réparti. Il s'agit d'une sorte de cluster réparti sur plusieurs ordinateurs qui stockent uniquement les données d'un annuaire et qui fournit la particularité de faire face aux pannes.

Il prend en charge Active Directory Microsoft, OPENLDAP, Samba, l'identification et l'authentification (mot de passe + MFA), la gestion centralisée des ressources et peut mettre à disposition des développeurs via Cloud Directory pour répondre à des milliers d'appels en simultané.

Dans le cas d'une activité plus corporate, il est recommandé d'utiliser Directory Service (Microsoft AD, Simple AD, AD Connector), qui offre la validation des conflits réseaux avant la mise en place (CIDR) et permet d'enregistrer qui fait quoi (CloudTrail).

Il ne faut pas confondre Directory Service avec Cognito, qui est utilisé pour la fédération d'identité pour les applications mobiles.

Amazon inspector

AWS Inspector permet d'évaluer les vulnérabilités ponctuellement ou par cycles planifiés. Il offre les fonctionnalités suivantes :

  • Identification des cibles par balise (application).
  • Peut nécessiter des agents pour certains contrôles (EC2 Linux, Windows).
  • Définition d'un modèle, de règles, de cibles, de temps et de types de contrôles.
  • Analyses des CVE (common vulnerabilities and exposures).
  • Analyses des CIS benchmarks sur la sécurité des systèmes d'exploitation.
  • Analyses des meilleures pratiques en matière de sécurité.
  • Analyses des RBA (runtime behavior analysis).
  • Rapports de découvertes avec des éléments détaillés et des remédiations.

Amazon WAF - Web Application Firewall

AWS WAF (Web Application Firewall) est un pare-feu applicatif de niveau 7 (OSI) qui permet d'identifier les attaques courantes telles que les injections SQL et les scripts entre sites.

Il se situe entre les clients et l'application web, protège contre les attaques DDoS et prend en charge des règles personnalisées (conditions, ACL, IP, chaînes). Il peut bloquer ou autoriser le trafic en fonction des règles choisies.

Il fonctionne avec l'Application Load Balancer (ALB) pour une application interne AWS et avec CloudFront (HTTP, HTTPS, Edge Access). Il permet également de sécuriser une origine personnalisée hors de AWS et enregistre qui fait quoi grâce à CloudTrail.

Developpeur et architecte passionné, qui souhaite partagé son univers et ses découvertes afin de rendre les choses plus simple pour chacun