Perfil de contraseña de las bases de datos SQL: la misma contraseña para todas las bases de datos (aunque es diferente de la raíz): ¿un paso sin sentido?

1

Supongamos que tenemos dos usuarios de base de datos MySQL con las bases de datos correspondientes con el mismo nombre ( db1 , db2 ), encapsulados dentro de una base de datos central central_db (que también incluye un information_schema ) y controlados por el usuario root .

La contraseña del usuario root es única, pero los dos usuarios de la base de datos no root tienen su propia contraseña, que es idéntica en ambos casos.

Supongo que cambiar la contraseña de no-root db1 o db2 para que cada uno de los dos tenga una contraseña diferente no tendría un efecto significativo en la seguridad porque si el usuario de root piratea, las contraseñas de lo mencionado para usuarios no root realmente no importaría.

¿Estoy en lo correcto?

    
pregunta JohnDoea 06.05.2017 - 17:58
fuente

1 respuesta

2

Tener usuarios de bases de datos separados (con contraseñas separadas), además del usuario root, es una buena práctica. Esto le permite proteger los datos de cada base de datos, de modo que si la contraseña de una base de datos se pierde, no compromete los datos de la otra base de datos. Y no tiene que usar la contraseña de root en ningún lugar, excepto cuando realice el mantenimiento de la base de datos.

En otras palabras, la diferencia entre el inicio de sesión compartido para todos los usuarios de la base de datos y los inicios de sesión separados es que el atacante puede acceder a menos datos cuando usa inicios de sesión separados. Porque incluso si el atacante no puede acceder a la raíz, todavía puede leer los datos que pertenecen al usuario comprometido, y tal vez hacer algún daño. Pero el resto de su base de datos está protegida.

Esto se debe a que la forma más probable en que los atacantes obtendrán acceso a su base de datos es a través de algún tipo de vulnerabilidad de inyección SQL en la aplicación, o al acceder a su red de alguna manera y al descubrir las credenciales de la cuenta en los archivos de configuración.

En el primer caso, solo se pierden los datos en la base de datos con el exploit. En el segundo caso (con un atacante en su red), solo obtienen acceso a los datos en la base de datos con la configuración filtrada. En ninguno de los dos casos, el atacante podrá acceder a la cuenta raíz.

Todo se reduce al principio de privilegio mínimo .

Además, puede tener diferentes esquemas de rotación de claves para las dos cuentas, tanto en términos de la frecuencia con la que cambia las contraseñas como en la forma en que las distribuye. Y eso, sospecho, es el valor más práctico para tener contraseñas diferentes. Con el tiempo, las contraseñas probablemente divergirán de todos modos, o causarán muchos dolores de cabeza operativos.

    
respondido por el Geir Emblemsvag 24.11.2018 - 08:42
fuente

Lea otras preguntas en las etiquetas