Descargar Vulnerabilidades en las TIC`s
Transcripción
Descargar Vulnerabilidades en las TIC`s
1.- DATOS DE LA ASIGNATURA Nombre de la asignatura: Vulnerabilidades en las TIC’s Carrera: Ing. En Tecnología de la Información y Comunicación Clave de la asignatura: ASD-1305 TCA 1: 2.- Presentación CARACTERIZACIÓN DE LA ASIGNATURA. La presente asignatura aporta al perfil del Ingeniero en Tecnología de la Información la capacidad de desarrollar e implementar un análisis y diagnósticos de vulnerabilidades de infraestructura tecnológica y/o software basadas en estándares de seguridad y normas internacionales, administrar proyectos que involucren el uso de las tecnologías de la información para la auditoría que garanticen la integridad de la información y detecten vulnerabilidades, así como utilizar tecnologías y herramientas actuales y emergentes acordes a las necesidades del entorno. INTENCIÓN DIDÁCTICA. Se organiza el temario, en seis unidades, las cuales incluyen contenidos conceptuales y aplicación de los mismos a través de ejercicios prácticos y reales. Se aborda la introducción a la seguridad informática, en la primera unidad, con la finalidad de que el estudiante se relacione con los conceptos básico / clave de la seguridad. En la segunda unidad se abordan temas como, la administración y los riesgos de la seguridad del software, que permite comprender los fallos que se tiene al hacer una mala administración del software. En la tercera unidad se abordan los temas de la fragilidad del código en ejecución, que aporta al estudiante los conocimientos de las diversas técnicas que existen hasta el momento –conocidas-. En la cuarta unidad se tratan temas relacionados, con la seguridad en el código fuente, para que el estudiante tenga la precaución de no cometerlos. En la quinta unidad, se abordan temas que permitirá al estudiante generar una auditoría de software. En la sexta unidad, se tratan temas que dan vulnerabilidad al software, tales como las inyecciones sql en sitios web, hack-exs para el volcado de memoria de programas. 3.- Competencias a desarrollar Competencias específicas: Identificar la importancia de la aplicación de estándares de calidad y productividad en el desarrollo de un software. Aplicar métodos y herramientas de la ingeniería del software en el desarrollo de software. Identificar las características de los métodos Competencias genéricas: Competencias instrumentales • Capacidad de análisis y síntesis. • Capacidad de organizar y planificar. • Conocimientos básicos de la carrera. • Comunicación oral y escrita. • Habilidades avanzadas de manejo de la computadora. • Habilidad para buscar y analizar información proveniente de fuentes diversas. • Solución de problemas. • Toma de decisiones. Competencias interpersonales • Capacidad crítica y autocrítica. • Trabajo en equipo. • Habilidades interpersonales. Competencias sistémicas • Capacidad de aplicar los conocimientos en la práctica. • Habilidades de investigación. • Capacidad de aprender. • Capacidad de generar nuevas ideas (creatividad). • Habilidad para trabajar en forman autónoma. • Búsqueda del logro. 4. HISTORIA DEL PROGRAMA. Lugar y fecha de elaboración o revición Participantes Instituto Tecnológico Superior de Centla Academia de Sistemas, informática y TIC's Observaciones (cambios y justificaciones) 5. OBJETIVO(S) GENERAL(ES) DEL CURSO El alumno comprenderá, analizará y aplicará los principios, tendencias y técnicas para la detección de vulnerabilidad en el desarrollo de software y de las TIC's 6. COMPETENCIAS PREVIAS Comprender el funcionamiento general de las computadoras. Elaborar algoritmos computacionales para la solución de problemas de cómputo. Comprender las características de la arquitectura básica de una computadora. 7. TEMARIO Unidad 1 2 3 4 Temas Subtemas 1.1 Concepto de Software 1.2 Casos reales de fallas en el software 1.3 Futuro del software 1.4 Fuentes para información de vulnerabilidades 1.4.1 Buqtraq 1.4.2 CERT Advisores 1.4.3 RISK Digest 1.5 Tendencias técnicas que afectan a la Seguridad del Software Introducción a la seguridad 1.6 Breanking and patch (romper y actualizar) del software 1.7 Metas de la Seguridad enfocadas al Software 1.7.1 Prevención 1.7.2 Auditable y trazable 1.7.3 Monitoreo 1.7.4 Privacidad y Confidencialidad 1.7.5 Seguridad Multiniveles 1.7.6 Anonimato 1.7.7 Autenticación 1.7.8 Integridad 1.8 Conocer al enemigo 1.9 Metas de proyecto de Software 2.1 Descripción de la administración de los riesgos en la Seguridad del Software 2.2 Administración de los riesgos en la Administración y los riesgos seguridad del Software en la práctica en la seguridad 2.2.1 Pruebas de Caja Negra 2.2.2 Equipo Rojo 2.3 Criterios Comunes 3.1 Seguridad por Oscuridad 3.2 Ingeniería en Reversa Fragilidad del código en 3.3 Código Fuente Abierto ejecución 3.4 Falacias del código abierto 3.5 Ofuscación del código fuente 3.6 Bombas lógicas 4.1 Reducir las líneas débiles 4.2 Defensa por pasos o capas Seguridad en la fuente. 4.3 Errores básicos 4.4 Privilegios 4.5 Segmentando código 4.6 La simplicidad es mejor 5 6 Auditoría de software Probando la seguridad 4.7 Privacidad 4.8 Transparentar el código 5.1 Definición de Arquitectura de Seguridad 5.2 Principios de la Arquitectura de Seguridad 5.3 Análisis de la Arquitectura de Seguridad 5.4 Implementación del Análisis de Seguridad 5.5 Uso de herramientas de escaneo. 6.1 Definición de Código Seguro 6.2 Lenguaje Ensamblador 6.3 Lenguajes de Programación 6.4 Técnicas de Código Seguro 6.4.1 Buffer Overflows 6.4.2 Heap Overflows 6.4.3 Formato de cadena 6.4.4 Exploits 6.4.5 Race conditions 6.4.6 SQL injection 6.4.7 Cross Site & Cross-Domain Scripting 6.4.8 Fault Injection 6.4.9 volcado de memoria en aplicaciones de escritorio. 6.4.10 uso de Bactrack 6.4.11 comparativas de software de auditoría 8. SUGERENCIAS DIDÁCTICAS Exposición oral Lecturas obligatorias Exposición audiovisual Trabajos de investigación Ejercicios dentro de clase Ejercicios fuera del aula Trabajar en grupos pequeños, para sintetizar y construir el conocimiento necesario para resolver problemas relacionados con situaciones reales. Propiciar que el estudiante experimente con diferentes programas encontrados en revistas, Internet y libros de la especialidad, que lo lleven a descubrir nuevos conocimientos. 9.- SUGERENCIAS DE EVALUACIÓN La evaluación de la asignatura se hará con base en siguiente desempeño: Ponderación de tareas. Participación y desempeño en el aula y el laboratorio, a través de dinámicas grupales, trabajo individual o en equipo. Dar seguimiento al desempeño en el desarrollo del programa (dominio de los conceptos, capacidad de la aplicación de los conocimientos en problemas reales, transferencia del conocimiento). Desarrollo de un proyecto que integre todas las unidades de aprendizaje. Cumplimiento de los objetivos y desempeño en las prácticas. 10. UNIDADES DE APRENDIZAJE Unidad 1: Introducción a la seguridad del software Objetivo Educacional El alumno conocerá y comprenderá los fundamentos teóricos, tendencias y metas de la seguridad en el software. Actividades de Aprendizaje Buscar y seleccionar información sobre el software seguro Discutir en grupo el concepto de software importancia Buscar información sobre las metas de enfocadas al software. Discutir en que consiste cada una de las seguridad enfocadas al software concepto de seguro y su la seguridad metas de la Unidad 2: Administración y los riesgos en la seguridad Objetivo Educacional El alumno conocerá e identificará los riesgos que se tienen al poner en práctica la seguridad del software, así como los mecanismos para la evaluación del desarrollo de sistemas seguros. Actividades de Aprendizaje Buscar y Seleccionar información sobre los riesgos en la seguridad de software Analizar en que consiste las pruebas de Caja Negra. Buscar y Seleccionar información de Equipo Rojo Unidad 3: Fragilidad del código en ejecución Objetivo Educacional El alumno conocerá los mecanismos que emplea la industria del software para proteger sus códigos, tanto de los competidores como de los crackers; así como las ventajas y desventajas del código abierto. Actividades de Aprendizaje Buscar y Seleccionar información sobre código abierto y código cerrado. Analizar las ventajas y desventajas del código abierto Analizar las ventajas y desventajas del código cerrado Unidad 4: Seguridad en la fuente. Objetivo Educacional El alumno conocerá e identificará los principios más importantes que deben estar presentes usando se diseña o construye un sistema seguro, evitando los problemas más comunes de seguridad. Actividades de Aprendizaje Buscar y Seleccionar información sobre los principios del código seguro Analizar cada uno de los principios del código seguro. Unidad 5: Auditoría de software Objetivo Educacional El alumno conocerá e identificará las etapas que se requieren para poder llevar a cabo la auditoria de software una vez que éste ha sido terminado; así como las herramientas que permiten realizar auditoria al código fuente. Actividades de Aprendizaje Buscar y Seleccionar información sobre Arquitectura de Seguridad Buscar y Seleccionar información sobre los principios de la Arquitectura de Seguridad Discutir sobre el análisis de la Arquitectura de Seguridad Unidad 6: Probando la seguridad Objetivo Educacional El alumno conocerá, identificará y aplicará diferentes lenguajes de programación que le permitan analizar, diseñar y desarrollar las diferentes técnicas de código de seguro. Actividades de Aprendizaje Buscar y Seleccionar información sobre código seguro Analizar cada una de las Técnicas de Código Seguro 11. FUENTES DE INFORMACIÓN 1. GRAFF G., Mark, VIEGA, John Building Secure Software U.S.A. Addison-Wesley, 2001 2. GRAFF G., Mark, VAN WYK, Kenneth R. Secure Coding U.S.A. O’Reilly, 2003. 3. HOWARD, Michael, LEBLANC, David Writing Secure Code 2nd. Edition U.S.A. Microsoft Press, 2003 4. CORTÉS AGUILAR, Claudia, GARCÍA MORALES, Mayra Tesis : Propuesta de Reforma de Ley y Procedimientos para la Protección Jurídica de los Programas de Cómputo en México a través de la Ley Federal del Derecho de Autor México UNAMFI, 2005 5. GARFINKEL, Simson, SCHWARTZ, Gene, SPAFOORD, Gene Practical Unix & Internet Security 3rd edition USA O’Reilly, 2003 6. MESSIER, Matt; VIEGA, John Secure Programming Cookbook for C and C++ USA O’Reilly, 2003 12. PRÁCTICAS Generar un testing de vulnerabilidades a conexiones inalámbricas. Prácticas de vulnerabilidad en el software. Pruebas de auditoria con bactrack Diseño de pruebas de auditorías con software libre Comparativas de herramientas de auditoria informática