Nesta nova série de posts, iremos apresentar uma breve versão das palestras que foi realizada no ano passado no H2HC e no NullByte (Conferências de segurança no Brasil). E iremos descrever como foi realizada a pesquisa sobre segurança de dispositivos médicos. Este post é dividido em 5 seções:
- Uma breve visita ao hospital
- O que é o DICOM?
- Conceitos básicos do DICOM
- Considerações de segurança
- Conclusões
1- Uma breve visita ao hospital
Meu interesse pela segurança de dispositivos médicos começou por causa de um acidente. Minha namorada teve uma lesão no joelho e eu a levei para um hospital local. Durante o tempo que ela estava tendo atendimento médico, comecei a observar alguns dos dispositivos médicos dentro da sala de enfermagem (Figura 01).
Figura 01: Dispositivos médicos na sala de enfermagem
Notei que a maioria dos equipamentos na sala tinha pelo menos uma porta ethernet e fiquei curioso sobre como alguém poderia interagir com esses dispositivos (Web Server? Telnet? SSH?).
Figura 02: Porta Ethernet e USB em um monitor de desfibrilador
No momento em que voltamos para casa, comecei a procurar por qualquer informação sobre o fornecedor dos dispositivos médicos do hospital. O nome do fornecedor é Mindray (Figura 03).
Figura 03: Dispositivo Mindray
Uma pesquisa rápida no Google e eu encontrei seu site oficial. A Mindray é fabricante de dispositivos médicos da China. Eu encontrei algumas informações sobre os diferentes modelos de máquinas de ultra-som criadas pela Mindray.
Figura 04: Site Oficial da Mindray
Parece haver dois aplicativos móveis para interagir com as máquinas de ultrassom: MedTouch e MedSight e a equipe do hospital pode usar seus telefones para controlar esses dispositivos:
“Com o MedTouch, uma solução one-stop oferece a você uma maneira mais inteligente de controlar o dispositivo de ultrassom, acessar dados do paciente e software tutorial integrado por meio do dispositivo inteligente operado por Android.”
Baixei o MedSight no meu telefone e comecei a analisar o aplicativo. Infelizmente eu não tinha nenhuma máquina de ultra-som naquele momento para ver dados reais no aplicativo, mas uma coisa me chamou a atenção: um número de porta (2345) na seção de configuração de rede (Figura 05).
Figura 05: Configuração de Rede
Depois de fazer uma pequena pesquisa no manual do aplicativo, descobri que a porta 2345 estava sendo usada para comunicação DICOM (Figura 06). Mas o que é exatamente o DICOM?
Figura 06: Informações sobre a porta 2345 no manual
2 – O que é DICOM?
“” DICOM® – Digital Imaging and Communications in Medicine – é o padrão internacional para imagens médicas e informações relacionadas. Ele define os formatos para imagens médicas que podem ser trocadas com os dados e a qualidade necessária para uso clínico. ””
O DICOM tem dois propósitos:
- Formato de arquivo: projetado para armazenar imagens médicas e dados do paciente. Pode conter dados de diferentes modalidades de imagem, como radiografia, ultrassonografia e tomografia computadorizada. Os arquivos DICOM geralmente contêm muitos metadados (por exemplo, dados do paciente).
- Protocolo de Rede: Um protocolo cliente-servidor usado para transferir imagens médicas. Freqüentemente usado para integrar dispositivos de imagens médicas e armazenamento de imagens e sistemas de comunicação (PACS). O número da porta padrão do DICOM é 104 / TCP.
O padrão DICOM foi criado pela NEMA (Associação Nacional de Fabricantes Elétricos) e pelo ACR (American College of Radiology). A primeira edição foi lançada em 1985 e recebeu o nome de ‘ACR-NEMA 300’. Após o lançamento da terceira edição, o nome foi alterado para DICOM. A documentação oficial da edição atual é dividida em 20 volumes!
Site oficial da DICOM: https://www.dicomstandard.org
3- Conceitos Básicos do DICOM
Alguns conceitos básicos do DICOM são descritos nas seguintes seções:
- Definições de objetos de informação
- Hierarquia de dados
- Entidades de Aplicação
- Par objeto de serviço
- DIMSE
- Associação
3.1- Definições de objetos de informação (IOD)
Definições de objetos de informação (IOD) podem ser definidas como coleções de atributos usados pelo DICOM para representar objetos no mundo real. Tomemos por exemplo alguns atributos do IOD do Paciente:
- Nome do paciente
- ID do paciente
- Data de Nascimento do Paciente
- Sexo do paciente
- Nome da Mãe do Paciente
3.2- Hierarquia de dados
O DICOM usa uma estrutura de dados dividida em 4 níveis:
- Paciente: cada paciente pode ter um ou mais estudos.
- Estudo: cada estudo pode incluir várias séries de imagens.
- Série: cada série contém uma ou mais imagens.
- Imagens
Figura 07: Hierarquia de Informação DICOM
3.3- Entidade de aplicativo (AE)
Dispositivos (ou softwares) que podem transmitir e processar dados DICOM são conhecidos como Entidades do Aplicativo (AEs). As entidades de aplicação também podem fornecer serviços umas às outras. Os EAs podem ser divididos em 2 classes:
- Service Class User (SCU): dispositivo que solicita um serviço.
- Service Class Provider (SCP): dispositivo que fornece um serviço
3.4- Par de Objetos de Serviço (SOP)
O Service Object Pair (SOP) pode ser definido como a associação de um IOD com um serviço DICOM específico. O SOP contém a semântica e regras para o uso de serviços. Alguns exemplos de SOPs DICOM estão listados na tabela 01.
SOP UID | SOP Name | |
---|---|---|
1.2.840.10008.1.1 | Verification SOP Class | |
1.2.840.10008.4.2 | Storage Service Class | |
1.2.840.10008.5.1.4.1.2.1.1 | Patient Root Query/Retrieve Information Model – FIND | |
1.2.840.10008.5.1.4.1.2.1.2 | Patient Root Query/Retrieve Information Model – MOVE | |
1.2.840.10008.5.1.4.1.2.1.3 | Patient Root Query/Retrieve Information Model – GET |
Tabela 01: Exemplos de SOPs DICOM
3.5- DIMSE
Os elementos de serviço de mensagens DICOM (DIMSE) podem ser definidos como comandos (ou operações) usados pelos serviços DICOM. Os comandos DIMSE possuem formatos de mensagem para solicitações e respostas. Alguns exemplos de comandos DIMSE:
- C-STORE
- C-FIND
- C-MOVE
- C-GET
3.6- Associação
Uma associação DICOM é um handshake realizado entre o SCU e o SCP. As associações são sempre realizadas no início de uma conexão DICOM. Algumas informações importantes são trocadas entre os dispositivos durante a associação, por exemplo:
- Lista de serviços solicitados
- Lista de serviços disponíveis
- Identificação do dispositivo (por exemplo, título AE e informações do usuário)
Existem 3 tipos de mensagens de associação:
- A-Associate-RQ (Pedido de Associação)
- A-Associate-AC (Aceitar Associação)
- A-Associado-RJ (Rejeitar Associação)
A Figura 08 mostra um exemplo de uma mensagem de solicitação de associação (A-Associate-RQ) capturada no Wireshark.
Figura 08: Solicitação de associação (A-Associate-RQ)
4 – Considerações de segurança
Algumas considerações de segurança relacionadas ao DICOM e ambientes hospitalares:
- Falta de criptografia: o tráfego de rede DICOM não é criptografado por padrão. Isso torna o DICOM vulnerável a ataques MITM. Informações confidenciais de pacientes podem ser facilmente obtidas por agressores locais.
- Insuficiente ou falta de autenticação: na maioria dos cenários que encontrei, não havia autenticação para dispositivos DICOM. Em outros casos, a autenticação estava sendo realizada com base apenas no título AE ou no endereço IP de origem.
- Falta de segmentação de rede: durante alguns pentests, já vi muitos ambientes hospitalares com redes planas. A falta de segmentação de rede facilita a realização de ataques locais contra dispositivos médicos.
5 – Conclusões
Neste post, mostra como foi realizado o acesso na segurança de dispositivos médicos e apresentei uma introdução básica ao DICOM. Na próxima postagem, iremos falar a respeito de como usar o DICOM em compromissos pentest para obter informações remotamente do paciente e até extrair imagens brutas.
Texto Traduzido:
https://morphuslabs.com/how-i-got-into-hacking-ultrasound-machines-part-01-432fce2e3ca7