Un Historial Médico Filtrado No Se Puede Cambiar de Contraseña
Cuando se filtra un número de tarjeta de crédito, el banco la cancela y emite una nueva en 48 horas. Cuando se filtra un historial médico — un diagnóstico de VIH, un tratamiento psiquiátrico, una prueba genética — no hay botón de reset. Ese dato persigue al paciente el resto de su vida. Puede afectar a su empleabilidad, a sus seguros, a sus relaciones. Por eso los datos de salud no son 'datos sensibles más'. Son la categoría más crítica que existe en protección de datos.
RGPD Artículo 32 No Es un Checkbox. Es Tu Obligación Legal.
Muchas healthtechs tratan el cumplimiento del RGPD como un ejercicio documental: redactar políticas de privacidad, firmar contratos de encargado de tratamiento, y marcar casillas en una hoja de cálculo. El Artículo 32 exige algo muy distinto: medidas técnicas y organizativas que sean proporcionales al riesgo. Y para datos de salud — categoría especial bajo el Artículo 9 — el listón es considerablemente más alto.
- a)Cifrado y seudonimización — no como opción, sino como medida explícita. ¿Tu base de datos PostgreSQL con historiales tiene cifrado en reposo activado? ¿Las conexiones a tu API usan TLS 1.2 como mínimo? Vulnerabbit verifica ambas cosas automáticamente.
- b)Confidencialidad, integridad y resiliencia — controles de acceso por rol, logging de quién accede a qué registro y cuándo, y la capacidad de detectar modificaciones no autorizadas.
- c)Restauración tras incidentes — backups cifrados, probados periódicamente, con RPO y RTO documentados. No basta con tener backups; hay que demostrar que funcionan.
- d)Pruebas periódicas de eficacia — este es el apartado que justifica directamente el pentesting y el escaneo de vulnerabilidades continuo. No es una recomendación: es un requisito legal. Cada escaneo de Vulnerabbit genera evidencia con fecha, alcance y resultados que documenta el cumplimiento de este apartado.
Las APIs Sanitarias Hablan HL7 FHIR. Los Atacantes También.
La adopción de HL7 FHIR como estándar de interoperabilidad sanitaria está transformando cómo se intercambian datos clínicos en España y Europa. Los hospitales públicos, las aseguradoras de salud y las healthtechs construyen integraciones sobre FHIR R4, exponiendo recursos de pacientes mediante endpoints REST estándar. El problema es que REST es una puerta abierta si no se asegura correctamente — y los atacantes conocen la especificación FHIR tan bien como tus desarrolladores.
patient/*.read en lugar de patient/Observation.read), tokens de acceso sin expiración o con ventanas de horas, y ausencia de refresh token rotation. El resultado: un token comprometido da acceso completo al historial médico de un paciente./Patient/12345 que no valida que el token del solicitante corresponde a ese paciente permite acceder a cualquier registro simplemente iterando IDs. Los endpoints de búsqueda (_search, _history) son aún más peligrosos: una sola petición mal filtrada puede devolver bundles con miles de registros. Nuestro módulo DAST prueba específicamente estas rutas FHIR.- Token con scope patient/Patient.read accede a registros de CUALQUIER paciente.
- Probados IDs: 10001, 10002, 10003 — todos devuelven datos completos.
- Impacto: acceso no autorizado a nombre, DNI, diagnosticos, medicacion activa.
- Peticion de glucosa (code=15074-8) devuelve TODAS las observaciones del paciente.
- Incluye: resultados de VIH, salud mental, genetica. Violacion del principio de minimizacion.
- GET /Patient?_count=1000 devuelve bundle con 847 pacientes en una sola respuesta.
- Sin rate limiting. Permite exfiltracion masiva en minutos.
- Access token emitido hace 72h sigue siendo valido. Sin refresh token rotation.
Las Misconfiguraciones Cloud que Encontramos en Sanidad
Las healthtechs construyen sobre AWS, GCP y Firebase como cualquier startup — pero con un matiz crítico: los datos que almacenan están entre los más regulados del mundo. Una configuración cloud que sería un riesgo menor en un e-commerce se convierte en una brecha de datos de salud con consecuencias legales, reputacionales y humanas cuando hay historiales médicos de por medio.
{".read": true, ".write": true} que Firebase genera en modo test siguen activas en producción. Hemos encontrado bases de datos con citas médicas, resultados de laboratorio y datos de facturación sanitaria accesibles sin autenticación desde cualquier navegador.StorageEncrypted: false. Si el disco subyacente se compromete o se accede a un snapshot, los datos de prescripción, alergias y tratamientos activos quedan en texto plano.