El ambiente de producción no es el único vector de ataque
5 minutos de lectura
Los entornos de desarrollo y staging son el mayor terreno de trabajo, y sin embargo, muchas veces su seguridad tiene la última prioridad. Esto se debe a que los principales esfuerzos están dirigidos a crear nuevas funcionalidades, poner en marcha las aplicaciones y hacer las pruebas necesarias antes del lanzamiento.
Aún así, tener entornos desprotegidos o carentes de las medidas más básicas de seguridad es casi sinónimo de aumentar la exposición de tus datos y los de tus clientes.
Los esfuerzos de tu equipo no pueden irse por la borda: estos son algunos de los consejos que puedes aplicar para solucionar esos problemas que pueden comprometer tu seguridad.
No forman parte de una lista exhaustiva, pero te darán un punto de partida práctico para comenzar.
1. Segmentar los entornos
Debes mantener todos los entornos completamente separados: esto implica que no compartan la misma red, bases de datos, ni los mismos keys.
De lo contrario, un atacante podría acceder a uno de ellos y luego moverse o “escalar” hacia los demás. De hecho, esta última es una estrategia de ataque muy frecuente: el atacante ingresa al entorno de desarrollo, roba las keys de la base de datos y (si los demás entornos tienen las mismas keys) obtiene datos de los clientes del entorno de producción.
Solución: implementa una VPC (nube privada virtual) para cada entorno. De esta forma podrás mantener el código y los datos alojados en un espacio privado a la que solo podrán acceder quienes sean parte de esa red. En general, todos los proveedores de nube suelen tener una solución de este tipo: AWS, Cloudflare, Azure, Digital Ocean, etc.
Por otro lado, asegúrate de generar bases de datos y keys distintas para cada entorno.
2. Inhabilitar la exposición a Internet
Mantener los subdominios “en secreto” no es una capa de protección (esto se denomina security by obscurity). Imagina qué sucedería si por accidente alguien publicara el enlace al entorno de desarrollo. Incluso correrías el riesgo de que sea indexado por los motores de búsqueda y se publiquen funciones que aún no están terminadas. No solo eso, también un atacante podría ingresar y:
- Estudiar su funcionamiento a través de la documentación.
- Buscar vulnerabilidades.
- Escalar a los demás entornos (si no estuvieran segmentados) que guardan la información real y confidencial.
En pocas palabras, se aprovecharán de la exposición de los entornos menos críticos para escalar hacia los más críticos.
Solución: Bloquea a los entornos de Internet implementando una protección de identidad. Por ejemplo, puede ser por bloqueo por HTAccess con usuario y contraseña o, idealmente, por una VPN.
La VPN (red privada virtual) permitirá que todo el código quede protegido en una red privada para que solo accedan quienes se conecten a ella con las credenciales de acceso.
3. Restringir el tráfico entrante
En este punto tus entornos estarán aislados (paso 1) y bajo una protección de identidad como una VPN (paso 2). Ahora debes implementar mecanismos para que tus entornos únicamente reciban conexiones entrantes desde la VPC y desde la VPN.
Esto se puede lograr con:
- Firewall de red interna
- Firewall de red externa
- WAF (Web Application Firewall)
De esta forma, nos aseguramos de que solo un dispositivo del entorno se comunique con su base de datos y se bloquee cualquier intento de acceso desde otra dispositivo. La idea es garantizar una comunicación de 1:1 entre dispositivos.
Solución: implementa un firewall de redes internas y externas, y un WAF. Si buscas una recomendación de WAF, en Hackmetrix encontramos una relación precio-calidad bastante decente con Cloudflare y Zone Lockdown de Cloudflare.
Recuerda que cada entorno debe tener su propio firewall y que debes configurarlos con reglas de tal forma que solo los desarrolladores accedan al entorno de desarrollo y solo el equipo de QA acceda al entorno de staging.
Conclusión
Los desarrolladores están trabajando constantemente en los distintos entornos y si no los proteges adecuadamente podrías poner en riesgo los datos sensibles que ellos contienen.
Así sean entornos de desarrollo, staging o producción, un atacante tomará ventaja de la falta de protección para escalar hacia aquellos componentes que guardan información valiosa para tu negocio.
Si estás dando tus primeros pasos en la ciberseguridad, seguir estos consejos te ayudará a robustecer tu tecnología de forma adecuada y sin necesidad de gastar enormes presupuestos en herramientas de vanguardia.
De todas formas, existen medidas adicionales como el Ethical Hacking o pruebas de intrusión que te ayudarán a descubrir vulnerabilidades críticas presentes en tus redes y/o en tu producto. Si tienes dudas o quieres saber si esta es una solución adecuada para tu negocio, estamos aquí para asesorarte.