lunes, 5 de noviembre de 2012

La caza de bugs en Paypal acaba con la publicación de un grave agujero de seguridad

"Supuse que una empresa como Paypal iba a estar bien auditada (...) Estaba equivocado". Es un extracto del artículo con el que Neil Smith hace público un grave fallo de seguridad, ya solucionado, en la empresa de transferencias. En él, además relata los diversos problemas por los que pasó en el proceso de reporte de bugs enmarcado en la iniciativa de Paypal, que fueron el detonante para la publicación.

Los programas de recompensa por vulnerabilidades o "bug bounty" se están imponiendo como una solución para controlar la publicación de vulnerabilidades en aplicaciones de escritorio o web. Básicamente, la empresa paga por los fallos encontrados bajo ciertas condiciones (como que sean originales o explotables remotamente) y por supuesto, que no se hagan públicos hasta que se hayan solucionado.

Aunque con ellos ambas partes se benefician en cierto modo, esta modalidad también cuenta con detractores. Argumentan que es un acto de irresponsabilidad conocer un fallo y no publicarlo, dejando expuestos a los usuarios. Sea como fuere, lo cierto es que varias grandes empresas tienen su programa: Mozilla, Google, Facebook... y desde finales de junio, Paypal, en el que se enroló Neil Smith.

Cómo descubrió la cadena de fallos

El agujero de seguridad descubierto por Smith encadena varios fallos en los sistemas de la filial de eBay. En primer lugar Shodan, un buscador de sistemas expuestos en Internet, le mostró que los servidores de staging de la "Administrative Tool" de Paypal son accesibles públicamente. "Staging" es el estado de desarrollo de sitios web inmediatamente anterior a producción. El entorno en el que se encuentran estos sistemas debe parecerse lo máximo posible al que alcanzarán en producción, y en ocasiones incluso acceden a réplicas de los datos reales. A Smith no le pareció descabellado pensar que este fuera el caso.

Las Administrative Tools de Paypal englobaban un conjunto de herramientas para vendedores que dan acceso a las transacciones realizadas (tanto pagos como ventas) para la elaboración de libros de cuentas y reconciliación financiera. Incluyen registros de transacciones, información extendida de cada una de estas, y diversas herramientas de notificación tanto para vendedores como clientes, además de información de la cuenta de Paypal. Actualmente, estas herramientas se ofrecen como productos separados dentro del apartado Reports and Information del x.commerce Paypal Development Network. Sin embargo, Smith no conocía esta información al descubrir los servidores. No sabía realmente a qué tenía acceso potencialmente.

Tras diversas pruebas en las conexiones a estos servidores, Smith pudo autenticarse en el panel de administración, utilizando para ello varios usuarios (parece que escogidos al azar). Había un simple problema de validación, que permitía eludir la autenticación a través de peticiones POST manipuladas.


Sin embargo, estas cuentas utilizadas no poseían privilegios para ver este panel. Intentando varios tipos de conexión, llegó a averiguar la dirección IP interna de la base de datos a la que se conecta el panel.


Llegado aquí, Smith no podía avanzar más. Aunque podía tener acceso a los servidores internos de las Administrative Tools, no sabía qué información se iba a encontrar allí. Y acceder directamente a la base de datos o al panel no era una solución, ya que ver datos reales de usuarios podría violar las condiciones del "bug bunty".

Al no poder avanzar, buscó en Google el titulo de la página a la que había accedido. Para su sorpresa, había varias capturas del supuesto panel, procedentes de procesos judiciales, como la siguiente:



Misterio resuelto. Las capturas indexadas por Google revelaban lo que encontraría si avanzaba más en su investigación del panel y se conectaba directamente. Encontró una forma de comprobar la gravedad del fallo, sin violar las condiciones del "bug bunty" (sin acceder a datos reales). Se trataba de un agujero que le permitía conocer información casi completa de los usuarios de Paypal: cuentas bancarias, correos, movimientos, incluso límites de gasto en tarjetas.

Se hizo público antes de ser corregido

La segunda parte del artículo revela las dificultades que tuvo para que, primero, Paypal reconociera el fallo y posteriormente, para que le pagara por su investigación.

Con una clave pública de PGP de Paypal caducada para reportar los fallos, y tras un mes sin apenas noticias después del reporte, el departamento de seguridad de Paypal calificó su descubrimiento como "inválido". Cuando Smith les preguntó si, ya que era inválido, podía publicarlo, Paypal se apresuró a impedírselo. Al parecer el encargado de la revisión no había conseguido reproducirlo, pero se iba a recalificar y seguir estudiando. Recibiría el pago por el fallo siempre y cuando no lo publicara.

Cuando le llegó el pago, resultó que lo habían calificado como una "simple" vulnerabilidad cross-site scripting. Smith, bastante enfadado, decidió entonces hacerlo público por su cuenta a través de su blog.

Según scmagazine, el final ha sido, sin embargo, feliz. Paypal ha pagado sus deudas y ahora mismo Smith se encuentra con ellos trabajando en otros muchos problemas encontrados en estos sistemas de" staging". Aunque no se ha hecho público si el agujero de seguridad daba acceso a toda la información de las cuentas, el investigador contó a un medio que había tenido acceso a todo tipo de datos investigando la red, pero no podía hacerlo público al tratarse de fallos que se están solucionando en este momento.

Para terminar, en palabras del propio Smith:

"Have I ever come across very large amounts of customer data while combing through the PayPal QA netblock (what you are referring to: CC's, Bank #'s, etc.)? Yes. Lots of it. Shocking amounts of it,"

Lo que deja entrever que esta investigación era sólo la punta del iceberg, y que en esos servidores se podría encontrar muchos más datos. El agujero se encuentra ya solucionado, y ahora mismo no se puede acceder a la página de autenticación en esos servidores.

Más información:

PayPal Bug Bounty - a lesson in not being a fuckup.

PayPal security holes expose customer card data, personal details


Francisco López

3 comentarios:

  1. No me exraña anda. He tenido que integrar maś de una vez PayPal en webs y su entorno de desarrollo es una chapauza, y lleva años así. Un entorno lento, con transacciones de prueba que dan errores con demasiada frecuencia, documentación poco clara y en general un sistema que parece construido a base de parches.

    Así que parece que el sistema de staging era otra grandísima chapuza más.

    ResponderEliminar
  2. Disculpen que me salgo de tema, pero tienen idea si la resolución tomada contra Argentna sobre Paypal será rebocada? Gracias de antemano ;)

    ResponderEliminar