Hace ya varios meses que publique un artículo en el
blog de ElevenPaths hablando sobre las "
Debilidades y fugas de información en sistemas médicos (PACS)". A partir de esto, he venido jugando con varias aplicaciones de este estilo y esta ocasión he querido compartir varios fallos de seguridad encontrados en un proyecto denominado “
PacsOne Server”, concretamente en su componente
DICOM Web Viewer.
|
Figura 1: PacsOne Server “All bugs in One” en la gestión de imágenes radiológicas |
PacsOne combina varios componentes que permiten implementar de manera muy versátil un servidor
PACS (almacenamiento de imágenes radiológicas) a través de un solo instalador como lo considera el proyecto ‘
PACS Server In One Box’.
En su arquitectura principal dicho software mantiene componentes que son comunes en este tipo de soluciones como el
Servidor PACS,
Servidor DICOM,
Servidor Archivos (imágenes),
Visor Web DICOM, entre otros; lo que permite para una empresa hospitalaria o de la salud tener todas las prestancias dentro de la mismo plataforma integrada y brindarlas a sus clientes.
|
Figura 2: Instalador y configurador inicial de PACSOne Server |
La curiosidad que al momento me ha despertado mucho interés, son los
Visores Web DICOM, los mismos que permiten a través de una interfaz web manipular tanto a médicos o pacientes, las imágenes radiológicas y toda la información involucrada con los pacientes y sus estudios; ya sea desde el mismo computador o remotamente desde internet.
|
Figura 3: Acceso a Web Viewer de servidor PACSOme expuesto a Internet |
|
Figura 4: Estructura de archivos después de la instalación y código fuente de aplicación web |
Cuando inicie con la revisión a una parte del código fuente del
Visor Web DICOM, pude evidenciar mediante diferentes pruebas la falta de validaciones y una correcta aplicación de controles de seguridad en el desarrollo de este software, lo cual conllevo a que los resultados se determinen varias vulnerabilidades web entre las cuales puedo destacar
Cross-Site Scripting (XSS),
Directory Transversal o
SQL Injection entre otras.
|
Figura 5: Código fuente de nocache.php |
Mediante la revisión de la aplicación web, se puede identificar claramente falencias en la validaciones de entradas por parte del usuario, por ejemplo la
Figura 5 en el archivo
nocache.php el
input "path" recibido no está validado correctamente lo cual desencadena en una vulnerabilidad explotable.
|
Figura 6: Código fuente de archivo userSignup.php |
En este artículo pretendemos exponer ciertas evidencias de las vulnerabilidades encontradas y explotadas de manera controlada luego del análisis realizado a parte del código fuente, el mismo que es accesible luego de la instalación del software.
|
Figura 7: Ataque de XSS en archivo login.php |
Como podemos ver las vulnerabilidades explotadas pueden llegar a archivos sensibles dentro del servidor [
Figuras 8] así como otras de tipo inyección [
Figuras 7 y 9], las mismas que podrían llevar desde poner en peligro la información almacenada de los pacientes que se ha realizado estudios, comprometer el servidor o una amplia puerta de entrada a una infraestructura hospitalaria o de la salud.
|
Figura 8: Ataque LFI (Local File Inclusion) en archivo nocache.php |
La base de
PacsOne (como indica en su sitio web) ha sido usada por varios proyectos, fabricantes y desarrolladores en general, para integrarlo de manera parcial o total en sus propias implementaciones, con lo cual hace más amplia la exposición de esta aplicación y sus vulnerabilidades.
Por último, quiero comentarles que las vulnerabilidades expuestas fueron reportadas al equipo de contacto del proyecto, los cuales tuvieron un muy buen tiempo de respuesta tanto en las comunicaciones como en la solución a los fallos reportados de lo cual hemos sido notificados que se han solucionado en su última versión; con lo cual, esperamos seguir colaborando con este tipo de proyectos.
Autor: Carlos Avila (@badboy_nt)
Chief Security Ambassador – CSA at ElevenPaths
No hay comentarios:
Publicar un comentario