miércoles, 3 de agosto de 2011

Green SQL recuerda las mejores prácticas de seguridad para su base de datos MySQL

La base de datos MySQL se ha convertido en la base de datos open source más popular debido a su rápido rendimiento constante, alta fiabilidad y facilidad de uso. MySQL se utiliza en todos los continentes, incluso en la Antártida.
Particulares, desarrolladores Web, así como muchas de las organizaciones más grandes y de más rápido crecimiento del mundo, como Yahoo!, Alcatel-Lucent, Google, Nokia, YouTube y otros, ahorran tiempo y dinero potenciando sus sitios web de alto volumen, sistemas críticos de negocio, y sus paquetes de software.
Como ocurre con la mayoría de los productos, MySQL viene "listo para trabajar" una vez fuera de la caja. Por lo general, la seguridad no es una consideración importante cuando se instala este tipo de producto. A menudo, la cuestión más importante es ponerlo en marcha lo más rápidamente posible para que la organización se puede beneficiar. Este documento pretende ser un manual de seguridad más rápido para ayudarle a traer un servidor de base de datos MySQL instalado en conformidad con las mejores prácticas de seguridad.



Green SQL y MySQL
GreenSQL es un servidor de seguridad Open Source Database creada bajo una licencia GPL. Funciona como un proxy inverso y protege su base de datos de numerosos tipos de ataques que los servidores de destino de base de datos y la información confidencial almacenan. GreenSQL fue creado originalmente con MySQL.
Después de una amplia aceptación de GreenSQL, se añadió el apoyo a otros motores de bases de datos. Debido a su orientación de base de datos, GreenSQL defiende sus datos en el mismo punto en el que otros tipos de productos de protección a menudo no - la prevención de la destrucción de sus datos o la fuga poco antes de que suceda.

1. Asegurar tu servidor
Muchos ataques conocidos acceden físicamente una sola vez a una máquina que ha sido adquirida. Por esta razón, lo mejor es tener el servidor de aplicaciones y el servidor de base de datos en diferentes máquinas. Si esto no es posible, se debe tener más cuidado, porque de lo contrario, mediante la ejecución de comandos remotos a través de un servidor de aplicaciones, un atacante puede ser capaz de perjudicar su base de datos incluso sin permisos. Por esta razón, cualquier servicio que se ejecute en la misma máquina que la base de datos debe tener el permiso más bajo posible, que todavía permita que el servicio funcione.
No te olvides de instalar el paquete de seguridad del todo: Antivirus y Antispam, Firewall, y todos los paquetes de seguridad recomendados por el proveedor de tu sistema operativo. Además, no te olvides de pasar 10 minutos pensando en la ubicación física del servidor - en el lugar equivocado, el servidor puede ser robado o sufrir algún tipo de accidente. Considere la posibilidad de realizar algunos procedimientos de consolidación del sistema operativo.


2. Deshabilitar o restringir el acceso remoto
Compruebe si a MySQL se puede acceder desde la red o sólo de su propio servidor.
Si el acceso remoto se utiliza, asegúrese de que sólo los hosts definidos pueden acceder al servidor. Esto se realiza normalmente a través de TCP wrappers, iptables, o cualquier otro software de firewall o hardware disponible en el mercado.


3. Deshabilitar el uso de LOCAL INFILE
El siguiente cambio es desactivar el uso de la "LOAD DATA LOCAL INFILE" de comandos, lo que ayudará a prevenir la lectura no autorizada de archivos locales. Esto es especialmente importante con las nuevas vulnerabilidades de inyección SQL en aplicaciones PHP.


4. Cambiar el nombre de usuario y contraseña raíz
El nombre de usuario administrador por defecto en el servidor MySQL es "root". Los piratas informáticos suelen tratar de obtener acceso a sus permisos. Para hacer esta tarea más difícil, cambiar el nombre "root" a otro distinto y acompáñelo de una contraseña alfanumérica larga y compleja.


5. Eliminar el "test" de base de datos
MySQL viene con una "prueba" de base de datos que pretende ser un espacio de ensayo. Se puede acceder a ella por el usuario anónimo, por lo que es utilizado por numerosos ataques.


6. Eliminar las cuentas anónimas y obsoletas
La base de datos MySQL viene con algunos usuarios anónimos con contraseñas en blanco. Como resultado, cualquier persona puede conectarse a la base de datos


7. Privilegios más bajos del sistema
Una de las recomendaciones de seguridad de base de datos más comunes es reducir la posibilidad de permisos a las distintas partes. MySQL no es diferente. Normalmente, cuando los desarrolladores trabajan, utilizan el sistema de permiso máximo y dan menos consideración a los principios de consentimiento de lo que cabría esperar. Esta práctica puede exponer a la base de datos a grandes riesgos.
Para proteger su base de datos, asegúrese de que el directorio de archivos de la base de datos MySQL actualmente almacenado es propiedad del usuario "mysql" y el grupo de "mysql".


8. Privilegios más bajos de la base de datos
En la mayoría de los casos, un usuario administrador (el renombrado "root") y uno o más usuarios reales conviven en la base de datos. Por lo general, la "raíz" no tiene nada que ver con los datos en la base de datos, sino que se utiliza para mantener el servidor y sus tablas, para dar y revocar los permisos, etc.
Por otro lado, algunos de los identificadores de usuario se utilizan para acceder a los datos, tales como el identificador de usuario asignado al servidor web para ejecutar "select \ update \ insert \ delete" consultas y ejecutar procedimientos almacenados. En la mayoría de los casos, los demás usuarios no son necesarios; sólo usted, como administrador del sistema, puede conocer realmente las necesidades de su aplicación.
Sólo para las cuentas de administrador es necesario conceder los privilegios de super / PROCESO / archivo y acceso a la base de datos mysql. Por lo general, es una buena idea reducir los permisos del administrador para acceder a los datos.


9. Habilitar el registro
Si su servidor de base de datos no ejecuta muchas consultas, se recomienda que habilite el registro de transacciones.


10. Cambiar el directorio raíz
Un chroot en sistemas operativos Unix es una operación que cambia el directorio raíz del disco aparente para el proceso actual de funcionamiento y sus hijos. Un programa que se vuelve a sus raíces en otro directorio no puede tener acceso o nombre de los archivos fuera del directorio y el directorio se llama un "chroot jail" o (menos frecuente) una "prisin chroot".
Al usar el entorno chroot, el acceso de escritura de los procesos de MySQL (y los procesos hijo) se puede limitar, aumentando la seguridad del servidor.


11. Eliminar el historial
Durante los procedimientos de instalación, hay una gran cantidad de información sensible que puede ayudar a un intruso al asalto de una base de datos. Esta información se almacena en la historia del servidor y puede ser muy útil si algo sale mal durante la instalación. Mediante el análisis de los archivos de la historia, los administradores pueden averiguar qué ha ido mal y, probablemente, arreglar las cosas. Sin embargo, estos archivos no son necesarios después de que la instalación se ha completado.


12. Pon parche a tus sistemas
Consulta a proveedor de tu sistema operativo de las actualizaciones de seguridad y rendimiento: el uso de Windows Update en Windows, apt-get o yum en (Debian) sistemas, Red Hat Agente de actualización de Red Hat, etc.


Para más información y detalles de los pasos a seguir, visita este enlace de Green SQL.
Publicado por: Arkadia / Sección: Seguridad / Fabricante: GreenSQL