Top 10 des erreurs de configuration AWS et comment les corriger : aide-mémoire
15 mars 2023
0 minutes de lectureAmazon Web Services (AWS) reste le principal fournisseur de services cloud, avec 40,8 % des parts de marché. Aujourd’hui, de nombreuses entreprises et organisations hébergent une partie, voire la majeure partie, de leur infrastructure sur Amazon Web Services. AWS aide les organisations à accélérer leur transformation numérique et à innover plus rapidement, mais la migration vers AWS comporte des erreurs de configuration courantes.
Les erreurs de configuration courantes peuvent entraîner des failles de sécurité ou des lacunes dans l’infrastructure, vous obligeant à chercher en urgence ce que des acteurs malveillants ont fait dans votre compte AWS. Pour éviter ces failles potentielles dans votre infrastructure et les éventuelles violations de sécurité, voici les 10 principales erreurs de configuration AWS que nous allons aborder :
Utiliser l’utilisateur root comme utilisateur principal du compte AWS.
Stocker des secrets à longue durée de vie dans le code source des applications.
Utiliser l’autorisation * dans les politiques IAM.
Utiliser des services AWS non autorisés dans votre compte AWS.
Ne pas chiffrer les données stockées dans les services de stockage AWS.
Ne pas activer d’outils de surveillance pour vos comptes AWS.
Groupes de sécurité ouverts à tous sur Internet.
Héberger tous les services dans un seul compte AWS.
Paramètres par défaut non sécurisés d’AWS RDS
Enregistrement DNS orphelin associé à un compartiment AWS S3 public supprimé.
Téléchargez notre aide-mémoire sur les erreurs de configuration de sécurité AWS pour en savoir plus sur la prévention des erreurs suivantes.
1. N’utilisez pas l’utilisateur root comme utilisateur principal du compte AWS
L’utilisateur root est le compte fourni par AWS qui dispose de privilèges administratifs. hCependant, si le compte root est compromis, vous risquez de perdre totalement l’accès à tous les comptes AWS auxquels l’utilisateur root a accès au sein de l’organisation. Au lieu de l’utilisateur root, utilisez la fédération (AWS Identity Center) pour les utilisateurs humains ou des utilisateurs AWS IAM.
L’utilisateur root a accès à toutes les ressources et à tous les services AWS d’un compte. Si les identifiants du compte root sont compromis, des acteurs malveillants pourront accéder aux applications et données sensibles, et risqueront de les utiliser à mauvais escient, ainsi que les ressources du compte compromis.
Il est essentiel de protéger l’utilisateur root et de le tenir à l’écart des acteurs malveillants. En plus d’utiliser la fédération ou des utilisateurs AWS IAM, vous pouvez prendre d’autres mesures pour sécuriser votre compte root :
Créez un utilisateur IAM pour vous-même et attribuez-lui des autorisations administratives.
Ne partagez jamais les identifiants de l’utilisateur root.
Si possible, utilisez un gestionnaire de mots de passe et créez un mot de passe robuste.
Veillez à activer l’authentification multifacteur.
Configurez des alertes lorsque l’utilisateur root se connecte afin d’être averti si quelqu’un utilise le compte root.
2. Ne stockez pas de secrets à longue durée de vie dans le code source des applications
L’utilisation programmatique d’AWS nécessite de fournir vos clés d’accès AWS pour vérifier votre identité lors des appels programmatiques. Ces clés d’accès comprennent un identifiant de clé d’accès et une clé d’accès secrète. Toute personne possédant vos clés d’accès dispose donc des mêmes droits d’accès à vos ressources AWS que vous. Il est donc essentiel de protéger vos clés d’accès : si elles sont compromises, des acteurs malveillants peuvent les utiliser pour accéder par programmation à tous les services auxquels elles donnent accès.
Nous vous recommandons en effet de renouveler vos clés d’accès AWS tous les 90 jours et de supprimer celles qui n’ont pas été utilisées depuis plus de 90 jours. Dans la mesure du possible, ne stockez pas de clés d’accès dans le code des applications, les logiciels de mise en œuvre ou le stockage cloud.
3. Utilisez l’autorisation * dans les politiques IAM
La sécurité dépend de ce qui est réellement déployé et exécuté dans nos environnements cloud.
Pour éviter d’accorder des autorisations ou un accès à toutes les ressources, attribuez vos politiques d’autorisation aux utilisateurs IAM, aux rôles IAM, aux groupes et aux profils de charge de travail AWS (profils d’instance).
Vous pouvez utiliser IAM Access Analyzer pour anticiper ce problème ou même le corriger. IAM Access Analyzer vous permet de :
Créer des politiques de moindre privilège en fonction de l’activité d’accès.
Surveiller en continu les types de ressources pris en charge et les examiner. Cette surveillance continue vous aide à identifier les ressources accessibles au public ou à d’autres comptes. Elle permet également de repérer les ressources qui disposent d’autorisations trop permissives.
Une fois vos politiques IAM déployées dans votre environnement de production, vous pouvez être sûr de n’avoir accordé à vos charges de travail que les autorisations nécessaires.
4. N’utilisez pas de services AWS non autorisés dans votre compte AWS
Les exigences de conformité, qu’elles soient juridiques ou techniques, varient d’un secteur à l’autre. La plupart des organisations établissent une liste de services AWS conformes aux normes du secteur et des régions géographiques où elles opèrent. Elles peuvent ainsi poursuivre leurs activités et respecter rapidement et légalement les exigences de conformité de leur secteur sur les marchés où elles souhaitent être présentes.
Toutefois, opérer en dehors de ces régions ou utiliser des services AWS qui enfreignent leurs obligations légales ou de conformité entraînera très probablement de lourdes amendes pour les organisations.
Nous vous recommandons d’utiliser AWS SCP dans AWS Organizations pour définir des garde-fous qui encadrent la gestion des accès de tous les utilisateurs et rôles IAM dans vos comptes AWS.
5. Chiffrez les données stockées dans les services de stockage AWS
La défense en profondeur intégrée à la sécurité d’AWS repose notamment sur le principe selon lequel vous devez chiffrer toutes les données au repos et en transit. Pour cela, vous pouvez utiliser les clés de chiffrement gérées par votre organisation (AWS KMS avec CMK).
À mesure que l’adoption du cloud se développe pour créer des infrastructures et des applications, une grande quantité de données sera inévitablement stockée, transmise ou traitée dans AWS. Laisser ces données en clair ou sous un format non chiffré permet aux acteurs malveillants de les lire, de les copier ou de les modifier. Pour éviter cela et d’autres failles de sécurité, chiffrez vos données au repos et en transit.
6. Activez les outils de surveillance pour vos comptes AWS
La surveillance est essentielle pour garantir la disponibilité, la fiabilité et les performances de vos solutions AWS. Si un attaquant malveillant s’en prend à votre infrastructure, il est important de connaître les actions menées dans vos comptes AWS.
AWS propose plusieurs outils de surveillance qui signalent les problèmes et prennent automatiquement les mesures nécessaires le cas échéant. Pour rester informé, activez les outils suivants afin de surveiller votre compte :
AWS CloudTrail dans toutes les régions AWS
AWS CloudWatch pour toutes les ressources et applications AWS
En fonction du profil de risque de votre organisation, vous pouvez également envisager d’activer AWS VPC Flow Logs et AWS S3 Access Log.
7. Utilisez les groupes de sécurité pour contrôler le trafic provenant d’Internet
Créer des ressources dans vos comptes AWS accessibles depuis Internet vous expose à des attaques. Des acteurs malveillants analysent sans cesse les adresses IP sur Internet à la recherche de vulnérabilités potentielles ou de serveurs non authentifiés qu’ils peuvent exploiter à leur profit.
Vous pouvez utiliser les règles des groupes de sécurité pour limiter l’accès aux ressources aux seules adresses IP, applications ou réseaux connus. Nous vous recommandons également d’utiliser AWS Security Hub et AWS GuardDuty pour surveiller vos comptes et charges de travail AWS et détecter les activités malveillantes, ainsi que pour appliquer des mesures correctives automatiques.
8. Ne regroupez pas tous vos services dans un seul compte AWS
Lorsque toutes vos applications sont hébergées dans un seul compte AWS, les acteurs malveillants peuvent facilement accéder à votre compte et répertorier tous les services et les autres applications qui y sont hébergés.
Séparez plutôt vos ressources et gérez plusieurs comptes pour les protéger.
AWS Organization est un service AWS qui permet de séparer et de gérer plusieurs comptes AWS. En utilisant le cadre Well-Architected d’AWS pour séparer les applications et les charges de travail, vous réduisez l’ampleur des dégâts qu’un acteur malveillant pourrait causer s’il accédait à votre compte AWS.
9. Évitez les erreurs de configuration dans AWS RDS
Les bases de données gérées comme AWS RDS (Amazon Relational Database Service) peuvent être mal configurées et devenir accessibles à tous si aucune authentification n’est requise ou si le mot de passe administrateur de la base de données par défaut n’a pas été modifié.
De nombreuses applications utilisent une base de données backend pour stocker des informations et des données personnelles et sensibles sur leurs clients. Pour éviter les erreurs de configuration qui exposent ces données, limitez l’accès aux groupes de sécurité des instances AWS RDS aux seules adresses IP connues. Vous pouvez également modifier les identifiants par défaut des instances de base de données utilisées par AWS RDS.
10. Évitez les enregistrements DNS orphelins
Vérifiez qu’aucun des enregistrements DNS (Domain Name System) dans Route53 ne soit inconnu ou ne pointe plus vers un compartiment AWS S3 public.
Les sites web gérés et hébergés chez un fournisseur cloud public (comme AWS) sont exposés au risque d’enregistrements DNS orphelins. Si un attaquant peut remplacer les fichiers et les serveurs qui hébergent le site web par son propre serveur, il peut prendre le contrôle d’un sous-domaine.
Pour éviter cela, tenez à jour un inventaire de tous les enregistrements DNS actifs et auditez régulièrement vos processus afin de supprimer également les ressources associées aux enregistrements DNS qui ne sont plus nécessaires.
Surveillez également en continu tout compartiment AWS S3 accidentellement exposé à Internet, ainsi que toute suppression d’un compartiment S3 sur lequel l’hébergement de site web statique était activé. Vous pourrez ainsi appliquer les mesures correctives nécessaires. La mise en place d’alertes automatiques doit faire partie de cette surveillance continue.
Sécurisez votre infrastructure cloud
La migration vers un fournisseur cloud offre de nombreux avantages — économies, évolutivité, avantage concurrentiel, sécurité renforcée et possibilités de collaboration — mais sa configuration doit être correctement réalisée pour éviter les erreurs de configuration abordées dans cet article. Réduire les risques de failles de sécurité dans vos applications est une responsabilité permanente des équipes de développement et de sécurité, et Snyk est là pour vous aider. Consultez dès aujourd’hui notre aide-mémoire sur les erreurs de configuration AWS pour obtenir plus d’informations et des conseils de correction. Et si ce n’est pas déjà fait, créez un compte Snyk gratuit ou réservez une démo pour découvrir comment Snyk vous aide à détecter et à corriger les vulnérabilités de votre infrastructure cloud.
Sécurisez votre infrastructure dès la source
Snyk automatise la sécurité et la conformité de l’IaC dans vos workflows, et détecte les ressources dont la configuration a dérivé ou qui sont manquantes.
