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

548 views
489 views

Published on

Presentación sobre el proyecto WebSec Becas

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
548
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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 />

×