SlideShare una empresa de Scribd logo
1 de 48
Descargar para leer sin conexión
La seguridad en WordPress
está sobrevalorada
Aprendiendo a vivir peligrosamente y feliz con tu web
Fernando Tellado
@fernandot
#PONTEWORDCAMP
Bio:
Culpable de Ayuda WordPress
Profesor, consultor, escritor
Admin es.WordPress.org
GTE WordPress España
Brand Ambassador SiteGround
España
Brand Ambassador YITH
Promotor CampusWP
Organizador WooCommerce
Madrid y WordCamp Madrid
Presidente ADEWEB
Autor de varios libros
WordPress
Fernando Tellado
@fernandot
#PONTEWORDCAMP
¿Es wordpress seguro?
wordpress es Bastante seguro
Los plugins son peligrosos
Los temas son peligrosos
los usuarios son muy
peligrosos
Fernando Tellado
@fernandot
#PONTEWORDCAMP
hardening wordpress
actualiza, actualiza, actualiza
contraseñas seguras
plugin de seguridad
backup
Fernando Tellado
@fernandot
#PONTEWORDCAMPhttps://codex.wordpress.org/Hardening_WordPress
¿actualiza?
Fernando Tellado
@fernandot
#PONTEWORDCAMP
¿actualiza?
Fernando Tellado
@fernandot
#PONTEWORDCAMP
¿actualiza?
Fernando Tellado
@fernandot
#PONTEWORDCAMP
¿contraseñas seguras?
Fernando Tellado
@fernandot
#PONTEWORDCAMP
¿contraseñas seguras?
Fernando Tellado
@fernandot
#PONTEWORDCAMP
¿contraseñas seguras?
Fernando Tellado
@fernandot
#PONTEWORDCAMP
¿contraseñas seguras?
Fernando Tellado
@fernandot
#PONTEWORDCAMP
¿contraseñas seguras?
Fernando Tellado
@fernandot
#PONTEWORDCAMP
¿plugin de seguridad?
Fernando Tellado
@fernandot
#PONTEWORDCAMPFuente: https://www.pluginvulnerabilities.com
¿plugin de seguridad?
Fernando Tellado
@fernandot
#PONTEWORDCAMPFuentes: https://www.pluginvulnerabilities.com y websec
¿BACKUP?
Fernando Tellado
@fernandot
#PONTEWORDCAMPFuente: KASPERSKY LABS
¿HARDENING WORDPRESS?
Fernando Tellado
@fernandot
#PONTEWORDCAMP
¿HARDENING WORDPRESS?
Fernando Tellado
@fernandot
#PONTEWORDCAMP
¿HARDENING WORDPRESS?
Fernando Tellado
@fernandot
#PONTEWORDCAMP
¿HARDENING WORDPRESS?
Fernando Tellado
@fernandot
#PONTEWORDCAMP
¡estás viviendo peligrosamente!
Fernando Tellado
@fernandot
#PONTEWORDCAMP
¡¡¡¿qué hago?!!!
Fernando Tellado
@fernandot
#PONTEWORDCAMP
Fernando Tellado
@fernandot
#PONTEWORDCAMP
O.W.A.S.P. TOP 10
A1 - INYECCIÓN
A2 - PÉRDIDA DE AUTENTIFICACIÓN
A3 - EXPOSICIÓN DE DATOS
SENSIBLES
A4 - ENTIDADES EXTERNAS XML
(XXE)
A5 - PÉRDIDA DEL CONTROL DE
ACCESO
A6 - CONFIGURACIÓN DE
SEGURIDAD INCORRECTA
A7 - CROSS SITE SCRIPTING (XSS)
A8 - DESERIALIZACIÓN SEGURA
A9 - USO DE COMPONENTES CON
VULNERABILIDADES CONOCIDAS
A10 - REGISTRO Y MONITOREO
INSUFICIENTES
Fernando Tellado
@fernandot
#PONTEWORDCAMPhttps://www.owasp.org/images/5/5e/OWASP-Top-10-2017-es.pdf
o.w.a.s.p. y WordPress
https://www.owasp.org/index.php/OWASP_Wordpress_Security_Implementation_Guideline
Fernando Tellado
@fernandot
#PONTEWORDCAMP
a1 - inyección
siempre versiones seguras de
wordpress
plugins seguros y bien programados (no
versiones piratas)
temas seguros y bien programados (no
versiones piratas)
buenas contraseñas, sí
nada "por defecto" (usuario admin,
prefijo wp_, /?author=1)
moderación de comentarios
hosting de calidad, con medidas
específicas de seguridad para
wordpress
hosting con versiones seguras de
software y waf
PERMISOS 400 EN ARCHIVOS SENSIBLES
(.HTACCESS, WP-CONFIG.PHP)
mueve el archivo wp-config.php al
directorio superior
desactiva ejecución php
Fernando Tellado
@fernandot
#PONTEWORDCAMP
a1 - inyección
Fernando Tellado
@fernandot
#PONTEWORDCAMP
Options -Indexes
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|[|%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|[|%[0-9A-Z]{0,2})
RewriteRule ^(.*)$ index.php [F,L]
.htaccess
a1 - inyección
Fernando Tellado
@fernandot
#PONTEWORDCAMP
<FilesMatch “.(php|php.)$”>
Order Allow,Deny
Deny from all
</FilesMatch>
.htaccess
a1 - inyección
Fernando Tellado
@fernandot
#PONTEWORDCAMP
if (!is_admin()) {
	 if (preg_match('/author=([0-9]*)/i',
$_SERVER['QUERY_STRING'])) die();
	 add_filter('redirect_canonical',
'shapeSpace_check_enum', 10, 2);
}
function shapeSpace_check_enum($redirect, $request) {
	 if (preg_match('/?author=([0-9]*)(/*)/i', $request))
die();
	 else return $redirect;
}
functions.php
a2 - pérdida de autentificación
siempre versiones seguras
de TODO (NO VERSIONES
PIRATAS)
buenas contraseñas, sí
nada "por defecto" (usuario
admin, prefijo wp_, /?
author=1)
define las secret_keys de
wordpress en wp-config.php
no mostrar errores de login
solo 2 administradores, no
para tareas habituales
doble verificación
Fernando Tellado
@fernandot
#PONTEWORDCAMP
a2 - pérdida de autentificación
Fernando Tellado
@fernandot
#PONTEWORDCAMP
add_filter('login_errors',create_function('$a', "return null;"));
functions.php
a2 - pérdida de autentificación
Fernando Tellado
@fernandot
#PONTEWORDCAMP
<files wp-config.php>
order allow,deny
deny from all
</files>
<FilesMatch "^.">
Order allow, deny
Deny from all
</FilesMatch>
.htaccess
A3 - EXPOSICIÓN DE DATOS
SENSIBLES
¿te acuerdas del RGPD?
hosting rgpd
hosting pci compliance
aplica todo lo visto en a1 y
a2
buena gestión de permisos de
usuarios
borrado programado de
datos sensibles
ssl = https
Fernando Tellado
@fernandot
#PONTEWORDCAMP
A4 - ENTIDADES EXTERNAS XML
(XXE)
software original y de calidad (a1)
evita la carga de extensiones externas (DOM, XMLWRITER, XMLREADER)
EVITA CUALQUIER PARSER XML
Fernando Tellado
@fernandot
#PONTEWORDCAMP
A4 - ENTIDADES EXTERNAS XML
(XXE)
software original y de calidad (a1)
evita la carga de extensiones externas (DOM, XMLWRITER, XMLREADER)
EVITA CUALQUIER PARSER XML
EVITA PARSERS EN PHP:
Fernando Tellado
@fernandot
#PONTEWORDCAMP
libxml_disable_entity_loader(true);
A5 - PÉRDIDA DEL CONTROL DE
ACCESO
aplica las medidas para a1 y a2
controla las llamadas de las apis (json rest api
especialmente)
ten siempre a mano backups
desactiva xml-rpc
Fernando Tellado
@fernandot
#PONTEWORDCAMP
A5 - PÉRDIDA DEL CONTROL DE
ACCESO
Fernando Tellado
@fernandot
#PONTEWORDCAMP
<Files xmlrpc.php>
<IfModule mod_authz_core.c>
Require all denied
</IfModule>
<IfModule !mod_authz_core.c>
Order allow,deny
Deny from all
</IfModule>
</Files>
.htaccess
A5 - PÉRDIDA DEL CONTROL DE
ACCESO
Fernando Tellado
@fernandot
#PONTEWORDCAMP
RewriteCond %{REQUEST_METHOD} ^(GET|POST|
PUT|PATCH|DELETE) [NC]
RewriteCond %{REQUEST_URI} ^.*wp-json/wp/
[NC]
RewriteRule ^(.*)$ - [F]
.htaccess
A5 - PÉRDIDA DEL CONTROL DE
ACCESO
Fernando Tellado
@fernandot
#PONTEWORDCAMP
location = /xmlrpc.php {
deny all;
}
nginx
A6 - CONFIGURACIÓN DE SEGURIDAD
INCORRECTA
No uses nada por defecto, tampoco en tu router, móvil,
ordenador
no uses permisos de archivos y carpetas incorrectos (650 para
archivos, 750 para carpetas, 400 para .htaccess y wp-
config.php)
recuerda a1 y a2
Fernando Tellado
@fernandot
#PONTEWORDCAMP
A7 - CROSS SITE SCRIPTING (XSS)
es la vulnerabilidad más común y extendida
software actualizado y con garantías = a1
desarrollador: valida, sanea y escapa todo …
Fernando Tellado
@fernandot
#PONTEWORDCAMP
A7 - CROSS SITE SCRIPTING (XSS)
Fernando Tellado
@fernandot
#PONTEWORDCAMP
is_numeric()
preg_match()
filter_var()
in_array()
VALIDA todo sanea todo escapa todo
sanitize_email
sanitize_file_name
sanitize_html_class
sanitize_text_field
sanitize_textarea_field
esc_url_raw
sanitize_option 
sanitize_meta
wp_kses
sanitize_key
sanitize_user
sanitize_mime_type
sanitize_title
wp_filter_post_kses
esc_html 
esc_url
esc_js
esc_attr
esc_textarea
A8 - DESERIALIZACIÓN SEGURA
afecta a cachés, bases de datos, tokens de apis, a todo
wordpress
uso de objetos serializados desde fuentes inseguras
mantén todo actualizado
aplica a1 a muerte
Fernando Tellado
@fernandot
#PONTEWORDCAMP
A9 - USO DE COMPONENTES CON
VULNERABILIDADES CONOCIDAS
https://wpscans.com/
https://sitecheck.sucuri.net/
https://wpvulndb.com/
https://www.pluginvulnerabilities.com/
Fernando Tellado
@fernandot
#PONTEWORDCAMP
A10 - REGISTRO Y MONITOREO
INSUFICIENTES
BUSCA CÓDIGO OFUSCADO
BUSCA CÓDIGO BASE64
BUSCA LLAMADAS AL SISTEMA (exec,
passthru, system, shell_exec,
etc.)
BUSCA EJECUCIONES DE CÓDIGO PHP
(eval, assert, preg_replace, etc.)
BUSCA EXPOSICIONES DE
INFORMACIÓN (phpinfo, getenv,
getmygid/pid/uid, etc.)
BUSCA FUNCIONES DEL SISTEMA DE
ARCHIVOS (fopen, bz/gzopen,
chgrp/own/mod, etc.)
¿Te acuerdas del RGPD?: https://
es.wordpress.org/plugins/wp-
security-audit-log/
Fernando Tellado
@fernandot
#PONTEWORDCAMP
HOJA DE RUTA DESARROLLADORES
DEFINIR SEGURIDAD Y REQUISITOS DE SEGURIDAD (ASVS)
SEGURIDAD POR DISEÑO (MASTER CHEAT SHEET)
controles estándar de seguridad (proactive controls)
ciclo de vida de desarrollo seguro (Samm)
EDUCAR EN SEGURIDAD
Fernando Tellado
@fernandot
#PONTEWORDCAMPhttps://www.owasp.org/images/5/5e/OWASP-Top-10-2017-es.pdf
resumiendo
seguridad preventiva
hosting de confianza
software de confianza
permisos adecuados
monitoreo constante
No dejes que la sangre llegue al río
¡GRACIAS!
Fernando Tellado
@fernandot
#PONTEWORDCAMP
Fernando Tellado
@fernandot
#PONTEWORDCAMP
¿PREGUNTAS?

Más contenido relacionado

Similar a OWASP y seguridad WordPress

La seguridad en WordPress de la A a la Z
La seguridad en WordPress de la A a la ZLa seguridad en WordPress de la A a la Z
La seguridad en WordPress de la A a la Zwpbarcelona
 
Seguridad en WordPress
Seguridad en WordPressSeguridad en WordPress
Seguridad en WordPressPedro Santos
 
Seguridad WordPress Meetup Majadahonda
Seguridad WordPress Meetup MajadahondaSeguridad WordPress Meetup Majadahonda
Seguridad WordPress Meetup MajadahondaPedro Santos
 
Asegúr@IT II - Seguridad en Web
Asegúr@IT II - Seguridad en WebAsegúr@IT II - Seguridad en Web
Asegúr@IT II - Seguridad en WebChema Alonso
 
Varnish para meros mortales
Varnish para meros mortalesVarnish para meros mortales
Varnish para meros mortalesMartín .
 
La potencia sin control no sirve de nada, claves para aprovechar el uso de Wo...
La potencia sin control no sirve de nada, claves para aprovechar el uso de Wo...La potencia sin control no sirve de nada, claves para aprovechar el uso de Wo...
La potencia sin control no sirve de nada, claves para aprovechar el uso de Wo...Asociación Webmasters Cantabria
 
¿Existe el plugin de seguridad perfecto para WordPress?
¿Existe el plugin de seguridad perfecto para WordPress?¿Existe el plugin de seguridad perfecto para WordPress?
¿Existe el plugin de seguridad perfecto para WordPress?SiteGround España
 
Web App Security, Ethical hacking for CodeCamp SDQ 5
Web App Security, Ethical hacking for CodeCamp SDQ 5Web App Security, Ethical hacking for CodeCamp SDQ 5
Web App Security, Ethical hacking for CodeCamp SDQ 5Jose Gratereaux
 
Mike Schroder: Administra WordPress automáticamente con WP-CLI
Mike Schroder: Administra WordPress automáticamente con WP-CLIMike Schroder: Administra WordPress automáticamente con WP-CLI
Mike Schroder: Administra WordPress automáticamente con WP-CLImvkoen
 
WPEuskadi 2015 - La potencia sin control no sirve de nada, claves para aprove...
WPEuskadi 2015 - La potencia sin control no sirve de nada, claves para aprove...WPEuskadi 2015 - La potencia sin control no sirve de nada, claves para aprove...
WPEuskadi 2015 - La potencia sin control no sirve de nada, claves para aprove...Darío BF
 
Introducción Nivelación PHP
Introducción Nivelación PHPIntroducción Nivelación PHP
Introducción Nivelación PHPRodrigo Miranda
 
Groovy&Grails: Cambia la forma de desarrollar tus aplicaciones web
Groovy&Grails: Cambia la forma de desarrollar tus aplicaciones webGroovy&Grails: Cambia la forma de desarrollar tus aplicaciones web
Groovy&Grails: Cambia la forma de desarrollar tus aplicaciones webParadigma Digital
 
Cambia la forma de desarrollar tus aplicaciones web con groovy y grails
Cambia la forma de desarrollar tus aplicaciones web con groovy y grailsCambia la forma de desarrollar tus aplicaciones web con groovy y grails
Cambia la forma de desarrollar tus aplicaciones web con groovy y grailsFátima Casaú Pérez
 
20 claves de Seguridad WordPress
20 claves de Seguridad WordPress20 claves de Seguridad WordPress
20 claves de Seguridad WordPressFernando Tellado
 
WordPress como back-end de nuestras apps
WordPress como back-end de nuestras appsWordPress como back-end de nuestras apps
WordPress como back-end de nuestras appsJaime Fernández
 

Similar a OWASP y seguridad WordPress (20)

La seguridad en WordPress de la A a la Z
La seguridad en WordPress de la A a la ZLa seguridad en WordPress de la A a la Z
La seguridad en WordPress de la A a la Z
 
Seguridad en WordPress
Seguridad en WordPressSeguridad en WordPress
Seguridad en WordPress
 
Seguridad WordPress Meetup Majadahonda
Seguridad WordPress Meetup MajadahondaSeguridad WordPress Meetup Majadahonda
Seguridad WordPress Meetup Majadahonda
 
Asegúr@IT II - Seguridad en Web
Asegúr@IT II - Seguridad en WebAsegúr@IT II - Seguridad en Web
Asegúr@IT II - Seguridad en Web
 
Seguridad en WordPress
Seguridad en WordPressSeguridad en WordPress
Seguridad en WordPress
 
Introducción a Flask
Introducción a FlaskIntroducción a Flask
Introducción a Flask
 
Varnish para meros mortales
Varnish para meros mortalesVarnish para meros mortales
Varnish para meros mortales
 
Entorno PHP
Entorno PHPEntorno PHP
Entorno PHP
 
La potencia sin control no sirve de nada, claves para aprovechar el uso de Wo...
La potencia sin control no sirve de nada, claves para aprovechar el uso de Wo...La potencia sin control no sirve de nada, claves para aprovechar el uso de Wo...
La potencia sin control no sirve de nada, claves para aprovechar el uso de Wo...
 
Webperf wordpress
Webperf wordpressWebperf wordpress
Webperf wordpress
 
¿Existe el plugin de seguridad perfecto para WordPress?
¿Existe el plugin de seguridad perfecto para WordPress?¿Existe el plugin de seguridad perfecto para WordPress?
¿Existe el plugin de seguridad perfecto para WordPress?
 
Web App Security, Ethical hacking for CodeCamp SDQ 5
Web App Security, Ethical hacking for CodeCamp SDQ 5Web App Security, Ethical hacking for CodeCamp SDQ 5
Web App Security, Ethical hacking for CodeCamp SDQ 5
 
Mike Schroder: Administra WordPress automáticamente con WP-CLI
Mike Schroder: Administra WordPress automáticamente con WP-CLIMike Schroder: Administra WordPress automáticamente con WP-CLI
Mike Schroder: Administra WordPress automáticamente con WP-CLI
 
WPEuskadi 2015 - La potencia sin control no sirve de nada, claves para aprove...
WPEuskadi 2015 - La potencia sin control no sirve de nada, claves para aprove...WPEuskadi 2015 - La potencia sin control no sirve de nada, claves para aprove...
WPEuskadi 2015 - La potencia sin control no sirve de nada, claves para aprove...
 
Iniciacion a PHP (I)
Iniciacion a PHP (I)Iniciacion a PHP (I)
Iniciacion a PHP (I)
 
Introducción Nivelación PHP
Introducción Nivelación PHPIntroducción Nivelación PHP
Introducción Nivelación PHP
 
Groovy&Grails: Cambia la forma de desarrollar tus aplicaciones web
Groovy&Grails: Cambia la forma de desarrollar tus aplicaciones webGroovy&Grails: Cambia la forma de desarrollar tus aplicaciones web
Groovy&Grails: Cambia la forma de desarrollar tus aplicaciones web
 
Cambia la forma de desarrollar tus aplicaciones web con groovy y grails
Cambia la forma de desarrollar tus aplicaciones web con groovy y grailsCambia la forma de desarrollar tus aplicaciones web con groovy y grails
Cambia la forma de desarrollar tus aplicaciones web con groovy y grails
 
20 claves de Seguridad WordPress
20 claves de Seguridad WordPress20 claves de Seguridad WordPress
20 claves de Seguridad WordPress
 
WordPress como back-end de nuestras apps
WordPress como back-end de nuestras appsWordPress como back-end de nuestras apps
WordPress como back-end de nuestras apps
 

Más de Fernando Tellado

Fernando tellado- Cómo optimizar tu ecommerce para vender más
Fernando tellado- Cómo optimizar tu ecommerce para vender másFernando tellado- Cómo optimizar tu ecommerce para vender más
Fernando tellado- Cómo optimizar tu ecommerce para vender másFernando Tellado
 
Copywriting Fernando Tellado
Copywriting Fernando TelladoCopywriting Fernando Tellado
Copywriting Fernando TelladoFernando Tellado
 
4 cosillas que se de WooCommerce
4 cosillas que se de WooCommerce4 cosillas que se de WooCommerce
4 cosillas que se de WooCommerceFernando Tellado
 
WordPress no es tan fácil fernando tellado
WordPress no es tan fácil fernando telladoWordPress no es tan fácil fernando tellado
WordPress no es tan fácil fernando telladoFernando Tellado
 
Retos WordPress 2017 - Fernando Tellado
Retos WordPress 2017 - Fernando TelladoRetos WordPress 2017 - Fernando Tellado
Retos WordPress 2017 - Fernando TelladoFernando Tellado
 
Como enseñar WordPress fernando tellado
Como enseñar WordPress fernando telladoComo enseñar WordPress fernando tellado
Como enseñar WordPress fernando telladoFernando Tellado
 
Comparte ganancias con un programa de Marketing de afiliación
Comparte ganancias con un programa de Marketing de afiliación Comparte ganancias con un programa de Marketing de afiliación
Comparte ganancias con un programa de Marketing de afiliación Fernando Tellado
 
Branded content - Fernando Tellado
Branded content - Fernando TelladoBranded content - Fernando Tellado
Branded content - Fernando TelladoFernando Tellado
 
Como sacar rendimiento a tu hosting
Como sacar rendimiento a tu hostingComo sacar rendimiento a tu hosting
Como sacar rendimiento a tu hostingFernando Tellado
 
Tiendas online con WordPress y WooCommerce
Tiendas online con WordPress y WooCommerceTiendas online con WordPress y WooCommerce
Tiendas online con WordPress y WooCommerceFernando Tellado
 
Mitos y realidades sobre WordPress
Mitos y realidades sobre WordPressMitos y realidades sobre WordPress
Mitos y realidades sobre WordPressFernando Tellado
 
SEO en WordPress con Yoast
SEO en WordPress con YoastSEO en WordPress con Yoast
SEO en WordPress con YoastFernando Tellado
 
Los mejores trucos de SEO on page en WordPress
Los mejores trucos de SEO on page en WordPressLos mejores trucos de SEO on page en WordPress
Los mejores trucos de SEO on page en WordPressFernando Tellado
 
Optimización WordPress para bloggers
Optimización WordPress para bloggersOptimización WordPress para bloggers
Optimización WordPress para bloggersFernando Tellado
 
No soy bloguero pero tuiteo mucho - Fernando Tellado
No soy bloguero pero tuiteo mucho - Fernando TelladoNo soy bloguero pero tuiteo mucho - Fernando Tellado
No soy bloguero pero tuiteo mucho - Fernando TelladoFernando Tellado
 
Nueva politica - TEdX Gran Vía
Nueva politica - TEdX Gran VíaNueva politica - TEdX Gran Vía
Nueva politica - TEdX Gran VíaFernando Tellado
 
WordPress en la Educación - WordCamp Bilbao - Fernando Tellado
WordPress en la Educación - WordCamp Bilbao - Fernando TelladoWordPress en la Educación - WordCamp Bilbao - Fernando Tellado
WordPress en la Educación - WordCamp Bilbao - Fernando TelladoFernando Tellado
 

Más de Fernando Tellado (20)

Eres de Wix o WordPress
Eres de Wix o WordPressEres de Wix o WordPress
Eres de Wix o WordPress
 
Fernando tellado- Cómo optimizar tu ecommerce para vender más
Fernando tellado- Cómo optimizar tu ecommerce para vender másFernando tellado- Cómo optimizar tu ecommerce para vender más
Fernando tellado- Cómo optimizar tu ecommerce para vender más
 
Copywriting Fernando Tellado
Copywriting Fernando TelladoCopywriting Fernando Tellado
Copywriting Fernando Tellado
 
4 cosillas que se de WooCommerce
4 cosillas que se de WooCommerce4 cosillas que se de WooCommerce
4 cosillas que se de WooCommerce
 
WordPress no es tan fácil fernando tellado
WordPress no es tan fácil fernando telladoWordPress no es tan fácil fernando tellado
WordPress no es tan fácil fernando tellado
 
Retos WordPress 2017 - Fernando Tellado
Retos WordPress 2017 - Fernando TelladoRetos WordPress 2017 - Fernando Tellado
Retos WordPress 2017 - Fernando Tellado
 
Como enseñar WordPress fernando tellado
Como enseñar WordPress fernando telladoComo enseñar WordPress fernando tellado
Como enseñar WordPress fernando tellado
 
Comparte ganancias con un programa de Marketing de afiliación
Comparte ganancias con un programa de Marketing de afiliación Comparte ganancias con un programa de Marketing de afiliación
Comparte ganancias con un programa de Marketing de afiliación
 
Branded content - Fernando Tellado
Branded content - Fernando TelladoBranded content - Fernando Tellado
Branded content - Fernando Tellado
 
Como sacar rendimiento a tu hosting
Como sacar rendimiento a tu hostingComo sacar rendimiento a tu hosting
Como sacar rendimiento a tu hosting
 
Tiendas online con WordPress y WooCommerce
Tiendas online con WordPress y WooCommerceTiendas online con WordPress y WooCommerce
Tiendas online con WordPress y WooCommerce
 
Mitos y realidades sobre WordPress
Mitos y realidades sobre WordPressMitos y realidades sobre WordPress
Mitos y realidades sobre WordPress
 
SEO en WordPress con Yoast
SEO en WordPress con YoastSEO en WordPress con Yoast
SEO en WordPress con Yoast
 
Los mejores trucos de SEO on page en WordPress
Los mejores trucos de SEO on page en WordPressLos mejores trucos de SEO on page en WordPress
Los mejores trucos de SEO on page en WordPress
 
AMP y WordPress
AMP y WordPressAMP y WordPress
AMP y WordPress
 
Escalando WordPress
Escalando WordPressEscalando WordPress
Escalando WordPress
 
Optimización WordPress para bloggers
Optimización WordPress para bloggersOptimización WordPress para bloggers
Optimización WordPress para bloggers
 
No soy bloguero pero tuiteo mucho - Fernando Tellado
No soy bloguero pero tuiteo mucho - Fernando TelladoNo soy bloguero pero tuiteo mucho - Fernando Tellado
No soy bloguero pero tuiteo mucho - Fernando Tellado
 
Nueva politica - TEdX Gran Vía
Nueva politica - TEdX Gran VíaNueva politica - TEdX Gran Vía
Nueva politica - TEdX Gran Vía
 
WordPress en la Educación - WordCamp Bilbao - Fernando Tellado
WordPress en la Educación - WordCamp Bilbao - Fernando TelladoWordPress en la Educación - WordCamp Bilbao - Fernando Tellado
WordPress en la Educación - WordCamp Bilbao - Fernando Tellado
 

Último

Guia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdfGuia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdflauradbernals
 
institucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalenainstitucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalenajuniorcuellargomez
 
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENAINSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENAdanielaerazok
 
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señorkkte210207
 
Buscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la webBuscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la webDecaunlz
 
Institucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalenaInstitucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalenadanielaerazok
 
12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdfedwinmelgarschlink2
 
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfNUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfisrael garcia
 
Las redes sociales en el mercado digital
Las redes sociales en el mercado digitalLas redes sociales en el mercado digital
Las redes sociales en el mercado digitalNayaniJulietaRamosRa
 

Último (9)

Guia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdfGuia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdf
 
institucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalenainstitucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalena
 
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENAINSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
 
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor
 
Buscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la webBuscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la web
 
Institucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalenaInstitucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalena
 
12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf
 
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfNUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
 
Las redes sociales en el mercado digital
Las redes sociales en el mercado digitalLas redes sociales en el mercado digital
Las redes sociales en el mercado digital
 

OWASP y seguridad WordPress

  • 1. La seguridad en WordPress está sobrevalorada Aprendiendo a vivir peligrosamente y feliz con tu web Fernando Tellado @fernandot #PONTEWORDCAMP
  • 2. Bio: Culpable de Ayuda WordPress Profesor, consultor, escritor Admin es.WordPress.org GTE WordPress España Brand Ambassador SiteGround España Brand Ambassador YITH Promotor CampusWP Organizador WooCommerce Madrid y WordCamp Madrid Presidente ADEWEB Autor de varios libros WordPress Fernando Tellado @fernandot #PONTEWORDCAMP
  • 3. ¿Es wordpress seguro? wordpress es Bastante seguro Los plugins son peligrosos Los temas son peligrosos los usuarios son muy peligrosos Fernando Tellado @fernandot #PONTEWORDCAMP
  • 4. hardening wordpress actualiza, actualiza, actualiza contraseñas seguras plugin de seguridad backup Fernando Tellado @fernandot #PONTEWORDCAMPhttps://codex.wordpress.org/Hardening_WordPress
  • 13. ¿plugin de seguridad? Fernando Tellado @fernandot #PONTEWORDCAMPFuente: https://www.pluginvulnerabilities.com
  • 14. ¿plugin de seguridad? Fernando Tellado @fernandot #PONTEWORDCAMPFuentes: https://www.pluginvulnerabilities.com y websec
  • 20. ¡estás viviendo peligrosamente! Fernando Tellado @fernandot #PONTEWORDCAMP
  • 23. O.W.A.S.P. TOP 10 A1 - INYECCIÓN A2 - PÉRDIDA DE AUTENTIFICACIÓN A3 - EXPOSICIÓN DE DATOS SENSIBLES A4 - ENTIDADES EXTERNAS XML (XXE) A5 - PÉRDIDA DEL CONTROL DE ACCESO A6 - CONFIGURACIÓN DE SEGURIDAD INCORRECTA A7 - CROSS SITE SCRIPTING (XSS) A8 - DESERIALIZACIÓN SEGURA A9 - USO DE COMPONENTES CON VULNERABILIDADES CONOCIDAS A10 - REGISTRO Y MONITOREO INSUFICIENTES Fernando Tellado @fernandot #PONTEWORDCAMPhttps://www.owasp.org/images/5/5e/OWASP-Top-10-2017-es.pdf
  • 25. a1 - inyección siempre versiones seguras de wordpress plugins seguros y bien programados (no versiones piratas) temas seguros y bien programados (no versiones piratas) buenas contraseñas, sí nada "por defecto" (usuario admin, prefijo wp_, /?author=1) moderación de comentarios hosting de calidad, con medidas específicas de seguridad para wordpress hosting con versiones seguras de software y waf PERMISOS 400 EN ARCHIVOS SENSIBLES (.HTACCESS, WP-CONFIG.PHP) mueve el archivo wp-config.php al directorio superior desactiva ejecución php Fernando Tellado @fernandot #PONTEWORDCAMP
  • 26. a1 - inyección Fernando Tellado @fernandot #PONTEWORDCAMP Options -Indexes Options +FollowSymLinks RewriteEngine On RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR] RewriteCond %{QUERY_STRING} GLOBALS(=|[|%[0-9A-Z]{0,2}) [OR] RewriteCond %{QUERY_STRING} _REQUEST(=|[|%[0-9A-Z]{0,2}) RewriteRule ^(.*)$ index.php [F,L] .htaccess
  • 27. a1 - inyección Fernando Tellado @fernandot #PONTEWORDCAMP <FilesMatch “.(php|php.)$”> Order Allow,Deny Deny from all </FilesMatch> .htaccess
  • 28. a1 - inyección Fernando Tellado @fernandot #PONTEWORDCAMP if (!is_admin()) { if (preg_match('/author=([0-9]*)/i', $_SERVER['QUERY_STRING'])) die(); add_filter('redirect_canonical', 'shapeSpace_check_enum', 10, 2); } function shapeSpace_check_enum($redirect, $request) { if (preg_match('/?author=([0-9]*)(/*)/i', $request)) die(); else return $redirect; } functions.php
  • 29. a2 - pérdida de autentificación siempre versiones seguras de TODO (NO VERSIONES PIRATAS) buenas contraseñas, sí nada "por defecto" (usuario admin, prefijo wp_, /? author=1) define las secret_keys de wordpress en wp-config.php no mostrar errores de login solo 2 administradores, no para tareas habituales doble verificación Fernando Tellado @fernandot #PONTEWORDCAMP
  • 30. a2 - pérdida de autentificación Fernando Tellado @fernandot #PONTEWORDCAMP add_filter('login_errors',create_function('$a', "return null;")); functions.php
  • 31. a2 - pérdida de autentificación Fernando Tellado @fernandot #PONTEWORDCAMP <files wp-config.php> order allow,deny deny from all </files> <FilesMatch "^."> Order allow, deny Deny from all </FilesMatch> .htaccess
  • 32. A3 - EXPOSICIÓN DE DATOS SENSIBLES ¿te acuerdas del RGPD? hosting rgpd hosting pci compliance aplica todo lo visto en a1 y a2 buena gestión de permisos de usuarios borrado programado de datos sensibles ssl = https Fernando Tellado @fernandot #PONTEWORDCAMP
  • 33. A4 - ENTIDADES EXTERNAS XML (XXE) software original y de calidad (a1) evita la carga de extensiones externas (DOM, XMLWRITER, XMLREADER) EVITA CUALQUIER PARSER XML Fernando Tellado @fernandot #PONTEWORDCAMP
  • 34. A4 - ENTIDADES EXTERNAS XML (XXE) software original y de calidad (a1) evita la carga de extensiones externas (DOM, XMLWRITER, XMLREADER) EVITA CUALQUIER PARSER XML EVITA PARSERS EN PHP: Fernando Tellado @fernandot #PONTEWORDCAMP libxml_disable_entity_loader(true);
  • 35. A5 - PÉRDIDA DEL CONTROL DE ACCESO aplica las medidas para a1 y a2 controla las llamadas de las apis (json rest api especialmente) ten siempre a mano backups desactiva xml-rpc Fernando Tellado @fernandot #PONTEWORDCAMP
  • 36. A5 - PÉRDIDA DEL CONTROL DE ACCESO Fernando Tellado @fernandot #PONTEWORDCAMP <Files xmlrpc.php> <IfModule mod_authz_core.c> Require all denied </IfModule> <IfModule !mod_authz_core.c> Order allow,deny Deny from all </IfModule> </Files> .htaccess
  • 37. A5 - PÉRDIDA DEL CONTROL DE ACCESO Fernando Tellado @fernandot #PONTEWORDCAMP RewriteCond %{REQUEST_METHOD} ^(GET|POST| PUT|PATCH|DELETE) [NC] RewriteCond %{REQUEST_URI} ^.*wp-json/wp/ [NC] RewriteRule ^(.*)$ - [F] .htaccess
  • 38. A5 - PÉRDIDA DEL CONTROL DE ACCESO Fernando Tellado @fernandot #PONTEWORDCAMP location = /xmlrpc.php { deny all; } nginx
  • 39. A6 - CONFIGURACIÓN DE SEGURIDAD INCORRECTA No uses nada por defecto, tampoco en tu router, móvil, ordenador no uses permisos de archivos y carpetas incorrectos (650 para archivos, 750 para carpetas, 400 para .htaccess y wp- config.php) recuerda a1 y a2 Fernando Tellado @fernandot #PONTEWORDCAMP
  • 40. A7 - CROSS SITE SCRIPTING (XSS) es la vulnerabilidad más común y extendida software actualizado y con garantías = a1 desarrollador: valida, sanea y escapa todo … Fernando Tellado @fernandot #PONTEWORDCAMP
  • 41. A7 - CROSS SITE SCRIPTING (XSS) Fernando Tellado @fernandot #PONTEWORDCAMP is_numeric() preg_match() filter_var() in_array() VALIDA todo sanea todo escapa todo sanitize_email sanitize_file_name sanitize_html_class sanitize_text_field sanitize_textarea_field esc_url_raw sanitize_option  sanitize_meta wp_kses sanitize_key sanitize_user sanitize_mime_type sanitize_title wp_filter_post_kses esc_html  esc_url esc_js esc_attr esc_textarea
  • 42. A8 - DESERIALIZACIÓN SEGURA afecta a cachés, bases de datos, tokens de apis, a todo wordpress uso de objetos serializados desde fuentes inseguras mantén todo actualizado aplica a1 a muerte Fernando Tellado @fernandot #PONTEWORDCAMP
  • 43. A9 - USO DE COMPONENTES CON VULNERABILIDADES CONOCIDAS https://wpscans.com/ https://sitecheck.sucuri.net/ https://wpvulndb.com/ https://www.pluginvulnerabilities.com/ Fernando Tellado @fernandot #PONTEWORDCAMP
  • 44. A10 - REGISTRO Y MONITOREO INSUFICIENTES BUSCA CÓDIGO OFUSCADO BUSCA CÓDIGO BASE64 BUSCA LLAMADAS AL SISTEMA (exec, passthru, system, shell_exec, etc.) BUSCA EJECUCIONES DE CÓDIGO PHP (eval, assert, preg_replace, etc.) BUSCA EXPOSICIONES DE INFORMACIÓN (phpinfo, getenv, getmygid/pid/uid, etc.) BUSCA FUNCIONES DEL SISTEMA DE ARCHIVOS (fopen, bz/gzopen, chgrp/own/mod, etc.) ¿Te acuerdas del RGPD?: https:// es.wordpress.org/plugins/wp- security-audit-log/ Fernando Tellado @fernandot #PONTEWORDCAMP
  • 45. HOJA DE RUTA DESARROLLADORES DEFINIR SEGURIDAD Y REQUISITOS DE SEGURIDAD (ASVS) SEGURIDAD POR DISEÑO (MASTER CHEAT SHEET) controles estándar de seguridad (proactive controls) ciclo de vida de desarrollo seguro (Samm) EDUCAR EN SEGURIDAD Fernando Tellado @fernandot #PONTEWORDCAMPhttps://www.owasp.org/images/5/5e/OWASP-Top-10-2017-es.pdf
  • 46. resumiendo seguridad preventiva hosting de confianza software de confianza permisos adecuados monitoreo constante No dejes que la sangre llegue al río