Aujourd'hui, les menaces liées à la cybersécurité sont omniprésentes et persistantes. À mesure que de plus en plus d'aspects de notre vie sont numérisés, les cybercriminels sont exposés à des risques plus élevés : trop de codes ne sont pas sécurisés et les données privées ont une valeur considérable. De plus, il est pratiquement impossible de suivre et de défendre tous les aspects de la surface d'attaque après le déploiement d'un programme.
Il existe des moyens d'atténuer certains de ces symptômes, et l'un d'entre eux est évident lorsque des organisations avisées adoptent le concept d'infrastructure en tant que code (IaC). Bien entendu, comme pour tout développement, il existe des pièges en matière de sécurité qui doivent être évités. De plus, étant donné que les développeurs génèrent du code qui sera utilisé pour héberger des applications critiques, la sensibilisation à la sécurité est essentielle à chaque étape du processus.
Alors, comment les développeurs qui découvrent l'environnement des serveurs cloud peuvent-ils améliorer leurs compétences, acquérir de nouvelles connaissances et développer leurs applications tout en renforçant leur sensibilisation à la sécurité ? Nous avons créé la prochaine série Coders Conquer Security afin de résoudre les vulnérabilités courantes de l'IaC. Les prochains articles de blogmettront l'accent sur les mesures que vous, développeurs, pouvez prendre pour commencer à déployer une infrastructure de sécurité sous forme de code au sein de votre organisation.
Commençons.
Il existe une fable dans l'Ouest américain qui raconte l'histoire d'un individu paranoïaque qui croyait que des bandits allaient attaquer et piller sa maison. En conséquence,il investit dans diverses mesures de sécurité, telles que l'installation d'une porte d'entrée ultra-résistante, la pose de barreaux à toutes les fenêtres et la mise à disposition d'un grand nombre d'armes à portée de main. Un soir, alors qu'il dormait, il fut victime d'un cambriolage, car il avait oublié de verrouiller la porte latérale. Les voleurs n'eurent qu'à trouver le dispositif de sécurité défaillant et en profitèrent rapidement.
La désactivation des fonctionnalités de sécurité dans l'infrastructure se présente de la manière suivante. Même si votre réseau dispose d'une infrastructure de sécurité solide, cela ne sera pas efficace si certains éléments sont désactivés.
Avant de nous plonger dans le sujet, permettez-moi de vous proposer un défi :
En accédant au lien ci-dessus, vous serez redirigé vers notre plateforme de formation ludique, où vous pourrez immédiatement vous exercer à surmonter les vulnérabilités des fonctionnalités de sécurité désactivées. (Remarque : elle s'ouvrira dans Kubernetes, mais vous pouvez sélectionner Docker, CloudFormation, Terraform ou Ansible à l'aide du menu déroulant).
Comment vous en sortez-vous ? Si vous avez encore du travail à accomplir, veuillez continuer à lire :
Les fonctionnalités de sécurité peuvent être désactivées pour diverses raisons. Pour certaines applications et certains frameworks, elles peuvent être désactivées par défaut et doivent être activées avant de pouvoir fonctionner. Les administrateurs peuvent également désactiver certaines fonctionnalités de sécurité afin de faciliter l'exécution de certaines tâches sans être constamment confrontés à des défis ou à des blocages (par exemple, rendre public un compartiment de stockage AWS S3). Une fois le travail terminé,ils peuvent oublier de réactiver les fonctionnalités désactivées. Ils peuvent également préférer les laisser désactivées afin de faciliter leur travail à l'avenir.
Pourquoi les fonctionnalités de sécurité désactivées sont-elles si dangereuses ?
Il est déconseillé de désactiver une ou plusieurs fonctionnalités de sécurité pour deux raisons. Tout d'abord, les fonctionnalités de sécurité sont intégrées aux ressources de l'infrastructure afin de prévenir les vulnérabilités, menaces ou failles connues. Si elles sont désactivées, elles ne pourront pas protéger vos ressources.
Les attaquants commencent toujours par rechercher les vulnérabilités faciles à exploiter, et peuvent même utiliser des scripts pour corriger les vulnérabilités courantes. Cela revient à inspecter toutes les voitures garées dans la rue pour vérifier si une portière est ouverte, ce qui est beaucoup plus simple que de briser une vitre. Les pirates informatiques peuvent être surpris de constater que les mesures de sécurité courantes sont désactivées. Cependant, lorsqu'ils constatent cela, ils n'hésitent pas à en tirer parti.
Deuxièmement, la mise en place d'une bonne sécurité suivie de sa désactivation peut créer un faux sentiment de sécurité. Si les administrateurs ignorent que ces défenses ont été désactivées, ils pourraient penser qu'ils sont à l'abri des menaces courantes.
À titre d'exemple illustrant comment un attaquant peut exploiter une fonctionnalité de sécurité désactivée, considérons la fonctionnalité de sécurité AWS S3 qui empêche l'accès public. Grâce au masquage de l'accès public Amazon S3, les administrateurs de compte et les propriétaires de compartiments peuvent facilement mettre en place un contrôle centralisé pour restreindre l'accès public à leurs ressources Amazon S3.Cependant, certains administrateurs rencontrent des difficultés pour accéder aux compartiments S3 et décident de les rendre publics afin de mener à bien leurs tâches dans les meilleurs délais. S'ils omettent d'activer la fonctionnalité de sécurité, les attaquants auront un accès complet aux informations stockées dans ces compartiments S3, ce qui entraînera non seulement une fuite d'informations, mais également des frais supplémentaires liés au transfert de données.
Comparons quelques codes du monde réel ; examinons l'extrait CloudFormation suivant :
Vulnérable :
Bucket d'entreprise :
Type : AWS:: S3:: Bucket
Propriétés :
Configuration de l'accès public aux blocs :
blockPublicACLS : Erreur
BlockPublicy : Erreur
ignorepublicacls : Erreur
restrictPublicBuckets :
Configuration du contrôle de version :
Statut : Activé
Chiffrement du bucket :
Configuration du chiffrement côté serveur :
- Chiffrement côté serveur par défaut :
Algorithme SSE : « AES256 »
Sécurité :
Bucket d'entreprise :
Type : AWS:: S3:: Bucket
Propriétés :
Configuration de l'accès public aux blocs :
blockPublicACLS : Oui
BlockPublicy : Oui
ignoreRepublicacls :
restrictPublicBuckets :
Configuration du contrôle de version :
Statut : Activé
Chiffrement du bucket :
Configuration du chiffrement côté serveur :
- Chiffrement côté serveur par défaut :
Algorithme SSE : « AES256 »
Empêcher la désactivation des fonctions de sécurité
Empêcher que la désactivation des fonctionnalités de sécurité ait un impact négatif sur votre organisation est à la fois une question de politique et de pratique. Il est recommandé de mettre en place une politique stricte stipulant que les fonctionnalités de sécurité ne peuvent être désactivées que dans des circonstances exceptionnelles. Les incidents nécessitant la désactivation temporaire d'une fonctionnalité pour résoudre un problème ou mettre à jour une application doivent être consignés. Une fois les tâches requises effectuées, il est conseillé de vérifier que la fonctionnalité a bien été réactivée.
Si les fonctionnalités de sécurité doivent être désactivées de manière permanente afin de simplifier les opérations, il est nécessaire de mettre en place des mesures de protection alternatives pour les données concernées, afin de garantir que les pirates informatiques ne puissent pas accéder à ces fonctionnalités en l'absence de protection par défaut. Si les fonctionnalités de protection requises sont désactivées, il n'est qu'une question de temps avant qu'un attaquant ne trouve une porte non verrouillée et n'en profite.
En savoir plus, se dépasser :
Nous vous invitons à consulter la page du blog Security Code Warrior pour obtenir des informations détaillées sur cette vulnérabilité et sur la manière de protéger votre organisation et vos clients contre d'autres failles et vulnérabilités de sécurité.
Maintenant que vous avez lu cet article, êtes-vous prêt à identifier et corriger cette vulnérabilité ? Il est tempsde relever le défi ludique de sécurité iMac sur Secure Code Warrior d'affiner et de maintenir à jour toutes vos compétences en cybersécurité Secure Code Warrior
Il s'agit d'une série d'articles hebdomadaires couvrant nos huit principales vulnérabilités « Infrastructure as Code » ; nous vous invitons à revenir la semaine prochaine pour plus d'informations.