Blog

Les codeurs conquièrent la sécurité Série "Infrastructure as Code" : Fonctions de sécurité désactivées

Matias Madou, Ph.D.
Publié le 04 mai 2020

De nos jours, les menaces qui pèsent sur la cybersécurité sont omniprésentes et incessantes. Plus les 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 sont trop précieuses. En outre, il est devenu pratiquement impossible de suivre et de défendre chaque aspect de la surface d'attaque après le déploiement des programmes.

Il existe des approches qui peuvent atténuer certains de ces symptômes, et l'une d'entre elles est apparente lorsque des organisations astucieuses adoptent le concept d'infrastructure en tant que code (IaC). Bien sûr, comme pour tout développement, il y a des pièges à éviter en matière de sécurité. Et comme les développeurs travaillent sur le code qui génère l'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 serveurs en nuage peut-il se perfectionner, apprendre les ficelles du métier et aborder la construction avec une conscience accrue de la sécurité ? Nous avons créé la prochaine série Coders Conquer Security pour aborder les vulnérabilités IaC courantes, et ces prochains blogs se concentreront sur les étapes que vous, en tant que développeur, pouvez suivre pour commencer à déployer une infrastructure sécurisée en tant que code dans votre propre organisation.

Commençons.

Une fable de l'Ouest américain raconte l'histoire d'un homme paranoïaque qui craignait que des bandits n'attaquent et ne dévalisent 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 pose de planches sur toutes les fenêtres et la conservation d'un grand nombre d'armes à portée de main. Il a tout de même été cambriolé une nuit pendant son sommeil parce qu'il avait oublié de verrouiller la porte latérale. Les bandits ont simplement constaté que la sécurité était défaillante et ont rapidement exploité la situation.

Le fait de désactiver des fonctions de sécurité dans votre infrastructure s'apparente à cela. Même si votre réseau dispose d'une infrastructure de sécurité solide, elle ne sert pas à grand-chose si des éléments ont été désactivés.

Permettez-moi de vous lancer un défi avant d'entrer dans le vif du sujet :

Cliquez sur le lien ci-dessus et vous serez transporté vers notre plateforme de formation ludique, où vous pourrez tenter d'éliminer dès maintenant une vulnérabilité de la fonction de sécurité désactivée. (Attention : Il s'ouvrira dans Kubernetes, mais utilisez le menu déroulant et vous pourrez choisir entre Docker, CloudFormation, Terraform et Ansible).

Quels sont vos résultats ? Si vous avez encore du travail à faire, lisez la suite :

Les fonctions de sécurité peuvent être désactivées pour diverses raisons. Avec certaines applications et certains frameworks, elles peuvent être désactivées par défaut et doivent d'abord être activées 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 contestés ou bloqués (par exemple, rendre public un seau AWS S3). Une fois leur travail terminé, ils peuvent oublier de réactiver ces fonctions désactivées. Ils peuvent également préférer les laisser désactivées pour se faciliter la tâche à l'avenir.

Pourquoi les dispositifs de sécurité désactivés sont-ils si dangereux ?

Le fait d'avoir une ou plusieurs fonctions de sécurité désactivées est néfaste pour plusieurs raisons. Tout d'abord, la fonction de sécurité a été intégrée aux ressources de l'infrastructure pour les protéger contre un exploit, une menace ou une vulnérabilité connus. S'il est désactivé, il ne pourra pas protéger vos ressources.

Les attaquants essaieront toujours de trouver en premier les failles facilement exploitables et peuvent même utiliser un script pour passer en revue les faiblesses les plus courantes. C'est un peu comme si un voleur vérifiait toutes les voitures d'une rue pour voir si une porte est déverrouillée, ce qui est beaucoup plus facile que de briser une fenêtre. Les pirates peuvent être surpris de constater qu'un dispositif de sécurité courant est inactif. Mais lorsque cela se produit, il ne leur faut 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.

Pour illustrer la manière dont un pirate peut tirer parti d'une fonction de sécurité désactivée, prenons l'exemple de la fonction de sécurité AWS S3 qui consiste à bloquer l'accès public. Avec le blocage de l'accès public à Amazon S3, les administrateurs de comptes et les propriétaires de seaux peuvent facilement mettre en place 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 à un bac S3 décident de le rendre public afin d'effectuer la tâche le plus rapidement possible. S'ils oublient d'activer cette fonction de sécurité, un pirate aura un accès complet aux informations stockées dans ce seau S3, ce qui entraînera non seulement la divulgation d'informations, mais aussi des coûts supplémentaires dus aux frais de transfert de données.

Comparons un peu de code réel ; regardez ces extraits de CloudFormation :

Vulnérable :

CorporateBucket :
Type : AWS::S3::Bucket
Propriétés :
PublicAccessBlockConfiguration :
BlockPublicAcls : false
BlockPublicPolicy : false
IgnorePublicAcls : false
RestrictPublicBuckets : false
VersioningConfiguration :
Status : Enabled
BucketEncryption :
ServerSideEncryptionConfiguration :
- ServerSideEncryptionByDefault :
SSEAlgorithm : "AES256"

Sécurisé :

CorporateBucket :
Type : AWS::S3::Bucket
Propriétés :
PublicAccessBlockConfiguration :
BlockPublicAcls : true
BlockPublicPolicy : true
IgnorePublicAcls : true
RestrictPublicBuckets : true
VersioningConfiguration :
Status : Enabled
BucketEncryption :
ServerSideEncryptionConfiguration :
- ServerSideEncryptionByDefault :
SSEAlgorithm : "AES256"

Empêcher la désactivation des dispositifs de sécurité

Empêcher les fonctions de sécurité désactivées de nuire à votre organisation est autant une question de politique que de pratique. Il convient de mettre en place une politique ferme stipulant que les fonctions de sécurité ne doivent être désactivées que dans des circonstances très spécifiques. Les incidents au cours desquels des fonctions doivent être temporairement désactivées pour résoudre un problème ou mettre à jour des applications doivent être consignés. Une fois les travaux terminés, il convient de vérifier que les dispositifs ont été pleinement réactivés.

Si une fonction de sécurité doit être désactivée de manière permanente afin de rationaliser les opérations, d'autres protections doivent être fournies aux données concernées afin de garantir que les pirates ne pourront pas y accéder en l'absence de la protection par défaut. Si une fonction de protection nécessaire a été désactivée, ce n'est qu'une question de temps avant qu'un pirate ne trouve cette porte déverrouillée et n'exploite la situation.

Apprenez-en plus, lancez-vous des défis :

Consultez les pages du Secure Code Warrior pour en savoir plus sur cette vulnérabilité et sur la manière de protéger votre organisation et vos clients contre les ravages causés par d'autres failles de sécurité et vulnérabilités.

Prêt à trouver et à corriger cette vulnérabilité maintenant que vous avez lu l'article ? Il est temps d'essayer un défi de sécurité gamifié de l'IaC sur la plateforme Secure Code Warrior pour garder toutes vos compétences en cybersécurité aiguisées et à jour.

Il s'agit d'une série hebdomadaire couvrant les huit principales vulnérabilités de l'infrastructure en tant que code ; revenez la semaine prochaine pour en savoir plus !

Voir la ressource
Voir la ressource

Les attaquants essaieront toujours de trouver en premier les failles facilement exploitables et peuvent même utiliser un script pour passer en revue les faiblesses les plus courantes. C'est un peu comme si un voleur vérifiait toutes les voitures d'une rue pour voir si des portes sont déverrouillées, ce qui est beaucoup plus facile que de briser une fenêtre.

Vous souhaitez en savoir plus ?

Matias Madou est expert en sécurité, chercheur, directeur technique et cofondateur de Secure Code Warrior. Matias a obtenu son doctorat en sécurité des applications à l'université de Gand, en se concentrant sur les solutions d'analyse statique. Il a ensuite rejoint Fortify aux États-Unis, où il s'est rendu compte qu'il ne suffisait pas de détecter les problèmes de code sans aider les développeurs à écrire du code sécurisé. C'est ce qui l'a incité à développer des produits qui aident les développeurs, allègent le fardeau de la sécurité et dépassent les attentes des clients. Lorsqu'il n'est pas à son bureau en tant que membre de l'équipe Awesome, il aime être sur scène pour présenter des conférences, notamment RSA Conference, BlackHat et DefCon.

Secure Code Warrior est là pour vous aider à sécuriser le code tout au long du cycle de vie du développement logiciel et à créer une culture dans laquelle la cybersécurité est une priorité. Que vous soyez responsable AppSec, développeur, CISO ou toute autre personne impliquée dans la sécurité, nous pouvons aider votre organisation à réduire les risques associés à un code non sécurisé.

Réservez une démonstration
Partager sur :
Auteur
Matias Madou, Ph.D.
Publié le 04 mai 2020

Matias Madou est expert en sécurité, chercheur, directeur technique et cofondateur de Secure Code Warrior. Matias a obtenu son doctorat en sécurité des applications à l'université de Gand, en se concentrant sur les solutions d'analyse statique. Il a ensuite rejoint Fortify aux États-Unis, où il s'est rendu compte qu'il ne suffisait pas de détecter les problèmes de code sans aider les développeurs à écrire du code sécurisé. C'est ce qui l'a incité à développer des produits qui aident les développeurs, allègent le fardeau de la sécurité et dépassent les attentes des clients. Lorsqu'il n'est pas à son bureau en tant que membre de l'équipe Awesome, il aime être sur scène pour présenter des conférences, notamment RSA Conference, BlackHat et DefCon.

Matias est un chercheur et un développeur qui possède plus de 15 ans d'expérience pratique dans le domaine de la sécurité des logiciels. Il a développé des solutions pour des entreprises telles que Fortify Software et sa propre entreprise Sensei Security. Au cours de sa carrière, Matias a dirigé de nombreux projets de recherche sur la sécurité des applications qui ont débouché sur des produits commerciaux et peut se targuer d'avoir déposé plus de 10 brevets. Lorsqu'il n'est pas à son bureau, Matias a été instructeur pour des formations avancées en matière de sécurité des applications ( courses ) et intervient régulièrement lors de conférences mondiales telles que RSA Conference, Black Hat, DefCon, BSIMM, OWASP AppSec et BruCon.

Matias est titulaire d'un doctorat en ingénierie informatique de l'Université de Gand, où il a étudié la sécurité des applications par le biais de l'obscurcissement des programmes afin de dissimuler le fonctionnement interne d'une application.

Partager sur :

De nos jours, les menaces qui pèsent sur la cybersécurité sont omniprésentes et incessantes. Plus les 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 sont trop précieuses. En outre, il est devenu pratiquement impossible de suivre et de défendre chaque aspect de la surface d'attaque après le déploiement des programmes.

Il existe des approches qui peuvent atténuer certains de ces symptômes, et l'une d'entre elles est apparente lorsque des organisations astucieuses adoptent le concept d'infrastructure en tant que code (IaC). Bien sûr, comme pour tout développement, il y a des pièges à éviter en matière de sécurité. Et comme les développeurs travaillent sur le code qui génère l'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 serveurs en nuage peut-il se perfectionner, apprendre les ficelles du métier et aborder la construction avec une conscience accrue de la sécurité ? Nous avons créé la prochaine série Coders Conquer Security pour aborder les vulnérabilités IaC courantes, et ces prochains blogs se concentreront sur les étapes que vous, en tant que développeur, pouvez suivre pour commencer à déployer une infrastructure sécurisée en tant que code dans votre propre organisation.

Commençons.

Une fable de l'Ouest américain raconte l'histoire d'un homme paranoïaque qui craignait que des bandits n'attaquent et ne dévalisent 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 pose de planches sur toutes les fenêtres et la conservation d'un grand nombre d'armes à portée de main. Il a tout de même été cambriolé une nuit pendant son sommeil parce qu'il avait oublié de verrouiller la porte latérale. Les bandits ont simplement constaté que la sécurité était défaillante et ont rapidement exploité la situation.

Le fait de désactiver des fonctions de sécurité dans votre infrastructure s'apparente à cela. Même si votre réseau dispose d'une infrastructure de sécurité solide, elle ne sert pas à grand-chose si des éléments ont été désactivés.

Permettez-moi de vous lancer un défi avant d'entrer dans le vif du sujet :

Cliquez sur le lien ci-dessus et vous serez transporté vers notre plateforme de formation ludique, où vous pourrez tenter d'éliminer dès maintenant une vulnérabilité de la fonction de sécurité désactivée. (Attention : Il s'ouvrira dans Kubernetes, mais utilisez le menu déroulant et vous pourrez choisir entre Docker, CloudFormation, Terraform et Ansible).

Quels sont vos résultats ? Si vous avez encore du travail à faire, lisez la suite :

Les fonctions de sécurité peuvent être désactivées pour diverses raisons. Avec certaines applications et certains frameworks, elles peuvent être désactivées par défaut et doivent d'abord être activées 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 contestés ou bloqués (par exemple, rendre public un seau AWS S3). Une fois leur travail terminé, ils peuvent oublier de réactiver ces fonctions désactivées. Ils peuvent également préférer les laisser désactivées pour se faciliter la tâche à l'avenir.

Pourquoi les dispositifs de sécurité désactivés sont-ils si dangereux ?

Le fait d'avoir une ou plusieurs fonctions de sécurité désactivées est néfaste pour plusieurs raisons. Tout d'abord, la fonction de sécurité a été intégrée aux ressources de l'infrastructure pour les protéger contre un exploit, une menace ou une vulnérabilité connus. S'il est désactivé, il ne pourra pas protéger vos ressources.

Les attaquants essaieront toujours de trouver en premier les failles facilement exploitables et peuvent même utiliser un script pour passer en revue les faiblesses les plus courantes. C'est un peu comme si un voleur vérifiait toutes les voitures d'une rue pour voir si une porte est déverrouillée, ce qui est beaucoup plus facile que de briser une fenêtre. Les pirates peuvent être surpris de constater qu'un dispositif de sécurité courant est inactif. Mais lorsque cela se produit, il ne leur faut 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.

Pour illustrer la manière dont un pirate peut tirer parti d'une fonction de sécurité désactivée, prenons l'exemple de la fonction de sécurité AWS S3 qui consiste à bloquer l'accès public. Avec le blocage de l'accès public à Amazon S3, les administrateurs de comptes et les propriétaires de seaux peuvent facilement mettre en place 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 à un bac S3 décident de le rendre public afin d'effectuer la tâche le plus rapidement possible. S'ils oublient d'activer cette fonction de sécurité, un pirate aura un accès complet aux informations stockées dans ce seau S3, ce qui entraînera non seulement la divulgation d'informations, mais aussi des coûts supplémentaires dus aux frais de transfert de données.

Comparons un peu de code réel ; regardez ces extraits de CloudFormation :

Vulnérable :

CorporateBucket :
Type : AWS::S3::Bucket
Propriétés :
PublicAccessBlockConfiguration :
BlockPublicAcls : false
BlockPublicPolicy : false
IgnorePublicAcls : false
RestrictPublicBuckets : false
VersioningConfiguration :
Status : Enabled
BucketEncryption :
ServerSideEncryptionConfiguration :
- ServerSideEncryptionByDefault :
SSEAlgorithm : "AES256"

Sécurisé :

CorporateBucket :
Type : AWS::S3::Bucket
Propriétés :
PublicAccessBlockConfiguration :
BlockPublicAcls : true
BlockPublicPolicy : true
IgnorePublicAcls : true
RestrictPublicBuckets : true
VersioningConfiguration :
Status : Enabled
BucketEncryption :
ServerSideEncryptionConfiguration :
- ServerSideEncryptionByDefault :
SSEAlgorithm : "AES256"

Empêcher la désactivation des dispositifs de sécurité

Empêcher les fonctions de sécurité désactivées de nuire à votre organisation est autant une question de politique que de pratique. Il convient de mettre en place une politique ferme stipulant que les fonctions de sécurité ne doivent être désactivées que dans des circonstances très spécifiques. Les incidents au cours desquels des fonctions doivent être temporairement désactivées pour résoudre un problème ou mettre à jour des applications doivent être consignés. Une fois les travaux terminés, il convient de vérifier que les dispositifs ont été pleinement réactivés.

Si une fonction de sécurité doit être désactivée de manière permanente afin de rationaliser les opérations, d'autres protections doivent être fournies aux données concernées afin de garantir que les pirates ne pourront pas y accéder en l'absence de la protection par défaut. Si une fonction de protection nécessaire a été désactivée, ce n'est qu'une question de temps avant qu'un pirate ne trouve cette porte déverrouillée et n'exploite la situation.

Apprenez-en plus, lancez-vous des défis :

Consultez les pages du Secure Code Warrior pour en savoir plus sur cette vulnérabilité et sur la manière de protéger votre organisation et vos clients contre les ravages causés par d'autres failles de sécurité et vulnérabilités.

Prêt à trouver et à corriger cette vulnérabilité maintenant que vous avez lu l'article ? Il est temps d'essayer un défi de sécurité gamifié de l'IaC sur la plateforme Secure Code Warrior pour garder toutes vos compétences en cybersécurité aiguisées et à jour.

Il s'agit d'une série hebdomadaire couvrant les huit principales vulnérabilités de l'infrastructure en tant que code ; revenez la semaine prochaine pour en savoir plus !

Voir la ressource
Voir la ressource

Remplissez le formulaire ci-dessous pour télécharger le rapport

Nous aimerions que vous nous autorisiez à vous envoyer des informations sur nos produits et/ou sur des sujets liés au codage sécurisé. Nous traiterons toujours vos données personnelles avec le plus grand soin et ne les vendrons jamais à d'autres entreprises à des fins de marketing.

Soumettre
Pour soumettre le formulaire, veuillez activer les cookies "Analytics". N'hésitez pas à les désactiver à nouveau une fois que vous aurez terminé.

De nos jours, les menaces qui pèsent sur la cybersécurité sont omniprésentes et incessantes. Plus les 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 sont trop précieuses. En outre, il est devenu pratiquement impossible de suivre et de défendre chaque aspect de la surface d'attaque après le déploiement des programmes.

Il existe des approches qui peuvent atténuer certains de ces symptômes, et l'une d'entre elles est apparente lorsque des organisations astucieuses adoptent le concept d'infrastructure en tant que code (IaC). Bien sûr, comme pour tout développement, il y a des pièges à éviter en matière de sécurité. Et comme les développeurs travaillent sur le code qui génère l'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 serveurs en nuage peut-il se perfectionner, apprendre les ficelles du métier et aborder la construction avec une conscience accrue de la sécurité ? Nous avons créé la prochaine série Coders Conquer Security pour aborder les vulnérabilités IaC courantes, et ces prochains blogs se concentreront sur les étapes que vous, en tant que développeur, pouvez suivre pour commencer à déployer une infrastructure sécurisée en tant que code dans votre propre organisation.

Commençons.

Une fable de l'Ouest américain raconte l'histoire d'un homme paranoïaque qui craignait que des bandits n'attaquent et ne dévalisent 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 pose de planches sur toutes les fenêtres et la conservation d'un grand nombre d'armes à portée de main. Il a tout de même été cambriolé une nuit pendant son sommeil parce qu'il avait oublié de verrouiller la porte latérale. Les bandits ont simplement constaté que la sécurité était défaillante et ont rapidement exploité la situation.

Le fait de désactiver des fonctions de sécurité dans votre infrastructure s'apparente à cela. Même si votre réseau dispose d'une infrastructure de sécurité solide, elle ne sert pas à grand-chose si des éléments ont été désactivés.

Permettez-moi de vous lancer un défi avant d'entrer dans le vif du sujet :

Cliquez sur le lien ci-dessus et vous serez transporté vers notre plateforme de formation ludique, où vous pourrez tenter d'éliminer dès maintenant une vulnérabilité de la fonction de sécurité désactivée. (Attention : Il s'ouvrira dans Kubernetes, mais utilisez le menu déroulant et vous pourrez choisir entre Docker, CloudFormation, Terraform et Ansible).

Quels sont vos résultats ? Si vous avez encore du travail à faire, lisez la suite :

Les fonctions de sécurité peuvent être désactivées pour diverses raisons. Avec certaines applications et certains frameworks, elles peuvent être désactivées par défaut et doivent d'abord être activées 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 contestés ou bloqués (par exemple, rendre public un seau AWS S3). Une fois leur travail terminé, ils peuvent oublier de réactiver ces fonctions désactivées. Ils peuvent également préférer les laisser désactivées pour se faciliter la tâche à l'avenir.

Pourquoi les dispositifs de sécurité désactivés sont-ils si dangereux ?

Le fait d'avoir une ou plusieurs fonctions de sécurité désactivées est néfaste pour plusieurs raisons. Tout d'abord, la fonction de sécurité a été intégrée aux ressources de l'infrastructure pour les protéger contre un exploit, une menace ou une vulnérabilité connus. S'il est désactivé, il ne pourra pas protéger vos ressources.

Les attaquants essaieront toujours de trouver en premier les failles facilement exploitables et peuvent même utiliser un script pour passer en revue les faiblesses les plus courantes. C'est un peu comme si un voleur vérifiait toutes les voitures d'une rue pour voir si une porte est déverrouillée, ce qui est beaucoup plus facile que de briser une fenêtre. Les pirates peuvent être surpris de constater qu'un dispositif de sécurité courant est inactif. Mais lorsque cela se produit, il ne leur faut 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.

Pour illustrer la manière dont un pirate peut tirer parti d'une fonction de sécurité désactivée, prenons l'exemple de la fonction de sécurité AWS S3 qui consiste à bloquer l'accès public. Avec le blocage de l'accès public à Amazon S3, les administrateurs de comptes et les propriétaires de seaux peuvent facilement mettre en place 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 à un bac S3 décident de le rendre public afin d'effectuer la tâche le plus rapidement possible. S'ils oublient d'activer cette fonction de sécurité, un pirate aura un accès complet aux informations stockées dans ce seau S3, ce qui entraînera non seulement la divulgation d'informations, mais aussi des coûts supplémentaires dus aux frais de transfert de données.

Comparons un peu de code réel ; regardez ces extraits de CloudFormation :

Vulnérable :

CorporateBucket :
Type : AWS::S3::Bucket
Propriétés :
PublicAccessBlockConfiguration :
BlockPublicAcls : false
BlockPublicPolicy : false
IgnorePublicAcls : false
RestrictPublicBuckets : false
VersioningConfiguration :
Status : Enabled
BucketEncryption :
ServerSideEncryptionConfiguration :
- ServerSideEncryptionByDefault :
SSEAlgorithm : "AES256"

Sécurisé :

CorporateBucket :
Type : AWS::S3::Bucket
Propriétés :
PublicAccessBlockConfiguration :
BlockPublicAcls : true
BlockPublicPolicy : true
IgnorePublicAcls : true
RestrictPublicBuckets : true
VersioningConfiguration :
Status : Enabled
BucketEncryption :
ServerSideEncryptionConfiguration :
- ServerSideEncryptionByDefault :
SSEAlgorithm : "AES256"

Empêcher la désactivation des dispositifs de sécurité

Empêcher les fonctions de sécurité désactivées de nuire à votre organisation est autant une question de politique que de pratique. Il convient de mettre en place une politique ferme stipulant que les fonctions de sécurité ne doivent être désactivées que dans des circonstances très spécifiques. Les incidents au cours desquels des fonctions doivent être temporairement désactivées pour résoudre un problème ou mettre à jour des applications doivent être consignés. Une fois les travaux terminés, il convient de vérifier que les dispositifs ont été pleinement réactivés.

Si une fonction de sécurité doit être désactivée de manière permanente afin de rationaliser les opérations, d'autres protections doivent être fournies aux données concernées afin de garantir que les pirates ne pourront pas y accéder en l'absence de la protection par défaut. Si une fonction de protection nécessaire a été désactivée, ce n'est qu'une question de temps avant qu'un pirate ne trouve cette porte déverrouillée et n'exploite la situation.

Apprenez-en plus, lancez-vous des défis :

Consultez les pages du Secure Code Warrior pour en savoir plus sur cette vulnérabilité et sur la manière de protéger votre organisation et vos clients contre les ravages causés par d'autres failles de sécurité et vulnérabilités.

Prêt à trouver et à corriger cette vulnérabilité maintenant que vous avez lu l'article ? Il est temps d'essayer un défi de sécurité gamifié de l'IaC sur la plateforme Secure Code Warrior pour garder toutes vos compétences en cybersécurité aiguisées et à jour.

Il s'agit d'une série hebdomadaire couvrant les huit principales vulnérabilités de l'infrastructure en tant que code ; revenez la semaine prochaine pour en savoir plus !

Accès aux ressources

Cliquez sur le lien ci-dessous et téléchargez le PDF de cette ressource.

Secure Code Warrior est là pour vous aider à sécuriser le code tout au long du cycle de vie du développement logiciel et à créer une culture dans laquelle la cybersécurité est une priorité. Que vous soyez responsable AppSec, développeur, CISO ou toute autre personne impliquée dans la sécurité, nous pouvons aider votre organisation à réduire les risques associés à un code non sécurisé.

Voir le rapportRéservez une démonstration
Partager sur :
Vous souhaitez en savoir plus ?

Partager sur :
Auteur
Matias Madou, Ph.D.
Publié le 04 mai 2020

Matias Madou est expert en sécurité, chercheur, directeur technique et cofondateur de Secure Code Warrior. Matias a obtenu son doctorat en sécurité des applications à l'université de Gand, en se concentrant sur les solutions d'analyse statique. Il a ensuite rejoint Fortify aux États-Unis, où il s'est rendu compte qu'il ne suffisait pas de détecter les problèmes de code sans aider les développeurs à écrire du code sécurisé. C'est ce qui l'a incité à développer des produits qui aident les développeurs, allègent le fardeau de la sécurité et dépassent les attentes des clients. Lorsqu'il n'est pas à son bureau en tant que membre de l'équipe Awesome, il aime être sur scène pour présenter des conférences, notamment RSA Conference, BlackHat et DefCon.

Matias est un chercheur et un développeur qui possède plus de 15 ans d'expérience pratique dans le domaine de la sécurité des logiciels. Il a développé des solutions pour des entreprises telles que Fortify Software et sa propre entreprise Sensei Security. Au cours de sa carrière, Matias a dirigé de nombreux projets de recherche sur la sécurité des applications qui ont débouché sur des produits commerciaux et peut se targuer d'avoir déposé plus de 10 brevets. Lorsqu'il n'est pas à son bureau, Matias a été instructeur pour des formations avancées en matière de sécurité des applications ( courses ) et intervient régulièrement lors de conférences mondiales telles que RSA Conference, Black Hat, DefCon, BSIMM, OWASP AppSec et BruCon.

Matias est titulaire d'un doctorat en ingénierie informatique de l'Université de Gand, où il a étudié la sécurité des applications par le biais de l'obscurcissement des programmes afin de dissimuler le fonctionnement interne d'une application.

Partager sur :

De nos jours, les menaces qui pèsent sur la cybersécurité sont omniprésentes et incessantes. Plus les 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 sont trop précieuses. En outre, il est devenu pratiquement impossible de suivre et de défendre chaque aspect de la surface d'attaque après le déploiement des programmes.

Il existe des approches qui peuvent atténuer certains de ces symptômes, et l'une d'entre elles est apparente lorsque des organisations astucieuses adoptent le concept d'infrastructure en tant que code (IaC). Bien sûr, comme pour tout développement, il y a des pièges à éviter en matière de sécurité. Et comme les développeurs travaillent sur le code qui génère l'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 serveurs en nuage peut-il se perfectionner, apprendre les ficelles du métier et aborder la construction avec une conscience accrue de la sécurité ? Nous avons créé la prochaine série Coders Conquer Security pour aborder les vulnérabilités IaC courantes, et ces prochains blogs se concentreront sur les étapes que vous, en tant que développeur, pouvez suivre pour commencer à déployer une infrastructure sécurisée en tant que code dans votre propre organisation.

Commençons.

Une fable de l'Ouest américain raconte l'histoire d'un homme paranoïaque qui craignait que des bandits n'attaquent et ne dévalisent 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 pose de planches sur toutes les fenêtres et la conservation d'un grand nombre d'armes à portée de main. Il a tout de même été cambriolé une nuit pendant son sommeil parce qu'il avait oublié de verrouiller la porte latérale. Les bandits ont simplement constaté que la sécurité était défaillante et ont rapidement exploité la situation.

Le fait de désactiver des fonctions de sécurité dans votre infrastructure s'apparente à cela. Même si votre réseau dispose d'une infrastructure de sécurité solide, elle ne sert pas à grand-chose si des éléments ont été désactivés.

Permettez-moi de vous lancer un défi avant d'entrer dans le vif du sujet :

Cliquez sur le lien ci-dessus et vous serez transporté vers notre plateforme de formation ludique, où vous pourrez tenter d'éliminer dès maintenant une vulnérabilité de la fonction de sécurité désactivée. (Attention : Il s'ouvrira dans Kubernetes, mais utilisez le menu déroulant et vous pourrez choisir entre Docker, CloudFormation, Terraform et Ansible).

Quels sont vos résultats ? Si vous avez encore du travail à faire, lisez la suite :

Les fonctions de sécurité peuvent être désactivées pour diverses raisons. Avec certaines applications et certains frameworks, elles peuvent être désactivées par défaut et doivent d'abord être activées 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 contestés ou bloqués (par exemple, rendre public un seau AWS S3). Une fois leur travail terminé, ils peuvent oublier de réactiver ces fonctions désactivées. Ils peuvent également préférer les laisser désactivées pour se faciliter la tâche à l'avenir.

Pourquoi les dispositifs de sécurité désactivés sont-ils si dangereux ?

Le fait d'avoir une ou plusieurs fonctions de sécurité désactivées est néfaste pour plusieurs raisons. Tout d'abord, la fonction de sécurité a été intégrée aux ressources de l'infrastructure pour les protéger contre un exploit, une menace ou une vulnérabilité connus. S'il est désactivé, il ne pourra pas protéger vos ressources.

Les attaquants essaieront toujours de trouver en premier les failles facilement exploitables et peuvent même utiliser un script pour passer en revue les faiblesses les plus courantes. C'est un peu comme si un voleur vérifiait toutes les voitures d'une rue pour voir si une porte est déverrouillée, ce qui est beaucoup plus facile que de briser une fenêtre. Les pirates peuvent être surpris de constater qu'un dispositif de sécurité courant est inactif. Mais lorsque cela se produit, il ne leur faut 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.

Pour illustrer la manière dont un pirate peut tirer parti d'une fonction de sécurité désactivée, prenons l'exemple de la fonction de sécurité AWS S3 qui consiste à bloquer l'accès public. Avec le blocage de l'accès public à Amazon S3, les administrateurs de comptes et les propriétaires de seaux peuvent facilement mettre en place 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 à un bac S3 décident de le rendre public afin d'effectuer la tâche le plus rapidement possible. S'ils oublient d'activer cette fonction de sécurité, un pirate aura un accès complet aux informations stockées dans ce seau S3, ce qui entraînera non seulement la divulgation d'informations, mais aussi des coûts supplémentaires dus aux frais de transfert de données.

Comparons un peu de code réel ; regardez ces extraits de CloudFormation :

Vulnérable :

CorporateBucket :
Type : AWS::S3::Bucket
Propriétés :
PublicAccessBlockConfiguration :
BlockPublicAcls : false
BlockPublicPolicy : false
IgnorePublicAcls : false
RestrictPublicBuckets : false
VersioningConfiguration :
Status : Enabled
BucketEncryption :
ServerSideEncryptionConfiguration :
- ServerSideEncryptionByDefault :
SSEAlgorithm : "AES256"

Sécurisé :

CorporateBucket :
Type : AWS::S3::Bucket
Propriétés :
PublicAccessBlockConfiguration :
BlockPublicAcls : true
BlockPublicPolicy : true
IgnorePublicAcls : true
RestrictPublicBuckets : true
VersioningConfiguration :
Status : Enabled
BucketEncryption :
ServerSideEncryptionConfiguration :
- ServerSideEncryptionByDefault :
SSEAlgorithm : "AES256"

Empêcher la désactivation des dispositifs de sécurité

Empêcher les fonctions de sécurité désactivées de nuire à votre organisation est autant une question de politique que de pratique. Il convient de mettre en place une politique ferme stipulant que les fonctions de sécurité ne doivent être désactivées que dans des circonstances très spécifiques. Les incidents au cours desquels des fonctions doivent être temporairement désactivées pour résoudre un problème ou mettre à jour des applications doivent être consignés. Une fois les travaux terminés, il convient de vérifier que les dispositifs ont été pleinement réactivés.

Si une fonction de sécurité doit être désactivée de manière permanente afin de rationaliser les opérations, d'autres protections doivent être fournies aux données concernées afin de garantir que les pirates ne pourront pas y accéder en l'absence de la protection par défaut. Si une fonction de protection nécessaire a été désactivée, ce n'est qu'une question de temps avant qu'un pirate ne trouve cette porte déverrouillée et n'exploite la situation.

Apprenez-en plus, lancez-vous des défis :

Consultez les pages du Secure Code Warrior pour en savoir plus sur cette vulnérabilité et sur la manière de protéger votre organisation et vos clients contre les ravages causés par d'autres failles de sécurité et vulnérabilités.

Prêt à trouver et à corriger cette vulnérabilité maintenant que vous avez lu l'article ? Il est temps d'essayer un défi de sécurité gamifié de l'IaC sur la plateforme Secure Code Warrior pour garder toutes vos compétences en cybersécurité aiguisées et à jour.

Il s'agit d'une série hebdomadaire couvrant les huit principales vulnérabilités de l'infrastructure en tant que code ; revenez la semaine prochaine pour en savoir plus !

Table des matières

Voir la ressource
Vous souhaitez en savoir plus ?

Matias Madou est expert en sécurité, chercheur, directeur technique et cofondateur de Secure Code Warrior. Matias a obtenu son doctorat en sécurité des applications à l'université de Gand, en se concentrant sur les solutions d'analyse statique. Il a ensuite rejoint Fortify aux États-Unis, où il s'est rendu compte qu'il ne suffisait pas de détecter les problèmes de code sans aider les développeurs à écrire du code sécurisé. C'est ce qui l'a incité à développer des produits qui aident les développeurs, allègent le fardeau de la sécurité et dépassent les attentes des clients. Lorsqu'il n'est pas à son bureau en tant que membre de l'équipe Awesome, il aime être sur scène pour présenter des conférences, notamment RSA Conference, BlackHat et DefCon.

Secure Code Warrior est là pour vous aider à sécuriser le code tout au long du cycle de vie du développement logiciel et à créer une culture dans laquelle la cybersécurité est une priorité. Que vous soyez responsable AppSec, développeur, CISO ou toute autre personne impliquée dans la sécurité, nous pouvons aider votre organisation à réduire les risques associés à un code non sécurisé.

Réservez une démonstrationTélécharger
Partager sur :
Centre de ressources

Ressources pour vous aider à démarrer

Plus d'articles
Centre de ressources

Ressources pour vous aider à démarrer

Plus d'articles