Медицинские данные – были, данные по кредитам – были, на этот раз пришла очередь данных по платежам за штрафы ГИБДД и задолженности по исполнительным производствам службы судебных приставов.
Хорошая новость в том, что эти платежи не связаны с официальным сайтом Госуслуг. Плохая новость – данных много, и они более чем «персональные».
Дисклеймер: вся информация ниже публикуется исключительно в образовательных целях. Автор не получал доступа к персональным данным третьих лиц и компаний. Информация взята либо из открытых источников, либо была предоставлена автору анонимными доброжелателями.
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:
Теперь посмотрим, что там с штрафами за ПДД. Явно за это ответчают индексы shtrafov-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-канале «Утечки информации».