¿Confundiendo identificaciones para mayor seguridad en DB?

4

Publicación original: enlace

Tengo un problema relacionado con datos altamente seguros / sensibles (atención médica). Sé sobre el cifrado y estoy cifrando algunos de mis campos.

Pero lo que me han dicho es "ofuscar las ID" entre las tablas.

La idea es: incluso si alguien obtiene el DB, no puede ver con qué médico tuvo citas un paciente (ejemplo básico).

Pero busco en Google y leo por todas partes que no es una buena práctica (porque es más difícil hacer uniones, un bajo rendimiento, etc.).

¿Es necesario ofuscar identificaciones?

    
pregunta Charkhan 03.11.2015 - 15:36
fuente

5 respuestas

4

Si está intentando cumplir y / o evitar la regla de notificación de infracción en virtud de HIPAA en los Estados Unidos, la confusión de las relaciones de datos dentro de su base de datos no lo ayudará en absoluto.

Bajo HIPAA, si los datos están encriptados, no necesita notificar a los pacientes / proveedores de seguros / etc. sobre el incumplimiento. Sin embargo, cifrado significa que se cifró utilizando un cifrado compatible con FIPS 140-2 y solo esta información cifrada fue obtenida por un tercero.

En una base de datos, puede hacer uso de herramientas como el cifrado transparente de la base de datos o las suites de cifrado de terceros. Esto significaría que si alguien obtuviera una copia de la base de datos, se cifraría de manera compatible con FIPS 140-2 y, por lo tanto, no generaría notificaciones de incumplimiento u otras consecuencias bajo HIPAA.

Sin embargo, el hecho de tener una base de datos difícil de entender no está cubierto en ninguna parte bajo HIPAA, y la seguridad por oscuridad no le otorga ningún punto en una auditoría de CMS ... incluso si explica que la oscuridad es un "control de compensación" para un requisito de HIPAA.

Además, mientras que la seguridad generalmente significa mantener alejadas a personas no autorizadas, la siguiente peor cosa que le puede pasar a una organización que guarda datos de PHI es perder esa información. Tener una base de datos con relaciones complejas facilita la pérdida de esos datos, y la integridad de sus datos debe considerarse un problema de seguridad cuando se trata de HIPAA.

Tenga en cuenta que el cifrado de base de datos transparente u otros métodos de cifrado en línea harán poco contra el compromiso en línea de la base de datos, por ejemplo. a través de inyección SQL. Si alguien obtiene un volcado de base de datos ejecutando sentencias SELECT *, estos datos no se cifrarían. Para esto, necesitará asegurar / segmentar a los usuarios de su base de datos y también analizar las mejores prácticas para asegurar la aplicación web frontend.

En resumen, encriptar la base de datos de alguna manera; pero el cifrado de base de datos solo debe ser una pequeña parte de una estrategia de cumplimiento HIPAA más grande. Sin embargo, la seguridad por oscuridad no debe formar parte de su estrategia de seguridad.

    
respondido por el Herringbone Cat 03.11.2015 - 19:39
fuente
3

Pidió mejor , permítame comenzar calificando mi respuesta como mejor en el sentido de que es mi mejor esfuerzo permitirle para hacer su propia elección tal vez con más confianza. Dado que 'mejor' puede ser bastante subjetivo, y no soy el todo conocedor de cosas , estoy bastante seguro de que se puede encontrar otra respuesta mejor .

También quiero citar Regla de usabilidad de AviD :

  

La seguridad a expensas de la usabilidad viene a expensas de la seguridad.

(Si bien no hay una conexión directa con esto, quiero señalarlo aunque solo sea para mencionar que si rompes la facilidad de uso, entonces todo es en vano)

Mi primer pensamiento es "¡Oh no, tu DB completo ha sido robado!". Espero que su primera prioridad sea evitar esto (no sé si está realmente preocupado por esto o si solo está planeando el peor de los casos). Luego haga todos los esfuerzos necesarios para ocultar todos los datos necesarios . Cualquier dato adicional que pueda ocultar sin un notable impacto en el rendimiento está lleno.

He hecho una cantidad muy pequeña de HIPAA en mi tiempo y he encontrado que algunas reglas pueden ser intencionalmente vagas. Supongo que esto es para permitir que se usen nuevas técnicas sin tener que cambiar las reglas o algo al respecto.

En resumen, si en su situación es necesario ofuscar las identificaciones, entonces debe hacer eso (los requisitos son requisitos), de lo contrario, puede / em> haz eso si sientes que la dificultad y el rendimiento son tolerables. Siga los requisitos primero. Vaya por encima y más allá donde tenga sentido.

En su caso, parece como si no tuviera sentido enfrentar todos esos problemas adicionales solo para hacer que el mantenimiento futuro sea mucho más difícil. Podría ser un mejor uso del tiempo centrarse en asegurar la base de datos en sí mientras se mantiene la encriptación / ofuscación solo en los campos requeridos. Puede ofuscar todas las identificaciones que desee, pero si la base de datos se roba fácilmente, ¿cuál es el punto?

PD: No soy abogado, ni juego a uno en la televisión. Asegúrese de verificar los requisitos de HIPAA si de hecho está tratando con HIPAA.

    
respondido por el KnightHawk 03.11.2015 - 16:29
fuente
3

En última instancia, esta es una idea terrible y le costará en términos de integridad de datos. Las relaciones de datos que están ocultas son relaciones de datos que se corromperán y no serán confiables. Ni siquiera te hace más seguro. La oscuridad protege solo de la más leve curiosidad. Mire la larga historia de sistemas oscuros agrietados para obtener evidencia de esto.

Este enfoque provocará la pérdida de citas, posiblemente citas con el médico equivocado y un sistema generalmente poco confiable.

En general, este tipo de requisitos (HIPPA, PCI, etc.) están escritos por no tecnólogos, y están listos para una amplia interpretación.

Pregunte a la persona que maneja el requisito si está dispuesta a sacrificar la integridad y confiabilidad del sistema por la seguridad a través de la oscuridad. Eso es esencialmente lo que se pide. Supongo que alguien está interpretando que HIPPA es una forma muy restringida si están pidiendo cosas locas como "ocultar las ID de las tablas de la base de datos".

Mi consejo general es encontrar a alguien con experiencia en la interpretación de los requisitos de HIPPA de lo que realmente puede hacer en lugar de que alguien intente interpretarlo en el sentido más restrictivo posible.

    
respondido por el Steve Sether 03.11.2015 - 16:45
fuente
2

Acabo de comenzar a analizar el cumplimiento de HIPPA para una próxima aplicación que estoy creando, y por lo que veo, tomas las reglas / regulaciones un poco por la borda. En lo que respecta a la ofuscación de sus datos, uno de los requisitos principales es proteger su Información de salud protegida electrónica o (ePHI) Esto incluye elementos como nombres, números de SSI o datos privados o confidenciales del paciente. Una de sus identificaciones internas en su base de datos no se incluiría en esta categoría, y tratar de confundir eso solo crearía todo un mundo de problemas para usted sin lograr nada. Por ejemplo, si ocurriera alguna violación de datos y vieran que la Id 5 está vinculada a la id 8, no significaría mucho para nadie sin otros datos personales, que se cifrarían.

Nuevamente, puede que no sea la mejor fuente, ya que también estoy aprendiendo sobre el cumplimiento de HIPPA, pero sé bastante sobre el cumplimiento de PCI y parecen bastante similares.

    
respondido por el Iqbal Khan 17.01.2017 - 22:43
fuente
0

Estoy de acuerdo con los demás: esta es una mala práctica, desde cada punto de vista, que incluye diseño, auditoría, recuperación, seguridad, rendimiento. La lista continúa.

Si un hacker ingresa a la base de datos, el juego termina. No importa si confundió los datos, será cuestión de tiempo antes de que se pueda desenfocar.

RDBMS en estos días permite permisos basados en columnas y, por lo tanto, el uso de claves reales para unirse a otras tablas permitirá que se utilicen consultas SQL estándar, sin la sobrecarga que se puede eliminar. Además, sus auditores apreciarán la atención prestada a la capacidad de escalar, actualizar, solucionar problemas y mantener la integridad y la seguridad.

Habiendo dicho eso, algunos proveedores, como Microsoft y Oracle, tal vez otros, han aumentado y han permitido un cifrado muy centrado. Las claves se almacenan en un sistema separado y el acceso a las columnas está protegido. Microsoft SQL Server, por ejemplo, utiliza TDE (cifrado de datos transparente) y la administración de claves extensibles (EKM) para hacer precisamente esto. Por lo tanto, las estructuras de su tabla no cambian, y no compromete la sobrecarga de las uniones con la ofuscación, et al. Por lo tanto, si bien es posible que tenga un médico y un paciente, no necesariamente sabrá los nombres u otros detalles de ninguno de los dos, ya que TDE puede permitir el cifrado de estos campos.

Los sistemas RDBMS también permiten el cifrado de toda la base de datos, para manejar las instancias en las que la base de datos es robada.

En resumen, no ofusque las claves de los datos. Más bien, encripta los datos que son sensibles. Puede verse así: no ofusque los metadatos; más bien, solo encripta los datos. Piense en las claves y las claves externas como metadatos.

Tenga cuidado, también, de no ser víctima de la práctica de colocar una seguridad sólida en la puerta principal, mientras deja la puerta trasera desbloqueada: sus registros de transacciones, registros de errores, aplicaciones, registros de aplicaciones, sistemas de respaldo y personas Las personas en quienes se confía para tener acceso a estos datos y aplicaciones son todas fuentes de fugas, por lo tanto, apuntalar los permisos y tener cuidado con lo que se registra y con lo que se hace con esos registros.

Una vez que aplique estos principios, se vuelve menos importante ocultar las claves.

    
respondido por el Andrew Jennings 18.01.2017 - 16:30
fuente

Lea otras preguntas en las etiquetas