domingo, 30 de enero de 2000

Vulnerabilidades en múltiples sistemas de carrito de compras

En un gran número de aplicaciones de carro de compras, empleadas
para comercio electrónico, existen vulnerabilidades de sabotaje
de formularios que pueden permitir a un usuario adquirir
productos a menor precio del real.
Se han identificado hasta un total de once aplicaciones de carro
de compras que son vulnerables a un cambio de los precios
mediante sabotaje de formularios. Es posible para un atacante
aprovecharse de estas vulnerabilidades y realizar pedidos en un
sitio de comercio electrónico a un precio menor del real. El
operador del sitio web deberá verificar el precio de cada
artículo adquirido en la base de datos de la aplicación o en el
mensaje de pedido.

Un gran número de aplicaciones de carro de compra usan campos
ocultos en los formularios html para mantener parámetros de los
artículos de la tienda electrónica. Estos parámetros pueden
incluir el nombre de los productos, peso, cantidad, identificador
del producto y precio. Una aplicación que base el precio en un
campo oculto de un formulario html puede comprometerse por esta
vulnerabilidad.

Un atacante puede modificar el formulario html en su propia
máquina local para cambiar el precio del producto y tras eso
cargar la página en el navegador. Tras aceptar el formulario el
artículo se añade en el carro de compra del usuario malicioso,
pero con el precio modificado.

Las aplicaciones vulnerables emplean un campo oculto que contiene
el precio del producto. Cuando el valor de este campo oculto se
modifica, la aplicación almacena el valor modificado en la base
de datos de pedidos. Esta vulnerabilidad también afecta a los
campos ocultos de descuento, es decir un atacante podrá modificar
el descuento de un artículo para conseguir un precio menor. Si un
sitio web vulnerable procesa las órdenes por tarjeta de crédito
en tiempo real, no existe posibilidad de verificar el precio de
cada artículo antes de que se cargue la tarjeta.

Otra situación que puede conducir a la modificación de precios
ocurre cuando el coste de un producto se enumera en una URL.
Cuando se pulsa un enlace, un programa cgi añade el artículo al
carro de compra con el precio marcado en la url. Bastará con
modificar el precio de la url para que el producto se añada al
carro de compra con el precio modificado. El software de carro de
compra no debe confiar en el navegador para asignar el precio de
un artículo.

Muchas de las aplicaciones de comercio electrónico basan la
seguridad en la cabecera http para verificar que la petición
proviene del sitio adecuado. Pero las aplicaciones vulnerables no
verifican el remitente en la cabecera http, por lo que la
transacción continuará si el formulario se envía desde un disco
duro. MS Internet Explorer 5.0 no incluye un campo de emisor en
la cabecera http si el formulario se remite desde una página
almacenada en un disco duro.

La inclusión de un campo de emisor hace mucho más difícil de
explotar este tipo de vulnerabilidades, aunque sin embargo el
campo emisor también puede modificarse, lo que permitiría a un
atacante tomar ventaja de la vulnerabilidad en cualquier caso. La
medida más recomendable pasa por no emplear campos ocultos para
obtener los datos del pedido.

Los fabricantes de aplicaciones vulnerables han reaccionado de
diferente forma ante el aviso del problema:Check It Out (de
http://ssl.adgrafix.com) realizó una revisión total del software
para evitar el problema. Otras siete firmas modificaron la
aplicación para proporcionar mayor grado de seguridad: @Retail
(de http://www.atretail.com), Cart32 2.6 (de
http://www.cart32.com), CartIt 3.0 (de http://www.cartit.com),
Make-a-Store OrderPage (de http://www.make-a-store.com),
SalesCart (de http://www.salescart.com), SmartCart (de
http://www.smartcart.com) y Shoptron 1.2 (de
http://www.shoptron.com). Por último tres firmas no
proporcionaron ninguna información ni parche del problema:
EasyCart (de http://www.easycart.com), Intellivend (de
http://www.intellivend.com) y WebSiteTool (de
http://www.websitetool.com).

Más información:
ISS X-Force



Antonio Ropero
antonior@hispasec.com