И снова здравствуйте! У меня опять нашлась для вас открытая база с медицинскими данными. Напомню, что совсем недавно тут было три моих статьи на эту тему: утечка персональных данных пациентов и врачей из медицинского онлайн-сервиса 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-канале «Утечки информации».
Автор: Ashot Oganesyan