Hoy, veremos dos casos a la vez: los datos de clientes y socios de dos compañías completamente diferentes resultaron estar en acceso libre "gracias" a los servidores abiertos Elasticsearch con registros de sistemas de información (IS) de estas compañías.

En el primer caso, se trata de decenas de miles (o tal vez cientos de miles) de entradas para varios eventos culturales (teatros, clubes, paseos por el río, etc.) vendidos a través del sistema Radario ( www.radario.ru ).
En el segundo caso, estos son los datos sobre viajes turísticos de miles (quizás varias decenas de miles) de viajeros que compraron tours a través de agencias de viajes conectadas al sistema Sletat.ru ( www.sletat.ru ).
Noto de inmediato que no solo los nombres de las compañías que permitieron que los datos estén disponibles públicamente difieren, sino también el enfoque de estas compañías para el reconocimiento del incidente y la reacción posterior al mismo. Pero lo primero es lo primero ...
: . . , .
Caso uno. Radario
En la noche del 06/05/2019, nuestro sistema encontró el servidor Elasticsearch , propiedad del servicio de venta de boletos electrónicos Radario , en acceso gratuito .
De acuerdo con la triste tradición ya establecida, el servidor contenía registros detallados del sistema de información del servicio, del cual era posible obtener datos personales, nombres de usuario y contraseñas, así como boletos electrónicos directamente para varios eventos en todo el país.

El volumen total de registros excedió 1 Tb.
Según el motor de búsqueda Shodan, el servidor ha estado en el dominio público desde el 03/11/2019. Notifiqué a los empleados de Radario el 06/05/2019 a las 22:50 (hora de Moscú) y el 07/05/2019 alrededor de las 09:30 el servidor dejó de estar disponible.
Los registros contenían un token de autorización universal (único) que proporciona acceso a todos los boletos comprados a través de enlaces especiales, de la siguiente forma:
http://radario.ru/internal/tickets/XXXXXXXX/print?access_token=******JuYWw6MDIzOWRjOTM1NzJiNDZjMTlhZGFjZmRhZTQ3ZDgyYTk http://radario.ru/internal/orders/YYYYYYY/print?access_token=******JuYWw6MDIzOWRjOTM1NzJiNDZjMTlhZGFjZmRhZTQ3ZDgyYTk
El problema también consistió en el hecho de que el recuento de tickets se utilizó a través de la numeración de pedidos y simplemente clasificando el número de ticket ( XXXXXXXX ) o el pedido ( AAAAAAA ), fue posible obtener todos los tickets del sistema.
Para verificar la relevancia de la base de datos, incluso honestamente me compré el boleto más barato:


y luego lo descubrió en un servidor público en los registros de IP:
http://radario.ru/internal/tickets/11819272/print?access_token==******JuYWw6MDIzOWRjOTM1NzJiNDZjMTlhZGFjZmRhZTQ3ZDgyYTk
También me gustaría enfatizar que los boletos estaban disponibles tanto para eventos pasados como para aquellos que aún se están planeando. Es decir, un atacante potencial podría usar el boleto de otra persona para llegar al evento planeado.
En promedio, en cada índice de Elasticsearch que contiene registros para un día específico (del 24 de enero de 2019 al 7 de mayo de 2019), hubo de 25 a 35 mil boletos.
Además de las entradas en sí, el índice también contenía inicios de sesión (direcciones de correo electrónico) y contraseñas de texto para acceder a las cuentas personales de los socios de Radario que venden entradas para sus eventos a través de este servicio:
Content: \"ReturnUrl=&UserEmail=***@yandex.ru&UserPassword=***\"
En total, se encontraron más de 500 pares de inicio de sesión / contraseña. En las cuentas personales de los socios puede ver las estadísticas de venta de entradas:

Además, en el dominio público había nombres completos, números de teléfono y direcciones de correo electrónico de compradores que decidieron hacer una devolución de boletos comprados previamente:
"Content": "{\"name\":\"***\",\"surname\":\"*** \",\"middleName\":\" \",\"passportType\":1,\"passportNumber\":\"\",\"passportIssueDate\":\"11-11-2011 11:11:11\",\"passportIssuedBy\":\"\",\"email\":\"***@mail.ru\",\"phone\":\"+799*******\",\"ticketNumbers\":[\"****24848\",\"****948732\"],\"refundReason\":4,\"comment\":\"\"}"
En un día seleccionado al azar, se descubrieron más de 500 de esos registros.
Recibí una respuesta a la alerta del director técnico de Radario:
Soy CTO Radario, y me gustaría agradecerle por detectar el problema. El acceso al elástico, como saben, ha cerrado y estamos resolviendo el problema de volver a emitir boletos para los clientes.
Un poco más tarde, la compañía hizo una declaración oficial:
Se descubrió una vulnerabilidad en el sistema de venta de boletos electrónicos Radario que provocó la fuga de datos de servicio al cliente de manera oportuna, dijo Kirill Malyshev, director de marketing de la compañía, a la Agencia de Noticias de Moscú.
“Realmente descubrimos una vulnerabilidad en el funcionamiento del sistema asociado con las actualizaciones periódicas, que se solucionó inmediatamente después de la detección. Como resultado de la vulnerabilidad, bajo ciertas condiciones, las acciones hostiles de terceros podrían conducir a la fuga de datos, pero no se registraron incidentes. Por el momento, se han eliminado todos los fallos de funcionamiento ”, dijo K. Malyshev.
El representante de la compañía subrayó que se decidió volver a emitir todos los boletos vendidos durante la resolución del problema para eliminar por completo la posibilidad de fraude en relación con los clientes del servicio.
Unos días después, verifiqué la disponibilidad de datos en los enlaces filtrados: el acceso a los tickets "destacados" estaba realmente cubierto. En mi opinión, este es un enfoque competente y profesional para resolver el problema de la fuga de datos.
Caso dos. "Fly.ru"
Temprano en la mañana del 15/05/2019, DeviceLock Data Breach Intelligence reveló un servidor público Elasticsearch con registros de una determinada IP.

Más tarde se estableció que el servidor pertenece al servicio para seleccionar tours "Fly.ru".
Desde el índice cbto__0, fue posible obtener miles (11.7 mil incluyendo duplicados) de direcciones de correo electrónico, así como cierta información de pago (costo de los tours) e información de viaje (cuándo, dónde, tarifa aérea para todos los viajeros incluidos en el tour, etc. ) por un monto de aproximadamente 1,8 mil registros:
"full_message": " : {\"SuccessReturnUrl\":\"https://sletat.ru/tour/7-1939548394-65996246/buy/?ClaimId=b5e3bf98-2855-400d-a93a-17c54a970155\",\"ErrorReturnUrl\":\"https://sletat.ru/\",\"PaymentAgentId\":15,\"DocumentNumber\":96629429,\"DocumentDisplayNumber\":\"4451-17993\",\"Amount\":36307.0,\"PaymentToolType\":3,\"ExpiryDateUtc\":\"2020-04-03T00:33:55.217358+03:00\",\"LifecycleType\":2,\"CustomerEmail\":\"XXX@mail.ru\",\"Description\":\"\",\"SettingsId\":\"8759d0dd-da54-45dd-9661-4e852b0a1d89\",\"AdditionalInfo\":\"{\\\"TourOfficeAdditionalInfo\\\":{\\\"IsAdditionalPayment\\\":false},\\\"BarrelAdditionalInfo\\\":{\\\"Tickets\\\":[{\\\"Passenger\\\":{\\\"FIO\\\":\\\"XXX VIKTORIIA\\\"},\\\"ReservationSystem\\\":null,\\\"TicketNumber\\\":null,\\\"IsRefundPossible\\\":false},{\\\"Passenger\\\":{\\\"FIO\\\":\\\"XXX ANDREI\\\"},\\\"ReservationSystem\\\":null,\\\"TicketNumber\\\":null,\\\"IsRefundPossible\\\":false},{\\\"Passenger\\\":{\\\"FIO\\\":\\\"XXX Andrei\\\"},\\\"ReservationSystem\\\":null,\\\"TicketNumber\\\":null,\\\"IsRefundPossible\\\":false}],\\\"Segments\\\":[{\\\"Flight\\\":\\\"5659\\\",\\\"AviaCompany\\\":null,\\\"AviaCompanyIataCode\\\":null,\\\"DepartureCity\\\":\\\"LED\\\",\\\"DepartureAirport\\\":\\\"LED\\\",\\\"DepartureAirportIataCode\\\":\\\"LED\\\",\\\"DepartureDate\\\":\\\"2019-04-11T02:45:00\\\",\\\"DepartureTime\\\":null,\\\"ArrivalCity\\\":\\\"SHJ\\\",\\\"ArrivalAirport\\\":\\\"SHJ\\\",\\\"ArrivalAirportIataCode\\\":\\\"SHJ\\\",\\\"ArrivalDate\\\":\\\"2019-04-11T09:40:00\\\",\\\"ArrivalTime\\\":null,\\\"FareCode\\\":null},{\\\"Flight\\\":\\\"5660\\\",\\\"AviaCompany\\\":null,\\\"AviaCompanyIataCode\\\":null,\\\"DepartureCity\\\":\\\"SHJ\\\",\\\"DepartureAirport\\\":\\\"SHJ\\\",\\\"DepartureAirportIataCode\\\":\\\"SHJ\\\",\\\"DepartureDate\\\":\\\"2019-04-14T10:45:00\\\",\\\"DepartureTime\\\":null,\\\"ArrivalCity\\\":\\\"LED\\\",\\\"ArrivalAirport\\\":\\\"LED\\\",\\\"ArrivalAirportIataCode\\\":\\\"LED\\\",\\\"ArrivalDate\\\":\\\"2019-04-14T15:50:00\\\",\\\"ArrivalTime\\\":null,\\\"FareCode\\\":null}]},\\\"Tickets\\\":[{\\\"Passenger\\\":{\\\"FIO\\\":\\\"XXX VIKTORIIA\\\"},\\\"ReservationSystem\\\":null,\\\"TicketNumber\\\":null,\\\"IsRefundPossible\\\":false},{\\\"Passenger\\\":{\\\"FIO\\\":\\\"XXX ANDREI\\\"},\\\"ReservationSystem\\\":null,\\\"TicketNumber\\\":null,\\\"IsRefundPossible\\\":false},{\\\"Passenger\\\":{\\\"FIO\\\":\\\"XXX Andrei\\\"},\\\"ReservationSystem\\\":null,\\\"TicketNumber\\\":null,\\\"IsRefundPossible\\\":false}],\\\"Segments\\\":[{\\\"Flight\\\":\\\"5659\\\",\\\"AviaCompany\\\":null,\\\"AviaCompanyIataCode\\\":null,\\\"DepartureCity\\\":\\\"LED\\\",\\\"DepartureAirport\\\":\\\"LED\\\",\\\"DepartureAirportIataCode\\\":\\\"LED\\\",\\\"DepartureDate\\\":\\\"2019-04-11T02:45:00\\\",\\\"DepartureTime\\\":null,\\\"ArrivalCity\\\":\\\"SHJ\\\",\\\"ArrivalAirport\\\":\\\"SHJ\\\",\\\"ArrivalAirportIataCode\\\":\\\"SHJ\\\",\\\"ArrivalDate\\\":\\\"2019-04-11T09:40:00\\\",\\\"ArrivalTime\\\":null,\\\"FareCode\\\":null},{\\\"Flight\\\":\\\"5660\\\",\\\"AviaCompany\\\":null,\\\"AviaCompanyIataCode\\\":null,\\\"DepartureCity\\\":\\\"SHJ\\\",\\\"DepartureAirport\\\":\\\"SHJ\\\",\\\"DepartureAirportIataCode\\\":\\\"SHJ\\\",\\\"DepartureDate\\\":\\\"2019-04-14T10:45:00\\\",\\\"DepartureTime\\\":null,\\\"ArrivalCity\\\":\\\"LED\\\",\\\"ArrivalAirport\\\":\\\"LED\\\",\\\"ArrivalAirportIataCode\\\":\\\"LED\\\",\\\"ArrivalDate\\\":\\\"2019-04-14T15:50:00\\\",\\\"ArrivalTime\\\":null,\\\"FareCode\\\":null}]}\",\"FinancialSystemId\":9,\"Key\":\"18fe21d1-8c9c-43f3-b11d-6bf884ba6ee0\"}"
Por cierto, los enlaces a las visitas pagas funcionan bastante bien:

En los índices con el nombre graylog_ en texto plano estaban los inicios de sesión y las contraseñas de las agencias de viajes conectadas al sistema Sletat.ru y que vendían tours a sus clientes:
"full_message": "Tours by request 155213901 added to local cache with key 'user_cache_155213901' at 5/6/2019 4:49:07 PM, rows found 0, sortedPriceLength 215. QueryString: countryId=90&cityFromId=1265&s_nightsMin=6&s_nightsMax=14&stars=403%2c404&minHotelRating=1¤cyAlias=RUB&pageSize=300&pageNumber=1&s_showcase=true&includeOilTaxesAndVisa=0&login=zakaz%40XXX.ru&password=XXX, Referer: , UserAgent: , IP: 94.154.XX.XX."
Según mis estimaciones, se encendieron varios cientos de pares de inicio de sesión / contraseña.
Desde la cuenta personal de la agencia de viajes en el portal agent.sletat.ru, fue posible obtener datos del cliente, incluidos números de pasaporte, números de pasaporte, fechas de nacimiento, nombre, números de teléfono y direcciones de correo electrónico.

Notifiqué al servicio Sletat.ru el 15/05/2019 a las 10:46 (hora de Moscú) y después de unas horas (hasta las 16:00) el servidor Elasticsearch desapareció del acceso libre. Más tarde, en respuesta a una publicación en Kommersant, la administración del servicio hizo una declaración muy extraña a través de los medios:
El jefe de la compañía, Andrei Vershinin, explicó que Sletat.ru proporciona a una serie de los operadores turísticos más grandes socios con acceso al historial de consultas en el sistema de búsqueda. Y sugirió que DeviceLock lo recibió: "Sin embargo, en la base de datos especificada no hay datos de pasaporte de turistas, inicios de sesión y contraseñas de agencias de viajes, datos de pago, etc." Andrei Vershinin señaló que "Sletat.ru" aún no ha recibido ninguna evidencia de acusaciones tan graves. “Ahora estamos tratando de contactar a DeviceLock. Creemos que esto es una orden. A algunas personas no les gusta nuestro rápido crecimiento ", agregó. "
Como se muestra arriba, los datos de inicio de sesión, contraseñas y pasaportes de los turistas han estado en el dominio público durante bastante tiempo (al menos desde el 29/03/2019, cuando el servidor de la compañía puso a disposición pública el servidor de la compañía por primera vez). Por supuesto, nadie nos contactó. Espero que al menos las agencias de viajes que notificaron sobre la fuga y les obligaron a cambiar las contraseñas.
Siempre se pueden encontrar noticias sobre filtraciones de información e información privilegiada en mi canal de Telegram " Fugas de información ".