Les codeurs conquièrent l'infrastructure de sécurité en tant que série de codes : fonctionnalités de sécurité désactivées

De nos jours, les menaces à la cybersécurité sont omniprésentes et incessantes. À mesure que de plus en plus de facettes de notre vie sont numérisées, plus les enjeux pour les cybercriminels sont élevés : il y a trop de code à sécuriser et les données privées ont trop de valeur. Et bien, essayer de suivre et de défendre tous les aspects de la surface d'attaque après le déploiement des programmes est devenu presque impossible.
Certaines approches peuvent atténuer certains de ces symptômes, et l'une d'entre elles est évidente 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 de sécurité à surmonter. Et puisque les développeurs travaillent sur le code qui génère une infrastructure vitale pour héberger les applications, la sensibilisation à la sécurité est essentielle à chaque étape du processus.
Alors, comment un développeur débutant dans un environnement de serveur cloud pourrait-il s'y prendre pour améliorer ses compétences, apprendre les ficelles du métier et aborder la version avec une sensibilisation accrue à la sécurité ? Nous avons créé la prochaine série Coders Conquer Security pour lutter contre les vulnérabilités courantes de l'IaC, et ces prochains blogs se concentreront sur les mesures que vous pouvez prendre, en tant que développeur, pour commencer à déployer une infrastructure sécurisée sous forme de code dans votre propre organisation.
Allons-y.
Il existe une fable du Far West américain à propos d'un homme paranoïaque à l'idée que des bandits attaqueraient et cambrioleraient sa propriété. Pour compenser, il a investi dans toutes sortes de mesures de sécurité, comme l'installation d'une porte d'entrée très solide, la fermeture de toutes ses fenêtres et la mise à portée de main de nombreuses armes. Il a quand même été cambriolé une nuit alors qu'il dormait parce qu'il avait oublié de verrouiller la porte latérale. Les bandits ont simplement trouvé la sécurité handicapée et ont rapidement exploité la situation.
Désactiver les fonctionnalités de sécurité de votre infrastructure, c'est un peu comme ça. Même si votre réseau dispose d'une infrastructure de sécurité robuste, il ne sert à rien si certains éléments ont été désactivés.
Permettez-moi de vous lancer un défi avant de plonger dans le vif du sujet :
Cliquez sur le lien ci-dessus et vous serez redirigé vers notre plateforme de formation gamifiée, où vous pourrez tenter de neutraliser une faille de sécurité désactivée dès maintenant. (Attention : Il s'ouvrira dans Kubernetes, mais utilisez le menu déroulant et vous pourrez choisir parmi Docker, CloudFormation, Terraform et Ansible).
Comment t'es-tu débrouillé ? Si vous avez encore du travail à faire, lisez ce qui suit :
Les fonctions de sécurité peuvent être désactivées pour diverses raisons. Avec certaines applications et certains frameworks, ils peuvent être désactivés par défaut et doivent d'abord être activés pour commencer à fonctionner. Il est également possible que les administrateurs aient désactivé des fonctions de sécurité spécifiques afin de pouvoir effectuer plus facilement certaines tâches sans être constamment mis à l'épreuve ou bloqués (par exemple, rendre un compartiment AWS S3 public). Une fois leur travail terminé, ils peuvent oublier de réactiver les fonctions désactivées. Ils pourraient également préférer les laisser éteints pour faciliter leur travail à l'avenir.
Pourquoi les fonctionnalités de sécurité désactivées sont si dangereuses
La désactivation d'une ou de plusieurs fonctionnalités de sécurité est une mauvaise chose pour plusieurs raisons. D'une part, la fonctionnalité de sécurité a été intégrée aux ressources de l'infrastructure pour se protéger contre un exploit, une menace ou une vulnérabilité connus. S'il est désactivé, il ne sera pas en mesure de protéger vos ressources.
Les attaquants tenteront toujours de trouver d'abord les vulnérabilités facilement exploitables et peuvent même utiliser un script pour corriger les faiblesses courantes. C'est un peu comme un voleur qui inspecte toutes les voitures d'une rue pour voir si les portes sont déverrouillées, ce qui est beaucoup plus facile que de casser une vitre. Les pirates informatiques seront peut-être surpris de constater qu'une défense de sécurité courante est inactive. Mais lorsque cela se produira, il ne leur faudra pas longtemps pour l'exploiter.
Deuxièmement, le fait de mettre en place une bonne sécurité puis de la désactiver crée un faux sentiment de sécurité. Les administrateurs peuvent penser qu'ils sont protégés contre les menaces courantes s'ils ne savent pas que quelqu'un a désactivé ces défenses.
À titre d'exemple de la manière dont un attaquant pourrait tirer parti d'une fonctionnalité de sécurité désactivée, considérez la fonctionnalité de sécurité AWS S3 qui consiste à bloquer l'accès public. Avec l'accès public bloqué à Amazon S3, les administrateurs de comptes et les propriétaires de compartiments peuvent facilement configurer des contrôles centralisés pour limiter l'accès public à leurs ressources Amazon S3. Cependant, certains administrateurs rencontrant des problèmes lors de l'accès au compartiment S3 décident de le rendre public afin de terminer la tâche le plus rapidement possible. S'il oublie d'activer cette fonctionnalité de sécurité, un attaquant aura un accès complet aux informations stockées dans ce compartiment S3, ce qui entraînera non seulement la divulgation d'informations, mais également des coûts supplémentaires en raison des frais de transfert de données.
Comparons du code réel ; jetez un œil à ces extraits de CloudFormation :
Vulnérable :
Seau d'entreprise :
Type : AWS : :S3 : :Bucket
Propriétés :
Configuration du bloc d'accès public :
BlockPublicACLS : faux
BlockPublicPolicy : faux
IgnorepublicACLS : faux
RestrictPublicBuckets : faux
Configuration du versionnage :
État : Activé
Chiffrement du bucket :
Configuration du chiffrement côté serveur :
- Chiffrement côté serveur par défaut :
Algorithme SSE : « AES256 »
Sécurisé :
Seau d'entreprise :
Type : AWS : :S3 : :Bucket
Propriétés :
Configuration du bloc d'accès public :
BlockPublicACLS : vrai
BlockPublicPolicy : vrai
Ignorepublicacls : vrai
RestrictPublicBuckets : vrai
Configuration du versionnage :
État : Activé
Chiffrement du bucket :
Configuration du chiffrement côté serveur :
- Chiffrement côté serveur par défaut :
Algorithme SSE : « AES256 »
Prévention des fonctionnalités de sécurité désactivées
Empêcher les fonctionnalités de sécurité désactivées de nuire à votre organisation est autant une question de politique que de pratique. Il devrait y avoir une politique ferme stipulant que les fonctionnalités de sécurité ne doivent être désactivées que dans des circonstances très spécifiques. Les incidents dans lesquels des fonctionnalités doivent être temporairement désactivées pour résoudre un problème ou mettre à jour des applications doivent être enregistrés. Une fois le travail requis terminé, les fonctionnalités doivent être vérifiées pour s'assurer qu'elles ont été complètement réactivées.
Si une fonction de sécurité doit être définitivement désactivée afin de rationaliser les opérations, d'autres protections doivent être fournies aux données concernées afin d'empêcher les pirates informatiques d'y accéder en l'absence de la protection par défaut. Si une fonction de protection requise a été désactivée, ce n'est qu'une question de temps avant qu'un attaquant ne trouve cette porte déverrouillée et exploite la situation.
Apprenez-en plus, lancez-vous des défis :
Consultez le Secure Code Warrior des pages de blog pour en savoir plus sur cette vulnérabilité et sur la manière de protéger votre organisation et vos clients des ravages causés par d'autres failles de sécurité et vulnérabilités.
Êtes-vous prêt à trouver et à corriger cette vulnérabilité maintenant que vous avez lu l'article ? Il est temps deEssayez un défi de sécurité gamifié sur IaC sur la plateforme Secure Code Warrior pour perfectionner et mettre à jour toutes vos compétences en matière de cybersécurité.
Cette série hebdomadaire couvre nos huit principales vulnérabilités liées à l'infrastructure en tant que code ; revenez la semaine prochaine pour en savoir plus !
Govern AI-driven development before it ships
Measure AI-assisted risk, enforce secure coding policy at commit, and accelerate secure delivery across your SDLC.
Explore more blogs
Lorem ipsum diam quis enim lobortis scelerisque fermentum dui faucibus in ornare quam viverra orci sagittis eu volutpat odio facilisis.
%252520%252520(3).avif)
Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Security as culture: How Blue Prism cultivates world-class secure developers
Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed

One Culture of Security: How Sage built their security champions program with agile secure code learning
Discover how Sage enhanced security with a flexible, relationship-focused approach, creating 200+ security champions and achieving measurable risk reduction.
Secure AI-driven development before it ships
See developer risk, enforce policy, and prevent vulnerabilities across your software development lifecycle.



