
Los programadores conquistan la infraestructura de seguridad como serie de códigos: falta el control de acceso a nivel de función
Ha llegado el momento de la próxima entrega de nuestra serie Infrastructure as Code, los blogs que llevarán a los desarrolladores como usted a un nivel completamente nuevo de conciencia de seguridad al implementar una infraestructura segura en su propia organización.
Ah, por cierto... ¿cómo te fue con el desafío de mala configuración de seguridad del blog anterior? Si quieres abordar ahora mismo una vulnerabilidad de control de acceso a nivel funcional que falta, dirígete a la plataforma:
(El enlace de arriba lo llevará al desafío de Kubernetes, pero una vez que esté en la plataforma, use el menú desplegable para elegir también entre Ansible, CloudFormation, Terraform o Docker. Tu elección.)
Casi todas las aplicaciones implementadas en la actualidad tienen algún tipo de mecanismo de control de acceso que comprueba si un usuario tiene permiso para realizar las funciones solicitadas. Es prácticamente la piedra angular de una buena seguridad, así como de la funcionalidad, a la hora de crear una aplicación. De hecho, todas las aplicaciones web necesitan controles de acceso para permitir a los usuarios con diferentes privilegios utilizar el programa.
Sin embargo, pueden producirse problemas cuando esas mismas funciones de verificación para el control de acceso no se realizan a nivel de infraestructura o están mal configuradas. Sin un control de acceso a nivel de infraestructura en perfecto orden, los piratas informáticos pueden utilizar esa vulnerabilidad como puerta de entrada para espiar sin autorización o atacar a toda costa.
De hecho, aprovechar las vulnerabilidades de control de acceso a las funciones faltantes o mal configuradas es extremadamente fácil. Los atacantes ni siquiera necesitan ser demasiado hábiles. Solo necesitan saber qué comandos ejecutan funciones dentro del marco que soporte la aplicación. Si lo hacen, es solo cuestión de prueba y error. Pueden enviar continuamente solicitudes que no deberían permitirse y, tan pronto como una tenga éxito, el sitio web, la aplicación, el servidor o incluso toda la red de destino podrían quedar expuestos.
¿Cómo funcionan los exploits de control de acceso a nivel de función faltantes?
Hay varias maneras en las que los controles de acceso a nivel funcional pueden introducirse en una organización. Por ejemplo, el acceso a nivel de función puede dejarse en manos de una aplicación y no ser verificado por la infraestructura subyacente. O bien, el control de acceso a nivel de infraestructura puede estar mal configurado. En algunos casos, los administradores asumen que los usuarios no autorizados no sabrán cómo acceder a los recursos de la infraestructura que solo los usuarios de nivel superior deberían poder ver y utilizan un modelo de «seguridad por oscuridad» que rara vez funciona.
Como ejemplo de seguridad por oscuridad, es probable que la siguiente URL sea vulnerable a los ataques:
http://companywebsite.com/app/NormalUserHomepage
Si un usuario autenticado emplea una técnica denominada Navegación forzada de URL, podría intentar acceder a una página que solo se muestra a los administradores. Un ejemplo podría ser:
http://companywebsite.com/app/AdminPages
Si no existe ninguna verificación del lado del servidor, simplemente se les mostrarán las páginas de administración (si su nombre coincide con la solicitud) y, a continuación, tendrán acceso a las funciones adicionales que los administradores realicen desde la nueva página. Si el servidor muestra el error «página no encontrada», el atacante puede seguir intentándolo hasta que averigüe el nombre que se le ha dado a la página de administración.
Para los atacantes, explotar controles de acceso a nivel de función faltantes es un proceso similar. En lugar de intentar navegar por páginas no autorizadas, envían solicitudes de funciones. Por ejemplo, podrían intentar crear un nuevo usuario con derechos de administrador. Por lo tanto, su solicitud tendría un aspecto similar al siguiente, según el marco:
Publicar/Acción/Crear nombre de usuario = hacker&pw=contraseña&role=admin
Si no existe ningún control de acceso a nivel de función, el ejemplo anterior se ejecutará correctamente y se creará una nueva cuenta de administrador. Una vez que el atacante vuelva a iniciar sesión como nuevo administrador, tendrá el mismo acceso y permisos que cualquier otro administrador de esa red o servidor.
La solución para los controles de acceso a nivel de función faltantes
Dado que es tan fácil para los atacantes aprovechar las vulnerabilidades de control de acceso a nivel de función que faltan, es fundamental que las encuentren, las solucionen y las prevengan. Afortunadamente, esto no es demasiado difícil con algunos conocimientos técnicos e infraestructuras básicas como Formación sobre seguridad de códigos.
La protección principal provendrá de la implementación de la autorización basada en roles a nivel de infraestructura. Nunca confíe en las aplicaciones para gestionar esa función. Incluso si lo hacen, contar con una autorización del lado de la infraestructura garantizará que no se pierda nada. Lo ideal es que la autorización provenga de una ubicación centralizada (por ejemplo, AWS IAM, Azure IAM, etc.) integrada en la rutina de la organización y que se aplique a cada nueva aplicación. Estos procesos de autorización pueden provenir del propio marco o de cualquier número de módulos externos fáciles de usar.
Por último, su organización debe adoptar el concepto de privilegio mínimo. Todas las acciones y funciones deben denegarse de forma predeterminada, y el proceso de autorización debe utilizarse para conceder a los usuarios válidos permiso para hacer lo que necesiten. Solo se les debe conceder el permiso suficiente para realizar la función requerida y solo durante el tiempo que sea necesario.
La falta de controles de acceso a nivel funcional puede ser devastador. Pero, afortunadamente, al incorporar buenas prácticas de autorización a nivel de infraestructura en su organización, puede evitar fácilmente que este problema se produzca.
¿Crees que estás listo para detectar un error de control de acceso en la naturaleza? Compara estos fragmentos de código de Docker: uno vulnerable y otro seguro:
Vulnérable :
DE quay.io/prometheus/busybox:último
VERSIÓN ARG = 0.12.1
Nombre de archivo ARG=mysqld_exporter-$ {VERSIÓN} .linux-amd64
URL de ARG = https://github.com/prometheus/mysqld_exporter/releases/download/v
EJECUTE wget $URL$version/$fileName.tar.gz &&\
tar -xvf $nombrearchivo.tar.gz &&\
mv $nombre_archivo/mysqld_exporter /bin/mysqld_exporter
COPIAR .my.cnf /home/.my.cnf
COPIAR. /scripts/entrypoint.sh ~/entrypoint.sh
USUARIO root
EXPONER 9104
PUNTO DE ENTRADA [«sh», "~/entrypoint.sh"]
CMD [«/bin/mysqld_exporter»]
Assurance :
DE quay.io/prometheus/busybox:último
VERSIÓN ARG = 0.12.1
Nombre de archivo ARG=mysqld_exporter-$ {VERSIÓN} .linux-amd64
URL de ARG = https://github.com/prometheus/mysqld_exporter/releases/download/v
EJECUTE wget $URL$version/$fileName.tar.gz &&\
tar -xvf $nombrearchivo.tar.gz &&\
mv $nombre_archivo/mysqld_exporter /bin/mysqld_exporter
COPIAR .my.cnf /home/.my.cnf
COPIAR. /scripts/entrypoint.sh ~/entrypoint.sh
USUARIO: nadie
EXPONER 9104
PUNTO DE ENTRADA [«sh», "~/entrypoint.sh"]
CMD [«/bin/mysqld_exporter»]
Obtenga más información, desafíese a sí mismo
Veuillez consulter le 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 conséquences d'autres failles et vulnérabilités de sécurité.
Y si te lo perdiste antes, puedes prueba un desafío de seguridad gamificado para iAC en la plataforma Secure Code Warrior para mantener todas sus habilidades de ciberseguridad perfeccionadas y actualizadas.
¡Estén atentos para el próximo capítulo!


Sin un control de acceso a nivel de infraestructura en perfecto orden, se abre toda una empresa a los atacantes, quienes pueden usar esa vulnerabilidad como puerta de entrada para espiar sin autorización o para realizar un ataque total.
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 là pour aider votre organisation à protéger le code tout au long du cycle de vie du développement logiciel et à créer une culture où la cybersécurité est une priorité. Que vous soyez administrateur 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é.
Veuillez réserver une démonstration.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.


Ha llegado el momento de la próxima entrega de nuestra serie Infrastructure as Code, los blogs que llevarán a los desarrolladores como usted a un nivel completamente nuevo de conciencia de seguridad al implementar una infraestructura segura en su propia organización.
Ah, por cierto... ¿cómo te fue con el desafío de mala configuración de seguridad del blog anterior? Si quieres abordar ahora mismo una vulnerabilidad de control de acceso a nivel funcional que falta, dirígete a la plataforma:
(El enlace de arriba lo llevará al desafío de Kubernetes, pero una vez que esté en la plataforma, use el menú desplegable para elegir también entre Ansible, CloudFormation, Terraform o Docker. Tu elección.)
Casi todas las aplicaciones implementadas en la actualidad tienen algún tipo de mecanismo de control de acceso que comprueba si un usuario tiene permiso para realizar las funciones solicitadas. Es prácticamente la piedra angular de una buena seguridad, así como de la funcionalidad, a la hora de crear una aplicación. De hecho, todas las aplicaciones web necesitan controles de acceso para permitir a los usuarios con diferentes privilegios utilizar el programa.
Sin embargo, pueden producirse problemas cuando esas mismas funciones de verificación para el control de acceso no se realizan a nivel de infraestructura o están mal configuradas. Sin un control de acceso a nivel de infraestructura en perfecto orden, los piratas informáticos pueden utilizar esa vulnerabilidad como puerta de entrada para espiar sin autorización o atacar a toda costa.
De hecho, aprovechar las vulnerabilidades de control de acceso a las funciones faltantes o mal configuradas es extremadamente fácil. Los atacantes ni siquiera necesitan ser demasiado hábiles. Solo necesitan saber qué comandos ejecutan funciones dentro del marco que soporte la aplicación. Si lo hacen, es solo cuestión de prueba y error. Pueden enviar continuamente solicitudes que no deberían permitirse y, tan pronto como una tenga éxito, el sitio web, la aplicación, el servidor o incluso toda la red de destino podrían quedar expuestos.
¿Cómo funcionan los exploits de control de acceso a nivel de función faltantes?
Hay varias maneras en las que los controles de acceso a nivel funcional pueden introducirse en una organización. Por ejemplo, el acceso a nivel de función puede dejarse en manos de una aplicación y no ser verificado por la infraestructura subyacente. O bien, el control de acceso a nivel de infraestructura puede estar mal configurado. En algunos casos, los administradores asumen que los usuarios no autorizados no sabrán cómo acceder a los recursos de la infraestructura que solo los usuarios de nivel superior deberían poder ver y utilizan un modelo de «seguridad por oscuridad» que rara vez funciona.
Como ejemplo de seguridad por oscuridad, es probable que la siguiente URL sea vulnerable a los ataques:
http://companywebsite.com/app/NormalUserHomepage
Si un usuario autenticado emplea una técnica denominada Navegación forzada de URL, podría intentar acceder a una página que solo se muestra a los administradores. Un ejemplo podría ser:
http://companywebsite.com/app/AdminPages
Si no existe ninguna verificación del lado del servidor, simplemente se les mostrarán las páginas de administración (si su nombre coincide con la solicitud) y, a continuación, tendrán acceso a las funciones adicionales que los administradores realicen desde la nueva página. Si el servidor muestra el error «página no encontrada», el atacante puede seguir intentándolo hasta que averigüe el nombre que se le ha dado a la página de administración.
Para los atacantes, explotar controles de acceso a nivel de función faltantes es un proceso similar. En lugar de intentar navegar por páginas no autorizadas, envían solicitudes de funciones. Por ejemplo, podrían intentar crear un nuevo usuario con derechos de administrador. Por lo tanto, su solicitud tendría un aspecto similar al siguiente, según el marco:
Publicar/Acción/Crear nombre de usuario = hacker&pw=contraseña&role=admin
Si no existe ningún control de acceso a nivel de función, el ejemplo anterior se ejecutará correctamente y se creará una nueva cuenta de administrador. Una vez que el atacante vuelva a iniciar sesión como nuevo administrador, tendrá el mismo acceso y permisos que cualquier otro administrador de esa red o servidor.
La solución para los controles de acceso a nivel de función faltantes
Dado que es tan fácil para los atacantes aprovechar las vulnerabilidades de control de acceso a nivel de función que faltan, es fundamental que las encuentren, las solucionen y las prevengan. Afortunadamente, esto no es demasiado difícil con algunos conocimientos técnicos e infraestructuras básicas como Formación sobre seguridad de códigos.
La protección principal provendrá de la implementación de la autorización basada en roles a nivel de infraestructura. Nunca confíe en las aplicaciones para gestionar esa función. Incluso si lo hacen, contar con una autorización del lado de la infraestructura garantizará que no se pierda nada. Lo ideal es que la autorización provenga de una ubicación centralizada (por ejemplo, AWS IAM, Azure IAM, etc.) integrada en la rutina de la organización y que se aplique a cada nueva aplicación. Estos procesos de autorización pueden provenir del propio marco o de cualquier número de módulos externos fáciles de usar.
Por último, su organización debe adoptar el concepto de privilegio mínimo. Todas las acciones y funciones deben denegarse de forma predeterminada, y el proceso de autorización debe utilizarse para conceder a los usuarios válidos permiso para hacer lo que necesiten. Solo se les debe conceder el permiso suficiente para realizar la función requerida y solo durante el tiempo que sea necesario.
La falta de controles de acceso a nivel funcional puede ser devastador. Pero, afortunadamente, al incorporar buenas prácticas de autorización a nivel de infraestructura en su organización, puede evitar fácilmente que este problema se produzca.
¿Crees que estás listo para detectar un error de control de acceso en la naturaleza? Compara estos fragmentos de código de Docker: uno vulnerable y otro seguro:
Vulnérable :
DE quay.io/prometheus/busybox:último
VERSIÓN ARG = 0.12.1
Nombre de archivo ARG=mysqld_exporter-$ {VERSIÓN} .linux-amd64
URL de ARG = https://github.com/prometheus/mysqld_exporter/releases/download/v
EJECUTE wget $URL$version/$fileName.tar.gz &&\
tar -xvf $nombrearchivo.tar.gz &&\
mv $nombre_archivo/mysqld_exporter /bin/mysqld_exporter
COPIAR .my.cnf /home/.my.cnf
COPIAR. /scripts/entrypoint.sh ~/entrypoint.sh
USUARIO root
EXPONER 9104
PUNTO DE ENTRADA [«sh», "~/entrypoint.sh"]
CMD [«/bin/mysqld_exporter»]
Assurance :
DE quay.io/prometheus/busybox:último
VERSIÓN ARG = 0.12.1
Nombre de archivo ARG=mysqld_exporter-$ {VERSIÓN} .linux-amd64
URL de ARG = https://github.com/prometheus/mysqld_exporter/releases/download/v
EJECUTE wget $URL$version/$fileName.tar.gz &&\
tar -xvf $nombrearchivo.tar.gz &&\
mv $nombre_archivo/mysqld_exporter /bin/mysqld_exporter
COPIAR .my.cnf /home/.my.cnf
COPIAR. /scripts/entrypoint.sh ~/entrypoint.sh
USUARIO: nadie
EXPONER 9104
PUNTO DE ENTRADA [«sh», "~/entrypoint.sh"]
CMD [«/bin/mysqld_exporter»]
Obtenga más información, desafíese a sí mismo
Veuillez consulter le 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 conséquences d'autres failles et vulnérabilités de sécurité.
Y si te lo perdiste antes, puedes prueba un desafío de seguridad gamificado para iAC en la plataforma Secure Code Warrior para mantener todas sus habilidades de ciberseguridad perfeccionadas y actualizadas.
¡Estén atentos para el próximo capítulo!

Ha llegado el momento de la próxima entrega de nuestra serie Infrastructure as Code, los blogs que llevarán a los desarrolladores como usted a un nivel completamente nuevo de conciencia de seguridad al implementar una infraestructura segura en su propia organización.
Ah, por cierto... ¿cómo te fue con el desafío de mala configuración de seguridad del blog anterior? Si quieres abordar ahora mismo una vulnerabilidad de control de acceso a nivel funcional que falta, dirígete a la plataforma:
(El enlace de arriba lo llevará al desafío de Kubernetes, pero una vez que esté en la plataforma, use el menú desplegable para elegir también entre Ansible, CloudFormation, Terraform o Docker. Tu elección.)
Casi todas las aplicaciones implementadas en la actualidad tienen algún tipo de mecanismo de control de acceso que comprueba si un usuario tiene permiso para realizar las funciones solicitadas. Es prácticamente la piedra angular de una buena seguridad, así como de la funcionalidad, a la hora de crear una aplicación. De hecho, todas las aplicaciones web necesitan controles de acceso para permitir a los usuarios con diferentes privilegios utilizar el programa.
Sin embargo, pueden producirse problemas cuando esas mismas funciones de verificación para el control de acceso no se realizan a nivel de infraestructura o están mal configuradas. Sin un control de acceso a nivel de infraestructura en perfecto orden, los piratas informáticos pueden utilizar esa vulnerabilidad como puerta de entrada para espiar sin autorización o atacar a toda costa.
De hecho, aprovechar las vulnerabilidades de control de acceso a las funciones faltantes o mal configuradas es extremadamente fácil. Los atacantes ni siquiera necesitan ser demasiado hábiles. Solo necesitan saber qué comandos ejecutan funciones dentro del marco que soporte la aplicación. Si lo hacen, es solo cuestión de prueba y error. Pueden enviar continuamente solicitudes que no deberían permitirse y, tan pronto como una tenga éxito, el sitio web, la aplicación, el servidor o incluso toda la red de destino podrían quedar expuestos.
¿Cómo funcionan los exploits de control de acceso a nivel de función faltantes?
Hay varias maneras en las que los controles de acceso a nivel funcional pueden introducirse en una organización. Por ejemplo, el acceso a nivel de función puede dejarse en manos de una aplicación y no ser verificado por la infraestructura subyacente. O bien, el control de acceso a nivel de infraestructura puede estar mal configurado. En algunos casos, los administradores asumen que los usuarios no autorizados no sabrán cómo acceder a los recursos de la infraestructura que solo los usuarios de nivel superior deberían poder ver y utilizan un modelo de «seguridad por oscuridad» que rara vez funciona.
Como ejemplo de seguridad por oscuridad, es probable que la siguiente URL sea vulnerable a los ataques:
http://companywebsite.com/app/NormalUserHomepage
Si un usuario autenticado emplea una técnica denominada Navegación forzada de URL, podría intentar acceder a una página que solo se muestra a los administradores. Un ejemplo podría ser:
http://companywebsite.com/app/AdminPages
Si no existe ninguna verificación del lado del servidor, simplemente se les mostrarán las páginas de administración (si su nombre coincide con la solicitud) y, a continuación, tendrán acceso a las funciones adicionales que los administradores realicen desde la nueva página. Si el servidor muestra el error «página no encontrada», el atacante puede seguir intentándolo hasta que averigüe el nombre que se le ha dado a la página de administración.
Para los atacantes, explotar controles de acceso a nivel de función faltantes es un proceso similar. En lugar de intentar navegar por páginas no autorizadas, envían solicitudes de funciones. Por ejemplo, podrían intentar crear un nuevo usuario con derechos de administrador. Por lo tanto, su solicitud tendría un aspecto similar al siguiente, según el marco:
Publicar/Acción/Crear nombre de usuario = hacker&pw=contraseña&role=admin
Si no existe ningún control de acceso a nivel de función, el ejemplo anterior se ejecutará correctamente y se creará una nueva cuenta de administrador. Una vez que el atacante vuelva a iniciar sesión como nuevo administrador, tendrá el mismo acceso y permisos que cualquier otro administrador de esa red o servidor.
La solución para los controles de acceso a nivel de función faltantes
Dado que es tan fácil para los atacantes aprovechar las vulnerabilidades de control de acceso a nivel de función que faltan, es fundamental que las encuentren, las solucionen y las prevengan. Afortunadamente, esto no es demasiado difícil con algunos conocimientos técnicos e infraestructuras básicas como Formación sobre seguridad de códigos.
La protección principal provendrá de la implementación de la autorización basada en roles a nivel de infraestructura. Nunca confíe en las aplicaciones para gestionar esa función. Incluso si lo hacen, contar con una autorización del lado de la infraestructura garantizará que no se pierda nada. Lo ideal es que la autorización provenga de una ubicación centralizada (por ejemplo, AWS IAM, Azure IAM, etc.) integrada en la rutina de la organización y que se aplique a cada nueva aplicación. Estos procesos de autorización pueden provenir del propio marco o de cualquier número de módulos externos fáciles de usar.
Por último, su organización debe adoptar el concepto de privilegio mínimo. Todas las acciones y funciones deben denegarse de forma predeterminada, y el proceso de autorización debe utilizarse para conceder a los usuarios válidos permiso para hacer lo que necesiten. Solo se les debe conceder el permiso suficiente para realizar la función requerida y solo durante el tiempo que sea necesario.
La falta de controles de acceso a nivel funcional puede ser devastador. Pero, afortunadamente, al incorporar buenas prácticas de autorización a nivel de infraestructura en su organización, puede evitar fácilmente que este problema se produzca.
¿Crees que estás listo para detectar un error de control de acceso en la naturaleza? Compara estos fragmentos de código de Docker: uno vulnerable y otro seguro:
Vulnérable :
DE quay.io/prometheus/busybox:último
VERSIÓN ARG = 0.12.1
Nombre de archivo ARG=mysqld_exporter-$ {VERSIÓN} .linux-amd64
URL de ARG = https://github.com/prometheus/mysqld_exporter/releases/download/v
EJECUTE wget $URL$version/$fileName.tar.gz &&\
tar -xvf $nombrearchivo.tar.gz &&\
mv $nombre_archivo/mysqld_exporter /bin/mysqld_exporter
COPIAR .my.cnf /home/.my.cnf
COPIAR. /scripts/entrypoint.sh ~/entrypoint.sh
USUARIO root
EXPONER 9104
PUNTO DE ENTRADA [«sh», "~/entrypoint.sh"]
CMD [«/bin/mysqld_exporter»]
Assurance :
DE quay.io/prometheus/busybox:último
VERSIÓN ARG = 0.12.1
Nombre de archivo ARG=mysqld_exporter-$ {VERSIÓN} .linux-amd64
URL de ARG = https://github.com/prometheus/mysqld_exporter/releases/download/v
EJECUTE wget $URL$version/$fileName.tar.gz &&\
tar -xvf $nombrearchivo.tar.gz &&\
mv $nombre_archivo/mysqld_exporter /bin/mysqld_exporter
COPIAR .my.cnf /home/.my.cnf
COPIAR. /scripts/entrypoint.sh ~/entrypoint.sh
USUARIO: nadie
EXPONER 9104
PUNTO DE ENTRADA [«sh», "~/entrypoint.sh"]
CMD [«/bin/mysqld_exporter»]
Obtenga más información, desafíese a sí mismo
Veuillez consulter le 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 conséquences d'autres failles et vulnérabilités de sécurité.
Y si te lo perdiste antes, puedes prueba un desafío de seguridad gamificado para iAC en la plataforma Secure Code Warrior para mantener todas sus habilidades de ciberseguridad perfeccionadas y actualizadas.
¡Estén atentos para el próximo capítulo!

Veuillez cliquer sur le lien ci-dessous et télécharger le PDF de cette ressource.
Secure Code Warrior là pour aider votre organisation à protéger le code tout au long du cycle de vie du développement logiciel et à créer une culture où la cybersécurité est une priorité. Que vous soyez administrateur 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é.
Veuillez consulter le rapportVeuillez réserver une démonstration.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.
Ha llegado el momento de la próxima entrega de nuestra serie Infrastructure as Code, los blogs que llevarán a los desarrolladores como usted a un nivel completamente nuevo de conciencia de seguridad al implementar una infraestructura segura en su propia organización.
Ah, por cierto... ¿cómo te fue con el desafío de mala configuración de seguridad del blog anterior? Si quieres abordar ahora mismo una vulnerabilidad de control de acceso a nivel funcional que falta, dirígete a la plataforma:
(El enlace de arriba lo llevará al desafío de Kubernetes, pero una vez que esté en la plataforma, use el menú desplegable para elegir también entre Ansible, CloudFormation, Terraform o Docker. Tu elección.)
Casi todas las aplicaciones implementadas en la actualidad tienen algún tipo de mecanismo de control de acceso que comprueba si un usuario tiene permiso para realizar las funciones solicitadas. Es prácticamente la piedra angular de una buena seguridad, así como de la funcionalidad, a la hora de crear una aplicación. De hecho, todas las aplicaciones web necesitan controles de acceso para permitir a los usuarios con diferentes privilegios utilizar el programa.
Sin embargo, pueden producirse problemas cuando esas mismas funciones de verificación para el control de acceso no se realizan a nivel de infraestructura o están mal configuradas. Sin un control de acceso a nivel de infraestructura en perfecto orden, los piratas informáticos pueden utilizar esa vulnerabilidad como puerta de entrada para espiar sin autorización o atacar a toda costa.
De hecho, aprovechar las vulnerabilidades de control de acceso a las funciones faltantes o mal configuradas es extremadamente fácil. Los atacantes ni siquiera necesitan ser demasiado hábiles. Solo necesitan saber qué comandos ejecutan funciones dentro del marco que soporte la aplicación. Si lo hacen, es solo cuestión de prueba y error. Pueden enviar continuamente solicitudes que no deberían permitirse y, tan pronto como una tenga éxito, el sitio web, la aplicación, el servidor o incluso toda la red de destino podrían quedar expuestos.
¿Cómo funcionan los exploits de control de acceso a nivel de función faltantes?
Hay varias maneras en las que los controles de acceso a nivel funcional pueden introducirse en una organización. Por ejemplo, el acceso a nivel de función puede dejarse en manos de una aplicación y no ser verificado por la infraestructura subyacente. O bien, el control de acceso a nivel de infraestructura puede estar mal configurado. En algunos casos, los administradores asumen que los usuarios no autorizados no sabrán cómo acceder a los recursos de la infraestructura que solo los usuarios de nivel superior deberían poder ver y utilizan un modelo de «seguridad por oscuridad» que rara vez funciona.
Como ejemplo de seguridad por oscuridad, es probable que la siguiente URL sea vulnerable a los ataques:
http://companywebsite.com/app/NormalUserHomepage
Si un usuario autenticado emplea una técnica denominada Navegación forzada de URL, podría intentar acceder a una página que solo se muestra a los administradores. Un ejemplo podría ser:
http://companywebsite.com/app/AdminPages
Si no existe ninguna verificación del lado del servidor, simplemente se les mostrarán las páginas de administración (si su nombre coincide con la solicitud) y, a continuación, tendrán acceso a las funciones adicionales que los administradores realicen desde la nueva página. Si el servidor muestra el error «página no encontrada», el atacante puede seguir intentándolo hasta que averigüe el nombre que se le ha dado a la página de administración.
Para los atacantes, explotar controles de acceso a nivel de función faltantes es un proceso similar. En lugar de intentar navegar por páginas no autorizadas, envían solicitudes de funciones. Por ejemplo, podrían intentar crear un nuevo usuario con derechos de administrador. Por lo tanto, su solicitud tendría un aspecto similar al siguiente, según el marco:
Publicar/Acción/Crear nombre de usuario = hacker&pw=contraseña&role=admin
Si no existe ningún control de acceso a nivel de función, el ejemplo anterior se ejecutará correctamente y se creará una nueva cuenta de administrador. Una vez que el atacante vuelva a iniciar sesión como nuevo administrador, tendrá el mismo acceso y permisos que cualquier otro administrador de esa red o servidor.
La solución para los controles de acceso a nivel de función faltantes
Dado que es tan fácil para los atacantes aprovechar las vulnerabilidades de control de acceso a nivel de función que faltan, es fundamental que las encuentren, las solucionen y las prevengan. Afortunadamente, esto no es demasiado difícil con algunos conocimientos técnicos e infraestructuras básicas como Formación sobre seguridad de códigos.
La protección principal provendrá de la implementación de la autorización basada en roles a nivel de infraestructura. Nunca confíe en las aplicaciones para gestionar esa función. Incluso si lo hacen, contar con una autorización del lado de la infraestructura garantizará que no se pierda nada. Lo ideal es que la autorización provenga de una ubicación centralizada (por ejemplo, AWS IAM, Azure IAM, etc.) integrada en la rutina de la organización y que se aplique a cada nueva aplicación. Estos procesos de autorización pueden provenir del propio marco o de cualquier número de módulos externos fáciles de usar.
Por último, su organización debe adoptar el concepto de privilegio mínimo. Todas las acciones y funciones deben denegarse de forma predeterminada, y el proceso de autorización debe utilizarse para conceder a los usuarios válidos permiso para hacer lo que necesiten. Solo se les debe conceder el permiso suficiente para realizar la función requerida y solo durante el tiempo que sea necesario.
La falta de controles de acceso a nivel funcional puede ser devastador. Pero, afortunadamente, al incorporar buenas prácticas de autorización a nivel de infraestructura en su organización, puede evitar fácilmente que este problema se produzca.
¿Crees que estás listo para detectar un error de control de acceso en la naturaleza? Compara estos fragmentos de código de Docker: uno vulnerable y otro seguro:
Vulnérable :
DE quay.io/prometheus/busybox:último
VERSIÓN ARG = 0.12.1
Nombre de archivo ARG=mysqld_exporter-$ {VERSIÓN} .linux-amd64
URL de ARG = https://github.com/prometheus/mysqld_exporter/releases/download/v
EJECUTE wget $URL$version/$fileName.tar.gz &&\
tar -xvf $nombrearchivo.tar.gz &&\
mv $nombre_archivo/mysqld_exporter /bin/mysqld_exporter
COPIAR .my.cnf /home/.my.cnf
COPIAR. /scripts/entrypoint.sh ~/entrypoint.sh
USUARIO root
EXPONER 9104
PUNTO DE ENTRADA [«sh», "~/entrypoint.sh"]
CMD [«/bin/mysqld_exporter»]
Assurance :
DE quay.io/prometheus/busybox:último
VERSIÓN ARG = 0.12.1
Nombre de archivo ARG=mysqld_exporter-$ {VERSIÓN} .linux-amd64
URL de ARG = https://github.com/prometheus/mysqld_exporter/releases/download/v
EJECUTE wget $URL$version/$fileName.tar.gz &&\
tar -xvf $nombrearchivo.tar.gz &&\
mv $nombre_archivo/mysqld_exporter /bin/mysqld_exporter
COPIAR .my.cnf /home/.my.cnf
COPIAR. /scripts/entrypoint.sh ~/entrypoint.sh
USUARIO: nadie
EXPONER 9104
PUNTO DE ENTRADA [«sh», "~/entrypoint.sh"]
CMD [«/bin/mysqld_exporter»]
Obtenga más información, desafíese a sí mismo
Veuillez consulter le 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 conséquences d'autres failles et vulnérabilités de sécurité.
Y si te lo perdiste antes, puedes prueba un desafío de seguridad gamificado para iAC en la plataforma Secure Code Warrior para mantener todas sus habilidades de ciberseguridad perfeccionadas y actualizadas.
¡Estén atentos para el próximo capítulo!
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 là pour aider votre organisation à protéger le code tout au long du cycle de vie du développement logiciel et à créer une culture où la cybersécurité est une priorité. Que vous soyez administrateur 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é.
Veuillez réserver une démonstration.TéléchargerRessources pour débuter
Thèmes et contenu de la formation sur le code sécurisé
Notre contenu de pointe évolue constamment afin de s'adapter au paysage changeant du développement logiciel, en tenant compte de votre rôle. Nous proposons des thèmes allant de l'IA à l'injection XQuery pour différents postes, des architectes et ingénieurs aux chefs de produit et responsables de l'assurance qualité. Découvrez un aperçu de ce que notre catalogue de contenu a à offrir par thème et par fonction.
La Chambre de commerce établit la norme en matière de sécurité à grande échelle axée sur les développeurs
La Chambre de commerce néerlandaise explique comment elle a intégré le codage sécurisé dans le développement quotidien grâce à des certifications basées sur les rôles, à l'évaluation comparative du Trust Score et à une culture de responsabilité partagée en matière de sécurité.
Modélisation des menaces avec l'IA : transformer chaque développeur en modélisateur de menaces
Vous repartirez mieux équipé pour aider les développeurs à combiner les idées et les techniques de modélisation des menaces avec les outils d'IA qu'ils utilisent déjà pour renforcer la sécurité, améliorer la collaboration et créer des logiciels plus résilients dès le départ.
Ressources pour débuter
Cybermon est de retour : les missions IA de Beat the Boss sont désormais disponibles à la demande.
Cybermon 2025 Beat the Boss est désormais disponible toute l'année chez SCW. Mettez en œuvre des défis de sécurité avancés basés sur l'IA et le LLM afin de renforcer le développement sécurisé de l'IA à grande échelle.
Explication de la loi sur la cyber-résilience : implications pour le développement de logiciels sécurisés dès leur conception
Découvrez les exigences de la loi européenne sur la cyber-résilience (CRA), à qui elle s'applique et comment les équipes d'ingénierie peuvent se préparer grâce à des pratiques de conception sécurisées, à la prévention des vulnérabilités et au développement des compétences des développeurs.
Facilitateur 1 : Critères de réussite définis et mesurables
Le catalyseur n° 1 inaugure notre série en 10 parties intitulée « Les catalyseurs de la réussite », qui montre comment relier la codification sécurisée aux résultats commerciaux, tels que la réduction des risques et la rapidité d'atteinte de la maturité du programme à long terme.




%20(1).avif)
.avif)
