Dwa w jednym: dane turystyczne i bilety na wydarzenia kulturalne były ogólnodostępne

Dziś przyjrzymy się dwóm przypadkom na raz - dane klientów i partnerów dwóch zupełnie różnych firm były swobodnie dostępne „dzięki” otwartym serwerom Elasticsearch z logami systemów informatycznych (IS) tych firm.

Dwa w jednym: dane turystyczne i bilety na wydarzenia kulturalne były ogólnodostępne

W pierwszym przypadku są to dziesiątki tysięcy (a może i setki tysięcy) biletów na różne wydarzenia kulturalne (teatry, kluby, wycieczki rzeczne itp.) sprzedane za pośrednictwem systemu Radario (www.radario.ru).

W drugim przypadku są to dane dotyczące wyjazdów turystycznych tysięcy (ewentualnie kilkudziesięciu tysięcy) podróżnych, którzy wykupili wycieczki za pośrednictwem biur podróży podłączonych do systemu Sletat.ru (www.sletat.ru).

Od razu zaznaczam, że różnią się nie tylko nazwy firm, które pozwoliły na upublicznienie danych, ale także podejście tych firm do rozpoznania zdarzenia i późniejszej reakcji na niego. Ale przede wszystkim…

Дисклеймер: вся информация ниже публикуется исключительно в образовательных целях. Автор не получал доступа к персональным данным третьих лиц и компаний. Информация взята либо из открытых источников, либо была предоставлена автору анонимными доброжелателями.

Sprawa pierwsza. „Radio”

Wieczorem 06.05.2019 nasz system odkryłem, że serwer Elasticsearch jest swobodnie dostępny, którego właścicielem jest serwis elektronicznej sprzedaży biletów Radario.

Zgodnie z ugruntowaną już smutną tradycją, na serwerze znajdowały się szczegółowe logi systemu informatycznego serwisu, z których można było pozyskać dane osobowe, loginy i hasła użytkowników, a także same bilety elektroniczne na różne wydarzenia na terenie całego kraju.

Dwa w jednym: dane turystyczne i bilety na wydarzenia kulturalne były ogólnodostępne

Łączny wolumen logów przekroczył 1 TB.

Jak wynika z wyszukiwarki Shodan, serwer jest publicznie dostępny od 11.03.2019 marca 06.05.2019 roku. Powiadomiłem pracowników Radario w dniu 22 o godzinie 50:07.05.2019 (MSK) oraz w dniu 09 o godzinie 30:XNUMX serwer stał się niedostępny.

W logach znajdował się uniwersalny (pojedynczy) token autoryzacyjny, umożliwiający dostęp do wszystkich zakupionych biletów poprzez specjalne linki, takie jak:

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

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

Problem polegał także na tym, że do rozliczenia biletów stosowano ciągłą numerację zamówień i proste wyliczanie numeru biletu (XXXXXXXX) lub zamów (RRRRRR), udało się pobrać z systemu wszystkie bilety.

Aby sprawdzić aktualność bazy danych, szczerze kupiłem sobie nawet najtańszy bilet:

Dwa w jednym: dane turystyczne i bilety na wydarzenia kulturalne były ogólnodostępne
Dwa w jednym: dane turystyczne i bilety na wydarzenia kulturalne były ogólnodostępne

a później znalazłem go na serwerze publicznym w dziennikach IS:

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

Osobno chciałbym podkreślić, że bilety były dostępne zarówno na wydarzenia, które już się odbyły, jak i te, które są jeszcze planowane. Oznacza to, że potencjalny atakujący może wykorzystać cudzy bilet, aby wejść na zaplanowane wydarzenie.

Średnio każdy indeks Elasticsearch zawierający logi dla jednego konkretnego dnia (od 24.01.2019 do 07.05.2019) zawierał od 25 do 35 tysięcy biletów.

Oprócz samych biletów indeks zawierał loginy (adresy e-mail) i hasła tekstowe umożliwiające dostęp do kont osobistych partnerów Radario, którzy sprzedają bilety na swoje wydarzenia za pośrednictwem tego serwisu:

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

W sumie wykryto ponad 500 par login/hasło. Statystyki sprzedaży biletów widoczne są na kontach osobistych partnerów:

Dwa w jednym: dane turystyczne i bilety na wydarzenia kulturalne były ogólnodostępne

Do publicznej wiadomości udostępnione zostały także nazwiska, numery telefonów i adresy e-mail kupujących, którzy zdecydowali się na zwrot wcześniej zakupionych biletów:

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

W ciągu jednego losowo wybranego dnia odkryto ponad 500 takich zapisów.

Otrzymałem odpowiedź na alert od dyrektora technicznego Radario:

Jestem dyrektorem technicznym Radario i chciałbym podziękować za zidentyfikowanie problemu. Jak wiecie zamknęliśmy dostęp do gumek i rozwiązujemy kwestię ponownego wystawienia biletów dla klientów.

Nieco później firma wydała oficjalne oświadczenie:

W systemie elektronicznej sprzedaży biletów Radario wykryto i szybko załatano lukę, która może doprowadzić do wycieku danych od klientów usługi – powiedział agencji informacyjnej Moskwa City News dyrektor ds. marketingu firmy Kirill Malyshev.

„Właściwie odkryliśmy lukę w działaniu systemu związaną z regularnymi aktualizacjami, która została naprawiona natychmiast po wykryciu. W wyniku tej luki, pod pewnymi warunkami, nieprzyjazne działania osób trzecich mogą doprowadzić do wycieku danych, jednak nie odnotowano żadnych incydentów. W tej chwili wszystkie usterki zostały usunięte” – powiedział K. Malyshev.

Przedstawiciel firmy podkreślił, że w trakcie rozwiązywania problemu podjęto decyzję o wznowieniu wszystkich sprzedanych biletów, aby całkowicie wyeliminować możliwość jakichkolwiek oszustw wobec klientów serwisu.

Kilka dni później sprawdziłem dostępność danych, korzystając z linków, które wyciekły – rzeczywiście dostęp do „ujawnionych” biletów był objęty. Moim zdaniem jest to kompetentne, profesjonalne podejście do rozwiązania problemu wycieku danych.

Przypadek drugi. „Fly.ru”

Wczesnym rankiem 15.05.2019r Analiza naruszeń danych DeviceLock zidentyfikował publiczny serwer Elasticsearch z dziennikami określonego IS.

Dwa w jednym: dane turystyczne i bilety na wydarzenia kulturalne były ogólnodostępne

Później ustalono, że serwer należy do usługi wyboru wycieczek „Sletat.ru”.

Z indeksu cbto__0 udało się pozyskać tysiące (11,7 tys. łącznie z duplikatami) adresów e-mail, a także część informacji o płatnościach (koszty wycieczki) i dane dotyczące wycieczki (kiedy, gdzie, szczegóły biletu lotniczego) wszystko podróżni objęci wycieczką itp.) w ilości ok. 1,8 tys. rekordów:

"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":"[email protected]","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"}"

Nawiasem mówiąc, linki do płatnych wycieczek działają całkiem nieźle:

Dwa w jednym: dane turystyczne i bilety na wydarzenia kulturalne były ogólnodostępne

W indeksach z imieniem szara kłoda_ jawnym tekstem podano loginy i hasła biur podróży podłączonych do systemu Sletat.ru i sprzedających wycieczki swoim klientom:

"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."

Według moich szacunków wyświetlonych zostało kilkaset par login/hasło.

Z konta osobistego biura podróży w portalu agent.sletat.ru możliwe było pozyskanie danych klientów, m.in. numerów paszportów, paszportów międzynarodowych, dat urodzenia, imion i nazwisk, numerów telefonów i adresów e-mail.

Dwa w jednym: dane turystyczne i bilety na wydarzenia kulturalne były ogólnodostępne

Zgłosiłem serwis Sletat.ru 15.05.2019 o godzinie 10:46 (MSK) i kilka godzin później (do 16:00) zniknął on z ich bezpłatnego dostępu. Później, w odpowiedzi na publikację w „Kommersant”, kierownictwo serwisu wydało za pośrednictwem mediów bardzo dziwne oświadczenie:

Szef firmy Andrei Vershinin wyjaśnił, że Sletat.ru zapewnia wielu liczącym się partnerskim touroperatorom dostęp do historii zapytań w wyszukiwarce. I założył, że DeviceLock go otrzymał: „Jednak wskazana baza danych nie zawiera danych paszportowych turystów, loginów i haseł biur podróży, informacji o płatnościach itp.” Andrei Vershinin zauważył, że Sletat.ru nie otrzymał jeszcze żadnych dowodów na tak poważne oskarżenia. „Próbujemy teraz skontaktować się z DeviceLock. Uważamy, że jest to rozkaz. Niektórym nie podoba się nasz szybki rozwój” – dodał. "

Jak pokazano powyżej, loginy, hasła i dane paszportowe turystów dość długo znajdowały się w domenie publicznej (przynajmniej od 29.03.2019 marca XNUMX r., kiedy serwer firmy został po raz pierwszy zarejestrowany w domenie publicznej przez wyszukiwarkę Shodan). Oczywiście nikt się z nami nie skontaktował. Mam nadzieję, że przynajmniej powiadomili biura podróży o wycieku i zmusili je do zmiany haseł.

Wiadomości o wyciekach informacji i osobach poufnych zawsze można znaleźć na moim kanale Telegram ”Wycieki informacji".

Źródło: www.habr.com

Dodaj komentarz