Два в одному: дані туристів та квитки на культурні заходи перебували у відкритому доступі

Сьогодні розглянемо відразу два кейси – дані клієнтів та партнерів двох абсолютно різних компаній опинилися у вільному доступі «завдяки» відкритим серверам Elasticsearch з логами інформаційних систем цих компаній.

Два в одному: дані туристів та квитки на культурні заходи перебували у відкритому доступі

У першому випадку — це десятки тисяч (а може й сотні тисяч) квитків на різні культурні заходи (театри, клуби, річкові прогулянки тощо), що продаються через систему «Радаріо» (www.radario.ru).

У другому випадку - це дані про туристичні поїздки тисяч (можливо кількох десятків тисяч) мандрівників, які купили тури через турагентства, підключені до системи «Злітати.ру» (www.sletat.ru).

Відразу зазначу, що відрізняються не лише назви компаній, що допустили попадання даних у відкритий доступ, але й підхід цих компаній до визнання інциденту та подальша реакція на нього. Але про все по порядку.

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

Випадок перший. «Радаріо»

Увечері 06.05.2019 наша система виявила у вільному доступі сервер Elasticsearch, що належить сервісу продажу електронних квитків «Радаріо».

За сумною традицією, що вже склалася, сервер містив детальні логи інформаційної системи сервісу, з яких можна було отримати персональні дані, логіни та паролі користувачів, а також безпосередньо самі електронні квитки на різні заходи по всій країні.

Два в одному: дані туристів та квитки на культурні заходи перебували у відкритому доступі

Загальний обсяг логів перевищував 1 Тб.

За даними пошукача Shodan сервер знаходився у відкритому доступі з 11.03.2019. Я оповістив співробітників «Радаріо» 06.05.2019 о 22:50 (МСК) та 07.05.2019 близько 09:30 сервер став недоступним.

У логах знаходився універсальний (єдиний) токен авторизації, що надає доступ до всіх куплених квитків за спеціальними посиланнями, виду:

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

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

Проблема також полягала в тому, що для обліку квитків використовувалася наскрізна нумерація замовлень та простим перебором номера квитка (XXXXXXXX) або замовлення (РРРРРРР), можна було отримати всі квитки із системи.

Для перевірки актуальності бази я навіть чесно купив собі найдешевший квиток:

Два в одному: дані туристів та квитки на культурні заходи перебували у відкритому доступі
Два в одному: дані туристів та квитки на культурні заходи перебували у відкритому доступі

і пізніше виявив його на загальнодоступному сервері в логах ІС:

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

Окремо хочеться підкреслити, що були доступні квитки як на заходи, що вже минули, так і на ті, які ще тільки плануються. Тобто потенційний зловмисник міг скористатися чужим квитком для проходу на захід, що планується.

У середньому в кожному індексі Elasticsearch, що містить логи за один певний день (починаючи з 24.01.2019 та до 07.05.2019), знаходилося від 25 до 35 тис. квитків.

Крім самих квитків в індексі містилися логіни (адреси електронної пошти) та текстові паролі для доступу до особистих кабінетів партнерів «Радаріо», які продають квитки на свої заходи через даний сервіс:

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

Усього було виявлено понад 500 пар логін/пароль. У особистих кабінетах партнерів видно статистику продажу квитків:

Два в одному: дані туристів та квитки на культурні заходи перебували у відкритому доступі

Також у відкритому доступі знаходилися ПІБ, телефони та адреси електронної пошти покупців, які вирішили здійснити повернення, куплених раніше квитків:

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

За один випадково вибраний день було виявлено понад 500 таких записів.

Я отримав відповідь на оповіщення від технічного директора Радаріо:

Я технічний директор Радаріо, і хотів би подякувати за виявлення проблеми. Доступ до еластику, як вам відомо, ми закрили та вирішуємо питання з перевипуском квитків для клієнтів.

А трохи пізніше компанія зробила офіційну заяву:

В електронній системі продажу квитків Radario було виявлено та своєчасно усунуто вразливість, яка могла призвести до витоку даних клієнтів сервісу, повідомив Агентству міських новин «Москва» директор з маркетингу компанії Кирило Малишев.

«Нами справді було виявлено вразливість у роботі системи, пов'язану з регулярним оновленням, яка була усунена відразу після виявлення. Внаслідок вразливості за певних умов недружні дії третіх осіб могли призвести до витоку даних, проте будь-яких інцидентів зафіксовано не було. Наразі всі несправності усунуті», — повідомив К.Малишев.

Представник компанії наголосив, що було ухвалено рішення перевипустити всі квитки, продані за час вирішення проблеми, щоб повністю виключити можливість будь-якого шахрайства щодо клієнтів сервісу.

Через кілька днів я перевірив доступність даних за посиланнями, що втікли — доступ до «засвічених» квитків дійсно був прикритий. На мій погляд, це грамотний, професійний підхід до вирішення проблеми витоку даних.

Випадок другий. «Злітати.ру»

Рано-вранці 15.05.2019 DeviceLock Data Breach Intelligence виявив загальнодоступний сервер Elasticsearch з логами певної ІС.

Два в одному: дані туристів та квитки на культурні заходи перебували у відкритому доступі

Пізніше було встановлено, що сервер належить до сервісу з підбору турів «Злітати.ру».

З індексу cbto__0 можна було отримати тисячі (11,7 тис. включаючи дублі) адрес електронної пошти, а також деяку платіжну інформацію (вартість турів) та дані тур поїздок (коли, куди, дані авіаквитків) всіх вписаних у тур мандрівників тощо) у кількості близько 1,8 тис. записів:

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

До речі, лінки на оплачені тури цілком робочі:

Два в одному: дані туристів та квитки на культурні заходи перебували у відкритому доступі

В індексах з ім'ям graylog_ у відкритому вигляді знаходилися логіни та паролі турагентств, підключених до системи «Злітати.ру» та продають тури своїм клієнтам:

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

За моїми прикидками засвітилося кілька сотень пар логін/пароль.

З особистого кабінету турагентства на порталі agent.sletat.ru можна було отримати дані клієнтів, включаючи номери паспортів, закордонних паспортів, дати народження, ПІБ, телефони та адреси електронної пошти.

Два в одному: дані туристів та квитки на культурні заходи перебували у відкритому доступі

Я сповістив сервіс «Злітати.ру» 15.05.2019 о 10:46 (МСК) і за кілька годин (до 16:00) він зник їх вільного доступу. Пізніше у відповідь на публікацію в Комерсанті керівництво сервісу зробило дуже дивну заяву через ЗМІ:

Керівник компанії Андрій Вершинін пояснив, що "Злітати.ру" надає ряду найбільших туроператорів-партнерів доступ до історії запитів у пошуковій системі. І припустив, що DeviceLock отримала його: «Однак у зазначеній базі немає паспортних даних туристів, логінів та паролів турагентств, платіжних даних тощо». Андрій Вершинін зазначив, що жодних доказів таких серйозних звинувачень «Злітати.ру» досі не отримала. «Наразі намагаємося зв'язатися з компанією DeviceLock. Вважаємо, що це замовлення. Комусь не подобається наше стрімке зростання», – додав він. «

Як показано вище і логіни, і паролі, і паспортні дані туристів перебували у вільному доступі досить тривалий час (як мінімум з 29.03.2019, коли сервер компанії вперше був зафіксований у відкритому доступі пошуковою системою Shodan). Зрозуміло, що з нами ніхто не зв'язувався. Сподіваюся, що хоча б турагентства вони сповістили про витік і змусили їх змінити паролі.

Новини про виток інформації та інсайдерів завжди можна знайти на моєму Telegram-каналі «Виток інформації».

Джерело: habr.com

Додати коментар або відгук