 |
Figura 1: WP Hardening ayuda a mejorar la seguridad de tu WordPess |
Cada instancia de
WordPress, una vez implantada, puede ser fortificada - igual que se fortifica el servidor Linux donde se esté ejecutando - cambiando permisos, borrando archivos de instalación, cambiando configuraciones o instalando
plugins de seguridad.
WPHardening es una herramienta creada en
Python, bajo licencia libre
GNU/GPLv3, con la idea de no ser un
plugin como tal de este
framework, de esos que estamos acostumbrados a instalar y que en muchos casos extienden su funcionalidad. Es una herramienta de auditoria diseñada con la idea concreta de poder automatizar la eliminación de archivos innecesarios, dar recomendaciones de plugins de seguridad, aportar un asistente para la creación del archivo de configuración y algunas cosas más que paso a contaros.
¿Que se puede hacer con WPHardening?
Está diseñada como una herramienta de consola, con el objetivo de ser versátil y que pueda ser utilizada con diferentes argumentos de invocación - con los que se podrán realizar diferentes acciones - y desde diferentes
scripts automatizados en procesos completos de cumplimientos de seguridad.
 |
Figura 2: WPhardening en su GitHub |
Para comenzar a utilizar esta herramienta, lo primero que vamos a hacer es descargar
WPHardening desde su repositorio en GitHub de la siguiente manera:
$ git clone https://github.com/elcodigok/wphardening
Cloning into 'wphardening'...
remote: Counting objects: 534, done.
remote: Total 534 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (534/534), 121.84 KiB | 93 KiB/s, done.
Resolving deltas: 100% (370/370), done.
$ cd wphardening/
Ahora vamos a necesitar tener descargado y descomprimido en algún directorio de nuestro equipo una versión de
WordPress, hasta la fecha de hoy se recomienda la última versión estable
4.0 llamada “
Benny” y que fue liberada hace unos días. En estos ejemplos, la copia de
WordPress 4.0 que hemos descargado está en el siguiente
PATH:
/home/cspammers/wordpress
Con estos dos componente ya podemos utilizar
WPHardening y automatizar su fortificación sin necesidad que el framework de
WordPress se encuentre instalado o esté en ejecución dentro del servidor.
Para obtener ayuda sobre la herramienta y cuáles los parámetros que podemos utilizar hay que ejecutar:
$ ./wphardening.py -h
El único flag obligatorio es
( -d ) donde se indica el
PATH en el que se encuentra la instancia de
WordPress previamente descargado. Haciendo uso de este único argumento podemos validar que realmente sea un proyecto de
WordPress. Se hace de la siguiente manera:
$ ./wphardening.py -d /home/cspammers/wordpress -v
Si no se especifica ningún archivo de
Log para guardar los resultados salida con la opción
( -o ), todos los cambios van a ir almacenándose en el archivo
wphardening.log de esa forma vamos a poder seguir todo lo que se fue ejecutando.
Para evitar el síndrome
777 en donde el usuario regala permisos a los archivos y directorios,
wphardening tiene la posibilidad de hacer un control de permisos de seguridad adecuado utilizando la opción
-c ó
--chmod. Este sería un ejemplo de uso para mejorar los permisos de los archivos de
WordPress:
$ ./wphardening.py -d /home/cspammers/wordpress --chmod
En cada proyecto que utilizamos de
WordPress podemos encontrar archivos de documentación o presentación como son los ficheros de
readme.html o de licencias que son muy utilizados en fases de
fingerprinting para detectar la versión exacta de nuestra instalación, rutas dentro del servidor y hasta posibles configuraciones inseguras. Para evitar tener que ir eliminando manualmente todos estos archivos dentro de un proceso de fortificación, podemos utilizar la opción
-r o
--remove con
WPhardening:
$ ./wphardening.py -d /home/cspammers/wordpress --remove
 |
Figura 3: Ejemplo de borrado de archivos de licencia e información en WordPress |
Para dificultar aún más los procesos de fingerprinting se puede eliminar la versión de
WordPress de todos los lugares en los que se encuentra y con (
-f ) las marcas buscadas por las herramientas populares de
scanning de
WordPress, para ello se puede utilizar las opción de (
-v es el modo
verbose ):
$ ./wphardening.py -d /home/cspammers/wordpress --delete-version -f -v
También es posible crear y personalizar el archivo
robots.txt en donde le indicamos a las arañas de los motores de búsqueda cuáles los límites y permisos que vamos a asignar usando la opción
-b o
--robots:
$ ./ wphardening.py -d /home/cspammers/wordpress --robots
En este último tiempo la libreria TimThumb, una de las más usadas para manipular imágenes en
PHP fue vulnerada en varias oportunidades. El problema radica en que los usuarios no acostumbran a actualizarla cuando esta incluida en su tema del sitio, por lo que
wphardening cuenta con un diccionario de búsqueda para alertar al usuario sobre la existencia del mismo:
$ ./wphardening.py -d /home/cspammers/wordpress --timthumb -v
Una herramienta que se incorporó en estas últimas versiones es la posibilidad de contar con un asistente para la creación del archivo de configuraciones
wp-config.php, que va a generar un archivo llamado
wp-configu-wphardening.php para que sea renombrado en la instalación. Esto se puede activar de la siguiente manera:
$ ./wphardening.py -d /home/cspammers/wordpress --wp-config
La popularidad de
WordPress llegó por la gran facilidad que tiene para extender sus funcionalidades y crear los plugins. Es por ello que desde
WPHardening recomendamos varios plugins específicamente de seguridad, tales como:
AntiVirus, Bad Behavior, Block Bad Queries, Exploit Scanner, Latch, Limit Login Attempts, One-Time Password, UPDATE NOTIFICATIONS, User Locker, WordPress File Monitor Plus, WP Login Security 2, WP Security Scan y WP-DBManager.
Figura 4: Vídeo Tutorial de integración de Latch para WordPress.
También puede ser usado para gestionar muchos WordPress con un solo Latch.
Para comprobar si puedes mejorar la seguridad de tu
WordPress con alguno de ellos puedes usar la siguiente opción:
$ ./wphardening.py -d /home/cspammers/wordpress --plugins
Finalmente, en caso que nuestro servidor acepte la navegación entre sus directorios, podemos crear - con un solo comando - todos sus archivos
index.php y una directiva en el archivo
.htaccess para evitar que alguien liste el contenido de alguno de nuestros directorios:
$ ./wphardening.py -d /home/cspammers/wordpress --indexes
Dijimos al principio, que
WPHardening es una herramienta muy versátil que nos va a permitir ejecutar la cantidad de opciones previas a una instalación o actualización, por lo cual podríamos llegar a combinar todos sus argumentos de la siguiente manera:
$ ./wphardening.py -d /home/cspammers/wordpress -c -r -b -f -t --wp-config --delete-version --plugins --indexes -o wordpress4.log -v
Conclusiones
WPHardening es un proyecto muy joven, en una fase muy temprana, pero que está siendo cuidado con mucho cariño e ilusión, por lo que aceptamos cualquier sugerencia o idea de mejora. Están todos invitados a colaborar y probar
WPHardening, reportar fallos o cambios desde el repositorio en
GitHub, para que puedan seguir creciendo con mejoras y nuevas funcionalidades. Ya estamos comenzando a ver que es lo nuevo para su version
1.4 así que cualquier idea será bienvenida.
Saludos!
Autor: Daniel Maldonado (
@elcodigok)
http://caceriadespammers.com.ar