Actualizado el 21 de Marzo del 2018 (Publicado el 26 de Septiembre del 2017)
1.393 visualizaciones desde el 26 de Septiembre del 2017
1,6 MB
370 paginas
Creado hace 22a (30/11/2002)
Universidad de Sevilla
Escuela Superior de Ingenieros
PROYECTO FIN DE CARRERA
Ingeniería de Telecomunicación
Título:
Análisis de seguridad, optimización y mejora de un
portal web basado en PHP y MySQL.
Autor: Román Medina-Heigl Hernández
Tutor: Federico José Barrero García
Sevilla, Diciembre de 2002
A Isabela y toda mi familia
Contenido
CONTENIDO
Capítulo 1..................................................................................................................... 1
Introducción ................................................................................................................. 1
1. Antecedentes........................................................................................................ 1
2. Motivación y justificación. .................................................................................. 2
3. Alcance y objetivo. .............................................................................................. 6
Capítulo 2..................................................................................................................... 9
Fundamentos de seguridad en la web .......................................................................... 9
1.
Introducción. ........................................................................................................ 9
2. Nociones y terminología.................................................................................... 10
2.1.
Introducción al lenguaje de redes y TCP/IP. ............................................. 10
2.2. Nociones de seguridad. .............................................................................. 12
Clasificación de los ataques............................................................... 12
Fases de un ataque. ............................................................................ 14
Niveles de seguridad.......................................................................... 16
La política de seguridad..................................................................... 17
Adquisición de información............................................................... 18
Técnicas de explotación más comunes: los “buffer overflow”.......... 21
Contramedidas de seguridad.............................................................. 25
2.2.1.
2.2.2.
2.2.3.
2.2.4.
2.2.5.
2.2.6.
2.2.7.
iii
3. Ataques comunes en la WWW. ......................................................................... 27
Contenido
3.1.
Inyección de sentencias SQL..................................................................... 27
Fundamento. ...................................................................................... 27
Algunos ejemplos de explotación. ..................................................... 30
Solución. ............................................................................................ 32
3.1.1.
3.1.2.
3.1.3.
3.2. Cross Site Scripting (XSS). ....................................................................... 34
Fundamentos...................................................................................... 34
Ejemplos de cadenas peligrosas que pueden ser inyectadas.............. 37
Solución. ............................................................................................ 38
3.2.1.
3.2.2.
3.2.3.
3.3. Vulnerabilidades en scripts CGI escritos en Perl....................................... 39
“Poison NULL byte”. ........................................................................ 39
Ejecución de comandos con “|”. ........................................................ 41
3.3.1.
3.3.2.
3.4. Abuso de “register_globals” en PHP. ........................................................ 42
3.5. Directory Traversal. ................................................................................... 43
3.6. Metacaracteres del shell............................................................................. 46
3.7. Vulnerabilidades en el servidor web Apache. ........................................... 47
3.8.
Las diez vulnerabilidades más comunes.................................................... 50
4. Herramientas útiles. ........................................................................................... 52
4.1. Nmap.......................................................................................................... 53
Proxomitron. .............................................................................................. 54
4.2.
4.3.
Tcpdump. ................................................................................................... 55
4.4. CommView................................................................................................ 56
4.5. Retina. ........................................................................................................ 58
Capítulo 3................................................................................................................... 59
Análisis de seguridad de un sitio web real................................................................. 59
1.
Introducción. ...................................................................................................... 59
2. Escenario............................................................................................................ 59
3. Análisis de seguridad. ........................................................................................ 66
3.1. Análisis de seguridad del servidor MySQL y bases de datos asociadas.... 67
Vulnerabilidades encontradas. ........................................................... 67
Detalle de vulnerabilidades, soluciones propuestas y recomendac. .. 67
Ausencia de permisos y usuarios en la base de datos. ................... 67
El servidor MySQL es visible desde otras máquinas de la LAN... 68
Conclusiones...................................................................................... 68
3.1.1.
3.1.2.
3.1.2.1.
3.1.2.2.
3.1.3.
iv
Contenido
3.2. Análisis de seguridad de la Aplicación propiamente dicha. ...................... 68
Vulnerabilidades encontradas. ........................................................... 69
Detalle de vulnerabilidades, soluciones propuestas y recomendac. .. 69
Validación de entrada de usuario insuficiente. .............................. 69
Susceptibilidad a ataques de inyección SQL. ................................ 71
Contraseñas de alumnos débiles en el servicio de “encuesta”....... 72
Revelación de información sensible a través de ficheros.. ............ 73
Posible inyección de etiquetas HTML y JavaScript. ..................... 74
Falsa sensación de seguridad en la herramienta de admin............. 75
Conclusiones...................................................................................... 76
3.2.1.
3.2.2.
3.2.2.1.
3.2.2.2.
3.2.2.3.
3.2.2.4.
3.2.2.5.
3.2.2.6.
3.2.3.
3.3. Análisis de seguridad de los servidores web. ............................................ 77
Vulnerabilidades encontradas en “apache”........................................ 78
Detalle de vulnerabilidades, soluciones propuestas y recomendac. .. 79
Versiones de software servidor Apache y PHP anticuadas. .......... 79
Servicio SSH anticuado. ................................................................ 79
Apache permite listar directorios web sin “index”. ....................... 79
Servicios innecesarios en “apache”. .............................................. 81
Conclusiones...................................................................................... 82
3.3.1.
3.3.2.
3.3.2.1.
3.3.2.2.
3.3.2.3.
3.3.2.4.
3.3.3.
4. Conclusiones...................................................................................................... 83
Capítulo 4................................................................................................................... 84
Soluciones y mejoras implementadas ........................................................................ 84
1.
Introducción. ...................................................................................................... 84
2. Objetivos............................................................................................................ 85
3.
Implementaciones. ............................................................................................. 86
3.1.
Política de seguridad en bases de datos y servidor MySQL. ..................... 86
3.1.1.
Justificación. ...................................................................................... 86
3.1.2. Modelo propuesto. ............................................................................. 86
3.1.3.
Implementación. ................................................................................ 88
3.1.4. Mejoras conseguidas.......................................................................... 89
3.2.
Sistema de usuarios y autentificación........................................................ 89
Justificación. ...................................................................................... 90
3.2.1.
3.2.2.
Criterios de diseño. ............................................................................ 90
3.2.3. Modelo propuesto. ............................................................................. 91
3.2.4.
El problema de la integridad de la autentificación. ........................... 93
Autentificación basada en Apache................................................. 93
3.2.4.1.
Autentificación basada en Apache con módulo acceso MySQL... 94
3.2.4.2.
3.2.4.3.
Autentificación basada únicamente en código PHP. ..................... 96
v
Contenido
3.2.5.
3.2.6.
3.2.7.
3.2.7.1.
3.2.7.2.
El problema de la “caché” de datos de usuario..........
Comentarios de: Análisis de seguridad, optimización y mejora de un portal web basado en PHP y MySQL (0)
No hay comentarios