SCW 아이콘
영웅 배경, 구분선 없음
블로그

Los programadores conquistan la infraestructura de seguridad como una serie de códigos - Business Logic

마티아스 마두, Ph.
게시일 : 2020년 6월 22일
마지막 업데이트: 2026년 3월 6일

Bueno, esto es todo (por ahora). Hemos llegado al final de nuestra serie Infrastructure as Code. Esperamos que te hayas divertido solucionando los problemas de seguridad en Docker, Ansible, Kubernetes, Terraform y CloudFormation. Sin embargo, antes de cerrar sesión, tenemos una vulnerabilidad más que debes dominar: los errores de lógica empresarial.

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

Si aún no tienes claro algunas cosas, sigue leyendo:

Las vulnerabilidades en las que queremos centrarnos hoy son lógica empresarial defectos. Estas pueden ocurrir cuando los programadores no implementan correctamente las reglas de lógica empresarial, lo que podría hacer que sus aplicaciones fueran vulnerables a diferentes tipos de ataques en caso de que un usuario malintencionado decidiera explotarlas. Según la finalidad y la funcionalidad implementadas en cada aplicación, un fallo en la lógica empresarial puede permitir el aumento de privilegios, el uso inadecuado de los recursos o la ejecución de cualquier cantidad de procesos empresariales no deseados.

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

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

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

implementar:
recursos:
límites:
tazas: «0.5"
reservas:
tazas: «0.5"

Si bien esto parece correcto a primera vista, esta política de recursos para contenedores no limita adecuadamente el uso de los recursos. Un atacante podría aprovechar la falla de la lógica empresarial para implementar un ataque de denegación de servicio (DoS).

Para intentar evitar que los usuarios consuman demasiados recursos, un desarrollador podría intentar definir mejor lo que admite cada contenedor. Por lo tanto, el nuevo código podría incluir una restricción de ubicación:

implementar:
recursos:
límites:
tazas: «0.5"
reservas:
tazas: «0.5"
colocación:
restricciones:
- «node.labels.limit_cpu == 100 M»
- «node.labels.limit_memory == 0.5"

A primera vista, parece que esto resolvería el lógica empresarial defecto. Sin embargo, la nueva restricción de ubicación no afecta al límite de uso de recursos para el servicio de contenedores Docker. Solo se usa para seleccionar un nodo para programar el contenedor. En este caso, todavía es posible un ataque DoS. El atacante tendría que comprometer primero un contenedor Docker, pero después podría agotar los recursos sin límites.

Como puede ver, pensar en las fallas de la lógica empresarial y programar para eliminarlas puede ser una tarea difícil.

Eliminar las fallas de la lógica empresarial

Con las fallas de la lógica empresarial, la clave es saber que existen. Debe estar atento para mantenerlos fuera de su entorno mientras se escribe código nuevo. Las reglas empresariales y las mejores prácticas deben definirse y comprobarse claramente en todas las fases del proceso de desarrollo de la aplicación, incluidos el diseño, la implementación y las pruebas.

Por ejemplo, para evitar que una falla en la lógica empresarial permita un ataque DoS como en el ejemplo anterior, se recomienda limitar la cantidad de recursos que pueden usar todos los contenedores de Docker que crees. En concreto, la sección de límites debe especificar la cantidad de CPU y la cantidad de memoria que puede usar un contenedor Docker. Un ejemplo sería:

implementar:
recursos:
límites:
tazas: «0.5"
memoria: 100M
reservas:
tazas: «0.5"
memoria: 50 M

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

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

Las fallas de la lógica empresarial 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. Saber cómo pueden ocurrir y utilizar las mejores prácticas puede mantenerlos alejados de su entorno durante el desarrollo de las aplicaciones y garantizar que nunca lleguen a un entorno de producción en el que puedan abusar de ellos atacantes que están muy familiarizados con la forma de explotarlos.

Eche un vistazo a la Secure Code Warrior páginas de 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 otras fallas de seguridad. También puedes prueba una demo de este desafío de IaC en la plataforma de formación Secure Code Warrior para mantener todas sus habilidades de ciberseguridad perfeccionadas y actualizadas.


리소스 보기
리소스 보기

Esta vulnerabilidad puede producirse cuando los programadores no implementan correctamente las reglas de lógica empresarial, lo que podría dejar sus aplicaciones vulnerables a diferentes tipos de ataques en caso de que un usuario malintencionado decida explotarlas.

더 알고 싶으신가요?

마티아스 마두는 보안 전문가, 연구원, CTO이자 Secure Code Warrior 의 공동 설립자입니다. 마티아스는 겐트 대학교에서 정적 분석 솔루션에 중점을 둔 애플리케이션 보안 박사 학위를 취득했습니다. 이후 미국의 Fortify에 입사하여 개발자의 보안 코드 작성을 지원하지 않고 코드 문제만 탐지하는 것만으로는 충분하지 않다는 것을 깨달았습니다. 이를 계기로 개발자를 지원하고 보안에 대한 부담을 덜어주며 고객의 기대를 뛰어넘는 제품을 개발하게 되었습니다. 팀 어썸의 일원으로 책상에 앉아 있지 않을 때는 RSA 컨퍼런스, 블랙햇, 데프콘 등의 컨퍼런스에서 무대에 올라 발표하는 것을 즐깁니다.

더 알아보세요

Secure Code Warrior 귀사의 조직이 소프트웨어 개발 라이프사이클 전반에 걸쳐 코드를 보호하고 사이버보안을 최우선으로 하는 문화를 조성하도록 Secure Code Warrior . AppSec 관리자, 개발자, CISO 또는 보안 관련 담당자라면 누구든, 저희는 귀사의 조직이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 돕습니다.

데모 예약하기
공유하기:
링크드인 브랜드사회적x 로고
저자
마티아스 마두, Ph.
게시일: 2020년 6월 22일

마티아스 마두는 보안 전문가, 연구원, CTO이자 Secure Code Warrior 의 공동 설립자입니다. 마티아스는 겐트 대학교에서 정적 분석 솔루션에 중점을 둔 애플리케이션 보안 박사 학위를 취득했습니다. 이후 미국의 Fortify에 입사하여 개발자의 보안 코드 작성을 지원하지 않고 코드 문제만 탐지하는 것만으로는 충분하지 않다는 것을 깨달았습니다. 이를 계기로 개발자를 지원하고 보안에 대한 부담을 덜어주며 고객의 기대를 뛰어넘는 제품을 개발하게 되었습니다. 팀 어썸의 일원으로 책상에 앉아 있지 않을 때는 RSA 컨퍼런스, 블랙햇, 데프콘 등의 컨퍼런스에서 무대에 올라 발표하는 것을 즐깁니다.

Matias는 15년 이상의 소프트웨어 보안 경험을 가진 연구원이자 개발자입니다. 그는 Fortify 소프트웨어와 같은 회사와 자신의 회사를 위한 솔루션을 개발했습니다. Sensei 안전. 그의 경력을 통해, Matias는 상용 제품으로 주도하고 자신의 벨트 아래 10 개 이상의 특허를 자랑하는 여러 응용 프로그램 보안 연구 프로젝트를 주도하고있다. 마티아스는 책상에서 떨어져 있을 때 고급 응용 프로그램 보안 교육을 위한 강사로 일했습니다. courses RSA 컨퍼런스, 블랙 햇, 데프콘, BSIMM, OWASP AppSec 및 브루콘을 포함한 글로벌 컨퍼런스에서 정기적으로 강연합니다.

마티아스는 겐트 대학교에서 컴퓨터 공학 박사 학위를 취득했으며, 프로그램 난독화를 통해 응용 프로그램 보안을 연구하여 응용 프로그램의 내부 작동을 숨깁니다.

공유하기:
링크드인 브랜드사회적x 로고

Bueno, esto es todo (por ahora). Hemos llegado al final de nuestra serie Infrastructure as Code. Esperamos que te hayas divertido solucionando los problemas de seguridad en Docker, Ansible, Kubernetes, Terraform y CloudFormation. Sin embargo, antes de cerrar sesión, tenemos una vulnerabilidad más que debes dominar: los errores de lógica empresarial.

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

Si aún no tienes claro algunas cosas, sigue leyendo:

Las vulnerabilidades en las que queremos centrarnos hoy son lógica empresarial defectos. Estas pueden ocurrir cuando los programadores no implementan correctamente las reglas de lógica empresarial, lo que podría hacer que sus aplicaciones fueran vulnerables a diferentes tipos de ataques en caso de que un usuario malintencionado decidiera explotarlas. Según la finalidad y la funcionalidad implementadas en cada aplicación, un fallo en la lógica empresarial puede permitir el aumento de privilegios, el uso inadecuado de los recursos o la ejecución de cualquier cantidad de procesos empresariales no deseados.

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

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

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

implementar:
recursos:
límites:
tazas: «0.5"
reservas:
tazas: «0.5"

Si bien esto parece correcto a primera vista, esta política de recursos para contenedores no limita adecuadamente el uso de los recursos. Un atacante podría aprovechar la falla de la lógica empresarial para implementar un ataque de denegación de servicio (DoS).

Para intentar evitar que los usuarios consuman demasiados recursos, un desarrollador podría intentar definir mejor lo que admite cada contenedor. Por lo tanto, el nuevo código podría incluir una restricción de ubicación:

implementar:
recursos:
límites:
tazas: «0.5"
reservas:
tazas: «0.5"
colocación:
restricciones:
- «node.labels.limit_cpu == 100 M»
- «node.labels.limit_memory == 0.5"

A primera vista, parece que esto resolvería el lógica empresarial defecto. Sin embargo, la nueva restricción de ubicación no afecta al límite de uso de recursos para el servicio de contenedores Docker. Solo se usa para seleccionar un nodo para programar el contenedor. En este caso, todavía es posible un ataque DoS. El atacante tendría que comprometer primero un contenedor Docker, pero después podría agotar los recursos sin límites.

Como puede ver, pensar en las fallas de la lógica empresarial y programar para eliminarlas puede ser una tarea difícil.

Eliminar las fallas de la lógica empresarial

Con las fallas de la lógica empresarial, la clave es saber que existen. Debe estar atento para mantenerlos fuera de su entorno mientras se escribe código nuevo. Las reglas empresariales y las mejores prácticas deben definirse y comprobarse claramente en todas las fases del proceso de desarrollo de la aplicación, incluidos el diseño, la implementación y las pruebas.

Por ejemplo, para evitar que una falla en la lógica empresarial permita un ataque DoS como en el ejemplo anterior, se recomienda limitar la cantidad de recursos que pueden usar todos los contenedores de Docker que crees. En concreto, la sección de límites debe especificar la cantidad de CPU y la cantidad de memoria que puede usar un contenedor Docker. Un ejemplo sería:

implementar:
recursos:
límites:
tazas: «0.5"
memoria: 100M
reservas:
tazas: «0.5"
memoria: 50 M

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

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

Las fallas de la lógica empresarial 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. Saber cómo pueden ocurrir y utilizar las mejores prácticas puede mantenerlos alejados de su entorno durante el desarrollo de las aplicaciones y garantizar que nunca lleguen a un entorno de producción en el que puedan abusar de ellos atacantes que están muy familiarizados con la forma de explotarlos.

Eche un vistazo a la Secure Code Warrior páginas de 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 otras fallas de seguridad. También puedes prueba una demo de este desafío de IaC en la plataforma de formación Secure Code Warrior para mantener todas sus habilidades de ciberseguridad perfeccionadas y actualizadas.


리소스 보기
리소스 보기

다음 양식을 작성하여 보고서를 다운로드하십시오.

귀하의 허락을 받아 당사 제품 또는 안전한 암호화 관련 주제에 대한 정보를 보내드리고자 합니다. 귀하의 개인정보는 항상 최대한 신중하게 처리하며, 마케팅 목적으로 타사에 판매하지 않을 것을 약속드립니다.

보내기
scw 성공 아이콘
scw 오류 아이콘
양식을 보내려면 '분석' 쿠키를 활성화하세요. 완료 후에는 언제든지 다시 비활성화해도 됩니다.

Bueno, esto es todo (por ahora). Hemos llegado al final de nuestra serie Infrastructure as Code. Esperamos que te hayas divertido solucionando los problemas de seguridad en Docker, Ansible, Kubernetes, Terraform y CloudFormation. Sin embargo, antes de cerrar sesión, tenemos una vulnerabilidad más que debes dominar: los errores de lógica empresarial.

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

Si aún no tienes claro algunas cosas, sigue leyendo:

Las vulnerabilidades en las que queremos centrarnos hoy son lógica empresarial defectos. Estas pueden ocurrir cuando los programadores no implementan correctamente las reglas de lógica empresarial, lo que podría hacer que sus aplicaciones fueran vulnerables a diferentes tipos de ataques en caso de que un usuario malintencionado decidiera explotarlas. Según la finalidad y la funcionalidad implementadas en cada aplicación, un fallo en la lógica empresarial puede permitir el aumento de privilegios, el uso inadecuado de los recursos o la ejecución de cualquier cantidad de procesos empresariales no deseados.

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

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

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

implementar:
recursos:
límites:
tazas: «0.5"
reservas:
tazas: «0.5"

Si bien esto parece correcto a primera vista, esta política de recursos para contenedores no limita adecuadamente el uso de los recursos. Un atacante podría aprovechar la falla de la lógica empresarial para implementar un ataque de denegación de servicio (DoS).

Para intentar evitar que los usuarios consuman demasiados recursos, un desarrollador podría intentar definir mejor lo que admite cada contenedor. Por lo tanto, el nuevo código podría incluir una restricción de ubicación:

implementar:
recursos:
límites:
tazas: «0.5"
reservas:
tazas: «0.5"
colocación:
restricciones:
- «node.labels.limit_cpu == 100 M»
- «node.labels.limit_memory == 0.5"

A primera vista, parece que esto resolvería el lógica empresarial defecto. Sin embargo, la nueva restricción de ubicación no afecta al límite de uso de recursos para el servicio de contenedores Docker. Solo se usa para seleccionar un nodo para programar el contenedor. En este caso, todavía es posible un ataque DoS. El atacante tendría que comprometer primero un contenedor Docker, pero después podría agotar los recursos sin límites.

Como puede ver, pensar en las fallas de la lógica empresarial y programar para eliminarlas puede ser una tarea difícil.

Eliminar las fallas de la lógica empresarial

Con las fallas de la lógica empresarial, la clave es saber que existen. Debe estar atento para mantenerlos fuera de su entorno mientras se escribe código nuevo. Las reglas empresariales y las mejores prácticas deben definirse y comprobarse claramente en todas las fases del proceso de desarrollo de la aplicación, incluidos el diseño, la implementación y las pruebas.

Por ejemplo, para evitar que una falla en la lógica empresarial permita un ataque DoS como en el ejemplo anterior, se recomienda limitar la cantidad de recursos que pueden usar todos los contenedores de Docker que crees. En concreto, la sección de límites debe especificar la cantidad de CPU y la cantidad de memoria que puede usar un contenedor Docker. Un ejemplo sería:

implementar:
recursos:
límites:
tazas: «0.5"
memoria: 100M
reservas:
tazas: «0.5"
memoria: 50 M

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

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

Las fallas de la lógica empresarial 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. Saber cómo pueden ocurrir y utilizar las mejores prácticas puede mantenerlos alejados de su entorno durante el desarrollo de las aplicaciones y garantizar que nunca lleguen a un entorno de producción en el que puedan abusar de ellos atacantes que están muy familiarizados con la forma de explotarlos.

Eche un vistazo a la Secure Code Warrior páginas de 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 otras fallas de seguridad. También puedes prueba una demo de este desafío de IaC en la plataforma de formación Secure Code Warrior para mantener todas sus habilidades de ciberseguridad perfeccionadas y actualizadas.


웹 세미나 보기
시작하다
더 알아보세요

아래 링크를 클릭하고 이 자료의 PDF를 다운로드하세요.

Secure Code Warrior 귀사의 조직이 소프트웨어 개발 라이프사이클 전반에 걸쳐 코드를 보호하고 사이버보안을 최우선으로 하는 문화를 조성하도록 Secure Code Warrior . AppSec 관리자, 개발자, CISO 또는 보안 관련 담당자라면 누구든, 저희는 귀사의 조직이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 돕습니다.

보고서 보기데모 예약하기
리소스 보기
공유하기:
링크드인 브랜드사회적x 로고
더 알고 싶으신가요?

공유하기:
링크드인 브랜드사회적x 로고
저자
마티아스 마두, Ph.
게시일: 2020년 6월 22일

마티아스 마두는 보안 전문가, 연구원, CTO이자 Secure Code Warrior 의 공동 설립자입니다. 마티아스는 겐트 대학교에서 정적 분석 솔루션에 중점을 둔 애플리케이션 보안 박사 학위를 취득했습니다. 이후 미국의 Fortify에 입사하여 개발자의 보안 코드 작성을 지원하지 않고 코드 문제만 탐지하는 것만으로는 충분하지 않다는 것을 깨달았습니다. 이를 계기로 개발자를 지원하고 보안에 대한 부담을 덜어주며 고객의 기대를 뛰어넘는 제품을 개발하게 되었습니다. 팀 어썸의 일원으로 책상에 앉아 있지 않을 때는 RSA 컨퍼런스, 블랙햇, 데프콘 등의 컨퍼런스에서 무대에 올라 발표하는 것을 즐깁니다.

Matias는 15년 이상의 소프트웨어 보안 경험을 가진 연구원이자 개발자입니다. 그는 Fortify 소프트웨어와 같은 회사와 자신의 회사를 위한 솔루션을 개발했습니다. Sensei 안전. 그의 경력을 통해, Matias는 상용 제품으로 주도하고 자신의 벨트 아래 10 개 이상의 특허를 자랑하는 여러 응용 프로그램 보안 연구 프로젝트를 주도하고있다. 마티아스는 책상에서 떨어져 있을 때 고급 응용 프로그램 보안 교육을 위한 강사로 일했습니다. courses RSA 컨퍼런스, 블랙 햇, 데프콘, BSIMM, OWASP AppSec 및 브루콘을 포함한 글로벌 컨퍼런스에서 정기적으로 강연합니다.

마티아스는 겐트 대학교에서 컴퓨터 공학 박사 학위를 취득했으며, 프로그램 난독화를 통해 응용 프로그램 보안을 연구하여 응용 프로그램의 내부 작동을 숨깁니다.

공유하기:
링크드인 브랜드사회적x 로고

Bueno, esto es todo (por ahora). Hemos llegado al final de nuestra serie Infrastructure as Code. Esperamos que te hayas divertido solucionando los problemas de seguridad en Docker, Ansible, Kubernetes, Terraform y CloudFormation. Sin embargo, antes de cerrar sesión, tenemos una vulnerabilidad más que debes dominar: los errores de lógica empresarial.

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

Si aún no tienes claro algunas cosas, sigue leyendo:

Las vulnerabilidades en las que queremos centrarnos hoy son lógica empresarial defectos. Estas pueden ocurrir cuando los programadores no implementan correctamente las reglas de lógica empresarial, lo que podría hacer que sus aplicaciones fueran vulnerables a diferentes tipos de ataques en caso de que un usuario malintencionado decidiera explotarlas. Según la finalidad y la funcionalidad implementadas en cada aplicación, un fallo en la lógica empresarial puede permitir el aumento de privilegios, el uso inadecuado de los recursos o la ejecución de cualquier cantidad de procesos empresariales no deseados.

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

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

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

implementar:
recursos:
límites:
tazas: «0.5"
reservas:
tazas: «0.5"

Si bien esto parece correcto a primera vista, esta política de recursos para contenedores no limita adecuadamente el uso de los recursos. Un atacante podría aprovechar la falla de la lógica empresarial para implementar un ataque de denegación de servicio (DoS).

Para intentar evitar que los usuarios consuman demasiados recursos, un desarrollador podría intentar definir mejor lo que admite cada contenedor. Por lo tanto, el nuevo código podría incluir una restricción de ubicación:

implementar:
recursos:
límites:
tazas: «0.5"
reservas:
tazas: «0.5"
colocación:
restricciones:
- «node.labels.limit_cpu == 100 M»
- «node.labels.limit_memory == 0.5"

A primera vista, parece que esto resolvería el lógica empresarial defecto. Sin embargo, la nueva restricción de ubicación no afecta al límite de uso de recursos para el servicio de contenedores Docker. Solo se usa para seleccionar un nodo para programar el contenedor. En este caso, todavía es posible un ataque DoS. El atacante tendría que comprometer primero un contenedor Docker, pero después podría agotar los recursos sin límites.

Como puede ver, pensar en las fallas de la lógica empresarial y programar para eliminarlas puede ser una tarea difícil.

Eliminar las fallas de la lógica empresarial

Con las fallas de la lógica empresarial, la clave es saber que existen. Debe estar atento para mantenerlos fuera de su entorno mientras se escribe código nuevo. Las reglas empresariales y las mejores prácticas deben definirse y comprobarse claramente en todas las fases del proceso de desarrollo de la aplicación, incluidos el diseño, la implementación y las pruebas.

Por ejemplo, para evitar que una falla en la lógica empresarial permita un ataque DoS como en el ejemplo anterior, se recomienda limitar la cantidad de recursos que pueden usar todos los contenedores de Docker que crees. En concreto, la sección de límites debe especificar la cantidad de CPU y la cantidad de memoria que puede usar un contenedor Docker. Un ejemplo sería:

implementar:
recursos:
límites:
tazas: «0.5"
memoria: 100M
reservas:
tazas: «0.5"
memoria: 50 M

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

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

Las fallas de la lógica empresarial 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. Saber cómo pueden ocurrir y utilizar las mejores prácticas puede mantenerlos alejados de su entorno durante el desarrollo de las aplicaciones y garantizar que nunca lleguen a un entorno de producción en el que puedan abusar de ellos atacantes que están muy familiarizados con la forma de explotarlos.

Eche un vistazo a la Secure Code Warrior páginas de 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 otras fallas de seguridad. También puedes prueba una demo de este desafío de IaC en la plataforma de formación Secure Code Warrior para mantener todas sus habilidades de ciberseguridad perfeccionadas y actualizadas.


목차

PDF 다운로드
리소스 보기
더 알고 싶으신가요?

마티아스 마두는 보안 전문가, 연구원, CTO이자 Secure Code Warrior 의 공동 설립자입니다. 마티아스는 겐트 대학교에서 정적 분석 솔루션에 중점을 둔 애플리케이션 보안 박사 학위를 취득했습니다. 이후 미국의 Fortify에 입사하여 개발자의 보안 코드 작성을 지원하지 않고 코드 문제만 탐지하는 것만으로는 충분하지 않다는 것을 깨달았습니다. 이를 계기로 개발자를 지원하고 보안에 대한 부담을 덜어주며 고객의 기대를 뛰어넘는 제품을 개발하게 되었습니다. 팀 어썸의 일원으로 책상에 앉아 있지 않을 때는 RSA 컨퍼런스, 블랙햇, 데프콘 등의 컨퍼런스에서 무대에 올라 발표하는 것을 즐깁니다.

더 알아보세요

Secure Code Warrior 귀사의 조직이 소프트웨어 개발 라이프사이클 전반에 걸쳐 코드를 보호하고 사이버보안을 최우선으로 하는 문화를 조성하도록 Secure Code Warrior . AppSec 관리자, 개발자, CISO 또는 보안 관련 담당자라면 누구든, 저희는 귀사의 조직이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 돕습니다.

데모 예약하기다운로드
공유하기:
링크드인 브랜드사회적x 로고
자원 센터

시작하기 위한 자료

더 많은 게시물
자원 센터

시작하기 위한 자료

더 많은 게시물