Blog

Coders Conquer Security Infrastructure as Code Series - Lógica empresarial

Doctor Matias Madou
Publicado el 22 de junio de 2020

Bueno, esto es todo (por ahora). Hemos llegado al final de nuestra serie de Infraestructura como Código. Esperamos que te hayas divertido conquistando problemas de seguridad en Docker, Ansible, Kubernetes, Terraform y CloudFormation. Sin embargo, antes de despedirnos, tenemos una vulnerabilidad más que dominar: los errores de lógica de negocio.

¿Crees que ya estás preparado para poner a prueba tus habilidades? Prueba el último desafío gamificado:

Si todavía no tienes claras algunas cosas, sigue leyendo:

Las vulnerabilidades en las que queremos centrarnos hoy son los fallos de lógica de negocio. Estos pueden ocurrir cuando los codificadores no implementan adecuadamente las reglas de lógica de negocio que podrían dejar sus aplicaciones vulnerables a diferentes tipos de ataques si un usuario malicioso decide explotarlos. Dependiendo del propósito y la funcionalidad implementada dentro de cada aplicación, un fallo de lógica de negocio puede permitir la escalada de privilegios, el uso inadecuado de recursos o cualquier número de procesos de negocio no deseados.

A diferencia de muchas vulnerabilidades, la implementación incorrecta de reglas de lógica de negocio puede ser sorprendentemente sutil. Requieren una vigilancia especial para garantizar que no se cuelen en las aplicaciones y el código.

¿Cuáles son algunos ejemplos de fallos en la lógica empresarial?

Como ejemplo de lo fácil que puede ser inducir fallos en la lógica de negocio, considere el siguiente ejemplo de un entorno Docker definido con un archivo Docker Compose. Para preparar los contenedores para realizar funciones, un desarrollador podría utilizar una política de recursos estándar, definida en el archivo Docker Compose, como el siguiente ejemplo:

desplegar:
recursos:
límites:
cpus: "0.5"
reservas:
cpus: "0.5"

Aunque a primera vista parece que está bien, esta política de recursos para contenedores no está limitando adecuadamente el uso de recursos. Un atacante podría aprovechar el fallo de la lógica de negocio para implementar un ataque de denegación de servicio (DoS).

Para intentar limitar que los usuarios ocupen demasiados recursos, un desarrollador podría intentar definir mejor lo que puede soportar cada contenedor. Así, el nuevo código podría incluir una restricción de colocación:

desplegar:
recursos:
límites:
cpus: "0.5"
reservas:
cpus: "0.5"
colocación:
restricciones:
- "node.labels.limit_cpu == 100M"
- "node.labels.limit_memory == 0.5"

A primera vista, parece que esto resolvería el fallo de la lógica empresarial. Sin embargo, la nueva restricción de colocación no afecta al límite de uso de recursos para el servicio de contenedores Docker. Sólo se utiliza para seleccionar un nodo para programar el contenedor. En este caso, un ataque DoS sigue siendo posible. El atacante necesitaría comprometer un contenedor Docker primero, pero podría drenar los recursos sin límites después de eso.

Como puede ver, pensar en los fallos de la lógica de negocio y programar para eliminarlos puede ser una tarea complicada.

Eliminación de los fallos de la lógica empresarial

Con los defectos de la lógica de negocio, la clave es saber que existen. Hay que estar atento para mantenerlos fuera del entorno mientras se escribe el nuevo código. Las reglas de negocio y las mejores prácticas deben estar claramente definidas y comprobadas en todas las fases del proceso de desarrollo de la aplicación, incluyendo el diseño, la implementación y las pruebas.

Por ejemplo, para evitar que un fallo de lógica de negocio permita un ataque DoS como el del ejemplo anterior, una buena práctica es limitar la cantidad de recursos que puede utilizar cada contenedor Docker que se cree. Específicamente, la sección de límites debe especificar el número de CPUs y la cantidad de memoria que un contenedor Docker puede utilizar. Un ejemplo sería:

desplegar:
recursos:
límites:
cpus: "0.5"
memoria: 100M
reservas:
cpus: "0.5"
memoria: 50M

El uso de un código como el del ejemplo anterior como política eliminaría un importante fallo de lógica empresarial del entorno y evitaría los ataques DoS. Esto funcionaría incluso si un atacante comprometiera uno de los contenedores Docker. En ese caso, el atacante seguiría sin poder utilizar su punto de apoyo para agotar los recursos.

El modelado de amenazas puede ser útil al definir cómo se producen los diferentes ataques y garantizar que se utilicen reglas de lógica empresarial para prevenirlos y restringirlos. Las pruebas basadas en las reglas de cumplimiento y los casos de abuso conocidos también podrían ser útiles para detectar los fallos de la lógica empresarial que se escapan.

Los fallos en la lógica de negocio son algunas de las vulnerabilidades más sutiles que pueden colarse en las aplicaciones, pero no son menos peligrosas que otros riesgos más destacados. Conocer cómo pueden producirse y utilizar las mejores prácticas puede mantenerlos fuera de su entorno durante el desarrollo de la aplicación, asegurando que nunca lleguen a un entorno de producción donde puedan ser abusados por atacantes que están muy familiarizados con la forma de explotarlos.

Consulte las páginas del Secure Code Warrior páginas del blog para obtener más información sobre esta vulnerabilidad y sobre cómo proteger a su organización y a sus clientes de los estragos de otros fallos de seguridad. También puedes probar una demostración de este desafío de IaC en la plataforma de formación Secure Code Warrior para mantener todos tus conocimientos de ciberseguridad perfeccionados y actualizados.


Ver recurso
Ver recurso

Esta vulnerabilidad puede ocurrir cuando los codificadores no implementan correctamente las reglas de lógica de negocio, lo que podría dejar sus aplicaciones vulnerables a diferentes tipos de ataques en caso de que un usuario malicioso decida explotarlos.

¿Quiere saber más?

Matias Madou, Ph.D. es experto en seguridad, investigador y CTO y cofundador de Secure Code Warrior. Matias obtuvo su doctorado en Seguridad de Aplicaciones en la Universidad de Gante, centrándose en soluciones de análisis estático. Más tarde se incorporó a Fortify en EE.UU., donde se dio cuenta de que no bastaba con detectar problemas de código sin ayudar a los desarrolladores a escribir código seguro. Esto le inspiró para desarrollar productos que ayuden a los desarrolladores, alivien la carga de la seguridad y superen las expectativas de los clientes. Cuando no está en su escritorio como parte de Team Awesome, le gusta estar en el escenario presentando en conferencias como RSA Conference, BlackHat y DefCon.

Secure Code Warrior está a disposición de su organización para ayudarle a proteger el código a lo largo de todo el ciclo de vida de desarrollo de software y crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es director de AppSec, desarrollador, CISO o cualquier persona implicada en la seguridad, podemos ayudar a su organización a reducir los riesgos asociados a un código inseguro.

Reservar una demostración
Compartir en:
Autor
Doctor Matias Madou
Publicado el 22 de junio de 2020

Matias Madou, Ph.D. es experto en seguridad, investigador y CTO y cofundador de Secure Code Warrior. Matias obtuvo su doctorado en Seguridad de Aplicaciones en la Universidad de Gante, centrándose en soluciones de análisis estático. Más tarde se incorporó a Fortify en EE.UU., donde se dio cuenta de que no bastaba con detectar problemas de código sin ayudar a los desarrolladores a escribir código seguro. Esto le inspiró para desarrollar productos que ayuden a los desarrolladores, alivien la carga de la seguridad y superen las expectativas de los clientes. Cuando no está en su escritorio como parte de Team Awesome, le gusta estar en el escenario presentando en conferencias como RSA Conference, BlackHat y DefCon.

Matías es un investigador y desarrollador con más de 15 años de experiencia práctica en seguridad de software. Ha desarrollado soluciones para empresas como Fortify Software y su propia empresa Sensei Security. A lo largo de su carrera, Matías ha dirigido múltiples proyectos de investigación sobre seguridad de aplicaciones que han dado lugar a productos comerciales y cuenta con más de 10 patentes en su haber. Cuando está lejos de su escritorio, Matias ha servido como instructor para la formación de seguridad de aplicaciones avanzadas courses y regularmente habla en conferencias mundiales como la Conferencia RSA, Black Hat, DefCon, BSIMM, OWASP AppSec y BruCon.

Matías es doctor en Ingeniería Informática por la Universidad de Gante, donde estudió la seguridad de las aplicaciones mediante la ofuscación de programas para ocultar el funcionamiento interno de una aplicación.

Compartir en:

Bueno, esto es todo (por ahora). Hemos llegado al final de nuestra serie de Infraestructura como Código. Esperamos que te hayas divertido conquistando problemas de seguridad en Docker, Ansible, Kubernetes, Terraform y CloudFormation. Sin embargo, antes de despedirnos, tenemos una vulnerabilidad más que dominar: los errores de lógica de negocio.

¿Crees que ya estás preparado para poner a prueba tus habilidades? Prueba el último desafío gamificado:

Si todavía no tienes claras algunas cosas, sigue leyendo:

Las vulnerabilidades en las que queremos centrarnos hoy son los fallos de lógica de negocio. Estos pueden ocurrir cuando los codificadores no implementan adecuadamente las reglas de lógica de negocio que podrían dejar sus aplicaciones vulnerables a diferentes tipos de ataques si un usuario malicioso decide explotarlos. Dependiendo del propósito y la funcionalidad implementada dentro de cada aplicación, un fallo de lógica de negocio puede permitir la escalada de privilegios, el uso inadecuado de recursos o cualquier número de procesos de negocio no deseados.

A diferencia de muchas vulnerabilidades, la implementación incorrecta de reglas de lógica de negocio puede ser sorprendentemente sutil. Requieren una vigilancia especial para garantizar que no se cuelen en las aplicaciones y el código.

¿Cuáles son algunos ejemplos de fallos en la lógica empresarial?

Como ejemplo de lo fácil que puede ser inducir fallos en la lógica de negocio, considere el siguiente ejemplo de un entorno Docker definido con un archivo Docker Compose. Para preparar los contenedores para realizar funciones, un desarrollador podría utilizar una política de recursos estándar, definida en el archivo Docker Compose, como el siguiente ejemplo:

desplegar:
recursos:
límites:
cpus: "0.5"
reservas:
cpus: "0.5"

Aunque a primera vista parece que está bien, esta política de recursos para contenedores no está limitando adecuadamente el uso de recursos. Un atacante podría aprovechar el fallo de la lógica de negocio para implementar un ataque de denegación de servicio (DoS).

Para intentar limitar que los usuarios ocupen demasiados recursos, un desarrollador podría intentar definir mejor lo que puede soportar cada contenedor. Así, el nuevo código podría incluir una restricción de colocación:

desplegar:
recursos:
límites:
cpus: "0.5"
reservas:
cpus: "0.5"
colocación:
restricciones:
- "node.labels.limit_cpu == 100M"
- "node.labels.limit_memory == 0.5"

A primera vista, parece que esto resolvería el fallo de la lógica empresarial. Sin embargo, la nueva restricción de colocación no afecta al límite de uso de recursos para el servicio de contenedores Docker. Sólo se utiliza para seleccionar un nodo para programar el contenedor. En este caso, un ataque DoS sigue siendo posible. El atacante necesitaría comprometer un contenedor Docker primero, pero podría drenar los recursos sin límites después de eso.

Como puede ver, pensar en los fallos de la lógica de negocio y programar para eliminarlos puede ser una tarea complicada.

Eliminación de los fallos de la lógica empresarial

Con los defectos de la lógica de negocio, la clave es saber que existen. Hay que estar atento para mantenerlos fuera del entorno mientras se escribe el nuevo código. Las reglas de negocio y las mejores prácticas deben estar claramente definidas y comprobadas en todas las fases del proceso de desarrollo de la aplicación, incluyendo el diseño, la implementación y las pruebas.

Por ejemplo, para evitar que un fallo de lógica de negocio permita un ataque DoS como el del ejemplo anterior, una buena práctica es limitar la cantidad de recursos que puede utilizar cada contenedor Docker que se cree. Específicamente, la sección de límites debe especificar el número de CPUs y la cantidad de memoria que un contenedor Docker puede utilizar. Un ejemplo sería:

desplegar:
recursos:
límites:
cpus: "0.5"
memoria: 100M
reservas:
cpus: "0.5"
memoria: 50M

El uso de un código como el del ejemplo anterior como política eliminaría un importante fallo de lógica empresarial del entorno y evitaría los ataques DoS. Esto funcionaría incluso si un atacante comprometiera uno de los contenedores Docker. En ese caso, el atacante seguiría sin poder utilizar su punto de apoyo para agotar los recursos.

El modelado de amenazas puede ser útil al definir cómo se producen los diferentes ataques y garantizar que se utilicen reglas de lógica empresarial para prevenirlos y restringirlos. Las pruebas basadas en las reglas de cumplimiento y los casos de abuso conocidos también podrían ser útiles para detectar los fallos de la lógica empresarial que se escapan.

Los fallos en la lógica de negocio son algunas de las vulnerabilidades más sutiles que pueden colarse en las aplicaciones, pero no son menos peligrosas que otros riesgos más destacados. Conocer cómo pueden producirse y utilizar las mejores prácticas puede mantenerlos fuera de su entorno durante el desarrollo de la aplicación, asegurando que nunca lleguen a un entorno de producción donde puedan ser abusados por atacantes que están muy familiarizados con la forma de explotarlos.

Consulte las páginas del Secure Code Warrior páginas del blog para obtener más información sobre esta vulnerabilidad y sobre cómo proteger a su organización y a sus clientes de los estragos de otros fallos de seguridad. También puedes probar una demostración de este desafío de IaC en la plataforma de formación Secure Code Warrior para mantener todos tus conocimientos de ciberseguridad perfeccionados y actualizados.


Ver recurso
Ver recurso

Rellene el siguiente formulario para descargar el informe

Nos gustaría contar con su permiso para enviarle información sobre nuestros productos y/o temas relacionados con la codificación segura. Siempre trataremos sus datos personales con el máximo cuidado y nunca los venderemos a otras empresas con fines de marketing.

Enviar
Para enviar el formulario, habilite las cookies "Analytics". Siéntase libre de desactivarlas de nuevo una vez que haya terminado.

Bueno, esto es todo (por ahora). Hemos llegado al final de nuestra serie de Infraestructura como Código. Esperamos que te hayas divertido conquistando problemas de seguridad en Docker, Ansible, Kubernetes, Terraform y CloudFormation. Sin embargo, antes de despedirnos, tenemos una vulnerabilidad más que dominar: los errores de lógica de negocio.

¿Crees que ya estás preparado para poner a prueba tus habilidades? Prueba el último desafío gamificado:

Si todavía no tienes claras algunas cosas, sigue leyendo:

Las vulnerabilidades en las que queremos centrarnos hoy son los fallos de lógica de negocio. Estos pueden ocurrir cuando los codificadores no implementan adecuadamente las reglas de lógica de negocio que podrían dejar sus aplicaciones vulnerables a diferentes tipos de ataques si un usuario malicioso decide explotarlos. Dependiendo del propósito y la funcionalidad implementada dentro de cada aplicación, un fallo de lógica de negocio puede permitir la escalada de privilegios, el uso inadecuado de recursos o cualquier número de procesos de negocio no deseados.

A diferencia de muchas vulnerabilidades, la implementación incorrecta de reglas de lógica de negocio puede ser sorprendentemente sutil. Requieren una vigilancia especial para garantizar que no se cuelen en las aplicaciones y el código.

¿Cuáles son algunos ejemplos de fallos en la lógica empresarial?

Como ejemplo de lo fácil que puede ser inducir fallos en la lógica de negocio, considere el siguiente ejemplo de un entorno Docker definido con un archivo Docker Compose. Para preparar los contenedores para realizar funciones, un desarrollador podría utilizar una política de recursos estándar, definida en el archivo Docker Compose, como el siguiente ejemplo:

desplegar:
recursos:
límites:
cpus: "0.5"
reservas:
cpus: "0.5"

Aunque a primera vista parece que está bien, esta política de recursos para contenedores no está limitando adecuadamente el uso de recursos. Un atacante podría aprovechar el fallo de la lógica de negocio para implementar un ataque de denegación de servicio (DoS).

Para intentar limitar que los usuarios ocupen demasiados recursos, un desarrollador podría intentar definir mejor lo que puede soportar cada contenedor. Así, el nuevo código podría incluir una restricción de colocación:

desplegar:
recursos:
límites:
cpus: "0.5"
reservas:
cpus: "0.5"
colocación:
restricciones:
- "node.labels.limit_cpu == 100M"
- "node.labels.limit_memory == 0.5"

A primera vista, parece que esto resolvería el fallo de la lógica empresarial. Sin embargo, la nueva restricción de colocación no afecta al límite de uso de recursos para el servicio de contenedores Docker. Sólo se utiliza para seleccionar un nodo para programar el contenedor. En este caso, un ataque DoS sigue siendo posible. El atacante necesitaría comprometer un contenedor Docker primero, pero podría drenar los recursos sin límites después de eso.

Como puede ver, pensar en los fallos de la lógica de negocio y programar para eliminarlos puede ser una tarea complicada.

Eliminación de los fallos de la lógica empresarial

Con los defectos de la lógica de negocio, la clave es saber que existen. Hay que estar atento para mantenerlos fuera del entorno mientras se escribe el nuevo código. Las reglas de negocio y las mejores prácticas deben estar claramente definidas y comprobadas en todas las fases del proceso de desarrollo de la aplicación, incluyendo el diseño, la implementación y las pruebas.

Por ejemplo, para evitar que un fallo de lógica de negocio permita un ataque DoS como el del ejemplo anterior, una buena práctica es limitar la cantidad de recursos que puede utilizar cada contenedor Docker que se cree. Específicamente, la sección de límites debe especificar el número de CPUs y la cantidad de memoria que un contenedor Docker puede utilizar. Un ejemplo sería:

desplegar:
recursos:
límites:
cpus: "0.5"
memoria: 100M
reservas:
cpus: "0.5"
memoria: 50M

El uso de un código como el del ejemplo anterior como política eliminaría un importante fallo de lógica empresarial del entorno y evitaría los ataques DoS. Esto funcionaría incluso si un atacante comprometiera uno de los contenedores Docker. En ese caso, el atacante seguiría sin poder utilizar su punto de apoyo para agotar los recursos.

El modelado de amenazas puede ser útil al definir cómo se producen los diferentes ataques y garantizar que se utilicen reglas de lógica empresarial para prevenirlos y restringirlos. Las pruebas basadas en las reglas de cumplimiento y los casos de abuso conocidos también podrían ser útiles para detectar los fallos de la lógica empresarial que se escapan.

Los fallos en la lógica de negocio son algunas de las vulnerabilidades más sutiles que pueden colarse en las aplicaciones, pero no son menos peligrosas que otros riesgos más destacados. Conocer cómo pueden producirse y utilizar las mejores prácticas puede mantenerlos fuera de su entorno durante el desarrollo de la aplicación, asegurando que nunca lleguen a un entorno de producción donde puedan ser abusados por atacantes que están muy familiarizados con la forma de explotarlos.

Consulte las páginas del Secure Code Warrior páginas del blog para obtener más información sobre esta vulnerabilidad y sobre cómo proteger a su organización y a sus clientes de los estragos de otros fallos de seguridad. También puedes probar una demostración de este desafío de IaC en la plataforma de formación Secure Code Warrior para mantener todos tus conocimientos de ciberseguridad perfeccionados y actualizados.


Acceso a recursos

Haga clic en el siguiente enlace y descargue el PDF de este recurso.

Secure Code Warrior está a disposición de su organización para ayudarle a proteger el código a lo largo de todo el ciclo de vida de desarrollo de software y crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es director de AppSec, desarrollador, CISO o cualquier persona implicada en la seguridad, podemos ayudar a su organización a reducir los riesgos asociados a un código inseguro.

Ver el informeReservar una demostración
Descargar PDF
Ver recurso
Compartir en:
¿Quiere saber más?

Compartir en:
Autor
Doctor Matias Madou
Publicado el 22 de junio de 2020

Matias Madou, Ph.D. es experto en seguridad, investigador y CTO y cofundador de Secure Code Warrior. Matias obtuvo su doctorado en Seguridad de Aplicaciones en la Universidad de Gante, centrándose en soluciones de análisis estático. Más tarde se incorporó a Fortify en EE.UU., donde se dio cuenta de que no bastaba con detectar problemas de código sin ayudar a los desarrolladores a escribir código seguro. Esto le inspiró para desarrollar productos que ayuden a los desarrolladores, alivien la carga de la seguridad y superen las expectativas de los clientes. Cuando no está en su escritorio como parte de Team Awesome, le gusta estar en el escenario presentando en conferencias como RSA Conference, BlackHat y DefCon.

Matías es un investigador y desarrollador con más de 15 años de experiencia práctica en seguridad de software. Ha desarrollado soluciones para empresas como Fortify Software y su propia empresa Sensei Security. A lo largo de su carrera, Matías ha dirigido múltiples proyectos de investigación sobre seguridad de aplicaciones que han dado lugar a productos comerciales y cuenta con más de 10 patentes en su haber. Cuando está lejos de su escritorio, Matias ha servido como instructor para la formación de seguridad de aplicaciones avanzadas courses y regularmente habla en conferencias mundiales como la Conferencia RSA, Black Hat, DefCon, BSIMM, OWASP AppSec y BruCon.

Matías es doctor en Ingeniería Informática por la Universidad de Gante, donde estudió la seguridad de las aplicaciones mediante la ofuscación de programas para ocultar el funcionamiento interno de una aplicación.

Compartir en:

Bueno, esto es todo (por ahora). Hemos llegado al final de nuestra serie de Infraestructura como Código. Esperamos que te hayas divertido conquistando problemas de seguridad en Docker, Ansible, Kubernetes, Terraform y CloudFormation. Sin embargo, antes de despedirnos, tenemos una vulnerabilidad más que dominar: los errores de lógica de negocio.

¿Crees que ya estás preparado para poner a prueba tus habilidades? Prueba el último desafío gamificado:

Si todavía no tienes claras algunas cosas, sigue leyendo:

Las vulnerabilidades en las que queremos centrarnos hoy son los fallos de lógica de negocio. Estos pueden ocurrir cuando los codificadores no implementan adecuadamente las reglas de lógica de negocio que podrían dejar sus aplicaciones vulnerables a diferentes tipos de ataques si un usuario malicioso decide explotarlos. Dependiendo del propósito y la funcionalidad implementada dentro de cada aplicación, un fallo de lógica de negocio puede permitir la escalada de privilegios, el uso inadecuado de recursos o cualquier número de procesos de negocio no deseados.

A diferencia de muchas vulnerabilidades, la implementación incorrecta de reglas de lógica de negocio puede ser sorprendentemente sutil. Requieren una vigilancia especial para garantizar que no se cuelen en las aplicaciones y el código.

¿Cuáles son algunos ejemplos de fallos en la lógica empresarial?

Como ejemplo de lo fácil que puede ser inducir fallos en la lógica de negocio, considere el siguiente ejemplo de un entorno Docker definido con un archivo Docker Compose. Para preparar los contenedores para realizar funciones, un desarrollador podría utilizar una política de recursos estándar, definida en el archivo Docker Compose, como el siguiente ejemplo:

desplegar:
recursos:
límites:
cpus: "0.5"
reservas:
cpus: "0.5"

Aunque a primera vista parece que está bien, esta política de recursos para contenedores no está limitando adecuadamente el uso de recursos. Un atacante podría aprovechar el fallo de la lógica de negocio para implementar un ataque de denegación de servicio (DoS).

Para intentar limitar que los usuarios ocupen demasiados recursos, un desarrollador podría intentar definir mejor lo que puede soportar cada contenedor. Así, el nuevo código podría incluir una restricción de colocación:

desplegar:
recursos:
límites:
cpus: "0.5"
reservas:
cpus: "0.5"
colocación:
restricciones:
- "node.labels.limit_cpu == 100M"
- "node.labels.limit_memory == 0.5"

A primera vista, parece que esto resolvería el fallo de la lógica empresarial. Sin embargo, la nueva restricción de colocación no afecta al límite de uso de recursos para el servicio de contenedores Docker. Sólo se utiliza para seleccionar un nodo para programar el contenedor. En este caso, un ataque DoS sigue siendo posible. El atacante necesitaría comprometer un contenedor Docker primero, pero podría drenar los recursos sin límites después de eso.

Como puede ver, pensar en los fallos de la lógica de negocio y programar para eliminarlos puede ser una tarea complicada.

Eliminación de los fallos de la lógica empresarial

Con los defectos de la lógica de negocio, la clave es saber que existen. Hay que estar atento para mantenerlos fuera del entorno mientras se escribe el nuevo código. Las reglas de negocio y las mejores prácticas deben estar claramente definidas y comprobadas en todas las fases del proceso de desarrollo de la aplicación, incluyendo el diseño, la implementación y las pruebas.

Por ejemplo, para evitar que un fallo de lógica de negocio permita un ataque DoS como el del ejemplo anterior, una buena práctica es limitar la cantidad de recursos que puede utilizar cada contenedor Docker que se cree. Específicamente, la sección de límites debe especificar el número de CPUs y la cantidad de memoria que un contenedor Docker puede utilizar. Un ejemplo sería:

desplegar:
recursos:
límites:
cpus: "0.5"
memoria: 100M
reservas:
cpus: "0.5"
memoria: 50M

El uso de un código como el del ejemplo anterior como política eliminaría un importante fallo de lógica empresarial del entorno y evitaría los ataques DoS. Esto funcionaría incluso si un atacante comprometiera uno de los contenedores Docker. En ese caso, el atacante seguiría sin poder utilizar su punto de apoyo para agotar los recursos.

El modelado de amenazas puede ser útil al definir cómo se producen los diferentes ataques y garantizar que se utilicen reglas de lógica empresarial para prevenirlos y restringirlos. Las pruebas basadas en las reglas de cumplimiento y los casos de abuso conocidos también podrían ser útiles para detectar los fallos de la lógica empresarial que se escapan.

Los fallos en la lógica de negocio son algunas de las vulnerabilidades más sutiles que pueden colarse en las aplicaciones, pero no son menos peligrosas que otros riesgos más destacados. Conocer cómo pueden producirse y utilizar las mejores prácticas puede mantenerlos fuera de su entorno durante el desarrollo de la aplicación, asegurando que nunca lleguen a un entorno de producción donde puedan ser abusados por atacantes que están muy familiarizados con la forma de explotarlos.

Consulte las páginas del Secure Code Warrior páginas del blog para obtener más información sobre esta vulnerabilidad y sobre cómo proteger a su organización y a sus clientes de los estragos de otros fallos de seguridad. También puedes probar una demostración de este desafío de IaC en la plataforma de formación Secure Code Warrior para mantener todos tus conocimientos de ciberseguridad perfeccionados y actualizados.


Índice

Descargar PDF
Ver recurso
¿Quiere saber más?

Matias Madou, Ph.D. es experto en seguridad, investigador y CTO y cofundador de Secure Code Warrior. Matias obtuvo su doctorado en Seguridad de Aplicaciones en la Universidad de Gante, centrándose en soluciones de análisis estático. Más tarde se incorporó a Fortify en EE.UU., donde se dio cuenta de que no bastaba con detectar problemas de código sin ayudar a los desarrolladores a escribir código seguro. Esto le inspiró para desarrollar productos que ayuden a los desarrolladores, alivien la carga de la seguridad y superen las expectativas de los clientes. Cuando no está en su escritorio como parte de Team Awesome, le gusta estar en el escenario presentando en conferencias como RSA Conference, BlackHat y DefCon.

Secure Code Warrior está a disposición de su organización para ayudarle a proteger el código a lo largo de todo el ciclo de vida de desarrollo de software y crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es director de AppSec, desarrollador, CISO o cualquier persona implicada en la seguridad, podemos ayudar a su organización a reducir los riesgos asociados a un código inseguro.

Reservar una demostraciónDescargar
Compartir en:
Centro de recursos

Recursos para empezar

Más entradas
Centro de recursos

Recursos para empezar

Más entradas