Seguridad WordPress Meetup Majadahonda

20
WordPress Majadahonda 2015

Transcript of Seguridad WordPress Meetup Majadahonda

Page 1: Seguridad WordPress Meetup Majadahonda

WordPress Majadahonda 2015

Page 2: Seguridad WordPress Meetup Majadahonda

Seguridad en WordPressPedro Santos

Page 3: Seguridad WordPress Meetup Majadahonda

La seguridad empieza por uno mismo

Contraseñas Seguras y diferentesS.O. y navegadores actualizadosAntivirus completos, PC y Mac

Core, plugins y themes actualizadosNUNCA UTILIZAR THEMES Y PLUGINS NULLED

BACKUPS

Page 4: Seguridad WordPress Meetup Majadahonda

Instalando WordPress

Nombre de la Base de Datos, no usar wpPrefijo tablas de la BD, no usar wp

No usar admin, Admin, Administrator, administrator, nombre de dominio

Page 5: Seguridad WordPress Meetup Majadahonda

robots.txtUser-agent: * Disallow: /wp-admin/Disallow: /wp-includes/Disallow: /cgi-bin/

# No indexar archivos con extensiónDisallow: /*.php$Disallow: /*.js$Disallow: /*.inc$Disallow: /*.css$Disallow: /*.gz$Disallow: /*.wmv$Disallow: /*.cgi$Disallow: /*.xhtml$Disallow: /*?*

# LIMITAR BOTS Yahoo, MSN y NoxtrumUser-agent: noxtrumbotCrawl-delay: 50User-agent: msnbotCrawl-delay: 30User-agent: SlurpCrawl-delay: 10

Page 6: Seguridad WordPress Meetup Majadahonda

Ataques de fuerza en brutoDoble autenticación

Creamos dos archivos en la raíz del hosting.htaccess y .wpadmin

Contenido .htaccessErrorDocument 401 "Unauthorized Access"ErrorDocument 403 "Forbidden"<FilesMatch "wp-login.php">AuthName "Authorized Only"AuthType BasicAuthUserFile /home/usuario/.wpadminrequire valid-user</FilesMatch>

Contenido .wpadminhttp://www.htaccesstools.com/htpasswd-generator/ pepitodelospalotes:$apr1$Vo5OdtZe$irw0TeFV.ImpUFKIVDL/A

Page 7: Seguridad WordPress Meetup Majadahonda

Ataques de fuerza en brutoDirección ip única

Desde el .htaccess de WordPress

<Files wp-login.php>order deny,allowallow from xxx.xxx.xxx.xxxdeny from all</Files>

Sustituir xxx.xxx.xxx.xxx por nuestra ip

Page 8: Seguridad WordPress Meetup Majadahonda

Plugins Doble factor

• Clef Two-Factor Authentication

• Latch

• Two Factor Authentication

• Duo Two-Factor Authentication

Page 9: Seguridad WordPress Meetup Majadahonda

Protección en .htaccess de WordPress# sin acceso a proc/self/environRewriteCond %{QUERY_STRING} proc/self/environ [OR]

# bloquear cualquier script que trate de establecer un valor mosConfig a traves de una URLRewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]

# bloquear cualquier script que trate de colocarte codigo codificado base64_encode a traves de una URLRewriteCond %{QUERY_STRING} base64_encode.*(.*) [OR]

# bloquea cualquier script que incluya la tag <script> en la URLRewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR]

# bloquea cualquier script que trate de establecer la variable PHP GLOBALS a traves de una URLRewriteCond %{QUERY_STRING} GLOBALS(=|[|\%[0-9A-Z]{0,2}) [OR]

# bloquea cualquier script que trate de modificar una variable _REQUEST a traves de una URLRewriteCond %{QUERY_STRING} _REQUEST(=|[|\%[0-9A-Z]{0,2})

# proteger wp-config.php<files wp-config.php>order allow,denydeny from all</files>

Page 10: Seguridad WordPress Meetup Majadahonda

Protección de los headers en .htaccess de WordPress

<IfModule mod_headers.c> Header set X-XSS-Protection "1; mode=block”</IfModule>

<IfModule mod_headers.c> Header set X-Content-Type-Options nosniff</IfModule>

<IfModule mod_headers.c>Header always append X-Frame-Options SAMEORIGIN</IfModule>

Page 11: Seguridad WordPress Meetup Majadahonda

Protección de directorios con .htaccess

wp-content y wp-content/uploads<Files *.php>deny from all</Files>

<Files *.php>deny from all</Files>

wp-includes

Page 12: Seguridad WordPress Meetup Majadahonda

Protección contra edición de plugins y themes

Incluir en wp-config.php

define('DISALLOW_FILE_EDIT', TRUE);

Page 13: Seguridad WordPress Meetup Majadahonda

Archivos que se pueden borrar de WordPress

readme.htmlxmlrpc.php

Page 14: Seguridad WordPress Meetup Majadahonda

Aquellos maravillosos plugins para WordPress

Page 15: Seguridad WordPress Meetup Majadahonda

Wordfence antivirus, firewall-Scanner antimalware-Comparador archivos-Restauración de archivos-Firewall bloqueo bots-Bloqueo ipv4+ipv6 y rangos-Doble factor autenticación-Bloqueo países -Auditoría contraseñas-Network Wordfence-Ataques fuerza en bruto-Caché (Falcon)-Protección directorios-Aviso actualizaciones

Page 16: Seguridad WordPress Meetup Majadahonda

Sucuri Security

-Scanner antimalware-Modificación archivos-Aviso login-Oculta versión WordPress-Protege directorio uploads-Protege directorio wp-content-Protege directorio wp-includes -Chequea Security Keys (salts)-Elimina readme.html-Bloquea edición themes y plugins-Chequea prefix BD-Borra archivo error_log-Herramientas post hack, reset de salts, contraseña y plugins

Page 17: Seguridad WordPress Meetup Majadahonda

Ninjafirewall WAF-Estadísticas intentos hacks-Comparador archivos-Firewall múltiple opciones-Políticas de Firewall-Bloqueo bots-Bloqueo uploads de archivos -Chequeo de archivos-Doble factor autenticación-Bloqueo países -Protección headers-Firewall log + log live-Editor de reglas de seguridad-Actualización automática reglas de seguridad-Ataques fuerza en bruto-Protección directorios-Notificaciones-Doble factor de autenticación

Page 18: Seguridad WordPress Meetup Majadahonda

Seguridad para paranóicos

• Servidor con ModSecurity

• Servidor con Firewall

• Servidor LMD

• Cloudflare CDN

• Ninjafirewall

• Sucuri Security

• Wordfence

Page 19: Seguridad WordPress Meetup Majadahonda

Recursos para estar al día• https://wpvulndb.com/

• https://blog.sucuri.net/

• Plugin Vulnerabilities https://wordpress.org/plugins/plugin-vulnerabilities/

• No Longer in Directory https://wordpress.org/plugins/no-longer-in-directory/

Page 20: Seguridad WordPress Meetup Majadahonda

GRACIASPedro Santos@hostfusion