Sky_Airline_Logo(Large)

Una falla en el sistema web de Sky Airline permite acceder a una configuración interna del sistema, mediante la cual es posible acceder a información historica y actual de las tarjetas de embarque de los pasajeros. Esta falla expone los datos de vuelo de todos los pasajeros, violando la privacidad e incumpliendo uno de los principios básicos de la seguridad de la información: confidencialidad.

El error se produce por una mala practica muy común al momento de poner en producción un servidor o un sistema, sobre todo en las plataformas .NET y Java.

Es muy habitual ver servidores en producción configurados para que muestren el debug o el stacktrace cuando se produce un error, lo cual significa un riesgo ya que estos errores entregan información no sólo del framework, versiones o archivos, particularmente en .NET muestra un fragmento del código fuente.

En este caso, el problema se produce al visualizar una tarjeta de embarque, misteriosamente si ejecutamos repetidamente la acción de visualizar nuestra tarjeta de embarque la plataforma muestra un error, exponiendo inicialmente una dirección IP interna

skyerror1Este error indica que existe un componente dentro del sistema que está intentando conectarse a algun servidor de correos y que por algun motivo no se logra conectar, generando un error. Si bien es normal que ocurran este tipo de errores, lo que se debe hacer es no mostrarlo a los usuarios. Norma básica!.

Un poco más abajo, vemos que el debug muestra el path interno de la aplicación

skyerror2

Y al final del error, la versión del framework utilizado

skyerror3

Hasta el momento hemos podido recopilar la siguiente información:

  • IP Interna: 10.30.1.200
  • Local Path: D:\Inetpub\www\App_Code\
  • Framework Version: .NET 2.0.50727.4253, ASP.NET 2.0.50727.4257

Pero falta lo más importante, el acceso a información de las tarjetas de embarque. Como comenté desde un principio, .NET expone parte del código fuente con el fin de ayudar al desarrollador a entender donde está el problema; algo muy útil en ambientes de desarrollo. Como en este caso esta opción se encuentra habilitada en producción, podemos ver el siguiente extracto del código fuente

skyerror5

Se puede ver la casilla de correos webcheckin@skyairline.cl y al lado la contraseña para acceder a esa casilla. Obviamente censuré la clave para proteger la información de los clientes.

Lamentablemente al provocar una “saturación de servicio” mediante el ingreso reiterado (F5 F5 F5 F5) el sistema justo se cae en la línea que no corresponde, mostrando en texto plano el contenido de la línea 1706 del archivo D:\Inetpub\www\App_Code\cls_funciones.vb.