Reconstruyendo la fuga de información en KPMG

El pasado 15 de abril El Economista publicó la nota “Empleados de KPMG descargaron facturas del SAT sin autorización y vulneraron datos personales de sus clientes” donde se informa que personal de KPMG creó una base de datos con cerca de 5 millones de registros, principalmente CFDIs de los clientes de KPMG y los puso en una base de datos accesible públicamente en internet y desprotegida.

La nota hace referencia a reportes confidenciales a los que no tenemos acceso en SG. Por su parte, KPMG ya informó que no puede dar detalles de nada apelando a la confidencialidad de sus clientes y que hay una investigación en curso. Así que no vemos viable conseguir más información de ellos.

A pesar de estas restricciones, considero importante que este caso se conozca más, simplemente para que quede como lección aprendida para empresas y profesionistas. Adicionalmente, KPMG está intentando deslindarse de lo sucedido, diciendo que los empleados en cuestión actuaron bajo su propia voluntad y sin el conocimiento de KPMG. Así que sería bueno averiguar si eso es lo que realmente sucedió, aunque sea para proteger a los (ex-)empleados en cuestión.

A continuación comparto una reconstrucción de lo sucedido utilizando las piezas de información que se han dado a conocer y complementándolas con suposiciones propias.

Lo sucedido

  1. KPMG está construyendo (o tal vez ya tiene) un sistema llamado “Plataforma Fiscal” y uno de los insumos de datos que utiliza el sistema son los CFDIs de sus clientes.

  2. KPMG cuenta con las claves de acceso al SAT de sus clientes, así que para obtener los datos para el sistema, personal de KPMG ingresó al SAT y descargó los CFDIs. Ignoramos si se informó a los clientes de esto.

  3. Los datos se concentraron en una base de datos MongoDB. En noviembre de 2018 dicha base de datos se subió a la nube pública con acceso abierto y sin contraseña. Posibles causas de esto:

    1. Probablemente el proceso para aprovisionar una base de datos segura en la infraestructura de KPMG sea lento y complicado, así que por las prisas y pensando que era algo “de mientras”, los desarrolladores optaron por ponerla en la nube pública, y por ignorancia o negligencia la dejaron desprotegida.

    2. Otra posibilidad sería que en realidad los datos sí se pusieron en una base de datos segura, y el archivo de MongoDB que apareció en la nube es una copia secreta creada por uno o más de los desarrolladores.

  4. El 22 de enero de 2019, una firma de investigación en seguridad encontró la base de datos. En principio no sabía quién era el dueño de la información, así que contactó a personal de las empresas afectadas, y estos ayudaron a rastrear y encontrar que había sido personal de KPMG. La información de lo sucedido fue publicada el 11 de febrero en el blog de la firma de seguridad.

    1. Vale la pena mencionar que menos de dos días después de haber encontrado la base de datos, el director de la firma de seguridad comentó en un tweet que la base de datos ya había sido “secuestrada” y que el atacante solicitaba un pago (0.5 bitcoins) para recuperarla. Ignoramos si KPMG realizó el pago para recuperarla, pero no creo que haya sido necesario ya que lo más probable es que tuvieran una copia local de la BD, y aunque no fuera así, de todos modos tenían la opción de volver a descargar esos datos del SAT. Así que en cierta forma, el atacante les hizo un favor quitando esos datos de la nube pública.

  5. El 22 de febrero, KPMG envió un reporte confidencial a sus clientes informando de lo sucedido. No tengo acceso a tal documento así que ignoro qué tanto detalle tenga. Adicionalmente, en respuesta a la nota publicada en El Economista KPMG confirmó la filtración de datos de sus clientes, informando que despidió a dos personas del equipo de desarrollo y presentó una denuncia penal ante el Ministerio Público.

Y hasta ahí llega lo que conocemos de este caso.

Lecciones aprendidas

  1. Nunca pongas bases de datos sin contraseña (o con la contraseña default) y mucho menos si están accesibles vía internet.

  2. No evadas el procedimiento para aprovisionar bases de datos de forma segura. Si un directivo o cliente te pide que lo hagas, pídele que te lo solicite por correo (y guarda ese correo).

Adicionalmente, esto me hace ver que necesita haber una mejor forma para que las empresas puedan compartir información con quienes les manejan su contabilidad o auditoría. Tener que darles los accesos al SAT (y estar vulnerables a lo que hagan con esto) no es ideal. Ignoro si el SAT tiene implementado un mejor mecanismo (y no se utiliza por ignorancia), pero si no es así es crítico crearlo.