Dua dalam satu: data turis dan tiket untuk acara budaya tersedia untuk umum

Hari ini, kita akan melihat dua kasus sekaligus - data pelanggan dan mitra dari dua perusahaan yang sepenuhnya berbeda ternyata berada dalam akses bebas "terima kasih" ke server terbuka Elasticsearch dengan log sistem informasi (IS) dari perusahaan-perusahaan ini.



Dalam kasus pertama, itu adalah puluhan ribu (atau mungkin ratusan ribu) tiket ke berbagai acara budaya (teater, klub, jalan-jalan di sungai, dll.) Dijual melalui sistem Radario ( www.radario.ru ).


Dalam kasus kedua, ini adalah data perjalanan wisata ribuan (mungkin beberapa puluh ribu) pelancong yang membeli tur melalui agen perjalanan yang terhubung ke sistem Sletat.ru ( www.sletat.ru ).


Saya segera mencatat bahwa tidak hanya nama-nama perusahaan yang memungkinkan data tersedia untuk umum berbeda, tetapi juga pendekatan perusahaan-perusahaan ini terhadap pengakuan insiden dan reaksi selanjutnya terhadapnya. Tapi hal pertama yang pertama ...


: . . , .


Kasus Satu. Radario


Pada malam 05/06/2019, sistem kami menemukan server Elasticsearch , yang dimiliki oleh layanan penjualan tiket elektronik Radario , dalam akses gratis .


Menurut tradisi menyedihkan yang sudah ada, server berisi log terperinci dari sistem informasi layanan, dari mana dimungkinkan untuk memperoleh data pribadi, login pengguna dan kata sandi, serta tiket elektronik langsung untuk berbagai acara di seluruh negeri.



Total volume log melebihi 1 Tb.


Menurut mesin pencari Shodan, server telah berada di domain publik sejak 03/11/2019. Saya memberi tahu karyawan Radario pada 05/06/2019 pada 22:50 (waktu Moskow) dan pada 05/07/2019 sekitar 09:30 server menjadi tidak tersedia.


Log berisi token otorisasi universal (tunggal) yang menyediakan akses ke semua tiket yang dibeli melalui tautan khusus, dalam bentuk:


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

Masalahnya juga terdiri dari kenyataan bahwa penghitungan tiket digunakan melalui penomoran pesanan dan hanya dengan memilah-milah nomor tiket ( XXXXXXXX ) atau pesanan ( YYYYYYY ), dimungkinkan untuk mendapatkan semua tiket dari sistem.


Untuk memeriksa relevansi database, saya bahkan dengan jujur ​​membeli sendiri tiket termurah:




dan kemudian menemukannya di server publik di log IP:


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

Saya juga ingin menekankan bahwa tiket tersedia untuk acara masa lalu dan untuk yang masih direncanakan. Artinya, penyerang potensial dapat menggunakan tiket orang lain untuk sampai ke acara yang direncanakan.


Rata-rata, di setiap indeks Elasticsearch berisi log untuk satu hari tertentu (dari 24 Januari 2019 hingga 7 Mei 2019), ada 25 hingga 35 ribu tiket.


Selain tiket itu sendiri, indeks ini juga berisi login (alamat email) dan kata sandi teks untuk akses ke akun pribadi mitra Radario yang menjual tiket untuk acara mereka melalui layanan ini:


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

Secara total, lebih dari 500 pasangan login / kata sandi ditemukan. Di akun pribadi mitra Anda dapat melihat statistik penjualan tiket:



Juga, dalam domain publik terdapat nama lengkap, nomor telepon, dan alamat email pembeli yang memutuskan untuk mengembalikan tiket yang telah dibeli sebelumnya:


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

Dalam satu hari yang dipilih secara acak, lebih dari 500 catatan seperti itu ditemukan.


Saya menerima tanggapan untuk lansiran dari direktur teknis Radario:


Saya CTO Radario, dan ingin mengucapkan terima kasih karena telah menemukan masalah. Akses ke elastis, seperti yang Anda tahu, kami telah menutup dan menyelesaikan masalah penerbitan kembali tiket untuk pelanggan.

Beberapa saat kemudian, perusahaan membuat pernyataan resmi:


Kerentanan yang dapat menyebabkan kebocoran data layanan pelanggan terdeteksi dan tepat waktu dihilangkan dalam sistem penjualan tiket elektronik Radario, agen pemasaran Moskow Kirill Malyshev mengatakan kepada Kantor Berita Moskow.

“Kami benar-benar menemukan kerentanan dalam pengoperasian sistem yang terkait dengan pembaruan rutin, yang diperbaiki segera setelah deteksi. Sebagai hasil dari kerentanan, dalam kondisi tertentu, tindakan pihak ketiga yang tidak ramah dapat menyebabkan kebocoran data, tetapi tidak ada insiden yang dicatat. Saat ini, semua malfungsi telah dieliminasi, ”kata K. Malyshev.

Perwakilan perusahaan menekankan bahwa diputuskan untuk menerbitkan kembali semua tiket yang terjual selama penyelesaian masalah untuk sepenuhnya menghilangkan kemungkinan penipuan dalam kaitannya dengan pelanggan layanan.

Beberapa hari kemudian saya memeriksa ketersediaan data pada tautan yang bocor - akses ke tiket "yang disorot" benar-benar tertutup. Menurut pendapat saya, ini adalah pendekatan yang kompeten dan profesional untuk memecahkan masalah kebocoran data.


Kasus Dua. "Fly.ru"


Di awal pagi hari 15/15/2019 DeviceLock Data Breach Intelligence mengungkapkan server Elasticsearch publik dengan log dari IP tertentu.



Kemudian ditetapkan bahwa server milik layanan untuk memilih wisata "Fly.ru".


Dari indeks cbto__0, dimungkinkan untuk mendapatkan ribuan (11,7 ribu termasuk duplikat) alamat email, serta beberapa informasi pembayaran (biaya tur) dan informasi perjalanan (ketika, di mana, tiket pesawat untuk semua pelancong yang termasuk dalam tur, dll. ) dalam jumlah sekitar 1,8 ribu catatan:


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

Omong-omong, tautan ke tur berbayar cukup berhasil:



Dalam indeks dengan nama graylog_ dalam teks biasa adalah login dan kata sandi agen perjalanan yang terhubung ke sistem Sletat.ru dan menjual tur ke pelanggan mereka:


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

Menurut perkiraan saya, beberapa ratus pasangan login / kata sandi menyala.


Dari akun pribadi agen perjalanan di portal agent.sletat.ru, dimungkinkan untuk memperoleh data pelanggan, termasuk nomor paspor, nomor paspor, tanggal lahir, nama, telepon, dan alamat email.



Saya memberi tahu layanan Sletat.ru pada 15/5/2019 pukul 10:46 (waktu Moskow) dan setelah beberapa jam (hingga 16:00) server Elasticsearch menghilang dari akses gratis. Kemudian, dalam menanggapi publikasi di Kommersant, manajemen layanan membuat pernyataan yang sangat aneh melalui media:


Kepala perusahaan, Andrei Vershinin, menjelaskan bahwa Sletat.ru menyediakan sejumlah operator tur mitra terbesar dengan akses ke sejarah kueri di mesin pencari. Dan dia menyarankan agar DeviceLock menerimanya: "Namun, dalam database yang ditentukan tidak ada data paspor turis, info masuk dan kata sandi agen perjalanan, data pembayaran, dll." Andrei Vershinin mencatat bahwa "Sletat.ru" belum menerima bukti tuduhan serius semacam itu. “Sekarang kami mencoba menghubungi DeviceLock. Kami percaya ini adalah perintah. Beberapa orang tidak menyukai pertumbuhan kami yang cepat, "tambahnya. "

Seperti yang ditunjukkan di atas, baik login, kata sandi, dan data paspor turis telah lama berada di domain publik (setidaknya dari 03/29/2019, ketika server perusahaan pertama kali tersedia untuk umum oleh mesin pencari Shodan). Tentu saja, tidak ada yang menghubungi kami. Saya berharap bahwa setidaknya agen perjalanan yang mereka beri tahu tentang kebocoran dan memaksa mereka untuk mengubah kata sandi.


Berita tentang kebocoran informasi dan orang dalam selalu dapat ditemukan di saluran Telegram saya " Kebocoran informasi ".

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


All Articles