seguridad en wordpress
TRANSCRIPT
WordPress Day Marbella 2015
Seguridad en WordPressPedro Santos
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
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
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
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
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
Plugins Doble factor
• Clef Two-Factor Authentication
• Latch
• Two Factor Authentication
• Duo Two-Factor Authentication
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>
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>
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
Protección contra edición de plugins y themes
Incluir en wp-config.php
define('DISALLOW_FILE_EDIT', TRUE);
Archivos que se pueden borrar de WordPress
readme.htmlxmlrpc.php
Aquellos maravillosos plugins para WordPress
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
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
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
Seguridad para paranóicos
• Servidor con ModSecurity
• Servidor con Firewall
• Servidor LMD
• Cloudflare CDN
• Ninjafirewall
• Sucuri Security
• Wordfence
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/
GRACIASPedro Santos@hostfusion