SlideShare a Scribd company logo
1 of 40
Download to read offline
WordPress Security by
www.jjpeleato.com
INDICE
1.0 Seguridad informática
2.0 Amenazas
3.0 Hacker vs Cracker
4.0 Malware
4.1 Exploit
4.2 Virus
4.3 IWorm
4.4 Trojan Horse
4.5 Backdoor
4.6 Rootkits
4.7 Keyloggers
4.8 Adware
4.9 Spyware
4.10 Crimeware
4.11 SQL Injection
4.12 XSS (Cross-site scripting)
4.13 DDoS (Distributed Denial Of Service)
4.14 Botnet (Zombi)
4.15 Logic Bomb
4.16 Pharming
4.17 Phising
4.18 Spoofing
4.19 Clickjacking
5.0 WordPress.
5.1 Estructura base de datos.
5.2 Estructura directorio.
6.0 Buenas prácticas
6.1 Hosting confiable
6.2 Copias de seguridad
6.3 Usuario bases de datos
6.4 Instalación WordPress subdirectorio
6.5 Eliminar objetos
6.6 Ocultar directorio plugins
6.7 wp-config.php
6.7.1 Prefijo tablas
6.7.2 Fijar valores AUTH/SALT
6.8 .htaccess
6.9 Permisos directorios y archivos
6.10 Actualizaciones
6.11 Plugins de seguridad
6.12 Usuarios
6.13 Contraseñas
6.14 Login
6.15 Headers
6.16 SPAM
6.17 PingBack
6.18 HTML
6.19 Google Search Console
7.0 Instalación
7.1 WordPress desde 0
7.2 WordPress desde copia de seguridad
8.0 Como limpiar WordPress
8.1 Página en mantenimiento
8.2 Reiniciar contraseñas
8.3 Copia de seguridad
8.4 Base de datos
8.5 Restaurar core
8.6 Restaurar plugins
8.7 Buscar código malicioso
8.8 Aplicar buenas prácticas
9.0 Conclusión
1 WordPress Security by www.jjpeleato.com
31 de julio de 2016
Versión WordPress: 4.5.3
Página web oficial: https://www.wordpress.org/
1.0 Seguridad informática
Seguridad (del latín securitas) es definido como la cualidad de seguro.
Ausencia de riesgo o la confianza en algo o en alguien.
Sin embargo, el término puede tomar diversos sentidos según el área o campo
al que se hace referencia.
Seguridad de la información, conjunto de medidas preventivas y reactivas de
las organizaciones y de los sistemas tecnológicos que permiten resguardar y
proteger la información buscando mantener la confidencialidad, la
disponibilidad, integridad y autenticación (autentificación) de la misma.
El concepto de seguridad de la información no debe ser confundido con el de
seguridad informática, ya que este último solo se encarga de la seguridad en el
medio informático, pero la información puede encontrarse en diferentes medios
o formas, y no solo en medios informáticos.
Seguridad informática, más conocido cómo ciberseguridad o seguridad de
tecnologías de la información, es definido como el área de la informática que
se enfoca en la protección de la infraestructura computacional y su
almacenamiento (información), para garantizar su confidencialidad, integridad y
disponibilidad.
Para ello existen una serie de estándares, protocolos, métodos, reglas,
herramientas y leyes concebidas para minimizar los posibles riesgos a la
infraestructura o a la información.
La seguridad informática comprende software (bases de datos, metadatos,
archivos, etc.), hardware y todo lo que signifique un riesgo, y de esta forma
evitar que la información confidencial sea substraída, convirtiéndose, en
información privilegiada.
La seguridad informática es la disciplina que se ocupa de diseñar las normas,
procedimientos, métodos y técnicas destinados a conseguir un sistema de
información seguro y confiable.
El objetivo de la seguridad informática consiste en minimizar los riesgos en
una infraestructura informática.
2 WordPress Security by www.jjpeleato.com
31 de julio de 2016
Está concebida para proteger los activos informáticos, entre los que se
encuentran los siguientes:
 Infraestructura computacional: Parte tecnológica para el
almacenamiento y gestión de la información.
 Usuarios: Personas que utilizan la infraestructura tecnológica y
gestionan la información.
 Información: Principal activo. Utiliza y reside en la infraestructura
computacional y es utilizada por los usuarios.
Recomendación web: Oficina de Seguridad del Internauta
https://www.osi.es/
2.0 Amenazas
Existen varios tipos de amenazas, debido a que no solo son amenazas las que
surgen de la programación y el funcionamiento de un dispositivo de
almacenamiento, también hay otras circunstancias que deben ser tomadas en
cuenta e incluso “no informáticas”. Muchas son a menudo imprevisibles o
inevitables.
Las amenazas pueden ser causadas por:
 Usuarios: Factor humano debido a contraseñas poco robustas o sus
acciones causan problemas de seguridad debido a que tienen permisos
sobre dimensionados, no se les han restringido acciones innecesarias,
etc.
 Programas maliciosos: Programas dedicados a perjudicar o a hacer un
uso ilícito de los recursos del sistema. Estos programas pueden ser
virus, gusanos, troyanos, bombas lógicas, spyware, etc.
 Errores de programación: Errores de programación que pueden ser
usados como exploits por los crackers.
 Intrusos: Personas que consiguen acceder a los datos o programas a
los cuales no están autorizados
 Siniestro: Robo, incendio, inundación… una mala manipulación o una
mala intención derivan en la pérdida del material o de los archivos.
 Personal técnico interno: técnicos de sistemas, administradores de
bases de datos, técnicos de desarrollo, etc. Los motivos que se
encuentran entre los habituales son: disputas internas, problemas
laborales, despidos, fines lucrativos, espionaje, etc.
 Fallos electrónicos o lógicos de los sistemas informáticos en
general.
3 WordPress Security by www.jjpeleato.com
31 de julio de 2016
 Catástrofes naturales: Rayos, terremotos, inundaciones, etc.
Existen infinidad de modos de clasificar un ataque y cada ataque puede
recibir más de una clasificación.
Por ejemplo, un caso de phising puede llegar a robar la contraseña de un
usuario de una red social y con ella realizar una suplantación de la identidad
para un posterior acoso, o el robo de la contraseña puede usarse simplemente
para uso de editar su perfil. Sin dejar de ser delito en ambos casos, al menos
en países con legislaciones, como lo es España)
Las amenazas pueden categorizarse por tipos:
 Amenazas por el origen: Conectar a una red externa da la posibilidad
de que algún atacante puede entrar en ella y con ella poder hacer robo
de información o alterar el funcionamiento de la red. Sin embargo, el
hecho de que la red no esté conectada a un entorno externo, como
Internet, no garantiza la seguridad de la misma.
o Amenazas internas: Debido a usuarios o personal técnico,
conocen la red y saben cómo es su funcionamiento, ubicación de
la información, datos de interés, etc.
o Amenazas externas: Aquellas amenazas que se originan fuera
de la red. Al no tener información de la red, un atacante tiene que
realizar ciertos pasos para poder conectar y buscar la manera de
atacar. Este tipo de amenazas se intentan prevenir gracias al
administrador de la red, con sistemas de prevención de intrusos y
firewalls.
 Amenazas por el efecto: Amenaza que causa problemas a quien recibe
los ataques.
o Robo de información
o Destrucción de información
o Anulación del funcionamiento de los sistemas.
o Suplantación de identidad, publicidad de datos personales o
confidenciales, cambio de información, venta de datos
personales, etc.
o Robo de dinero, estafas, manipulación, etc.
 Amenazas por el medio utilizado: Clasificado por modus operandi del
atacante, el objetivo puede ser distinto para un mismo tipo de ataque.
o Virus informáticos
o Phising
o Ingeniería social
o Denegación de servicios
o Spoofing: de DNS, de IP, de DHCP, etc.
4 WordPress Security by www.jjpeleato.com
31 de julio de 2016
3.0 Crackers vs Hackers
El concepto de crackers y hackers no debe ser confundido, ya que su
comportamiento y ética es diferente.
Crackers (to crack): Término que hace referencia a las personas que
“rompen” algún sistema de seguridad. Los crackers pueden estar motivados
por una multitud de razones, incluyendo fines de lucro, protesta, o por el
desafío. Acciones desautorizadas contra sistemas de seguridad.
Hackers: Termino que hace referencia a todo individuo que se dedica a
programar de forma entusiasta, o sea un experto de cualquier tipo y que
considera que poner la información al alcance de todos constituye un bien
mayor. La motivación de estas personas es desarrollar software en su tiempo y
después distribuirlo de forma gratuita con la comunidad. También incluye a
aquellos que encuentran, depuran y arreglan errores en los sistemas
(vulnerabilidades).
Recomendación web: Chema Alonso (Hacker)
http://www.elladodelmal.com/
https://www.youtube.com/user/Chemai64
4.0 Malware
Malicius software, también llamado, badware, código maligno, software
malicioso o software malintencionado, es un tipo de software que tiene
como objetivo infiltrarse o dañar una infraestructura computacional o sistema
de información sin el consentimiento de su propietario.
El termino malware se utiliza por los profesionales de la informática para
referirse a una variedad de software hostil, intruso o molesto.
El software se considera malware en función de los efectos que provoque en
una infraestructura- el termino malware incluye virus, troyanos, rootkits,
scareware, spyware, adware intruso, crimware y otros software maliciosos.
Malware no es lo mismo que software defectuoso (bugs peligrosos), no
de forma intencionada.
5 WordPress Security by www.jjpeleato.com
31 de julio de 2016
4.1 Exploit
Explotar o aprovechar, fragmento de software, fragmento de datos o
secuencia de comandos y/o acciones, utilizada con el fin de aprovechar una
vulnerabilidad de seguridad de un sistema de información para conseguir un
comportamiento no deseado del mismo.
Ejemplos:
 Acceso de forma no autorizada
 Control de un sistema
 Consecución de privilegios no concedidos lícitamente
 Consecución de ataques de denegación de servicios
Curiosidad: Se considera exploit un ataque de ingeniera social, que consiste
en convencer o sonsacar a una víctima cierta información.
4.2 Virus
Un virus informático es un malware que tiene como objetivo el alterar el
funcionamiento normal del ordenador, sin el permiso o el conocimiento del
usuario.
Su nombre lo adapta de la similitud que tienen con los virus biológicos que
afectan a los humanos, donde los antibióticos en este caso serían los
programados de Antivirus.
Habitualmente, reemplazan archivos ejecutables por otros infectados con el
código de este. Los virus pueden destruir, de manera intencionada, los datos
almacenados, encriptación de archivos, etc. o más inofensivos que solo
producen ralentizaciones o molestias menores.
El funcionamiento de un virus informático: Se ejecuta un programa que está
infectado. El código del virus queda alojado en memoria RAM, incluso cuando
el software ejecutado ha terminado. El virus entonces toma el control de los
servicios básicos del sistema operativo, infectando, de manera posterior,
archivos ejecutables que cuando son llamados para su ejecución se añade el
código del virus al programa y se graba en disco.
Curiosidad: El primer virus de la historia atacó a un equipo IBM Serie 360.
Fue llamado Creeper¸ creado en 1972. Este software creaba periódicamente
en pantalla el mensaje “I‟m a creeper… catch me if you can!” (Soy una
enredadera… atrápame si puedes!). Para eliminar este problema se creó el
primer programa antivirus denominado “Reaper” (Segador).
6 WordPress Security by www.jjpeleato.com
31 de julio de 2016
4.3 IWorm
Gusano informático consiste en un malware que tiene la propiedad de
duplicarse a sí mismo.
Los gusanos utilizan las partes automáticas de un sistema operativo que
generalmente son invisibles al usuario.
Los gusanos se propagan de ordenador en ordenador, pero a diferencia de un
virus, tiene la capacidad de propagarse sin la ayuda del factor humano. Lo
más peligroso de los gusanos es su capacidad para replicarse en un sistema
informático, por lo que un gusano en un ordenador podría enviar cientos o
miles de copias de sí mismo, creando un efecto a gran escala.
Otra diferencia con el virus informático es que un gusano no necesita alterar los
archivos de programas, sino que se encuentra en memoria y se duplica a sí
mismo. Normalmente causan problemas en la red consumiendo el ancho de
banda.
Curiosidad: El primer gusano informático de la historia data de 1988, cuando
el gusano Morris infectó una gran parte de los servidores y se dieron cuenta
que los gusanos informáticos se reproducen asexualmente. Su creador, Robert
Tappan Morris, fue sentenciado a tres años en prisión y obtuvo libertad
condicional, 400 horas de servicios a la comunidad y una multa de 10.050
dólares, gracias a su familia que pagó la fianza. Fue este hecho el que alertó a
las principales empresas involucradas en la seguridad de tecnologías tales
como Nirdesteam que fue uno de los primeros en desarrollar el primer
cortafuegos (firewall).
4.4 Trojan Horse
Troyano o caballo de Troya, es un software malicioso que se presenta al
usuario como un programa aparentemente legitimo e inofensivo, pero que, al
ejecutarlo, le brinda al atacante acceso remoto al equipo infectado con todos
sus privilegios.
El término Troyano proviene de la historia del caballo de Troya mencionado en
la Odisea de Homero.
Los troyanos pueden realizar diferentes tareas, pero, en la mayoría de los
casos, crean puertas traseras que permite la administración remota a un
usuario no autorizado.
Un troyano no es un virus informático. La diferencia consiste en su finalidad.
Para que un programa sea un troyano solo tiene que acceder y controlar la
maquina anfitriona sin ser advertido, al contrario que un virus, que es un
7 WordPress Security by www.jjpeleato.com
31 de julio de 2016
huésped destructivo, el troyano normalmente no provoca daño, ya que no es
ese su objetivo.
Curiosidad: En sus origines fueron utilizados como arma de sabotaje por los
servicios de inteligencia como la CIA, cuyo caso más emblemático fue el
sabotaje al gasoducto Siberiano en 1982.
4.5 Backdoor
Puerta trasera es una secuencia especial dentro del código de programación,
mediante la cual se pueden evitar los sistemas de seguridad del algoritmo
(autentificación) para acceder al sistema.
Destacar que un backdoor no tienen por qué ser utilizados para fines
malintencionados o espionaje y no siempre son un error, ya que pueden haber
sido diseñadas con la intención de tener una entrada secreta. Como por
ejemplo, para borrar toda la información confidencial.
4.6 Rootkits
Un rootkit consiste en un acceso de privilegio continuo a un ordenador pero
que mantiene su presencia oculta al control de los administradores al
corromper el funcionamiento normal del sistema operativo o de otras
aplicaciones.
El término proviene de una concatenación de la palabra inglesa root, que
significa “raíz” (nombre tradicional de la cuenta privilegiada en los sistemas
operativos Unix) y de la palabra inglesa kit, que significa “conjunto de
herramientas”.
Se esconde a sí mismo y a otros programas, procesos, archivos, directorios,
claves de registro, y puertos que permiten al intruso mantener el acceso a una
amplia variedad de sistemas operativos como pueden ser GNU/Linux, Solaris o
Microsoft Windows para remotamente realizar acciones o extraer información
sensible.
El funcionamiento consiste en que un atacante instala un rootkit en un
ordenador después de primero haber obtenido un acceso al nivel raíz, ya sea
por una vulnerabilidad conocida o por haber obtenido una contraseña (por
crackeo de la encriptación o por ingeniería social).
Una vez que el rootkit ha sido instalado, permite que el atacante disfrace la
siguiente intrusión y mantenga el acceso privilegiado al ordenador por medio de
evadir a los mecanismos normales de autenticación y autorización.
8 WordPress Security by www.jjpeleato.com
31 de julio de 2016
4.7 Keyloggers
Registrador de teclas, derivado del inglés key (tecla) y logger (registrador),
es un tipo de software o dispositivo hardware especifico que se encarga de
registrar las pulsaciones que se realizan en el teclado, para posteriormente
almacenar la información en un archivo o ser enviadas a través de Internet.
Suele utilizarse como malware del tipo daemon (demonio) o servicio,
permitiendo que otros usuarios tengan acceso a contraseñas importantes,
como los números de acceso a banca o información privada.
Este tipo de software es utilizado por troyanos, virus o gusanos informáticos.
4.8 Adware
“Advertising” (Publicidad) y “Ware” (Programa). Sistemas de publicidad
basados en programación computacional. Un programa de clase adware es
cualquier programa que automáticamente muestra u ofrece publicidad web ya
sea incrustada en una página web mediante gráficos, carteles, ventanas
flotantes o durante la instalación de algún programa al usuario con el fin de
generar lucro a sus autores.
Cuando se fuerza al usuario a usar un determinado buscador web para
monitorizar la actividad del usuario. O cuando se insertan de forma automática
en la navegación del usuario con cualquiera de los navegadores publicidad en
las diferentes páginas por las cual navega.
4.9 Spyware
Programa espía que consiste en un malware que recopila información de un
ordenador y después transmite esta información a una entidad externa sin el
conocimiento del propietario del ordenador.
El spyware se auto instala en el sistema afectado de forma que se ejecuta cada
vez que se pone en marcha el ordenador (consumiendo CPU y RAM,
reduciendo la estabilidad del ordenador) y funciona todo el tiempo, controlando
el uso que se hace de Internet y mostrando anuncios relacionados. Funciona
como un parásito.
9 WordPress Security by www.jjpeleato.com
31 de julio de 2016
4.10 Crimeware
Tipo de software diseñado para la ejecución de delitos financieros en entornos
en línea.
Diferenciarse de Adware y Spyware.
Diseñado mediante técnicas de ingeniera social para generar fraude en línea,
con el fin de conseguir el robo de identidades para acceder a los datos de
usuario de las cuentas de compañías de servicios financieros.
4.11 SQL Injection
Inyección SQL consiste en un método de infiltración de código que se vale de
una vulnerabilidad informática presente en una aplicación en el nivel de
validación de entradas para realizar operaciones sobre una base de datos.
El origen de la vulnerabilidad radica en la incorrecta validación o filtrado de
variables utilizadas en un programa que trabaja con código SQL.
Es una de las vulnerabilidades más generales que existen y puede ocurrir en
cualquier lenguaje de programación o script que este embebido dentro de otro.
SELECT * FROM user WHERE name = '" + nombreUsuario + "';
SELECT * FROM user WHERE name = 'jjpeleato';
SELECT * FROM user WHERE name = 'jjpeleato';DROP TABLE user;SELECT
* FROM record WHERE name LIKE '%';
4.12 XSS (Cross-site scripting)
Tipo de inseguridad informática o agujero de seguridad típico en las
aplicaciones Web. Permite a una tercera persona inyectar en páginas web
visitadas por el usuario código JavaScript o en otro lenguaje de script.
Este tipo de vulnerabilidad se conoce en español con el nombre de
Secuencias de órdenes en sitios cruzados.
XSS es un ataque que puede ser utilizado para robar información delicada,
robar sesiones de usuario, etc.
El problema deriva al no validar correctamente los datos de entrada que son
usados en las aplicaciones web, o no depurar la salida correctamente para su
correcta visualización como página web.
10 WordPress Security by www.jjpeleato.com
31 de julio de 2016
 XSS Directo (Persistente): Consiste en insertar código HTML peligroso
en sitios que lo permiten, incluyendo etiquetas como <script> o <iframe>
 XSS Indirecto (Reflejo): Consiste en modificar valores que la aplicación
web utiliza para pasar variables entre dos páginas, sin usar sesiones, y
se transfiere la información como en una etiqueta oculta, en una cadena
en la URL del navegador, en una cookie o cualquier otra cabecera
HTTP.
http://www.example.com/home.php?frame=menu.php
javascript:while(1)alert("Mensaje infinito");
4.13 DdoS (Distributed Denial Of
Service)
DoS (Denial of Service) o DDoS (Distributed Denial of Service (Ataques de
denegación de servicios).
Consiste en un ataque a un sistema (ordenadores, servidores o red) que causa
que un servicio o recurso sea inaccesible a los usuarios.
Normalmente, consiste en ataques para provocar la caída de servicios en
servidores por el consumo de ancho de banda o por sobrecargar los recursos
computacionales del sistema de la víctima.
El ataque hace que el servidor se sobrecargue y no pueda seguir prestando
servicios (denegación) ya que no es capaz de abastecer a la cantidad de
solicitudes.
La ampliación de los ataques DoS son los llamados ataques distribuidos de
denegación de servicios (DDoS) el cual se lleva a cabo generando un gran
flujo de información desde varios puntos de conexión. La forma más común de
realizar es a través de un botnet siendo esta técnica el ciberataque más usado
y eficaz por su sencillez.
Curiosidad: Anonymous utiliza mucho este recurso para realizar sus ataques
contra sus objetivos.
11 WordPress Security by www.jjpeleato.com
31 de julio de 2016
4.14 Botnet (Zombi)
Termino que hace referencia a un conjunto o red de robots informáticos o bots,
que se ejecutan de manera autónoma y automática. El atacante puede
controlar todos los ordenadores/servidores infectados de forma remota.
Usos habituales:
 Ataques de denegación de servicios
 Envío de SPAM
 Minería de Bitcoins (criptomoneda)
 Robo de Bitcoins
4.15 Logic Bomb
Bomba lógica es una parte de código insertada intencionalmente en un
programa informático que permanece oculto hasta cumplirse una o más
condiciones preprogramadas, en ese momento se ejecuta una acción
maliciosa.
4.16 Pharming
Explotación de una vulnerabilidad en el software de los servidores DNS
(Domain Name System) o en el de los equipos propios de los usuarios, que
permite a un atacante redirigir un nombre de dominio a otra dominio
distinto.
La palabra pharming tiene relación con el termino phising, el objetivo es
obtener información confidencial de los usuarios, desde números de
tarjetas de crédito hasta contraseñas.
4.17 Phising
Suplantación de identidad, termino informático que denomina un modelo de
abuso informático y que se comete mediante el uso de un tipo de ingeniería
social, caracterizado por intentar adquirir información confidencial (contraseñas,
número de tarjetas de crédito, información bancaria, etc.) de forma fraudulenta.
El cibercriminal, phisher, se hace pasar por una persona o empresa de
confianza en una aparente comunicación oficial electrónica, por lo común un
correo electrónico o algún sistema de mensajería instantánea o con llamadas
telefónicas.
El método más conocido es suplantar un correo electrónico y redirigir mediante
pharming a la víctima para reinicie la contraseña en una página anzuelo.
12 WordPress Security by www.jjpeleato.com
31 de julio de 2016
4.18 Spoofing
Termino de seguridad de redes que hace referencia al uso de técnicas a través
de las cuales un atacante se hace pasar por una entidad distinta a través de la
falsificación de los datos en una comunicación.
Modificación y falsificación de los paquetes enviados en una comunicación para
suplantar la identidad y descifrar información confidencial como claves privadas
para autentificaciones contra servicios o servidores.
4.19 Clickjacking
Clickjacking o secuestro de clic, es una técnica maliciosa para engañar a
usuarios de internet con el fin de revelar información confidencial o tomar el
control de su ordenador cuando hacen clic en páginas web aparentemente
inocentes.
Un ataque clickjacking puede iniciarse a traves de código embebido que se
ejecuta sin conocimiento del usuario, por ejemplo, a través de un botón para
realizar otra función.
5.0 WordPress
WordPress, es un sistema de gestión de contenidos que ha alcanzado una
gran relevancia con una cuota del 26.4% de uso a nivel mundial, 1 de cada 4
páginas web esta creada en WordPress.
Recurso web: W2Techs https://goo.gl/OvTxqJ
Dada la importancia de ser una de las plataformas más utilizadas, a diario se
convierte en objetivo de múltiples ciberataques.
La mayoría de los ataques, tienen como objetivo crear un flujo de navegación
de forma oculta hacia páginas de terceros, para mejorar su posicionamiento en
los buscadores.
El problema más común que surge en las páginas web son debidos a la
desactualización del núcleo de WordPress, de alguno de los plugins instalados
o de las desactualización de los themes.
13 WordPress Security by www.jjpeleato.com
31 de julio de 2016
5.1 Estructura base de datos
Tablas WordPress 4.5.3
wp_commentmeta
Meta datos que incorporan cada
comentario almacenado en
wp_comments.
wp_comments Almacenamiento de comentarios.
wp_links
Información relativa en la
funcionalidad de enlaces de
WordPress.
Obsoleta actualmente.
wp_options
MUY IMPORTANTE.
Almacenamiento de todos los ajustes
de configuración de WordPress y
plugins gestionado a través del panel
de administración.
wp_postmeta
Meta datos que incorporan cada posts
almacenado en wp_posts.
Almacenamiento de ciertos plugins.
wp_posts
MUY IMPORTANTE.
Almacenamiento de entradas, páginas
y elementos de menú.
wp_termmeta
Meta datos que incorporan cada
categoría/etiqueta almacenado en
wp_terms.
wp_terms
Almacenamiento de categorías, tanto
de las entradas como de enlaces y las
etiquetas de las entradas.
wp_term_relationships
Almacenamiento de la asociación de
las entradas y enlaces que hacen
referencia a categorías y/o etiquetas.
wp_term_taxonomy
Describe la taxonomía (categoría,
enlace o etiqueta) de cada línea de la
tabla wp_terms.
wp_usermeta
Almacenamiento de la información
denominada data que cada usuario
contiene.
wp_users Lista de usuarios.
14 WordPress Security by www.jjpeleato.com
31 de julio de 2016
5.2 Estructura directorio
Estructura directorios WordPress 4.5.3
La estructura de archivos y carpetas de una instalación WordPress es muy
sencilla. Consta de tres carpetas principales: wp-admin, wp-content y wp-
includes y el conjunto de archivos de la carpeta raíz y subdirectorios, de los
cuales destacamos los ficheros wp-config.php y .htaccess situados en el
directorio base.
La carpeta más importante del proyecto y donde se debe aplicar un correcto
protocolo de copias de seguridad es wp-content, es la única carpeta que no se
puede borrar, pues contiene todos los datos del sitio web.
15 WordPress Security by www.jjpeleato.com
31 de julio de 2016
 wp-admin: Directorio donde se almacena los ficheros de backend del
core de WordPress.
 wp-content: Directorio donde se almacenan los contenidos específicos
de nuestro proyecto.
o plugins: Directorio donde se almacenan los plugins de terceros.
o themes: Directorio donde se almacenan los themes que hay en
nuestra aplicación. Puedes haber un número indeterminado de
themes pero solo uno de ellos estará activo. Existe la metodología
de trabajo basada en una estructura de theme padre y theme hijo
(usando el hijo como theme activo).
o uploads: Directorio principal donde se almacenan todos los
ficheros que se suban a la aplicación. Es el único directorio que
va a tener permisos de escritura.
 wp-includes: Directorio principal del core de WordPress.
16 WordPress Security by www.jjpeleato.com
31 de julio de 2016
 wp-config.php: Fichero de configuración de WordPress, donde se
almacenan las credenciales para conectar contra la base de datos,
sistema de autentificación Uniques Keys y Salts, pefijo de las tablas de
las base de datos, WordPress Debug, etc. Recomendado tener permisos
de solo escritura 444.
 .htaccess: Fichero de configuración de servidor, que genera WordPress
de forma automática con la instalación de la aplicación. Tiene como
función mejorar la seguridad de WordPress. Ciertos plugins escriben en
este fichero para aplicar seguridad u optimización al sitio web.
Recomendado tener permisos de solo escritura 444.
6.0 Buenas prácticas
Siempre existe un riesgo. Nada garantiza que sea 100% seguro. Y a lo que te
preguntaras “Si nunca voy a estar seguro ¿entonces para qué hacer algo?”. Lo
que se trata con las buenas prácticas es minimizar el riesgo, blindar WordPress
Lo sencillo cuando existe un hack en nuestro proyecto WordPress es pensar
que el culpable es él y nosotros por haber usado este tipo de tecnología, pero
es un gran error, el núcleo de WordPress es uno de los más seguros que
existen dentro del gran abanico de CMS que existen.
La seguridad depende en cómo se ha instalado y configurado.
Muchas de las vulnerabilidades tienen poco que ver con la seguridad en
WordPress, pero si con tu servidor, contraseñas pobres, plugins y temas de
dudosa procedencia, etc.
La seguridad no sólo depende de WordPress, sino del que lo usa.
6.1Hosting confiable
Uno de los pasos más importantes es elegir un buen proveedor de alojamiento
web.
Es recomendable buscar una solución que encaje dentro de nuestra horquilla
de presupuesto, pero sin olvidar contratar un servicio con buenas políticas de
seguridad y copias de respaldo, permisos de archivos y carpetas,
encapsulamiento de hosting, monitorización en busca de anomalías, etc. y
dejando totalmente de lado proveedores baratos que suelen significar
reducción de costes en las áreas citadas anteriormente.
17 WordPress Security by www.jjpeleato.com
31 de julio de 2016
6.2 Copias de seguridad
Crear una correcta política de backups.
No confiar únicamente en las copias de respaldo que nos garantizan los
proveedores de hosting.
Debemos crear un procedimiento de forma manual o a través de plugins en
crear un sistema de backups semanal.
Es muy importante tener una copia de seguridad del código y base de datos
estables y no corrompidos, de esta forma prevenir casos de hacking y
minimizar la perdida de información con la restauración de una versión anterior.
Plugins recomendados:
 All-in-one WP Migration
 WP Migrate DB
 BackWPUP
6.3 Usuario bases de datos
Utilización de un único usuario por base de datos y sitio. Tal usuario solo
puede tener permisos de interactuar con la base de datos que trabajamos en
nuestro proyecto WordPress y no tener acceso a ninguna más.
Esta metodología de trabajo es obligatoria en los casos en que dispongamos
de más de un proyecto en un mismo hosting.
Práctica obligatoria: Uso de contraseñas robustas.
6.4 Instalación WordPress subdirectorio
Es un uso recomendado pero muy poco frecuente en las instalaciones
WordPress.
WordPress permite tener la instalación en un subdirectorio y a la vez
tenerlo funcionando en la raíz de la web.
Con este tipo de acciones para conectar a wp-admin el sistema interno de
WordPress nos re direccionara a /nombre_subdirectorio/wp-admin de esta
forma, los ataques de fuerza bruta que aplican patrones según el esqueleto de
directorios serán minimizados.
18 WordPress Security by www.jjpeleato.com
31 de julio de 2016
6.5 Eliminar objetos
Es muy peligroso tener instalados plugins y temas inactivos. Cada tema o
plugin puede llegar a ser una nueva puerta de acceso. Cuantos más haya, mas
tendremos que supervisar. Y por lo tanto, aumenta la posibilidad de
vulnerabilidades.
Eliminar todos los plugins innecesarios.
Eliminar todos los plugins no activos.
Eliminar todos los temas no activos.
Eliminar fichero readme.html en la carpeta raíz.
Eliminar etiquetas generadas por WordPress en la etiqueta <head>
agregando las siguientes líneas de códigos al fichero functions.php del
tema activo.
remove_action('wp_head', 'rsd_link');
remove_action('wp_head', 'wp_generator');
remove_action('wp_head', 'feed_links', 2);
remove_action('wp_head', 'index_rel_link');
remove_action('wp_head', 'wlwmanifest_link');
remove_action('wp_head', 'feed_links_extra', 3);
remove_action('wp_head', 'start_post_rel_link', 10, 0);
remove_action('wp_head', 'parent_post_rel_link', 10, 0);
remove_action('wp_head', 'adjacent_posts_rel_link', 10, 0);
6.6 Ocultar directorio plugins
Es recomendado ocultar los directorios de los plugins, dado que a través de la
ruta http://www.example.com/wp-content/plugin/nombre_plugin podemos
ver la estructura del esqueleto de estos mismos.
Para evitar este problema solo es necesario crear/copiar un fichero index.php
tal y como tenemos en la carpeta raíz de plugins o themes.
6.7 wp-config.php
Recomendado tener permisos de solo escritura 444.
19 WordPress Security by www.jjpeleato.com
31 de julio de 2016
6.7.1 Prefijo tablas WordPress
Práctica obligatoria. Modificar prefijo “wp_” en el proceso de instalación para
la creación de tablas en la base de datos.
Utilizar un prefijo de 6 caracteres (letras y números) de forma aleatoria.
Ejemplo: “a1x40x_”
Además, como recomendación, utilizar nombre de usuario y bases de datos
concatenados con un prefijo creado con caracteres de forma aleatoria.
6.7.2 Fijar valores AUTH/SALT
Modificar los valores AUTH/SALT que se encuentran dentro del fichero de la
carpeta raiz wp-config.php
20 WordPress Security by www.jjpeleato.com
31 de julio de 2016
Tal y como nos indica WordPress generaremos nuestros propios valores y
sustituiremos por los valores que nos facilita el recurso web:
http://api.wordpress.org/secret-key/1.1/salt
MUY IMPORTANTE: Modificar siempre valores AUTH/SALT si existe alguna
vulnerabilidad en nuestra página web y ha sido hack.
6.8 .htaccess
Fichero de configuración de servidor, que genera WordPress de forma
automática con la instalación de la aplicación. Tiene como función mejorar la
seguridad de WordPress. Ciertos plugins escriben en este fichero para aplicar
seguridad u optimización al sitio web.
Recomendado tener permisos de solo escritura 444.
# Proteger fichero wp-config.php
<Files wp-config.php>
order allow,deny
deny from all
</Files>
#Proteger fichero .htaccess
<files .htaccess>
order allow,deny
deny from all
</files>
6.9 Permisos directorios y archivos
El código de WordPress está compuesto por archivos y directorios que se
alojan en un servidor web, normalmente con sistema operativo Linux.
Es muy importante definir los permisos de escritura, lectura y ejecución en el
sitio web.
Lo que nos recomienda WordPress:
 Archivos – Permisos 644
 Directorios – Permisos 755
Recomendación: Existen dos ficheros considerados como críticos. wp-
config.php y .htaccess a los cuales hay que aplicar un nivel de permisos más
restrictivo y conocido como permisos solo lectura, permisos 444.
21 WordPress Security by www.jjpeleato.com
31 de julio de 2016
6.10 Actualizaciones
Los crackers atacan sitios con versiones antiguas, no actualizadas, dados que
suelen ser sitios vulnerables al no incorporar las suficientes protecciones a
tipos de ataques conocidos.
Un cracker puede conocer la versión de WordPress que se está utilizando y
realizar los ataques contra los exploits conocidos para dicha versión.
Una versión obsoleta, es síntoma de un fallo de seguridad o algún otro bug,
además, no solo WordPress, sino también los plugins y los temas tienen que
actualizarse, ya que también pueden tener algún fallo de seguridad.
Si no estás utilizando un plugin y lo tienes desactivado, eso no significa que
estés libre de amenaza.
Recomendación “casi” obligatoria el tener actualizado el núcleo de
WordPress, plugins y themes a la última versión.
Recursos web: https://wpvulndb.com/
http://www.wpdoctor.es/
Curiosidad: https://youtu.be/59DOLUnoGbQ
22 WordPress Security by www.jjpeleato.com
31 de julio de 2016
6.11 Plugins de seguridad
Practica obligatoria. Instalar cualquiera de los siguientes plugins de Seguridad
WordPress, que proporcionan una capa extra de protección a tu web.
Muchas de las medidas de protección que podemos aplicar a nuestra
instalación WordPress vienen incluidas en plugins especializados.
La mayoría de ellos contienen ajustes para evitar ataques de fuerza bruta,
inyecciones de código y modificaciones en archivos de sistema, incluyendo
sistemas de aviso para que estés informado de cualquier posible ataque.
 Wordfence Security
o Plugin de seguridad que incluye varias características que
contribuyen a asegurar tu web, dispone de escáner de archivos,
firewall, bloqueo de redes o IP, monitorización de archivos,
escáner de malware, auditoria de contraseñas, protección contra
ataques de fuerza bruta, etc.
 iThemes Security
o Plugin de seguridad que incluye una serie de reglas divididas en
cuatro áreas: esconder las vulnerabilidades de la versión de
WordPress actual, protección y bloqueo contra usuarios
maliciosos, detección y monitorización web al encontrar cambios
en los archivos y base de datos y por último, recuperación con
una fuerte política de backups programable.
 All in one WP Security & Firewall
o Plugin de seguridad que reduce el riesgo mediante la
comprobación de vulnerabilidades, además a través de un
sistema de puntuación aplica un sistema de buenas prácticas,
entre ellas ocultar el famoso /wp-admin para conectar a la
aplicación web, etc.
 Sucuri Security
o Auditor de seguridad, monitor de integridad, escáner de malware
remoto, fortificación de seguridad, etc
6.12 Usuarios
NO dar permisos sobredimensionados a usuarios que solo desempeñan papel
de editor.
Sistema de usuarios.
El sistema de usuarios de WordPress, es un sistema complejo en
programación pero sencillo en su gestión.
23 WordPress Security by www.jjpeleato.com
31 de julio de 2016
Para su gestión completa lo dividimos en dos áreas:
Panel de administración:
 Nombre de usuario: No editable. Nombre de usuario para hacer login
en la aplicación. Corresponde a user_login en la tabla wp_users.
 Alias: Nick del usuario. Corresponde a un meta dato almacenado en la
tabla wp_usermeta compuesto por meta_key con el valor nickname
como valor llave y meta_value con el valor introducido por el usuario.
 Mostrar este nombre públicamente: Corresponde a display_name en
la tabla wp_users.
Base de datos tabla wp_users:
 user_login: Editable desde base de datos. Usuario login. Corresponde
al Nombre de usuario
 user_nicename: Editable desde base de datos. Nombre utilizado en la
URL para visualizar todos los post de un autor.
o Obligatorio ser diferente a user_login.
o No se visualiza desde el panel de administración.
 display_name: Nombre utilizado para mostrar públicamente en la
página web. Corresponde a mostrar este nombre públicamente.
Eliminar/Editar usuario admin o administrador.
Es una práctica no recomendada el uso de un nombre común como acceso a la
aplicación, nombres como admin, Admin, administrador, root, etc son nombres
que nunca se han de utilizar, ya que son los primeros que comprobara un
cracker mediante ataques de fuerza bruta.
Editar user_login y user_nicename con nombres diferentes
Mediante técnicas de escáner contra un proyecto WordPress si un usuario
modifica el Alias o Mostrar este nombre públicamente con un nombre
diferente al usuario de login, no evitamos que puedan encontrar nuestro
nombre de acceso, ya que user_nicename mantendrá el mismo nombre.
Una correcta práctica es cambiar el usuario de login concatenando un prefijo de
caracteres aleatorios y que nunca sea igual a user_nicename
Ejemplo:
 user_login c2Ia_jjpeleato
 user_nicename: jjpeleato
 Alias (Zona administración): jjpeleato
 display_name: jjpeleato
24 WordPress Security by www.jjpeleato.com
31 de julio de 2016
Este problema radica en la creación de usuarios en WordPress, ya que utiliza
el nombre de login para almacenar en los campos user_nicename y
display_name (si no existe un alias desde el formulario de alta de usuarios).
Permitir registro de usuarios
Si se permiten los registros de usuario se debe proteger contra los usuarios
que se registrar masivamente para intentar acceder a su configuración, añadir
comentarios spam o incluso inyectar malware.
Para detectar y eliminar la amenaza de sploggers una correcta práctica es la
instalación del plugin.
WangGuard: https://wordpress.org/plugins/wangguard/
6.13 Contraseñas
Brute force o ataque de fuerza bruta es un método utilizado para obtener
contraseñas. Consiste en ir probando diferentes combinaciones comunes hasta
dar con la correcta. Si utilizas contraseñas poco seguras como “123456”,
“admin”, etc o contraseñas con relación a tu vida, con ataques de fuerza bruta e
ingeniería social las probabilidades de que consigan obtener tu contraseña son
altas.
Utiliza contraseñas de 9 caracteres como mínimo, recomendable 12. Nunca
utilices la misma contraseña en más de una web y utiliza combinaciones de
números, letras minúsculas, mayúsculas y caracteres especiales. Además
nunca utilices contraseñas que tengan relación con tu vida.
Recursos web: http://www.clavesegura.org/
https://howsecureismypassword.net/
Recursos apps: https://lastpass.com/
http://keepass.info/
Curiosidad: https://youtu.be/Q17yhbmmux8
6.14 Login
Desactivar errores
Anular los errores de la página de Login y mostrar cualquier mensaje
informativo genérico, de esta forma evitamos que WordPress de información
importante, como que el ERROR: Nombre de usuario inválido o ERROR: La
contraseña que introdujo para el usuario “x” no sea correcta. Agregando la
siguientes líneas de código al fichero functions.php del tema activo.
25 WordPress Security by www.jjpeleato.com
31 de julio de 2016
function login_errors_message() {
return 'Error: Nombre de usuario o contraseña incorrectos';
}
add_filter('login_errors', 'login_errors_message');
Limitar accesos
Mediante intentos masivos de acceso a través de la página de Login se
realizan la mayoría de ataques contra sitios WordPress, es imprescindible
proteger el acceso y aplicar medidas de seguridad.
Inhabilitar el registro de usuarios, añadir un sistema de comprobación humano
como reCaptcha o WP Captcha e instalar un plugin para evitar y bloquear
acceso masivos como Limit login attempts.
Cambiar URL login
Por defecto, WordPress dispone de un sistema de rutas de login para acceder
al panel de administración http://example.com/wp-admin y accedes a través de
http://example.com/wp-login.php
Las vulnerabilidades de plugins o themes obsoletos pueden ser backdoors por
las cuales un cracker realizar sus ataques contra el sistema de login. Como
correcta práctica es la instalación del plugin:
Rename wp-login.php: https://wordpress.org/plugins/rename-wp-login/
6.15 Headers
Agregar cabeceras de seguridad añadiendo el siguiente código en el fichero
functions.php de /wp-content/themes/theme_name_active.
add_action( 'send_headers', 'add_header_security' );
function add_header_security() {
header( 'X-Content-Type-Options: nosniff' );
header( 'X-Frame-Options: SAMEORIGIN' );
header( 'X-XSS-Protection: 1;mode=block' );
}
header( 'X-Content-Type-Options: nosniff' ) - Tiene como función para
aquellos navegadores que soportan esta condición, no cargar las hojas de
estilos y scripts cuyo Myme-type no sea el adecuado.
26 WordPress Security by www.jjpeleato.com
31 de julio de 2016
header( 'X-Frame-Options: SAMEORIGIN' ) – Tienen como función prevenir
que la página pueda ser abierta en un frame o ifreame. De esta forma se
pueden evitar ataques clickjacking sobre tu web.
header( 'X-XSS-Protection: 1;mode=block' ) - Activar para aquellos
navegadores que disponen de la funcionalidad el filtro XSS. Capa de seguridad
adicional que bloquea ataques XSS. Internet Explorer lo implementa desde su
versión 8.
6.16 SPAM
Una de las tareas habituales de cualquier administrador de un gestor de
contenidos es controlar el SPAM en los comentarios. Evitar contenido
innecesario, enlaces no deseados y posible inyección de código.
Para evitar este tipo de prácticas se recomienda el uso de los siguientes
plugins:
 WP Captcha
 WP-SpamShield Anti-Spam
 Akismet
6.17 PingBack
Existe una vulnerabilidad denominada vulnerabilidad PingBack que tiene
como función habilitar el protocolo XML-RPC que nos permite que WordPress
conecte con la aplicación WordPress para iOS o Android, así como editores
offline y algunos sistemas de contenidos.
El aplicar una solución, deja inactivas funciones importantes de WordPress
como la gestión remota, el uso de aplicaciones móviles o incluso el sistema de
pingbacks y trackbacks.
Si un proyecto tiene definido el no uso de este tipo de aplicaciones debe aplicar
las siguientes recomendaciones.
Agregar en el fichero .htaccess
# Proteger XMLRPC
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>
#END Proteger XMLRPC
27 WordPress Security by www.jjpeleato.com
31 de julio de 2016
Eliminar el archivo xml-rpc.php de la carpeta raíz o renombrar a xml-
rpc.php.disabled.
6.18 HTML
Prevenir y desactivar el código HTML en los comentarios. No borra el código,
sino que lo procesa para que no se ejecute.
add_filter('pre_comment_content', 'wp_specialchars');
6.19 Google Search Console
(Webmaster Tools)
Dar de alta tu sitio en la aplicación Google Search Console para que Google
te informe de:
 Inyecciones de código
 Avisos de problemas de usabilidad
 Problemas de velocidad
 Enlaces maliciosos
 Paginas no encontradas
7.0 Instalación
7.1 WordPress desde 0.
1) Descargar última versión WordPress desde la página oficial y descomprimir
ficheros en carpeta raíz: https://wordpress.org/ https://es.wordpress.org/
2) Creación de BBDD a utilizar.
CREATE DATABASE dbname CHARACTER SET utf8 COLLATE
utf8_general_ci;
3) Modificación fichero configuración. En la carpeta raíz crear una copia y
renombrar el fichero wp-config-sample.php a wp-config.php. Y modificamos
las siguientes líneas de código.
Añadir nombre de la base de datos:
define('DB_NAME', 'dbname ');
28 WordPress Security by www.jjpeleato.com
31 de julio de 2016
Añadir usuario base de datos:
define('DB_USER', 'dbuser');
Añadir contraseña usuario base de datos:
define('DB_PASSWORD', 'dbpassword');
Añadir hostname proyecto web. Por defecto “localhost”
define('DB_HOST', 'localhost');
Añadir formato de codificación de tablas. Por defecto “utf8”
define('DB_CHARSET', 'utf8');
Añadir asociación de caracteres o letras asociadas en formato no unicode. Por
defecto se encuentra vacio.
define('DB_COLLATE', 'utf8_general_ci');
4) Modificación seguridad. Visitamos la página web y sustituimos el código
PHP en el fichero de configuración wp-config.php.
https://api.wordpress.org/secret-key/1.1/salt/
5) Para desarrolladores. Activamos el modo debug de WordPress.
define('WP_DEBUG', true);
6) Visitar la página web desde nuestro navegador y continuar los pasos que
nos indica la interfaz para la correcta instalación. Nos solicitara una serie de
información necesaria. Todos los datos pueden ser modificados a posterior
desde el panel de administración o desde la base de datos. Trabajar con
contraseñas robustas.
 http://localhost/wordpress
 Título del sitio: wp-example
 Nombre de usuario: example
 Contraseña: 1234 (Se almacena en formato encriptación MD5)
 Correo electrónico: example@example.com
 Privacidad.
Una vez rellenado toda la información pulsamos en Instalar WordPress.
7) Se recomienda borrar los archivos install.php y upgrade.php de la carpeta
wp-admin tras la instalación y por seguridad.
8) Eliminar la línea del archivo readme.html en donde aparece la versión de
WordPress.
29 WordPress Security by www.jjpeleato.com
31 de julio de 2016
9) Modificar instalación WordPress a subdirectorio con un nombre de 6
caracteres aleatorios compuesto por números, letras minúsculas y sin
caracteres especiales.
1) Entramos a la sección Ajustes > Generales desde el panel de
administración.
a. Dirección de WordPress (URL): Introducir dominio más nombre
de carpeta separado por “/”
http://www.example.com/a3x91l
b. Dirección del sitio (URL): Introducir dirección de la página web
(nombre dominio) sin incluir el nombre de la carpeta.
http://www.example.com
Guardamos cambios.
Nota: No intentes visitar la página web, nos mostrara un mensaje de
error.
2) Copiar (no cortar/mover) fichero index.php desde el directorio donde
está instalado WordPress al directorio raíz de nuestra web, normalmente
carpeta public_html.
3) Editar código fichero index.php
a. Antes: require(„./wp-blog-header.php‟);
b. Después: require(„./a3x91l/wp-blog-header.php‟);
10) Entramos a la sección Ajustes > Enlaces permanentes y seleccionamos
Estructura personalizada agregamos la siguiente sintaxis:
/%post_id%/%postname%/
Y guardamos cambios para que WordPress genere toda la nueva estructura de
enlaces permanentes.
11) Aplicar buenas prácticas pos instalación.
 Instalación plugin seguridad
 Política de copias de seguridad
 Modificar usuario administrador base de datos
 Eliminar objetos
 Permisos directorios y ficheros
 Permisos wp-config.php
 Editar .htaccess y modificar permisos
 Bloquear Login
 SPAM
 PingBack
 HTML
 Google Search Console
30 WordPress Security by www.jjpeleato.com
31 de julio de 2016
7.2 WordPress desde copia de
seguridad.
Nota: Para poder realizar este paso es necesario tener una copia de seguridad
estable tanto del código, cómo de la base de datos en formato SQL.
1) Descomprimir ficheros de la copia de seguridad en la carpeta raíz.
2) Creación de BBDD a utilizar según el nombre que existe en el fichero de
configuración.
CREATE DATABASE dbname CHARACTER SET utf8;
3) Ejecutar script SQL de la copia de seguridad de la BBDD o importar desde
phpMyAdmin.
mysql –uroot –ppassword
source script.sql
4) IMPORTANTE. Modificar registros URL‟s de configuración en la tabla
“wp_options” en la base de datos por la dirección nueva.
Registro “option_name” con valor “siteurl”. Normalmente “option_id” con valor
“1”.
UPDATE wp_options SET option_value = 'http://www.new-domain.com'
WHERE option_name = 'siteurl';
Registro “option_name” con valor “home”. Normalmente “option_id” con valor
“2”.
UPDATE wp_options SET option_value = 'http://www.new-domain.com'
WHERE option_name = 'home';
También, puedes ejecutar una consulta única para la modificación de los
registros.
UPDATE wp_options SET option_value = replace(option_value,
'http://www.old-domain.com', 'http://www.new-domain.com') WHERE
option_name = 'home' OR option_name = 'siteurl';
5) IMPORTANTE. Actualizar todos los registros a nivel de contenidos del
dominio anterior por nuevo.
UPDATE wp_posts SET post_content = replace(post_content,
'http://www.old-domain.com', 'http://www.new-domain.com');
31 WordPress Security by www.jjpeleato.com
31 de julio de 2016
Nota: Existe un campo almacenado en la tabla wp_posts que tiene relación
con el sistema de URL‟s para la funcionalidad RSS. Es necesario modificar
estos registros si nuestro portal ofrece esta opción.
UPDATE wp_posts SET guid = replace(guid, 'http://www.old-
domain.com','http://www.new-domain.com');
6) IMPORTANTE. Existe la posibilidad de que no tengamos acceso al usuario
administrador de WordPress. Procedemos a modificar el usuario desde la base
de datos.
UPDATE `wp-example`.`wp_users` SET `user_login` = 'example',
`user_email` = 'jjpeleato@gmail.com', `user_pass` = MD5('1234'),
`user_nicename` = 'example', `user_status` = '0', `display_name` =
'example' WHERE `wp_users`.`ID` = 1;
7) Para el correcto funcionamiento del portal web y su navegación a entradas y
páginas es necesario recrear todo el sistema de enlaces permanentes
(Permalinks). Para ello, visitamos “Ajustes” > “Enlaces permanentes” y sin
realizar ninguna modificación guardamos. El propio sistema de WordPress se
encargara de recorrer todo el sistema de enlaces internos para modificar en su
estructura el antiguo dominio por el nuevo.
Consejo: Agregamos en Estructura personalizada la siguiente sintaxis:
/%post_id%/%postname%/
8) Una vez realizado todos los pasos visitamos la página WordPress y
aplicamos buenas prácticas.
8.0 Como limpiar WordPress
Las medidas que se exponen a continuación no son sencillas y requieren de
ciertos conocimientos técnicos, y de accesos fuera de lo habitual a tu
WordPress.
Debes disponer de las siguientes herramientas:
 Acceso FTP a tu servidor o a un administrador de ficheros como cPanel
 Acceso a la herramienta de gestión MySQL o a una interfaz de
administración desde página web como phpMyAdmin
 Editor de texto avanzado: Notepad++ o Sublime
 Instalación entorno AMP en local.
o https://www.apachefriends.org/es/index.html
o http://www.wampserver.com/en/
o https://bitnami.com/stack/wordpress
32 WordPress Security by www.jjpeleato.com
31 de julio de 2016
8.1 Página en mantenimiento
Poner sitio web en modo mantenimiento, descargaremos todo el código y
exportaremos la base de datos. Una vez que dispongamos de una copia
de seguridad con la última versión, eliminamos todo el proyecto y base de
datos y crearemos un fichero 503.php en la carpeta raíz.
<?php
header("HTTP/1.1 503 Service Temporarily Unavailable");
header("Status: 503 Service Temporarily Unavailable");
header("Retry-After: 3600");
?>
<html>
<h1>Página web en mantenimiento</h1>
</html>
Por último, crearemos un fichero .htaccess que tendrá como función
redireccionar todo el tráfico de la web hacia el archivo .php
RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^111.111.111.111
RewriteCond %{REQUEST_URI} !/503.php$ [NC]
RewriteRule .* /503.php [R=302,L]
8.2 Reiniciar contraseñas
Cambiar todas las contraseñas que afectan en el proyecto.
 Modificar contraseñas a todos los usuarios administradores.
 Modificar contraseña acceso panel de control hosting.
 Modificar contraseña cuenta FTP.
 Modificar contraseña usuario base de datos.
o Al modificar la contraseña de la base de datos será necesario
cambiarla inmediatamente en el fichero wp-config.php
 Cambiar claves de autentificación de WordPress (AUTH/SALT)
8.3 Copia de seguridad
Si disponemos de una copia de seguridad estable y con la mínima perdida de
información. La opción más rápida y a la vez segura, es restaurar WordPress
desde la copia de seguridad.
33 WordPress Security by www.jjpeleato.com
31 de julio de 2016
8.4 Base de datos
Búsqueda SQL tabla wp_options
SELECT *
FROM wp_options
WHERE (
option_id LIKE '%base64_decode%'
OR option_name LIKE '%base64_decode%'
OR option_value LIKE '%base64_decode%'
OR autoload LIKE '%base64_decode%'
OR option_id LIKE '%edoced_46esab%'
OR option_name LIKE '%edoced_46esab%'
OR option_value LIKE '%edoced_46esab%'
OR autoload LIKE '%edoced_46esab%'
OR option_name LIKE 'wp_check_hash'
OR option_name LIKE 'class_generic_support'
OR option_name LIKE 'widget_generic_support'
OR option_name LIKE 'ftp_credentials'
OR option_name LIKE 'fwp'
OR option_name LIKE 'rss_%'
AND option_name != 'rss_language'
AND option_name != 'rss_use_excerpt'
AND option_name != 'rss_excerpt_lenght'
)
ORDER BY option_id;
Busqueda SQL tabla wp_post
SELECT *
FROM wp_posts
WHERE (
post_content LIKE '%iframe%'
OR post_content LIKE '%script%'
OR post_content LIKE '%noscript%'
OR post_content LIKE '%display: none%'
OR post_content LIKE '%visibility: hidden%'
OR post_content LIKE '%position: absolute%'
OR post_content LIKE '%hidden%'
OR post_content LIKE '%top: -%'
OR post_content LIKE '%bottom: -%'
OR post_content LIKE '%right: -%'
OR post_content LIKE '%left: -%'
OR post_content LIKE '%-9999px%'
)
ORDER BY ID;
34 WordPress Security by www.jjpeleato.com
31 de julio de 2016
8.5 Restaurar core
Descargamos la versión exacta de nuestra página web desde la página oficial
de WordPress.
https://wordpress.org/download/release-archive/
Para verificar con que versión de WordPress trabajamos, desde el panel de
administración, arriba a la izquierda, pulsamos en el logotipo de WordPress.
Una vez verificada y descarga la misma versión, eliminamos todos los
directorios y archivos de WordPress, menos la carpeta wp-content y wp-
config.php
MUY IMPORTANTE: Nunca se debe descargar otra versión, puede generar
problemas de incompatibilidad.
Una vez descargada la versión del repositorio de WordPress, debemos
descomprimir en otra ruta, nunca hacerlo en la carpeta raíz, ya que no
queremos sobrescribir nada de wp-content y copiar todos los ficheros de la
carpeta raíz y los directorios wp-admin y wp-includes.
35 WordPress Security by www.jjpeleato.com
31 de julio de 2016
8.6 Restaurar plugins
Verificamos la versión exacta de cada uno de los plugins a restaurar, ya que
cualquiera de los plugins puede estar comprometido.
Para descargar la versión exacta, desde el repositorio oficial de WordPress, en
los detalles de los plugins, hay una sección (página en inglés) llamada
Developers.
Nota: Esta sección no aparece en la página web en castellano.
Ejemplo: https://wordpress.org/plugins/wordfence/developers/
Una vez descargada la versión exacta de todos los plugins, eliminamos uno por
uno el directorio del plugin y pegamos la versión estable y limpia.
Nota: No mover o copiar. Si eliminar y copiar.
36 WordPress Security by www.jjpeleato.com
31 de julio de 2016
8.7 Buscar código malicioso
No siempre será posible restaurar en producción una copia estable dada la
actividad de nuestra página web o si se trata de un e-commerce.
Una de las tareas más difíciles y complicadas, es realizar una búsqueda
manual del código malicioso. Para ello, disponemos de herramientas las cuales
nos pueden ayudar a esta ardua tarea.
Recursos web: https://goo.gl/u3bR0x
https://sitecheck.sucuri.net/
https://www.screamingfrog.co.uk/
Recurso app: https://sourcegear.com/diffmerge/
https://notepad-plus-plus.org/
https://www.sublimetext.com/
Recursos plugins: https://es.wordpress.org/plugins/exploit-scanner/
Para la búsqueda de código malicioso, trabajaremos con la carpeta wp-
content/themes, dado que el resto de archivos y directorios deberían estar
limpios al restaurar el core y plugins.
Con la ayuda de programas como notepad++ y sublime, realizaremos
búsquedas de forma recursiva a partir del directorio raíz del theme.
Ejemplos de patrones de búsqueda de código malicioso:
 base64_decode
 eval(
 eval(base64
 eval(base64_decode
 header(„Location
 <script
 <iframe style=”width:0;height:0;”
 Revisar todos los index.php que ocultan directorios
 Revisar URL‟s maliciosas según patrón detectado en Google Search
Console.
 …
Existen muchas opciones posibles de búsqueda y que no son lo más
conocidos. Para ello, utilizaremos como segunda herramienta: DiffMerge.
Software que tiene como función comparar ficheros y verificar que existen
cambios en su código, además, te muestra en que línea de código y que
37 WordPress Security by www.jjpeleato.com
31 de julio de 2016
código ha sido modificado. Entre otras características, también te muestra los
ficheros creados nuevos y que no existían en la anterior copia de seguridad.
Por último, debemos analizar la carpeta uploads y asegurarnos de que no
existen ficheros php, js, css, etc.
En este momento, tienes una instalación de WordPress prácticamente limpia y
todo debe estar funcionado bien.
8.8 Aplicar buenas prácticas
Una vez finalizado todo el proceso de limpieza de malware en nuestro portal
web. El último paso es aplicar buenas prácticas a nuestra página.
Entre ellas, destacaría, la actualización de core¸ plugins y themes a la
última versión y si no es suficiente, como último recurso aplicar permisos 444
(solo lectura) a todo el proyecto menos a la carpeta uploads.
Por último, solicitar en Google Webmaster Tools realizar un escáner a tu
sitio web para eliminarnos de las listas de sitios infectados.
9.0 Conclusión
Con este tutorial has podido adentrarte en el mundo de la seguridad
informática, conocer los diferentes tipos de ataques que existen y a los que
toda aplicación web está sometida, aprender, paso a paso, a dotarte de
herramientas que permitan blindar tu proyecto WordPress. En este tutorial se te
ha ofrecido respuestas, soluciones y trucos que te permitirán configurar una
estrategia de seguridad para tu WordPress.
Conocer las claves para evitar las amenazas más comunes y en caso de ser
atacado o infectado, contar con los recursos y conocimientos para limpiar o
restaurar tu web.
Gracias de antemano y un saludo José J. Peleato Pradel.
“La seguridad no sólo depende de WordPress, sino del que lo usa”.
@jjpeleato
www.jjpeleato.com

More Related Content

What's hot

Actividad 1 seguridad informatica
Actividad 1 seguridad informaticaActividad 1 seguridad informatica
Actividad 1 seguridad informaticaJESSIKADG86
 
Seguridad informática
Seguridad informáticaSeguridad informática
Seguridad informáticaYEJAJAYE
 
Amenazas y fraudes en los sistemas de información.
Amenazas y fraudes en los sistemas de información.Amenazas y fraudes en los sistemas de información.
Amenazas y fraudes en los sistemas de información.Ana Bruna
 
1a seguridad-informatica
1a seguridad-informatica1a seguridad-informatica
1a seguridad-informaticacandybravo
 
Programa de seguridad informática
Programa de seguridad informáticaPrograma de seguridad informática
Programa de seguridad informáticaPedro Cobarrubias
 
Conceptos básicos de seguridad en redes
Conceptos básicos de seguridad en redesConceptos básicos de seguridad en redes
Conceptos básicos de seguridad en redesYESENIA CETINA
 
Seguridad Informática en Redes de Computadores
Seguridad Informática en Redes de ComputadoresSeguridad Informática en Redes de Computadores
Seguridad Informática en Redes de ComputadoresWayner Barrios
 
Seguridad y amenazas en la red.
Seguridad y amenazas en la red.Seguridad y amenazas en la red.
Seguridad y amenazas en la red.guestf3ba8a
 
Seguridad informatica slideshare
Seguridad informatica slideshareSeguridad informatica slideshare
Seguridad informatica slideshareb1cceliagonzalez
 
PresentacióN De Microsoft Power Point Seguridad InformáTica
PresentacióN De Microsoft Power Point Seguridad InformáTicaPresentacióN De Microsoft Power Point Seguridad InformáTica
PresentacióN De Microsoft Power Point Seguridad InformáTicacarmelacaballero
 
Seguridad Informatica
Seguridad  InformaticaSeguridad  Informatica
Seguridad Informaticarchacon
 

What's hot (20)

Actividad 1 seguridad informatica
Actividad 1 seguridad informaticaActividad 1 seguridad informatica
Actividad 1 seguridad informatica
 
Seguridad informática
Seguridad informáticaSeguridad informática
Seguridad informática
 
Amenazas informaticas
Amenazas informaticasAmenazas informaticas
Amenazas informaticas
 
Seguridad informática
Seguridad informáticaSeguridad informática
Seguridad informática
 
Amenazas y fraudes en los sistemas de información.
Amenazas y fraudes en los sistemas de información.Amenazas y fraudes en los sistemas de información.
Amenazas y fraudes en los sistemas de información.
 
Politica e informatica 1
Politica e informatica 1Politica e informatica 1
Politica e informatica 1
 
Seguridad informática
Seguridad informática Seguridad informática
Seguridad informática
 
1a seguridad-informatica
1a seguridad-informatica1a seguridad-informatica
1a seguridad-informatica
 
Programa de seguridad informática
Programa de seguridad informáticaPrograma de seguridad informática
Programa de seguridad informática
 
Conceptos básicos de seguridad en redes
Conceptos básicos de seguridad en redesConceptos básicos de seguridad en redes
Conceptos básicos de seguridad en redes
 
AMENAZAS INFORMATICAS
AMENAZAS INFORMATICASAMENAZAS INFORMATICAS
AMENAZAS INFORMATICAS
 
Seguridad informatica parte dos
Seguridad informatica parte dosSeguridad informatica parte dos
Seguridad informatica parte dos
 
Seguridad Informática en Redes de Computadores
Seguridad Informática en Redes de ComputadoresSeguridad Informática en Redes de Computadores
Seguridad Informática en Redes de Computadores
 
Seguridad y amenazas en la red.
Seguridad y amenazas en la red.Seguridad y amenazas en la red.
Seguridad y amenazas en la red.
 
Seguridad informatica slideshare
Seguridad informatica slideshareSeguridad informatica slideshare
Seguridad informatica slideshare
 
PowerPoint Seguridad Informática
PowerPoint Seguridad InformáticaPowerPoint Seguridad Informática
PowerPoint Seguridad Informática
 
Seguridad Informática
Seguridad InformáticaSeguridad Informática
Seguridad Informática
 
Seguridad en redes de computadoras
Seguridad en redes de computadorasSeguridad en redes de computadoras
Seguridad en redes de computadoras
 
PresentacióN De Microsoft Power Point Seguridad InformáTica
PresentacióN De Microsoft Power Point Seguridad InformáTicaPresentacióN De Microsoft Power Point Seguridad InformáTica
PresentacióN De Microsoft Power Point Seguridad InformáTica
 
Seguridad Informatica
Seguridad  InformaticaSeguridad  Informatica
Seguridad Informatica
 

Similar to WordPress Security

Seguridad informatica charlie
Seguridad informatica charlieSeguridad informatica charlie
Seguridad informatica charlieDavid Eredia
 
Seguridad Informática
Seguridad InformáticaSeguridad Informática
Seguridad InformáticaJeovany Serna
 
Seguridad informatica
Seguridad informaticaSeguridad informatica
Seguridad informaticamaricarrion
 
La seguridad informática
La seguridad informáticaLa seguridad informática
La seguridad informáticaChochy Levio
 
Seguridad informática-Virus, hacker's, y tipos de hacke's.
Seguridad informática-Virus, hacker's, y tipos de hacke's.Seguridad informática-Virus, hacker's, y tipos de hacke's.
Seguridad informática-Virus, hacker's, y tipos de hacke's.Jorge A. Noriega
 
Seguridad informática
Seguridad informáticaSeguridad informática
Seguridad informáticaJemarly11
 
Programa de seguridad informática
Programa de seguridad informáticaPrograma de seguridad informática
Programa de seguridad informáticaPedro Cobarrubias
 
Seguridad informatica karen 1004
Seguridad informatica karen 1004Seguridad informatica karen 1004
Seguridad informatica karen 1004krencytah
 
Seguridad Informática
Seguridad InformáticaSeguridad Informática
Seguridad InformáticaDjJerrys
 
seguridad informatica 1B
seguridad informatica 1Bseguridad informatica 1B
seguridad informatica 1BJulio Hdez
 

Similar to WordPress Security (20)

Seguridad informatica charlie
Seguridad informatica charlieSeguridad informatica charlie
Seguridad informatica charlie
 
Seguridad Informática
Seguridad InformáticaSeguridad Informática
Seguridad Informática
 
Seguridad informatica
Seguridad informaticaSeguridad informatica
Seguridad informatica
 
La seguridad informática
La seguridad informáticaLa seguridad informática
La seguridad informática
 
Seguridad informática-Virus, hacker's, y tipos de hacke's.
Seguridad informática-Virus, hacker's, y tipos de hacke's.Seguridad informática-Virus, hacker's, y tipos de hacke's.
Seguridad informática-Virus, hacker's, y tipos de hacke's.
 
Seguridad informática
Seguridad informáticaSeguridad informática
Seguridad informática
 
Programa de seguridad informática
Programa de seguridad informáticaPrograma de seguridad informática
Programa de seguridad informática
 
Seguridad informatica karen 1004
Seguridad informatica karen 1004Seguridad informatica karen 1004
Seguridad informatica karen 1004
 
Informatica
InformaticaInformatica
Informatica
 
Seguridad informática
Seguridad informáticaSeguridad informática
Seguridad informática
 
SeguridadBasica_U4_2023.ppsx
SeguridadBasica_U4_2023.ppsxSeguridadBasica_U4_2023.ppsx
SeguridadBasica_U4_2023.ppsx
 
Seguridad Informatica
Seguridad Informatica Seguridad Informatica
Seguridad Informatica
 
nicolevillacisavila
nicolevillacisavilanicolevillacisavila
nicolevillacisavila
 
Seguridad informatica
Seguridad informaticaSeguridad informatica
Seguridad informatica
 
Seguridad Informática
Seguridad InformáticaSeguridad Informática
Seguridad Informática
 
seguridad informatica 1B
seguridad informatica 1Bseguridad informatica 1B
seguridad informatica 1B
 
La Seguridad Informática
La Seguridad InformáticaLa Seguridad Informática
La Seguridad Informática
 
Seguridad informatica
Seguridad informaticaSeguridad informatica
Seguridad informatica
 
SEGURIDAD INFORMATICA
SEGURIDAD INFORMATICASEGURIDAD INFORMATICA
SEGURIDAD INFORMATICA
 
SEGURIDAD INFORMATICA
SEGURIDAD INFORMATICASEGURIDAD INFORMATICA
SEGURIDAD INFORMATICA
 

WordPress Security

  • 2. INDICE 1.0 Seguridad informática 2.0 Amenazas 3.0 Hacker vs Cracker 4.0 Malware 4.1 Exploit 4.2 Virus 4.3 IWorm 4.4 Trojan Horse 4.5 Backdoor 4.6 Rootkits 4.7 Keyloggers 4.8 Adware 4.9 Spyware 4.10 Crimeware 4.11 SQL Injection 4.12 XSS (Cross-site scripting) 4.13 DDoS (Distributed Denial Of Service) 4.14 Botnet (Zombi) 4.15 Logic Bomb 4.16 Pharming 4.17 Phising 4.18 Spoofing 4.19 Clickjacking 5.0 WordPress. 5.1 Estructura base de datos. 5.2 Estructura directorio. 6.0 Buenas prácticas 6.1 Hosting confiable 6.2 Copias de seguridad 6.3 Usuario bases de datos
  • 3. 6.4 Instalación WordPress subdirectorio 6.5 Eliminar objetos 6.6 Ocultar directorio plugins 6.7 wp-config.php 6.7.1 Prefijo tablas 6.7.2 Fijar valores AUTH/SALT 6.8 .htaccess 6.9 Permisos directorios y archivos 6.10 Actualizaciones 6.11 Plugins de seguridad 6.12 Usuarios 6.13 Contraseñas 6.14 Login 6.15 Headers 6.16 SPAM 6.17 PingBack 6.18 HTML 6.19 Google Search Console 7.0 Instalación 7.1 WordPress desde 0 7.2 WordPress desde copia de seguridad 8.0 Como limpiar WordPress 8.1 Página en mantenimiento 8.2 Reiniciar contraseñas 8.3 Copia de seguridad 8.4 Base de datos 8.5 Restaurar core 8.6 Restaurar plugins 8.7 Buscar código malicioso 8.8 Aplicar buenas prácticas 9.0 Conclusión
  • 4. 1 WordPress Security by www.jjpeleato.com 31 de julio de 2016 Versión WordPress: 4.5.3 Página web oficial: https://www.wordpress.org/ 1.0 Seguridad informática Seguridad (del latín securitas) es definido como la cualidad de seguro. Ausencia de riesgo o la confianza en algo o en alguien. Sin embargo, el término puede tomar diversos sentidos según el área o campo al que se hace referencia. Seguridad de la información, conjunto de medidas preventivas y reactivas de las organizaciones y de los sistemas tecnológicos que permiten resguardar y proteger la información buscando mantener la confidencialidad, la disponibilidad, integridad y autenticación (autentificación) de la misma. El concepto de seguridad de la información no debe ser confundido con el de seguridad informática, ya que este último solo se encarga de la seguridad en el medio informático, pero la información puede encontrarse en diferentes medios o formas, y no solo en medios informáticos. Seguridad informática, más conocido cómo ciberseguridad o seguridad de tecnologías de la información, es definido como el área de la informática que se enfoca en la protección de la infraestructura computacional y su almacenamiento (información), para garantizar su confidencialidad, integridad y disponibilidad. Para ello existen una serie de estándares, protocolos, métodos, reglas, herramientas y leyes concebidas para minimizar los posibles riesgos a la infraestructura o a la información. La seguridad informática comprende software (bases de datos, metadatos, archivos, etc.), hardware y todo lo que signifique un riesgo, y de esta forma evitar que la información confidencial sea substraída, convirtiéndose, en información privilegiada. La seguridad informática es la disciplina que se ocupa de diseñar las normas, procedimientos, métodos y técnicas destinados a conseguir un sistema de información seguro y confiable. El objetivo de la seguridad informática consiste en minimizar los riesgos en una infraestructura informática.
  • 5. 2 WordPress Security by www.jjpeleato.com 31 de julio de 2016 Está concebida para proteger los activos informáticos, entre los que se encuentran los siguientes:  Infraestructura computacional: Parte tecnológica para el almacenamiento y gestión de la información.  Usuarios: Personas que utilizan la infraestructura tecnológica y gestionan la información.  Información: Principal activo. Utiliza y reside en la infraestructura computacional y es utilizada por los usuarios. Recomendación web: Oficina de Seguridad del Internauta https://www.osi.es/ 2.0 Amenazas Existen varios tipos de amenazas, debido a que no solo son amenazas las que surgen de la programación y el funcionamiento de un dispositivo de almacenamiento, también hay otras circunstancias que deben ser tomadas en cuenta e incluso “no informáticas”. Muchas son a menudo imprevisibles o inevitables. Las amenazas pueden ser causadas por:  Usuarios: Factor humano debido a contraseñas poco robustas o sus acciones causan problemas de seguridad debido a que tienen permisos sobre dimensionados, no se les han restringido acciones innecesarias, etc.  Programas maliciosos: Programas dedicados a perjudicar o a hacer un uso ilícito de los recursos del sistema. Estos programas pueden ser virus, gusanos, troyanos, bombas lógicas, spyware, etc.  Errores de programación: Errores de programación que pueden ser usados como exploits por los crackers.  Intrusos: Personas que consiguen acceder a los datos o programas a los cuales no están autorizados  Siniestro: Robo, incendio, inundación… una mala manipulación o una mala intención derivan en la pérdida del material o de los archivos.  Personal técnico interno: técnicos de sistemas, administradores de bases de datos, técnicos de desarrollo, etc. Los motivos que se encuentran entre los habituales son: disputas internas, problemas laborales, despidos, fines lucrativos, espionaje, etc.  Fallos electrónicos o lógicos de los sistemas informáticos en general.
  • 6. 3 WordPress Security by www.jjpeleato.com 31 de julio de 2016  Catástrofes naturales: Rayos, terremotos, inundaciones, etc. Existen infinidad de modos de clasificar un ataque y cada ataque puede recibir más de una clasificación. Por ejemplo, un caso de phising puede llegar a robar la contraseña de un usuario de una red social y con ella realizar una suplantación de la identidad para un posterior acoso, o el robo de la contraseña puede usarse simplemente para uso de editar su perfil. Sin dejar de ser delito en ambos casos, al menos en países con legislaciones, como lo es España) Las amenazas pueden categorizarse por tipos:  Amenazas por el origen: Conectar a una red externa da la posibilidad de que algún atacante puede entrar en ella y con ella poder hacer robo de información o alterar el funcionamiento de la red. Sin embargo, el hecho de que la red no esté conectada a un entorno externo, como Internet, no garantiza la seguridad de la misma. o Amenazas internas: Debido a usuarios o personal técnico, conocen la red y saben cómo es su funcionamiento, ubicación de la información, datos de interés, etc. o Amenazas externas: Aquellas amenazas que se originan fuera de la red. Al no tener información de la red, un atacante tiene que realizar ciertos pasos para poder conectar y buscar la manera de atacar. Este tipo de amenazas se intentan prevenir gracias al administrador de la red, con sistemas de prevención de intrusos y firewalls.  Amenazas por el efecto: Amenaza que causa problemas a quien recibe los ataques. o Robo de información o Destrucción de información o Anulación del funcionamiento de los sistemas. o Suplantación de identidad, publicidad de datos personales o confidenciales, cambio de información, venta de datos personales, etc. o Robo de dinero, estafas, manipulación, etc.  Amenazas por el medio utilizado: Clasificado por modus operandi del atacante, el objetivo puede ser distinto para un mismo tipo de ataque. o Virus informáticos o Phising o Ingeniería social o Denegación de servicios o Spoofing: de DNS, de IP, de DHCP, etc.
  • 7. 4 WordPress Security by www.jjpeleato.com 31 de julio de 2016 3.0 Crackers vs Hackers El concepto de crackers y hackers no debe ser confundido, ya que su comportamiento y ética es diferente. Crackers (to crack): Término que hace referencia a las personas que “rompen” algún sistema de seguridad. Los crackers pueden estar motivados por una multitud de razones, incluyendo fines de lucro, protesta, o por el desafío. Acciones desautorizadas contra sistemas de seguridad. Hackers: Termino que hace referencia a todo individuo que se dedica a programar de forma entusiasta, o sea un experto de cualquier tipo y que considera que poner la información al alcance de todos constituye un bien mayor. La motivación de estas personas es desarrollar software en su tiempo y después distribuirlo de forma gratuita con la comunidad. También incluye a aquellos que encuentran, depuran y arreglan errores en los sistemas (vulnerabilidades). Recomendación web: Chema Alonso (Hacker) http://www.elladodelmal.com/ https://www.youtube.com/user/Chemai64 4.0 Malware Malicius software, también llamado, badware, código maligno, software malicioso o software malintencionado, es un tipo de software que tiene como objetivo infiltrarse o dañar una infraestructura computacional o sistema de información sin el consentimiento de su propietario. El termino malware se utiliza por los profesionales de la informática para referirse a una variedad de software hostil, intruso o molesto. El software se considera malware en función de los efectos que provoque en una infraestructura- el termino malware incluye virus, troyanos, rootkits, scareware, spyware, adware intruso, crimware y otros software maliciosos. Malware no es lo mismo que software defectuoso (bugs peligrosos), no de forma intencionada.
  • 8. 5 WordPress Security by www.jjpeleato.com 31 de julio de 2016 4.1 Exploit Explotar o aprovechar, fragmento de software, fragmento de datos o secuencia de comandos y/o acciones, utilizada con el fin de aprovechar una vulnerabilidad de seguridad de un sistema de información para conseguir un comportamiento no deseado del mismo. Ejemplos:  Acceso de forma no autorizada  Control de un sistema  Consecución de privilegios no concedidos lícitamente  Consecución de ataques de denegación de servicios Curiosidad: Se considera exploit un ataque de ingeniera social, que consiste en convencer o sonsacar a una víctima cierta información. 4.2 Virus Un virus informático es un malware que tiene como objetivo el alterar el funcionamiento normal del ordenador, sin el permiso o el conocimiento del usuario. Su nombre lo adapta de la similitud que tienen con los virus biológicos que afectan a los humanos, donde los antibióticos en este caso serían los programados de Antivirus. Habitualmente, reemplazan archivos ejecutables por otros infectados con el código de este. Los virus pueden destruir, de manera intencionada, los datos almacenados, encriptación de archivos, etc. o más inofensivos que solo producen ralentizaciones o molestias menores. El funcionamiento de un virus informático: Se ejecuta un programa que está infectado. El código del virus queda alojado en memoria RAM, incluso cuando el software ejecutado ha terminado. El virus entonces toma el control de los servicios básicos del sistema operativo, infectando, de manera posterior, archivos ejecutables que cuando son llamados para su ejecución se añade el código del virus al programa y se graba en disco. Curiosidad: El primer virus de la historia atacó a un equipo IBM Serie 360. Fue llamado Creeper¸ creado en 1972. Este software creaba periódicamente en pantalla el mensaje “I‟m a creeper… catch me if you can!” (Soy una enredadera… atrápame si puedes!). Para eliminar este problema se creó el primer programa antivirus denominado “Reaper” (Segador).
  • 9. 6 WordPress Security by www.jjpeleato.com 31 de julio de 2016 4.3 IWorm Gusano informático consiste en un malware que tiene la propiedad de duplicarse a sí mismo. Los gusanos utilizan las partes automáticas de un sistema operativo que generalmente son invisibles al usuario. Los gusanos se propagan de ordenador en ordenador, pero a diferencia de un virus, tiene la capacidad de propagarse sin la ayuda del factor humano. Lo más peligroso de los gusanos es su capacidad para replicarse en un sistema informático, por lo que un gusano en un ordenador podría enviar cientos o miles de copias de sí mismo, creando un efecto a gran escala. Otra diferencia con el virus informático es que un gusano no necesita alterar los archivos de programas, sino que se encuentra en memoria y se duplica a sí mismo. Normalmente causan problemas en la red consumiendo el ancho de banda. Curiosidad: El primer gusano informático de la historia data de 1988, cuando el gusano Morris infectó una gran parte de los servidores y se dieron cuenta que los gusanos informáticos se reproducen asexualmente. Su creador, Robert Tappan Morris, fue sentenciado a tres años en prisión y obtuvo libertad condicional, 400 horas de servicios a la comunidad y una multa de 10.050 dólares, gracias a su familia que pagó la fianza. Fue este hecho el que alertó a las principales empresas involucradas en la seguridad de tecnologías tales como Nirdesteam que fue uno de los primeros en desarrollar el primer cortafuegos (firewall). 4.4 Trojan Horse Troyano o caballo de Troya, es un software malicioso que se presenta al usuario como un programa aparentemente legitimo e inofensivo, pero que, al ejecutarlo, le brinda al atacante acceso remoto al equipo infectado con todos sus privilegios. El término Troyano proviene de la historia del caballo de Troya mencionado en la Odisea de Homero. Los troyanos pueden realizar diferentes tareas, pero, en la mayoría de los casos, crean puertas traseras que permite la administración remota a un usuario no autorizado. Un troyano no es un virus informático. La diferencia consiste en su finalidad. Para que un programa sea un troyano solo tiene que acceder y controlar la maquina anfitriona sin ser advertido, al contrario que un virus, que es un
  • 10. 7 WordPress Security by www.jjpeleato.com 31 de julio de 2016 huésped destructivo, el troyano normalmente no provoca daño, ya que no es ese su objetivo. Curiosidad: En sus origines fueron utilizados como arma de sabotaje por los servicios de inteligencia como la CIA, cuyo caso más emblemático fue el sabotaje al gasoducto Siberiano en 1982. 4.5 Backdoor Puerta trasera es una secuencia especial dentro del código de programación, mediante la cual se pueden evitar los sistemas de seguridad del algoritmo (autentificación) para acceder al sistema. Destacar que un backdoor no tienen por qué ser utilizados para fines malintencionados o espionaje y no siempre son un error, ya que pueden haber sido diseñadas con la intención de tener una entrada secreta. Como por ejemplo, para borrar toda la información confidencial. 4.6 Rootkits Un rootkit consiste en un acceso de privilegio continuo a un ordenador pero que mantiene su presencia oculta al control de los administradores al corromper el funcionamiento normal del sistema operativo o de otras aplicaciones. El término proviene de una concatenación de la palabra inglesa root, que significa “raíz” (nombre tradicional de la cuenta privilegiada en los sistemas operativos Unix) y de la palabra inglesa kit, que significa “conjunto de herramientas”. Se esconde a sí mismo y a otros programas, procesos, archivos, directorios, claves de registro, y puertos que permiten al intruso mantener el acceso a una amplia variedad de sistemas operativos como pueden ser GNU/Linux, Solaris o Microsoft Windows para remotamente realizar acciones o extraer información sensible. El funcionamiento consiste en que un atacante instala un rootkit en un ordenador después de primero haber obtenido un acceso al nivel raíz, ya sea por una vulnerabilidad conocida o por haber obtenido una contraseña (por crackeo de la encriptación o por ingeniería social). Una vez que el rootkit ha sido instalado, permite que el atacante disfrace la siguiente intrusión y mantenga el acceso privilegiado al ordenador por medio de evadir a los mecanismos normales de autenticación y autorización.
  • 11. 8 WordPress Security by www.jjpeleato.com 31 de julio de 2016 4.7 Keyloggers Registrador de teclas, derivado del inglés key (tecla) y logger (registrador), es un tipo de software o dispositivo hardware especifico que se encarga de registrar las pulsaciones que se realizan en el teclado, para posteriormente almacenar la información en un archivo o ser enviadas a través de Internet. Suele utilizarse como malware del tipo daemon (demonio) o servicio, permitiendo que otros usuarios tengan acceso a contraseñas importantes, como los números de acceso a banca o información privada. Este tipo de software es utilizado por troyanos, virus o gusanos informáticos. 4.8 Adware “Advertising” (Publicidad) y “Ware” (Programa). Sistemas de publicidad basados en programación computacional. Un programa de clase adware es cualquier programa que automáticamente muestra u ofrece publicidad web ya sea incrustada en una página web mediante gráficos, carteles, ventanas flotantes o durante la instalación de algún programa al usuario con el fin de generar lucro a sus autores. Cuando se fuerza al usuario a usar un determinado buscador web para monitorizar la actividad del usuario. O cuando se insertan de forma automática en la navegación del usuario con cualquiera de los navegadores publicidad en las diferentes páginas por las cual navega. 4.9 Spyware Programa espía que consiste en un malware que recopila información de un ordenador y después transmite esta información a una entidad externa sin el conocimiento del propietario del ordenador. El spyware se auto instala en el sistema afectado de forma que se ejecuta cada vez que se pone en marcha el ordenador (consumiendo CPU y RAM, reduciendo la estabilidad del ordenador) y funciona todo el tiempo, controlando el uso que se hace de Internet y mostrando anuncios relacionados. Funciona como un parásito.
  • 12. 9 WordPress Security by www.jjpeleato.com 31 de julio de 2016 4.10 Crimeware Tipo de software diseñado para la ejecución de delitos financieros en entornos en línea. Diferenciarse de Adware y Spyware. Diseñado mediante técnicas de ingeniera social para generar fraude en línea, con el fin de conseguir el robo de identidades para acceder a los datos de usuario de las cuentas de compañías de servicios financieros. 4.11 SQL Injection Inyección SQL consiste en un método de infiltración de código que se vale de una vulnerabilidad informática presente en una aplicación en el nivel de validación de entradas para realizar operaciones sobre una base de datos. El origen de la vulnerabilidad radica en la incorrecta validación o filtrado de variables utilizadas en un programa que trabaja con código SQL. Es una de las vulnerabilidades más generales que existen y puede ocurrir en cualquier lenguaje de programación o script que este embebido dentro de otro. SELECT * FROM user WHERE name = '" + nombreUsuario + "'; SELECT * FROM user WHERE name = 'jjpeleato'; SELECT * FROM user WHERE name = 'jjpeleato';DROP TABLE user;SELECT * FROM record WHERE name LIKE '%'; 4.12 XSS (Cross-site scripting) Tipo de inseguridad informática o agujero de seguridad típico en las aplicaciones Web. Permite a una tercera persona inyectar en páginas web visitadas por el usuario código JavaScript o en otro lenguaje de script. Este tipo de vulnerabilidad se conoce en español con el nombre de Secuencias de órdenes en sitios cruzados. XSS es un ataque que puede ser utilizado para robar información delicada, robar sesiones de usuario, etc. El problema deriva al no validar correctamente los datos de entrada que son usados en las aplicaciones web, o no depurar la salida correctamente para su correcta visualización como página web.
  • 13. 10 WordPress Security by www.jjpeleato.com 31 de julio de 2016  XSS Directo (Persistente): Consiste en insertar código HTML peligroso en sitios que lo permiten, incluyendo etiquetas como <script> o <iframe>  XSS Indirecto (Reflejo): Consiste en modificar valores que la aplicación web utiliza para pasar variables entre dos páginas, sin usar sesiones, y se transfiere la información como en una etiqueta oculta, en una cadena en la URL del navegador, en una cookie o cualquier otra cabecera HTTP. http://www.example.com/home.php?frame=menu.php javascript:while(1)alert("Mensaje infinito"); 4.13 DdoS (Distributed Denial Of Service) DoS (Denial of Service) o DDoS (Distributed Denial of Service (Ataques de denegación de servicios). Consiste en un ataque a un sistema (ordenadores, servidores o red) que causa que un servicio o recurso sea inaccesible a los usuarios. Normalmente, consiste en ataques para provocar la caída de servicios en servidores por el consumo de ancho de banda o por sobrecargar los recursos computacionales del sistema de la víctima. El ataque hace que el servidor se sobrecargue y no pueda seguir prestando servicios (denegación) ya que no es capaz de abastecer a la cantidad de solicitudes. La ampliación de los ataques DoS son los llamados ataques distribuidos de denegación de servicios (DDoS) el cual se lleva a cabo generando un gran flujo de información desde varios puntos de conexión. La forma más común de realizar es a través de un botnet siendo esta técnica el ciberataque más usado y eficaz por su sencillez. Curiosidad: Anonymous utiliza mucho este recurso para realizar sus ataques contra sus objetivos.
  • 14. 11 WordPress Security by www.jjpeleato.com 31 de julio de 2016 4.14 Botnet (Zombi) Termino que hace referencia a un conjunto o red de robots informáticos o bots, que se ejecutan de manera autónoma y automática. El atacante puede controlar todos los ordenadores/servidores infectados de forma remota. Usos habituales:  Ataques de denegación de servicios  Envío de SPAM  Minería de Bitcoins (criptomoneda)  Robo de Bitcoins 4.15 Logic Bomb Bomba lógica es una parte de código insertada intencionalmente en un programa informático que permanece oculto hasta cumplirse una o más condiciones preprogramadas, en ese momento se ejecuta una acción maliciosa. 4.16 Pharming Explotación de una vulnerabilidad en el software de los servidores DNS (Domain Name System) o en el de los equipos propios de los usuarios, que permite a un atacante redirigir un nombre de dominio a otra dominio distinto. La palabra pharming tiene relación con el termino phising, el objetivo es obtener información confidencial de los usuarios, desde números de tarjetas de crédito hasta contraseñas. 4.17 Phising Suplantación de identidad, termino informático que denomina un modelo de abuso informático y que se comete mediante el uso de un tipo de ingeniería social, caracterizado por intentar adquirir información confidencial (contraseñas, número de tarjetas de crédito, información bancaria, etc.) de forma fraudulenta. El cibercriminal, phisher, se hace pasar por una persona o empresa de confianza en una aparente comunicación oficial electrónica, por lo común un correo electrónico o algún sistema de mensajería instantánea o con llamadas telefónicas. El método más conocido es suplantar un correo electrónico y redirigir mediante pharming a la víctima para reinicie la contraseña en una página anzuelo.
  • 15. 12 WordPress Security by www.jjpeleato.com 31 de julio de 2016 4.18 Spoofing Termino de seguridad de redes que hace referencia al uso de técnicas a través de las cuales un atacante se hace pasar por una entidad distinta a través de la falsificación de los datos en una comunicación. Modificación y falsificación de los paquetes enviados en una comunicación para suplantar la identidad y descifrar información confidencial como claves privadas para autentificaciones contra servicios o servidores. 4.19 Clickjacking Clickjacking o secuestro de clic, es una técnica maliciosa para engañar a usuarios de internet con el fin de revelar información confidencial o tomar el control de su ordenador cuando hacen clic en páginas web aparentemente inocentes. Un ataque clickjacking puede iniciarse a traves de código embebido que se ejecuta sin conocimiento del usuario, por ejemplo, a través de un botón para realizar otra función. 5.0 WordPress WordPress, es un sistema de gestión de contenidos que ha alcanzado una gran relevancia con una cuota del 26.4% de uso a nivel mundial, 1 de cada 4 páginas web esta creada en WordPress. Recurso web: W2Techs https://goo.gl/OvTxqJ Dada la importancia de ser una de las plataformas más utilizadas, a diario se convierte en objetivo de múltiples ciberataques. La mayoría de los ataques, tienen como objetivo crear un flujo de navegación de forma oculta hacia páginas de terceros, para mejorar su posicionamiento en los buscadores. El problema más común que surge en las páginas web son debidos a la desactualización del núcleo de WordPress, de alguno de los plugins instalados o de las desactualización de los themes.
  • 16. 13 WordPress Security by www.jjpeleato.com 31 de julio de 2016 5.1 Estructura base de datos Tablas WordPress 4.5.3 wp_commentmeta Meta datos que incorporan cada comentario almacenado en wp_comments. wp_comments Almacenamiento de comentarios. wp_links Información relativa en la funcionalidad de enlaces de WordPress. Obsoleta actualmente. wp_options MUY IMPORTANTE. Almacenamiento de todos los ajustes de configuración de WordPress y plugins gestionado a través del panel de administración. wp_postmeta Meta datos que incorporan cada posts almacenado en wp_posts. Almacenamiento de ciertos plugins. wp_posts MUY IMPORTANTE. Almacenamiento de entradas, páginas y elementos de menú. wp_termmeta Meta datos que incorporan cada categoría/etiqueta almacenado en wp_terms. wp_terms Almacenamiento de categorías, tanto de las entradas como de enlaces y las etiquetas de las entradas. wp_term_relationships Almacenamiento de la asociación de las entradas y enlaces que hacen referencia a categorías y/o etiquetas. wp_term_taxonomy Describe la taxonomía (categoría, enlace o etiqueta) de cada línea de la tabla wp_terms. wp_usermeta Almacenamiento de la información denominada data que cada usuario contiene. wp_users Lista de usuarios.
  • 17. 14 WordPress Security by www.jjpeleato.com 31 de julio de 2016 5.2 Estructura directorio Estructura directorios WordPress 4.5.3 La estructura de archivos y carpetas de una instalación WordPress es muy sencilla. Consta de tres carpetas principales: wp-admin, wp-content y wp- includes y el conjunto de archivos de la carpeta raíz y subdirectorios, de los cuales destacamos los ficheros wp-config.php y .htaccess situados en el directorio base. La carpeta más importante del proyecto y donde se debe aplicar un correcto protocolo de copias de seguridad es wp-content, es la única carpeta que no se puede borrar, pues contiene todos los datos del sitio web.
  • 18. 15 WordPress Security by www.jjpeleato.com 31 de julio de 2016  wp-admin: Directorio donde se almacena los ficheros de backend del core de WordPress.  wp-content: Directorio donde se almacenan los contenidos específicos de nuestro proyecto. o plugins: Directorio donde se almacenan los plugins de terceros. o themes: Directorio donde se almacenan los themes que hay en nuestra aplicación. Puedes haber un número indeterminado de themes pero solo uno de ellos estará activo. Existe la metodología de trabajo basada en una estructura de theme padre y theme hijo (usando el hijo como theme activo). o uploads: Directorio principal donde se almacenan todos los ficheros que se suban a la aplicación. Es el único directorio que va a tener permisos de escritura.  wp-includes: Directorio principal del core de WordPress.
  • 19. 16 WordPress Security by www.jjpeleato.com 31 de julio de 2016  wp-config.php: Fichero de configuración de WordPress, donde se almacenan las credenciales para conectar contra la base de datos, sistema de autentificación Uniques Keys y Salts, pefijo de las tablas de las base de datos, WordPress Debug, etc. Recomendado tener permisos de solo escritura 444.  .htaccess: Fichero de configuración de servidor, que genera WordPress de forma automática con la instalación de la aplicación. Tiene como función mejorar la seguridad de WordPress. Ciertos plugins escriben en este fichero para aplicar seguridad u optimización al sitio web. Recomendado tener permisos de solo escritura 444. 6.0 Buenas prácticas Siempre existe un riesgo. Nada garantiza que sea 100% seguro. Y a lo que te preguntaras “Si nunca voy a estar seguro ¿entonces para qué hacer algo?”. Lo que se trata con las buenas prácticas es minimizar el riesgo, blindar WordPress Lo sencillo cuando existe un hack en nuestro proyecto WordPress es pensar que el culpable es él y nosotros por haber usado este tipo de tecnología, pero es un gran error, el núcleo de WordPress es uno de los más seguros que existen dentro del gran abanico de CMS que existen. La seguridad depende en cómo se ha instalado y configurado. Muchas de las vulnerabilidades tienen poco que ver con la seguridad en WordPress, pero si con tu servidor, contraseñas pobres, plugins y temas de dudosa procedencia, etc. La seguridad no sólo depende de WordPress, sino del que lo usa. 6.1Hosting confiable Uno de los pasos más importantes es elegir un buen proveedor de alojamiento web. Es recomendable buscar una solución que encaje dentro de nuestra horquilla de presupuesto, pero sin olvidar contratar un servicio con buenas políticas de seguridad y copias de respaldo, permisos de archivos y carpetas, encapsulamiento de hosting, monitorización en busca de anomalías, etc. y dejando totalmente de lado proveedores baratos que suelen significar reducción de costes en las áreas citadas anteriormente.
  • 20. 17 WordPress Security by www.jjpeleato.com 31 de julio de 2016 6.2 Copias de seguridad Crear una correcta política de backups. No confiar únicamente en las copias de respaldo que nos garantizan los proveedores de hosting. Debemos crear un procedimiento de forma manual o a través de plugins en crear un sistema de backups semanal. Es muy importante tener una copia de seguridad del código y base de datos estables y no corrompidos, de esta forma prevenir casos de hacking y minimizar la perdida de información con la restauración de una versión anterior. Plugins recomendados:  All-in-one WP Migration  WP Migrate DB  BackWPUP 6.3 Usuario bases de datos Utilización de un único usuario por base de datos y sitio. Tal usuario solo puede tener permisos de interactuar con la base de datos que trabajamos en nuestro proyecto WordPress y no tener acceso a ninguna más. Esta metodología de trabajo es obligatoria en los casos en que dispongamos de más de un proyecto en un mismo hosting. Práctica obligatoria: Uso de contraseñas robustas. 6.4 Instalación WordPress subdirectorio Es un uso recomendado pero muy poco frecuente en las instalaciones WordPress. WordPress permite tener la instalación en un subdirectorio y a la vez tenerlo funcionando en la raíz de la web. Con este tipo de acciones para conectar a wp-admin el sistema interno de WordPress nos re direccionara a /nombre_subdirectorio/wp-admin de esta forma, los ataques de fuerza bruta que aplican patrones según el esqueleto de directorios serán minimizados.
  • 21. 18 WordPress Security by www.jjpeleato.com 31 de julio de 2016 6.5 Eliminar objetos Es muy peligroso tener instalados plugins y temas inactivos. Cada tema o plugin puede llegar a ser una nueva puerta de acceso. Cuantos más haya, mas tendremos que supervisar. Y por lo tanto, aumenta la posibilidad de vulnerabilidades. Eliminar todos los plugins innecesarios. Eliminar todos los plugins no activos. Eliminar todos los temas no activos. Eliminar fichero readme.html en la carpeta raíz. Eliminar etiquetas generadas por WordPress en la etiqueta <head> agregando las siguientes líneas de códigos al fichero functions.php del tema activo. remove_action('wp_head', 'rsd_link'); remove_action('wp_head', 'wp_generator'); remove_action('wp_head', 'feed_links', 2); remove_action('wp_head', 'index_rel_link'); remove_action('wp_head', 'wlwmanifest_link'); remove_action('wp_head', 'feed_links_extra', 3); remove_action('wp_head', 'start_post_rel_link', 10, 0); remove_action('wp_head', 'parent_post_rel_link', 10, 0); remove_action('wp_head', 'adjacent_posts_rel_link', 10, 0); 6.6 Ocultar directorio plugins Es recomendado ocultar los directorios de los plugins, dado que a través de la ruta http://www.example.com/wp-content/plugin/nombre_plugin podemos ver la estructura del esqueleto de estos mismos. Para evitar este problema solo es necesario crear/copiar un fichero index.php tal y como tenemos en la carpeta raíz de plugins o themes. 6.7 wp-config.php Recomendado tener permisos de solo escritura 444.
  • 22. 19 WordPress Security by www.jjpeleato.com 31 de julio de 2016 6.7.1 Prefijo tablas WordPress Práctica obligatoria. Modificar prefijo “wp_” en el proceso de instalación para la creación de tablas en la base de datos. Utilizar un prefijo de 6 caracteres (letras y números) de forma aleatoria. Ejemplo: “a1x40x_” Además, como recomendación, utilizar nombre de usuario y bases de datos concatenados con un prefijo creado con caracteres de forma aleatoria. 6.7.2 Fijar valores AUTH/SALT Modificar los valores AUTH/SALT que se encuentran dentro del fichero de la carpeta raiz wp-config.php
  • 23. 20 WordPress Security by www.jjpeleato.com 31 de julio de 2016 Tal y como nos indica WordPress generaremos nuestros propios valores y sustituiremos por los valores que nos facilita el recurso web: http://api.wordpress.org/secret-key/1.1/salt MUY IMPORTANTE: Modificar siempre valores AUTH/SALT si existe alguna vulnerabilidad en nuestra página web y ha sido hack. 6.8 .htaccess Fichero de configuración de servidor, que genera WordPress de forma automática con la instalación de la aplicación. Tiene como función mejorar la seguridad de WordPress. Ciertos plugins escriben en este fichero para aplicar seguridad u optimización al sitio web. Recomendado tener permisos de solo escritura 444. # Proteger fichero wp-config.php <Files wp-config.php> order allow,deny deny from all </Files> #Proteger fichero .htaccess <files .htaccess> order allow,deny deny from all </files> 6.9 Permisos directorios y archivos El código de WordPress está compuesto por archivos y directorios que se alojan en un servidor web, normalmente con sistema operativo Linux. Es muy importante definir los permisos de escritura, lectura y ejecución en el sitio web. Lo que nos recomienda WordPress:  Archivos – Permisos 644  Directorios – Permisos 755 Recomendación: Existen dos ficheros considerados como críticos. wp- config.php y .htaccess a los cuales hay que aplicar un nivel de permisos más restrictivo y conocido como permisos solo lectura, permisos 444.
  • 24. 21 WordPress Security by www.jjpeleato.com 31 de julio de 2016 6.10 Actualizaciones Los crackers atacan sitios con versiones antiguas, no actualizadas, dados que suelen ser sitios vulnerables al no incorporar las suficientes protecciones a tipos de ataques conocidos. Un cracker puede conocer la versión de WordPress que se está utilizando y realizar los ataques contra los exploits conocidos para dicha versión. Una versión obsoleta, es síntoma de un fallo de seguridad o algún otro bug, además, no solo WordPress, sino también los plugins y los temas tienen que actualizarse, ya que también pueden tener algún fallo de seguridad. Si no estás utilizando un plugin y lo tienes desactivado, eso no significa que estés libre de amenaza. Recomendación “casi” obligatoria el tener actualizado el núcleo de WordPress, plugins y themes a la última versión. Recursos web: https://wpvulndb.com/ http://www.wpdoctor.es/ Curiosidad: https://youtu.be/59DOLUnoGbQ
  • 25. 22 WordPress Security by www.jjpeleato.com 31 de julio de 2016 6.11 Plugins de seguridad Practica obligatoria. Instalar cualquiera de los siguientes plugins de Seguridad WordPress, que proporcionan una capa extra de protección a tu web. Muchas de las medidas de protección que podemos aplicar a nuestra instalación WordPress vienen incluidas en plugins especializados. La mayoría de ellos contienen ajustes para evitar ataques de fuerza bruta, inyecciones de código y modificaciones en archivos de sistema, incluyendo sistemas de aviso para que estés informado de cualquier posible ataque.  Wordfence Security o Plugin de seguridad que incluye varias características que contribuyen a asegurar tu web, dispone de escáner de archivos, firewall, bloqueo de redes o IP, monitorización de archivos, escáner de malware, auditoria de contraseñas, protección contra ataques de fuerza bruta, etc.  iThemes Security o Plugin de seguridad que incluye una serie de reglas divididas en cuatro áreas: esconder las vulnerabilidades de la versión de WordPress actual, protección y bloqueo contra usuarios maliciosos, detección y monitorización web al encontrar cambios en los archivos y base de datos y por último, recuperación con una fuerte política de backups programable.  All in one WP Security & Firewall o Plugin de seguridad que reduce el riesgo mediante la comprobación de vulnerabilidades, además a través de un sistema de puntuación aplica un sistema de buenas prácticas, entre ellas ocultar el famoso /wp-admin para conectar a la aplicación web, etc.  Sucuri Security o Auditor de seguridad, monitor de integridad, escáner de malware remoto, fortificación de seguridad, etc 6.12 Usuarios NO dar permisos sobredimensionados a usuarios que solo desempeñan papel de editor. Sistema de usuarios. El sistema de usuarios de WordPress, es un sistema complejo en programación pero sencillo en su gestión.
  • 26. 23 WordPress Security by www.jjpeleato.com 31 de julio de 2016 Para su gestión completa lo dividimos en dos áreas: Panel de administración:  Nombre de usuario: No editable. Nombre de usuario para hacer login en la aplicación. Corresponde a user_login en la tabla wp_users.  Alias: Nick del usuario. Corresponde a un meta dato almacenado en la tabla wp_usermeta compuesto por meta_key con el valor nickname como valor llave y meta_value con el valor introducido por el usuario.  Mostrar este nombre públicamente: Corresponde a display_name en la tabla wp_users. Base de datos tabla wp_users:  user_login: Editable desde base de datos. Usuario login. Corresponde al Nombre de usuario  user_nicename: Editable desde base de datos. Nombre utilizado en la URL para visualizar todos los post de un autor. o Obligatorio ser diferente a user_login. o No se visualiza desde el panel de administración.  display_name: Nombre utilizado para mostrar públicamente en la página web. Corresponde a mostrar este nombre públicamente. Eliminar/Editar usuario admin o administrador. Es una práctica no recomendada el uso de un nombre común como acceso a la aplicación, nombres como admin, Admin, administrador, root, etc son nombres que nunca se han de utilizar, ya que son los primeros que comprobara un cracker mediante ataques de fuerza bruta. Editar user_login y user_nicename con nombres diferentes Mediante técnicas de escáner contra un proyecto WordPress si un usuario modifica el Alias o Mostrar este nombre públicamente con un nombre diferente al usuario de login, no evitamos que puedan encontrar nuestro nombre de acceso, ya que user_nicename mantendrá el mismo nombre. Una correcta práctica es cambiar el usuario de login concatenando un prefijo de caracteres aleatorios y que nunca sea igual a user_nicename Ejemplo:  user_login c2Ia_jjpeleato  user_nicename: jjpeleato  Alias (Zona administración): jjpeleato  display_name: jjpeleato
  • 27. 24 WordPress Security by www.jjpeleato.com 31 de julio de 2016 Este problema radica en la creación de usuarios en WordPress, ya que utiliza el nombre de login para almacenar en los campos user_nicename y display_name (si no existe un alias desde el formulario de alta de usuarios). Permitir registro de usuarios Si se permiten los registros de usuario se debe proteger contra los usuarios que se registrar masivamente para intentar acceder a su configuración, añadir comentarios spam o incluso inyectar malware. Para detectar y eliminar la amenaza de sploggers una correcta práctica es la instalación del plugin. WangGuard: https://wordpress.org/plugins/wangguard/ 6.13 Contraseñas Brute force o ataque de fuerza bruta es un método utilizado para obtener contraseñas. Consiste en ir probando diferentes combinaciones comunes hasta dar con la correcta. Si utilizas contraseñas poco seguras como “123456”, “admin”, etc o contraseñas con relación a tu vida, con ataques de fuerza bruta e ingeniería social las probabilidades de que consigan obtener tu contraseña son altas. Utiliza contraseñas de 9 caracteres como mínimo, recomendable 12. Nunca utilices la misma contraseña en más de una web y utiliza combinaciones de números, letras minúsculas, mayúsculas y caracteres especiales. Además nunca utilices contraseñas que tengan relación con tu vida. Recursos web: http://www.clavesegura.org/ https://howsecureismypassword.net/ Recursos apps: https://lastpass.com/ http://keepass.info/ Curiosidad: https://youtu.be/Q17yhbmmux8 6.14 Login Desactivar errores Anular los errores de la página de Login y mostrar cualquier mensaje informativo genérico, de esta forma evitamos que WordPress de información importante, como que el ERROR: Nombre de usuario inválido o ERROR: La contraseña que introdujo para el usuario “x” no sea correcta. Agregando la siguientes líneas de código al fichero functions.php del tema activo.
  • 28. 25 WordPress Security by www.jjpeleato.com 31 de julio de 2016 function login_errors_message() { return 'Error: Nombre de usuario o contraseña incorrectos'; } add_filter('login_errors', 'login_errors_message'); Limitar accesos Mediante intentos masivos de acceso a través de la página de Login se realizan la mayoría de ataques contra sitios WordPress, es imprescindible proteger el acceso y aplicar medidas de seguridad. Inhabilitar el registro de usuarios, añadir un sistema de comprobación humano como reCaptcha o WP Captcha e instalar un plugin para evitar y bloquear acceso masivos como Limit login attempts. Cambiar URL login Por defecto, WordPress dispone de un sistema de rutas de login para acceder al panel de administración http://example.com/wp-admin y accedes a través de http://example.com/wp-login.php Las vulnerabilidades de plugins o themes obsoletos pueden ser backdoors por las cuales un cracker realizar sus ataques contra el sistema de login. Como correcta práctica es la instalación del plugin: Rename wp-login.php: https://wordpress.org/plugins/rename-wp-login/ 6.15 Headers Agregar cabeceras de seguridad añadiendo el siguiente código en el fichero functions.php de /wp-content/themes/theme_name_active. add_action( 'send_headers', 'add_header_security' ); function add_header_security() { header( 'X-Content-Type-Options: nosniff' ); header( 'X-Frame-Options: SAMEORIGIN' ); header( 'X-XSS-Protection: 1;mode=block' ); } header( 'X-Content-Type-Options: nosniff' ) - Tiene como función para aquellos navegadores que soportan esta condición, no cargar las hojas de estilos y scripts cuyo Myme-type no sea el adecuado.
  • 29. 26 WordPress Security by www.jjpeleato.com 31 de julio de 2016 header( 'X-Frame-Options: SAMEORIGIN' ) – Tienen como función prevenir que la página pueda ser abierta en un frame o ifreame. De esta forma se pueden evitar ataques clickjacking sobre tu web. header( 'X-XSS-Protection: 1;mode=block' ) - Activar para aquellos navegadores que disponen de la funcionalidad el filtro XSS. Capa de seguridad adicional que bloquea ataques XSS. Internet Explorer lo implementa desde su versión 8. 6.16 SPAM Una de las tareas habituales de cualquier administrador de un gestor de contenidos es controlar el SPAM en los comentarios. Evitar contenido innecesario, enlaces no deseados y posible inyección de código. Para evitar este tipo de prácticas se recomienda el uso de los siguientes plugins:  WP Captcha  WP-SpamShield Anti-Spam  Akismet 6.17 PingBack Existe una vulnerabilidad denominada vulnerabilidad PingBack que tiene como función habilitar el protocolo XML-RPC que nos permite que WordPress conecte con la aplicación WordPress para iOS o Android, así como editores offline y algunos sistemas de contenidos. El aplicar una solución, deja inactivas funciones importantes de WordPress como la gestión remota, el uso de aplicaciones móviles o incluso el sistema de pingbacks y trackbacks. Si un proyecto tiene definido el no uso de este tipo de aplicaciones debe aplicar las siguientes recomendaciones. Agregar en el fichero .htaccess # Proteger XMLRPC <Files xmlrpc.php> Order Deny,Allow Deny from all </Files> #END Proteger XMLRPC
  • 30. 27 WordPress Security by www.jjpeleato.com 31 de julio de 2016 Eliminar el archivo xml-rpc.php de la carpeta raíz o renombrar a xml- rpc.php.disabled. 6.18 HTML Prevenir y desactivar el código HTML en los comentarios. No borra el código, sino que lo procesa para que no se ejecute. add_filter('pre_comment_content', 'wp_specialchars'); 6.19 Google Search Console (Webmaster Tools) Dar de alta tu sitio en la aplicación Google Search Console para que Google te informe de:  Inyecciones de código  Avisos de problemas de usabilidad  Problemas de velocidad  Enlaces maliciosos  Paginas no encontradas 7.0 Instalación 7.1 WordPress desde 0. 1) Descargar última versión WordPress desde la página oficial y descomprimir ficheros en carpeta raíz: https://wordpress.org/ https://es.wordpress.org/ 2) Creación de BBDD a utilizar. CREATE DATABASE dbname CHARACTER SET utf8 COLLATE utf8_general_ci; 3) Modificación fichero configuración. En la carpeta raíz crear una copia y renombrar el fichero wp-config-sample.php a wp-config.php. Y modificamos las siguientes líneas de código. Añadir nombre de la base de datos: define('DB_NAME', 'dbname ');
  • 31. 28 WordPress Security by www.jjpeleato.com 31 de julio de 2016 Añadir usuario base de datos: define('DB_USER', 'dbuser'); Añadir contraseña usuario base de datos: define('DB_PASSWORD', 'dbpassword'); Añadir hostname proyecto web. Por defecto “localhost” define('DB_HOST', 'localhost'); Añadir formato de codificación de tablas. Por defecto “utf8” define('DB_CHARSET', 'utf8'); Añadir asociación de caracteres o letras asociadas en formato no unicode. Por defecto se encuentra vacio. define('DB_COLLATE', 'utf8_general_ci'); 4) Modificación seguridad. Visitamos la página web y sustituimos el código PHP en el fichero de configuración wp-config.php. https://api.wordpress.org/secret-key/1.1/salt/ 5) Para desarrolladores. Activamos el modo debug de WordPress. define('WP_DEBUG', true); 6) Visitar la página web desde nuestro navegador y continuar los pasos que nos indica la interfaz para la correcta instalación. Nos solicitara una serie de información necesaria. Todos los datos pueden ser modificados a posterior desde el panel de administración o desde la base de datos. Trabajar con contraseñas robustas.  http://localhost/wordpress  Título del sitio: wp-example  Nombre de usuario: example  Contraseña: 1234 (Se almacena en formato encriptación MD5)  Correo electrónico: example@example.com  Privacidad. Una vez rellenado toda la información pulsamos en Instalar WordPress. 7) Se recomienda borrar los archivos install.php y upgrade.php de la carpeta wp-admin tras la instalación y por seguridad. 8) Eliminar la línea del archivo readme.html en donde aparece la versión de WordPress.
  • 32. 29 WordPress Security by www.jjpeleato.com 31 de julio de 2016 9) Modificar instalación WordPress a subdirectorio con un nombre de 6 caracteres aleatorios compuesto por números, letras minúsculas y sin caracteres especiales. 1) Entramos a la sección Ajustes > Generales desde el panel de administración. a. Dirección de WordPress (URL): Introducir dominio más nombre de carpeta separado por “/” http://www.example.com/a3x91l b. Dirección del sitio (URL): Introducir dirección de la página web (nombre dominio) sin incluir el nombre de la carpeta. http://www.example.com Guardamos cambios. Nota: No intentes visitar la página web, nos mostrara un mensaje de error. 2) Copiar (no cortar/mover) fichero index.php desde el directorio donde está instalado WordPress al directorio raíz de nuestra web, normalmente carpeta public_html. 3) Editar código fichero index.php a. Antes: require(„./wp-blog-header.php‟); b. Después: require(„./a3x91l/wp-blog-header.php‟); 10) Entramos a la sección Ajustes > Enlaces permanentes y seleccionamos Estructura personalizada agregamos la siguiente sintaxis: /%post_id%/%postname%/ Y guardamos cambios para que WordPress genere toda la nueva estructura de enlaces permanentes. 11) Aplicar buenas prácticas pos instalación.  Instalación plugin seguridad  Política de copias de seguridad  Modificar usuario administrador base de datos  Eliminar objetos  Permisos directorios y ficheros  Permisos wp-config.php  Editar .htaccess y modificar permisos  Bloquear Login  SPAM  PingBack  HTML  Google Search Console
  • 33. 30 WordPress Security by www.jjpeleato.com 31 de julio de 2016 7.2 WordPress desde copia de seguridad. Nota: Para poder realizar este paso es necesario tener una copia de seguridad estable tanto del código, cómo de la base de datos en formato SQL. 1) Descomprimir ficheros de la copia de seguridad en la carpeta raíz. 2) Creación de BBDD a utilizar según el nombre que existe en el fichero de configuración. CREATE DATABASE dbname CHARACTER SET utf8; 3) Ejecutar script SQL de la copia de seguridad de la BBDD o importar desde phpMyAdmin. mysql –uroot –ppassword source script.sql 4) IMPORTANTE. Modificar registros URL‟s de configuración en la tabla “wp_options” en la base de datos por la dirección nueva. Registro “option_name” con valor “siteurl”. Normalmente “option_id” con valor “1”. UPDATE wp_options SET option_value = 'http://www.new-domain.com' WHERE option_name = 'siteurl'; Registro “option_name” con valor “home”. Normalmente “option_id” con valor “2”. UPDATE wp_options SET option_value = 'http://www.new-domain.com' WHERE option_name = 'home'; También, puedes ejecutar una consulta única para la modificación de los registros. UPDATE wp_options SET option_value = replace(option_value, 'http://www.old-domain.com', 'http://www.new-domain.com') WHERE option_name = 'home' OR option_name = 'siteurl'; 5) IMPORTANTE. Actualizar todos los registros a nivel de contenidos del dominio anterior por nuevo. UPDATE wp_posts SET post_content = replace(post_content, 'http://www.old-domain.com', 'http://www.new-domain.com');
  • 34. 31 WordPress Security by www.jjpeleato.com 31 de julio de 2016 Nota: Existe un campo almacenado en la tabla wp_posts que tiene relación con el sistema de URL‟s para la funcionalidad RSS. Es necesario modificar estos registros si nuestro portal ofrece esta opción. UPDATE wp_posts SET guid = replace(guid, 'http://www.old- domain.com','http://www.new-domain.com'); 6) IMPORTANTE. Existe la posibilidad de que no tengamos acceso al usuario administrador de WordPress. Procedemos a modificar el usuario desde la base de datos. UPDATE `wp-example`.`wp_users` SET `user_login` = 'example', `user_email` = 'jjpeleato@gmail.com', `user_pass` = MD5('1234'), `user_nicename` = 'example', `user_status` = '0', `display_name` = 'example' WHERE `wp_users`.`ID` = 1; 7) Para el correcto funcionamiento del portal web y su navegación a entradas y páginas es necesario recrear todo el sistema de enlaces permanentes (Permalinks). Para ello, visitamos “Ajustes” > “Enlaces permanentes” y sin realizar ninguna modificación guardamos. El propio sistema de WordPress se encargara de recorrer todo el sistema de enlaces internos para modificar en su estructura el antiguo dominio por el nuevo. Consejo: Agregamos en Estructura personalizada la siguiente sintaxis: /%post_id%/%postname%/ 8) Una vez realizado todos los pasos visitamos la página WordPress y aplicamos buenas prácticas. 8.0 Como limpiar WordPress Las medidas que se exponen a continuación no son sencillas y requieren de ciertos conocimientos técnicos, y de accesos fuera de lo habitual a tu WordPress. Debes disponer de las siguientes herramientas:  Acceso FTP a tu servidor o a un administrador de ficheros como cPanel  Acceso a la herramienta de gestión MySQL o a una interfaz de administración desde página web como phpMyAdmin  Editor de texto avanzado: Notepad++ o Sublime  Instalación entorno AMP en local. o https://www.apachefriends.org/es/index.html o http://www.wampserver.com/en/ o https://bitnami.com/stack/wordpress
  • 35. 32 WordPress Security by www.jjpeleato.com 31 de julio de 2016 8.1 Página en mantenimiento Poner sitio web en modo mantenimiento, descargaremos todo el código y exportaremos la base de datos. Una vez que dispongamos de una copia de seguridad con la última versión, eliminamos todo el proyecto y base de datos y crearemos un fichero 503.php en la carpeta raíz. <?php header("HTTP/1.1 503 Service Temporarily Unavailable"); header("Status: 503 Service Temporarily Unavailable"); header("Retry-After: 3600"); ?> <html> <h1>Página web en mantenimiento</h1> </html> Por último, crearemos un fichero .htaccess que tendrá como función redireccionar todo el tráfico de la web hacia el archivo .php RewriteEngine on RewriteCond %{REMOTE_ADDR} !^111.111.111.111 RewriteCond %{REQUEST_URI} !/503.php$ [NC] RewriteRule .* /503.php [R=302,L] 8.2 Reiniciar contraseñas Cambiar todas las contraseñas que afectan en el proyecto.  Modificar contraseñas a todos los usuarios administradores.  Modificar contraseña acceso panel de control hosting.  Modificar contraseña cuenta FTP.  Modificar contraseña usuario base de datos. o Al modificar la contraseña de la base de datos será necesario cambiarla inmediatamente en el fichero wp-config.php  Cambiar claves de autentificación de WordPress (AUTH/SALT) 8.3 Copia de seguridad Si disponemos de una copia de seguridad estable y con la mínima perdida de información. La opción más rápida y a la vez segura, es restaurar WordPress desde la copia de seguridad.
  • 36. 33 WordPress Security by www.jjpeleato.com 31 de julio de 2016 8.4 Base de datos Búsqueda SQL tabla wp_options SELECT * FROM wp_options WHERE ( option_id LIKE '%base64_decode%' OR option_name LIKE '%base64_decode%' OR option_value LIKE '%base64_decode%' OR autoload LIKE '%base64_decode%' OR option_id LIKE '%edoced_46esab%' OR option_name LIKE '%edoced_46esab%' OR option_value LIKE '%edoced_46esab%' OR autoload LIKE '%edoced_46esab%' OR option_name LIKE 'wp_check_hash' OR option_name LIKE 'class_generic_support' OR option_name LIKE 'widget_generic_support' OR option_name LIKE 'ftp_credentials' OR option_name LIKE 'fwp' OR option_name LIKE 'rss_%' AND option_name != 'rss_language' AND option_name != 'rss_use_excerpt' AND option_name != 'rss_excerpt_lenght' ) ORDER BY option_id; Busqueda SQL tabla wp_post SELECT * FROM wp_posts WHERE ( post_content LIKE '%iframe%' OR post_content LIKE '%script%' OR post_content LIKE '%noscript%' OR post_content LIKE '%display: none%' OR post_content LIKE '%visibility: hidden%' OR post_content LIKE '%position: absolute%' OR post_content LIKE '%hidden%' OR post_content LIKE '%top: -%' OR post_content LIKE '%bottom: -%' OR post_content LIKE '%right: -%' OR post_content LIKE '%left: -%' OR post_content LIKE '%-9999px%' ) ORDER BY ID;
  • 37. 34 WordPress Security by www.jjpeleato.com 31 de julio de 2016 8.5 Restaurar core Descargamos la versión exacta de nuestra página web desde la página oficial de WordPress. https://wordpress.org/download/release-archive/ Para verificar con que versión de WordPress trabajamos, desde el panel de administración, arriba a la izquierda, pulsamos en el logotipo de WordPress. Una vez verificada y descarga la misma versión, eliminamos todos los directorios y archivos de WordPress, menos la carpeta wp-content y wp- config.php MUY IMPORTANTE: Nunca se debe descargar otra versión, puede generar problemas de incompatibilidad. Una vez descargada la versión del repositorio de WordPress, debemos descomprimir en otra ruta, nunca hacerlo en la carpeta raíz, ya que no queremos sobrescribir nada de wp-content y copiar todos los ficheros de la carpeta raíz y los directorios wp-admin y wp-includes.
  • 38. 35 WordPress Security by www.jjpeleato.com 31 de julio de 2016 8.6 Restaurar plugins Verificamos la versión exacta de cada uno de los plugins a restaurar, ya que cualquiera de los plugins puede estar comprometido. Para descargar la versión exacta, desde el repositorio oficial de WordPress, en los detalles de los plugins, hay una sección (página en inglés) llamada Developers. Nota: Esta sección no aparece en la página web en castellano. Ejemplo: https://wordpress.org/plugins/wordfence/developers/ Una vez descargada la versión exacta de todos los plugins, eliminamos uno por uno el directorio del plugin y pegamos la versión estable y limpia. Nota: No mover o copiar. Si eliminar y copiar.
  • 39. 36 WordPress Security by www.jjpeleato.com 31 de julio de 2016 8.7 Buscar código malicioso No siempre será posible restaurar en producción una copia estable dada la actividad de nuestra página web o si se trata de un e-commerce. Una de las tareas más difíciles y complicadas, es realizar una búsqueda manual del código malicioso. Para ello, disponemos de herramientas las cuales nos pueden ayudar a esta ardua tarea. Recursos web: https://goo.gl/u3bR0x https://sitecheck.sucuri.net/ https://www.screamingfrog.co.uk/ Recurso app: https://sourcegear.com/diffmerge/ https://notepad-plus-plus.org/ https://www.sublimetext.com/ Recursos plugins: https://es.wordpress.org/plugins/exploit-scanner/ Para la búsqueda de código malicioso, trabajaremos con la carpeta wp- content/themes, dado que el resto de archivos y directorios deberían estar limpios al restaurar el core y plugins. Con la ayuda de programas como notepad++ y sublime, realizaremos búsquedas de forma recursiva a partir del directorio raíz del theme. Ejemplos de patrones de búsqueda de código malicioso:  base64_decode  eval(  eval(base64  eval(base64_decode  header(„Location  <script  <iframe style=”width:0;height:0;”  Revisar todos los index.php que ocultan directorios  Revisar URL‟s maliciosas según patrón detectado en Google Search Console.  … Existen muchas opciones posibles de búsqueda y que no son lo más conocidos. Para ello, utilizaremos como segunda herramienta: DiffMerge. Software que tiene como función comparar ficheros y verificar que existen cambios en su código, además, te muestra en que línea de código y que
  • 40. 37 WordPress Security by www.jjpeleato.com 31 de julio de 2016 código ha sido modificado. Entre otras características, también te muestra los ficheros creados nuevos y que no existían en la anterior copia de seguridad. Por último, debemos analizar la carpeta uploads y asegurarnos de que no existen ficheros php, js, css, etc. En este momento, tienes una instalación de WordPress prácticamente limpia y todo debe estar funcionado bien. 8.8 Aplicar buenas prácticas Una vez finalizado todo el proceso de limpieza de malware en nuestro portal web. El último paso es aplicar buenas prácticas a nuestra página. Entre ellas, destacaría, la actualización de core¸ plugins y themes a la última versión y si no es suficiente, como último recurso aplicar permisos 444 (solo lectura) a todo el proyecto menos a la carpeta uploads. Por último, solicitar en Google Webmaster Tools realizar un escáner a tu sitio web para eliminarnos de las listas de sitios infectados. 9.0 Conclusión Con este tutorial has podido adentrarte en el mundo de la seguridad informática, conocer los diferentes tipos de ataques que existen y a los que toda aplicación web está sometida, aprender, paso a paso, a dotarte de herramientas que permitan blindar tu proyecto WordPress. En este tutorial se te ha ofrecido respuestas, soluciones y trucos que te permitirán configurar una estrategia de seguridad para tu WordPress. Conocer las claves para evitar las amenazas más comunes y en caso de ser atacado o infectado, contar con los recursos y conocimientos para limpiar o restaurar tu web. Gracias de antemano y un saludo José J. Peleato Pradel. “La seguridad no sólo depende de WordPress, sino del que lo usa”. @jjpeleato www.jjpeleato.com