> Entries (RSS)
Video Juegos, Emuladores y Roms
Jul 8

Seguridad en la Base de Datos MySQL (SGBD-MySQL) Publicada por 4v4t4r en Estrategias, Seguridad en bases de datos .

Estas sencillas instrucciones muestran cómo proceder después de una instalación por defecto, asegurando la base de datos MySQL de accesos no deseados.

Instalar una base de datos MySQL es lo más sencillo del mundo. Hasta un neófito puede hacerlo. En plataformas Windows utilizando un sencillo asistente de “siguiente/ siguiente/ siguiente” ésta se instala en pocos minutos. Sin embargo, esta operación por defecto deja un buen número de agujeros de seguridad que, muchas veces, por desidia o desconocimiento no se corrigen. Una instalación por defecto de MySQL es una puerta de entrada a todo tipo de intrusos.


Una vez instalada la base de datos MySQL, para establecer la contraseña del usuario root hay que teclear desde la shell o línea de comandos de su directorio:

mysqladmin -u root password ‘contraseña’

De forma predeterminada MySQL tiene dos usuarios definidos y una base de datos ‘test’. Los usuarios no tiene predefinida ninguna contraseña y las tablas de la base de datos, que comienzan por ‘test’, tienen permisos de escritura para todo el mundo. Para deshabilitar estos usuarios y eliminar las tablas mencionadas hay que escribir:

DELETE FROM user WHERE User = ”;
DELETE FROM db WHERE Host = ‘%’;

Si la base de datos solo necesita estar accesible desde la máquina local se debería deshabilitar el TCP Networking. De esta forma eliminaremos la posibilidad de conectarse al demonio sin una cuenta en la máquina en la que esté alojado. Para llevar ésto a cabo se deberá editar el script de arranque ’safe_mysqld’ y modificar las siguientes lineas (se incluyen los números de línea siendo la primera aparición el formato actual y la segunda el formato definitivo):

119: –skip-locking >> $err_log 2>&1
119: –skip-networking –skip-locking >> $err_log 2>&1

122: –skip-locking “$@” >> $err_log 2>&1
122: –skip-networking –skip-locking “$@” >> $err_log 2>&1

Se debería iniciar MySQL con el parámetro –skip-symlink. Con esto se estáría preveyendo la posibilidad de una ‘escalada de privilegios’ mediante la sobrescritura de archivos en el sistema.

Para prevenir la posibilidad de sufrir un ataque por ‘denegación de servicio’ se debería restringir las conexiones a un único usuario, estableciendo la variable max_user_connections. Pueden comprobarse los valores actuales de las variables con el comando SHOW VARIABLES, y pueden establecerse mediante el comando SET.

También se debería deshabilitar la posibilidad de utilizar el comando LOAD DATA LOCAL INFILE, lo que eliminará la posibilidad de accesos no autorizados en modo lectura a los ficheros locales. Para ello se deberá agregar el siguiente parámetro al fichero de configuración de MySQL: my.cnf:

set-variable-local-infile=0
Es recomendable renombrar la cuenta del administrador de MySQL (root). De esta forma estaremos disminuyendo la posibilidad de éxito de un ataque de fuerza bruta contra la contraseña del administrador. Para ello deberemos ejecutar:

UPDATE user SET user = “nuevonombre” WHERE user = “root”; flush privileges;

Para los usuarios de Linux es aconsejable que tras una sesión de línea de comandos con MySQL se vacíe el contenido del archivo .mysql_history, ya que puede contener información sensible (en él se almacena un histórico con los comandos ejecutados). Para proceder con ello ejecutaremos:

:> /home/usuario/.mysql_history

Hay dos herramientas por ahí que sirven para comprobar la seguridad (ambas para Linux):

MySQL Network Scanner
Este programa permite auditar una red de clase C en busca de servidores MySQL que no tengan definida una contraseña para el usuario root. En el caso de encontrar alguna se conectará y volcará todos los pares de usuario/contraseña definidos en la tabla mysql.user, incluyendo la información sobre el host desde el que se le permite la conexión.

Descarga del código fuente: http://www.securiteam.com/tools/6Y00L0U5PC.html

MySQL Brute Force Password Hash Cracker
Esta utilidad, complementaria a la anterior, admite como argumento el hash de una contraseña de un usuario de MySQL y, mediante fuerza bruta, intentará descifrarlo.

Descarga del código fuente: http://www.securiteam.com/tools/5YP0H0A40O.html

PasswordsPro (Windows)
Este programa recupera todo tipo de contraseñas, incluyendo hashes MD4, MD5, SHA-1, incluyendo usuarios de bases de datos MySQL. También descifra las contraseñas ocultas detrás de astericos en ventanas Windows. La utilidad ha sido traducida al español por el equipo de Seguridad0.

Descarga del programa: http://www.insidepro.com/eng/passwordspro.shtml#450

Información obtenida gracias a Seguridad0

Si eres nuevo lector de La Comunidad DragonJAR y te gustan nuestros contenidos, puedes suscribirte a nuestras noticias a través del feed RSS o a través del correo, recuerda también visitar nuestra comunidad donde podrás encontrar mucha mas información. Gracias por tu visita.

Esta entrada no tiene comentarios... pero puedes ser el primero..

Agregar un comentario


  • Acerca de...

    DragonJAR.org es una comunidad de investigadores, estudiantes, profesionales y entusiastas de la Seguridad Informática, En la cual se busca darle un enfoque eminentemente práctico a la teoría sin olvidar las bases esenciales de esta.

    De esta manera se Tratará de ofrecer soluciones útiles a los usuarios, tanto novatos, estudiantes, como a los profesionales e investigadores, Teniendo presente que el mundo de la seguridad informática y la información es un medio que se auto inventa constantemente.