Seguridad en WordPress, fundamentos y mejores prácticas
-
Upload
lucy-tomas -
Category
Presentations & Public Speaking
-
view
694 -
download
3
Transcript of Seguridad en WordPress, fundamentos y mejores prácticas
WordPress Valencia#wpvalencia @_wpvalenciaTwitter
Web http://www.wpvalencia.org
Lucy Tomas Cross
@_lucymtcTwitterWeb http://lucytomas.com
http://wptips.meBlog
Desarrollo web. Desarrollo plugins WordPress a medida.
#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.
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.
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
#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.comWPScan Vulnerability Database
Blog Sucuri
http://www.wordfence.com/blog/Blog Wordfence
- 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
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.
Elegir Proveedor de alojamiento
Alojamiento AdministradoPuede ser compartido, servidor dedicado o VPS.El usuario se encarga de la seguridad de su WordPress. El proveedor se encarga de la seguridad del servidor.
Alojamiento NO AdministradoServidor dedicado o VPS.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
#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');
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}&');
#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]√
Después de la instalación
Usuario no administrador.Crear un usuario Editor para publicar el contenido.
DB: ID por defecto del administradorCambiar el ID del administrador en tablas users y usermeta.
DB: Campo user_nicenameCambiar el campo user_nicename. user_nicename y display_name no deben tener el mismo valor que user_login.
Nombre y Apellidos administradorPoner siempre un nombre y apellidos al administrador.
Contenido de ejemplo Eliminar Themes y Plugins que no se usan.
#wpvalencia
Permisos de archivos y carpetasArchivos 644 Carpetas 755
Bloquear acceso a carpeta wp-includes# Block the include-only files.<IfModule mod_rewrite.c>RewriteEngine OnRewriteBase /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,denydeny 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
Sistema de BACKUP
Instalar un plugin para realizar copias de seguridad.Y!!! verificar que funciona.
#wpvalenciaRepito….
#wpvalenciaInstalar 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 .htaccessProtect System Files
Protege contra ataques de fuerza bruta.Enable BruteForce Protection
No permitir archivos php en la carpeta uploads.Disable PHP in Uploads
#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.comDefault Blacklist
Malware Scan. API de virustotal.comMalware 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
Instalar plugin contra Spam en Comentarios
#wpvalencia
https://wordpress.org/plugins/zero-spam/
https://wordpress.org/plugins/akismet/
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 AutheticationClef https://wordpress.org/plugins/wpclef/
Educar al cliente.
#wpvalencia
SSL (Secure Sockets Layer)
Conocer lo que instalamos (plugins y themes).
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.
Agradecimientos a:- Networking - Sala de juntas - Amplio Horario - Espacio único - Mensajería Low Cost - Conserjería y recepción
http://www.svcoworkingvalencia.es/[email protected]
#wpvalencia
twitter @svcoworking