Все ваши анализы в открытом доступе +27


И снова здравствуйте! У меня опять нашлась для вас открытая база с медицинскими данными. Напомню, что совсем недавно тут было три моих статьи на эту тему: утечка персональных данных пациентов и врачей из медицинского онлайн-сервиса DOC+, уязвимость сервиса «Доктор рядом» и утечка данных станций скорой медицинской помощи.



На этот раз в открытом доступе оказался сервер Elasticsearch с логами медицинской IT-системы сети лабораторий «Центр молекулярной диагностики» (CMD, www.cmd-online.ru).


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


Сервер был обнаружен утром 1-го апреля и это мне совсем не показалось смешным. Оповещение о проблеме ушло в CMD примерно в 10 утра (МСК) и около 15:00 база стала недоступной.


По данным поисковика Shodan данный сервер впервые попал в открытый доступ 09.03.2019. Про то, как обнаруживают открытые базы данных Elasticsearch, я писал отдельную статью.


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


Пример лога с результатами анализов пациента:


"<Message FromSystem=\"CMDLis\" ToSystem=\"Any\" Date=\"2019-02-26T14:40:23.773\"><Patient ID=\"9663150\" Code=\"A18196930\" Family=\"XXX\" Name=\"XXX\" Patronymic=\"XXX\" BornDate=\"XXX-03-29\" SexType=\"F\"><Document>Паспорт</Document><Order ID=\"11616539\" Number=\"DWW9867570\" State=\"normal\" Date=\"2017-11-29T12:58:26.933\" Department=\"1513\" DepartmentAltey=\"13232\" DepartmentName=\"Смайл Элит\" FullPrice=\"1404.0000\" Price=\"1404.0000\" Debt=\"1404.0000\" NaprOrdered=\"2\" NaprCompleted=\"2\" ReadyDate=\"2017-12-01T07:30:01\" FinishDate=\"2017-11-29T20:39:52.870\" Registrator=\"A759\" Doctor=\"A75619\" DoctorFamily=\"XXX\" DoctorName=\"XXX\" DoctorPatronymic=\"XXX\"><OrderInfo Name=\"TEMP_CODE\">0423BF97FA5E</OrderInfo><OrderInfo Name=\"Беременность\">-1</OrderInfo><OrderInfo Name=\"Пин\">DWW98675708386841791</OrderInfo><OrderInfo Name=\"СкидкаНаЗаказ\">0</OrderInfo><OrderInfo Name=\"СМКдействителенДо\">18.03.2019</OrderInfo><OrderInfo Name=\"СМКсертификат\">РОСС RU.13СК03.00601</OrderInfo><Serv Link=\"1\" PathologyServ=\"1\" Code=\"110101\" Name=\"Общий анализ мочи (Urine test) с микроскопией осадка\" Priority=\"NORMAL\" FullPrice=\"98.0000\" Price=\"98.0000\" ReadyDate=\"2017-11-30T07:30:01\" FinishDate=\"2017-11-29T20:14:22.160\" State=\"normal\"/><Serv Link=\"2\" Code=\"300024\" Name=\"Пренатальный скрининг II триместра беременности, расчет риска хромосомных аномалий плода, программа LifeCycle (DELFIA)\" Priority=\"NORMAL\" FullPrice=\"1306.0000\" Price=\"1306.0000\" ReadyDate=\"2017-12-01T07:30:01\" FinishDate=\"2017-11-29T20:39:52.870\" State=\"normal\"/><Probe ID=\"64213791\" Number=\"3716965325\" Date=\"2017-11-29T00:00:00\" OuterNumber=\"66477805\" Barcode=\"3716965325\" Biomater=\"66\" BiomaterName=\"Кровь (сыворотка)\" Type=\"physical\"><Probe ID=\"64213796\" Number=\"P80V0018\" Date=\"2017-11-29T12:58:26.933\" Biomater=\"66\" BiomaterName=\"Кровь (сыворотка)\" WorkList=\"80\" WorkListName=\"Пренатальный скрининг\" Type=\"virtual\"><Param State=\"Valid\" User=\"A872\" UserFIO=\"XXX\" UserStaff=\"Врач КЛД\" Code=\"3005\" guid=\"7BA0745FD502A80C73C2CAD341610598\" Name=\"Пренатальный скрининг II триместра беременности, расчет риска хромосомных аномалий плода, программа LifeCycle (DELFIA)\" Group=\"ПРЕНАТАЛЬНЫЙ СКРИНИНГ\" GroupCode=\"80\" GroupSort=\"0\" Page=\"1\" Sort=\"2\"><LinkServ IsOptional=\"0\">2</LinkServ><Result Name=\"Пренатальный скрининг II триместра беременности, расчет риска хромосомных аномалий плода, программа LifeCycle (DELFIA)\" Value=\"Готов (см.приложение)\" User=\"A872\" UserFIO=\"XXX\" Date=\"2017-11-29T20:39:03.370\" isVisible=\"1\" HidePathology=\"0\" IsNew=\"0\"><File Name=\"Пренатальный скрининг 2 триместр_page1.png\" Type=\"image\" Format=\"png\" Title=\"3716965325_prenetal2_page1\" Description=\"Пренатальный скрининг 2 триместр_page1\" Sort=\"1\">iVBORw0KGgoAAAANSUhEUgAABfoAAAfuCAIAAAArOR8rAAD//0lEQVR4Xuy9P7BtQ7u+/e3oECF6iRAhQoQI0SZCtIkQIdpEiBCxI0SIECFiV50qRKg6VYgQIUKEiDfiRL7rnPtXz+nqHnPMsfb6s+cc61rBqjl79Oh++uoe/eceT/c8888///

Я забил все чувствительные данные символом «X». В реальности все хранилось в открытом виде.


Из таких логов легко (перекодировкой из Base64) можно было получить PNG-файлы с результатами скрининга, уже в удобном для чтения виде:



Общий размер логов превышал 400 Мб и суммарно в них содержалось более миллиона записей. Понятно, что не каждая запись представляла собой данные уникального пациента.


Официальный ответ от CMD:


Хотим поблагодарить Вас, за оперативно переданную 01.04.2019 информацию о наличии уязвимости в базе данных логирования и хранения ошибок Elasticsearch.

На основании этой информации, нашими сотрудниками совместно с профильными специалистами был ограничен доступ к указанной базе. Ошибка передачи конфиденциальной информации в техническую базу исправлена.

В ходе разбора инцидента удалось выяснить, что появление в открытом доступе указанной базы с логами ошибок произошло по причине, связанной с человеческим фактором. Доступ к данным был оперативно закрыт 01.04.2019.

На данный момент внутренними и привлеченными внешними специалистами проводятся мероприятия для дополнительного аудита ИТ-инфраструктуры на предмет защиты данных.

Нашей организацией разработан специальный регламент работы с персональными данными и системой уровневой ответственности персонала.

Текущая программная инфраструктура предполагает использование базы Elasticsearch для хранения ошибок. Для повышения надежности работы некоторых систем будет осуществлена миграция соответствующих серверов в ЦОД нашего партнера, на сертифицированное программно-аппаратное окружение.

Благодарим Вас за своевременно предоставленную информацию.

Новости про утечки информации и инсайдеров всегда можно найти на моем Telegram-канале «Утечки информации».




К сожалению, не доступен сервер mySQL