Vulnerabilidad XSS “edit-post-rows” en WordPress 2.3

Si todavía usáis la versión 2.3 de WordPress toca actualizar a la última 2.3.1 ya que a la lista de fallos que han ido saliendo (uno de los más grave comentado por aquí) acaban de informar de otro fallo XSS.

En esta ocasión se trata de un fallo en el fichero wp-admin/edit-post-rows.php que si tenemos habilitado la opción register_globals de PHP (nadie debería tenerla pero por desgracia suele estarlo en alojamientos compartidos) permite introducir código, una prueba de concepto sería:

http://dominio.tld/wp-admin/edit-post-rows.php?posts_columns[]=<script>alert(1)</script>

El fallo sólo afecta a la versión 2.3 pero no a la 2.3.1 ni a la última versión de la rama anterior (2.2.3).

, ,

Comentar
Añadir a del.icio.us

Como hacer más seguro tu WordPress

Interesante artículo que nos recomienda una serie de hábitos para mejorar la seguridad de nuestras instalaciones de WordPress.

Como hacer más seguro tu WordPress, contiene las siguientes recomendaciones:

Tabla de Contenidos (more…)

Leer más en Carrero.es

WordPress MU 1.3

Ya está disponible para descargar la última actualización del nuevo WordPress MU 1.3.

WordPress MU es la versión multi-blog de WordPress que permite la hacer funcionar a millones de blogs en todo el mundo. El mayor sitio que hace uso de esta versión es WordPress.com, que dicho de paso no estaría mal liberase sus cambios para que todos puedan disfrutar de ellos.

La nueva actualización de WPMU se sincroniza con WordPress 2.3.1 que incluye soporte nativo de etiquetas y arregla numerosos problemas de seguridad:

Entre las novedades de WordPress MU podemos comentar: (more…)

Leer más en Carrero.es

La Biblia de la seguridad en WordPress

Bueno, el título es cosa mía. Pero realmente se trata de un tutorial que todo usuario de WordPress debería leer y tener a mano: WordPress Security Whitepaper (PDF), una completa guía de consejos a tener en cuenta para reducir las vulnerabilidades del cms al mínimo. Dougal Campbell le dedica un análisis con factores a favor y en contra. Eso sí, todo está en inglés. A ver si alguien se anima y lo traduce.

Wordpress MU 1.3

Después de un largo tiempo, ha llegado una actualización mayor para Wordpress MU, el CMS que te permite crear una web al estilo Wordpress.com (donde pueden registrarse muchos usuarios y cada uno tener su blog).

Wordpress MU siempre me ha parecido un interesante proyecto y sobre todo útil para las universidades. Pero apartando mis opiniones personales sobre Wordpress MU, he aquí las novedades de la versión 1.3.

  • Principalmente, trae todas las novedades de Wordpress 2.3 y 2.3.1 (Tags, etc)
  • El formulario de registro ahora está escondido de los buscadores, lo cual ayudará a detener “cierta clase de spam”.
  • Siguiendo con el formulario de registro, los administradores van a tener más controles para desactivar y administrar este formulario.
  • Las tablas de la base de datos ahora son UTF-8

Hay mucho más que lo puedes leer aquí, si utilizas Wordpress MU, no olvides contarnos tu experiencia, realmente nunca he tenido tiempo para revisar ese CMS a fondo.

Las páginas blancas de la seguridad Wordpress

Los chicos de BlogSecurity, han desarrollado un PDF llamado “How to Secure Wordpress” o “Como asegurar Wordpress” en el que nos indican una serie de puntos a tener en cuenta a la hora de mejorar la seguridad de nuestro Wordpress.

El fichero incluye 10 páginas en las que nos dará unas pautas con las que asegurar nuestro Blog, partiendo desde los permisos necesarios y recomendados para las tablas y los usuarios de MySQL hasta la configuración de los fichero .htaccess y .htpasswd, pasando por las restricciones en ficheros como wp-content y wp-includes.

Me atrevo a hacer una traducción rápida del contenido de dicho PDF.

Instalando Wordpress

La instalación de Wordpress, es la base de nuestra seguridad, así que debemos prestar especial atención a este punto para evitar sufrir más adelante.

Accediendo a las tablas de Wordpress

Antes de empezar a instalar tu blog, necesitarás elegir bien los permisos del usuario de base de datos. La idea detrás de este punto vitál es la limitar el uso del usuario destinado a trabajar con las tablas de Wordpress a solo eso, Wordpress.

Por este motivo, el usuario root, nunca debe ser usado para acceder a la base de datos, es más, incluso aconsejan deshabilitarle esta posibilidad desde aplicaciones como phpmyadmin o similares.

El usuario de base de datos no debería tener privilegios globales SQL, esto limitará el acceso a la base de datos en donde esté Wordpress alojado. Solo sería necesario que tuviera permisos para las tareas del día a día.

Para datos: SELECT, INSERT, UPDATE, DELETE
 Para estructura: CREATE, ALTER, DROP 

Si estás alojado en un servidor en el que hay varios usuarios usando la misma base de datos, los permisos deberían ser más restrictivos.

Para datos: SELECT, INSERT, UPDATE, DELETE
  Para esctructura: ALTER 

De esta forma, en el peor de los casos, si alguien pudiera conseguir los datos del usuario de base de datos, únicamente podría acceder a una parte muy limitada de ella, sin comprometer el resto del servidor.

Cambia el prefijo de las tablas

Por defecto Wordpress, te da la opción de usar wp_ como prefijo para las tablas que alojarán los datos de Wordpress (posts, comentarios,…) pero como recomendación, siempre debería cambiarse. De esta forma alguien con mala intención debería conocer el prefijo de las tablas para poder acceder a ellas.

Quizas la solución más correcta sea la de usar un prefijo aleatorio, algo como 34eedrr_ algo que nunca nadie pueda conocer por intuición.

Para conseguir esto, basta con modificar el prefijo antes de iniciar la instalación, en cuanto estamos informando de los datos del usuario de base de datos, modificaremos la línea:

$table_prefix = 'wp_';

por algo así

$table_prefix = '1qw23e_';

Y continuamos con la instalación.

Si ya tenemos Wordpress instalado y queremos cambiar el prefijo de las tablas, existen plugins que te permite cambiar el prefijo casi sin tener que hacer nada. Uno de ellos es WP Prefix Table Changer, igual de claro como su nombre.

El fichero wp-config.php

Este fichero, es nuestro tesoro, con el conectamos a la base de datos, informamos el idioma de nuestro blog incluso activamos a desactivamos el uso de caché. Así que hemos de prestar una especial atención.

Por ese motivo, los permisos de este fichero deberían ser 644, convirtiendolo en un fichero de solo lectura.

Preparando el blog

Ahora tu blog ya está instalado, ya tenemos cierta seguridad aplicada y ahora tenemos que ponernos manos a la obra para depurar esa seguridad.

Cambiando tu usuario Administrador

Debemos cambiar el nombre del usuario administrador por defecto (admin), de esta forma mitigamos los intentos de ataques por fuerza bruta a nuestro Wordpress.

Debes asumir que los atacantes conocen tu nombre de usuario, así que piensa en una buena contraseña para asegurarte.

¿Como cambiar el usuario administrador?

Logueate con tu cuenta de Administrador, crea un usuario al que le darás permisos de administrador, usa un nombre dificil de predecir (nada de root, god, …) y asignale un password igual de complicado (te recomiendo que uses carácteres no alfanuméricos), le pondremos el mismo email que el admin inicial y borraremos la cuenta admin en la que estamos logueado.

Create un usuario con acceso limitado

En el PDF, recomiendan que instalemos Role Manager, un plugin para gestionar los permisos de los usuarios, a modo de barrera contra posibles intrusiones. Una vez instalado el plugin, crearemos un nuevo usuario al que limitaremos con las funcionalidades que vayamos a usar.

Para asegurar nuestro Wordpress, se recomienda que el nuevo usuario no sea más que un Contribuidor.

Los permisos por defecto del Contribuidor no son suficientes para un uso diario de Wordpress, pero con el plugin Role Manager, podemos añadirle permisos adicionales para hacer este perfíl más flexible pero igual de seguro.

rolemanager.png

Si tienes multiples usuarios, lo mejor que puedes hacer es crear un nuevo rol con los permisos que quieres que tengan todos los usuarios.

Cuando creamos usuarios, tenemos que tener especial cuidado en las opciones de:

  • Subir ficheros
  • Accesso al menú de plugins
  • Editar páginas / posts/ ficheros
  • Importart

Ya que es tas opciones, dan mucho poder al usuario.

Endureciendo Wordpress

Todo lo hecho anteriormente no sirve de nada si dejamos una ventana abierta por la que se pueda acceder, hemos de cerrar todos posibles acceso para evitar sopresas.

Restringiendo los directorios wp-content y wp-includes

Son sin duda los dos directorios más usados por Wordpress, por lo tanto hemos de protejerlos. Para ello, usaremos el fichero .htaccess para limitar el uso de cada directorio. Para empezar veremos una estructura básica para el fichero .htaccess de nuestro directorios wp-content y wp-includes.

Order Allow,Deny
Deny from all

 Allow from all


De esta form estamos evitando que se pueda acceder a cualquier fichero directamente, por ese motivo tendremos que revisar los plugins y themes que esten pensados para acceder a ellos y añadirlos al listado (por ejemplo Share This (Compartelo)).

Restringiendo wp-admin

El directorio wp-admin, es donde tenemos todo lo necesario para administrar nuestro blog, por eso tenemos tambien que asegurar el fuerte por este flanco.

Bloque todas las IP’s menos la tuya

Si eres un único administrador, tienes IP estática y solo administras el blog desde un único PC, deberías bloquear el acceso a todo el resto de IP’s. Para ello únicamente tendremos que usar el fichero .htaccess alojándolo en el directorio wp-admin/ con el siguiente contenido.

Order deny,allow
Allow from a.b.c.d #TU IP ESTÁTICA
Deny from all

Añadele un password al directorio wp-admin

Otra opción igual de válida es la de añadirle un password al directorio wp-admin/, de esta forma tendremos un doble candado para acceder a nuestro panel de administración.

Para ello tendremos que usar el fichero .htaccess y .htpasswd

.htaccess
AuthUserFile /srv/www/user1/.htpasswd #this file should be outside your webroot.
AuthType Basic
AuthName “Blog”
require user youruser #making this username difficult to guess can help mitigate password
brute force attacks. 

Y el fichero .htpasswd, incluirá el nombre de usuario y password encriptado, generarlo podemos usar herramientas Online que nos hacen la encriptación necesaria.

Plugins que debemos tener

No todos los plugins, son posibles fallos de seguridad para nuestro blog, tembian hay algunos que se encargan de ayudarnos a conocer los puntos débiles. Siempre viene bien tenerlos a mano para ir mirando la seguridad cuando actualizamos.

aNieto2k

Otro administrador de etiquetas para Wordpress 2.3

Ahora que Wordpress permite el uso de etiquetas lo que todo el mundo sigue echando de menos, y que seguro acabarán integrando, es un buen administrador de etiquetas, al igual que ya podemos gestionar nuestras categorías.

WP Tag Manager 0.1 es otro gestor para etiquetas que te permitirá hacer:

  • Edición de etiquetas.
  • Borrar etiquetas.
  • Combinar etiquetas.

Este plugin para Wordpress aun está un poco verde, pero es un adelanto de lo que puedes ir haciendo con las etiquetas en WP 2.3. Su autor espera integrar novedades y peticiones de los usuarios en el futuro.

Más información y Descarga: WP Tag Manager

Leer más en Carrero.es

Temas gratis para WordPress para el 29 de Octubre

Bloomingday es un tema de 3 columnas, en colores verdes y con cabecera de flores.

Brownie es un tema a 2 columnas con imagen en cabecera.

DGA Design 01 es un tema gratis de 2 columnas, con soporte Adsense y esquema de color azul.

Godfrey es un tema de una columna, en colores gris y rojo y con areas personalizable para mostrar información de Entradas Recientes, Categorías, Barra de búsqueda, Blogroll y otra información.

InKarm es un tema de 2 columnas en colores reojo, negro y blanco.

Star’eve es un tema a dos columnas, en colores oscuros y diseño minimalista.

WordPreciousss es otro tema gratis de 2 columunas, un tema minimalista y que puede ser personalizable facilmente. vía: WTC

Leer más en Carrero.es

Cómo cerrar la discusión de entradas antiguas

Cuando se trata de cerrar entradas antiguas ya sea mediante plugins o similares la idea no me hace gracia, me considero muy cabezota y pienso que todavía puede recibir comentarios interesantes (aunque la mayoría de las veces no sea así).

Sin embargo el nivel de trolleo y spam que alcanzan las entradas más antiguas (concretamente las anteriores al 2007) es difícil de superar: el 100% de los comentarios y trackbacks hechos a entradas anteriores al 2007 en los últimos cuatro meses son HOYGANs, spam o trolls.

Así que he decidido cerrar los comentarios y trackbacks, de una forma “muy artesanal”: revisando el ID de la última entrada del 2006 veo que es el 1102 así que un poco de MySQL nos servirá:

UPDATE wp_posts SET comment_status = 'closed', ping_status = 'closed' WHERE post_status = 'publish' AND ID < 1103;

Notar que el ID en el SQL es el de la última entrada del 2006 + 1. Esto puede dar “falsos positivos” si un borrador es anterior a esa fecha (tiene un ID inferior a 1102) pero es publicada posteriormente pero si rara vez tengo borradores… menos aún tengo entradas con ID tan bajo después de casi un año de más entradas…

Así de paso me he cargado el 70/80% de trackbacks spam que suelen ir a entradas viejas (el spam en comentarios “normales” hace tiempo que dejó de ser un problema).

, ,

Comentar
Añadir a del.icio.us

¿Has cambiado la hora en tu blog?

Horario de invierno

La pasada madrugada, los países que siguen el protocolo de ahorro de energía verano-invierno atrasaron sus relojes una hora. Entre ellos, España. Por desgracia, la mayor parte de los cms no disponen de una función automática que adapte este horario y tenemos que hacerlo a mano, si no queremos que los posts y comentarios, entre otras cosas, aparezcan como publicados una hora antes o después de la real. En WordPress, cambiar la hora es muy fácil. En las pestaña ‘Opciones>General’, al final del todo, tienes las opciones horarias. Basta com restar una hora a la que tengas en el campo destinado a ello.

Hay quien dice que esto del cambio horario produce un “desfase biológico“. Así que hagamos lo posible para que no provoque un “desfase blogológico” también.

Get Adobe Flash playerPlugin by wpburn.com wordpress themes