Prevención de la pérdida de datos para desarrolladores
24 de mayo de 2023
0 minutos de lecturaUna violación de seguridad en forma de filtración de datos puede causar daños costosos a la reputación de una empresa. Pero ¿qué es exactamente una filtración de datos? La Comisión Europea ha dividido las filtraciones de datos en tres categorías distintas: violaciones de la confidencialidad, de la integridad y de la disponibilidad.
Una violación de la confidencialidad ocurre cuando se divulgan datos personales o se accede a ellos sin autorización o por accidente.
Una violación de la integridad ocurre cuando los datos personales se modifican sin autorización o por accidente.
Una violación de la disponibilidad ocurre cuando se pierde el acceso a datos personales o estos se destruyen, ya sea por accidente o sin autorización.
En este artículo, aprenderás qué es una filtración de datos y cómo puedes prevenirla al diseñar y desarrollar tu software.
¿Qué es la pérdida de datos?
Antes de aprender a prevenir la pérdida de datos, es importante definir qué significa, ya que puede presentarse de varias formas, como un ataque de ransomware o de hackeo.
El ransomware puede cifrar los datos de una empresa y dejarlos inaccesibles mediante la descarga de malware, a menos que se pague una gran suma de dinero al hacker para descifrarlos. El hacker también puede amenazar con publicar esos datos si no recibe el pago, lo que provoca una violación de la confidencialidad.
Cómo puede ocurrir una filtración de datos
Una filtración de datos no siempre la provoca un competidor o alguien que busca obtener un beneficio económico al perjudicar a una empresa. También puede ocurrir por un error humano. Según el sitio web de GRC eLearning, el 82 por ciento de todas las filtraciones de datos involucran un factor humano; es decir, una acción manual provocó la filtración. Incluso sin intención maliciosa, puede haber pérdida de datos si un empleado extravía un dispositivo físico, como una laptop de la empresa. Por eso, es fundamental que todas las empresas realicen talleres de capacitación para reducir estos casos.
Según la legislación europea, se pueden imponer multas astronómicas de hasta €20 millones o el 4 por ciento de la facturación, lo que sea mayor. Tessain publicó un artículo que documenta las multas más altas por filtraciones de datos impuestas este año. Amazon encabeza la lista con la impresionante suma de €746 millones ($877 millones USD), seguida de WhatsApp, con una multa de €225 millones ($255 millones USD).
Sensibilidad de los datos y gravedad de su pérdida
La gravedad de cada filtración de datos también depende del tipo de datos que se hayan filtrado o perdido. Esto incluye datos personales, como información biométrica, médica, genética, política y religiosa. Por ejemplo, si una empresa usa lectores de huellas digitales para permitir que sus empleados entren y salgan de las oficinas, esas huellas se almacenan en los servidores de la empresa. Si la empresa sufre un ataque y un tercero malicioso obtiene todos los datos de sus servidores, la información biométrica de todos los empleados queda en riesgo. Cuanto más sensibles sean los datos filtrados, mayor será la multa.
Cómo prevenir la pérdida de datos
El creciente volumen de datos y el aumento de las multas para las empresas que los pierden hacen que este tema sea cada vez más preocupante. Veamos cómo puedes prevenir la pérdida y las filtraciones de datos —o al menos reducir su probabilidad— al desarrollar software.
Elige la arquitectura adecuada
Prevenir las filtraciones de datos requiere mucho más que implementar buenas políticas de seguridad. Deberás elegir la arquitectura adecuada para minimizar la pérdida de datos. Las empresas pueden optar por un enfoque de diseño guiado por el dominio (DDD), que permite separar correctamente los componentes del sistema.
Separar la capa de presentación de la lógica de negocio y las entidades de dominio facilita que los desarrolladores logren un bajo acoplamiento y una alta cohesión. Puedes conseguirlo con objetos de transferencia de datos (DTO), que transportan datos entre procesos y reducen la cantidad de llamadas a métodos entre el cliente y el servidor.
Como la mayoría de las transferencias de datos implica comunicación remota, recuperar información suele requerir varias solicitudes. Por ejemplo, una aplicación cliente podría realizar las siguientes llamadas remotas al servidor para obtener el nombre de una persona:

Como puedes ver, necesitas varias llamadas remotas para obtener toda la información que necesitas. Sin embargo, puedes usar un DTO para almacenar todos los valores y enviarlo como respuesta a la solicitud del cliente. Después, el cliente puede interactuar con el DTO de forma local y recuperar los valores cuando los necesite. Este método ahorra varias llamadas remotas y reduce la exposición de datos en la red:

Identifica los datos sensibles
Proteger los datos sensibles debe ser una prioridad desde el inicio del ciclo de vida de desarrollo de software (SDLC). Debes planificar adecuadamente cómo almacenar datos financieros, objetivos comerciales, historias clínicas, etc.
Un aspecto clave es cómo proteger la información de identificación personal (PII). Los datos que permiten identificar de manera única a una persona, dentro o fuera de la empresa, se consideran PII. La legislación sobre cómo almacenar y usar estos datos varía según la región, pero perderlos o filtrarlos puede acarrear fuertes sanciones económicas y dañar tu reputación.
Una buena práctica es recopilar la menor cantidad de datos posible. Si tu aplicación no necesita ciertos datos, no los recopiles. Menos datos significa menos tiempo dedicado a protegerlos y, como mínimo, que las filtraciones sean menos graves. También puede ser útil implementar técnicas de ofuscación, como el enmascaramiento de datos.
Cifra y aplica hashes a los datos
El cifrado es uno de los métodos más antiguos para proteger la información sensible. Puedes proteger los datos en tránsito y en reposo mediante distintas técnicas de cifrado. Si usas tablas SQL para almacenar grandes cantidades de datos, considera usar métodos de cifrado transparente de datos. El gobierno de Estados Unidos recomienda usar el algoritmo Advanced Encryption Standard (AES) para proteger todos los datos almacenados.
Al desarrollar tu aplicación, procura transferir los datos por canales seguros. Los datos en tránsito deben usar el protocolo Transport Layer Security (TLS) para prevenir la interceptación y la manipulación. También debes restringir el uso de servicios públicos al transferir datos de la empresa.
Usa herramientas de gestión de secretos
Las aplicaciones modernas manejan muchos secretos de configuración, como credenciales para acceder a bases de datos, claves de cifrado de API y variables de entorno. Necesitas planificar adecuadamente cómo protegerlos. Una herramienta sólida de gestión de secretos, como HashiCorp Vault, ofrece una forma segura de almacenarlos.
Al elegir una herramienta de este tipo, busca una que facilite al máximo la recuperación de los valores. Almacenar así los datos confidenciales reduce el tamaño de los archivos de configuración y minimiza el riesgo de que se filtren datos a través de los repositorios.
Limita el acceso
Establecer limitaciones de acceso puede ayudar a prevenir posibles filtraciones y pérdidas de datos. Esto significa que solo se da acceso a quienes lo necesitan. Es evidente que los empleados de nivel inicial no deberían tener los mismos permisos de visibilidad que una persona con el cargo de CEO. A esto se le suele llamar control de acceso basado en roles (RBAC): los empleados solo acceden al tipo de información que necesitan para sus tareas diarias, mientras que el resto del acceso a la red se limita.
Privilegio mínimo
El principio de privilegio mínimo consiste en otorgar solo el acceso mínimo necesario para que cada persona pueda realizar su trabajo. Se considera una de las formas más eficaces de prevenir filtraciones de datos, ya que permite administrar de manera centralizada el acceso de todos los empleados. Si limitas el acceso de superusuario y administrador, las probabilidades de que se filtren datos sensibles serán menores si las credenciales de un empleado quedan expuestas o alguien ajeno a la empresa accede a ellas, porque su acceso será limitado.
Hay algunos pasos clave para implementar correctamente el principio de privilegio mínimo. Se debe crear y administrar una bóveda digital con los accesos de cada usuario y sus permisos, junto con una auditoría de todos los empleados de la empresa, especialmente de las cuentas privilegiadas. Además, es necesario tomar precauciones para proteger contraseñas, claves SSH y endpoints.
Autenticación de dos factores
Otra práctica común que puede ayudar a prevenir las filtraciones de datos es la autenticación de dos factores. Puede ayudar a prevenir ataques de fuerza bruta e incluso protegerte cuando una contraseña débil es lo único que separa a un atacante de grandes cantidades de datos.
Almacenamiento de datos (en la nube o local)
Los datos se pueden almacenar en la nube mediante servicios como Microsoft Azure y Amazon Web Services (AWS), o en las instalaciones de una empresa, en servidores físicos. Contar con los procedimientos adecuados, tanto técnicos como organizativos —como usar cifrado, configurar distintos permisos de usuario y evitar subir datos confidenciales— puede ayudarte a prevenir filtraciones de datos.
Sin embargo, antes de implementar estos procedimientos, debes tener presente el principio de privacidad desde el diseño, que empresas como Snyk aplican mediante diversas normas para toda la organización. Algunas empresas, en cambio, eligen almacenar sus datos en sus propias instalaciones, manteniendo sin conexión los datos muy sensibles y permitiendo el acceso solo cuando es necesario.
Privacidad desde el diseño
El término privacidad desde el diseño significa que la privacidad debe tenerse en cuenta desde el inicio del desarrollo de software, ya sea que trabajes en un parche o en un proyecto completamente nuevo. Las empresas pueden solicitar distintas guías y certificaciones para asegurarse de hacer todo lo posible por prevenir ataques y filtraciones de datos. Por ejemplo, puedes solicitar la certificación ISO 27001, una norma que protege toda la información almacenada en la nube, en formatos físicos y digitales, y en máquinas virtuales o dispositivos de la empresa.
Software de prevención de pérdida de datos
Muchas empresas recurren al software de seguridad para prevenir la pérdida y las filtraciones de datos. La mayoría de los programas de protección contra la pérdida de datos, como BetterCloud y Symantec, se enfocan en bloquear acciones, por ejemplo, impedir que los usuarios realicen acciones mediante dispositivos de almacenamiento USB o descarguen malware por accidente. Otras empresas usan firewalls para proteger todo su ecosistema tecnológico, cifran todos sus repositorios para prevenir filtraciones maliciosas o usan autenticación de dos factores para que los empleados inicien sesión en sus cuentas de trabajo. Todas estas medidas controlan el riesgo de compartir datos e información sensibles o críticos fuera del entorno de la empresa.
Cómo reducir la gravedad de una filtración de datos
Las empresas suelen reducir la cantidad de datos almacenados para mitigar la gravedad de las filtraciones. El artículo 5(1)(c) del Reglamento General de Protección de Datos europeo (GDPR) establece que deben aplicarse procedimientos de minimización de datos, como la eliminación automática de datos antiguos. Por ejemplo, si la empresa XYZ Ltd. tiene clientes que dejaron de serlo y no han regresado en, por ejemplo, diez años, sus datos pueden y deben eliminarse.
Cómo combate Snyk la pérdida de datos
Snyk es una plataforma segura para desarrolladores que se integra directamente con sus herramientas y brinda la seguridad que una empresa necesita para toda su pila tecnológica y el ciclo de vida del desarrollo, al implementar el concepto de privacidad desde el diseño que se mencionó anteriormente. Snyk adopta un enfoque centrado en los desarrolladores, lo que significa que se integra directamente con el pipeline en el que trabajan para agregar seguridad desde la capa más básica del desarrollo, donde se crea y mantiene el código de forma regular. Así, el código se desarrolla de forma segura desde el principio y también lo hace todo el entorno con Snyk Container, que te permite empaquetar tus aplicaciones y detectar cualquier vulnerabilidad en ellas.
Enviar todos los commits a través de Snyk Cloud agrega una capa de seguridad adicional a lo que ya se mencionó. Al integrarse con Amazon Web Services (AWS), Azure, Google Cloud, Terraform, AWS CloudFormation, Kubernetes, Docker y Open Policy Agent (OPA), se crean instantáneas periódicas para evitar la pérdida de datos y garantizar que tu implementación esté al día con las políticas más recientes, ya que se sincroniza automáticamente con los estándares actualizados.
Cuando se implementa código de código abierto, Snyk analiza y monitorea posibles vulnerabilidades en cada etapa del pipeline y del proceso de gestión de versiones. Gracias a los informes en tiempo real e históricos, Snyk puede detectar vulnerabilidades y riesgos de seguridad desde la instalación inicial del código de código abierto, durante su ejecución y en el proceso de implementación.
Reduce el riesgo de filtraciones de datos
Las filtraciones de datos ponen en riesgo tu información y pueden tener consecuencias graves, desde pérdidas económicas, robo de identidad, humillación y daño a la reputación hasta incumplimientos de contratos. Incluso pueden tener repercusiones más graves, incluida la muerte. Implementar los procedimientos adecuados, como las normas ISO 27000, el control de acceso basado en roles (RBAC) y la privacidad desde el diseño, puede ayudarte a ti y a tu empresa a evitar una catástrofe.
También puedes usar herramientas de empresas como Snyk para proteger a tu empresa, a tus empleados y a sus familias. Snyk ofrece varios productos que pueden ayudar a prevenir la pérdida de datos, independientemente del pipeline de datos o la infraestructura que tengas. ¡Prueba Snyk gratis hoy!
A los desarrolladores les encanta. Los equipos de seguridad confían en él.
Las herramientas de Snyk, diseñadas primero para desarrolladores, ofrecen seguridad integrada y automatizada que satisface tus necesidades de gobernanza y cumplimiento.
