Les codeurs conquièrent la sécurité Série "Infrastructure as Code" : Fonctions de sécurité désactivées
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 !
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.
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émonstrationMatias 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.
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 !
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 !
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émonstrationMatias 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.
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
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échargerRessources pour vous aider à démarrer
Évaluation comparative des compétences en matière de sécurité : Rationalisation de la conception sécurisée dans l'entreprise
Le mouvement "Secure-by-Design" (conception sécurisée) est l'avenir du développement de logiciels sécurisés. Découvrez les éléments clés que les entreprises doivent garder à l'esprit lorsqu'elles envisagent une initiative de conception sécurisée.
DigitalOcean réduit sa dette de sécurité avec Secure Code Warrior
L'utilisation par DigitalOcean de la formation Secure Code Warrior a considérablement réduit la dette de sécurité, permettant aux équipes de se concentrer davantage sur l'innovation et la productivité. L'amélioration de la sécurité a renforcé la qualité des produits et l'avantage concurrentiel de l'entreprise. À l'avenir, le score de confiance SCW les aidera à améliorer leurs pratiques de sécurité et à continuer à stimuler l'innovation.
Ressources pour vous aider à démarrer
La note de confiance révèle la valeur des initiatives d'amélioration de la sécurité par la conception
Nos recherches ont montré que la formation au code sécurisé fonctionne. Le Trust Score, qui utilise un algorithme s'appuyant sur plus de 20 millions de points de données d'apprentissage issus du travail de plus de 250 000 apprenants dans plus de 600 organisations, révèle son efficacité à réduire les vulnérabilités et la manière de rendre l'initiative encore plus efficace.
Sécurité réactive contre sécurité préventive : La prévention est un meilleur remède
L'idée d'apporter une sécurité préventive aux codes et systèmes existants en même temps qu'aux applications plus récentes peut sembler décourageante, mais une approche "Secure-by-Design", mise en œuvre en améliorant les compétences des développeurs, permet d'appliquer les meilleures pratiques de sécurité à ces systèmes. C'est la meilleure chance qu'ont de nombreuses organisations d'améliorer leur sécurité.
Les avantages de l'évaluation des compétences des développeurs en matière de sécurité
L'importance croissante accordée au code sécurisé et aux principes de conception sécurisée exige que les développeurs soient formés à la cybersécurité dès le début du cycle de développement durable, et que des outils tels que le Trust Score de Secure Code Warriorles aident à mesurer et à améliorer leurs progrès.
Assurer le succès des initiatives de conception sécurisée de l'entreprise
Notre dernier document de recherche, Benchmarking Security Skills : Streamlining Secure-by-Design in the Enterprise est le résultat d'une analyse approfondie d'initiatives réelles de conception sécurisée au niveau de l'entreprise, et de l'élaboration d'approches de meilleures pratiques basées sur des conclusions fondées sur des données.