Seguridad Informática y Criptografía

Anuncio
Pontificia Universidad Católica Argentina
SANTA MARÍA DE LOS BUENOS AIRES
Facultad de Ciencias Fisicomatemáticas e Ingeniería
SEGURIDAD INFORMÁTICA Y CRIPTOGRAFÍA
(MARIÑO)
2010
OBJETIVOS DE LA MATERIA
El objetivo de la materia es brindarle una formación 100% práctica a los alumnos en la seguridad
informática desde el punto de vista de un programador, ya que éste es el punto de vista
fundamental para comprender todos los otros aspectos. El objetivo de la materia es lograr esto, y
no quedarse con meras explicaciones teóricas aisladas que no tengan llegada práctica. Se tomará
como base el desarrollo de aplicaciones y se explicará cómo esto impacta desde todos los puntos
de vista: Archivos, Sistemas Operativos, Redes, Bases de Datos, etc.
BOLILLA I INTRODUCCIÓN A LA CRIPTOLOGÍA ( 4 HS )
Criptografía y Criptoanálisis. Algoritmos simétricos y asimétricos. Firma digital. Funciones de
hash. Implementación de algoritmos y protocolos en lenguaje C. Consideraciones para programar
algoritmos criptográficos de manera segura.
BOLILLA II CONCEPTOS BÁSICOS DE LENGUAJE ENSAMBLADOR Y
ARQUITECTURAS x86/x64 ( 12 HS )
Lenguaje ensamblador. Instrucciones básicas. Programación en ensamblador y debugging.
Desensamblado. Arquitectura x86. Arquitectura familias Pentium y Core. Arquitecturas x64.
BOLILLA III SEGURIDAD DE EJECUTABLES ( 10 HS )
Organización de un ejecutable compilado. Formatos de ejecutables típicos: ELF y PE. Buffer
overflows. Bibliotecas dinámicas, linkeo con ejecutables y organización de la memoria.
Identificación y eliminación de TEXTRELs.
BOLILLA IV PROGRAMACION SEGURA ( 10 HS)
Código fuente seguro. Relación entre el código fuente y el código compilado. Ejemplos en
lenguaje C. Consideraciones para lenguajes pseudo interpretados y con generación de código
intermedio.
BOLILLA V SEGURIDAD EN MÁQUINAS VIRTUALES -JAVA, .NET- ( 4 HS )
Maquinas virtuales de java: JIT y Hotspot. Maquina virtual de .NET. Smalltalk en sus diversas
implementaciones. Javascript en sus diversas implementaciones.
BOLILLA VI SEGURIDAD EN SISTEMAS OPERATIVOS *NIX ( 12 HS )
Pontificia Universidad Católica Argentina
SANTA MARÍA DE LOS BUENOS AIRES
Facultad de Ciencias Fisicomatemáticas e Ingeniería
Linux y OpenBSD: Análisis del código fuente de los kernels. Búsqueda y corrección de
vulnerabilidades. Arquitectura de dichos sistemas operativos. Control de acceso. Hacking y
defensa (casos prácticos.) Escalado de privilegios. SELinux y su implementación.
BOLILLA VII SEGURIDAD EN WINDOWS Y OTROS S.O. ( 6 HS )
Arquitectura del kernel de windows. Elementos de seguridad y control de acceso. Hacking y
defensa (casos prácticos.) Escalado de privilegios. Sistemas operativos para dispositivos móviles
BOLILLA VIII SEGURIDAD EN REDES CABLEADAS ( 9 HS )
Análisis de seguridad desde el punto de vista de un atacante externo. Obtención de información,
Protocolos, Servicios. Seguridad perimetral y física de la red. Stacks de TCP /IP de varios
sistemas operativos. Firewalls, IDS , IPS y mecanismos de defensa. Conceptos de exploits
remotos. Programación de exploits para vulnerabilidades conocidas en lenguaje C y ensamblador.
Programación de parches en ensamblador para aplicaciones vulnerables.
BOLILLA IX SEGURIDAD EN REDES INALÁMBRICAS ( 9 HS )
Consideraciones especiales para redes wireless. Protocolos de nivel físico y de enlace. Familia
802.11X. Protocolos WEP, WPA, WPA2. Ataques y defensas.
BOLILLA X SEGURIDAD EN OTRAS REDES NO COMPUTACIONALES ( 6 HS )
Seguridad en redes de telefonía POTS y voz sobre IP. Seguridad en telefonía celular. Redes
GSM.
BOLILLA XI SEGURIDAD EN BASES DE DATOS ( 6 HS )
Conceptos generales de seguridad en Bases de Datos. Ataques de SQL Injection. Mecanismos de
defensa.
BOLILLA XII SEGURIDAD EN APLICACIONES WEB ( 8 HS )
El protocolo HTTP. Manejo de sesiones. Ataques de Cross site scripting. Configuración segura de
servidores. Ejemplos de programación web segura en lenguaje PHP.
METODOS DE EVALUACION
La aprobación de la cursada se realzará por un parcial individual al final del curso y
por los trabajos prácticos grupales a presentar durante la cursada. La aprobación de
la materia será por examen final.
Lista de Trabajos Prácticos:
TP 1: Programación de algoritmos criptográficos en lenguaje C.
TP 2: Programación de software en lenguaje ensamblador con mecanismos de
seguridad propios
TP 3: Debugging, cracking y patching de software en lenguaje de máquina (tomando
como base el software desarrollado en el TP 2 por OTRO grupo)
Pontificia Universidad Católica Argentina
SANTA MARÍA DE LOS BUENOS AIRES
Facultad de Ciencias Fisicomatemáticas e Ingeniería
TP 4: Hardening de aplicaciones. Se entregará a cada grupo el código fuente de una
aplicación open source pública y conocida de complejidad mediana ( 10.000 a 20.000
lineas de código) y deberá corregirse aplicando los conceptos vistos en clase.
TP 5: Seguridad en redes cableadas: Penetration testing.
TP 6: Hacking y defensa de redes inalámbricas.
TP 7: Informe de vulnerabilidades de sitios webs públicos y conocidos.
BIBLIOGRAFIA
TEXTO
HACKING EXPOSED
APPLIED CRYPTOGRAPHY
Web Hacking Exposed
http://www.aircrackng.org/documentation.html
AUTOR
McClure et al.
Schneier B.
McClure
Varios
Descargar