¿Cuáles son los nuevos riesgos de usar sistemas hiperconvergentes?

2

Hay una tendencia llamada "hiperconvergencia" donde el cómputo, el almacenamiento y la red están en el mismo sistema. Creo que esto es un paso atrás (todo nuevamente en la misma máquina, como en los viejos tiempos) pero se supone que es mejor para el mantenimiento.

¿Cuáles son los nuevos riesgos o amenazas de seguridad que debemos tener en cuenta al usar esta tecnología?

    
pregunta Eloy Roldán Paredes 01.10.2016 - 08:45
fuente

1 respuesta

2

No estoy de acuerdo con el comentario de @ JulianKnight, hay un conjunto diferente de riesgos introducido por la nueva infraestructura convergente. La última vez que tuvimos una infraestructura convergente, el aspecto de red de la informática se encontraba en sus primeras etapas, y los principales problemas de seguridad se relacionaban con la escalada de privilegios. Cambiamos eso en los años 90 con el diseño en capas: a menudo con la capa de frontend, la capa de aplicación y la capa de base de datos.

Ahora, la capa frontal es a menudo la única expuesta a la red externa. Otras capas están detrás de un firewall NAT + y, por lo tanto, más o menos protegidas. Al descartar vulnerabilidades de perforación de orificios de firewall e ignorar las huellas dactilares pasivas para la asignación de redes, podemos decir que las capas internas se burbujean en un refugio más o menos seguro.

Esto produce una gran cantidad de malas prácticas, como escuchas de bases de datos abiertas y no autenticadas. Por ejemplo, al asumir que los servidores de bases de datos están a salvo del mundo externo, los administradores del sistema eliminan la autenticación entre las capas de la aplicación y la base de datos. Eso aumenta el rendimiento pero expone la base de datos a un atacante que puede cruzar el firewall.

Está bien, pero todavía no he hablado de la infraestructura convergente. Nuestra nueva tendencia (arquitectura convergente / hiperconvergencia) empuja todas las capas a una sola máquina. Pero ya no estamos en la década de los '80 o principios de los '90, estamos empujando todas las capas de infraestructura en una máquina que está muy interconectada a la red y que a menudo es visible desde Internet. Puedo ver dos enormes implicaciones:

1. La documentación para la infraestructura en capas es engañosa

Al configurar la infraestructura convergente y usar la documentación que fue escrita teniendo en cuenta la infraestructura en capas, puede caer en la seguridad falsa. Existe una gran cantidad de documentación (publicaciones de blog, tutoriales, incluso manuales oficiales) que asume que las capas internas de infraestructura están protegidas por un firewall y toman decisiones basadas en eso.

Dejar un puerto de base de datos no autenticado abierto en la capa de la base de datos detrás de un firewall es malo, pero puede ser compensado por el aumento de rendimiento. Dejar el puerto abierto en una máquina que es visible desde Internet es absolutamente terrible.

Pero, ¿es la mala documentación un gran riesgo? Para la infraestructura convergente ciertamente lo es. La mayoría de la infraestructura convergente se construye en IaaS / PaaS / SaaS , que a su vez son utilizados por startups "rápidas y sucias" que a menudo tienen desarrolladores sin experiencia o desarrolladores que seguirían ciegamente una guía para hacer las cosas más rápido.

¿Solución? No confíe en la documentación, use su propio sentido común. En otras palabras, requiere la concientización del desarrollador.

2. La escalada de privilegios ha vuelto a la primera fila

Pero no en la misma forma que antes. Antes (durante la época de oro de la escalada de priv en los primeros sistemas operativos multiusuario) la escalada de privilegios era necesaria para pasar por las peculiaridades del sistema operativo (por ejemplo, desbordar un programa setuid). La diferencia es que ahora estamos ejecutando máquinas que están muy conectadas, incluidas las conexiones en la interfaz de bucle invertido.

Dado que estamos ejecutando una infraestructura convergente, ¿dónde se está ejecutando el firewall? En la misma máquina.

Este servidor de seguridad (muy probablemente) será muy permisivo para cualquier tráfico en la interfaz de loopback. Si tiene un usuario con privilegios bajos dentro de la máquina, todavía puede explorar la interfaz de bucle invertido. Si deja las comunicaciones basadas en la red entre lo que antes eran las capas de la aplicación para ejecutarse en la interfaz de bucle invertido, cualquier usuario sin privilegios puede jugar con ella. Y mire hacia atrás en el punto 1 (documentación engañosa) anterior para ver por qué la comunicación entre las piezas de la infraestructura pasaría por la interfaz de bucle invertido.

¿Solución? Use la memoria compartida para comunicarse entre las capas de infraestructura en la misma máquina (como lo hizo la gente antes del enfoque por capas), la memoria compartida tiene permisos establecidos por el sistema operativo.

    
respondido por el grochmal 03.10.2016 - 03:09
fuente

Lea otras preguntas en las etiquetas