Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Seguridad aplicaciones web

412 views

Published on

Sesión impartida el día 26 de marzo de 2018

Published in: Education
  • Be the first to comment

  • Be the first to like this

Seguridad aplicaciones web

  1. 1. Algunas ideas sobre seguridad en aplicaciones web Fernando Tricas Garc´ıa Departamento de Inform´atica e Ingenier´ıa de Sistemas Universidad de Zaragoza http://webdiis.unizar.es/~ftricas/ http://elmundoesimperfecto.com/ ftricas@unizar.es
  2. 2. ´Indice Introducci´on y motivaci´on Principios Por donde empezar Identificaci´on, autentificaci´on, autorizaci´on Tendencias Algunas ideas sobre seguridad en aplicaciones web. 2
  3. 3. El sistema m´as seguro del mundo es .... http://www.youtube.com/watch?v=uqQwY-T6tE0 Otro: http://www.youtube.com/watch?v=_3syp77QPts Algunas ideas sobre seguridad en aplicaciones web. 3
  4. 4. ¿Y los usuarios? Algunas ideas sobre seguridad en aplicaciones web. 4
  5. 5. ¿Y los usuarios? http://www.theregister.co.uk/2013/07/15/google_study_finds_chrome_is_leastsecure_browser/ https://www.usenix.org/conference/usenixsecurity13/technical-sessions/presentation/akhawe Algunas ideas sobre seguridad en aplicaciones web. 4
  6. 6. Gesti´on del riesgo La seguridad es un compromiso entre muchos factores: Tiempo hasta que se puede vender Coste Flexibilidad Reutilizabilidad Relaciones entre los anteriores Hay que establecer las prioridades, a veces la seguridad no es la principal necesidad. Algunas ideas sobre seguridad en aplicaciones web. 5
  7. 7. Seguro o Inseguro Es mas realista pensar en t´erminos de gesti´on de riesgo: ¿Cu´anto riesgo? ¿Cu´anto cuesta reducirlo? Recordar: los ’malos’ no crean los defectos, simplemente los utilizan. Algunas ideas sobre seguridad en aplicaciones web. 6
  8. 8. Algunas cifras Year Num. of Vulns 1988 2 1989 3 1990 11 1991 15 1992 13 1993 13 1994 25 1995 25 1996 75 1997 252 1998 246 1999 894 2000 1020 2001 1677 2002 2156 2003 1527 2004 2451 2005 4933 2006 6608 2007 6514 2008 (4673) 5632 2009 5733 2010 (4091) 4639 2011 (3451) 4150 2012 (4565) 5289 2013 (4532) 5186 2014 (6785) 7937 2015 (5628) 6847 2016 6447 2017 14646 2018 3602 NIST: National Institute of Standards and Technology NVD: National Vulnerabilities Database http://web.nvd.nist.gov/view/vuln/statistics-results 24 de marzo de 2018 Algunas ideas sobre seguridad en aplicaciones web. 7
  9. 9. Ataques ‘2017 Trustwave Global Security Report’ https://www2.trustwave.com/2017-Trustwave-Global-Security-Report.html Algunas ideas sobre seguridad en aplicaciones web. 8
  10. 10. Robo de datos Information is Beautiful http://www.informationisbeautiful.net/visualizations/worlds-biggest-data-breaches-hacks/ ‘The Biggest Data Thefts In Recent History [Infographic]‘ http://www.popsci.com/technology/article/2013-07/infographic-biggest-thefts-data-visualized Algunas ideas sobre seguridad en aplicaciones web. 9
  11. 11. Vendedores RiskBased Security. Vulnerability QuickView. 2016 Year End https://www.riskbasedsecurity.com/2017/02/ 15000-vulnerabilities-disclosed-in-2016-major-vendors-continue-to-be-affected/ Algunas ideas sobre seguridad en aplicaciones web. 10
  12. 12. Consecuencias RiskBased Security. Vulnerability QuickView. 2016 Year End https://www.riskbasedsecurity.com/2017/02/ 15000-vulnerabilities-disclosed-in-2016-major-vendors-continue-to-be-affected/ Algunas ideas sobre seguridad en aplicaciones web. 11
  13. 13. Principios Algunas ideas sobre seguridad en aplicaciones web. 12
  14. 14. ¿Contra qu´e nos protegemos? https://profjohncole.com/2014/11/29/making-an-anti-fraguile-australia-by-2040/ Algunas ideas sobre seguridad en aplicaciones web. 13
  15. 15. Los principios 1. Asegurar el eslab´on m´as d´ebil 2. Seguridad en profundidad 3. Fallar de modo seguro 4. Seguir el principio del m´ınimo privilegio 5. Compartimentalizar 6. Simplicidad 7. Promover la privacidad (intimidad) 8. Recordar: guardar secretos es dif´ıcil 9. Ser desconfiados 10. Utilizar los recursos de tu comunidad Algunas ideas sobre seguridad en aplicaciones web. 14
  16. 16. Asegurar el eslab´on m´as d´ebil La identificaci´on del punto m´as d´ebil tiene que ver con el an´alisis de riesgos Si tenemos un buen an´alisis, mitigar el riesgo m´as grave primero es mejor que mitigar el riesgo m´as ‘sencillo’ No siempre el programa es el eslab´on m´as d´ebil; a veces tiene que ver con lo que le rodea. http://www.flickr.com/photos/bulle_de/349393319/ Algunas ideas sobre seguridad en aplicaciones web. 15
  17. 17. Defensa en profundidad Estrategias defensivas diversas, en niveles Si algo falla, hay m´as barreras detr´as Algunas ideas sobre seguridad en aplicaciones web. 16
  18. 18. Fallar de forma segura Cualquier sistema suficientemente complejo fallar´a Hay que procurar que eso no suponga problemas de seguridad Si se rompe un sistema de control ... de una caja fuerte, ¿c´omo deber´ıa quedar? ¿y de un cine? ¿y en un sitio web controlado por claves? Mejor ... Degradaci´on controlada http://www.flickr.com/photos/bargas/3695903512/ Algunas ideas sobre seguridad en aplicaciones web. 17
  19. 19. Fallar de forma segura. ¿Y las configuraciones? Por defecto, el sistema lo mas seguro posible Recordad que los ejemplos terminan us´andose Avisar de las consecuencias de los cambios Algunas ideas sobre seguridad en aplicaciones web. 18
  20. 20. Principio del m´ınimo privilegio Dar el acceso m´ınimo necesario para la tarea encargada M´ınimo tiempo posible Si alguien nos recoje el correo durante las vacaciones ... ¿le damos tambi´en las llaves del piso? Cuando compramos un piso, ¿conservamos la cerradura? Ventanas de vulnerabilidad (windows of vulnerability) tan peque˜nas como sea posible Algunas ideas sobre seguridad en aplicaciones web. 19
  21. 21. Principio del m´ınimo privilegio Si necesitamos permiso para leer un objeto, no darlo tambi´en para escribir Una vez que hayamos leido, quitarse los privilegios, si no hacen falta m´as La pereza es nuestro enemigo Algunas ideas sobre seguridad en aplicaciones web. 20
  22. 22. Compartimentalizaci´on Algunas ideas sobre seguridad en aplicaciones web. 21
  23. 23. Compartimentalizaci´on → En inform´atica: modularidad Algunas ideas sobre seguridad en aplicaciones web. 21
  24. 24. Simplicidad KISS: Keep It Simple Stupid!: La complejidad incrementa la posibilidad de que aparezcan problemas El dise˜no y la implementaci´on deber´ıa ser tan sencillo como se pueda Dise˜nos complejos son m´as dif´ıciles de entender M´as dif´ıcil de mantener M´as fallos Algunas ideas sobre seguridad en aplicaciones web. 22
  25. 25. Simplicidad Ergonom´ıa (usability) Todos los usuarios deber´ıan tener acceso a la mejor seguridad de nuestro sistema, y no poder introducir puntos inseguros por descuido. Algunas ideas (Norman 1989, Nielsen 1993): 1. Los usuarios no leen 2. Hablar con los usuarios 3. Los usuarios no tienen raz´on siempre 4. Los usuarios son perezosos Que el camino seguro sea el sencillo Algunas ideas sobre seguridad en aplicaciones web. 23
  26. 26. Simplicidad Making the simple complicated is commonplace; making the complicated simple, awesomely simple, that’s creativity. Charles Mingus Algunas ideas sobre seguridad en aplicaciones web. 24
  27. 27. Simplicidad Making the simple complicated is commonplace; making the complicated simple, awesomely simple, that’s creativity. Charles Mingus Make everything as simple as possible, but not simpler. Albert Einstein (Fotograf´ıas: Wikipedia) Algunas ideas sobre seguridad en aplicaciones web. 24
  28. 28. Promover la privacidad Muchos usuarios consideran su intimidad un asunto de seguridad Tenemos que tratar de no comprometer los datos de nuestros usuarios La mayor´ıa de sitios ‘serios’ no guarda nuestra clave, ni el n´umero de la tarjeta, ... Al menos, no mostrarla (nunca entera) Almacenarla cifrada Almacenarla en otra m´aquina diferente Algunas ideas sobre seguridad en aplicaciones web. 25
  29. 29. Esconder secretos es dif´ıcil No divulgar datos de los usuarios No divulgar claves Los ‘malos’ son muy h´abiles (DVD, chips consolas, ‘jailbreaks’, ...) Ataques desde dentro Descontentos Inadvertidos En todo caso ... la mayor´ıa No pueden robarnos los datos que no tenemos Algunas ideas sobre seguridad en aplicaciones web. 26
  30. 30. Cuidado con la confianza No poner secretos en el c´odigo del cliente Dise˜nar los servidores para no confiar en los clientes Ser desconfiado puede ayudar en la compartimentalizaci´on Muchos desarrolladores, arquitectos y gestores de proyectos no saben mucho sobre dise˜no seguro (incluso los que hacen herramientas de seguridad). Algunas ideas sobre seguridad en aplicaciones web. 27
  31. 31. Cuidado con la confianza No extender la confianza al servicio de atenci´on al cliente (ingenier´ıa social) Seguir a la manada: a veces se hacen algunas cosas por influencia de los competidores Es sano desconfiar hasta de uno mismo Confianza transitiva (amigos de amigos...) Algunas ideas sobre seguridad en aplicaciones web. 28
  32. 32. Utilizar los recursos de la comunidad No seguir ciegamente a la masa pero ... El uso continuado de una tecnolog´ıa ayuda El escrutinio p´ublico tambi´en Ejemplo: la criptograf´ıa, bibliotecas seguras, ... Algunas ideas sobre seguridad en aplicaciones web. 29
  33. 33. “Estos son mis principios. Si no le gustan tengo otros.” (Fotograf´ıa: Wikipedia) Algunas ideas sobre seguridad en aplicaciones web. 30
  34. 34. Otros principios Exactidud, precisi´on (‘accuracy’) ¿Corresponde el dise˜no (y el software luego) a la ‘realidad’? Claridad Acoplamiento d´ebil Menos complejidad, menos dependencias, ... Cohesi´on fuerte Los m´odulos gestionan tareas relacionadas entre si: hay una buena descomposici´on y modularizaci´on. Adecuada gesti´on de fallos Algunas ideas sobre seguridad en aplicaciones web. 31
  35. 35. Los principios de Microsoft SD3 + C Seguro por dise˜no Seguro por defecto Seguro en la implantaci´on (‘Deployment’) Comunicaci´on (con los clientes) http://msdn.microsoft.com/en-us/magazine/cc163705.aspx Algunas ideas sobre seguridad en aplicaciones web. 32
  36. 36. ¿De qu´e me tengo que preocupar? Algunas ideas sobre seguridad en aplicaciones web. 33
  37. 37. ¿De qu´e me tengo que preocupar? https://www.owasp.org/ Algunas ideas sobre seguridad en aplicaciones web. 33
  38. 38. OWASP Top 10 2017 (2013, 2007, 2004, 2003) https://www.owasp.org/index.php/Category: OWASP_Top_Ten_Project A1:2017 - Injection A2:2017 - Broken Authentication A3:2017 - Sensitive Data Exposure A4:2017 - XML External Entities (XXE) A5:2017 - Broken Access Control A6:2017 - Security Misconfiguration A7:2017 - Cross-Site Scripting (XSS) A8:2017 - Insecure Deserialization A9:2017 - Using Components with Known Vulnerabilities A10:2017 - Insufficient Logging & Monitoring https://www.owasp.org/images/5/5e/OWASP-Top-10-2017-es.pdf Algunas ideas sobre seguridad en aplicaciones web. 34
  39. 39. Identificaci´on, Autentificaci´on, autorizaci´on Algunas ideas sobre seguridad en aplicaciones web. 35
  40. 40. Las contrase˜nas Michelle L. Mazurek, Saranga Komanduri, Timothy Vidas, Lujo Bauer, Nicolas Christin, Lorrie Faith Cranor, Patrick Gage Kelley, Richard Shay, and Blase Ur ‘Measuring Password Guessability for an Entire University’. Octubre 2013 https://www.cylab.cmu.edu/research/techreports/2013/tr_cylab13013.html Claves largas Que contenga s´ımbolos, d´ıgitos, may´usculas En lugares no predecibles. ¡Cuidado con las pol´ıticas! Algunas ideas sobre seguridad en aplicaciones web. 36
  41. 41. Las contrase˜nas Michelle L. Mazurek, Saranga Komanduri, Timothy Vidas, Lujo Bauer, Nicolas Christin, Lorrie Faith Cranor, Patrick Gage Kelley, Richard Shay, and Blase Ur ‘Measuring Password Guessability for an Entire University’. Octubre 2013 https://www.cylab.cmu.edu/research/techreports/2013/tr_cylab13013.html Claves largas Que contenga s´ımbolos, d´ıgitos, may´usculas En lugares no predecibles. ¡Cuidado con las pol´ıticas! Los usuarios disconformes tienen claves mucho peores (46 % m´as f´aciles de adivinar) Algunas ideas sobre seguridad en aplicaciones web. 36
  42. 42. Pedir la clave Si es web: siempre, en una p´agina ‘segura’ (si no, no podemos estar seguros de que el sitio es quien dice ser). Si se transmite: siempre cifrada. Mostrar la clave (¡no! ... ¿no?) Algunas ideas sobre seguridad en aplicaciones web. 37
  43. 43. Opci´on mostrar la clave Algunas ideas sobre seguridad en aplicaciones web. 38
  44. 44. Pedir la clave ¿Qu´e avisos? ¿Usuario incorrecto? ¿Clave incorrecta? Seg´un la decisi´on, tener en cuenta las consecuencias... Algunas ideas sobre seguridad en aplicaciones web. 39
  45. 45. Sistemas de recuperaci´on de la clave Las preguntas secretas s´olo son claves m´as d´ebiles Aunque... https://www.owasp.org/index.php/Choosing_and_Using_Security_Questions_Cheat_Sheet Las pistas ‘hints’, parecido Algunas ideas sobre seguridad en aplicaciones web. 40
  46. 46. Sistemas de recuperaci´on de la clave Joseph Bonneau, Elie Bursztein, Ilan Caron, Rob Jackson, Mike Williamson. ‘Secrets, Lies, and Account Recovery: Lessons from the Use of Personal Knowledge Questions at Google’. WWW’15 - Proceedings of the 22nd international conference on World Wide Web, ACM (2015) http://research.google.com/pubs/pub43783.html Algunos mienten para ‘fortalecer’ la seguridad Y proporcionan respuestas a´un m´as predecibles. Son poco ‘memorables’ Y las m´as seguras (tu primer n´umero de tel´efono) m´as f´aciles de olvidar. → Casi imposible encontrar preguntas de seguridad memorables y seguras. Algunas ideas sobre seguridad en aplicaciones web. 41
  47. 47. Algunas listas de consejos Autentificaci´on: https://www.owasp.org/index.php/Authentication_Cheat_Sheet Recordatorio de claves: https://www.owasp.org/index.php/Forgot_Password_Cheat_Sheet Algunas ideas sobre seguridad en aplicaciones web. 42
  48. 48. Sistemas de recuperaci´on de la clave Enviar la clave (al correo de registro, correo f´ısico, SMS, ...). Preferiblemente sistemas ‘fuera de banda’. Enviar un enlace para reinicializarla: expiraci´on del enlace, url o identificador no predecible, posibilidad de re-enviarlo puede haber filtros anti-spam . . . O una clave temporal Algunas ideas sobre seguridad en aplicaciones web. 43
  49. 49. El caso de Evernote Algunas ideas sobre seguridad en aplicaciones web. 44
  50. 50. Mas consejos La autentificaci´on es tan segura como el sistema de gesti´on de usuarios Utilizar la forma mas apropiada de autentificaci´on de acuerdo al bien que se protege (claves, SMS, ...) Re-autentificar al usuario para transacciones de valor alto y ´areas protegidas Autentificar la transacci´on, no el usuario. Las claves son f´aciles de romper, no son v´alidas para sistemas de valor alto. Algunas ideas sobre seguridad en aplicaciones web. 45
  51. 51. El caso de GMail Algunas ideas sobre seguridad en aplicaciones web. 46
  52. 52. El caso de Facebook (I) Algunas ideas sobre seguridad en aplicaciones web. 47
  53. 53. El caso de Facebook (II) Algunas ideas sobre seguridad en aplicaciones web. 48
  54. 54. El caso de Facebook (III) Algunas ideas sobre seguridad en aplicaciones web. 49
  55. 55. El caso de Facebook (V) (Me salto el IV, son fotos reales de amigos) Algunas ideas sobre seguridad en aplicaciones web. 50
  56. 56. Tres tendencias Algunas ideas sobre seguridad en aplicaciones web. 51
  57. 57. Seguridad con + cosas ¡Dinero! http://econinfosec.org/ Algunas ideas sobre seguridad en aplicaciones web. 52
  58. 58. Seguridad con + cosas http://www.econinfosec.org/archive/weis2013/program.html Algunas ideas sobre seguridad en aplicaciones web. 53
  59. 59. Seguridad con + cosas ¡Personas! http://cups.cs.cmu.edu/soups/ Algunas ideas sobre seguridad en aplicaciones web. 54
  60. 60. Seguridad con + cosas ‘Shouldn’t All Security Be Usable?’ IEEE Security & Privacy. Volume: 9 Issue: 2. March 2011 http://doi.org/10.1109/MSP.2011.30 Algunas ideas sobre seguridad en aplicaciones web. 55
  61. 61. Regulaciones https://www.ccn-cert.cni.es/ens.html http://www.agpd.es/portalwebAGPD/temas/reglamento/index-ides-idphp.php Algunas ideas sobre seguridad en aplicaciones web. 56
  62. 62. Regulaciones + Buenas pr´acticas https://www.ccn-cert.cni.es/ens.html http://www.agpd.es/portalwebAGPD/temas/reglamento/index-ides-idphp.php https://www.owasp.org/ Algunas ideas sobre seguridad en aplicaciones web. 56
  63. 63. Regulaciones + Buenas pr´acticas https://www.ccn-cert.cni.es/ens.html http://www.agpd.es/portalwebAGPD/temas/reglamento/index-ides-idphp.php https://www.owasp.org/ https://www.pcisecuritystandards.org/ Algunas ideas sobre seguridad en aplicaciones web. 56
  64. 64. ¡Gracias! ftricas@unizar.es @fernand0 http://webdiis.unizar.es/~ftricas/ http://elmundoesimperfecto.com/ Algunas ideas sobre seguridad en aplicaciones web. 57

×