Almacenamiento criptográfico inseguro y seguridad | Secure Code Warrior

Publicado el 07 de marzo de 2019
por Jaap Karan Singh
Estudio de caso

Almacenamiento criptográfico inseguro y seguridad | Secure Code Warrior

Publicado el 07 de marzo de 2019
por Jaap Karan Singh
Ver recurso
Ver recurso

Los datos son la savia de las empresas. Es la información fundamental que necesitan para sobrevivir, para ganar dinero y para ofrecer servicios a sus clientes. En esta sociedad cada vez más centrada en lo digital, los desarrolladores tienen una inmensa responsabilidad como administradores de esta preciosa información. Cuando los desarrolladores no protegen los datos confidenciales, la empresa es presa de un almacenamiento criptográfico inseguro.

Veamos cómo almacenar los datos de forma segura y lo que puede ocurrir si no se hace.

Comprender el almacenamiento criptográfico inseguro

Cuando los atacantes acceden a un sistema, suelen ir a la caza de datos de valor. Ya sabes, el tipo de datos que pueden utilizarse para hacerse con la cuenta de alguien o para ejecutar otro ataque. A veces, este tipo de datos simplemente se vende en el mercado negro para obtener dinero rápido.

El almacenamiento criptográfico inseguro no es una vulnerabilidad única como la inyección SQL o el XSS. Es una consecuencia de no proteger los datos que deberías proteger, de la manera que necesitas protegerlos.

La información sensible debe estar protegida. Cuando almacena contraseñas e información de tarjetas de crédito en texto plano, está jugando a la ruleta rusa con su negocio.

Si un pirata informático entra en tu base de datos y roba datos mediante inyección SQL, inyección XML o cualquier otro ataque, lo tendrá todo. Sin embargo, si encriptas tus datos, les será mucho más difícil hacer un uso real de ellos.

Es importante tener en cuenta que las brechas no siempre son el resultado de un extraño malicioso. Una persona ajena a la empresa también puede robar datos con facilidad si no están encriptados. Los empleados de su empresa no tienen por qué ver todo lo que hay en la base de datos, y los controles de acceso inadecuados o los datos sensibles expuestos pueden dar lugar a un auténtico robo.

Recuerda también que no todo el cifrado es igual. Utilizar los algoritmos criptográficos equivocados es tan peligroso como no utilizarlos. Los algoritmos débiles conocidos ofrecerán poca resistencia a los atacantes astutos.

Por qué es peligroso el almacenamiento criptográfico inseguro

Muchas empresas se ven comprometidas por otra vulnerabilidad (como la inyección SQL) y acaban siendo incapaces de ocultar los datos robados. Esto hace que una situación terrible sea aún peor.

  • Adult Friend Finder fue vulnerado, filtrando 412 millones de cuentas. Las contraseñas de las cuentas estaban protegidas con el débil algoritmo hash SHA-1. Los atacantes las descifraron fácilmente en un mes.
  • Uber fue violado, filtrando 57 millones de registros de usuarios y 600.000 registros de conductores. Se perdió información personal. Sucedió porque la cuenta de GitHub de Uber tenía un repositorio que contenía el nombre de usuario y la contraseña de la cuenta de AWS de Uber a la vista... no es una buena idea. La valoración de Uber cayó en 20.000 millones de dólares, en gran parte debido a esta brecha.
  • La red PlayStation Network de Sony fue vulnerada, filtrando 77 millones de cuentas. 12 millones de las cuentas contenían información de tarjetas de crédito sin cifrar. Más tarde, Sony llegó a un acuerdo en una demanda colectiva de 15 millones de dólares por la filtración.

Está claro que hay consecuencias graves por no almacenar adecuadamente los datos sensibles.

Sony fue demandada, lo que supone una sanción importante. Sin embargo, incluso si no te demandan, el daño a la reputación y a la normativa puede ser catastrófico para una empresa.

Derrotar el almacenamiento criptográfico inseguro

¿Cómo pueden los desarrolladores evitar que se produzcan violaciones de datos como las anteriores?

El primer paso es identificar qué datos requieren encriptación en primer lugar. Después de todo, no todos los datos son iguales. Clasifique sus datos y, a continuación, utilice el cifrado cuando proceda.

En general, hay que proteger la información personal, como los números de la seguridad social, las contraseñas y los datos de las tarjetas de crédito. Dependiendo de la naturaleza de su negocio, es posible que tenga que proteger los registros de salud u otra información que se considere privada.

Una vez que sepas qué datos hay que proteger, el siguiente paso es utilizar las herramientas adecuadas para garantizar su seguridad. En general, es bueno ceñirse a los algoritmos criptográficos que han superado la prueba del tiempo y se consideran fuertes.

Pase lo que pase, no escribas tus propias funciones criptográficas. Es probable que contengan fallos que los atacantes puedan utilizar para romper el cifrado.

Para encriptar datos como los números de la seguridad social o los datos de las tarjetas de crédito, utilice AES. Hay diferentes modos de funcionamiento para AES, un modo muy recomendado en el momento de escribir este artículo es el modo Galois/Contador (GCM). Otro consejo es asegurarse de que no se utiliza ningún tipo de relleno en las bibliotecas que le piden que elija un tipo de relleno.

En el caso de las contraseñas, utilice un algoritmo de hash para las contraseñas porque los hashes no pueden ser revertidos. Dado un valor fuertemente hash, un atacante no puede recuperar el texto original que creó el valor. Argon2 y Bcryptse consideran opciones sólidas para el hash de contraseñas. Recuerda siempre "poner sal" a la contraseña con un valor aleatorio antes de hacer el hash para que no haya dos hashes iguales para la misma contraseña.

Estas funciones tendrán implementaciones para todos los principales lenguajes/marcos de programación. Consulta la documentación de tu lenguaje o framework específico para obtener información sobre cómo utilizarlas de forma eficaz.

La generación, el almacenamiento y la gestión de claves son componentes importantes de la criptografía. Las claves mal gestionadas pueden ser expuestas y utilizadas para descifrar sus datos. Algunos marcos de trabajo ayudan a la gestión de claves, como la API de protección de datos de ASP.NET. Para conocer las mejores prácticas generales de gestión de claves, consulte la hoja de trucos de OWASP.

El almacenamiento seguro de sus datos es la forma de evitar costosas y embarazosas violaciones de datos. En el peor de los casos, si un atacante es capaz de robar tus datos, le será mucho más difícil verlos o utilizarlos para cualquier propósito nefasto.

Oculte sus datos a la vista

Repasemos rápidamente cómo proteger sus datos:

  • Clasifique sus datos para saber qué requiere protección
  • Utilizar algoritmos fuertes y probados por la industria para encriptar datos sensibles
  • Almacena tus contraseñas utilizando hashes unidireccionales fuertes

Para profundizar en el tema, consulte nuestros recursos de aprendizaje. Cuando esté listo para profundizar y practicar, pruebe nuestra plataforma en su idioma preferido. Cubrimos mucho!

Con estas herramientas, puede evitar que le roben sus datos y evitar que su empresa pierda dinero y dañe su reputación.

¿Listo para encontrar y arreglar el almacenamiento criptográfico inseguro ahora mismo? Dirígete a la arena y pon a prueba tus habilidades [empieza aquí]

Ver recurso
Ver recurso

Autor

Jaap Karan Singh

Centro de recursos

Recursos para empezar

Más entradas
Centro de recursos

Recursos para empezar

Más entradas

Almacenamiento criptográfico inseguro y seguridad | Secure Code Warrior

Publicado el 07 de marzo de 2019
Por Jaap Karan Singh

Los datos son la savia de las empresas. Es la información fundamental que necesitan para sobrevivir, para ganar dinero y para ofrecer servicios a sus clientes. En esta sociedad cada vez más centrada en lo digital, los desarrolladores tienen una inmensa responsabilidad como administradores de esta preciosa información. Cuando los desarrolladores no protegen los datos confidenciales, la empresa es presa de un almacenamiento criptográfico inseguro.

Veamos cómo almacenar los datos de forma segura y lo que puede ocurrir si no se hace.

Comprender el almacenamiento criptográfico inseguro

Cuando los atacantes acceden a un sistema, suelen ir a la caza de datos de valor. Ya sabes, el tipo de datos que pueden utilizarse para hacerse con la cuenta de alguien o para ejecutar otro ataque. A veces, este tipo de datos simplemente se vende en el mercado negro para obtener dinero rápido.

El almacenamiento criptográfico inseguro no es una vulnerabilidad única como la inyección SQL o el XSS. Es una consecuencia de no proteger los datos que deberías proteger, de la manera que necesitas protegerlos.

La información sensible debe estar protegida. Cuando almacena contraseñas e información de tarjetas de crédito en texto plano, está jugando a la ruleta rusa con su negocio.

Si un pirata informático entra en tu base de datos y roba datos mediante inyección SQL, inyección XML o cualquier otro ataque, lo tendrá todo. Sin embargo, si encriptas tus datos, les será mucho más difícil hacer un uso real de ellos.

Es importante tener en cuenta que las brechas no siempre son el resultado de un extraño malicioso. Una persona ajena a la empresa también puede robar datos con facilidad si no están encriptados. Los empleados de su empresa no tienen por qué ver todo lo que hay en la base de datos, y los controles de acceso inadecuados o los datos sensibles expuestos pueden dar lugar a un auténtico robo.

Recuerda también que no todo el cifrado es igual. Utilizar los algoritmos criptográficos equivocados es tan peligroso como no utilizarlos. Los algoritmos débiles conocidos ofrecerán poca resistencia a los atacantes astutos.

Por qué es peligroso el almacenamiento criptográfico inseguro

Muchas empresas se ven comprometidas por otra vulnerabilidad (como la inyección SQL) y acaban siendo incapaces de ocultar los datos robados. Esto hace que una situación terrible sea aún peor.

  • Adult Friend Finder fue vulnerado, filtrando 412 millones de cuentas. Las contraseñas de las cuentas estaban protegidas con el débil algoritmo hash SHA-1. Los atacantes las descifraron fácilmente en un mes.
  • Uber fue violado, filtrando 57 millones de registros de usuarios y 600.000 registros de conductores. Se perdió información personal. Sucedió porque la cuenta de GitHub de Uber tenía un repositorio que contenía el nombre de usuario y la contraseña de la cuenta de AWS de Uber a la vista... no es una buena idea. La valoración de Uber cayó en 20.000 millones de dólares, en gran parte debido a esta brecha.
  • La red PlayStation Network de Sony fue vulnerada, filtrando 77 millones de cuentas. 12 millones de las cuentas contenían información de tarjetas de crédito sin cifrar. Más tarde, Sony llegó a un acuerdo en una demanda colectiva de 15 millones de dólares por la filtración.

Está claro que hay consecuencias graves por no almacenar adecuadamente los datos sensibles.

Sony fue demandada, lo que supone una sanción importante. Sin embargo, incluso si no te demandan, el daño a la reputación y a la normativa puede ser catastrófico para una empresa.

Derrotar el almacenamiento criptográfico inseguro

¿Cómo pueden los desarrolladores evitar que se produzcan violaciones de datos como las anteriores?

El primer paso es identificar qué datos requieren encriptación en primer lugar. Después de todo, no todos los datos son iguales. Clasifique sus datos y, a continuación, utilice el cifrado cuando proceda.

En general, hay que proteger la información personal, como los números de la seguridad social, las contraseñas y los datos de las tarjetas de crédito. Dependiendo de la naturaleza de su negocio, es posible que tenga que proteger los registros de salud u otra información que se considere privada.

Una vez que sepas qué datos hay que proteger, el siguiente paso es utilizar las herramientas adecuadas para garantizar su seguridad. En general, es bueno ceñirse a los algoritmos criptográficos que han superado la prueba del tiempo y se consideran fuertes.

Pase lo que pase, no escribas tus propias funciones criptográficas. Es probable que contengan fallos que los atacantes puedan utilizar para romper el cifrado.

Para encriptar datos como los números de la seguridad social o los datos de las tarjetas de crédito, utilice AES. Hay diferentes modos de funcionamiento para AES, un modo muy recomendado en el momento de escribir este artículo es el modo Galois/Contador (GCM). Otro consejo es asegurarse de que no se utiliza ningún tipo de relleno en las bibliotecas que le piden que elija un tipo de relleno.

En el caso de las contraseñas, utilice un algoritmo de hash para las contraseñas porque los hashes no pueden ser revertidos. Dado un valor fuertemente hash, un atacante no puede recuperar el texto original que creó el valor. Argon2 y Bcryptse consideran opciones sólidas para el hash de contraseñas. Recuerda siempre "poner sal" a la contraseña con un valor aleatorio antes de hacer el hash para que no haya dos hashes iguales para la misma contraseña.

Estas funciones tendrán implementaciones para todos los principales lenguajes/marcos de programación. Consulta la documentación de tu lenguaje o framework específico para obtener información sobre cómo utilizarlas de forma eficaz.

La generación, el almacenamiento y la gestión de claves son componentes importantes de la criptografía. Las claves mal gestionadas pueden ser expuestas y utilizadas para descifrar sus datos. Algunos marcos de trabajo ayudan a la gestión de claves, como la API de protección de datos de ASP.NET. Para conocer las mejores prácticas generales de gestión de claves, consulte la hoja de trucos de OWASP.

El almacenamiento seguro de sus datos es la forma de evitar costosas y embarazosas violaciones de datos. En el peor de los casos, si un atacante es capaz de robar tus datos, le será mucho más difícil verlos o utilizarlos para cualquier propósito nefasto.

Oculte sus datos a la vista

Repasemos rápidamente cómo proteger sus datos:

  • Clasifique sus datos para saber qué requiere protección
  • Utilizar algoritmos fuertes y probados por la industria para encriptar datos sensibles
  • Almacena tus contraseñas utilizando hashes unidireccionales fuertes

Para profundizar en el tema, consulte nuestros recursos de aprendizaje. Cuando esté listo para profundizar y practicar, pruebe nuestra plataforma en su idioma preferido. Cubrimos mucho!

Con estas herramientas, puede evitar que le roben sus datos y evitar que su empresa pierda dinero y dañe su reputación.

¿Listo para encontrar y arreglar el almacenamiento criptográfico inseguro ahora mismo? Dirígete a la arena y pon a prueba tus habilidades [empieza aquí]

Nos gustaría contar con su permiso para enviarle información sobre nuestros productos y/o temas relacionados con la codificación segura. Siempre trataremos sus datos personales con el máximo cuidado y nunca los venderemos a otras empresas con fines de marketing.

Enviar
Para enviar el formulario, habilite las cookies "Analytics". Siéntase libre de desactivarlas de nuevo una vez que haya terminado.
Centro de recursos

Recursos para empezar

Más entradas