SlideShare una empresa de Scribd logo
1 de 40
Seguridad en NodeJS
OWASP Top 10 Vulnerabilities
Acerca de mí
Raúl Requero
Arquitecto en Vizzuality
Coorganizador de OWASP Madrid
https://github.com/rrequero
@rrequero
OWASP Top 10 aplicado a NodeJS
Acerca de la charla de hoy…
OWASP Top 10
2013
A1-Injection
A2-Broken
Authentication and
Session Management
A3 - XSS
A4-Insecure Direct
Object References
A5-Security
Misconfiguration
A6-Sensitive Data
Exposure
A7-Access Control
A8-Cross-Site Request
Forgery (CSRF)
A9-Using Components
with Known
Vulnerabilities
A10-Unvalidated
Redirects and Forwards
https://www.owasp.org/index.php/Top_10_2013-Top_10
OWASP Node Goat
Project
https://github.com/OWASP/NodeGoat
A1-Injection
A1 - Injection
Nunca ejecutar querys con parámetros del front sin comprobarlos
Utilizar los sistemas de generación de querys de los orm’s
A1 - Injection
A1 - Injection
A2-Broken Authentication
and Session Management
A2 - Broken Authentication and Session
Management
No guardar las password en claro en la bbdd
No enviar el session id en la url
Usar bcrypt y guardar las password encriptada
A2 - Broken Authentication and Session
Management
A2 - Broken Authentication and Session
Management
A3 - XSS
A3-Cross-Site Scripting (XSS)
Escapar siempre el texto que envía el usuario, al guardarlo y al mostrarlo en el
html
Plantillas en servidor
React y Angular escapan todo el contenido que pintan por defecto
para prevenir un XSS
A3-Cross-Site Scripting (XSS)
A4-Insecure Direct Object
References
A4-Insecure Direct Object References
No expongas información sensible de la implementación al usuario.
Ejemplo: No envíes el id del usuario logado en la url para utilizarlo
después.
A4-Insecure Direct Object References
Solución: Obtén de la sesión el dato que necesitas (en el caso de datos del
usuario logado)
A5-Security Misconfiguration
A5 - Security Misconfiguration
No expongas más información de tu aplicación de la estrictamente
necesaria
Ejemplo: http://www.mrlooquer.com/list?q=%22X-Powered-
By:%20Express%22&page=2
A5-Security Misconfiguration
https://github.com/helmetjs
A6-Sensitive Data Exposure
A6 - Sensitive Data Exposure
Encripta todas las comunicaciones con tu aplicación para evitar robos de
información
Guarda unicamente lo estrictamente necesario y la información necesaria y
sensible guardala encriptada.
A6 - Sensitive Data Exposure
A7 - Access Control
A7 - Access Control
Securiza el acceso a los endpoints de la aplicación según el rol que puede
acceder
A7 - Access Control
A8-Cross-Site Request
Forgery (CSRF)
A8 - Cross-Site Request Forgery (CSRF)
Agrega un token a todas tus llamadas POST, PUT y PATCH que identifican
el origen de la llamada.
De este modo evitaras que un código malicioso pueda hacer llamadas a tus
endpoints que tu no controles.
A8 - Cross-Site Request Forgery (CSRF)
https://github.com/expressjs/csurf
A9-Using Components with
Known Vulnerabilities
A9 - Using Components with Known
Vulnerabilities
No ejecutes el servidor con permisos de root
Usa JSHint/JSLint
Intenta utilizar librerías que estén suficientemente testadas
Mantén actualizadas las librerías que utilizas para evitar posibles vulnerabilidades en las librerías
Utiliza el paquete nsp y chequea regularmente las librerías que utilizas en busca de posibles
vulnerabilidades
https://nodesecurity.io/opensource
A10-Unvalidated Redirects
and Forwards
A10 - Unvalidated Redirects and Forwards
No hagas un redirect al usuario a urls que vienen definidas en query
params, etc sin chequear el destino
Intenta siempre que las urls donde redirigas no se estén definidas en un
entorno donde puedan ser cambiadas por un código malicioso
¿Preguntas?
I  Meetup OWASP - Seguridad en NodeJS

Más contenido relacionado

Similar a I Meetup OWASP - Seguridad en NodeJS

Desarrollo seguro en NodeJS (OWASP top ten y JWT)
Desarrollo seguro en NodeJS (OWASP top ten y JWT)Desarrollo seguro en NodeJS (OWASP top ten y JWT)
Desarrollo seguro en NodeJS (OWASP top ten y JWT)Raúl Requero García
 
La Web como plataforma de referencia: viejos ataques y nuevas vulnerabilidades
La Web como plataforma de referencia: viejos ataques y nuevas vulnerabilidadesLa Web como plataforma de referencia: viejos ataques y nuevas vulnerabilidades
La Web como plataforma de referencia: viejos ataques y nuevas vulnerabilidadesNextel S.A.
 
La Web como plataforma de referencia: viejos ataques y nuevas vulnerabilidades
La Web como plataforma de referencia: viejos ataques y nuevas vulnerabilidadesLa Web como plataforma de referencia: viejos ataques y nuevas vulnerabilidades
La Web como plataforma de referencia: viejos ataques y nuevas vulnerabilidadesPablo Garaizar
 
In seguridad de aplicaciones web
In seguridad de aplicaciones webIn seguridad de aplicaciones web
In seguridad de aplicaciones webSaul Mamani
 
CSRF: El "Nuevo" Target - Juan David Castro
CSRF: El "Nuevo" Target - Juan David CastroCSRF: El "Nuevo" Target - Juan David Castro
CSRF: El "Nuevo" Target - Juan David CastroJaime Restrepo
 
CSRF: El Nuevo Target.
CSRF: El Nuevo Target.CSRF: El Nuevo Target.
CSRF: El Nuevo Target.Dylan Irzi
 
Owasp top 10
Owasp top 10Owasp top 10
Owasp top 10tabai
 
Seguridad en servidores WEB. Modulo mod_security
Seguridad en servidores WEB. Modulo mod_securitySeguridad en servidores WEB. Modulo mod_security
Seguridad en servidores WEB. Modulo mod_securityseguridadelinux
 
Los 7 pecados del Desarrollo Web
Los 7 pecados del Desarrollo WebLos 7 pecados del Desarrollo Web
Los 7 pecados del Desarrollo Webacksec
 
Seguridad web para desarrolladores - OWASP
Seguridad web para desarrolladores - OWASPSeguridad web para desarrolladores - OWASP
Seguridad web para desarrolladores - OWASPMarcos Harasimowicz
 
Cómo realizar un test de intrusión a una aplicación Web
Cómo realizar un test de intrusión a una aplicación WebCómo realizar un test de intrusión a una aplicación Web
Cómo realizar un test de intrusión a una aplicación WebEduardo Jalon
 
Taller Hacking Ético #Sysmana2012
Taller Hacking Ético #Sysmana2012Taller Hacking Ético #Sysmana2012
Taller Hacking Ético #Sysmana2012iesgrancapitan.org
 

Similar a I Meetup OWASP - Seguridad en NodeJS (20)

Owasp Top10 Spanish
Owasp Top10 SpanishOwasp Top10 Spanish
Owasp Top10 Spanish
 
Temas owasp
Temas owaspTemas owasp
Temas owasp
 
Desarrollo seguro en NodeJS (OWASP top ten y JWT)
Desarrollo seguro en NodeJS (OWASP top ten y JWT)Desarrollo seguro en NodeJS (OWASP top ten y JWT)
Desarrollo seguro en NodeJS (OWASP top ten y JWT)
 
Owasp proyecto
Owasp proyectoOwasp proyecto
Owasp proyecto
 
La Web como plataforma de referencia: viejos ataques y nuevas vulnerabilidades
La Web como plataforma de referencia: viejos ataques y nuevas vulnerabilidadesLa Web como plataforma de referencia: viejos ataques y nuevas vulnerabilidades
La Web como plataforma de referencia: viejos ataques y nuevas vulnerabilidades
 
La Web como plataforma de referencia: viejos ataques y nuevas vulnerabilidades
La Web como plataforma de referencia: viejos ataques y nuevas vulnerabilidadesLa Web como plataforma de referencia: viejos ataques y nuevas vulnerabilidades
La Web como plataforma de referencia: viejos ataques y nuevas vulnerabilidades
 
In seguridad de aplicaciones web
In seguridad de aplicaciones webIn seguridad de aplicaciones web
In seguridad de aplicaciones web
 
Testing Android Security
Testing Android SecurityTesting Android Security
Testing Android Security
 
CSRF: El "Nuevo" Target - Juan David Castro
CSRF: El "Nuevo" Target - Juan David CastroCSRF: El "Nuevo" Target - Juan David Castro
CSRF: El "Nuevo" Target - Juan David Castro
 
CSRF: El Nuevo Target.
CSRF: El Nuevo Target.CSRF: El Nuevo Target.
CSRF: El Nuevo Target.
 
Completo conferencia seguridad_web_software_libre_2015
Completo conferencia seguridad_web_software_libre_2015Completo conferencia seguridad_web_software_libre_2015
Completo conferencia seguridad_web_software_libre_2015
 
Owasp top 10
Owasp top 10Owasp top 10
Owasp top 10
 
Seguridad en servidores WEB. Modulo mod_security
Seguridad en servidores WEB. Modulo mod_securitySeguridad en servidores WEB. Modulo mod_security
Seguridad en servidores WEB. Modulo mod_security
 
Los 7 pecados del Desarrollo Web
Los 7 pecados del Desarrollo WebLos 7 pecados del Desarrollo Web
Los 7 pecados del Desarrollo Web
 
Seguridad web para desarrolladores - OWASP
Seguridad web para desarrolladores - OWASPSeguridad web para desarrolladores - OWASP
Seguridad web para desarrolladores - OWASP
 
Testing Android Security
Testing Android SecurityTesting Android Security
Testing Android Security
 
Cómo realizar un test de intrusión a una aplicación Web
Cómo realizar un test de intrusión a una aplicación WebCómo realizar un test de intrusión a una aplicación Web
Cómo realizar un test de intrusión a una aplicación Web
 
Owasp top ten 2019
Owasp top ten 2019Owasp top ten 2019
Owasp top ten 2019
 
Taller Hacking Ético #Sysmana2012
Taller Hacking Ético #Sysmana2012Taller Hacking Ético #Sysmana2012
Taller Hacking Ético #Sysmana2012
 
Web app attacks
Web app attacksWeb app attacks
Web app attacks
 

I Meetup OWASP - Seguridad en NodeJS

Notas del editor

  1. User-dao.js Linea 95
  2. User-dao.js Linea 95
  3. allocations.js linea 14 logo con user1 /User1_123 -> http://192.168.99.100:4000/allocations/2
  4. allocations.js linea 14 logo con user1 /User1_123 -> http://192.168.99.100:4000/allocations/2
  5. allocations.js linea 14 logo con user1 /User1_123 -> http://192.168.99.100:4000/allocations/2
  6. allocations.js linea 14 logo con user1 /User1_123 -> http://192.168.99.100:4000/allocations/2
  7. Usa https para que si se envían números de tarjetas no vayan en claro por la red. server.js -> https profile-dao.js —> var crypto = require("crypto");
  8. Usa https para que si se envían números de tarjetas no vayan en claro por la red. server.js -> https profile-dao.js —> var crypto = require("crypto");
  9. INDEX.js —> linea 52 middleware —> session.js Uso de middleware en express
  10. INDEX.js —> linea 52 middleware —> session.js Uso de middleware en express
  11. INDEX.js —> linea 52 middleware —> session.js Uso de middleware en express
  12. INDEX.js —> linea 52 middleware —> session.js Uso de middleware en express
  13. INDEX.js —> linea 52 middleware —> session.js Uso de middleware en express