Zwei in einem: Touristendaten und Tickets für kulturelle Veranstaltungen waren öffentlich verfügbar

Heute werden wir uns zwei Fälle gleichzeitig ansehen - die Daten von Kunden und Partnern zweier völlig unterschiedlicher Unternehmen haben sich dank der offenen Elasticsearch-Server mit Protokollen von Informationssystemen (IS) dieser Unternehmen als frei zugänglich erwiesen.



Im ersten Fall handelt es sich um Zehntausende (oder vielleicht Hunderttausende) Tickets für verschiedene kulturelle Veranstaltungen (Theater, Clubs, Flusswanderungen usw.), die über das Radario-System ( www.radario.ru ) verkauft werden.


Im zweiten Fall handelt es sich um Daten zu Touristenreisen von Tausenden (möglicherweise mehreren Zehntausenden) von Reisenden, die Touren über Reisebüros gekauft haben, die mit dem Sletat.ru-System ( www.sletat.ru ) verbunden sind.


Ich stelle sofort fest, dass nicht nur die Namen der Unternehmen, die die Veröffentlichung der Daten ermöglicht haben, unterschiedlich sind, sondern auch die Herangehensweise dieser Unternehmen an die Erkennung des Vorfalls und die anschließende Reaktion darauf. Aber das Wichtigste zuerst ...


: . . , .


Fall Eins. Radario


Am Abend des 05.06.19 fand unser System den Elasticsearch-Server , der dem elektronischen Ticketverkaufsdienst Radario gehört , frei zugänglich .


Gemäß der bereits etablierten traurigen Tradition enthielt der Server detaillierte Protokolle des Informationssystems des Dienstes, aus denen persönliche Daten, Benutzeranmeldungen und Passwörter sowie direkt elektronische Tickets für verschiedene Veranstaltungen im ganzen Land abgerufen werden konnten.



Das Gesamtvolumen der Protokolle überschritt 1 TB.


Laut der Suchmaschine Shodan ist der Server seit dem 11.03.2019 gemeinfrei. Ich habe Radario-Mitarbeiter am 05.06.2019 um 22:50 Uhr (Moskauer Zeit) benachrichtigt und am 05.07.2019 um 09:30 Uhr war der Server nicht mehr verfügbar.


Die Protokolle enthielten ein universelles (einzelnes) Autorisierungstoken, das den Zugriff auf alle gekauften Tickets über spezielle Links in der folgenden Form ermöglicht:


 http://radario.ru/internal/tickets/XXXXXXXX/print?access_token=******JuYWw6MDIzOWRjOTM1NzJiNDZjMTlhZGFjZmRhZTQ3ZDgyYTk http://radario.ru/internal/orders/YYYYYYY/print?access_token=******JuYWw6MDIzOWRjOTM1NzJiNDZjMTlhZGFjZmRhZTQ3ZDgyYTk 

Das Problem bestand auch darin, dass die Ticketzählung durch die Nummerierung der Bestellungen verwendet wurde und durch einfaches Sortieren der Ticketnummer ( XXXXXXXX ) oder Bestellung ( JJJJJJJ ) alle Tickets aus dem System abgerufen werden konnten.


Um die Relevanz der Datenbank zu überprüfen, habe ich mir sogar ehrlich das billigste Ticket gekauft:




und später auf einem öffentlichen Server in den IP-Protokollen entdeckt:


 http://radario.ru/internal/tickets/11819272/print?access_token==******JuYWw6MDIzOWRjOTM1NzJiNDZjMTlhZGFjZmRhZTQ3ZDgyYTk 

Ich möchte auch betonen, dass Tickets sowohl für vergangene als auch für noch geplante Veranstaltungen erhältlich waren. Das heißt, ein potenzieller Angreifer könnte das Ticket eines anderen verwenden, um zum geplanten Ereignis zu gelangen.


In jedem Elasticsearch-Index, der Protokolle für einen bestimmten Tag (vom 24. Januar 2019 bis 7. Mai 2019) enthielt, gab es durchschnittlich 25 bis 35.000 Tickets.


Zusätzlich zu den Tickets selbst enthielt der Index auch Anmeldungen (E-Mail-Adressen) und Textkennwörter für den Zugriff auf die persönlichen Konten von Radario-Partnern, die über diesen Service Tickets für ihre Veranstaltungen verkaufen:


 Content: \"ReturnUrl=&UserEmail=***@yandex.ru&UserPassword=***\" 

Insgesamt wurden mehr als 500 Login / Passwort-Paare gefunden. In den persönlichen Konten der Partner sehen Sie Statistiken zum Ticketverkauf:



Im öffentlichen Bereich gab es auch vollständige Namen, Telefonnummern und E-Mail-Adressen von Käufern, die beschlossen, zuvor gekaufte Tickets zurückzugeben:


 "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\":\"\"}" 

An einem zufällig ausgewählten Tag wurden mehr als 500 solcher Aufzeichnungen entdeckt.


Ich erhielt eine Antwort auf die Warnung vom technischen Direktor von Radario:


Ich bin CTO Radario und möchte mich bei Ihnen dafür bedanken, dass Sie das Problem entdeckt haben. Wie Sie wissen, haben wir den Zugang zum Gummiband geschlossen und lösen das Problem der Neuausstellung von Tickets für Kunden.

Wenig später gab das Unternehmen eine offizielle Erklärung ab:


Eine Sicherheitslücke, die zum Verlust von Kundendienstdaten führen könnte, wurde im elektronischen Ticketverkaufssystem Radario erkannt und rechtzeitig beseitigt, teilte die Moskauer Marketingagentur Kirill Malyshev der Moskauer Nachrichtenagentur mit.

„Wir haben wirklich eine Sicherheitslücke im Betrieb des Systems entdeckt, die mit regelmäßigen Updates verbunden ist und die unmittelbar nach der Erkennung behoben wurde. Infolge der Sicherheitsanfälligkeit können unfreundliche Handlungen Dritter unter bestimmten Umständen zu Datenlecks führen, es wurden jedoch keine Vorfälle registriert. Im Moment sind alle Fehlfunktionen beseitigt “, sagte K. Malyshev.

Der Unternehmensvertreter betonte, dass beschlossen wurde, alle während der Lösung des Problems verkauften Tickets erneut auszustellen, um die Möglichkeit eines Betrugs in Bezug auf Kunden des Dienstes vollständig auszuschließen.

Einige Tage später überprüfte ich die Verfügbarkeit von Daten zu durchgesickerten Links - der Zugriff auf die "hervorgehobenen" Tickets war wirklich abgedeckt. Meiner Meinung nach ist dies ein kompetenter, professioneller Ansatz zur Lösung des Problems des Datenverlusts.


Fall zwei. "Fly.ru"


Am frühen Morgen des 15.05.2019 enthüllte DeviceLock Data Breach Intelligence einen öffentlichen Elasticsearch-Server mit Protokollen einer bestimmten IP.



Später wurde festgestellt, dass der Server zum Dienst zur Auswahl von Touren "Fly.ru" gehört.


Aus dem cbto__0- Index konnten Tausende (11,7 Tausend einschließlich Duplikate) von E-Mail-Adressen sowie einige Zahlungsinformationen (Kosten für Touren) und Reiseinformationen (wann, wo, Flugkosten für alle an der Tour enthaltenen Reisenden usw.) abgerufen werden. ) in Höhe von ca. 1,8 Tausend Datensätzen:


 "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\"}" 

Links zu bezahlten Touren funktionieren übrigens ganz gut:



In den Indizes mit dem Namen graylog_ im Klartext befanden sich die Anmeldungen und Passwörter von Reisebüros, die mit dem Sletat.ru-System verbunden waren und Touren an ihre Kunden verkauften:


 "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&currencyAlias=RUB&pageSize=300&pageNumber=1&s_showcase=true&includeOilTaxesAndVisa=0&login=zakaz%40XXX.ru&password=XXX, Referer: , UserAgent: , IP: 94.154.XX.XX." 

Nach meinen Schätzungen wurden mehrere hundert Login / Passwort-Paare beleuchtet.


Über das persönliche Konto des Reisebüros auf dem Portal agent.sletat.ru konnten Kundendaten wie Passnummern, Passnummern, Geburtsdaten, Name, Telefonnummern und E-Mail-Adressen abgerufen werden.



Ich habe den Sletat.ru-Dienst am 15.05.2019 um 10:46 Uhr (Moskauer Zeit) benachrichtigt und nach einigen Stunden (bis 16:00 Uhr) ist der Elasticsearch-Server vom freien Zugriff verschwunden. Später, als Antwort auf eine Veröffentlichung in Kommersant, gab das Management des Dienstes eine sehr seltsame Aussage durch die Medien ab:


Der Leiter des Unternehmens, Andrei Vershinin, erklärte, dass Sletat.ru einer Reihe der größten Reiseveranstalter-Partner Zugang zur Geschichte der Anfragen im Suchsystem bietet. Und er schlug vor, dass DeviceLock es erhielt: "In der angegebenen Datenbank gibt es jedoch keine Passdaten von Touristen, Logins und Passwörter von Reisebüros, Zahlungsdaten usw." Andrei Vershinin stellte fest, dass „Sletat.ru“ noch keine Beweise für solch schwerwiegende Vorwürfe erhalten hat. „Jetzt versuchen wir, DeviceLock zu kontaktieren. Wir glauben, dass dies ein Befehl ist. Einige Leute mögen unser schnelles Wachstum nicht “, fügte er hinzu. ""

Wie oben gezeigt, sind sowohl Anmeldungen als auch Passwörter und Passdaten von Touristen seit geraumer Zeit gemeinfrei (zumindest ab dem 29.03.2019, als der Server des Unternehmens erstmals von der Shodan-Suchmaschine öffentlich zugänglich gemacht wurde). Natürlich hat uns niemand kontaktiert. Ich hoffe, dass zumindest die Reisebüros sie über das Leck informiert und sie gezwungen haben, Passwörter zu ändern.


Nachrichten über Informationslecks und Insider finden Sie immer auf meinem Telegrammkanal „ Informationslecks “.

Source: https://habr.com/ru/post/de452698/


All Articles