¿Qué son las Vulnerabilidades de Lógica Empresarial?

Vulnerabilidades de Lógica Empresarial

En esta sección, presentaremos el concepto de vulnerabilidades de lógica empresarial y explicaremos cómo pueden surgir debido a suposiciones erróneas sobre el comportamiento del usuario. Analizaremos el impacto potencial de las fallas de lógica y le enseñaremos cómo se pueden explotar. También puede practicar lo aprendido mediante nuestros laboratorios interactivos, que se basan en errores reales que hemos encontrado en la práctica. Por último, proporcionaremos algunas prácticas recomendadas generales para ayudarlo a evitar que surjan este tipo de fallas de lógica en sus propias aplicaciones.

¿Qué son las Vulnerabilidades de Lógica Empresarial?

Las vulnerabilidades de lógica empresarial son fallas en el diseño y la implementación de una aplicación que permiten a un atacante provocar un comportamiento no deseado. Esto potencialmente les permite manipular la funcionalidad legítima para lograr un objetivo malicioso. Estas fallas son generalmente el resultado de no anticipar estados inusuales de la aplicación que pueden ocurrir y, en consecuencia, no manejarlos de manera segura.

Los fallos lógicos suelen ser invisibles para las personas que no los buscan explícitamente, ya que normalmente no se exponen con el uso normal de la aplicación. Sin embargo, un atacante puede aprovechar las peculiaridades del comportamiento al interactuar con la aplicación de formas que los desarrolladores nunca habían previsto.

Uno de los principales objetivos de la lógica empresarial es hacer cumplir las reglas y restricciones que se definieron al diseñar la aplicación o la funcionalidad. En términos generales, las reglas empresariales dictan cómo debe reaccionar la aplicación cuando se produce una situación determinada. Esto incluye evitar que los usuarios hagan cosas que tendrán un impacto negativo en el negocio o que simplemente no tengan sentido.

Los fallos en la lógica pueden permitir a los atacantes eludir estas reglas. Por ejemplo, podrían completar una transacción sin pasar por el flujo de trabajo de compra previsto. En otros casos, la validación defectuosa o inexistente de los datos proporcionados por el usuario podría permitir a los usuarios realizar cambios arbitrarios en valores críticos de la transacción o enviar datos sin sentido. Al pasar valores inesperados a la lógica del lado del servidor, un atacante puede inducir potencialmente a la aplicación a hacer algo que no debería hacer.

Las vulnerabilidades basadas en la lógica pueden ser muy diversas y, a menudo, son exclusivas de la aplicación y su funcionalidad específica. Identificarlas suele requerir una cierta cantidad de conocimiento humano, como una comprensión del dominio empresarial o de los objetivos que podría tener un atacante en un contexto determinado. Esto hace que sea difícil detectarlas mediante escáneres de vulnerabilidades automatizados. Como resultado, las fallas lógicas son un gran objetivo para los cazadores de recompensas de errores y los evaluadores manuales en general.

Una solución de monitoreo de infraestructura extensible a nivel empresarial con funciones que ahorran tiempo y son fáciles de usar.

 

Conocer …

¿Cómo surgen las vulnerabilidades en la lógica empresarial?

Las vulnerabilidades de la lógica empresarial suelen surgir porque los equipos de diseño y desarrollo hacen suposiciones erróneas sobre cómo interactuarán los usuarios con la aplicación. Estas suposiciones erróneas pueden dar lugar a una validación inadecuada de la entrada del usuario. Por ejemplo, si los desarrolladores suponen que los usuarios pasarán datos exclusivamente a través de un navegador web, la aplicación puede depender completamente de controles débiles del lado del cliente para validar la entrada. Un atacante puede evitarlos fácilmente utilizando un proxy interceptor.

En última instancia, esto significa que cuando un atacante se desvía del comportamiento esperado del usuario, la aplicación no toma las medidas adecuadas para evitarlo y, posteriormente, no puede gestionar la situación de forma segura.

Los fallos lógicos son especialmente comunes en sistemas demasiado complicados que ni siquiera el propio equipo de desarrollo comprende por completo. Para evitarlos, los desarrolladores deben comprender la aplicación en su conjunto. Esto incluye ser conscientes de cómo se pueden combinar diferentes funciones de formas inesperadas. Los desarrolladores que trabajan con bases de código grandes pueden no tener un conocimiento profundo de cómo funcionan todas las áreas de la aplicación. Alguien que trabaje en un componente podría hacer suposiciones erróneas sobre cómo funciona otro componente y, como resultado, introducir inadvertidamente graves fallos lógicos. Si los desarrolladores no documentan explícitamente las suposiciones que se están haciendo, es fácil que este tipo de vulnerabilidades se introduzcan en una aplicación.

¿Cuál es el impacto de las vulnerabilidades de la lógica empresarial?

El impacto de las vulnerabilidades de la lógica empresarial puede ser, en ocasiones, bastante trivial. Se trata de una categoría amplia y su impacto es muy variable. Sin embargo, cualquier comportamiento no deseado puede derivar en ataques de alta gravedad si un atacante es capaz de manipular la aplicación de la forma adecuada. Por este motivo, lo ideal es que la lógica extravagante se solucione incluso si no se puede averiguar cómo explotarla uno mismo. Siempre existe el riesgo de que alguien más pueda hacerlo.

Básicamente, el impacto de cualquier falla lógica depende de la funcionalidad con la que esté relacionada. Si la falla está en el mecanismo de autenticación, por ejemplo, esto podría tener un impacto grave en su seguridad general. Los atacantes podrían aprovechar esto para escalar privilegios o para eludir por completo la autenticación y obtener acceso a datos y funciones confidenciales. Esto también expone una mayor superficie de ataque para otros exploits.

La lógica defectuosa en las transacciones financieras puede obviamente conducir a pérdidas masivas para la empresa debido al robo de fondos, fraude, etc.

También debe tener en cuenta que, si bien las fallas lógicas pueden no permitir que un atacante se beneficie directamente, aún podrían permitir que una parte malintencionada dañe el negocio de alguna manera.

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

La mejor manera de comprender las vulnerabilidades de la lógica empresarial es analizar casos reales y aprender de los errores que se cometieron. Hemos proporcionado ejemplos concretos de una variedad de fallas lógicas comunes, así como algunos sitios web deliberadamente vulnerables para que pueda practicar la explotación de estas vulnerabilidades.

Escaneo DAST automatizado sin límites. Basado en la tecnología Burp en la que sus equipos de seguridad ya confían.

Conocer …

Cómo prevenir vulnerabilidades en la lógica empresarial

En resumen, las claves para prevenir vulnerabilidades en la lógica empresarial son:

  • Asegúrese de que los desarrolladores y evaluadores comprendan el dominio al que sirve la aplicación.
  • Evite hacer suposiciones implícitas sobre el comportamiento del usuario o el comportamiento de otras partes de la aplicación.

Debe identificar qué suposiciones ha realizado sobre el estado del servidor e implementar la lógica necesaria para verificar que se cumplan. Esto incluye asegurarse de que el valor de cualquier entrada sea razonable antes de continuar.

También es importante asegurarse de que tanto los desarrolladores como los evaluadores puedan comprender plenamente estas suposiciones y cómo se supone que debe reaccionar la aplicación en diferentes escenarios. Esto puede ayudar al equipo a detectar fallas lógicas lo antes posible. Para facilitar esto, el equipo de desarrollo debe cumplir con las siguientes prácticas recomendadas siempre que sea posible:

  • Mantener documentos de diseño y flujos de datos claros para todas las transacciones y flujos de trabajo, anotando cualquier suposición que se realice en cada etapa.
  • Escriba el código de la forma más clara posible. Si es difícil comprender lo que se supone que debe suceder, será difícil detectar cualquier falla lógica. Lo ideal es que un código bien escrito no necesite documentación para comprenderlo. En casos inevitablemente complejos, producir documentación clara es crucial para garantizar que otros desarrolladores y evaluadores sepan qué suposiciones se están haciendo y exactamente cuál es el comportamiento esperado.
  • Tenga en cuenta las referencias a otros códigos que utilizan cada componente. Piense en los efectos secundarios que podrían tener estas dependencias si un tercero malintencionado las manipulara de forma inusual.

Conclusiones

Debido a la naturaleza relativamente única de muchos fallos lógicos, es fácil ignorarlos como un error puntual debido a un error humano y seguir adelante. Sin embargo, como hemos demostrado, estos fallos suelen ser el resultado de malas prácticas en las fases iniciales de creación de la aplicación. Analizar por qué existía un fallo lógico en primer lugar y cómo el equipo no lo detectó puede ayudarle a detectar debilidades en sus procesos. Al realizar pequeños ajustes, puede aumentar la probabilidad de que se eliminen fallos similares en la fuente o se detecten antes en el proceso de desarrollo.

NORTH NETWORKS es Distribuidor Oficial y brinda licencias nuevas, renovaciones y servicios profesionales de las herramientas mas importantes.

Pongase en contacto y le ayudaremos a analizar sus necesidades para poder brindarle la herramienta que mejor se ajuste a sus requerimientos.

Si te ha gustado, ¡compártelo con tus amigos!

Scroll al inicio

Portal de Clientes