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