Archivo de la etiqueta: micropíldora

Micropíldora 5 – Deshabilitar función xmlrpc.php de WordPress

Según podemos leer en la Wikipedia, XML-RPC es un protocolo de llamada a procedimiento remoto (Remote Procedure Call) que usa el formato XML para codificar los datos y utiliza el protocolo web (HTTP) para la transmisión de los datos.

Logo de XML-RPC WordPress

XML-RPC WordPress logo. Fuente imagen: JJW Design

Dentro de la plataforma WordPress podríamos traducir esta frase como el sistema que permite la ejecución de instrucciones en nuestro blog de forma remota.

Gracias a este sistema podemos publicar de forma remota o gestionar nuestro blog con la aplicación móvil de WordPress, pero claro se trata de una herramienta de gestión que es muy probable que la gran mayoría de usuarios no utilicemos (y muchos ni siquiera conozcan).

A partir de WordPress 3.5 se habilitó esta posibilidad de gestión remota por defecto (antes era opcional), llegando incluso a quitar la opción de activar o desactivarlo desde los ajustes del panel de control. Por el principio de mínima exposición si no vamos a utilizarlo es preferible bloquearlo.

Cómo bloquear el acceso al sistema XML-RPC

Ya que no existe la posibilidad de deshabilitar el sistema XML-RPC en los ajustes de WordPress, tenemos dos opciones:

  1. Utilizar un plugin específico como puede ser Disable XML-RPC.
  2. Utilizar el fichero .htaccess de nuestro blog para bloquear el acceso. Esta es la opción que veremos a continuación

Bloquear acceso al fichero xmlrpc.php desde .htaccess

XMLRPC habilitado

Ejemplo de acceso habilitado al sistema xmlrpc.php

Utilizaremos las opciones de gestión de ficheros del archivo .htaccess para bloquear cualquier acceso al fichero xmlrpc.php, deshabilitando así esta funcionalidad de control remoto.

En la primera captura podéis ver cómo se ve un acceso al fichero xmlrpc.php desde un navegador normal: nos avisa de que el formato recibido no es el esperado pero el mero hecho de que responda demuestra que el servicio está activo.

Para bloquear el acceso a este fichero bastará con añadir al fichero .htaccess las siguientes líneas:

# Block WordPress xmlrpc.php requests
<Files xmlrpc.php>
order deny,allow
deny from all
</Files>

Bloqueo del sistema xmlrpc

Ejemplo de bloqueo de acceso al sistema xmlrpc

Con esto indicamos al servidor que cualquier acceso al fichero xmlrpc.php debe ser bloqueado. Si intentamos acceder al fichero con nuestro navegador veremos un mensaje del servidor indicando que no estamos autorizados a acceder. Así eliminamos la posibilidad de que nadie acceda a la gestión de nuestro WordPress desde este entorno.

Micropíldora 4 – Forzar el uso de HTTPS

Paso de HTTP a HTTPS Prevent SQL Injection. Fuente imagen: Planetainformatico.es

Paso de HTTP a HTTPS. Fuente imagen: Planetainformatico.es

Estamos acostumbrados a que cuando accedemos a una página cifrada con certificados SSL nuestro navegador nos lo muestre en la barra de direcciones con un icono de un candado y cambiando el protocolo HTTP por el HTTPS. El hecho de utilizar este cifrado nos asegura que el tráfico entre el cliente y la web accedida es seguro, pero ¿cómo hacemos que nuestros visitantes de nuestra web pasen de utilizar el protocolo HTTP estándar por el HTTPS?

Suponiendo que tengáis instalado correctamente un certificado SSL en vuestro servidor (consultar con la ayuda de vuestro hosting sino lo sabéis) la solución es tan sencilla como modificar el fichero de configuración .htaccess para que todas las peticiones que lleguen al puerto 80 (el usado por HTTP) se redirijan a la correspondiente URL pero usando el prefijo https://. Así el navegador de nuestros usuarios utilizará el protocolo seguro siempre que se conecte a nuestra web.

Tan sólo buscar el modulo rewrite y añadir las dos instrucciones marcadas en azul: en la primera se indica la condición que debe suceder (un acceso al puerto 80 del servidor) y qué cambio debe realizarse (cambiar la URL para que empiece por https://securizando.com/):

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On

RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://securizando.com/$1 [R,L]
</IfModule>
# END WordPress

Obviamente deberéis cambiar la URL en rojo por la de vuestro blog 😉

Micropíldora 3 – Protege tu Apache contra SQL Injection

Los ataques SQL Injection son los más comunes en el mundo web y uno de los primeros que e suelen probar contra los servicios web de cualquier empresa.  Los ataques más básicos de esta categoría consisten en solicitar información no prevista a la base de datos de tal manera que bien nos la muestre en pantalla o bien que la podamos deducir (Blind SQL Injection). Esta solicitud de información suele realizarse añadiendo instrucciones SQL a la petición normal de tal forma que el servicio responda, además de la petición original y legítima, con la información que solicita el atacante o bien de tal forma que se pueda extrapolar. El funcionamiento de los ataques a ciegas (Blind SQL Injection) se tratará en su propio artículo.

Ejemplo ficticio de ataque SQL donde se solicitaría la versión de la base de datos que funciona tras la página web:

http://www.webvictima.com/?id=1 union select @@version()

Las instrucciones SQL utilizan diferentes palabras claves por lo que intentar localizarlas en las cadena de texto de las peticiones que llegan a nuestro navegador podría servir como medida de protección ante estos ataques. En el siguiente código se busca las palabras claves union y select dentro de la URL solicitada y en caso de encontrarlas se devolverá la página de error 404 (Page Not found) que haya definida en la configuración del servidor Apache. Como una de las técnicas básicas de los atacantes para evitar ser detectado es ofuscar las cadenas de peticiones para evitar su fácil detección se han incluido las conversiones de las cadenas de caracteres en formatos hexadecimal y Unicode que suelen ser utilizados:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{QUERY_STRING} ^.*(union|%75%6E%69%6F%6E|&#117;&#110;&#105;&#111;&#110;).* [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(select|%73%65%6C%65%63%74|&#115;&#101;&#108;&#101;&#99;&#116;).* [NC]
RewriteRule . – [R=404,L,NC]
</IfModule>

Este truco supone que el servidor Apache tiene correctamente activado y configurado el módulo de rewrite y se ha definido correctamente la página de error 404. Como siempre que se tocan ficheros de configuración haced una copia de seguridad antes 😉

Secruizando WiFi

Micropíldora 2 – Protege la red Wi-Fi de tu casa

Fuente imagen: Kaspersky

Fuente imagen: Kaspersky

En esta micropíldora podréis encontrar algunos consejos para fortificar la red Wi-Fi que la mayoría tenemos en casa. Se trata de una lista de consejos básicos para usuarios no profesionales que buscan tener una red más segura pero sin entrar en modo paranóico. Así pues aquí tenéis un listado básico de pequeños cambios que protegerán vuestra red Wi-Fi para que sea más complicada que la del vecino porque en seguridad casera no hace falta correr más que el león sino ser más rápido que otra víctima.

Cámbiale la contraseña

Existen múltiples herramientas públicas para calcular la contraseña por defecto que traen los routers de las principales operadoras por lo que la primera medida de seguridad será cambiar la contraseña de acceso.

Cámbiale el nombre o directamente ocultalo

Todos los routers Wi-Fi de las operadoras incluyen nombre estandarizado (WLAN_0ce, VODAFONE_A345, etc.). Las operadoras incluyen una contraseña por defecto que se calcula en usando este SSID. Como ya hay diversas aplicaciones de móviles que calculan la contraseña por defecto en base al SSID el mero hecho de cambiar el nombre de la red (SSID – Service Set IDentifier) ya es una medida de seguridad a aplicar, aunque como hemos comentado en el primer punto debes cambiarla.

Otra medida de seguridad que evitará los intentos de conexión automatizados es ocultar el SSID. Así la red no se anuncia públicamente y tan sólo se podrán conectar aquellos equipos que conozcan el nombre de la red y su contraseña de acceso. Hay que tener en cuenta que podemos tener equipos que tengan dificultades para conectarse a redes Wi-Fi ocultas: los primeros iPhone no mantenían la conexión en redes ocultas.

Método de cifrado

Aunque muchos routers Wi-Fi incorporan protocolos antiguos por temas de compatibilidad con equipamiento antiguo debemos evitar el uso de éstos ya que sus características en el plano de seguridad están totalmente sobrepasadas. Así debemos elegir el protocolo de cifrado de más seguro compatible con nuestros equipos, a ser posible WPA2.

Fuente imagen:Taringa.net

Fuente imagen:Taringa.net

Controla la potencia de emisión

La calidad de la señal, y con ella la velocidad de transmisión, requiere de una cierta potencia de emisión por parte del router por lo que generalmente se suele configurar dicho equipo para que emita con la máxima potencia posible para tener la mayor zona de cobertura posible. El problema de esta estrategia es que parte de la potencia sale al exterior de nuestra vivienda y permite que cualquier persona cerca (vecinos, gente en la calle, etc.) se pueda conectar a nuestra red. Por ello es inteligente reducir la potencia de emisión a aquella que permita una buena conexión dentro de nuestra casa. Si tenemos zonas de casa con poca cobertura es preferible utilizar extensores de red, ya sea usando repetidores Wi-Fi o equipos PLC, para focalizar la red en aquellas zonas donde nos interesa.

Securización por MAC

Éste quizás sea el punto más controvertido de este artículo. En la mayoría de guías de bastionado de redes Wi-Fi indican que es importante activar la opción de securización por dirección MAC: así nos aseguramos que únicamente los equipos que nosotros demos de alta podrán conectarse aún conociendo la contraseña de acceso. Esto es totalmente cierto y altamente recomendable si tenemos una red muy estable (redes Wi-Fi domésticas) pero se convierte en inviable en el momento que queramos dar un servicio ágil a usuarios temporales (redes en un piso compartido, etc.). Si bien existen técnicas para falsear las direcciones MAC con las que saltarse este punto de seguridad ya estaríamos ante un ataque demasiado profesional para lo que afecta a esta entrada. La securización por MAC es útil si es viable tener controlados e identificados los equipos que se van a conectar a la red (teléfonos móviles, portátiles, televisiones, etc.).

Desactiva WPS

El sistema WPS (Wifi Protected Setup) se creó para facilitar la conexión de equipos en redes Wi-Fi de tal manera que los nuevos dispositivos se autoconfiguraban de forma fácil, sencilla y muy cómoda para el usuario final. El problema es que este sistema de autoconfiguración ha permitido que un usuario malicioso también pueda conectarse de forma sencilla a la red, así pues si no lo necesitas desactívalo. Siempre puedes activarlo cuando quieras conectar esa nueva televisión Wifi 4K.