SlideShare una empresa de Scribd logo
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

PDF
Seguridad en WordPress, fundamentos y mejores prácticas
PDF
Reventando WordPress
PDF
Blinda tu WordPress y evitate disgustos
PPTX
CSI: Cloud, Screaming e Integromat.
PPTX
CSI: Cloud, Screaming, Integromat
PDF
Aplicar la seguridad en WordPress desde la selección de un hosting
PDF
Seguridad en WordPress
PPTX
Seguridad en WordPress, fundamentos y mejores prácticas
Reventando WordPress
Blinda tu WordPress y evitate disgustos
CSI: Cloud, Screaming e Integromat.
CSI: Cloud, Screaming, Integromat
Aplicar la seguridad en WordPress desde la selección de un hosting
Seguridad en WordPress

Similar a OWASP y seguridad WordPress (20)

PDF
Seguridad WordPress Meetup Majadahonda
PDF
Owasp 6 Seguridad en WordPress
PDF
La seguridad en WordPress de la A a la Z
PPTX
Cómo evitar y solucionar los errores más habituales cuando trabajamos con Wor...
PDF
Las claves para optimizar la seguridad de tu sitio WordPress
PDF
20 claves de Seguridad WordPress
ODP
Wordpressa - Hardening en Wordpress
PDF
WHITEPAPER ESET ESPAÑA – AUMENTADO LA SEGURIDAD DE WORDPRESS
PDF
69 Php. Proteccion De Directorios
PPTX
Seguridad en WordPress
PDF
Retos WordPress 2017 - Fernando Tellado
PDF
Webinar - Seguridad en WordPress
PDF
Presentación "Hacker al rey" - WordCamp Santander 2017
PDF
Seguridad en WordPress sin saber código
PDF
Concientización de Riesgos de Ciberseguridad En Wordpress.
PDF
Seguridad en WordPress
PDF
Errores más comunes con WordPress y cómo solucionarlos por Ramón Tomás
PDF
Seguridad en WordPress con WPHardening
PDF
WordCamp Taller Seguridad WordPress
PDF
WordCamp Taller Seguridad WordPress
Seguridad WordPress Meetup Majadahonda
Owasp 6 Seguridad en WordPress
La seguridad en WordPress de la A a la Z
Cómo evitar y solucionar los errores más habituales cuando trabajamos con Wor...
Las claves para optimizar la seguridad de tu sitio WordPress
20 claves de Seguridad WordPress
Wordpressa - Hardening en Wordpress
WHITEPAPER ESET ESPAÑA – AUMENTADO LA SEGURIDAD DE WORDPRESS
69 Php. Proteccion De Directorios
Seguridad en WordPress
Retos WordPress 2017 - Fernando Tellado
Webinar - Seguridad en WordPress
Presentación "Hacker al rey" - WordCamp Santander 2017
Seguridad en WordPress sin saber código
Concientización de Riesgos de Ciberseguridad En Wordpress.
Seguridad en WordPress
Errores más comunes con WordPress y cómo solucionarlos por Ramón Tomás
Seguridad en WordPress con WPHardening
WordCamp Taller Seguridad WordPress
WordCamp Taller Seguridad WordPress
Publicidad

Más de Fernando Tellado (20)

PDF
CATALOGO 2024 ABRATOOLS - ABRASIVOS Y MAQUINTARIA
PPT
WordPress training basics - básicos de cómo enseñar WordPress
PDF
Eres de Wix o WordPress
PDF
Fernando tellado- Cómo optimizar tu ecommerce para vender más
PDF
Copywriting Fernando Tellado
PDF
4 cosillas que se de WooCommerce
PDF
WordPress no es tan fácil fernando tellado
PDF
Como enseñar WordPress fernando tellado
PDF
Comparte ganancias con un programa de Marketing de afiliación
PDF
Branded content - Fernando Tellado
PDF
Como sacar rendimiento a tu hosting
PDF
Tiendas online con WordPress y WooCommerce
PDF
Mitos y realidades sobre WordPress
PDF
SEO en WordPress con Yoast
PDF
Los mejores trucos de SEO on page en WordPress
PDF
AMP y WordPress
PDF
Escalando WordPress
PDF
Optimización WordPress para bloggers
PDF
No soy bloguero pero tuiteo mucho - Fernando Tellado
PDF
Nueva politica - TEdX Gran Vía
CATALOGO 2024 ABRATOOLS - ABRASIVOS Y MAQUINTARIA
WordPress training basics - básicos de cómo enseñar WordPress
Eres de Wix o WordPress
Fernando tellado- Cómo optimizar tu ecommerce para vender más
Copywriting Fernando Tellado
4 cosillas que se de WooCommerce
WordPress no es tan fácil fernando tellado
Como enseñar WordPress fernando tellado
Comparte ganancias con un programa de Marketing de afiliación
Branded content - Fernando Tellado
Como sacar rendimiento a tu hosting
Tiendas online con WordPress y WooCommerce
Mitos y realidades sobre WordPress
SEO en WordPress con Yoast
Los mejores trucos de SEO on page en WordPress
AMP y WordPress
Escalando WordPress
Optimización WordPress para bloggers
No soy bloguero pero tuiteo mucho - Fernando Tellado
Nueva politica - TEdX Gran Vía
Publicidad

Último (15)

PPTX
FUNCIONES DE CLASSROOM EN EL FUNCIONAMIENTO ESCOLAR
PDF
Mesopotamia y Egipto.pptx.pdf historia universal
PDF
Herramientaa de google google keep, maps.pdf
PDF
[Ebook gratuito] Introducción a la IA Generativa, Instalación y Configuración...
PPTX
Guia de power bi de cero a avanzado detallado
PDF
LA INTELIGENCIA ARTIFICAL SU HISTORIA Y EL FUTURO
PDF
Frases de Fidel Castro. Compilación Norelys Morales Aguilera
PDF
CAPACITACIÓN MIPIG - MODELO INTEGRADO DE PLANEACIÓN Y GESTIÓN
PPTX
Plantilla-Hardware-Informático-oficce.pptx
PPTX
tema-2-interes-.pptx44444444444444444444
PPTX
Qué es Google Classroom Insertar SlideShare U 6.pptx
PPTX
Evolución de la computadora ACTUALMENTE.pptx
PPTX
Presentación de un estudio de empresa pp
PPT
laser seguridad a la salud humana de piel y vision en laser clase 4
PPTX
presentacion_energias_renovables_renovable_.pptx
FUNCIONES DE CLASSROOM EN EL FUNCIONAMIENTO ESCOLAR
Mesopotamia y Egipto.pptx.pdf historia universal
Herramientaa de google google keep, maps.pdf
[Ebook gratuito] Introducción a la IA Generativa, Instalación y Configuración...
Guia de power bi de cero a avanzado detallado
LA INTELIGENCIA ARTIFICAL SU HISTORIA Y EL FUTURO
Frases de Fidel Castro. Compilación Norelys Morales Aguilera
CAPACITACIÓN MIPIG - MODELO INTEGRADO DE PLANEACIÓN Y GESTIÓN
Plantilla-Hardware-Informático-oficce.pptx
tema-2-interes-.pptx44444444444444444444
Qué es Google Classroom Insertar SlideShare U 6.pptx
Evolución de la computadora ACTUALMENTE.pptx
Presentación de un estudio de empresa pp
laser seguridad a la salud humana de piel y vision en laser clase 4
presentacion_energias_renovables_renovable_.pptx

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