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:
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).
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?).
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).
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.
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).
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?
“” 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:
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
Alguns conceitos básicos do DICOM são descritos nas seguintes seções:
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:
O DICOM usa uma estrutura de dados dividida em 4 níveis:
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:
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 |
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:
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:
Existem 3 tipos de mensagens de associação:
A Figura 08 mostra um exemplo de uma mensagem de solicitação de associação (A-Associate-RQ) capturada no Wireshark.
Algumas considerações de segurança relacionadas ao DICOM e ambientes hospitalares:
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.
https://morphuslabs.com/how-i-got-into-hacking-ultrasound-machines-part-01-432fce2e3ca7
Deixe uma resposta