Nos posts anteriores, apresentamos um pouco da  pesquisa em segurança de dispositivos médicos e descrevemos como o DICOM pode ser usado para obter dados confidenciais de pacientes em hospitais ou clínicas médicas. Desta vez, mostraremos algumas técnicas para encontrar e identificar soluções PACS em ambientes médicos.

Esta postagem está organizada da seguinte maneira:

  • Visão geral do PACS
  • Encontrar servidores PACS em redes locais
  • Impressão digital de soluções PACS
  • Conclusões

Visão geral do PACS

Uma arquitetura PACS pode ser dividida em 3 partes:

  • Modalidades DICOM: As imagens DICOM são transferidas de dispositivos médicos para o servidor PACS com o comando C-Store. Alguns exemplos de Modalidades DICOM: Ultrassonografia (US), Tomografia Computadorizada (TC) e Radiografia Computadorizada (CR).
  • Servidor PACS: O principal componente da arquitetura PACS. O servidor PACS é responsável pelo armazenamento de imagens DICOM em um banco de dados e por disponibilizá-las para a equipe do hospital.
  • Cliente PACS: os clientes podem recuperar e visualizar imagens DICOM armazenadas no servidor PACS. Os clientes geralmente têm acesso ao servidor PACS por meio de um aplicativo da Web ou software de imagens médicas.

Figura 01: Arquitetura PACS

Encontrar servidores PACS em redes locais

Podemos usar o Nmap para encontrar servidores de PAC (e outros dispositivos médicos) executando serviços DICOM (a porta padrão é 104 / TCP). Os scripts de transmissão do Nmap também me ajudaram a descobrir serviços DICOM em portas não padrão.


Figura 02: Localizando serviços DICOM em portas não padrão com o Nmap (scripts de transmissão)

Impressão digital de soluções PACS

Cada conexão DICOM começa com uma associação (mais disso na parte 01). O cliente inicia a associação enviando uma mensagem A-Associate-RQ ao servidor PACS. Se a associação for aceita, o servidor PACS responderá com uma mensagem A-Associate-AC. A Figura 3 mostra um exemplo de uma mensagem A-Associate-AC recebida de um servidor PACS.

Figura 03: Mensagem A-Associate-AC capturada no Wireshark

O campo ‘Implementation Version’ das mensagens A-Associate-AC pode ser usado para impressão digital de alguns servidores PACS (Figura 04).

Figura 04: Usando o campo ‘Implementation Version’ para os servidores PACS de impressão digital

Aqui estão alguns exemplos de versões de implementação que vi até agora:

  • OSIRIX (de OsiriX [1])
  • Syn4 (eu acho que isso é “Synapse PACS” da Fujifilm [2])
  • MEDWEB-4.5.53 (de Medweb [3])
  • OFFIS_DCMTK_360 (de Offis [4])
  • RAYPAX20 (de RAYPAX [5])
  • LOGIPACS (De LogiPACS [6])
  • eFilm (De eFilm [7])

Conclusões

Neste post, apresentei algumas técnicas para localizar e identificar impressões digitais de servidores PACS. Você pode facilmente escrever um script python com pynetdicom3 para analisar as mensagens A-Associate-AC e identificar a versão de implementação de um servidor PACS. Essas técnicas podem ser combinadas com as descritas nos post anterior para avaliar a segurança dos ambientes PACS durante ações de pentests.

Texto Traduzido:

https://morphuslabs.com/how-i-got-into-hacking-ultrasound-machines-part-03-b954cb7dd8e8

Referências:

http://www.osirix-viewer.com

http://www.fujifilm.com/products/medical/synapse/

http://www.medweb.com/?q=virtualpacs

http://www.raypax.com

https://www.neologica.it/html/products/LogiPACS

https://estore.merge.com/na/index.aspx