Медицинские данные – были, данные по кредитам – были, на этот раз пришла очередь данных по платежам за штрафы ГИБДД и задолженности по исполнительным производствам службы судебных приставов.
Хорошая новость в том, что эти платежи не связаны с официальным сайтом Госуслуг. Плохая новость – данных много, и они более чем «персональные».
Дисклеймер: вся информация ниже публикуется исключительно в образовательных целях. Автор не получал доступа к персональным данным третьих лиц и компаний. Информация взята либо из открытых источников, либо была предоставлена автору анонимными доброжелателями.
12-го апреля (ночью) был обнаружен сервер Elasticsearch, не требующий аутентификации для подключения. Про то, как обнаруживают открытые базы Elasticsearch я писал заметку в блоге.
В индексах Elasticsearch содержались логи некой информационной системы (ИС). Было сделано предположение о связи данного сервера с сайтами, принимающими оплату в пользу различных госсервисов: оплатагибдд.рф, paygibdd.ru, gos-oplata.ru, штрафов.net и oplata-fssp.ru.
Утром 13.04.2019 я отправил оповещение по адресам электронной почты: support@gos-oplata.ru, support@oplata-fssp.ru, support@paygibdd.ru, но ответа (как это часто бывает) не получил. Сервер был тихо «прикрыт» и исчез из открытого доступа 13.04.2019 около 15:20-15:45 (МСК).
На момент перед закрытием сервера, индексы Elasticsearch выглядели так:
Теперь перейдем к самому интересному – непосредственно к персональным данным. Как я написал выше, в индексах содержались какие-то логи какой-то ИС. И как это часто бывает логи оказались очень детальными, даже слишком.
Логи хранились, начиная с 28.02.2019, а не за все время работы ИС. В некоторых индексах данные были с 17.03.2019.
Например, по логам из индекса gosoplata можно было получить вот такое (всего 248365 исключая логирование ошибок):
{
"_index": "gosoplata",
"_type": "log",
"@timestamp": "2019-03-02T20:55:02+03:00",
"message": "Начисление найдено в ГИС",
"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:"Оплата долга по ИП № ХХХХХ/17/ ХХХХХ -ИП от 03.04.2017 в отношении МИХХХ Х. Х., Задолженность по кредитным платежам (кроме ипотеки)///УИН32253021170025955001_ИП0;Подразделение: УФК ПО НОВГОРОДСКОЙ ОБЛАСТИ (ОСП НОВГОРОДСКОГО, БАТЕЦКОГО И КРЕСТЕЦКОГО РАЙОНОВ УФССП РОССИИ ПО НОВГОРОДСКОЙ ОБЛАСТИ Л/С 05501845860);Получатель: УФК ПО НОВГОРОДСКОЙ ОБЛАСТИ (ОСП НОВГОРОДСКОГО, БАТЕЦКОГО И КРЕСТЕЦКОГО РАЙОНОВ УФССП РОССИИ ПО НОВГОРОДСКОЙ ОБЛАСТИ Л/С 05501845860);Банк Получателя: ОТДЕЛЕНИЕ НОВГОРОД;Номер счёта Получателя: 40302810400001000005;ИНН: 5321100670;КПП: 532132002;БИК Банка Получателя: 044959001;ОКАТО: 49625000;КБК: 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/ХХХХХ-ИП;dataIdDbtrFio:МИХХХ ХХХ ХХХ;dataIdDbtrBorn:ХХХ-09-03;dataIdDebtText:Задолженность по кредитным платежам (кроме ипотеки);";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]"
}
}
Я забил все чувствительные данные символом «Х». В реальности все хранилось в открытом виде.
Из индекса oplata-fssp (всего 283958 исключая ошибки):
{
"_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]"
}
}
Тут видно (значение cardnumber), что от утечки полных номеров кредитных карт, их владельцев уберегло только то, что шлюз оплаты (в данном случае moneta.ru) не отдавал данной ИС номера в открытом виде (только первые 6 и последние 4 цифры номера карты).
Также из логов было видно, что официальный сайт ФССП предлагает гражданам проводить платежи через данную ИС: is.fssprus.ru/pay/?service=gosoplata&pay=ХХХХХХ/18/ХХХХХХ-IP. Что косвенно подтверждается текстом в самом низу сайта oplata-fssp.ru:
Теперь посмотрим, что там с штрафами за ПДД. Явно за это ответчают индексы shatrafov-net (4528 записей исключая ошибки) и paygibdd (140666 записей исключая ошибки):
{
"_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', '99026ХХХХХ', 'УХХХРМХХ', 'ЛЕНД РОВЕР РЕЙНДЖ РОВЕР')",
"context": "[n '_GET' => [],n '_POST' => [n 'postdate' => '10/03/2019',n 'postnum' => '18810018180002ХХХХХХ',n 'postsum' => '1000',n 'divid' => '1194040',n 'uin' => '18810018180002ХХХХХХ',n 'regnum' => 'УХХХРМ',n 'regreg' => '1Х',n 'reg' => 'ХХХХХ34084',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":"ЛЕНД РОВЕР РЕЙНДЖ РОВЕР","KoAPtext":"УПРАВЛЕНИЕ ТРАНСПОРТНЫМ СРЕДСТВОМ ВОДИТЕЛЕМ, НЕ ПРИСТЕГНУТЫМ РЕМНЕМ БЕЗОПАСНОСТИ, ПЕРЕВОЗКА ПАССАЖИРОВ, НЕ ПРИСТЕГНУТЫХ РЕМНЯМИ БЕЗОПАСНОСТИ, ЕСЛИ КОНСТРУКЦИЕЙ ТРАНСПОРТНОГО СРЕДСТВА ПРЕДУСМОТРЕНЫ РЕМНИ БЕЗОПАСНОСТИ, А РАВНО УПРАВЛЕНИЕ МОТОЦИКЛОМ ЛИБО ПЕРЕВОЗКА НА МОТОЦИКЛЕ ПАССАЖИРОВ БЕЗ МОТОШЛЕМОВ ИЛИ В НЕЗАСТЕГНУТЫХ МОТОШЛЕМАХ","NumPost":"18810018180002ХХХХХХ","kbk":"18811630020016000140","Summa":1000,"Division":1194040,"enablePics":false,"id":"18#FF474785255","SupplierBillID":"18810018180002ХХХХХХ","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":"ЛЕНД РОВЕР РЕЙНДЖ РОВЕР","KoAPtext":"ПРЕВЫШЕНИЕ УСТАНОВЛЕННОЙ СКОРОСТИ ДВИЖЕНИЯ ТРАНСПОРТНОГО СРЕДСТВА НА ВЕЛИЧИНУ БОЛЕЕ 20, НО НЕ БОЛЕЕ 40 КМ/Ч","NumPost":"18810118190312ХХХХХХ","kbk":"18811630020016000140","Summa":500,"Division":1194010,"enablePics":true,"id":"18#18810118190312ХХХХХХ","SupplierBillID":"18810118190312ХХХХХХ","DatePost":"12/03/2019"}]',n ],n]"
}
{
"_index": "paygibdd",
"_type": "log",
"@timestamp": "2019-02-28T17:30:57+03:00",
"message": "Входящий запрос на оплату",
"extra": "[n 'request_data' => [n 'postdate' => '02.10.2017',n 'postnum' => '188101161710029ХХХХХ',n 'postsum' => '500',n 'divid' => '1192201',n 'uin' => '188101161710029ХХХХХ',n 'regnum' => 'XХХХCB',n 'regreg' => '1ХХ',n 'reg' => '16462ХХХХХ',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":"НЕВЫПОЛНЕНИЕ ВОДИТЕЛЕМ ЗАКОННОГО ТРЕБОВАНИЯ СОТРУДНИКА ПОЛИЦИИ О ПРОХОЖДЕНИИ МЕДИЦИНСКОГО ОСВИДЕТЕЛЬСТВОВАНИЯ НА СОСТОЯНИЕ ОПЬЯНЕНИЯ","NumPost":"188104121603000ХХХХХ","kbk":"18811630020016000140","Summa":"30000","Division":1188030,"enablePics":false,"id":"12#FF176064188","SupplierBillID":"188104121603000ХХХХХ","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":"ПРЕВЫШЕНИЕ УСТАНОВЛЕННОЙ СКОРОСТИ ДВИЖЕНИЯ ТРАНСПОРТНОГО СРЕДСТВА НА ВЕЛИЧИНУ БОЛЕЕ 20, НО НЕ БОЛЕЕ 40 КМ/Ч","NumPost":"188101161710029ХХХХХ","kbk":"18811630020016000140","Summa":"500","Division":1192201,"enablePics":true,"id":"16#43522519023478911ХХХХХ","SupplierBillID":"188101161710029ХХХХХ","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":"ПРЕВЫШЕНИЕ УСТАНОВЛЕННОЙ СКОРОСТИ ДВИЖЕНИЯ ТРАНСПОРТНОГО СРЕДСТВА НА ВЕЛИЧИНУ БОЛЕЕ 20, НО НЕ БОЛЕЕ 40 КМ/Ч","NumPost":"18810116171104ХХХХХ","kbk":"18811630020016000140","Summa":"500","Division":1192201,"enablePics":true,"id":"16#44211639030358281ХХХХХ","SupplierBillID":"1881011617110ХХХХХ","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":"ПРЕВЫШЕНИЕ УСТАНОВЛЕННОЙ СКОРОСТИ ДВИЖЕНИЯ ТРАНСПОРТНОГО СРЕДСТВА НА ВЕЛИЧИНУ БОЛЕЕ 20, НО НЕ БОЛЕЕ 40 КМ/Ч","NumPost":"188101161711056ХХХХХ","kbk":"18811630020016000140","Summa":"500","Division":1192201,"enablePics":true,"id":"16#44236760030609331ХХХХХ","SupplierBillID":"188101161711056ХХХХХ","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":"НЕИСПОЛНЕНИЕ ВЛАДЕЛЬЦЕМ ТРАНСПОРТНОГО СРЕДСТВА УСТАНОВЛЕННОЙ ФЕДЕРАЛЬНЫМ ЗАКОНОМ ОБЯЗАННОСТИ ОСАГО, А РАВНО УПРАВЛЕНИЕ ТРАНСПОРТНЫМ СРЕДСТВОМ, ЕСЛИ ТАКОЕ ОСАГО ЗАВЕДОМО ОТСУТСТВУЕТ","NumPost":"188102161820027ХХХХХ","kbk":"18811630020016000140","Summa":"800","Division":1192200,"enablePics":false,"id":"16#4516501003986993ХХХХХ","SupplierBillID":"188102161820027ХХХХХ","DatePost":"2018-01-27","DateSSP":null}]',n ],n]",
Суммируя написанное выше – в свободном доступе находились все подробности платежей: номер постановления о штрафе, государственный номерной знак автомобиля, номер исполнительного производства при платеже в пользу службы судебных приставов, первые и последние цифры банковских карт, через какой платёжный шлюз произведена оплата, ФИО и адрес электронной почты плательщика и многое другое.
За один выбранный день (12.04) в индексах находилось (записей):
shtrafov-net 251
paygibdd 3821
gosoplata 20676
oplata-fssp 15277
Поисковик Shodan впервые обнаружил этот сервер в открытом доступе 24.02.2019.
Новости про утечки информации и инсайдеров всегда можно найти на моем Telegram-канале «Утечки информации».
Автор: ashotog