Blog

Los codificadores conquistan la seguridad: serie Share & Learn - Problemas de lógica empresarial

March 28, 2019
Jaap Karan Singh

A diferencia de la mayoría de las demás vulnerabilidades que hemos tratado en esta serie Share & Learn, los problemas de lógica empresarial no están directamente relacionados con los errores de codificación. Si bien los problemas de codificación pueden ser parte del problema, los errores de lógica empresarial suelen deberse a defectos de diseño o a suposiciones lógicas incorrectas cuando se crea una aplicación por primera vez.

Pueden producirse problemas de lógica empresarial si un usuario realiza una acción imprevista al utilizar una aplicación. Esto puede ser prácticamente cualquier cosa: desde cancelar inesperadamente un pedido, aplicar un código de cupón demasiadas veces o simplemente saltarse un paso previsto y realizar una acción que la aplicación no sabe cómo gestionar. Aprovechar las fallas de la lógica empresarial ni siquiera requiere ningún tipo de formación, solo un usuario malintencionado con una mente curiosa y dispuesto a pensar de forma innovadora.

En este episodio, aprenderemos:

  • Cómo aprovechan los atacantes las fallas de la lógica empresarial
  • Por qué las aplicaciones con fallas en la lógica empresarial son peligrosas
  • Técnicas que pueden prevenir errores de lógica empresarial.

¿Cómo aprovechan los atacantes los problemas de lógica empresarial?

A diferencia de la mayoría de los exploits, no podemos señalar cadenas de código específicas que puedan causar esta vulnerabilidad. En cambio, todo depende de que los usuarios tomen medidas que no se habían previsto y que los programas no saben cómo gestionar. Como 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 realmente devolver el dinero al usuario que inició la transferencia para saldar ese número negativo?

Los sitios de comercio electrónico son particularmente, aunque no exclusivamente, susceptibles a fallos de lógica empresarial porque están diseñados para que interactúen con muchos usuarios y tienen muchos componentes. Los usuarios que cancelan pedidos de forma inesperada, intentan aplicar cupones individuales varias veces o incluso sobrecargan sus carritos de compra pueden presentar solicitudes con 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. En el mejor de los casos, podría generarse un mensaje de error, pero no hay garantía de que una aplicación no tome medidas peores, como ofrecer productos de forma gratuita.

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

Los problemas de lógica empresarial pueden ser extremadamente peligrosos porque pueden ser explotados por cualquier persona, incluso por alguien sin formación en programación o hackers. En realidad, solo se requiere experimentación y tiempo, hacer clic e intentar encontrar fallas en la forma en que una aplicación está diseñada para responder. Y una vez que un usuario malintencionado descubra una falla en la lógica empresarial de un sitio, puede estar seguro de que la explotará en la medida de lo posible.

El mayor peligro suele ser financiero, ya que un usuario compra 20 televisores de pantalla grande sin pagarlos, o algo así. Sin embargo, las fallas en la lógica empresarial 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 constantemente la opción de cancelar, es posible que se salte por completo el proceso de inicio de sesión.

Realmente no hay forma de anticipar cuánto daño podría causar un problema de lógica empresarial. A menudo, el primer indicio de un problema se produce mucho después de que los usuarios lo hayan aprovechado.

Solución de problemas de lógica empresarial

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

Con un plan de reglas empresariales, una de las mejores maneras de evitar que se produzcan fallas en la lógica empresarial es crear un diagrama de flujo que muestre todas las formas posibles en las que los datos y las transacciones deben fluir dentro de una aplicación. Esto incluye modelar el comportamiento para cada instancia en la que un usuario pueda elegir o introducir datos. Compruebe constantemente que las posibles acciones del diagrama de flujo coincidan con las funciones del plan de reglas de negocio.

Por último, utilice el modelado de amenazas para ayudar a identificar las fallas en la lógica empresarial durante las fases de diseño, implementación y prueba. Como medida de seguridad, cree una acción que el programa deba tomar si encuentra alguna situación no prevista específicamente. Esto puede ser tan sencillo como denegar la acción y alertar al administrador sobre el problema detectado.

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

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

¿Está listo para buscar y destruir las vulnerabilidades de la lógica empresarial ahora mismo? Diríjase a la plataforma y ponga a prueba sus habilidades: [Empieza aquí]

Share on social
Lema

Govern AI-driven development before it ships

Measure AI-assisted risk, enforce secure coding policy at commit, and accelerate secure delivery across your SDLC.

book a demo
book a demo
Lema

Explore more blogs

Lorem ipsum diam quis enim lobortis scelerisque fermentum dui faucibus in ornare quam viverra orci sagittis eu volutpat odio facilisis.

browse all
Case Study
Filter Label
This is some text inside of a div block.

Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Learn More
Case Study
Filter Label
This is some text inside of a div block.

Security as culture: How Blue Prism cultivates world-class secure developers

Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed

Learn More
Case Study
Filter Label
This is some text inside of a div block.

One Culture of Security: How Sage built their security champions program with agile secure code learning

Discover how Sage enhanced security with a flexible, relationship-focused approach, creating 200+ security champions and achieving measurable risk reduction.

Learn More
Case Study
Filter Label
This is some text inside of a div block.

Post-Quantum Cryptography: Quantum Computers Will Break Today’s Encryption – Are You Ready?

Post-quantum cryptography (PQC) is critical for protecting data from quantum computing threats. Learn how “harvest now, decrypt later” exposes risk and how developers can prepare for quantum-safe security.

Learn More
Case Study
Filter Label
This is some text inside of a div block.

Enabler 2: Senior Leadership Sponsorship

Explore Enabler 2: Senior Leadership Sponsorship. Learn why active buy-in from the CIO, CTO, and CISO is vital to drive developer adoption and program credibility.

Learn More
Case Study
Filter Label
This is some text inside of a div block.

Observe and Secure the ADLC: A Four-Point Framework for CISOs and Development Teams Using AI

While development teams look to make the most of GenAI’s undeniable benefits, we’d like to propose a four-point foundational framework that will allow security leaders to deploy AI coding tools and agents with a higher, more relevant standard of security best practices. It details exactly what enterprises can do to ensure safe, secure code development right now, and as agentic AI becomes an even bigger factor in the future.

Learn More

Secure AI-driven development before it ships

See developer risk, enforce policy, and prevent vulnerabilities across your software development lifecycle.

Book a demo