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.fujifilm.com/products/medical/synapse/
http://www.medweb.com/?q=virtualpacs