Dane medyczne – , dane dotyczące kredytów – , tym razem przyszła kolej na dane dotyczące płatności za mandaty GIBDD oraz zaległości w wykonawczych postępowaniach urzędów komorniczych.

Dobrą wiadomością jest to, że te płatności nie są powiązane z oficjalną stroną GovServices. Złą wiadomością jest to, że danych jest dużo i są one więcej niż 'osobowe'.
Zastrzeżenie: wszystkie informacje poniżej publikowane są wyłącznie w celach edukacyjnych. Autor nie miał dostępu do danych osobowych osób trzecich ani firm. Informacje pochodzą albo z otwartych źródeł, albo zostały przekazane autorowi przez anonimowych życzliwych.W nocy z 12 kwietnia został wykryty serwer Elasticsearch, który nie wymagał autoryzacji do połączenia. O tym, napisałem notatkę w blogu.

W indeksach Elasticsearch znajdowały się logi pewnego systemu informacyjnego (IS). Postawiono hipotezę o związku tego serwera z witrynami przyjmującymi płatności na rzecz różnych usług publicznych: oplatagibdd.rf, paygibdd.ru, gos-oplata.ru, szyb.fr i oplata-fssp.ru.
Rano 13.04.2019 wysłałem powiadomienia na adresy e-mail: support@gos-oplata.ru, support@oplata-fssp.ru, support@paygibdd.ru, ale (jak to często bywa) nie otrzymałem odpowiedzi. Serwer został cicho 'schowany' i zniknął z ogólnego dostępu 13.04.2019 około 15:20-15:45 (MSK).
W momencie zamknięcia serwera, indeksy Elasticsearch wyglądały tak:

Teraz przejdźmy do najbardziej interesującego – bezpośrednio do danych osobowych. Jak już wspomniałem, w indeksach znajdowały się jakieś logi jakiegoś IS. Jak to często bywa, logi okazały się bardzo szczegółowe, nawet zbyt.
Logi były przechowywane od 28.02.2019, a nie za cały czas pracy IS. W niektórych indeksach dane były od 17.03.2019.
Na przykład, na podstawie logów z indeksu gosoplata można było uzyskać takie dane (łącznie 248365 z wyłączeniem logowania błędów):
{
"_index": "gosoplata",
"_type": "log",
"@timestamp": "2019-03-02T20:55:02+03:00",
"message": "Znaleziono naliczenie w GIS",
"extra": "[n 'gis_info' => unserialize('O:34:"app\models\payment\api\PenaltyInfo":10:{s:10:"billNumber";s:20:"ХХХХХ021170025955001";s:8:"billDate";s:10:"2017-04-03";s:10:"validUntil";s:10:"2017-06-03";s:6:"amount";s:9:"146030.26";s:7:"addInfo";s:1424:"Spłata długu na IP № ХХХХХ/17/ ХХХХХ -IP z dnia 03.04.2017 w sprawie MICHXX X. X., Zobowiązanie z tytułu płatności kredytowych (z wyjątkiem hipotek)\\/\\/UIN32253021170025955001_IP0;Jednostka: UFK W OBLASTI NOWGORODU (OSP NOWGORODSKIEGO, BATECKIEGO I KRESTECKIEGO RAJONÓW UFSSP ROSJI W OBLASTI NOWGORODU L/S 05501845860);Odbiorca: UFK W OBLASTI NOWGORODU (OSP NOWGORODSKIEGO, BATECKIEGO I KRESTECKIEGO RAJONÓW UFSSP ROSJI W OBLASTI NOWGORODU L/S 05501845860);Bank Odbiorcy: ODDELENIE NOWGOROD;Numer konta Odbiorcy: 40302810400001000005;INN: 5321100670;KPP: 532132002;BIk Banku Odbiorcy: 044959001;OKATO: 49625000;KBK: 0;idDebtsum:146540.26;ipPaymentAmount:0.00;ipOperationAmount:0.00;dataUnloadDate:2018-12-04T11:26:19.000;dataIdDate:2017-01-27;dataIdNumber:2-53/2017;dataIpRiseDate:2017-04-03;dataIpNumber: ХХХХХ/17/ХХХХХ-IP;dataIdDbtrFio:MICHXX XX XX;dataIdDbtrBorn:XX-09-03;dataIdDebtText:Zobowiązanie z tytułu płatności kredytowych (z wyjątkiem hipotek);";s:7:"docName";s:3:"inn";s:9:"docNumber";s:12:" ХХХХХ0819584";s:9:"payStatus";s:1:"0";s:9:"quittance";s:1:"3";s:11:"amountToPay";s:9:"146030.26";}'),n]",
"context": "[n '_GET' => [],n '_POST' => [],n]"
}
}Zamieniłem wszystkie wrażliwe dane na symbol „X”. W rzeczywistości były one przechowywane w otwartej formie.
Z indeksu oplata-fssp (łącznie 283958 z wyłączeniem błędów):
{
"_index": "oplata-fssp",
"_type": "log",
"@timestamp": "2019-02-28T22:17:24+03:00",
"extra": "[n 'request_data' => [n 'MNT_ID' => 'ХХХХХ3280',n 'MNT_TRANSACTION_ID' => ''ХХХХХ0795c78337a5a308',n 'MNT_OPERATION_ID' => ''ХХХХХ 3232',n 'MNT_AMOUNT' => '544.00',n 'MNT_CURRENCY_CODE' => 'RUB',n 'MNT_TEST_MODE' => '0',n 'MNT_SIGNATURE' => '6435224ccХХХХХХХ10bbc970f6479787',n 'paymentSystem_unitId' => '1686945',n 'MNT_CORRACCOUNT' => '303',n 'MNT_PAY_SYSTEM' => 'payanyway',n 'MNT_IS_REGULAR' => '',n 'MNT_FORM_METHOD' => 'POST',n 'cardnumber' => '639002********7417',n ],n 'model_attributes' => [n 'id' => 482137,n 'parent_id' => null,n 'name' => 'ПОХХХ ГАЛИНА ГХХХ',n 'ur' => 0,n 'birthdate' => 'ХХХХ-06-06',n 'doc_type' => null,n 'doc_value' => null,n 'hash' => ''ХХХХХ795c78337a5a308',n 'created_at' => '2019-02-28 22:16:10',n 'form_url' => 'https://service.moneta.ru/assistant.widget? 'ХХХХХ&MNT_CURRENCY_CODE=RUB&MNT_AMOUNT=544.00&MNT_DESCRIPTION=Оплата задолженности ФССП. Заказ N482137 УИН: 32223088190136500007 Делопроизводство: ХХХХХХ/19/ХХХХХ-ИП&MNT_TEST_MODE=0&'ХХХХХ &MNT_SUCCESS_URL=https://oplata-fssp.ru/payment/success&MNT_FAIL_URL=https://oplata-fssp.ru/payment/fail&MNT_PAY_SYSTEM=payanyway&MNT_IS_REGULAR=&MNT_FORM_METHOD=POST&followup=true',n 'email' => ''ХХХХХ@bk.ru',n 'payment_system_id' => 'moneta',n 'transaction_id' => '338533232',n 'updated_at' => '2019-02-28 22:16:16',n 'a3_order_hash' => null,n 'receipt_send' => null,n 'receipt_status_id' => null,n 'payment_status_id' => 'callback_received',n 'lead_source' => 'fssp',n ],n]",
"context": "[n '_GET' => [],n '_POST' => [n 'MNT_ID' => ''ХХХХХ280',n 'MNT_TRANSACTION_ID' => ''ХХХХХ795c78337a5a308',n 'MNT_OPERATION_ID' => ''ХХХХХ3232',n 'MNT_AMOUNT' => '544.00',n 'MNT_CURRENCY_CODE' => 'RUB',n 'MNT_TEST_MODE' => '0',n 'MNT_SIGNATURE' => '6435224cc'ХХХХХ10bbc970f6479787',n 'paymentSystem_unitId' => ''ХХХХХ45',n 'MNT_CORRACCOUNT' => '303',n 'MNT_PAY_SYSTEM' => 'payanyway',n 'MNT_IS_REGULAR' => '',n 'MNT_FORM_METHOD' => 'POST',n 'cardnumber' => '639002********7417',n ],n]"
}
}Widać tutaj (wartość cardnumber), że jedynie to, że brama płatności (w tym przypadku moneta.ru) nie ujawniała pełnych numerów kart kredytowych ani ich właścicieli w jawnej formie (tylko pierwsze 6 i ostatnie 4 cyfry numeru karty) ochroniło przed wyciekiem.
Z logów wynika również, że oficjalna strona FSSP oferuje obywatelom możliwość dokonywania płatności przez ten system: is.fssprus.ru/pay/?service=gosoplata&pay=ХХХХХХ/18/ХХХХХХ-IP. Co pośrednio potwierdza tekst na samym dole strony. oplata-fssp.ru:

Teraz sprawdźmy, jak wygląda sytuacja z mandatami za wykroczenia drogowe. Wyraźnie odpowiadają za to indeksy shatrafov-net (4528 rekordów z wyłączeniem błędów) oraz paygibdd (140666 rekordów z wyłączeniem błędów):
{
"_index": "shtrafov-net",
"_type": "log",
"@timestamp": "2019-03-17T17:16:51+03:00",
"message": "INSERT INTO customer (doc_type, doc_value, licence_plate, vehicle_model) VALUES ('ctc', '99026XXXXX', 'UXXXXXRMX', 'LAND ROVER RANGE ROVER')",
"context": "[n '_GET' => [],n '_POST' => [n 'postdate' => '10/03/2019',n 'postnum' => '18810018180002XXXXX',n 'postsum' => '1000',n 'divid' => '1194040',n 'uin' => '18810018180002XXXXX',n 'regnum' => 'UXXXXXR',n 'regreg' => '1X',n 'reg' => 'XXXXX34084',n 'discount' => '1',n 'discountdate' => '01/04/2019 23:59:59',n 'allfines' => '[{"Discount":"1","enableDiscount":false,"DateDecis":"2019-03-10 09:05:00","KoAPcode":"12.6","DateDiscount":"01/04/2019 23:59:59","VehicleModel":"LAND ROVER RANGE ROVER","KoAPtext":"DRIVING A VEHICLE WITH A DRIVER NOT BUCKLED IN, TRANSPORTING PASSENGERS NOT BUCKLED IN, IF THE VEHICLE IS EQUIPPED WITH SEATBELTS, AS WELL AS DRIVING A MOTORCYCLE OR TRANSPORTING PASSENGERS ON A MOTORCYCLE WITHOUT HELMETS OR IN UNFASTENED HELMETS","NumPost":"18810018180002XXXXX","kbk":"18811630020016000140","Summa":1000,"Division":1194040,"enablePics":false,"id":"18#FF474785255","SupplierBillID":"18810018180002XXXXX","DatePost":"10/03/2019"},{"Discount":"1","enableDiscount":false,"DateDecis":"2019-03-08 14:55:00","KoAPcode":"12.9ч.2","DateDiscount":"01/04/2019 23:59:59","VehicleModel":"LAND ROVER RANGE ROVER","KoAPtext":"EXCEEDING THE ESTABLISHED SPEED LIMIT BY MORE THAN 20 BUT NOT MORE THAN 40 KM/H","NumPost":"18810118190312XXXXX","kbk":"18811630020016000140","Summa":500,"Division":1194010,"enablePics":true,"id":"18#18810118190312XXXXX","SupplierBillID":"18810118190312XXXXX","DatePost":"12/03/2019"}]',n ],n]"
}
{
"_index": "paygibdd",
"_type": "log",
"@timestamp": "2019-02-28T17:30:57+03:00",
"message": "Incoming payment request",
"extra": "[n 'request_data' => [n 'postdate' => '02.10.2017',n 'postnum' => '188101161710029XXXXX',n 'postsum' => '500',n 'divid' => '1192201',n 'uin' => '188101161710029XXXXX',n 'regnum' => 'XXXXXCB',n 'regreg' => '1XX',n 'reg' => '16462XXXXX',n 'discount' => '1',n 'discountdate' => '2017-10-23 23:59:59',n 'allfines' => '[{"Discount":"0","DateDecis":"2016-12-17 02:30:00","KoAPcode":"12.26ч.1","KoAPtext":"FAILURE OF THE DRIVER TO COMPLY WITH A LEGAL REQUEST FROM A POLICE OFFICER TO UNDERGO A MEDICAL EXAMINATION FOR ALCOHOL","NumPost":"188104121603000XXXXX","kbk":"18811630020016000140","Summa":"30000","Division":1188030,"enablePics":false,"id":"12#FF176064188","SupplierBillID":"188104121603000XXXXX","DatePost":"2017-03-06","DateSSP":null},{"Discount":"1","enableDiscount":false,"DateDecis":"2017-09-18 14:32:00","KoAPcode":"12.9ч.2","DateDiscount":"2017-10-23 23:59:59","KoAPtext":"EXCEEDING THE ESTABLISHED SPEED LIMIT BY MORE THAN 20 BUT NOT MORE THAN 40 KM/H","NumPost":"188101161710029XXXXX","kbk":"18811630020016000140","Summa":"500","Division":1192201,"enablePics":true,"id":"16#43522519023478911XXXXX","SupplierBillID":"188101161710029XXXXX","DatePost":"2017-10-02","DateSSP":null},{"Discount":"1","enableDiscount":false,"DateDecis":"2017-11-01 04:23:00","KoAPcode":"12.9ч.2","DateDiscount":"2017-11-24 23:59:59","KoAPtext":"EXCEEDING THE ESTABLISHED SPEED LIMIT BY MORE THAN 20 BUT NOT MORE THAN 40 KM/H","NumPost":"18810116171104XXXXX","kbk":"18811630020016000140","Summa":"500","Division":1192201,"enablePics":true,"id":"16#44211639030358281XXXXX","SupplierBillID":"1881011617110XXXXX","DatePost":"2017-11-04","DateSSP":null},{"Discount":"1","enableDiscount":false,"DateDecis":"2017-10-31 12:08:00","KoAPcode":"12.9ч.2","DateDiscount":"2017-11-27 23:59:59","KoAPtext":"EXCEEDING THE ESTABLISHED SPEED LIMIT BY MORE THAN 20 BUT NOT MORE THAN 40 KM/H","NumPost":"188101161711056XXXXX","kbk":"18811630020016000140","Summa":"500","Division":1192201,"enablePics":true,"id":"16#44236760030609331XXXXX","SupplierBillID":"188101161711056XXXXX","DatePost":"2017-11-05","DateSSP":null},{"Discount":"1","enableDiscount":false,"DateDecis":"2018-01-27 23:46:00","KoAPcode":"12.37ч.2","DateDiscount":"2018-02-16 23:59:59","KoAPtext":"FAILURE OF THE OWNER OF THE VEHICLE TO COMPLY WITH THE OBLIGATION ESTABLISHED BY FEDERAL LAW FOR OSAGO, AS WELL AS DRIVING A VEHICLE WITHOUT OSAGO","NumPost":"188102161820027XXXXX","kbk":"18811630020016000140","Summa":"800","Division":1192200,"enablePics":false,"id":"16#4516501003986993XXXXX","SupplierBillID":"188102161820027XXXXX","DatePost":"2018-01-27","DateSSP":null}]',n ],n]\
Podsumowując powyższe – wszystkie szczegóły dotyczące płatności były ogólnodostępne: numer postanowienia o karze, rejestracyjny numer samochodu, numer wykonawczy przy płatności na rzecz służby komorniczej, pierwsze i ostatnie cyfry kart bankowych, przez jaki bramkę płatniczą dokonano płatności, pełne imię i nazwisko oraz adres e-mail płacącego i wiele innych.
Za jeden wybrany dzień (12.04) w indeksach znajdowało się (rekordów):
shtrafov-net 251
paygibdd 3821
gosoplata 20676
oplata-fssp 15277Wyszukiwarka Shodan po raz pierwszy wykryła ten serwer w otwartym dostępie 24.02.2019.
Informacje o wyciekach danych i insiderach zawsze można znaleźć na moim kanale Telegram „».
Źródło: habr.com
