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.
Desarrollo de una Aplicación para el Apoyo a la Docencia de Seguridad Web Mediante Tecnologías .Net<br />Autor: Roberto Ca...
Índice<br />Introducción<br />Análisis<br />Diseño<br />Tecnologías<br />Pruebas<br />¿Qué he aprendido?<br />Conclusiones...
Problemas seguridad en la Web actual, según un estudio de Web Application Security Consortium:<br />Un 13% de los sitios s...
Justificación proyecto (2)<br />Es necesario mejorar esta situación  Formación<br />No es posible utilizar aplicaciones r...
Objetivos<br />Desarrollo de una aplicación web para docencia en el MIW de gestión de becas<br />Entorno .Net<br />Vulnera...
Requisitos Funcionales<br />CRUD sobre:<br />Anuncios<br />Comentarios<br />Usuarios<br />Convocatorias de Beca<br />Usuar...
Requisitos No Funcionales<br />Uso de estándares W3C (XHTML y CSS)<br />Nivel AA de accesibilidad<br />Uso de tecnologías ...
Índice<br />Introducción<br />Análisis<br />Diseño<br />Tecnologías<br />Pruebas<br />¿Qué he aprendido?<br />Conclusiones...
Análisis: Actores<br />Anónimo:ver anuncios y registrarse como solicitante<br />Solicitante: comentar y realizar solicitud...
Análisis: Módulos<br />Anuncios<br />Becas<br />Usuarios<br />Máster en Ingeniería Web                    		              ...
Índice<br />Introducción<br />Análisis<br />Diseño<br />Tecnologías<br />Pruebas<br />¿Qué he aprendido?<br />Conclusiones...
Diseño<br />Modelo<br />Arquitectura organizada en capas<br />Presentación<br />Negocio<br />Persistencia<br />Patrón arqu...
Diseño Persistencia<br />Patrón de diseño DAO<br />Los DAOs pueden colaborar entre sí<br />Mismo esquema para cada entidad...
Diseño Negocio<br />Patrón de diseño Command<br />Máster en Ingeniería Web                    		                  	Roberto...
Secuencia Evaluación<br />Máster en Ingeniería Web                    		                  	Roberto Cancio González<br />
Diseño Vulnerabilidades<br />Muchas vulnerabilidades aparecen por falta de validación en el servidor. Esto puede ser:<br /...
Índice<br />Introducción<br />Análisis<br />Diseño<br />Tecnologías<br />Pruebas<br />¿Qué he aprendido?<br />Conclusiones...
Tecnologías Back-End<br />Base de datos: SQL Server<br />Programación: <br />.Net Framework<br />C#: Modelo, capas de la a...
Tecnologías Front-End<br />ASP.Net 3.5<br />Ajax Control Toolkit<br />XHTML 1.0 Transitional<br />CSS 2.1 y CSS 3<br />JQu...
Índice<br />Introducción<br />Análisis<br />Diseño<br />Tecnologías<br />Pruebas<br />¿Qué he aprendido?<br />Conclusiones...
Pruebas<br />Pruebas de regresión: herramienta integrada de Visual Studio (casi 200 métodos de prueba)<br />Accesibilidad:...
Índice<br />Introducción<br />Análisis<br />Diseño<br />Tecnologías<br />Prueba<br />¿Qué he aprendido?<br />Conclusiones<...
¿Qué he aprendido?<br />Aspectos de seguridad<br />Vulnerabilidades en entorno .Net<br />Por qué se producen (malas prácti...
Índice<br />Introducción<br />Análisis<br />Diseño<br />Tecnologías<br />Pruebas<br />¿Qué he aprendido?<br />Conclusiones...
Conclusiones<br />Gestión de Becas: para llamar la atención del alumno<br />Aspecto interno real y profesional:<br />Patro...
Conclusiones (2)<br />Documentación de vulnerabilidades: Todas incluidas en el manual correspondiente y screencast:<br />h...
Índice<br />Introducción<br />Análisis<br />Diseño<br />Tecnologías<br />Pruebas<br />¿Qué he aprendido?<br />Conclusiones...
Ampliaciones<br />Proyectos similares en otras tecnologías<br />Java (usando el frameworkStruts, por ejemplo)<br />Ruby (u...
Índice<br />Introducción<br />Análisis<br />Diseño<br />Tecnologías<br />Pruebas<br />¿Qué he aprendido?<br />Conclusiones...
Demostración Práctica<br />FIN DE LA PRESENTACIÓN<br />Demostración Práctica<br />Máster en Ingeniería Web                ...
Upcoming SlideShare
Loading in …5
×

Web sec

614 views

Published on

Presentación sobre el proyecto WebSec Becas

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Web sec

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

×