Blog para webmasters con codigos, recursos para hacer paginas web, articulos para webmasters
Archivo de secciones


Extremaweb
Blog inicio
Blog webmaster
Foros


Recomendamos:
Calendario web
Publicar videos
Videos en blog
Como hacer un blog
Tener una web
rss en tu web
Noticias en tu web
Diseño merida
Cute news
Pinceles Photoshop

Afiliados Vip

Foros de informatica
Guia empresas
Programacion php
Publicidad en internet
Webmaster libre

Intercambios a extremaweb[at]gmail.com

 

Seguridad en MySQL
Foros webmasters, informatica creacion de paginas web

Noticias de diseño web y programcion recursos webmaster

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.


Seguridad en MySQL

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



Autor: http://www.seguridad0.com/index.php?ab87303d9d2a6e478a1932fb2c498459&tim=20-2-2005&ID=1281


Escrito por admin, el Domingo, 02 de Julio 2006


Regreso
Print this Page

::: Comenta éste artículo en nuestro foro webmasters :::