что за файл dicom
Файл формата DICOM открывается специальными программами. Чтобы открыть данный формат, скачайте одну из предложенных программ.
Чем открыть файл в формате DICOM
Файл с расширением DICOM представляет собой полную аналогию DCM формата. Расширения DICOM и DCM – разработка корпорации NEMA (National Electrical Manufacturers Association), специализирующейся на разработке форматов передачи, хранения и просмотра медицинских изображений.
DICOM Image File – медицинский формат представления графических изображений и коммуникационных линий связи. Объектами стандартизации формата DICOM являются результаты проведения диагностики пациента: обследование с применением ультразвукового диапазона частот, компьютерная/резонансная томография, маммография, УЗИ, рентгенография и.т.п. Помимо графических данных, файл DCM может содержать персональную информацию, благодаря которой представляется возможность идентифицировать пациента и сопоставить изображение с конкретным субъектом.
Программы для открытия DICOM
Создание, загрузка и редактирование файла с расширением DICOM возможно в большинстве графических редакторов. Также, с помощью некоторых специализированных программ можно открыть МРТ снимок или посмотреть КТ.
Самое широкое распространение среди них получили следующие программные комплексы:
Каждая из вышеперечисленных графических систем обладает своим уникальным набором инструментов, позволяющих произвести редактирование изображения медицинских диагностических исследований.
Конвертация DICOM в другие форматы
Конвертация файла DICOM (графическое цифровое изображение) в другой формат представления данных предусмотрена в следующих вариациях:
Почему именно DICOM и в чем его достоинства?
Всестороннее диагностическое обследование пациента невозможно без качественно сделанных снимков. Формат DICOM позволяет осуществлять хранение/передачу/обработку графической информации и сопоставлять ее с персональными данными каждого пациента.
Изображение, создаваемое в формате Digital Imaging and Communications in Medicine (DICOM), который был разработан компанией NEMA (National Electrical Manufacturers Association) для обмена и просмотра медицинских изображений, таких как сканированные изображения CT, MRI и изображения ультразвука.
Файлы DICOM могут также содержать данные идентификации для пациентов таким образом, что изображение связано с определенным человеком.
Чем открыть файл в формате DICOM (DICOM Image File)
Файлы формата DICOM (Photoshop Extended)
Видеоролик о файлах DICOM см. по адресу www.adobe.com/go/vid0028_ru.
Стандарт DICOM (сокращенное название Digital Imaging and Communications in Medicine (формирование, передача и хранение медицинских изображений)) является наиболее распространенным стандартом данных медицинских сканирований. Photoshop Extended позволяет открывать файлы стандарта DICOM (с расширением DC3, DCM, DIC или без расширения) и работать с ними. Файлы DICOM могут содержать несколько «фрагментов» или кадров, которые соответствуют различным слоям изображения.
Photoshop считывает все кадры из файла стандарта DICOM и преобразует их в слои Photoshop. Photoshop также способен располагать все кадры в формате DICOM в сетке одного слоя или преобразовывать их в 3D-объем, который можно вращать в 3D-пространстве. Программа Photoshop может считывать 8‑, 10‑, 12‑ или 16‑битные файлы DICOM. Программа Photoshop преобразует 10‑ и 12‑битные файлы в 16‑битные файлы.
После открытия файла стандарта DICOM в программе Photoshop можно использовать любой инструмент Photoshop для настройки изображения, нанесения меток или добавления аннотации к файлу. Например, для добавления комментария к файлу используйте инструмент «Комментарий», для пометки определенной области изображения используйте инструмент «Карандаш», для удаления с изображения пыли и царапин используйте фильтр «Пыль и царапины». Для измерения содержимого изображения используйте «Линейку» или инструменты выделения.
Каждая шкала изменений, присутствующая в файле DICOM, автоматически импортируется вместе с файлом. Если шкала отсутствует, то добавляется пользовательская шкала с масштабом по умолчанию (1 пиксель = 1 мм). См. раздел «Настройка масштаба измерений (Photoshop Extended)».
8-битные файлы DICOM можно сохранять в файл с любым форматом, поддерживаемым Photoshop (16-битные файлы должны сохраняться в файлах формата DICOM, Large Document Format, Photoshop, Photoshop PDF, Photoshop Raw, PNG или TIFF).
При сохранении файла в формате DICOM все стили слоев, настройки, режимы наложения и маски сохранены не будут.
Открытие файла DICOM (Photoshop Extended)
Перед открытием файла формата DICOM необходимо задать вариант открытия кадров DICOM (в качестве слоев, в сетке, как 3D-объем), а также установить параметры (в диалоговом окне «Импорт файла формата DICOM»), сделав анонимными метаданные пациента и отобразив перекрытия. Во время импорта можно выполнять панорамирование, увеличение, а также регулировать окна.
Диалоговое окно импорта файлов формата DICOM также содержит заголовки DICOM — текстовую информацию о файле (размеры, данные о разрешении и сведения о сжатии данных).
С помощью команды «Новый видеослой из файла» можно импортировать последовательность из нескольких однокадровых файлов формата DICOM в один файл Photoshop с несколькими слоями. См. раздел «Импорт последовательностей изображений (Photoshop Extended)».
К чему приводят уязвимости протокола DICOM
Вы наверняка видели в медицинском сериале, как интерны бьются над рентгеновским снимком пациента, а потом приходит их наставник и ставит диагноз по едва заметному пятнышку. В реальности такими остроглазыми диагностами становятся модели машинного обучения, применяемые в технологии medical imaging. Благодаря таким штукам можно гораздо быстрее выявить болезнь, например, определить, являются ли клетки на снимках опухолевыми или неопухолевыми.
Но есть одна проблема — в медицинских технологиях используются DICOM-протоколы, безопасность которых оставляет желать лучшего. О них и пойдет речь в этой статье.
Протокол DICOM и его слабые места
Коротко о самом протоколе
DICOM (Digital Imaging and Communication in Medicine) — протокол представления медицинских обследований и передачи их между различными компонентами. Этими компонентами могут быть:
Протокол DICOM имеет две части:
Теперь к делу
Каждый DICOM-файл содержит информацию о пациентах и состоянии их здоровья — данные, которые требуют особой защиты. Именно поэтому я решила проверить реализации DICOM-протокола на уязвимости вместе с группой исследователей-энтузиастов AISec, которая занимается безопасностью в сфере машинного обучения.
Мы также изучили безопасность PACS (Picture Archiving and Communication System). Это такие системы, в которых результаты обследований хранятся в электронном виде. Они позволяют передавать снимки между врачами по сети. Да-да, благодаря PACS больше не нужно таскать с собой рентгеновские снимки в конверте, как мы привыкли.
DICOM-файл
DICOM-файл — изображение медицинского характера, сохраненное в формате DICOM. Этот формат — отраслевой стандарт для хранения и распространения медицинских снимков.
Помимо графических данных, DICOM-файлы могут содержать персональную информацию в виде атрибутов, позволяющих сопоставить изображение с конкретным человеком и идентифицировать пациента. К ним относятся пол, имя пациента, дата рождения и пр. Список возможных атрибутов и их описание можно найти в документации.
На рисунке показана структура DICOM-файла:
DICOM Network
Стандарт протокола довольно сложно и нудно описывает сетевое взаимодействие — мне до сих пор не удалось изучить его целиком. Но если говорить в общем, вот какие команды сетевого взаимодействия есть у DICOM-протокола:
Действие | Описание |
---|---|
C-ECHO | Тест соединения между двумя устройствами |
C-FIND | Поиск исследований на удаленном сервере |
C-GET, C-MOVE | Скачивание исследований с удаленного сервера |
C-STORE | Сохранение исследования на удаленном сервере |
Вот как выглядит процесс передачи результатов медицинских обследований по DICOM-протоколу
Немного статистики по DICOM-серверам в интернете.
Такие картинки-отчеты о сканировании генерирует Grinder Framework
Интересный факт: когда мои коллеги из AISec проводили сканирование в 2019 году, то доступных серверов было меньше тысячи. В 2020 году же их оказалось около 2700.
Большинство хостов в сети настроены таким образом, что любой может установить с ними соединение. Давайте разберем пример, как просто получить исследование с удаленного сервера из сети. Для этого воспользуемся утилитами findscu и getscu из DCMTK — набора библиотек и приложений, реализующих большую часть стандарта DICOM.
Первой командой получаем список всех доступных исследований на сервере.
Пример вывода команды findscu
Следующей командой скачиваем нужное нам исследование или все исследования сразу.
Значения ключей в команде аналогичны предыдущей.
Пример исследования, скачанного с удаленного сервера DICOM
Вот так с помощью двух команд можно скачать данные с удаленного DICOM-сервера при наличии одного из условий:
Далее рассмотрим популярные инструменты и реализации протокола и найденные в них недостатки.
Реализации протокола DICOM
SimpleITK
SimpleITK — реализация протокола, которая используется в одном из крупных проектов в области medical imaging NVIDIA CLARA.
В ответ на репорт о переполнении кучи разработчик просто поправил файл, демонстрирующий уязвимость, чтобы он корректно обрабатывался библиотекой 🙂
Чем кончилось: в конце концов мы друг друга поняли, и вендор быстро исправил обе уязвимости.
DCMTK
DCMTK (DICOM Toolkit) — самая старая реализация DICOM-протокола. Она включает набор инструментов для работы с протоколом: парсеры DICOM-файлов в разных форматах и из разных форматов, а также утилиты для взаимодействия с DICOM-сервером по сети.
XXE в xml2dcm
Чем кончилось: данную уязвимость вендор устранил.
Небезопасные функции xml2dcm
По аналогии с external entities в XML, cама по себе утилита xml2dcm позволяет создавать DICOM-файлы c содержимым других файлов внутри. Это удобно, потому что не нужно писать данные в XML-файл — достаточно указать в теге PixelData путь к файлу, из которого нужно подгрузить данные при конвертировании.
Если в теге PixelDatа указать путь к любому файлу в системе, то после обработки утилитой xml2dcm мы получим DICOM-файл с его содержимым.
Чем кончилось: эту функцию невозможно отключить никаким флагом, а на доработку парсера xml2dcm вендор не согласился 🙁
DoS в парсерах DICOM-файлов
Мы тестировали парсеры из DCMTK при помощи фаззинга AFL и libFuzzer. Результат — DoS-утилиты xml2dcm и dcm2xml.
Чем кончилось: вендор исправил найденные ошибки.
DoS в dcmqrscp-сервере
DCMTK также предоставляет реализацию DICOM-сервера dcmqrscp. Тестирование безопасности DICOM-сервера dcmqrscp было проведено с помощью фаззинга, в результате которого был обнаружен DoS.
Фаззинг проводился при помощи AFLNet. Поддержку протокола DICOM я добавила в официальный репозиторий AFLNet, если кому-то захочется пофаззить другие DICOM-серверы.
Чем кончилось: вендор исправил ошибку реализации.
Приложения medical imaging
ORTHANC
В ходе исследования мы затронули приложение ORTHANC. Этот продукт очень прост в настройке и использовании: он предоставляет веб-обертку для просмотра DICOM-файлов, и для работы с DICOM-протоколом требуется только браузер.
ORTHANC используют в здравоохранении, в различных университетах и госпиталях, с его помощью проводятся исследования в области машинного обучения medical imaging (раз и два).
Открытые серверы ORTHANC в сети
Небезопасное API
Он принимает на вход скрипты на lua и без какой-либо валидации выполняет их на сервере. Чтобы убедиться в этом самостоятельно, посмотрите исходный код ORTHANC.
Уязвимость аутентификации к CSRF-атаке
Метод execute-script является небезопасным. Разработчик ORTHANC решил эту проблему при помощи аутентификации, чтобы выполнять такие запросы могли только зарегистрированные пользователи. Но по умолчанию аутентификация отключена при работе с ORTHANC-сервером с официального сайта.
В докере от разработчика уже включена аутентификация по умолчанию. Это здорово, если бы не следующая проблема: данная система аутентификации уязвима к CSRF-атаке. Достаточно создать страничку со следующим содержанием и отправить ее пользователю:
Когда пользователь открывает страницу, на сервер отправляется команда, запускающая выполнение произвольного кода.
Ответ вендора на запрос исправления данной уязвимости меня удивил: оказывается, ORTHANC — это микросервис, поэтому и о безопасности среды, где вы его разворачиваете, извольте позаботиться сами. То есть и механизм аутентификации мы сами должны написать? И догадаться о том, что поставляемый вендором механизм аутентификации лишь создает иллюзию безопасности и надежности, но на самом деле бесполезен?
Ответ вендора
BTW: кеш гугла показал, что приписку в документации о CSRF вендор сделал после моего репорта об уязвимости. И, конечно же, вряд ли он известил тех клиентов, которые уже пользуются их «микросервисом» и верят в его надежность.
Страница документации после ответа вендора на репорт об уязвимости
Страница документации из кеша гугл за пару дней до репорта не содержит каких-либо упоминаний CSRF
Чем кончилось: вендор так ничего и не предпринял для устранения данной уязвимости, только дополнил документацию.
Заключение
То, как просто найти уязвимости в medical imaging и как забавно вендоры реагируют на баг-репорты, показывает слабый уровень защищенности таких технологий. Чтобы они стали безопасными, над ними еще работать и работать.
Напоследок оставлю табличку со всеми описанными в статье багами.
Vendor | Product | Weakness |
---|---|---|
SimpleITK | ImageSeriesReader | Heap-buffer-overflow |
SimpleITK | ImageSeriesReader | Buffer-overflow |
Orthanc | Orthanc | CSRF with remote code execution |
DCMTK | xml2dcm | XXE |
DCMTK | xml2dcm | DoS |
DCMTK | xml2dcm | File read functionality |
DCMTK | dcm2xml | DoS |
DCMTK | dcmqrscp | DoS |
Также подробная информация лежит на github.
Файлы формата DICOM
Важно!
3D-функции Photoshop будут удалены в будущих обновлениях. Пользователям, работающим с 3D-функциями, рекомендуется ознакомиться с новой коллекцией Adobe Substance 3D, которая представляет собой новое поколение 3D-инструментов от Adobe.
Дополнительную информацию о прекращении поддержки 3D-функций Photoshop можно найти здесь: Photoshop 3D | Распространенные вопросы об упраздненных 3D-функциях.
В Photoshop CS6 функциональные возможности 3D были доступны в Photoshop Extended. Все возможности Photoshop Extended доступны в Photoshop. Photoshop не имеет специальной версии Extended.
Сведения о файлах формата DICOM
Стандарт DICOM (сокращенное название Digital Imaging and Communications in Medicine (формирование, передача и хранение медицинских изображений)) является наиболее распространенным стандартом данных медицинских сканирований. Photoshop позволяет открывать файлы стандарта DICOM (с расширением DC3, DCM, DIC или без расширения) и работать с ними. Файлы DICOM могут содержать несколько «фрагментов» или кадров, которые соответствуют различным слоям изображения.
Photoshop считывает все кадры из файла стандарта DICOM и преобразует их в слои Photoshop. Photoshop также способен располагать все кадры в формате DICOM в сетке одного слоя или преобразовывать их в 3D-объем, который можно вращать в 3D-пространстве. Программа Photoshop может считывать 8‑, 10‑, 12‑ или 16‑битные файлы DICOM. Программа Photoshop преобразует 10‑ и 12‑битные файлы в 16‑битные файлы.
После открытия файла стандарта DICOM в программе Photoshop можно использовать любой инструмент Photoshop для настройки изображения, нанесения меток или добавления аннотации к файлу. Например, для добавления комментария к файлу используйте инструмент «Комментарий», для пометки определенной области изображения используйте инструмент «Карандаш», для удаления с изображения пыли и царапин используйте фильтр «Пыль и царапины». Для измерения содержимого изображения используйте «Линейку» или инструменты выделения.
Каждая шкала изменений, присутствующая в файле DICOM, автоматически импортируется вместе с файлом. Если шкала отсутствует, то добавляется пользовательская шкала с масштабом по умолчанию (1 пиксель = 1 мм). См. раздел Задание шкалы измерений.
8-битные файлы DICOM можно сохранять в файл с любым форматом, поддерживаемым Photoshop (16‑битные файлы должны сохраняться в файлах формата DICOM, Large Document Format, Photoshop, Photoshop PDF, Photoshop Raw, PNG или TIFF).
При сохранении файла в формате DICOM все стили слоев, настройки, режимы наложения и маски сохранены не будут.
Открытие файла DICOM
Перед открытием файла формата DICOM необходимо задать вариант открытия кадров DICOM (в качестве слоев, в сетке, как 3D-объем), а также установить параметры (в диалоговом окне «Импорт файла формата DICOM»), сделав анонимными метаданные пациента и отобразив перекрытия. Во время импорта можно выполнять панорамирование, увеличение, а также регулировать окна.
Диалоговое окно импорта файлов формата DICOM также содержит заголовки DICOM — текстовую информацию о файле (размеры, данные о разрешении и сведения о сжатии данных).
С помощью команды «Новый видеослой из файла» можно импортировать последовательность из нескольких однокадровых файлов формата DICOM в один файл Photoshop с несколькими слоями. См. раздел Импорт последовательностей изображений.
Как открыть диск с МРТ или КТ снимками?
О формате файлов КТ И МРТ
Файлы КТ или МРТ исследования на диске записаны в специальном формате DICOM, и он не открывается обычными программами просмотра картинок. DICOM — это формат медицинских изображений, где в каждый файл помимо собственно картинки «вшита» другая информация — имя пациента, его возраст, номер снимка, обозначения режимов сканирования и т.п.
Программы для открытия файлов КТ и МРТ
Чтобы открыть снимки с CD диска, Вам понадобится специальная программа — DICOM-вьюер. Таких программ много, платных и бесплатных. Самая удобная из бесплатных программ — Radiant DICOM Viewer. Скачать ее можно здесь. Эта программа умеет открывать совершенно любые медицинские снимки в формате DICOM, например МРТ, КТ, ПЭТ-КТ, рентген, маммографию, ангиографию и т.д.
Чтобы открыть снимки программой Radiant, нужно скопировать все содержимое диска в папку на компьютере, затем зайти в программу, нажать в левом верхнем углу кнопку Scan folder for DICOM files и выбрать эту папку. Подробнее про работу программы можно почитать здесь.
Лучшая из программ для MAC-OS — это Osirix. Скачать бесплатную версию для настольного компьютера можно здесь. Версия Osirix для iPhone и iPad продается в Apple Store или здесь.
Часто МРТ или КТ записывается на диск уже с программой-вьюером. В таком случае не нужно отключать автозапуск на своем компьютере, и программа просмотра запустится автоматически. К недостатку таких программ относится то, что ими, как правило, не очень удобно пользоваться. Поэтому советуем Вам все же установить Radiant.
Помните, что даже идеально выполненное исследование не исключает врачебной ошибки, ведь достоверность диагностики напрямую зависит от умения врача расшифровать снимки. Поэтому при сомнениях в диагнозе врачи рекомендуют получить Второе мнение — расшифровку МРТ или КТ у рентгенолога экспертного уровня с целью подтверждения или опровержения диагноза, а также более точного и детального описания снимков. В России действует Национальная телерадиологическая сеть — служба дистанционных консультаций, с помощью которой любой человек может обратиться к ведущим диагностам из Москвы или Санкт-Петербурга, отправить им файлы исследования и получить квалифицированное описание. Особенное значение такая консультация имеет при онкологических, неврологических и других сложных заболеваниях.
Также вы можете отправить файлы МРТ или КТ с диска вашему лечащему врачу. Как это сделать, можно почитать здесь.