La seguridad de un sitio web es uno de los aspectos mas importantes que un Webmaster debe tener en cuenta.
El servidor web que utilicemos para nuestra web bajo WordPress, pueden tener vulnerabilidades también, por lo tanto, debemos asegurarnos de chequear que no tenga problemas de seguridad o tomar acciones para mejorar la seguridad. En otros tutoriales se especificaron acciones y herramientas para reforzar la seguridad por ejemplo aplicando:
1. Medidas de seguridad para Servidores VPS
2. Cómo detectar y controlar servicios en servidores Linux
Un aspecto muy importante a tener en cuenta es evitar utilizar un servidor compartido, son aquellos servidores que alojan otros sitios web, además de nuestra web y un sitio web en el mismo servidor que sea vulnerable, puede comprometer todos los demás sitios web ya que los archivos están en un mismo espacio y así propagarse un ataque o una infección por virus.
Los sitios web desarrollados bajo Wordpress son sensibles a la mayoría de los ataques debido a que el 30% de los sitios web esta desarrollados bajo esta plataforma.
Por ello es importante adoptar medida para proteger nuestra web y nuestros datos de posibles atacantes y minimizar el riesgo de que tengamos vulnerabilidades.
Cambiar la ruta a la carpeta wp-content
Cambiar la ruta definida por defecto a la carpeta wp-content de WordPress, que es la carpeta donde se encuentran la mayoría de los archivos y plugins, themes que componen nuestra web. Los exploits y malware, buscarán esta carpeta para escanear y encontrar vulnerabilidades, si cambiamos la ruta haremos mas difícil el rastreo.
Para realizar el cambio de ruta debemos editar el archivo wp-config.php y modificar la constante wp_content_dir:
define( 'WP_CONTENT_DIR', dirname(__FILE__) . '/ruta/wp-content' );Con eso estaría cambiado.
Instalar solo plugin seguros
Los plugin puede ser retirado del repositorio oficial de WordPress.org, si no se actualizan frecuentemente, así poder asegurar a la comunidad que los plugin cierta seguridad y también nos muestra que plugins tienen mas aceptación por los usuarios. El hecho de que nos sean maliciosos no implica que funcionen correctamente o no tengan vulnerabilidades.
Debemos prestar atención cuando un plugin hace años que no se actualiza, se informa que tiene fallos. La comunidad de usuarios ha descubierto que contiene alguna vulnerabilidad de seguridad.
Utilizar WPHardening para automatizar instalaciones seguras
WPHardening es una herramienta para automatizar y realizar diversos chequeos de seguridad para que nuestra web Wordpress este configurada de forma segura.
Este proyecto esta realizado bajo Python y permite chequear diferentes aspectos de un sitio web desarrollador bajo Wordpress para buscar vulnerabilidades.
Una de las principales ventajas de esta herramienta es la automatización de las tareas y la configuración de seguridad es importante para evitar exponer información a los posibles atacantes. Hay muchas herramientas que han sido creadas especialmente para la obtención y recolección de todo tipo de información asociada con una instalación de WordPress. Muchos de los ataques contra los sistemas de WordPress por lo general comienzan con una información previa basada en escaneos y recopilación de información.
WpHardening se puede descargar a nuestro servidor o equipo local desde su pagina oficial o bien desde la terminal con el comando mediante el comando:
git clone https://github.com/elcodigok/wphardening.gitTambién podemos descargarlo de la pagina del proyecto en GitHub:
Una vez instalado o descomprimido el archivo podremos acceder a la carpeta wphardening.
Para utilizar esta herramienta debemos conocer la ruta a la web que queremos inspeccionar y esta web desde estar desarrollada con Wordpress.
A continuacion deberemos actualizar wphardening para asegurarnos que tenemos los ultimos repositorios y las mejoras más recientes que se hayan incorporado, para ellos de una ventana de terminal ejecutamos el siguiente comando:
python wphardening.py --updateLuego podremos comenzar a utilizar wphardening y chequear la seguridad de una web desarrollada bajo wordpress utilizando el siguiente comando:
python wphardening.py -d /home/miusuario/miweb -vRecordemos que solo se usa en forma local es decir sobre un servidor local o remoto desde la linea de comandos y para sitios web desarrollados en wordpress.
Por ejemplo utilizare para este tutorial un sitio web demo realizado en Wordpress en un servidor local con Xampp:
Muchas veces tenemos problemas con los permisos de archivos y carpetas que dejan nuestra web expuesta a ataques o intrusos, para resolver este problema utilizamos el siguiente comando:
python wphardening.py -d /opt/lampp/htdocs/proyectos/cabanias –chmod -vEsto configura los permisos recomendados para mayor seguridad de forma automática.
Otra opción muy interesante de esta herramienta es la posibilidad de descargar e instalar en forma automatizada plugin y herramientas de seguridad recomendados y probados.
python wphardening.py -d /opt/lampp/htdocs/proyectos/cabanias –plugins
Cuando ejecutamos el comando nos irá solicitando permiso para instalar cada plugin de seguridad, entre ellos un antivirus, escaner de exploit, gestor de base da datos, escaner de seguridad y vulnerabilidades, entre otros, al finalizar podremos ver los plugins instalados en la carpeta plugin de nuestra web Wordpress. Estos plugin utilizan herramientas online y bases de datos propias para buscar en los archivos y bases de datos de nuestro sitio web de WordPress rastos o pueden indicar que ha sido víctima de los hackers maliciosos.
[attachment=12158:panta06.jpg]Luego desde el panel de administrador de Wordpress podremos instalar y habilitar los plugins de seguridad.
Otra opción interesante es la creación automática del archivo robots.txt que denegará el acceso automáticamente a directorios mas importantes del sitio web. Ademas añadimos la opción -o que nos permite crear un archivo log con el resultado de la tarea realizada.
python wphardening.py -d /opt/lampp/htdocs/proyectos/cabanias –robots -o seguridadwp.log
Cuando ejecutamos el comando nos pedirá la ruta del sitio web y luego se podrá crear el archivo robots.txt.
Eliminar los archivos que no se utilizan es importante ya que ocupan espacio y pueden ser vulnerables ya que normalmente no se les da mantenimiento ni se los actualiza, además en un sitio web con muchos archivos pueden generar confusión, por ellos es que utilizaremos el comando parámetro remove para eliminar automáticamente todos los archivos que no utilice nuestro sitio web.
python wphardening.py -d /opt/lampp/htdocs/proyectos/cabanias –remove -o seguridadwp.log
Al finalizar podemos ver el log que creamos con un listado de todos los archivos que han sido eliminados.
Los ataques a sitios web y servidores son causados por problemas de seguridad debido a vulnerabilidades en su software ya sea por errores de programación o software mal configurado.
Estas vulnerabilidades permiten que atacantes utilicen una gran cantidad de técnicas, como el uso de un parámetro de URL para ejecutar una inyección SQL, agregar código a tu base de datos a través de formularios, lo que puede permitir que cambien los datos o borrar datos importantes como eliminar todas las entradas y páginas o dejar la web inutilizada.
Los sitios web realizados bajo Wordpress que recibieron ataques, generalmente es por vulnerabilidades de un plugin de WordPress. Los hackers suelen insertar malware codificado en base de 64 que les permite ejecutar una función PHP en nuestro sitio web. También pueden dejar una puerta trasera en algún lugar de su sitio web. Esta es una técnica que utilizan para tener acceso a su sitio web en el futuro, incluso este tipo de ataque suele infectar todos los archivos de la web.
Recordemos que todas las herramientas que utilicemos no garantizan la seguridad de nuestra web, ademas debemos implementar políticas de seguridad como realizar copias de seguridad incrementales de la base de datos y todos los archivos semanalmente o diariamente.