Se me presentó un argumento con la melodía de "no necesita una contraseña de usuario mysql fuerte porque para usarla, ya tendrían acceso a su servidor". Estamos hablando de una contraseña de 4 dígitos que es una palabra estándar del diccionario de inglés en un sitio web de negocios en vivo.
Sin influir en las respuestas con mi propio conocimiento y experiencia, me gustaría mostrarles algunas respuestas de una fuente desinteresada de terceros. ¿A alguien le importa hablar sobre esto? Programación / respuestas prácticas serían apreciadas.
root:root
inicios de sesión.1337
?Respuestas:
Quienquiera que haya hecho este argumento parece estar diciendo "Una vez que alguien ponga su pie en la puerta, también podrías darle acceso completo". Según esa lógica, un firewall niega la necesidad de todas las contraseñas en su red interna.
Las contraseñas seguras son un paso para limitar el daño causado por la intrusión en la red. No hay razón para lanzar las manos en la derrota solo porque una pequeña parte de su red se vio comprometida.
fuente
Realmente se remonta a la idea de ' Defensa en profundidad ', por lo que al menos una contraseña segura podría ralentizarlos para que pueda descubrirlos y bloquearlos. Me gusta la analogía de tener una sola llave para una comunidad cerrada versus una llave en la puerta de cada casa.
fuente
Depende mucho de cómo esté configurado su servidor MySQL. Si solo acepta solicitudes fuera de la ip de inicio (127.0.0.1), eso lo hace moderadamente más seguro.
Dado un escenario en el que permite IP remotas, se convierte en un negocio mucho más grande.
Además de eso, siempre es bueno tener una seguridad fuerte en caso de intrusión, mejor que se vayan con la menor cantidad posible.
fuente
¿Hay un candado en la caja de caja chica en contabilidad? Si es así, ¿por qué? ¿El edificio no tiene seguridad física?
fuente
Esto no es cierto, porque mysql también se puede usar en un entorno cliente-servidor entre redes, y de manera predeterminada, lo único que necesita es usuario / pase para obtener acceso a la base de datos (por supuesto, con el puerto 3306 abierto y el servidor visible públicamente )
fuente
De hecho, puede ser al revés: si tienen acceso a mysql, podrían acceder al sistema operativo del servidor.
fuente
Si alguien obtiene acceso de root a su servidor, entonces no necesitará ninguna contraseña de MySQL. Pero si solo pueden ejecutar aplicaciones en su servidor como usuario no root y no web, entonces una contraseña segura de MySQL aún puede guardar sus datos. Pero sí, la mayoría de los hacks provienen de la web, lo que significa que el hacker tendrá acceso a su cuenta web y, por lo tanto, puede extraer la contraseña de la base de datos de los archivos PHP.
Todo esto suponiendo que su servidor MySQL no acepte conexiones desde ningún lugar que no sea localhost. Si es así, entonces necesitas un PW fuerte.
fuente
Algo que parece haberse pasado por alto aquí es: ¿confía en sus usuarios en la red de confianza?
Francamente, no lo sé, porque sé cómo era cuando empecé en TI. Golpearía y pincharía en áreas a las que no tenía derecho, y, francamente, una contraseña MySQL débil habría sido una delicia para mí, ya que habría tenido la oportunidad de entrar en suerte y podría haber causado estragos (por accidente, por supuesto).
¿Qué sucede si alguien usa la ingeniería social para ingresar a su red de confianza? ¿Qué harás despues? Si están en una máquina detrás del cortafuegos, blammo, la seguridad de su cortafuegos sólida como una roca se arruina y están directamente en la máquina.
Las contraseñas seguras son muy simples de hacer y hay muchas herramientas de administración de contraseñas para facilitar el mantenimiento de las contraseñas, por lo que realmente no hay excusa para no hacerlo.
fuente
localhost
/127.0.0.1
como el host. De esta manera, nadie puede acceder a las bases de datos externas (incluso las que están en la misma red).Eh Si su servidor está bloqueado por IP y su usuario está restringido a SELECCIONAR en un conjunto de tablas donde no le importa la información, no es un gran problema.
Por otro lado, configuré mis contraseñas de MySQL golpeando el teclado por un minuto y copio pegando el galimatías resultante en un archivo protegido, al que hago referencia en mi código cada vez que necesito iniciar sesión. Así es como debería funcionar.
¿Por qué hacerlo fácil? Si la contraseña se adjunta a una cuenta local limitada (como deberían estar todas), ¿por qué la está escribiendo? Si no es así, debe tener una contraseña cuya fortaleza sea relativa al valor de los datos que está protegiendo.
fuente
La información de acceso / cuenta de mySQL se almacena en un archivo separado de las bases de datos reales. Por lo tanto, simplemente puede arrastrar y soltar un archivo diferente en su lugar. Con mySQL si tienen acceso de escritura a la parte relevante de su sistema de archivos, el juego ha terminado.
fuente
Porque los requisitos cambian ...
Por lo tanto, el servidor de hoy que se limita a aceptar conexiones MySQL solo a la máquina local, puede abrirse mañana para que se pueda usar una herramienta externa para administrar la base de datos. La persona que realiza esta configuración puede no saber que hay contraseñas extremadamente débiles en uso.
Si a su usuario le incomoda tener que recordar una contraseña buena y segura (por ejemplo: larga, aleatoria), considere hacerla muy segura y luego guardarla en el
.my.cnf
- incluso más conveniente que tener una contraseña débil que tenga que escribir. Por supuesto, esto también tiene implicaciones de seguridad, pero tendrá que almacenar su contraseña en algún lugar, por ejemplo, las aplicaciones que acceden a ella, por lo que ya está asegurando copias de la contraseña.Pero también lea lo que dijo @meagar.
fuente
La premisa de que ya tendrían acceso no es cierta. Sin embargo, si tienen acceso y tienen una cuenta no privilegiada, aún podrían hackear fácilmente la contraseña de mysql.
Además, si el servidor es un servidor de producción en vivo, entonces usted se anuncia a sí mismo en Internet. Eso significa que en algún momento, alguien SE intentar un ataque de fuerza bruta en ese servidor, incluyendo MySQL, tanto el puerto y la cuenta de usuario.
Si le interesan los datos, los pasos básicos son tener una contraseña raíz diferente para la base de datos que para el usuario raíz. otros han declarado que también debe tener los permisos más bajos posibles para usuarios y programas.
Una contraseña de 4 caracteres se puede piratear en minutos, en una computadora bastante barata.
Puede que solo esté repitiendo lo que otros han dicho, pero cuanta más munición tenga para su gerente, mejor.
fuente
Muchas de las razones del escenario de la vida real estaban cubiertas por publicaciones anteriores, así que agregaré la "filosofía". Usar contraseñas seguras y tomar precauciones para reforzar su seguridad es una filosofía de trabajo. Una forma de pensar.
El uso de una contraseña débil ahora porque su mysql se ejecuta solo en 127.0.0.1 y solo el usuario root tiene acceso a ella, muestra que no piensa en el futuro. ¿Qué sucede si algún día necesita otorgar acceso a través de la red a su mysql? ¿Recordarás cubrir todos los agujeros de seguridad que dejaste?
Un buen administrador antepone el peor escenario al punto de paranoia.
fuente
Depende de qué derechos tenga el usuario, siempre debe bloquear las cosas en múltiples niveles. También depende de los datos que esté almacenando en su base de datos. También digamos hipotéticamente que hay una vulnerabilidad en MySQL que les permite tomar el control de toda la base de datos, pero solo necesitan iniciar sesión en cualquier cuenta de usuario. Si su contraseña es segura, esta vulnerabilidad se silenciará. Pero esto realmente solo depende de su caso específico.
fuente
Es muy fácil hacerse pasar por otra persona en mysql. Dada una identificación de usuario sin contraseña (la seguridad más débil) simplemente use
mysql -u userid
. Si tiene una contraseña, es un poco más difícil, pero una contraseña débil lo hace fácil. Si root no tiene contraseña, puedo acceder a root comomysql -u root
. Entonces puedo hacer cualquier cosa dentro de la base de datos que la raíz pueda.El uso de especificaciones de host en la seguridad también es una buena idea, especialmente si el acceso remoto está o puede estar disponible.
Las contraseñas en los archivos pueden y deben estar algo protegidos por permisos. El acceso por root, o el propietario del archivo de contraseña es trivial. Si es posible, se debe utilizar el cifrado de la contraseña en el disco. Esto hace que sea un poco más difícil de acceder, pero aún vulnerable.
fuente
Bueno, si no está alojando el db MySQL usted mismo, pero está en un servicio de alojamiento y alguien obtiene acceso a la dirección IP de su servidor, el nombre de usuario y la contraseña son su última línea de defensa. Siempre es bueno tener un nombre de usuario / contraseña seguro.
fuente