miércoles, 1 de noviembre de 2017

Exfiltrando fallos de seguridad en productos de Google a través de su Issue Tracker

El investigador y desarrollador Alex Birsan ha descubierto diversos fallos de seguridad en el 'Issue Tracker' de Google que le han permitido acceder a información técnica sobre graves vulnerabilidades en diferentes productos de la compañía.





Issue Tracker, también conocido como "Buganizer", es una herramienta usada por Google para llevar un registro de fallos, vulnerabilidades y futuras 'features' de sus productos.

La herramienta permite el acceso a usuarios que no pertenecen a la organización, pero sólo a ciertos tickets marcados como públicos. La mayor parte del contenido (más del 99%) sólo está disponible para usuarios a los que se les ha dado acceso explícito. 

Como Birsan explica en su artículo, una fuga de información en la herramienta podría tener un grave impacto, por lo que se propuso poner a prueba la seguridad del sistema.

El primer intento de Birsan fue intentar conseguir una cuenta corporativa que le permitiera el acceso a zonas restringidas del sistema. Diferentes intentos le llevaron a descubrir que podía registrar una cuenta falsa y luego cambiar el correo por uno de tipo "@google.com" a través del correo de confirmación. Esto le permitió registrar la cuenta "buganizer-system+123123+67111111@google.com", que aunque no sirvió para conseguir acceso a Buganizer sí que permitía utilizar otros servicios exclusivos como GRide.


Login área corporativa (Fuente: @alex.birsan)


El segundo fallo descubierto por Birman permitía suscribirse a una 'issue' arbitraria cambiando el ID, al no aplicarse ningún control de acceso sobre esta llamada a la API. Aunque no consiguió filtrar ninguna información importante, Google clasificó esta vulnerabilidad como crítica.


Actualizaciones recibidas de distintas 'issues' (Fuente: @alex.birsan)

La última vulnerabilidad reportada por Birsan es la más crítica y permitiría monitorizar en tiempo real toda la actividad que sucedía en el sistema de tickets. El fallo residía en una llamada a la API expuesta en el JavaScript de la página y que se utilizaba para dejar de recibir notificaciones sobre un cierto ticket.


    POST /action/issues/bulk_edit HTTP/1.1
    {
    "issueIds":[
        67111111,
        67111112
    ],
    "actions":[
        {
            "fieldName":"ccs",
            "value":"test@example.com",
            "actionType":"REMOVE"
        }
    ]
    }

Esta llamada revelaba en su respuesta todos los detalles sobre el ticket, sin implementar ningún control de acceso. Pudiendo conocer los detalles técnicos de cualquier fallo o vulnerabilidad simplemente consultando su ID.

A pesar de que los tickets de prioridad alta se corrigen en pocas horas, el equipo de Google atendió rápidamente las vulnerabilidades reportadas por Birsan y recompensó al técnico a través de su programa de 'bug bounty'.


Francisco Salido
fsalido@hispasec.com

Más información: