De nos jours, les menaces liées à la cybersécurité sont omniprésentes et incessantes. À mesure que notre vie se numérise, les risques liés à la cybercriminalité augmentent également. Il existe un nombre considérable de codes à sécuriser et les données personnelles sont extrêmement précieuses. De plus, il est devenu 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, notamment lorsque les organisations avisées adoptent le concept d'Infrastructure as Code (IaC). Bien entendu, comme dans tout autre domaine de développement, il existe plusieurs problèmes de sécurité à surmonter. De plus, étant donné que les développeurs créent le code qui génère l'infrastructure nécessaire à l'hébergement des applications, il est essentiel qu'ils soient sensibilisés à la sécurité à chaque étape du processus.
Dans ce cas, quelle est la meilleure approche pour les développeurs qui découvrent l'environnement des serveurs cloud afin d'acquérir les compétences techniques, de maîtriser les techniques et de renforcer leur sensibilisation à la sécurité ? Afin de remédier aux vulnérabilités courantes de l'IaC, nous avons créé la prochaine série Coders Conquer Security.Les prochains articles de blog se concentreront sur les étapes que les développeurs peuvent suivre pour commencer à déployer une infrastructure de sécurité sous forme de code dans leur organisation.
Pouvons-nous commencer ?
Il existe une fable sur un homme qui vivait dans l'Ouest américain. Cet homme souffrait de délires paranoïaques, croyant que des bandits allaient attaquer sa ferme pour la piller. Pour se protéger, il a installé une porte d'entrée très solide, ferma toutes les fenêtres et investit dans toutes sortes de dispositifs de sécurité, notamment en stockant de nombreuses armes à portée de main. Cependant, une nuit, il oublia de verrouiller la porte latérale et fut victime d'un cambriolage pendant son sommeil. Les voleurs repérèrent rapidement le gardien désarmé et profitèrent de la situation.
La désactivation des fonctions de sécurité dans l'infrastructure est similaire. Même si le réseau dispose d'une infrastructure de sécurité robuste, cela n'est pas très utile si les éléments sont désactivés.
Avant de commencer, je vous propose de relever un défi.
En cliquant sur le lien ci-dessus, vous serez redirigé vers une plateforme d'apprentissage ludique. Vous pourrez y corriger immédiatement les vulnérabilités liées aux fonctionnalités de sécurité désactivées. (Remarque : la plateforme s'ouvre dans Kubernetes, mais vous pouvez sélectionner Docker, CloudFormation, Terraform ou Ansible à l'aide du menu déroulant.)
Comment allez-vous ? Si vous avez encore des tâches à accomplir, veuillez lire les informations ci-dessous.
Les fonctionnalités de sécurité peuvent être désactivées pour diverses raisons. Certaines applications et certains frameworks peuvent les désactiver par défaut, et il est nécessaire de les activer pour qu'ils fonctionnent. De plus, l'administrateur peut avoir désactivé certaines fonctionnalités de sécurité afin de faciliter certaines tâches sans être constamment confronté à des défis ou à des blocages. (par exemple, en rendant public un compartiment AWS S3). Une fois la tâche terminée, il est possible d'oublier de réactiver les fonctionnalités désactivées. Il est également possible de préférer laisser les fonctionnalités désactivées afin de faciliter les tâches ultérieures.
Pourquoi les fonctions de sécurité désactivées peuvent-elles être dangereuses ?
Il est déconseillé de désactiver une ou plusieurs fonctionnalités de sécurité pour plusieurs raisons. L'une d'entre elles est que ces fonctionnalités ont été ajoutées aux ressources de l'infrastructure afin de les protéger contre les exploits, menaces ou vulnérabilités connus. Si vous désactivez ces fonctionnalités, vous ne pourrez plus protéger vos ressources.
Les attaquants tentent toujours de trouver en premier lieu les vulnérabilités faciles à exploiter et peuvent utiliser des scripts pour détecter les faiblesses courantes. Cela revient à faire comme un voleur qui fouille toutes les voitures dans la rue pour vérifier si les portes sont ouvertes. C'est beaucoup plus facile que de briser une vitre. Les pirates peuvent être surpris de constater que les défenses de sécurité courantes sont désactivées. Cependant, si cela se produit, il ne leur faudra pas longtemps pour en tirer profit.
Deuxièmement, si les mesures de sécurité sont bien en place mais désactivées, cela peut créer une fausse impression de sécurité. Si l'administrateur n'est pas informé que quelqu'un a désactivé ces mesures de protection, il pourrait croire qu'il est protégé contre les menaces courantes.
Considérons, à titre d'exemple, la fonctionnalité de sécurité AWS S3 appelée « blocage de l'accès public », qui illustre comment un attaquant pourrait exploiter une fonctionnalité de sécurité désactivée. La fonctionnalité « Blocage de l'accès public » d'Amazon S3 permet aux administrateurs de compte et aux propriétaires de compartiments de configurer facilement un contrôle centralisé afin de limiter l'accès public aux ressources Amazon S3.Cependant, certains administrateurs rencontrant des difficultés pour accéder à un compartiment S3 peuvent décider de le rendre public afin de terminer leur travail le plus rapidement possible. S'ils omettent d'activer la fonctionnalité de sécurité, les attaquants peuvent alors accéder à toutes les informations stockées dans ce compartiment S3, ce qui entraîne non seulement une fuite d'informations, mais également des coûts supplémentaires liés aux frais de transfert de données.
Veuillez comparer le code réel. Veuillez examiner l'extrait CloudFormation suivant.
Vulnérable :
Bucket d'entreprise :
Type : AWS : :S3 : :Bucket
Propriétés :
Configuration du blocage d'accès public :
Blocage ACL public : faux
Blocage de la politique publique : faux
Ignorer l'ACL public : faux
Limitation du bucket public : faux
Configuration de la gestion des versions :
État : activé
Chiffrement du bucket :
Configuration du chiffrement côté serveur :
- Chiffrement côté serveur par défaut :
Algorithme SSE : « AES 256 »
Sécurité :
Bucket d'entreprise :
Type : AWS : :S3 : :Bucket
Propriétés :
Configuration du blocage d'accès public :
Blocage ACL public : True
Blocage de la politique publique : True
Ignorer l'ACL public : True
Limitation du bucket public : True
Configuration de la gestion des versions :
Statut : Activé
Chiffrement du bucket :
Configuration du chiffrement côté serveur :
- Chiffrement côté serveur par défaut :
Algorithme SSE : « AES 256 »
Prévention des fonctions de sécurité désactivées
Il est tout aussi important de disposer de politiques que de pratiques pour éviter que les fonctionnalités de sécurité désactivées aient un impact négatif sur l'organisation. Il est essentiel de mettre en place une politique stricte stipulant que les fonctionnalités de sécurité ne doivent être désactivées que dans des circonstances très spécifiques. Les cas où une fonctionnalité doit être temporairement désactivée pour résoudre un problème ou mettre à jour une application doivent être consignés. Une fois les tâches nécessaires effectuées, il est impératif de vérifier que la fonctionnalité a bien été réactivée.
Afin de simplifier l'exploitation, si les fonctions de sécurité doivent être désactivées de manière permanente, il est nécessaire de fournir une protection supplémentaire aux données concernées afin d'empêcher les pirates d'y accéder en l'absence de protection de base. Si les fonctions de protection nécessaires sont désactivées, il ne s'agit que d'une question de temps avant qu'un attaquant ne trouve une porte ouverte et n'exploite la situation.
Veuillez vous renseigner plus en détail et relever le défi.
Veuillez consulter notre page de blog pour obtenir des informations détaillées sur cette vulnérabilité et découvrir comment protéger votre organisation et vos clients contre les dommages causés par d'autres failles et vulnérabilités de sécurité.
Après avoir lu cet article, êtes-vous prêt à identifier et corriger cette vulnérabilité ? Il est temps de passer à l'action.Essayez le défi de sécurité ludique iAC. Perfectionnez et maintenez à jour toutes vos compétences en cybersécurité Secure Code Warrior .
Cette série hebdomadaire traite des huit principales vulnérabilités de l'infrastructure en tant que code. Pour plus de détails, veuillez revenir la semaine prochaine.