¿Debo implementar el control de acceso en bases de datos dentro de una red de confianza?

2

Extracto del artículo de seguridad de Redis:

  

Redis está diseñado para ser accedido por clientes confiables dentro de entornos confiables. Esto significa que, por lo general, no es una buena idea exponer la instancia de Redis directamente a Internet o, en general, a un entorno donde los clientes que no son de confianza pueden acceder directamente al puerto de Redis TCP o al socket UNIX.

Dejando de lado el comando

AUTH por un minuto, creo que tiene sentido, si su programa solo está diseñado para funcionar en condiciones de confianza, ¿por qué molestarse en agregarle autenticación? Creo que esta es la ruta que suelen tomar los micro servicios. Cada servicio es libre de comunicarse con otros servicios en la misma red.

¿Pero son las bases de datos (MySQL y similares) una historia diferente? Por lo general, configuraré varias cuentas de usuario, una para cada microservicio que solo tenga acceso a su propia base de datos (en todo el servidor de la base de datos). Sin embargo, con la ruta que está tomando Redis, ¿sigue siendo necesario?

¿Los controles de acceso son redundantes o Redis es menos seguro que las bases de datos clásicas?

    
pregunta Chris Smith 06.09.2018 - 00:17
fuente

2 respuestas

5

Sí, "diseñado para funcionar en un entorno confiable" es algo bastante común para los servidores back-end, aunque generalmente lo ve como una justificación para no usar TLS entre servicios, o para que los nuevos nodos se unan al clúster sin autenticación. En el caso de Redis, lo están utilizando para justificar un puerto sin autenticación al afirmar que un atacante tendría que poder hacer ping al puerto directamente para hacer cualquier daño. Básicamente, esta es una forma de desviar la responsabilidad de la seguridad del software a los ingenieros de la red. Tal vez se sienta cómodo con eso y tal vez no, pero Redis está siendo sincero al respecto para que pueda decidir si Redis es una tecnología adecuada para sus objetivos de seguridad.

Con las bases de datos, un atacante a veces puede atacar la base de datos a través de su aplicación (por ejemplo, si tiene una vulnerabilidad de Inyección de SQL), por lo que hablamos de Principio del privilegio mínimo ; es decir, cada nodo tiene solo la cantidad mínima de acceso de lectura / escritura que necesita para hacer su trabajo para limitar el daño que puede causar un nodo comprometido. Entonces, haga su debida diligencia y vea si el argumento "diseñado para operar en un entorno de confianza" se aplica a su escenario, pero si yo fuera el ingeniero de Appsec responsable de su producto, me costaría mucho convencerme de que es seguro ignore el principio de privilegio mínimo aquí.

    
respondido por el Mike Ounsworth 06.09.2018 - 00:54
fuente
1

¿Confiado en cómo? ¿Puede garantizar que un atacante nunca entrará en su red? No Por lo tanto, aunque puede ser confiable dentro de su red, aún debe implementar controles dentro de una red confiable.

Hace 10 años, este fue el enfoque. Hoy en día, el mejor enfoque es que no se confía en nada hasta que se demuestre lo contrario.

    
respondido por el McMatty 06.09.2018 - 00:53
fuente

Lea otras preguntas en las etiquetas