Protección de la base de datos de atención médica

21

Estoy realizando un proyecto menor sobre seguridad de la información en el que estoy implementando las técnicas que se enumeran a continuación para proteger una base de datos de SALUD

  • Prevención de la inyección SQL (usando declaraciones preparadas, validando, usando un algoritmo de tokenización)
  • Evitar ataques CSRF (insertar un token oculto en el formulario)
  • Evitar ataques de fuerza bruta (bloqueo de cuenta después de 5 intentos fallidos)
  • Prevención de XSS
  • Validando cada entrada
  • Iniciación de sesión solo en cookies
  • Implementando una base de datos negativa. ( enlace )
  • Cifrado de información confidencial
  • privilegio limitado para cada usuario

EDIT También estoy implementando estos puntos que no publico anteriormente porque pensé que son menos importantes. pero las respuestas aquí muestran claramente la importancia de estos puntos:

  • Registro de auditoría
  • contraseña segura
  • Conexión segura mediante session_set_cookie_params
  • Control de acceso

Así que ahora mi pregunta es: ¿queda algo que pueda olvidar? conozco algunos como seguridad en la capa de red, etc. Estoy ejecutando mi proyecto en localhost, así que creo que no puedo hacer cualquier cosa en la capa de red.

    
pregunta Shubham Gupta 11.05.2014 - 18:50
fuente

4 respuestas

16
  1. Conexión SSL al servidor para que nadie pueda rastrear frases de acceso o datos a través de la red.
  2. No olvide su copia de seguridad: también debe estar encriptada . La clave debe almacenarse de forma independiente para que, si alguien obtiene acceso a la copia de seguridad, no pueda usar los datos.
  3. Dependiendo de su país de residencia, puede haber requisitos legales para la protección de datos de salud.
  4. Administrar permisos de acceso : asegúrese de que si alguien pierde los permisos de acceso, la cuenta se cancele.
  5. Limita el acceso a ciertas direcciones IP . En el caso ideal la red local. Es bastante improbable que alguien de otro continente necesite acceso, así que no tenga miedo de bloquear países enteros.
  6. Bloquear contraseñas demasiado fáciles . Contraseña123 y similares no deberían ser posibles! Si un atacante obtiene suficientes nombres de usuario, alguien tendrá una contraseña débil. Al usar varias direcciones IP / botnet, un atacante puede burlar la protección de fuerza bruta.
respondido por el Rüdiger Voigt 11.05.2014 - 23:00
fuente
6

Yo agregaría control de acceso de grano fino. Necesita una capa sobre su base de datos que controle quién puede acceder a qué registro médico. NIST define lo que implica el control de acceso detallado aquí .

Una vez que tenga eso en su lugar, también necesita una técnica para registrar todos los accesos y toda la recuperación de información para que los usuarios puedan rendir cuentas.

Ambas técnicas son necesarias para implementar la privacidad de los datos, lo cual es particularmente importante en el sector médico.

Eche un vistazo al sitio web de Privacy By Design que también tendrá algunos buenos consejos.

    
respondido por el David Brossard 11.05.2014 - 22:36
fuente
4

Tiene una buena lista de lo que se debe hacer para proteger y fortalecer una aplicación, lo que falta es informar. La seguridad no se trata solo de la protección, se trata de la gestión. Agregaré a su lista un sistema de informes que le proporcione algunas estadísticas de administración sobre inicios de sesión fallidos, intentos de descifrar su seguridad, etc.

    
respondido por el GdD 11.05.2014 - 21:01
fuente
0

Buenas respuestas aquí.

Me gustaría ver los 4 puntos que mencionaste:

  • Cifrado de información confidencial
  • Privilegio limitado para cada usuario
  • Registro de auditoría
  • Control de acceso

Los estoy viendo por separado porque son los que son particularmente importantes cuando se manejan datos confidenciales / personales, como los datos relacionados con el cuidado de la salud. Otros, como la inyección SQL, generalmente se tratan en la capa de la aplicación (utilizando, por ejemplo, un Firewall de aplicación web).

Ahora, volviendo a nuestros 4 puntos, necesitará una solución de cifrado de base de datos integral que tenga todas las 4 características.

En un caso como el suyo, es posible que desee revisar una solución de cifrado basada en columnas como D'Amo o MyDiamo si está utilizando DBMS de código abierto. Las llamadas "soluciones de cifrado transparente" que cifran datos en el nivel de archivo no lo protegerán de que alguien le robe físicamente el disco duro de su base de datos, pero son poco más que inútiles si necesita un fuerte control de acceso basado en usuarios, aplicaciones, IP Direcciones, hora del día, etc.

Otra ventaja obvia que obtiene con la columna en un caso como el suyo es que no tendrá que cifrar todos los datos. Puede elegir cifrar columnas específicas que contengan información confidencial y definir diferentes políticas, así como las claves de cifrado de enc / dec por columna.

La administración de claves obviamente será otro tema aparte del alcance de este hilo.

Espero que esto ayude.

Divulgación: Soy un consultor para los productos mencionados anteriormente.

    
respondido por el NA AE 06.12.2016 - 04:05
fuente

Lea otras preguntas en las etiquetas