Blog

Programadores que conquistan la seguridad: Serie de aprendizaje y colaboración - Problemas de lógica de negocio

March 28, 2019
Jaap Karan Singh

A diferencia de la mayoría de las vulnerabilidades que hemos tratado en esta serie de aprendizaje, los problemas de lógica de negocio no están directamente relacionados con errores de codificación. Aunque los problemas de código pueden ser parte del problema, los errores de lógica de negocio suelen ser consecuencia de fallos de diseño o suposiciones lógicas incorrectas durante la creación inicial de una aplicación.

Los problemas de lógica de negocio pueden ocurrir si un usuario realiza una acción imprevista al utilizar una aplicación. Esto puede ser casi cualquier cosa: desde cancelar un pedido inesperadamente, aplicar un código de cupón demasiadas veces o simplemente saltarse un paso esperado y realizar una acción que la aplicación no sabe cómo gestionar. Explotar fallos de lógica de negocio ni siquiera requiere formación, solo un usuario malintencionado con una mente curiosa y dispuesta a pensar de forma creativa.

En este episodio, aprenderemos:

  • Cómo explotan los atacantes los fallos en la lógica de negocio
  • Por qué son peligrosas las aplicaciones con fallos de lógica de negocio
  • Técnicas para prevenir errores de lógica de negocio.

¿Cómo explotan los atacantes los problemas de lógica de negocio?

A diferencia de la mayoría de las vulnerabilidades, no podemos señalar cadenas de código específicas que causen este problema. En su lugar, se reduce a que los usuarios realizan acciones que no se habían previsto y que los programas no saben cómo gestionar. Por ejemplo, supongamos que una aplicación bancaria permite a los usuarios transferir dinero a otras cuentas. Pero en lugar de enviar dinero, un usuario malintencionado intenta enviar una cantidad negativa a otra cuenta. ¿Cómo reaccionará la aplicación bancaria? ¿Se bloqueará? ¿Denegará la transferencia? ¿O podría enviar dinero al usuario que inició la transferencia para compensar ese número negativo?

Los sitios de comercio electrónico son especialmente, aunque no exclusivamente, susceptibles a los fallos de lógica de negocio porque están diseñados para que interactúen con ellos muchos usuarios y tienen muchos componentes. Que los usuarios cancelen pedidos inesperadamente, intenten aplicar cupones individuales varias veces o incluso sobrecarguen sus carritos de compra puede presentar a las aplicaciones condiciones que no se habían previsto. Realmente no hay forma de saber cómo reaccionará un programa cuando se enfrente a una situación desconocida. El mejor escenario posible podría ser generar un mensaje de error, pero no hay garantía de que una aplicación no realice una acción peor, como proporcionar mercancía de forma gratuita.

¿Por qué son peligrosos los problemas de lógica de negocio?

Los problemas de lógica de negocio pueden ser extremadamente peligrosos porque pueden ser explotados por cualquiera, incluso por alguien sin formación en programación o hacking. Realmente solo requiere experimentación y tiempo, hacer clic aquí y allá e intentar encontrar fallos en la forma en que una aplicación está diseñada para responder. Y una vez que un usuario malintencionado descubre un fallo en la lógica de negocio de un sitio, puedes apostar a que lo explotará tanto como sea posible.

El mayor peligro suele ser financiero, como que un usuario compre 20 televisores de pantalla grande sin pagarlos, o algo similar. Pero los fallos de lógica de negocio también pueden causar otros problemas. Por ejemplo, si la función de contraseña que protege un sitio no sabe qué hacer si un usuario pulsa cancelar constantemente, podría permitirle omitir el proceso de inicio de sesión por completo.

Realmente no hay forma de anticipar cuánto daño podría causar un problema de lógica de negocio. A menudo, la primera indicación de un problema aparece mucho después de que los usuarios lo hayan explotado.

Cómo solucionar los problemas de lógica de negocio

Desafortunadamente, el uso de herramientas comunes como los escáneres de vulnerabilidades no ayudará a identificar o solucionar los problemas de lógica de negocio, ya que las pruebas para estos problemas no se pueden automatizar fácilmente. La mejor manera de evitarlos es implementar una buena planificación, gestión de errores y pruebas de casos negativos mientras se desarrolla una aplicación. Esto requiere primero un conjunto claramente definido de reglas de negocio que incluya todas las acciones posibles y deseadas que la aplicación está diseñada para realizar.

Armado con un plan de reglas de negocio, una de las mejores formas de evitar que se cuelen fallos de lógica de negocio es crear un diagrama de flujo que muestre todas las formas posibles en que los datos y las transacciones deben fluir dentro de una aplicación. Esto incluye modelar el comportamiento para cada caso en el que un usuario pueda tomar una decisión o introducir datos. Comprueba constantemente que las acciones posibles en el diagrama de flujo coincidan con las funciones del plan de reglas de negocio.

Por último, utiliza el modelado de amenazas para ayudar a identificar fallos en la lógica de negocio durante las fases de diseño, implementación y pruebas. Como medida de seguridad, crea una acción que el programa deba realizar si se encuentra con cualquier situación no prevista específicamente. Esto podría ser tan sencillo como denegar la acción y alertar a un administrador sobre el problema encontrado.

Más información sobre los problemas de lógica de negocio

Para seguir leyendo, puedes echar un vistazo a las páginas de OWASP sobre problemas de lógica de negocio. También puedes poner a prueba tus nuevos conocimientos defensivos con la demo gratuita de la plataforma Secure Code Warrior, que entrena a los equipos de ciberseguridad para convertirse en los mejores ciberguerreros. Para obtener más información sobre cómo derrotar esta vulnerabilidad y una galería de otras amenazas, visita el blog de Secure Code Warrior.

¿Listo para detectar y eliminar vulnerabilidades en la lógica de negocio ahora mismo? Dirígete a la plataforma y pon a prueba tus habilidades: [Comenzar aquí]

Eslogan

Controle el desarrollo impulsado por IA antes de su lanzamiento

Mida el riesgo asistido por IA, aplique políticas de codificación segura en el momento de la confirmación y acelere la entrega segura en todo su ciclo de vida de desarrollo de software (SDLC).

Reservar una demostración
Biblioteca de recursos

Explorar más blogs

Acceda a contenido especializado sobre programación segura, gobernanza de IA y gestión de riesgos de software.

ver todo
Caso de estudio
Etiqueta de filtro
Este es un texto dentro de un bloque div.

Una cultura de seguridad: cómo Sage creó su programa de defensores

Descubre cómo Sage reforzó su seguridad con un enfoque flexible y centrado en las relaciones, logrando formar a más de 200 expertos en seguridad y alcanzar una reducción de riesgos cuantificable.

Más información
Icono de ventana de navegador con las letras KVK en negrita y dos líneas horizontales azules debajo sobre un fondo azul degradado.
Caso de estudio
Etiqueta de filtro
Este es un texto dentro de un bloque div.

Kamer van Koophandel: Seguridad a escala impulsada por los desarrolladores

La Cámara de Comercio (Kamer van Koophandel) comparte cómo integró la programación segura en el desarrollo diario mediante certificaciones basadas en roles, evaluaciones comparativas de puntuación de confianza y una cultura de responsabilidad compartida en seguridad.

Más información
Logotipo de Insurance Australia Group con texto y un icono en azul y gris dentro del diseño de una ventana de navegador web.
Caso de estudio
Etiqueta de filtro
Este es un texto dentro de un bloque div.

Cómo un «Juego de Códigos» guía a IAG Group hacia un futuro de programación más seguro

IAG Group es la entidad detrás de muchas de las principales compañías de seguros en la región de Asia-Pacífico, que suscribe pólizas para millones de clientes por un valor aproximado de 11.400 millones de dólares australianos en primas anuales.

Más información
Blog
Etiqueta de filtro
Este es un texto dentro de un bloque div.

Mes de la Concienciación sobre Ciberseguridad 2026: Comprender la seguridad de la IA es fundamental para la defensa empresarial

Hemos llegado a un punto en el que la mayoría de las principales empresas de IA han pedido públicamente una ralentización global en el desarrollo de la IA para que las medidas de seguridad puedan ponerse al día, pero la verdad es que ya se han materializado graves problemas de seguridad. Esto deja a innumerables líderes de seguridad y equipos ejecutivos en una situación urgente, a medida que los costes monetarios y de riesgo de la implementación de la IA siguen acumulándose.

Más información
Blog
Etiqueta de filtro
Este es un texto dentro de un bloque div.

Habilitador 8: Branding de su programa

Un programa de codificación segura necesita algo más que un buen contenido para tener éxito. El Habilitador 8 muestra cómo el branding transforma la participación en una experiencia codiciada basada en el estatus.

Más información
Blog
Etiqueta de filtro
Este es un texto dentro de un bloque div.

Cada empleado está ahora en la primera línea de la ciberseguridad de la IA

El panorama tecnológico empresarial está cambiando a una velocidad que pocos previeron hasta que fue demasiado tarde. Hemos cruzado oficialmente el umbral del código escrito por humanos y la asistencia básica de copilotos hacia la era del Ciclo de Vida de Desarrollo Agéntico (ADLC). Si bien los agentes de IA autónomos prometen una eficiencia sin precedentes en múltiples funciones, también traen consigo una clase completamente nueva de riesgos regulatorios y de seguridad.

Más información

Proteja el desarrollo basado en IA antes de su lanzamiento

Identifique riesgos de desarrollo, aplique políticas y prevenga vulnerabilidades en todo el ciclo de vida de su software.

Reservar una demostración
No se encontraron elementos.