SlideShare una empresa de Scribd logo
1 de 30
Desarrollo de una Aplicación para el Apoyo a la Docencia de Seguridad Web Mediante Tecnologías .Net Autor: Roberto Cancio González Director: José Manuel Redondo López Máster en Ingeniería Web (EUITIO)                                    	 	     Universidad de Oviedo
Índice Introducción Análisis Diseño Tecnologías Pruebas ¿Qué he aprendido? Conclusiones Ampliaciones Demostración Práctica Máster en Ingeniería Web                    				Roberto Cancio González
Problemas seguridad en la Web actual, según un estudio de Web Application Security Consortium: Un 13% de los sitios son vulnerables de manera completamente automática. Un 49% aprox. de las aplicaciones contienen vulnerabilidades urgentes o críticas. La probabilidad de detectarvulnerabilidades con un nivel de riesgomedio o superior es mayor del 86% utilizandocualquiermétodo. Las vulnerabilidades más comunes son: Cross-site scripting, filtración de información y SQL Injection Justificación proyecto http://projects.webappsec.org/w/page/13246989/Web-Application-Security-Statistics Máster en Ingeniería Web                    		                  	Roberto Cancio González
Justificación proyecto (2) Es necesario mejorar esta situación  Formación No es posible utilizar aplicaciones reales Otras herramientas similares van quedándose obsoletas: Son difíciles de poner en funcionamiento Ya no representan los problemas de las tecnologías actuales Máster en Ingeniería Web                    		                  	Roberto Cancio González
Objetivos Desarrollo de una aplicación web para docencia en el MIW de gestión de becas Entorno .Net Vulnerabilidades de seguridad documentadas Aspecto lo más real y profesional posible (tanto interna como externamente) Uso de últimas versiones de las distintas tecnologías Máster en Ingeniería Web                    		                  	Roberto Cancio González
Requisitos Funcionales CRUD sobre: Anuncios Comentarios Usuarios Convocatorias de Beca Usuarios anónimos  Registro como solicitantes Usuarios registrados  Inicio/Fin de sesión Solicitante  Realizar Solicitud Becas Evaluador  Evaluar Solicitud … Máster en Ingeniería Web                    		                  	Roberto Cancio González
Requisitos No Funcionales Uso de estándares W3C (XHTML y CSS) Nivel AA de accesibilidad Uso de tecnologías .Net (C# y ASP.Net) LOPD (cifrado de contraseñas…) Vulnerabilidades de Seguridad: Cross-site scripting (XSS) SQL Injection Filtración de información Validación sólo en el cliente Puerta trasera … Máster en Ingeniería Web                    		                  	Roberto Cancio González
Índice Introducción Análisis Diseño Tecnologías Pruebas ¿Qué he aprendido? Conclusiones Ampliaciones Demostración Práctica Máster en Ingeniería Web                    				Roberto Cancio González
Análisis: Actores Anónimo:ver anuncios y registrarse como solicitante Solicitante: comentar y realizar solicitudes de becas Evaluador: conceder o no las solicitudes de beca. También gestionar anuncios, comentarios y convocatorias de beca. Administrador: gestionar el sistema con sus usuarios, anuncios, convocatorias… Máster en Ingeniería Web                    		                  	Roberto Cancio González
Análisis: Módulos Anuncios Becas Usuarios Máster en Ingeniería Web                    		                  	Roberto Cancio González
Índice Introducción Análisis Diseño Tecnologías Pruebas ¿Qué he aprendido? Conclusiones Ampliaciones Demostración Práctica Máster en Ingeniería Web                    				Roberto Cancio González
Diseño Modelo Arquitectura organizada en capas Presentación Negocio Persistencia Patrón arquitectónico Layers Patrón de diseño Façade Reducción de acoplamiento: Inyección de Dependencias Máster en Ingeniería Web                    		                  	Roberto Cancio González
Diseño Persistencia Patrón de diseño DAO Los DAOs pueden colaborar entre sí Mismo esquema para cada entidad Máster en Ingeniería Web                    		                  	Roberto Cancio González
Diseño Negocio Patrón de diseño Command Máster en Ingeniería Web                    		                  	Roberto Cancio González
Secuencia Evaluación Máster en Ingeniería Web                    		                  	Roberto Cancio González
Diseño Vulnerabilidades Muchas vulnerabilidades aparecen por falta de validación en el servidor. Esto puede ser: Voluntario: con objeto de reducir la carga del servidor Involuntario: pensar que la validación en cliente es suficiente Otras aparecen por despistes y olvidos Se intentó reflejar todo este panorama incluyendo: Cross-site scripting en Comentarios y Solicitud de beca SQL Injection en la página de login Filtración de información (comentarios HTML con pistas que facilitan ataques) … Máster en Ingeniería Web                    		                  	Roberto Cancio González
Índice Introducción Análisis Diseño Tecnologías Pruebas ¿Qué he aprendido? Conclusiones Ampliaciones Demostración Práctica Máster en Ingeniería Web                    				Roberto Cancio González
Tecnologías Back-End Base de datos: SQL Server Programación:  .Net Framework C#: Modelo, capas de la arquitectura, código de pruebas… Spring.Net: Inyección de Dependencias Máster en Ingeniería Web                    		                  	Roberto Cancio González
Tecnologías Front-End ASP.Net 3.5 Ajax Control Toolkit XHTML 1.0 Transitional CSS 2.1 y CSS 3 JQuery + PluginDataTables + PluginFileStyle Mejora Progresiva “Minificado” de código (CSS y Javascript) Máster en Ingeniería Web                    		                  	Roberto Cancio González
Índice Introducción Análisis Diseño Tecnologías Pruebas ¿Qué he aprendido? Conclusiones Ampliaciones Demostración Práctica Máster en Ingeniería Web                    				Roberto Cancio González
Pruebas Pruebas de regresión: herramienta integrada de Visual Studio (casi 200 métodos de prueba) Accesibilidad: AA + Varias pautas AAA Problema con plug-in JQueryDataTables: finalmente corregido Usabilidad: Heurísticas + Usuarios Máster en Ingeniería Web                    		                  	Roberto Cancio González
Índice Introducción Análisis Diseño Tecnologías Prueba ¿Qué he aprendido? Conclusiones Ampliaciones Demostración Práctica Máster en Ingeniería Web                    				Roberto Cancio González
¿Qué he aprendido? Aspectos de seguridad Vulnerabilidades en entorno .Net Por qué se producen (malas prácticas) Cómo solucionarlas (buenas prácticas) Utilización del .Net Framework Inyección de dependencias y uso de Spring.Net Integración de todo lo aprendido durante el Máster (conceptos, técnicas, tecnologías,…) Máster en Ingeniería Web                    		                  	Roberto Cancio González
Índice Introducción Análisis Diseño Tecnologías Pruebas ¿Qué he aprendido? Conclusiones Ampliaciones Demostración Práctica Máster en Ingeniería Web                    				Roberto Cancio González
Conclusiones Gestión de Becas: para llamar la atención del alumno Aspecto interno real y profesional: Patrones arquitectónicos y de diseño Inyección de dependencias Pruebas de regresión Cifrado de contraseñas mediante SHA-1 Aspecto externo real y profesional: Accesibilidad Usabilidad y patrones de diseño de interacción Diseño e implementación del mismo Validación Javascript Máster en Ingeniería Web                    		                  	Roberto Cancio González
Conclusiones (2) Documentación de vulnerabilidades: Todas incluidas en el manual correspondiente y screencast: http://www.youtube.com/watch?v=m11O25oMw7k  Uso de últimas versiones tecnologías: .Net, Ajax Control Toolkit, Spring.Net, JQuery, plugins,… …y sobre todo: Ahora existe una herramienta lo más real y actual posible que sí podrá utilizarse para la docencia de seguridad en aplicaciones web en el Máster en Ingeniería Web Máster en Ingeniería Web                    		                  	Roberto Cancio González
Índice Introducción Análisis Diseño Tecnologías Pruebas ¿Qué he aprendido? Conclusiones Ampliaciones Demostración Práctica Máster en Ingeniería Web                    				Roberto Cancio González
Ampliaciones Proyectos similares en otras tecnologías Java (usando el frameworkStruts, por ejemplo) Ruby (usando el frameworkRails, por ejemplo) PHP (usando el frameworkYii, por ejemplo) Proyectos similares utilizando otras tecnologías del Framework .Net: MVC LINQ Ampliación proyecto: Más vulnerabilidades Nivel de accesibilidad AA  AAA … Máster en Ingeniería Web                    		                  	Roberto Cancio González
Índice Introducción Análisis Diseño Tecnologías Pruebas ¿Qué he aprendido? Conclusiones Ampliaciones Demostración Práctica Máster en Ingeniería Web                    				Roberto Cancio González
Demostración Práctica FIN DE LA PRESENTACIÓN Demostración Práctica Máster en Ingeniería Web                    		                  	Roberto Cancio González

Más contenido relacionado

Similar a Web sec

Ingenieria web
Ingenieria webIngenieria web
Ingenieria web
arienneya
 
Visual Studio2005
Visual Studio2005Visual Studio2005
Visual Studio2005
hvillarreal
 
Cómo incluir requisitos de accesibilidad web en el proceso de desarrollo soft...
Cómo incluir requisitos de accesibilidad web en el proceso de desarrollo soft...Cómo incluir requisitos de accesibilidad web en el proceso de desarrollo soft...
Cómo incluir requisitos de accesibilidad web en el proceso de desarrollo soft...
Generación de Jóvenes Rompiendo Barreras
 
Desarrollo de Aplicaciones Web II - Sesión 01 - Introducción
Desarrollo de Aplicaciones Web II - Sesión 01 - IntroducciónDesarrollo de Aplicaciones Web II - Sesión 01 - Introducción
Desarrollo de Aplicaciones Web II - Sesión 01 - Introducción
Didier Granados
 

Similar a Web sec (20)

La Ingeniería Web
La Ingeniería WebLa Ingeniería Web
La Ingeniería Web
 
Ingeniería Web
Ingeniería WebIngeniería Web
Ingeniería Web
 
Ddd
DddDdd
Ddd
 
Ingenieria web
Ingenieria webIngenieria web
Ingenieria web
 
Ingenieria web
Ingenieria webIngenieria web
Ingenieria web
 
Presentacion curso ingenieria web ing. aldo zanabria
Presentacion curso ingenieria web   ing. aldo zanabriaPresentacion curso ingenieria web   ing. aldo zanabria
Presentacion curso ingenieria web ing. aldo zanabria
 
Pressman capitulo 15
Pressman capitulo 15Pressman capitulo 15
Pressman capitulo 15
 
[Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo...
[Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo...[Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo...
[Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo...
 
profundizaU1.pdf
profundizaU1.pdfprofundizaU1.pdf
profundizaU1.pdf
 
Visual Studio2005
Visual Studio2005Visual Studio2005
Visual Studio2005
 
Sesion 1
Sesion 1Sesion 1
Sesion 1
 
Ingeniería web_Unidad 3
Ingeniería web_Unidad 3Ingeniería web_Unidad 3
Ingeniería web_Unidad 3
 
Ingeniería web
Ingeniería webIngeniería web
Ingeniería web
 
Cómo incluir requisitos de accesibilidad web en el proceso de desarrollo soft...
Cómo incluir requisitos de accesibilidad web en el proceso de desarrollo soft...Cómo incluir requisitos de accesibilidad web en el proceso de desarrollo soft...
Cómo incluir requisitos de accesibilidad web en el proceso de desarrollo soft...
 
Ingenieria Web
Ingenieria WebIngenieria Web
Ingenieria Web
 
Pressman capitulo 15
Pressman capitulo 15Pressman capitulo 15
Pressman capitulo 15
 
Diseño de páginas web
Diseño de páginas webDiseño de páginas web
Diseño de páginas web
 
Sis07 pwi programacion_web_i
Sis07 pwi programacion_web_iSis07 pwi programacion_web_i
Sis07 pwi programacion_web_i
 
Rosalie On-Line
Rosalie On-LineRosalie On-Line
Rosalie On-Line
 
Desarrollo de Aplicaciones Web II - Sesión 01 - Introducción
Desarrollo de Aplicaciones Web II - Sesión 01 - IntroducciónDesarrollo de Aplicaciones Web II - Sesión 01 - Introducción
Desarrollo de Aplicaciones Web II - Sesión 01 - Introducción
 

Último

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
FagnerLisboa3
 

Último (11)

Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 

Web sec

  • 1. Desarrollo de una Aplicación para el Apoyo a la Docencia de Seguridad Web Mediante Tecnologías .Net Autor: Roberto Cancio González Director: José Manuel Redondo López Máster en Ingeniería Web (EUITIO) Universidad de Oviedo
  • 2. Índice Introducción Análisis Diseño Tecnologías Pruebas ¿Qué he aprendido? Conclusiones Ampliaciones Demostración Práctica Máster en Ingeniería Web Roberto Cancio González
  • 3. Problemas seguridad en la Web actual, según un estudio de Web Application Security Consortium: Un 13% de los sitios son vulnerables de manera completamente automática. Un 49% aprox. de las aplicaciones contienen vulnerabilidades urgentes o críticas. La probabilidad de detectarvulnerabilidades con un nivel de riesgomedio o superior es mayor del 86% utilizandocualquiermétodo. Las vulnerabilidades más comunes son: Cross-site scripting, filtración de información y SQL Injection Justificación proyecto http://projects.webappsec.org/w/page/13246989/Web-Application-Security-Statistics Máster en Ingeniería Web Roberto Cancio González
  • 4. Justificación proyecto (2) Es necesario mejorar esta situación  Formación No es posible utilizar aplicaciones reales Otras herramientas similares van quedándose obsoletas: Son difíciles de poner en funcionamiento Ya no representan los problemas de las tecnologías actuales Máster en Ingeniería Web Roberto Cancio González
  • 5. Objetivos Desarrollo de una aplicación web para docencia en el MIW de gestión de becas Entorno .Net Vulnerabilidades de seguridad documentadas Aspecto lo más real y profesional posible (tanto interna como externamente) Uso de últimas versiones de las distintas tecnologías Máster en Ingeniería Web Roberto Cancio González
  • 6. Requisitos Funcionales CRUD sobre: Anuncios Comentarios Usuarios Convocatorias de Beca Usuarios anónimos  Registro como solicitantes Usuarios registrados  Inicio/Fin de sesión Solicitante  Realizar Solicitud Becas Evaluador  Evaluar Solicitud … Máster en Ingeniería Web Roberto Cancio González
  • 7. Requisitos No Funcionales Uso de estándares W3C (XHTML y CSS) Nivel AA de accesibilidad Uso de tecnologías .Net (C# y ASP.Net) LOPD (cifrado de contraseñas…) Vulnerabilidades de Seguridad: Cross-site scripting (XSS) SQL Injection Filtración de información Validación sólo en el cliente Puerta trasera … Máster en Ingeniería Web Roberto Cancio González
  • 8. Índice Introducción Análisis Diseño Tecnologías Pruebas ¿Qué he aprendido? Conclusiones Ampliaciones Demostración Práctica Máster en Ingeniería Web Roberto Cancio González
  • 9. Análisis: Actores Anónimo:ver anuncios y registrarse como solicitante Solicitante: comentar y realizar solicitudes de becas Evaluador: conceder o no las solicitudes de beca. También gestionar anuncios, comentarios y convocatorias de beca. Administrador: gestionar el sistema con sus usuarios, anuncios, convocatorias… Máster en Ingeniería Web Roberto Cancio González
  • 10. Análisis: Módulos Anuncios Becas Usuarios Máster en Ingeniería Web Roberto Cancio González
  • 11. Índice Introducción Análisis Diseño Tecnologías Pruebas ¿Qué he aprendido? Conclusiones Ampliaciones Demostración Práctica Máster en Ingeniería Web Roberto Cancio González
  • 12. Diseño Modelo Arquitectura organizada en capas Presentación Negocio Persistencia Patrón arquitectónico Layers Patrón de diseño Façade Reducción de acoplamiento: Inyección de Dependencias Máster en Ingeniería Web Roberto Cancio González
  • 13. Diseño Persistencia Patrón de diseño DAO Los DAOs pueden colaborar entre sí Mismo esquema para cada entidad Máster en Ingeniería Web Roberto Cancio González
  • 14. Diseño Negocio Patrón de diseño Command Máster en Ingeniería Web Roberto Cancio González
  • 15. Secuencia Evaluación Máster en Ingeniería Web Roberto Cancio González
  • 16. Diseño Vulnerabilidades Muchas vulnerabilidades aparecen por falta de validación en el servidor. Esto puede ser: Voluntario: con objeto de reducir la carga del servidor Involuntario: pensar que la validación en cliente es suficiente Otras aparecen por despistes y olvidos Se intentó reflejar todo este panorama incluyendo: Cross-site scripting en Comentarios y Solicitud de beca SQL Injection en la página de login Filtración de información (comentarios HTML con pistas que facilitan ataques) … Máster en Ingeniería Web Roberto Cancio González
  • 17. Índice Introducción Análisis Diseño Tecnologías Pruebas ¿Qué he aprendido? Conclusiones Ampliaciones Demostración Práctica Máster en Ingeniería Web Roberto Cancio González
  • 18. Tecnologías Back-End Base de datos: SQL Server Programación: .Net Framework C#: Modelo, capas de la arquitectura, código de pruebas… Spring.Net: Inyección de Dependencias Máster en Ingeniería Web Roberto Cancio González
  • 19. Tecnologías Front-End ASP.Net 3.5 Ajax Control Toolkit XHTML 1.0 Transitional CSS 2.1 y CSS 3 JQuery + PluginDataTables + PluginFileStyle Mejora Progresiva “Minificado” de código (CSS y Javascript) Máster en Ingeniería Web Roberto Cancio González
  • 20. Índice Introducción Análisis Diseño Tecnologías Pruebas ¿Qué he aprendido? Conclusiones Ampliaciones Demostración Práctica Máster en Ingeniería Web Roberto Cancio González
  • 21. Pruebas Pruebas de regresión: herramienta integrada de Visual Studio (casi 200 métodos de prueba) Accesibilidad: AA + Varias pautas AAA Problema con plug-in JQueryDataTables: finalmente corregido Usabilidad: Heurísticas + Usuarios Máster en Ingeniería Web Roberto Cancio González
  • 22. Índice Introducción Análisis Diseño Tecnologías Prueba ¿Qué he aprendido? Conclusiones Ampliaciones Demostración Práctica Máster en Ingeniería Web Roberto Cancio González
  • 23. ¿Qué he aprendido? Aspectos de seguridad Vulnerabilidades en entorno .Net Por qué se producen (malas prácticas) Cómo solucionarlas (buenas prácticas) Utilización del .Net Framework Inyección de dependencias y uso de Spring.Net Integración de todo lo aprendido durante el Máster (conceptos, técnicas, tecnologías,…) Máster en Ingeniería Web Roberto Cancio González
  • 24. Índice Introducción Análisis Diseño Tecnologías Pruebas ¿Qué he aprendido? Conclusiones Ampliaciones Demostración Práctica Máster en Ingeniería Web Roberto Cancio González
  • 25. Conclusiones Gestión de Becas: para llamar la atención del alumno Aspecto interno real y profesional: Patrones arquitectónicos y de diseño Inyección de dependencias Pruebas de regresión Cifrado de contraseñas mediante SHA-1 Aspecto externo real y profesional: Accesibilidad Usabilidad y patrones de diseño de interacción Diseño e implementación del mismo Validación Javascript Máster en Ingeniería Web Roberto Cancio González
  • 26. Conclusiones (2) Documentación de vulnerabilidades: Todas incluidas en el manual correspondiente y screencast: http://www.youtube.com/watch?v=m11O25oMw7k Uso de últimas versiones tecnologías: .Net, Ajax Control Toolkit, Spring.Net, JQuery, plugins,… …y sobre todo: Ahora existe una herramienta lo más real y actual posible que sí podrá utilizarse para la docencia de seguridad en aplicaciones web en el Máster en Ingeniería Web Máster en Ingeniería Web Roberto Cancio González
  • 27. Índice Introducción Análisis Diseño Tecnologías Pruebas ¿Qué he aprendido? Conclusiones Ampliaciones Demostración Práctica Máster en Ingeniería Web Roberto Cancio González
  • 28. Ampliaciones Proyectos similares en otras tecnologías Java (usando el frameworkStruts, por ejemplo) Ruby (usando el frameworkRails, por ejemplo) PHP (usando el frameworkYii, por ejemplo) Proyectos similares utilizando otras tecnologías del Framework .Net: MVC LINQ Ampliación proyecto: Más vulnerabilidades Nivel de accesibilidad AA  AAA … Máster en Ingeniería Web Roberto Cancio González
  • 29. Índice Introducción Análisis Diseño Tecnologías Pruebas ¿Qué he aprendido? Conclusiones Ampliaciones Demostración Práctica Máster en Ingeniería Web Roberto Cancio González
  • 30. Demostración Práctica FIN DE LA PRESENTACIÓN Demostración Práctica Máster en Ingeniería Web Roberto Cancio González