Caso Practico Desarrollo Seguro PDF
Caso Practico Desarrollo Seguro PDF
Caso Practico Desarrollo Seguro PDF
MASTER EN CIBERSEGURIDAD
YEYSON MOYA – DESARROLLO SEGURO
1
Desarrollo Seguro IMF -Yeyson
Moya
Caso Práctico Desarrollo Seguro
Tabla de Contenido
1. INTRODUCCIÓN ............................................................................................................ 3
2. ENUNCIADO ................................................................................................................... 4
3. REQUISITOS ................................................................................................................... 4
4. IDENTIFICACIÓN DE VULNERABILIDADES CON OWASP ZAP ....................... 5
4.1 Preparación de entorno de trabajo ............................................................... 5
4.2 Ejecución de Owasp Zap ............................................................................... 7
4.3 Cantidad de Ocurrencias Identificadas ........................................................ 7
4.4 Clasificación de Vulnerabilidades ................................................................ 7
4.4.1 Nivel de Criticidad............................................................................................... 8
4.4.2 Tipología de Incidencia ..................................................................................... 9
5. EXPLOTACIÓN DE VULNERABILIDADES ............................................................ 14
5.1 Cross-site Scripting: no persistentes, persistentes ............................... 14
5.1.1 Medidas de Prevención Cross - Site ........................................................ 15
5.1.2 Recomendaciones de Seguridad Cross site Scripting ....................... 20
5.2 SQL injection ......................................................................................................... 21
5.2.1 Medidas de Prevención SQL Injection ........................................................ 24
5.2.2 Recomendaciones de Seguridad SQL Injection ....................................... 28
5.3 Exploración de directorios (Directory Browsing) ........................................ 28
5.3.1 Medidas de Prevención Directory Browsing ............................................. 30
5.3.2 Recomendaciones de Seguridad Directory Browsing ............................ 32
5.4 Inyección remota de comandos. ...................................................................... 32
5.4.1 Medidas de Prevención Inyección remota ................................................. 33
5.4.2 Recomendaciones de Seguridad Inyección remota ................................ 35
1. CONCLUSIONES ......................................................................................................... 42
2
Desarrollo Seguro IMF -Yeyson
Moya
Caso Práctico Desarrollo Seguro
1. INTRODUCCIÓN
Durante las última dos décadas en el entorno empresarial ha tomado fuerza una
locomotora llamada transformación digital que ha llevado a que las empresas
trabajen de manera ágil (a través de metodologías agiles,) con el objetivo de
desarrollar productos o servicios que generen valor no solo para la organización si
no también a sus clientes, estos productos deben ser desarrollados en tiempos
cortos, tener factores de innovación digital, que optimicen procesos y sobre todo
que brinden una experiencia agradable para el usuario final, algunas de estas
soluciones ha sido el desarrollo de aplicaciones de software convirtiéndose en
herramientas potenciales para las empresas y personas, generando la
transformación de datos en cantidades incontables, permitiendo millones de
transacciones a cualquier hora y desde cualquier sitio conectado a internet,
almacenando información de diferentes categorías en materia de sensibilidad,
convirtiéndolas en un objetivo exquisito para los ciberdelincuentes, por lo cual ya en
el ciclo de vida del desarrollo no solo es importante validar el cumplimiento de los
requisitos funcionales , si no también dar importancia a requisitos no funcionales e
integrar la seguridad desde las fases de diseño de las aplicaciones, empleando
referencias de desarrollo seguro, ejecutando modelado de amenazas a los
componentes de arquitectura ejecutando análisis de vulnerabilidades tanto de
componentes web como de arquitectura.
3
Desarrollo Seguro IMF -Yeyson
Moya
Caso Práctico Desarrollo Seguro
2. ENUNCIADO
3. REQUISITOS
4
Desarrollo Seguro IMF -Yeyson
Moya
Caso Práctico Desarrollo Seguro
5
Desarrollo Seguro IMF -Yeyson
Moya
Caso Práctico Desarrollo Seguro
6
Desarrollo Seguro IMF -Yeyson
Moya
Caso Práctico Desarrollo Seguro
7
Desarrollo Seguro IMF -Yeyson
Moya
Caso Práctico Desarrollo Seguro
HIGH - 5
MEDIUM – 3
LOW - 6
INFORMATIONAL 1
8
Desarrollo Seguro IMF -Yeyson
Moya
Caso Práctico Desarrollo Seguro
9
Desarrollo Seguro IMF -Yeyson
Moya
Caso Práctico Desarrollo Seguro
10
Desarrollo Seguro IMF -Yeyson
Moya
Caso Práctico Desarrollo Seguro
12
Desarrollo Seguro IMF -Yeyson
Moya
Caso Práctico Desarrollo Seguro
13
Desarrollo Seguro IMF -Yeyson
Moya
Caso Práctico Desarrollo Seguro
5. EXPLOTACIÓN DE VULNERABILIDADES
Tras la identificación y clasificación de vulnerabilidades, se procede a realizar la
explotación de las vulnerabilidades, así mismo se establecen medidas de
prevención y recomendaciones de seguridad.
14
Desarrollo Seguro IMF -Yeyson
Moya
Caso Práctico Desarrollo Seguro
16
Desarrollo Seguro IMF -Yeyson
Moya
Caso Práctico Desarrollo Seguro
17
Desarrollo Seguro IMF -Yeyson
Moya
Caso Práctico Desarrollo Seguro
18
Desarrollo Seguro IMF -Yeyson
Moya
Caso Práctico Desarrollo Seguro
Para finalizar se realizó otro ajuste al código fuente para escapar los datos(evitar
mostrar los caracteres extraños en la respuesta de la página, a través del uso de la
función Htmlentities($_GET[‘query’]) la cual es idéntica a htmlspecialchars() en
todos los aspectos, excepto que con htmlentities(), todos los caracteres que tienen
su equivalente HTML son convertidos a estas entidades.
Código Original search.php
Ilustración 13.Hmlentities
19
Desarrollo Seguro IMF -Yeyson
Moya
Caso Práctico Desarrollo Seguro
20
Desarrollo Seguro IMF -Yeyson
Moya
Caso Práctico Desarrollo Seguro
Lo que indica que el carácter se puede introducir, según el error, las entradas que
se digiten en el campo del usuario se pasan sin ningún tipo de saneamiento y la
contraseña (pass) se modifica con SAL y se encripta con SHA1.
Según el análisis del error se puede deducir que la consulta que se realiza a la base
de datos es select * from users where (username=’ $user ’ and password=’ $pass ’);
Por otra parte, realizando la prueba de añadir el caracter comilla simple al final de la
cadena, estableciendo una condición con el último carácter limpio la respuesta es la
siguiente:
21
Desarrollo Seguro IMF -Yeyson
Moya
Caso Práctico Desarrollo Seguro
select * from users where (username=’user’ and ‘1’=’1’ and password=’ $pass ’);
El usuario ha ingresado con la consulta completa, pero la validación de contraseña
sigue ejecutándose, para evitar este comportamiento se utiliza el comentario
Antes de modificar la consulta, se ingresa a la siguiente url:
192.168.243.129: 81/users/sample.php?userid=
Con el fin de identificar usuarios creados, lo cual lo podemos consultar con valores
numéricos como se muestra en las siguientes imágenes:
22
Desarrollo Seguro IMF -Yeyson
Moya
Caso Práctico Desarrollo Seguro
23
Desarrollo Seguro IMF -Yeyson
Moya
Caso Práctico Desarrollo Seguro
Tabla 22/include/users.php.
Según el script /user/login. Php , las entradas del usuario se pasan a la función, sin
ningún tipo de sanamiento.
Tabla 23.login.php
Tabla 24.user.php
24
Desarrollo Seguro IMF -Yeyson
Moya
Caso Práctico Desarrollo Seguro
También se puede evitar escapar los caracteres extraños usando el htmlentities que
se utilizó anteriormente
25
Desarrollo Seguro IMF -Yeyson
Moya
Caso Práctico Desarrollo Seguro
26
Desarrollo Seguro IMF -Yeyson
Moya
Caso Práctico Desarrollo Seguro
27
Desarrollo Seguro IMF -Yeyson
Moya
Caso Práctico Desarrollo Seguro
28
Desarrollo Seguro IMF -Yeyson
Moya
Caso Práctico Desarrollo Seguro
29
Desarrollo Seguro IMF -Yeyson
Moya
Caso Práctico Desarrollo Seguro
Ilustración 24.ourdb.php
30
Desarrollo Seguro IMF -Yeyson
Moya
Caso Práctico Desarrollo Seguro
31
Desarrollo Seguro IMF -Yeyson
Moya
Caso Práctico Desarrollo Seguro
Ilustración 29./css
32
Desarrollo Seguro IMF -Yeyson
Moya
Caso Práctico Desarrollo Seguro
33
Desarrollo Seguro IMF -Yeyson
Moya
Caso Práctico Desarrollo Seguro
34
Desarrollo Seguro IMF -Yeyson
Moya
Caso Práctico Desarrollo Seguro
35
Desarrollo Seguro IMF -Yeyson
Moya
Caso Práctico Desarrollo Seguro
11 bryce
9 wanda
8 scanner5
7 scanner4
36
Desarrollo Seguro IMF -Yeyson
Moya
Caso Práctico Desarrollo Seguro
6 scanner3
5 scanner2
4 scanner1
2 bob
1 Sample User
• Impedir la navegación por páginas que estén bajo la raíz de la página Web
• Deshabilitar la visualización de los archivos de un directorio que no contiene
un archivo índice
• Eliminar directorios y archivos inservibles (incluso los ocultos)
• Asegurarse de que el servidor proteja el acceso a directorios que contienen
datos importantes
• Eliminar las opciones de configuración innecesarias
37
Desarrollo Seguro IMF -Yeyson
Moya
Caso Práctico Desarrollo Seguro
Tabla 30.
38
Desarrollo Seguro IMF -Yeyson
Moya
Caso Práctico Desarrollo Seguro
Se ha configurado una cookie sin el atributo SameSite, lo que significa que la cookie
se puede enviar como resultado de una solicitud de 'entre sitios'.
39
Desarrollo Seguro IMF -Yeyson
Moya
Caso Práctico Desarrollo Seguro
40
Desarrollo Seguro IMF -Yeyson
Moya
Caso Práctico Desarrollo Seguro
5.8 Server Leaks Information via "X-Powered-By" HTTP Response Header Field(s))
41
Desarrollo Seguro IMF -Yeyson
Moya
Caso Práctico Desarrollo Seguro
6. CONCLUSIONES
Actualmente en Internet encontramos millones de sitios web que nos ofrecen
productos o servicios, así mismo las organizaciones tienen sistemas de información
aplicaciones móviles, aplicaciones locales, para manejar sus procesos de gestión
humana, operaciones financieras, ventas, procesos operacionales etc., las
entidades del gobierno manejan software de infraestructuras críticas, servicios
públicos procesos electorales, registro de identidades, procesos judiciales etc.,
convirtiendo estas aplicaciones imprescindibles, albergando información esencial y
relevante para su operación.
Al ser tan importante estas aplicaciones los profesionales que se desempeñan en
áreas de operaciones (TI) ,Desarrolladores, especialistas de seguridad deben
42
Desarrollo Seguro IMF -Yeyson
Moya
Caso Práctico Desarrollo Seguro
43
Desarrollo Seguro IMF -Yeyson
Moya