Este documento presenta una introducción a la seguridad en WordPress, incluyendo pilares clave como mantener el sitio actualizado, usar contraseñas fuertes, realizar copias de seguridad y elegir un proveedor de alojamiento seguro. También cubre amenazas comunes como ataques de fuerza bruta y recomendaciones para la instalación y configuración segura de WordPress.
3. #wpvalencia
WordPress és SEGURO.
- La responsabilidad está en el usuario. La seguridad de tu web
depende de ti.
- La reputación de WordPress sobre la falta de seguridad se debe a
que gran parte de los usuarios no siguen las buenas prácticas para
mantener su web segura.
5. Diversión.
Dinero.
#wpvalencia
Ideales. Grupos radicales.
Algunos ejemplos:
- Insertar links, redirecciones. (Viagra, Cialis….)
- Insertar keywords para el propio beneficio.
- Formar ejercito para atacar a un sitio web
más grande.
- Acceder al visitante desde el navegador.
7. Ataques de fuerza bruta
Recuperar contraseñas probando todas las combinaciones posibles.
O probando las contraseñas más utilizadas por los usuarios, o por diccionario.
SQL Injections
Infiltración de código intruso en la base de datos. Este tipo de inyecciones afectan directamente al servidor.
Cross Site Scripting
(Secuencias de comandos en sitios cruzados)
Ataque al lado cliente, no al servidor. Se inyecta y ejecuta código javascript en las páginas visitadas por un
usuario.
Cross Site Request Forgery
Una vez que te has identificado otros sitios pueden hacerse pasar por ti.
DDOS
(Ataque de denegación de servicios)
Se genera mediante la saturación de los puertos con flujo de información, haciendo
que el servidor se sobrecargue y no pueda seguir prestando servicios.
#wpvalencia
9. #wpvalencia
Tener al día WordPress con la última versión disponible.
Las pequeñas actualizaciones 3.9.X, 4.0.X… suelen llevar parches de seguridad.
Actualizar siempre Plugins y Themes.
Actualizaciones
Enlaces de interés:
https://blog.sucuri.net
https://wpvulndb.com
WPScan Vulnerability Database
Blog Sucuri
http://www.wordfence.com/blog/
Blog Wordfence
10. - Contraseñas largas, no legibles, con $@!?^#], números y mayúsculas.
- Contraseña única para cada sitio web, usar gestor de contraseñas.
- Cambiar las contraseñas de manera regular.
Contraseñas fuertes
Clave 8 letras = 52 segundos
Clave 8 números y letras = 11 minutos
Con Mayusculas/!@#$ = 3 horas
12 letras/números/mayusculas/!@#$ = 2 mil años
1Password LastPass KeyPass
#wpvalencia
11. Copias de Seguridad
#wpvalencia
Tener un plan de Backup y no dejarlo todo en manos del hosting.
Guárdalos en la nube. (Dropbox, Google Drive,Amazon…)
Automatízalos, no confies en ti.
Verifica que funcionan, realiza una restauración de prueba.
12. Elegir Proveedor de alojamiento
Alojamiento Administrado
Puede ser compartido, servidor dedicado oVPS.
El usuario se encarga de la seguridad de su WordPress.
El proveedor se encarga de la seguridad del servidor.
Alojamiento NO Administrado
Servidor dedicado oVPS.
El usuario se encarga de toda la seguridad.
WordPress Managed Hosting (alojamiento gestionado)
Menos preocupaciones.
Expertos en WordPress gestionan la web y trabajan contigo.
( WPEngine, Pagely, Siteground, Synthesis, GoDaddy, Dreamhost, Bluehost, … )
#wpvalencia
14. #wpvalencia
Archivo wp-config.php
Cambiar el prefijo de las tablas para la base de datos.
Renombrar la carpeta wp-content.
$table_prefix = 'rg5htg_';
define( 'WP_CONTENT_DIR', dirname(__FILE__) . '/mi-contenido' );
define( 'WP_CONTENT_URL', 'http://' . $_SERVER['HTTP_HOST'] . ‘/mi-contenido' );
Definir la URL del sitio web.
define('WP_HOME','http://www.mi-dominio.com');
define('WP_SITEURL','http://www.mi-dominio.com');
15. Cambiar las claves secretas para la encriptación de cookies.
define('AUTH_KEY', 'put your unique phrase here');
define('SECURE_AUTH_KEY', 'put your unique phrase here');
define('LOGGED_IN_KEY', 'put your unique phrase here');
define('NONCE_KEY', 'put your unique phrase here');
define('AUTH_SALT', 'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT', 'put your unique phrase here');
define('NONCE_SALT', 'put your unique phrase here’);
https://api.wordpress.org/secret-key/1.1/salt/
#wpvalencia
define('AUTH_KEY', 'Dv70c+}yQ:eQ^kQbws`zZ3*^X){? nqDHW+`*$:<9Xjpl]HNIC~}]Cv/E^~Mj2vP');
define('SECURE_AUTH_KEY', 'ZT7[%Ou26ZWt-2]-Sfm+<sc+N+|:n^Tr6?4uK^p|7s:is 0I6n9,sy&6(134=cz ');
define('LOGGED_IN_KEY', 'Tl=GEwBQw|TO6pq+72@<TYl6H(>/KKQ {P8tL/19bkl`eRi 1k](^#`lKinN0xNG');
define('NONCE_KEY', 'F|-HlzFg&N@|BS<}VY7H%xM5m`<4Rfz+%>p;z0`1pzS(jG!u2VdbjRwDVknA]eQA');
define('AUTH_SALT', 'Y;Z<rZSB3,;|}!PHy&/oA<tb?LTxQD[eeeg@p-+Jc[poK=ns&twVAFY7mD<LNQ)U');
define('SECURE_AUTH_SALT', 'M@`?mwSdO3?>U#D5@);r{DV2[#{l@{2OB-.-.*_wN_WsoJ:M[c!SW1M^N-hX{-sE');
define('LOGGED_IN_SALT', '&|+Q_eA||y{RHRbD>7B8`YJ-*D/0?u)B0LDU}-+t{Vxm2)*-0@,$oqT-T,M c`(x');
define('NONCE_SALT', ‘kZ&l?sb2R)$&(mRm*u8Ju#o8i-s3!T2H&q]}$rp2g_193g1K,?$_l:|g5~GlRJ}&');
17. #wpvalencia
Elegir un nombre de administrador que no sea “admin”.
Todavía mejor si contiene algún carácter especial @, #, $…
Nombre de usuario
Elegir una contraseña fuerte, que no se pueda averiguar mediante datos
personales y que no sea una palabra del diccionario. Larga con números, letras,
mayúsculas y caracteres especiales.
Contraseña
ZVgu,=zZ3AJb%n.X3ExT9^spH]√
18. Después de la instalación
Usuario no administrador.
Crear un usuario Editor para publicar el contenido.
DB: ID por defecto del administrador
Cambiar el ID del administrador en tablas users y usermeta.
DB: Campo user_nicename
Cambiar el campo user_nicename.
user_nicename y display_name no deben tener el mismo valor que user_login.
Nombre y Apellidos administrador
Poner siempre un nombre y apellidos al administrador.
Contenido de ejemplo
EliminarThemes y Plugins que no se usan.
#wpvalencia
19. Permisos de archivos y carpetas
Archivos 644 Carpetas 755
Bloquear acceso a carpeta wp-includes
# Block the include-only files.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]
</IfModule>
Bloquear acceso a archivo wp-config.php
<files wp-config.php>
order allow,deny
deny from all
</files>
#wpvalencia
Nota: Estos pasos pueden ser gestionados por un plugin de seguridad
otros .htaccess snippets: https://codex.wordpress.org/Brute_Force_Attacks
20. Sistema de BACKUP
Instalar un plugin para realizar copias de seguridad.
Y!!! verificar que funciona.
#wpvalencia
Repito….
21. #wpvalencia
Instalar plugin de Seguridad
https://wordpress.org/plugins/better-wp-security/
(formerly Better WP Security)
Cambiar la URL de acceso a la página de Login.
Hide Login Area
Prohibir acceso público a readme.html, readme.txt, wp-config.php, install.php,
wp-includes, y .htaccess
Protect System Files
Protege contra ataques de fuerza bruta.
Enable BruteForce Protection
No permitir archivos php en la carpeta uploads.
Disable PHP in Uploads
22. #wpvalencia
Prohibir la posibilidad de examinar el contenido de los directorios.
Disable Directory Browsing
Eliminar permisos de escritura en archivos.
Cambia los permisos de 0664 a 0444 para wp-config.php y .htaccess.
Remove File Writing Permissions
Incluir blacklist de HackRepair.com
Default Blacklist
Malware Scan.API de virustotal.com
Malware Scanning
Prohibir al usuario “admin” de forma automática.
Automatically ban “admin” user
Filtrar las consultas sospechosas en la URL.
Filter Suspicious Query Strings in the URL
23. Instalar plugin contra Spam en Comentarios
#wpvalencia
https://wordpress.org/plugins/zero-spam/
https://wordpress.org/plugins/akismet/
24. VPN (Virtual Private Network) en Redes no seguras (biblioteca, cafetería, hotel,…)
CLOAK (mac) desde $2.99/mes www.getcloak.com
Otros Consejos
Acceso a archivos por SFTP o SSH
Two Factor Authetication
Clef https://wordpress.org/plugins/wpclef/
Educar al cliente.
#wpvalencia
SSL (Secure Sockets Layer)
Conocer lo que instalamos (plugins y themes).
28. 1 - Cambiar todas las contraseñas (HOST,WP, FTP, BD)
#wpvalencia
2 - Descargar y guardar la carpeta wp-content
3 - Hacer un scan de la máquina local.Asegurarse que el ordenador
no esta infectado.
4 - Eliminar www/ cron/ plugins/ themes/ de wp-content,
todo lo que puedas y no usas.
5 - Subir una nueva copia de WordPress menos la
carpeta wp-content
6 - Añadir de nuevo wp-content, verificando cada archivo
manualmente. Buscar comando eval seguido de base64
7 -Vuelve a cambiar todas las contraseñas.
29. Agradecimientos a:
- Networking
- Sala de juntas
- Amplio Horario
- Espacio único
- Mensajería Low Cost
- Conserjería y recepción
http://www.svcoworkingvalencia.es/
info@svcoworkingvalencia.es
#wpvalencia
twitter @svcoworking