¿Seguridad práctica para un desarrollador de bases de datos sin experiencia? (HIPAA)

3

Espero que mi pregunta no sea tan única como para formularla aquí, pero no encontré nada similar después de algunas búsquedas.

Como desarrollador relativamente inexperto (solo un proyecto grande, excluyendo este en mi haber), ¿cómo puedo proteger mejor los datos en reposo en MSSQL y en la memoria?

El servidor en el que se ejecutaría esta aplicación es en sí mismo compatible con HIPAA (no es mi responsabilidad), pero me imagino que una máquina cliente sería altamente vulnerable desde dentro, y una infracción grave de HIPAA podría costarle muy caro el negocio de mi familia. No tengo ninguna prisa por terminar este proyecto a costa de la calidad, ya que estoy tratando de ayudar a que el negocio tenga éxito, no de que se presenten cargos penales contra ellos ...

Si es una pregunta demasiado amplia o vaga para responder aquí, me encantaría recibir algunas recomendaciones de lectura de seguridad dirigidas a los programadores. Hay tanta información conflictiva y desacuerdo sobre las mejores prácticas que una simple búsqueda en Google para un lego de seguridad es abrumadora. (Si ayuda, estoy trabajando en C ++ y MSSQL principalmente, y estoy limitado a los entornos de Windows, y evito las herramientas con licencia que no son "sin comerciales" como la plaga).

    
pregunta Austin McCool 16.01.2016 - 05:51
fuente

1 respuesta

-1

Cualquier solución integral requerirá profundidad , es decir, seguridad en capas. Además de fortalecer el sistema, restringir el acceso a la red, tener un enfoque sustancial de registro, auditoría y SIEM, también querrá proteger los datos dentro de la base de datos.

Obviamente, proteja cualquier información de inicio de sesión con un algoritmo de hash fuerte como PBKDF2 w / HMAC / SHA-256 y más de 100,000 iteraciones o bcrypt o scrypt. MD5 o SHA-1 con iteraciones simples es efectivamente un texto simple, incluso con sal. Bcrypt se ocupará del problema de la salazón y también del problema del costo de adaptación.

Para HIPAA específicamente, proteger PII es crucial. Para obtener información confidencial que debe poder recuperar, es necesario un cifrado seguro (AES-128 o 256, se recomienda el uso de CBC, CTR (con nonces únicos) o el modo GCM). La gestión adecuada de las claves también es crítica. El uso de un sistema DUKPT o algún otro esquema de derivación de clave transformativa para reducir la superposición de claves o (idealmente) un HSM para administrar y proteger las claves es un movimiento importante en este sentido.

Para obtener información que sea confidencial pero que no se requiera que sea recuperable, sino que se pueda buscar, una función criptográfica hash (CHF) fuerte como SHA-256 (o incluso mejor, HMAC / SHA-256) te permitirá hacerlo (no- fuzzy) buscando contra esa información en consultas mientras la protege en reposo. Esto es menos común en entornos empresariales, pero para las preocupaciones de HIPAA, al menos debe evaluarse en relación con sus necesidades de rendimiento.

Si tiene preguntas más específicas, no dude en comentar aquí. Si son independientes, podemos responder en línea, pero los más grandes probablemente merecen su propia pregunta en el sitio.

Ah, y nunca lances tu propio criptografía . Existen bibliotecas C # o .NET escritas por criptógrafos profesionales y desarrolladores de criptografía para hacer lo que necesite. Son auditados, actualizados y tienen una gran cantidad de globos oculares. BouncyCastle es probablemente el más conocido.

    
respondido por el Andy 16.01.2016 - 07:48
fuente

Lea otras preguntas en las etiquetas