Logo Studenta

Modelo de Segurança em Desenvolvimento de Software

¡Este material tiene más páginas!

Vista previa del material en texto

UNIVERSIDAD MAYOR DE SAN ANDRÉS 
FACULTAD DE CIENCIAS PURAS Y NATURALES 
CARRERA DE INFORMÁTICA 
POSTGRADO EN INFORMÁTICA 
 
 
 
TESIS MAGISTER SCIENTIARUM 
 
PROGRAMA DE MAESTRÍA EN INFORMÁTICA FORENSE, 
SEGURIDAD DE LA INFORMACIÓN Y AUDITORÍA 
INFORMÁTICA (MAE-FORSAI) VERSIÓN 1 GESTIÓN 2017 – 2018 
 
 
MODELO DE SEGURIDAD PARA EL DESARROLLO DE 
SOFTWARE 
 
POR: Lic. Maribel Pachacuti Blanco 
TUTOR: M.Sc. Edson Vallejos Pacheco 
 
 
LA PAZ – BOLIVIA 
2020 
i 
 
 
 
 
 
 
 
 
 
 
 
 
DEDICATORIA 
 
 
 
 
 
 
 
A las personas que me apoyaron en todo momento 
y apoyaron incondicionalmente, en especial a mis 
padres que me dan fortaleza para seguir adelante. 
ii 
 
 
 
 
 
 
 
AGRADECIMIENTOS 
Deseo expresar mi más sincero agradecimiento a las personas que me apoyaron para poder 
cumplir este objetivo. 
A mi familia, quienes me apoyan con cariño, confianza y comprensión a lo largo de toda 
mi vida. 
Agradezco al Postgrado de Informática de la Universidad Mayor de San Andrés por 
acogerme en todo el tiempo que me tomo lograr esta meta. A los docentes de la maestría 
por haberme brindado sus conocimientos e impartido sus valiosas experiencias. 
Agradecer a mi tutor M.Sc. Edson Vallejos Pacheco por sus consejos, conocimientos, 
apoyo y asesoramiento en el desarrollo de este trabajo. 
A la Dirección General de Migración por darme la oportunidad de aplicar el presente 
modelo en sus proyectos de desarrollo, especialmente al ingeniero German Vidaurre Paz 
responsable de desarrollo y al ingeniero Roger Efraín Martínez Gonzales encargado de 
soporte, redes y telecomunicaciones por el apoyo y la confianza en mi persona. 
Agradecer a mi compañero de maestría Edson Machicado y al docente Diego Hinojosa 
por sus consejos, conocimiento y sugerencias. 
 
iii 
 
RESÚMEN 
El presente trabajo tuvo como objetivo general el diseño de un modelo de seguridad para 
el desarrollo de software con el propósito de reducir el riesgo en el software desarrollado 
en la institución pública dirección general de migración de la ciudad de La Paz. Este 
modelo está basado en normas, guías o estándares nacionales e internacionales. Se realizó 
un diseño experimental donde se seleccionó como muestra proyectos de desarrollo de 
software de la entidad pública Dirección General de Migración, donde se realizó una 
evaluación del proceso de desarrollo y prácticas de seguridad en el desarrollo de software. 
Para ello se realizó una entrevista con los encargados del área de desarrollo, 
posteriormente se seleccionó dos productos críticos de la institución para realizar una 
evaluación de vulnerabilidades. Los resultados evidencian que existe una reducción de 
riesgos en el software de acuerdo a los resultados obtenidos en primera instancia y 
posterior a la aplicación del presente modelo de desarrollo seguro. Por tanto, se puede 
concluir que la utilización de un modelo de seguridad para el desarrollo de software reduce 
el riesgo en el software. 
 
 
 
 
 
 
 
 
 
iv 
 
ÍNDICE 
INTRODUCCIÓN ............................................................................................................. 1 
CAPÍTULO I ..................................................................................................................... 3 
MARCO DEL PROBLEMA ............................................................................................. 3 
1.1 PLANTEAMIENTO DEL PROBLEMA DE INVESTIGACIÓN ..................... 3 
1.1.1 Antecedentes del Problema de Investigación .............................................. 3 
1.1.2 Identificación del Problema ......................................................................... 8 
1.2. FORMULACIÓN DEL PROBLEMA DE INVESTIGACIÓN ......................... 8 
1.3. PLANTEAMIENTO DE OBJETIVO................................................................. 9 
1.3.1 Objetivo General .......................................................................................... 9 
1.3.2 Objetivos Específicos .................................................................................. 9 
1.4 PLANTEAMIENTO DE HIPÓTESIS ................................................................ 9 
1.4.1 Variable Dependiente .................................................................................. 9 
1.4.2 Variable Independiente ................................................................................ 9 
1.4.3 Operacionalización de Variables ............................................................... 10 
CAPÍTULO II .................................................................................................................. 12 
MARCO TEÓRICO ........................................................................................................ 12 
2.1 ESTADO DEL ARTE ...................................................................................... 12 
2.2 REFERENCIA TEÓRICA O CONCEPTUAL ................................................ 14 
2.2.1 Desarrollo de software .................................................................................... 14 
2.2.2 Riesgo de seguridad ........................................................................................ 18 
2.2.3 Control de calidad de software ....................................................................... 21 
2.2.4 Seguridad de software ..................................................................................... 21 
2.2.5 Pruebas de seguridad ...................................................................................... 21 
v 
 
2.2.6 Security DevOps ............................................................................................. 22 
2.3 MARCO LEGAL E INSTITUCIONAL ........................................................... 26 
2.3.1 Lineamientos para la elaboración e implementación de los Planes 
Institucionales de Seguridad de la Información de las entidades del sector público26 
2.3.2 Decreto supremo Nº1793 ................................................................................ 26 
2.3.3 Ley Nº164, ley general de telecomunicaciones, tecnologías de información y 
comunicación ........................................................................................................... 27 
CAPÍTULO III ................................................................................................................. 29 
METODOLOGÍA DE LA INVESTIGACIÓN ............................................................... 29 
3.1 DISEÑO METODOLóGICO ................................................................................ 29 
3.1.1 Tipo de investigación ................................................................................. 29 
3.2 MÉTODO DE INVESTIGACIÓN ................................................................... 30 
3.2.1 Fases Metodológicos .................................................................................. 30 
3.2.2 Técnicas de investigación ............................................................................... 31 
3.3 UNIVERSO O POBLACIÓN DE REFERENCIA ........................................... 31 
3.3.1 Población ........................................................................................................ 31 
3.3.2 Muestra ...................................................................................................... 31 
3.4 DELIMITACIÓN .................................................................................................. 32 
3.4.1 Delimitación Geográfica ............................................................................ 32 
3.4.2 Delimitación Temporal .............................................................................. 32 
CAPITULO IV ................................................................................................................ 33 
MARCO PRÁCTICO ......................................................................................................33 
4.1 DESCRIPCIÓN Y PROCESAMIENTO DE DATOS RECOPILADOS. ............ 34 
4.2 ANÁLISIS Y DISEÑO DEL MODELO ............................................................... 35 
4.2.1 Análisis del contexto ....................................................................................... 35 
vi 
 
4.2.2 Cálculo del nivel de madurez .......................................................................... 39 
4.2.3 Personal ........................................................................................................... 41 
4.3 DESARROLLO DEL MODELO .......................................................................... 42 
4.4 ARQUITECTURA DEL MODELO ..................................................................... 44 
4.4.1 Fase 1: Planeación .......................................................................................... 44 
4.4.2 Fase 2: Diseño ................................................................................................. 46 
4.4.3 Fase 3: Desarrollo ........................................................................................... 53 
4.4.4 Fase 4: Pruebas ............................................................................................... 55 
4.4.5 Fase 5: Despliegue .......................................................................................... 56 
4.4.6 Fase 6: Mantenimiento .................................................................................... 58 
4.4.7 Desarrollo de software seguro según SAMM ................................................. 59 
4.4.8 Pruebas de seguridad según el ISTQB ............................................................ 60 
4.4.9 Análisis de Riesgo .......................................................................................... 67 
4.4.10 DevSecOps .................................................................................................... 69 
4.5 APLICACIÓN DEL MODELO ............................................................................ 74 
4.5.1 Fase 1: Planificación ....................................................................................... 75 
4.5.2 Fase 2: Diseño ................................................................................................. 77 
4.5.3 Fase 3: Desarrollo ........................................................................................... 84 
4.5.4 Fase 4: Pruebas ............................................................................................... 88 
4.5.5 Fase 5: Despliegue .......................................................................................... 92 
4.5.6 Fase 6: Mantenimiento .................................................................................... 94 
4.6 VALIDACIÓN DE RESULTADOS ..................................................................... 96 
4.6.1 Estado de objetivos ......................................................................................... 96 
4.6.2 Interpretación de resultados ............................................................................ 97 
vii 
 
4.6.3 Estado de Hipótesis ....................................................................................... 102 
CAPITULO V ................................................................................................................ 103 
CONCLUSIONES Y RECOMENDACIONES ............................................................ 103 
5.1. CONCLUSIONES .............................................................................................. 103 
5.2 RECOMENDACIONES ...................................................................................... 104 
GLOSARIO ................................................................................................................... 106 
BIBLIOGRAFIA ........................................................................................................... 109 
APÉNDICE A: EVALUACION DE PRACTICAS DE SEGURIDAD SEGÚN 
SAMM ........................................................................................................................... 112 
APÉNDICE B: EVALUACION DEL PISI ................................................................... 117 
APÉNDICE C: INVENTARIO DE ACTIVOS – DIGEMIG ....................................... 120 
APÉNDICE D: INFORME DE CONTROL DE CALIDAD DE SOFTWARE Y 
PRUEBAS DE SEGURIDAD ....................................................................................... 124 
APÉNDICE E: ESCENARIOS DE PRUEBAS – SICOF v2.2.1 .................................. 133 
APÉNDICE F: BUGS REPORTADOS - SICOF v2.2.1 ............................................... 138 
APÉNDICE G: ESCENARIOS DE PRUEBAS - SIOS v7.3.4 ..................................... 140 
APÉNDICE H: BUGS REPORTADOS – SIOS v7.3.4 ................................................ 149 
APÉNDICE I: BUGS FIXED – SIOS v7.3.5 ................................................................ 154 
APÉNDICE J: INFORME DE PRUEBAS DE SEGURIDAD DE SOFTWARE ....... 155 
APÉNDICE K: PROPUESTA DE POLITICAS PARA EL AREA DE 
DESARROLLO ............................................................................................................. 165 
APÉNDICE L: ESTRUCTURA DE TEST CASE ........................................................ 181 
APÉNDICE M: ESTRUCTURA DE BUG ................................................................... 182 
APÉNDICE N: ESTRUCTURA DE TEST PLAN ....................................................... 183 
viii 
 
APÉNDICE O: ENCUESTA ESTADO DE LA SEGURIDAD EN EL PROCESO DE 
DESARROLLO DE SOFTWARE EN BOLIVIA ........................................................ 184 
APÉNDICE P: ANÁLISIS EN EL CONTEXTO BOLIVIANO .................................. 204 
APÉNDICE Q: ANALISIS DEL LA ACEPTACION DEL MODELO ....................... 210 
APÉNDICE R: VALIDEZ DE CONTENIDO .............................................................. 214 
ANEXO A: PRACTICAS DE SEGURIDAD SEGUN SAMM ................................... 216 
ANEXO B: PROCESO DE PRUEBAS DE SEGURIDAD – ISTQB .......................... 220 
ANEXO C: CAPACITACIONES ................................................................................. 223 
ANEXO D: TABLERO SCRUM DEL SISTEMA DE CORRESPONDENCIA ......... 226 
ANEXO E: TABLERO DE BUGS Y VULNERABILIDADES DE SICOF V2.2.1 .... 227 
ANEXO F: TABLERO DE BUGS Y VULNERABIIDADES DE SIOS V7.3.4 ......... 228 
ANEXO G: AVAL DE CONFORMIDAD DE LA DIRECCION GENERAL DE 
MIGRACION ................................................................................................................ 229 
 
 
 
 
 
 
 
 
 
 
ix 
 
ÍNDICE DE TABLAS 
Tabla 1. Operacionalización de la variable dependiente ................................................. 10 
Tabla 2. Operacionalización de la variable independiente .............................................. 10 
Tabla 3. Fases Metodológicos ......................................................................................... 30 
Tabla 4. Tabla de fortaleza de modelos para el desarrollo de software ........................... 34 
Tabla 5. Niveles de madures según el SAMM ................................................................ 39 
Tabla 6. Evaluación del nivel de madurez a la Dirección General de Migración ........... 40 
Tabla 7. Propuesta de modelo de seguridad para el desarrollo de software .................... 42 
Tabla 8. Fase de planificación para la Dirección General de Migración ......................... 75 
Tabla 9. Proceso de planeación de software seguro ........................................................ 77 
Tabla 10. proceso de planeación de pruebas de seguridad .............................................. 77 
Tabla 11. Fase de Diseño para la Dirección General de Migración ................................ 78 
Tabla 12. Proceso de diseño de software seguro ............................................................. 79 
Tabla13. Proceso de diseño de pruebas de seguridad ..................................................... 80 
Tabla 14. Fase de desarrollo para la Dirección General de Migración ............................ 85 
Tabla 15. Proceso desarrollo seguro ................................................................................ 86 
Tabla 16. Fase de pruebas para la Dirección General de Migración ............................... 89 
Tabla 17. Proceso ejecución de pruebas de seguridad ..................................................... 90 
Tabla 18. Fase de despliegue para la Dirección General de Migración .......................... 93 
Tabla 19 Fase de mantenimiento para la Dirección General de Migración ..................... 95 
Tabla 20. Comparación del nivel de madurez de la dirección general de migración ...... 98 
Tabla 21. Días en la resolución de bugs y vulnerabilidades .......................................... 101 
 
 
 
 
 
x 
 
 
ÍNDICE DE FIGURAS 
Figura 1. OWASP top 10 2017 .......................................................................................... 5 
Figura 2. Defectos no cubiertos por el top 10 de OWASP ................................................ 6 
Figura 3. Modelo SDLC en cascada ................................................................................ 16 
Figura 4. Modelo SDLC iterativo .................................................................................... 16 
Figura 5. Modelo SDLC espiral ....................................................................................... 17 
Figura 6. Modelo en forma de V ...................................................................................... 18 
Figura 7. Modelo SDLC ágil ........................................................................................... 18 
Figura 8. Fases de DevOps .............................................................................................. 23 
Figura 9. Propuesta de modelo de seguridad para el desarrollo de software ................... 33 
Figura 10. Sistema de control de flujo migratorio SICOF v2.2.1 .................................... 36 
Figura 11. Sistema de inspectoría SIOS v.7.3.4 .............................................................. 37 
Figura 12. Modelo de seguridad para el desarrollo de software ...................................... 44 
Figura 13. Desarrollo de software según SAMM ............................................................ 59 
Figura 14. Proceso de pruebas de seguridad según el ISTQB ......................................... 62 
Figura 15. Análisis de riesgo en el ciclo de vida del desarrollo de software ................... 67 
Figura 16. Enfoque tradicional y enfoque DevOps ......................................................... 69 
Figura 17. Proceso DevOps ............................................................................................. 70 
Figura 18. Seguridad en DevOps ..................................................................................... 72 
Figura 19. Propuesta de ciclo de vida de desarrollo de software para DIGEMIG .......... 74 
Figura 20. Historia de usuario para el ingreso al sistema ................................................ 81 
Figura 21. Resultados iniciales del nivel de confianza para SICOF v2.2.1 ..................... 99 
Figura 22. Resultados del nivel de confianza para SICOF v2.2.5 ................................... 99 
Figura 23. Resultado inicial del nivel de confianza para SIOS v7.3.4 .......................... 100 
Figura 24. Resultado del nivel de confianza para SIOS v7.4.2 ..................................... 100 
 
 
1 
 
INTRODUCCIÓN 
En los últimos años se ha producido un gran crecimiento en la producción de software. 
Las empresas hoy en día, con el fin de automatizar sus procesos manuales, requieren el 
desarrollo de sistemas personalizados para la optimización de tiempo y recursos. Sin 
embargo, pese a la evolución y al crecimiento de la industria del software que permiten la 
transformación digital de muchas organizaciones, surgen nuevas necesidades como la 
seguridad del software. Por ello, tras el crecimiento de ataque cibernéticos a sistemas 
informáticos o software se ve la necesidad de adoptar estrategias de seguridad en las fases 
del ciclo de vida de desarrollo de software. 
Debido a los múltiples ataques cibernéticos en los últimos tiempos, las empresas dan 
mayor énfasis a la protección de sus activos de información. La información es un activo 
critico cuya exposición o alteración podría perjudicar a la organización. Por ese motivo 
las organizaciones requieren o solicitan servicios de pentesting para la evaluación de la 
capacidad del software en situaciones de ataque de vulnerabilidades. Dichos servicios en 
muchos de los casos son realizados cuando el software está en producción, en el peor de 
los casos después de un incidente de seguridad. Es allí, donde surge la importancia de 
adoptar estrategias de seguridad en el proceso de desarrollo de software para preservar la 
integridad, confiabilidad y disponibilidad de la información. 
La seguridad debe estar considerada en todas las etapas del ciclo de vida de desarrollo de 
software. Las etapas del ciclo de vida del desarrollo de software tienen distintas 
actividades que permiten la construcción de un software. Usualmente las etapas básicas 
de un ciclo de vida de desarrollo de software son: planeación, diseño, desarrollo, pruebas 
y mantenimiento, estas fases varían de acuerdo a la metodología de desarrollo, pero el 
objetivo de cada fase permanece. Por otro lado, las organizaciones en su mayoría, realiza 
una evaluación de la seguridad del software en la última fase del ciclo de desarrollo de 
software, siendo una mala práctica ya que si se identifica vulnerabilidades críticas y altas 
el equipo de desarrollo debe solucionar dichos problemas lo que demora tiempo y tiene 
un costo de desarrollo. Por esta razón, es importante que el software sea evaluado 
2 
 
constantemente y desde etapas tempranas en el ciclo de vida de desarrollo de software, así 
mismo, el personal encargado de las pruebas de seguridad debe contemplar nuevas 
técnicas de detección de vulnerabilidades continuamente. Estas técnicas de detección de 
vulnerabilidades no solo deben basarse en herramientas comerciales, o limitarse al top 10 
de OWASP web o los 25 errores más comunes que SANS presenta sino también deben 
ser manuales y nuevas, ya que existen vulnerabilidades que no están dentro de los riesgos 
más comunes. 
Las pruebas de seguridad también muestran que se ha realizado la diligencia debida en la 
protección de los activos digitales. Las pruebas de seguridad pueden ser una garantía para 
los clientes pues refleja que una organización toma las medidas adecuadas para proteger 
la información confidencial. 
Gran porcentaje de las amenazas de seguridad o vulnerabilidades de software derivan de 
malas prácticas de desarrollo o errores que se pudieron haber anticipado. Es necesario la 
detección temprana de posibles amenazas porque la explotación de las mismas podría 
perjudicar a la empresa y sus funciones. Por esta razón la seguridad debe ser un factor 
importante desde la primera fase del desarrollo de software. 
Por tanto, el presente trabajo presenta un modelo de desarrollo de software basado en 
normativas, estándares guías y buenas prácticas. Propone actividades para integrar 
prácticas de seguridad en cada una de las etapas del desarrollo de software con el objetivo 
de reducir el riesgo. 
 
 
 
 
 
3 
 
CAPÍTULO I 
MARCO DEL PROBLEMA 
1.1 PLANTEAMIENTO DEL PROBLEMA DE INVESTIGACIÓN 
1.1.1 Antecedentes del Problema de Investigación 
Las empresas en la actualidad están estrechamente vinculadas a la tecnología, sin 
embargo, el mismo hecho de incorporar soluciones informáticas conlleva riesgos en cada 
una de las aplicaciones tecnológicas comprometiendo de gran manera la integridad,confiabilidad y disponibilidad de la información, que es el activo más importante de toda 
empresa. Según un informe de la plataforma de seguridad de aplicaciones Veracode, en 
cuanto a la seguridad del software destaco que el 77% de las aplicaciones tiene al menos 
una vulnerabilidad, lo cual marca un dato alarmante e indica que el software no es testeado 
previo al pase a producción. Muchos de los defectos en el software pasan a ser 
vulnerabilidades que se suelen introducirse durante el proceso de desarrollo. (Micro 
Focus, 2018) 
Para lograr un software seguro es importante adoptar prácticas de seguridad en cada una 
de las etapas del ciclo de vida de desarrollo de software. Algunas empresas optan por 
probar la seguridad del software en la última fase previo a la entrega, sin embargo, se ha 
visto que existe buenos resultados cuando se integra seguridad en todo el ciclo de vida de 
desarrollo del software. Las pruebas de seguridad continuas y paralelas al control de 
calidad, desde etapas tempranas en las aplicaciones garantiza un producto más seguro y 
de calidad. 
El control de calidad implica pruebas específicas para la evaluación de calidad de un 
software. Las pruebas que realiza el personal de control de calidad son: pruebas 
funcionales, pruebas de integración, pruebas de regresión, pruebas smock, pruebas de 
rendimientos, estos a su vez pueden ser a nivel de caja blanca o caja negra. El personal de 
control de calidad tiene la tarea también de gestionar el plan de pruebas y errores 
4 
 
encontrados. La seguridad, por otro lado, se preocupa por hallar vulnerabilidades o 
debilidades en el software que podrían conducir a un uso incorrecto o una explotación. 
En Bolivia, muchas empresas públicas no cuentan con personal para el control de calidad. 
Las empresas públicas en su mayoría, no tienen el área de control de calidad, los 
desarrolladores son los que realizan pruebas al software. Dichas pruebas no son 
gestionadas ni documentadas, son pruebas internas que cada desarrollador hace antes del 
despliegue. En los últimos años, el control de calidad ha tomado mayor importancia. Las 
empresas de desarrollo, con el propósito de ofrecer un producto de calidad, están 
adoptaron métricas, estándares y protocolos para garantizar la calidad, sin embargo, hoy 
en día a la necesidad de calidad se suma la seguridad de software. 
Con los frecuentes ataques cibernéticos a sistemas informáticos, el trabajo del profesional 
de control de calidad de software se ha vuelto más difícil. El trabajo del personal de control 
de calidad, como su nombre lo dice, realiza y gestiona pruebas específicas para garantizar 
la calidad de un producto. No obstante, hoy en día se espera que el profesional de control 
de calidad de software también realice pruebas de seguridad en la aplicación. 
Si bien es cierto, que la calidad del software está fuertemente ligada a la seguridad de una 
aplicación, las pruebas con un enfoque específico en la detección de vulnerabilidades de 
seguridad requieren conocimientos, herramientas y procedimientos especiales. Incluso si 
una aplicación pasa las pruebas funcionales y cumple con ciertos estándares de software, 
el software aún puede ser vulnerable a los ataques cibernéticos a nivel operacional. Por 
esta razón, se recomienda que exista un encargado de las pruebas de seguridad que 
gestione su propio plan de pruebas y vulnerabilidades, ya que el personal de control de 
calidad tiene otros objetivos. 
Por otro lado, la organización Open Web Application Security Project (OWASP), realiza 
la evaluación y publicación de los 10 riesgos más comunes en aplicaciones web, API y 
aplicativos móviles. En la Figura 1, se observa los 10 riesgos de seguridad en aplicaciones 
web más críticos entre el año 2013 al año 2017. Se puede observar que pese al tiempo 
algunos riesgos permanecen dentro del top 10, es decir siguen ocurriendo, esto se debe a 
5 
 
que los desarrolladores desconocen estos riesgos, no reciben la capacitación en 
ciberseguridad y desarrollo seguro. Es necesario realizar mínimamente una evaluación a 
estos 10 riesgos comunes antes del pase a producción. OWASP facilita una 
documentación completa acerca estos riesgos, también propone formas de evaluar y de 
solucionar dichas vulnerabilidades. 
Figura 1. OWASP top 10 2017 
Fuente: https://www.owasp.org/ 
 
 
El equipo de Software Security Research en Micro Focus Fortify ha publicado su informe 
anual sobre el estado de la seguridad de la aplicación. Se dice que 1 de cada 2 aplicaciones 
tiene vulnerabilidades críticas o altas que no están cubiertas por el OWASP top 10 2017. 
Muchos profesionales en seguridad realizan sus pruebas de seguridad basado en un 
software para la detección de vulnerabilidades. Existe muchas herramientas para la 
detección de vulnerabilidades, incluso algunas realizan el escaneo de los diez riesgos 
frecuentes que presenta OWASP como OWASP ZAP. Sin embargo, es necesario realizar 
pruebas manuales para mayor cobertura de pruebas, ya que existen muchas 
vulnerabilidades fuera de los diez que presenta OWASP. Al igual de OWASP existen 
otras organizaciones que también ayudan con la exposición de riesgos comunes como 
SANS pero no debe ser un factor limitante, sino una base de las pruebas que se tiene que 
hacer al software y siempre estar al pendiente de las nuevas vulnerabilidades que 
constantemente van apareciendo. 
6 
 
En la figura 2 se observa que un 90% de las aplicaciones tienen al menos un problema 
fuera de los 10 principales de OWASP, también se ve que el 49% de las aplicaciones 
probadas contenían una vulnerabilidad crítica o de alta severidad que no está cubierta por 
OWASP. Aunque cabe mencionar que OWASP se actualiza constantemente, existe 
vulnerabilidades fuera de su top 10 de riesgos de seguridad más críticos. 
Figura 2. Defectos no cubiertos por el top 10 de OWASP 
Fuente: Micro Focus Fortify Software Security Research Team 
 
Existen modelos de desarrollo de software seguro como por ejemplo modelo de madurez 
para el aseguramiento del software (SAMM) creado por OWASP y el ciclo de vida del 
desarrollo de la seguridad (SDL) creado por Microsoft, que son una buena guía para 
integrar aspectos de seguridad en el ciclo de vida de desarrollo de software. Sin embargo, 
pocas empresas toman en cuenta estas guías en el proceso de desarrollo. 
De acuerdo con la International Software Testing Qualifications Board (ISTQB), las 
pruebas de rendimiento, usabilidad y seguridad son las tres principales actividades de 
prueba no funcionales con prioridades altas. Las pruebas de seguridad se realizan en un 
38% por las empresas. También menciona que solo el 11% de los profesionales en control 
de calidad tienen trayectoria en pruebas de seguridad. En los próximos 5 años, según la 
ISTQB, en los temas de mayor importancia en la industria en control de calidad de 
software está la seguridad con un porcentaje de importancia de 52%. 
A nivel nacional, no se cuenta con una guía para el desarrollo de software seguro. Sin 
embargo, la agencia de gobierno electrónico y tecnologías de información y comunicación 
(AGETIC) desde su sitio web provee al público estándares y lineamientos para la 
7 
 
publicación de sitios web donde se habla de la seguridad que los servicios web deben tener 
de manera general, también menciona las vulnerabilidades comunes que mínimamente se 
debe considerar. 
El consejo para las tecnologías de información y comunicación del estado plurinacional 
de Bolivia (CTIC) conformo un grupo de desarrollo de software, el cual trabaja en la 
adopción y desarrollo de estándares oficiales, integración de buenas prácticas y proponen 
ciertos lineamientos vinculadas al desarrollo de software en las entidades públicas. Dentro 
de la documentación que CTIC proporciona podemos encontrar el “Plan de 
implementación de software libre y estándares abiertos 2017 - 2025”. En dichoplan, se 
puede observar algunas referencias al desarrollo de software, ciclo de vida del software y 
seguridad informática de manera general sin especificar los requisitos en cada etapa del 
ciclo de vida del desarrollo del software. Este plan establece condiciones para el desarrollo 
de software libre y estándares abiertos en las entidades públicas, como también 
promocionar su desarrollo en la sociedad civil. 
Así mismo, dentro los lineamientos para la elaboración e implementación de los planes 
institucionales de seguridad de la información de las entidades del sector público, 
desarrollado por el CTIC, en los controles de seguridad de la información se exige 
establecer requisitos de seguridad para el proceso de desarrollo, mantenimiento y 
adquisición de sistemas que contemplen pruebas de seguridad, pruebas de calidad y 
pruebas de aceptación para desarrollo de software interno y externo. En el desarrollo de 
este control de seguridad, se menciona diferentes directrices, objetivos donde se refleja la 
necesidad de establecer seguridad desde el diseño, desarrollo, pruebas y mantenimiento 
del software. La creación de un modelo de desarrollo de software seguro en base a estos 
requerimientos es de gran necesidad para muchas instituciones públicas. 
Cuando el software está en producción, es decir, cuando ha sido desplegado a los usuarios 
finales es donde se halla más vulnerabilidades al ser expuesto a amenazas externas. La 
vulnerabilidad del software pone en riesgo la información del cliente. Las empresas de 
desarrollo que no realizan pruebas de seguridad, son sometidas a auditorias por lado del 
8 
 
cliente para detectar las vulnerabilidades y encontrar las fallas del software comprometido, 
cabe mencionar que mientras no se detecta la falla de seguridad los costos de migración y 
daños potenciales se incrementa. 
1.1.2 Identificación del Problema 
Debido a la demanda del desarrollo de software, en los últimos años, se ha visto necesario 
integrar seguridad en el ciclo de vida del software. El proceso de desarrollo de muchas 
empresas no contempla la seguridad de la información en sus distintas etapas. El control 
de calidad de software en su mayoría, solo incluye pruebas funcionales y de rendimiento 
dejando de lado la seguridad del software. Dicho proceso de control de calidad solo 
garantiza la funcionalidad, usabilidad, portabilidad, eficiencia, mantenibilidad y 
confiabilidad, sin tomar en cuenta las pruebas de seguridad. 
La explotación de vulnerabilidades de software en producción cada vez es más frecuente. 
En los últimos años, muchos sistemas informáticos han sido vulnerados comprometiendo 
la integridad, confidencialidad y disponibilidad de la información de dichos sistemas, 
provocando pérdidas considerables a las empresas, fuga de información y por último el 
costo de desarrollo para mejorar la seguridad del sistema. 
La necesidad de un producto o software seguro cada vez toma más importancia. De hecho, 
los lineamientos para la elaboración e implementación de los planes institucionales de 
seguridad de la información de las entidades del sector público hacen referencia, en varias 
de sus directrices, a la necesidad de incorporar la seguridad en el desarrollo de software. 
1.2. FORMULACIÓN DEL PROBLEMA DE INVESTIGACIÓN 
No considerar prácticas de seguridad en las distintas etapas en el desarrollo de software y 
los crecientes ataques cibernéticos a los diferentes sistemas informáticos lleva a la 
siguiente pregunta: 
¿Cómo reducir los riesgos en el software desarrollado en la institución pública 
dirección general de migración de la ciudad de La Paz? 
9 
 
1.3. PLANTEAMIENTO DE OBJETIVO 
1.3.1 Objetivo General 
Diseñar un modelo de seguridad para el desarrollo de software con el propósito de 
reducir los riesgos en el software desarrollado en la institución pública dirección general 
de migración de la ciudad de La Paz. 
1.3.2 Objetivos Específicos 
• Realizar un análisis de vulnerabilidades a sistemas en producción previo a la 
implementación del modelo de desarrollo de software seguro. 
• Evaluar las prácticas de seguridad en el proceso de desarrollo de software de 
acuerdo al cumplimiento de normativas nacionales. 
• Definir actividades relacionadas con la seguridad en cada etapa del ciclo de 
vida de desarrollo de software. 
• Validar la contribución de un modelo de desarrollo de software 
implementando estrategias de seguridad en la detección temprana de 
vulnerabilidades. 
1.4 PLANTEAMIENTO DE HIPÓTESIS 
El diseño de un modelo de seguridad en el desarrollo de software permite reducir los 
riesgos en el software desarrollado en la institución pública dirección general de migración 
de la ciudad de La Paz. 
1.4.1 Variable Dependiente 
Reducción de los riesgos en el software 
1.4.2 Variable Independiente 
Modelo de seguridad para el desarrollo de software 
10 
 
1.4.3 Operacionalización de Variables 
Tabla 1. Operacionalización de la variable dependiente 
(Fuente Propia) 
 
Variable Componente Dimensiones Indicadores 
Reducción de los 
riesgos en el 
software. 
Disminución de la 
probabilidad de 
ocurrencia de un 
evento potencial 
que afecte al 
software. 
Análisis de 
vulnerabilidades 
Pruebas de 
penetración. 
Pruebas de seguridad 
basado en OWASP 
TOP 10. 
Número de 
vulnerabilidades 
encontradas. 
Costo de 
desarrollo. 
 Análisis de 
impacto de 
riesgo 
Cálculo de riesgo 
Evaluación de 
impacto. 
Niveles de aceptación 
de riesgo. 
 
 
Tabla 2. Operacionalización de la variable independiente 
(Fuente Propia) 
 
Variable Componente Dimensiones Indicadores 
Modelo de 
seguridad 
para el 
desarrollo 
de software. 
Modelo de 
desarrollo 
con la 
integración 
seguridad en 
cada etapa 
del 
desarrollo de 
software. 
Planeación Planeación de estrategias 
de seguridad. 
Construcción de procesos 
de seguridad. 
Concientización sobre 
vulnerabilidades de 
seguridad en el producto, 
diseño y código. 
Nivel de cumplimiento 
de estándares y 
políticas. 
Porcentaje de personal 
capacitado en temas de 
seguridad de software. 
Diseño Análisis de requerimientos 
con un enfoque en 
seguridad 
Nivel de cumplimiento 
de las políticas para el 
análisis de 
requerimientos de 
seguridad. 
Desarrollo 
 
Elaboración de modelos de 
amenazas. 
Alineación de la seguridad 
respecto a los 
requerimientos de software. 
Nivel de cumplimiento 
con los requisitos de 
seguridad. 
 
 
11 
 
Incorporar lineamientos de 
seguridad en el proceso de 
diseño de software. 
Desarrollo de software 
Pruebas Revisión del diseño del 
software de acuerdo a las 
buenas prácticas de 
seguridad. 
Revisión de errores de 
codificación. 
Verificación de pruebas de 
Seguridad basados en la 
implementación y 
requisitos de software. 
Pruebas de funcionalidad. 
Nivel de cumplimiento 
de diseño conforme a 
las prácticas de 
seguridad. 
Cobertura de testeo. 
Número de casos de 
prueba de seguridad o 
escenarios de prueba. 
Criticidad de los 
hallazgos de las 
pruebas de seguridad. 
Número de 
vulnerabilidades de 
software. 
Nivel de confianza del 
software. 
Despliegue Revisión del proceso de 
despliegue. 
Revisión de controles para 
la modificación de 
software. 
Revisión de reglamentos 
para la gestión de versiones 
de software. 
Nivel de cumplimiento 
con las políticas o 
procesos de 
despliegue. 
Mantenimiento Aprobación de software. 
Establecer un proceso de 
respuesta a incidentes. 
Identificación de 
actualizaciones y parches 
críticos de seguridad. 
Aprobación del nivel de 
riesgo de software. 
Porcentaje de 
incidentes 
documentados con sus 
recomendaciones. 
 
 
12 
 
CAPÍTULO II 
MARCO TEÓRICO 
2.1 ESTADO DEL ARTE 
En diversas investigaciones se destaca la importancia de incluir las pruebas de seguridad 
en el proceso de desarrollo. Entre algunasde esas investigaciones, podemos destacar: 
• “Software Assurance Maturity Model” proyecto de OWASP (Owasp, 2009). 
OWASP apoyo al desarrollo del modelo de madurez para el aseguramiento del 
software (SAMM por sus siglas en inglés) desarrollado inicialmente por Pravir 
Chandra. Actualmente este documento es mantenido y actualizado por el proyecto 
OpenSAMM que es liderado por el mismo autor, Pravir Chandra. El Modelo de 
madurez para el aseguramiento del software (SAMM) es un marco abierto para 
ayudar a las organizaciones a formular e implementar una estrategia para la 
seguridad del software que se adapte a los riesgos específicos que enfrenta la 
organización. SAMM cuenta con una flexibilidad para ser utilizado por 
organizaciones pequeñas, medianas y grandes que utilizan cualquier tipo de 
desarrollo. 
SAMM proporciona una guía para integrar seguridad en el desarrollo de software, 
ayuda a la evaluación de las prácticas de seguridad de software existentes en una 
organización. También ayuda a la construcción de un programa de seguridad de 
software equilibrado en iteraciones bien definidas para finalmente demostrar 
mejoras concretas a un programa de garantía de seguridad. 
• “Ciclo de vida de desarrollo de la seguridad” por Microsoft (Microsoft, 2018). 
Integra seguridad en el flujo del ciclo de vida del desarrollo del software. Esta 
propuesta trata de un proceso de desarrollo de software que ayuda a los 
desarrolladores a crear un software más seguro y cumplir con los requisitos de 
cumplimiento de seguridad al tiempo que reduce los costos de desarrollo. La 
metodología que presenta Microsoft se basa en tres conceptos principales, los 
13 
 
cuales son: Formación al personal en temas de seguridad, mejora continua del 
software y la responsabilidad de tener un plan de detección y respuesta ante 
incidentes de seguridad. 
El SDL de Microsoft posee 7 fases, los cuales son: entrenamiento, requisitos, 
diseño, implementación, verificación, liberación y respuesta, los cuales son poseen 
requisitos de seguridad y recursos específicos para cada practica de seguridad. 
• “Software Security Design and Testing” por Sami Masalin, (Masalin, 2000). Esta 
tesis de maestría describe el proceso de pruebas y diseño de seguridad del sistema 
para el desarrollo seguro. También proporciona una base teórica de seguridad del 
software y del proceso de desarrollo, da énfasis en estándares de seguridad y 
análisis de riesgo. 
• “Certified Tester Advanced Level Syllabus Security Tester” por la International 
Software Testing Qualifications Board (ISTQB, 2016). Este plan de estudios 
provee conceptos básicos de seguridad, plantea la alineación de las actividades de 
prueba de seguridad con las actividades del ciclo de vida del software. El objetivo 
de esta guía es capacitar al profesional de control de calidad en temas de seguridad 
para que este pueda planificar, realizar y evaluar las pruebas de seguridad desde 
diversas perspectivas. 
El profesional experto en seguridad debe tener en cuenta que los ataques siempre están 
evolucionando. Surgen nuevos ataques y, al igual que en cualquier aplicación de software, 
los nuevos defectos pueden hacerse evidentes, es una razón para realizar pruebas de 
seguridad desde la mentalidad del atacante constantemente. 
Al igual que las pruebas de software en general, las pruebas de seguridad no pueden 
garantizar que un software u organización no esté expuesto a ataques cibernéticos. Los 
ataques cibernéticos son cada vez más sofisticados y continuamente se van descubriendo 
nuevas formas de atacar o encontrar vulnerabilidades. Sin embargo, las pruebas de 
seguridad pueden ayudar a identificar riesgos y evaluar la efectividad de las defensas de 
14 
 
seguridad existente en el software. Existen otras actividades para complementar las 
pruebas de seguridad, como auditorías y revisiones de prácticas de seguridad. 
2.2 REFERENCIA TEÓRICA O CONCEPTUAL 
2.2.1 Desarrollo de software 
Según IBM Research: "El desarrollo de software se refiere a un conjunto de actividades 
informáticas dedicadas al proceso de creación, diseño, despliegue y soporte de software". 
(IBM, 2019) . Por tanto el desarrollo de software es un proceso logico iterative cuyo 
objetivo es la creacion de software. El desarrollo de software incluye subprocesos como 
recoleccion de informacion, diseño de flujos, documentacion, pruebas, depuracion entre 
otros, a esto se le denomina ciclo de vida de software o software development life cycle 
(SDLC). 
2.2.1.1 Software Development Life Cycle (SDLC) 
Software development life cicle (SDLC) o el ciclo de vida del desarrollo de software es un 
proceso que define una serie de etapas o fases involucradas en el desarrollo de software 
para la entrega de un producto de calidad y de menor costo en el menor tiempo posible, 
cumpliendo los requisitos del cliente. El SDLC garantiza que el proceso de desarrollo de 
software funcione de manera fluida, eficiente y productiva. 
a) Fases del ciclo de vida de desarrollo de software 
Existen varios modelos de SDLC, cada uno con sus características y debilidades, sin 
embargo, cada uno de ellos tiene las siguientes etapas básicas: 
1) Planificación y análisis de requisitos: En esta etapa las partes interesadas 
discuten los requisitos para el producto final. Es necesario asegurarse que todos 
los participantes del proceso hayan entendido claramente las tareas y como se 
implementaran todos los requisitos. También detalla los riesgos involucrados y 
proporciona sub-planes para suavizar esos riesgos. 
15 
 
2) Diseño: Esta fase de SDLC comienza al convertir las especificaciones de software 
en un plan de diseño, donde los desarrolladores van diseñando la arquitectura del 
proyecto. Las partes interesadas revisan este plan, ofrecen comentarios, 
sugerencias y se resuelven dudas que pueden aparecer. En esta etapa se definen las 
tecnologías utilizadas en el proyecto, la carga del tiempo, limitaciones entre otros. 
3) Implementación: También llamado desarrollo real, en esta etapa los 
desarrolladores comienzan con la escritura de código fuente teniendo en cuenta los 
requisitos previamente definidos. Dependiendo la especialidad del programador se 
van trabajando en tareas de front-end y back-end. Esta fase a su vez tiene las 
siguientes etapas: Desarrollo de algoritmos y diseño de interfaces, escritura de 
código fuente, compilación, pruebas y depuración. 
4) Prueba: En esta etapa, se analiza y detecta defectos y deficiencias del software. 
Dichos defectos o fallos son documentados y reportados a los desarrolladores 
involucrados, quienes solucionan o resuelven problemas o defectos hasta que el 
producto cumpla con las especificaciones definidas. Este proceso se repite hasta 
eliminar problemas críticos y el software sea estable. 
5) Despliegue: Cuando se obtiene un software candidato a reléase, pasa a los 
usuarios finales. En esta fase interviene el equipo de soporte técnico para realizar 
el lanzamiento de la nueva versión del software. Este equipo proporciona soporte 
a los usuarios durante el tiempo de explotación. También, en esa fase se realiza la 
actualización de los componentes involucrados para asegurarse que la 
actualización de software sea exitosa. 
b) Modelos SDLC 
Existe gran variedad de modelos SDLC, que están predeterminados por la cantidad de 
tipos de productos, desde un sistema simple a un sistema complejo. 
1) Modelo en cascada: Posee un proceso de desarrollo tipo flujo, pasando paso a 
paso a través de las fases de análisis, proyección, realización, prueba, 
implementación y soporte. Este modelo SDLC incluye la ejecución gradual de 
16 
 
cada etapa por completo. Este proceso está estrictamente documentado y 
predefinido con características que se esperan para cada fase de este modelo de 
ciclo de vida de desarrollo de software.Figura 3. Modelo SDLC en cascada 
Fuente: Empresa de desarrollo Existek 
 
2) Modelo iterativo: El modelo SDLC iterativo no necesita la lista completa de 
requisitos antes de que comience el proyecto. El proceso de desarrollo puede 
comenzar con los requisitos de la parte funcional, que se puede ampliar más 
adelante. El proceso es repetitivo, lo que permite hacer nuevas versiones del 
producto para cada ciclo. Cada iteración (que dura de dos a seis semanas) incluye 
el desarrollo de un componente separado del sistema, y después de eso, este 
componente se agrega al funcional desarrollado anteriormente. Hablando con 
terminología matemática, el modelo iterativo es una realización del método de 
aproximación secuencial; eso significa una cercanía gradual a la forma planificada 
del producto final. 
Figura 4. Modelo SDLC iterativo 
Fuente: Empresa de desarrollo Existek 
 
17 
 
3) Modelo en espiral: Es el modelo SDLC, que combina arquitectura y creación de 
prototipos por etapas. Es una combinación de los modelos SDLC iterativos y en 
cascada con el acento significativo en el análisis de riesgos. El tema principal del 
modelo en espiral es definir el momento adecuado para dar un paso hacia la 
siguiente etapa. Se recomiendan los marcos temporales preliminares como la 
solución a este problema. El cambio a la siguiente etapa se realiza de acuerdo con 
el plan, incluso si el trabajo en la etapa anterior aún no se ha realizado. El plan se 
presenta basándose en los datos estadísticos, recibidos durante los proyectos 
anteriores, incluso de la experiencia del desarrollador personal. 
Figura 5. Modelo SDLC espiral 
Fuente: Empresa de desarrollo Existek 
 
4) Modelo en forma de V: El modelo SDLC en forma de V es una expansión del 
modelo clásico en cascada y se basa en la etapa de prueba asociada para cada etapa 
de desarrollo. Este es un modelo muy estricto y la siguiente etapa se inicia solo 
después de la fase anterior. Esto también se llama modelo de "Validación y 
verificación". Cada etapa tiene el control de proceso actual, para asegurarse de que 
la conversión a la siguiente etapa sea posible. 
18 
 
Figura 6. Modelo en forma de V 
Fuente: Empresa de desarrollo Existek 
 
5) Modelo ágil: En la metodología ágil después de cada iteración de desarrollo, el 
cliente puede ver el resultado y comprender si está satisfecho con él o no. Esta es 
una de las ventajas del modelo de ciclo de vida ágil de desarrollo de software. Una 
de sus desventajas es que, a falta de requisitos definidos, es difícil estimar los 
recursos y el costo de desarrollo. La programación extrema es uno de los usos 
prácticos del modelo ágil. La base de dicho modelo consiste en reuniones 
semanales cortas: Sprints, que son parte del enfoque Scrum. 
Figura 7. Modelo SDLC ágil 
Fuente: Empresa de desarrollo Existek 
 
2.2.2 Riesgo de seguridad 
Los riesgos de seguridad de la información son aquellos que surgen de la pérdida de 
confidencialidad, integridad o disponibilidad de información o sistemas de información y 
reflejan los posibles efectos adversos para las operaciones de la organización (es decir, 
19 
 
misión, funciones, imagen o reputación), activos de la organización, individuos, otras 
organizaciones y un país. (NIST 80-30, 2012) 
La función de una evaluación de riesgos de seguridad es permitir que una organización 
comprenda qué áreas y activos pueden estar en riesgo y determinar la magnitud de cada 
riesgo. Para los evaluadores de seguridad, una evaluación de riesgos de seguridad puede 
ser una fuente rica de información a partir de la cual se pueden planificar y diseñar pruebas 
de seguridad. Se puede utilizar una evaluación de riesgos de seguridad para priorizar las 
pruebas de seguridad, de modo que el mayor nivel de rigor y cobertura de las pruebas se 
pueda centrar en las áreas con mayor exposición al riesgo. 
Cuando se da prioridad a las pruebas de seguridad basadas en una evaluación de riesgos 
de seguridad, las pruebas se alinean con los objetivos de seguridad del negocio. Sin 
embargo, para que se produzca esta alineación, la evaluación de riesgos de seguridad debe 
reflejar con precisión las amenazas de seguridad de la organización, las partes interesadas 
afectadas y los activos a proteger. 
Es importante comprender que cualquier evaluación de riesgos es solo una instantánea en 
un momento dado y se basa en información limitada que puede llevar a suposiciones y 
conclusiones no válidas. Los riesgos de seguridad cambian continuamente dentro de una 
organización y proyectos, ya que surgen nuevas amenazas diariamente. Por lo tanto, las 
evaluaciones de riesgos de seguridad deben realizarse a intervalos regulares. El intervalo 
de tiempo exacto para realizar evaluaciones de riesgos de seguridad varía según la 
organización y el grado de cambio que experimenta. (International Software Testing 
Qualifications Board, 2016) 
Otro problema con las evaluaciones de riesgo es el nivel de conocimiento de los 
participantes. Los riesgos pueden perderse debido a la falta de información detallada. Los 
riesgos pueden pasarse por alto si las personas no comprenden las amenazas y los riesgos 
de seguridad. El proceso de evaluación de riesgos de seguridad es muy similar a una 
evaluación de riesgos estándar, siendo la principal diferencia el enfoque en áreas 
relacionadas con la seguridad. 
20 
 
La preparación para una evaluación de riesgos incluye las siguientes tareas (NIST 80-30, 
2012): 
• Identificar el propósito de la evaluación. 
• Identificar el alcance de la evaluación. 
• Identificar los supuestos y limitaciones asociados con la evaluación. 
• Identificar las fuentes de información que se utilizarán como insumos para la 
evaluación. 
• Identificar el modelo de riesgo y los enfoques analíticos (es decir, enfoques de 
evaluación y análisis) que se emplearán durante la evaluación. 
 La realización de evaluaciones de riesgos incluye las siguientes tareas específicas (NIST 
80-30, 2012): 
• Identificar las fuentes de amenazas que son relevantes para la organización. 
• Identificar eventos de amenazas que podrían ser producidos por esas fuentes. 
• Identificar vulnerabilidades dentro de la organización que podrían ser explotadas 
por fuentes de amenazas a través de eventos de amenazas específicos y las 
condiciones predisponentes que podrían afectar la explotación exitosa 
• Determinar la probabilidad de que las fuentes de amenaza identificadas inicien 
eventos de amenaza específicos y la probabilidad de que los eventos de amenaza 
sean exitosos. amenaza 
 La comunicación y el intercambio de información consta de las siguientes tareas 
específicas (NIST 80-30, 2012): 
• Comunicar los resultados de la evaluación de riesgos. 
• Compartir información desarrollada en la ejecución de la evaluación de riesgos 
para apoyar otras actividades de gestión de riesgos. 
21 
 
2.2.3 Control de calidad de software 
Es la evaluación del software basada en ciertos atributos. La calidad del software se define 
según el estudio de las características externas e internas del software. La calidad externa 
se determina según el rendimiento del software en el escenario en tiempo real en el modo 
operativo y su utilidad para los usuarios. La calidad interna, por otro lado, se centra en los 
aspectos intrínsecos que dependen de la calidad del código escrito. El usuario se centra 
más en cómo funciona el software en el nivel externo, pero la calidad en el nivel externo 
se puede mantener solo si el desarrollador ha escrito un código de buena calidad 
significativa. 
2.2.4 Seguridad de software 
Es la capacidad del software para mantener la integridad, confiabilidad y disponibilidad 
de la información. El software siempre tendrá problemas de seguridad. Casi todo software 
puede ser vulnerado fácilmente. Pero con la seguridad del software y las técnicas 
relacionadas, es posible que pueda hacer una diferencia en cuantoa la cantidad de errores 
de seguridad que eventualmente permanecerán en el software. 
2.2.5 Pruebas de seguridad 
Las pruebas de seguridad evalúan la vulnerabilidad de un sistema a las amenazas al 
intentar comprometer la política de seguridad del sistema. Dentro de las pruebas de 
seguridad a un determinado software se debe contemplar los riesgos más comunes de 
dichas aplicaciones, tomando en cuenta el tipo de aplicación, tecnología empleada, diseño 
y arquitectura. OWASP ofrece un top 10 de riesgos más comunes en aplicaciones web, 
móviles e interfaces de programación de aplicaciones, se podría considerar estos riesgos 
como una base de las pruebas de seguridad, pero no como una limitante ni la totalidad, ya 
que constantemente van apareciendo nuevos riesgos y vulnerabilidades. A continuación, 
se lista algunos ejemplos de riesgos potenciales, que deben considerarse durante las 
pruebas de seguridad. 
22 
 
• Para aplicaciones web: Inyecciones SQL, pérdida de autenticación, mala 
configuración de seguridad, entradas XML, control de acceso, secuencia de 
comandos en sitios cruzados (XSS), deserialización insegura, uso de componentes 
con vulnerabilidades conocidas, exposición de datos sensibles, insuficiente 
registro y monitoreo. 
• Para aplicaciones móviles: Controles débiles en el lado del servidor, 
almacenamiento inseguro de datos, insuficiente protección en el transporte de 
datos, fuga de información no intencionada, pobre autorización y autenticación, 
métodos obsoletos de criptografía, inyección de código en el lado cliente, 
decisiones de comunicación entre aplicaciones no confiables, indebida 
manipulación de sesión y la falta de protección a nivel binario. 
• Para la interfaz de programación de aplicaciones (API): Problemas en la 
autorización de nivel de objeto, problemas en la autenticación, exposición excesiva 
de datos, escasez de recursos y limitación de velocidad, problemas de autorización 
de nivel de función, asignación masiva, configuración incorrecta de seguridad, 
inyección, gestión de activos inadecuada, registro y monitoreo insuficientes. 
Las pruebas de seguridad deben integrarse con todas las demás actividades de desarrollo 
y pruebas. Esto requiere considerar las necesidades únicas de la organización, las políticas 
de seguridad existentes, los conjuntos de habilidades de prueba de seguridad actuales y 
las estrategias de prueba existentes. 
2.2.6 Security DevOps 
El movimiento de la cultura DevOps ha impulsado y logrado romper barreras dentro de 
las organizaciones que dividen los equipos en funciones especializadas de desarrollo y 
operaciones. DevOps permite que las organizaciones que adoptan el movimiento y la 
cultura sean más competitivas al permitir lanzamientos de software más rápidos y 
confiables al aprovechar la automatización para reemplazar los procesos manuales 
involucrados en el envío de software. 
23 
 
Un efecto secundario de esta velocidad es que las herramientas y procesos de seguridad 
deben moverse al mismo ritmo para mantenerse al día. La idea que impulsa DevSecOps, 
DevOpsSec o Security DevOps es realizar las pruebas de seguridad de la aplicación en 
desarrollo en el proceso utilizado para enviarla. 
2.2.6.1 DevOps 
Es una metodología de trabajo basada en el desarrollo de código que usa nuevas 
herramientas y prácticas para reducir la tradicional distancia entre desarrollo y 
operaciones. Este nuevo enfoque de colaboración que es DevOps permite a los equipos 
trabajar de forma más cercana, aportando mayor agilidad al negocio y notables 
incrementos de productividad. Adoptando el cambio cultural que es DevOps, las empresas 
pueden acelerar el ciclo de vida de sus aplicaciones. (Bird, 2016) 
2.2.6.2 DevSecOps 
DevSecOps, es una extensión de la mentalidad de DevOps a seguridad, es decir, incorporar 
seguridad en todo el proceso de DevOps. No existe un consenso en el campo sobre el 
orden de las palabras, por lo que los términos de búsqueda deben abarcar posibles 
permutaciones, por ejemplo: devsecops, secdevops, devopsec entre otros. (Vehent, 
Securing DevOps, 2018) 
Figura 8. Fases de DevOps 
Fuente: Securing DevOps 
 
 
24 
 
a) Principios 
Los principios que caracterizan a DevSecOps se basan en DevOp y los principios CAMS, 
cultura, automatización, medición y compartir, pero con la adición de agregar seguridad 
desde el principio: 
1) Cultura: Una cultura DevOps promueve la colaboración entre los equipos de 
desarrollo y los equipos de operación, donde todos aceptan que son responsables 
de entregar el software a un usuario final. DevSecOps significa incluir la 
colaboración con el equipo de seguridad, así como promover una cultura donde 
las operaciones y el desarrollo también trabajen para integrar la seguridad en su 
trabajo. Eso significa involucrar al equipo de seguridad desde las etapas de 
planificación, y hacer que todos se pongan de acuerdo en que la seguridad es 
responsabilidad de todos. (Vehent, Securing DevOps, 2018) 
2) Automatización: En DevOps, la automatización de la compilación, la 
implementación y las pruebas es importante para lograr un rápido desarrollo e 
implementación. DevSecOps también promueve un enfoque en la automatización 
de la seguridad, para poder mantenerse al día con la velocidad y la escala logradas 
por DevOps. El objetivo debe ser la automatización al 100% de los controles de 
seguridad, donde los controles se pueden implementar y administrar sin 
interferencia manual (Hewlett Packard Enterprise, 2016). 
3) Medición: Las mediciones incluyen el monitoreo de métricas comerciales, como 
los ingresos y los indicadores clave de rendimiento, como el efecto que las nuevas 
versiones tienen sobre la estabilidad de un sistema, para conocer el estado actual 
y encontrar la forma de mejorarlo. DevSecOps promueve el uso y el desarrollo de 
métricas que rastrean amenazas y vulnerabilidades en todo el proceso de desarrollo 
de software (Hewlett Packard Enterprise, 2016). Los controles de seguridad 
automáticos en todo el proceso de desarrollo de software significan que las 
métricas están disponibles para rastrear amenazas y vulnerabilidades en tiempo 
real y eso permite a la organización verificar qué tan buena es una aplicación bajo 
demanda (Vehent, Securing DevOps, 2018). 
25 
 
4) Compartir: Los desarrolladores y operadores comparten conocimientos, 
herramientas de desarrollo y técnicas para gestionar el proceso. DevSecOps 
promueve la inclusión del equipo de seguridad en el intercambio promovido en un 
entorno DevOps. Al informar a los equipos de seguridad sobre los desafíos que 
enfrentan los operadores y desarrolladores, y viceversa, se mejorarán los procesos 
de seguridad que desarrollan (Vehent, Securing DevOps, 2018). 
5) Desplace la seguridad hacia la izquierda: En el proceso tradicional de desarrollo 
de software, la seguridad es un paso cercano al final del proceso. DevSecOps 
promueve un cambio hacia la izquierda por seguridad, donde debe incluirse en 
cada parte del proceso de desarrollo de software. Esto significa que los equipos de 
seguridad están involucrados desde el primer paso de planificación y es parte de 
la planificación de cada iteración del ciclo de desarrollo. 
b) Practicas 
 Las prácticas de DevOps seguros significan que las organizaciones deben desarrollar 
experiencia y procesos para descubrir, proteger y encontrar mejores soluciones a las 
amenazas y los riesgos, preferiblemente con anticipación (Bird, 2016). Realizar 
evaluaciones de riesgos desde la primera etapa de planificación y continuamente antes de 
cada iteración es importante como una forma de priorizar los riesgos, examinar los 
controles ya establecidos y decidir cuáles son necesarios en el futuro. 
1) Pruebas continuas: Los controles de seguridad automáticos en cada parte del 
proceso de desarrollo del software son importantes para garantizar la seguridad y 
permiten que las pruebas escaneencontinuamente el código en busca de cambios, 
detecten continuamente anomalías y reviertan el código automáticamente cuando 
sea necesario. 
2) Monitoreo y registro: Al automatizar los controles de seguridad a lo largo del 
proceso de desarrollo de software, es importante que los involucrados puedan 
generar evidencia a demanda de que los controles están funcionando y que son 
efectivos. 
26 
 
3) Seguridad como código: Esto significa definir políticas de seguridad, por 
ejemplo, pruebas de integración y configuración y acceso a la red, y escribir 
plantillas con guiones o archivos de configuración que se puedan implementar en 
el proceso de desarrollo desde el inicio del proyecto. 
4) Equipo rojo y simulacros de seguridad: Para adelantarse a los posibles 
atacantes, los practicantes de DevSecOps crean un equipo rojo que ejecuta 
simulacros de seguridad en el software implementado. Tienen la tarea de encontrar 
y explotar vulnerabilidades en el sistema. Esto no solo ayuda a encontrar fallas de 
seguridad, sino que mejora las mediciones y ayuda a la organización a encontrar 
soluciones. El objetivo del equipo rojo es tener personas que nunca afirman que 
algo no puede suceder. (Vehent, Securing DevOps, 2018) 
2.3 MARCO LEGAL E INSTITUCIONAL 
2.3.1 Lineamientos para la elaboración e implementación de los Planes 
Institucionales de Seguridad de la Información de las entidades del sector público 
 Establece los lineamientos para que las entidades del sector público del Estado 
Plurinacional de Bolivia puedan elaborar e implementar sus Planes Institucionales de 
Seguridad de la Información (PISI) de acuerdo a la normativa vigente. El decreto supremo 
N°2514 de septiembre del 2016. En su parágrafo III del Artículo 17, que establece que 
“Las entidades del sector público deberán desarrollar el Plan Institucional de Seguridad 
de la Información acorde a los lineamientos establecidos por el CGII”. 
Este plan institucional de seguridad de la información en su anexo A presenta una sección 
donde establece directrices para el desarrollo, mantenimiento y adquisición de sistemas. 
En las diferentes directrices de esta sección se hace referencia a la adopción de un ciclo 
de vida de desarrollo seguro y prácticas de seguridad. 
2.3.2 Decreto supremo Nº1793 
En el decreto supremo Nº1793 de 13 de noviembre de 2013, hay artículos que conciernen 
al desarrollo de aplicaciones digitales como también a la seguridad informática: 
27 
 
En el párrafo IV del artículo 4, principios, señala que el software a ser utilizado por las 
entidades públicas debe regirse por la seguridad informática del código fuente que es uno 
de los principios establecidos el cual menciona lo siguiente: “Debe permitir al Estado 
Plurinacional de Bolivia la posibilidad de auditar, conocer y modificar el código fuente 
del mismo sin requerir ningún tipo de autorización, para obtener el comportamiento 
deseado de parte de ellas y ningún otro no consentido o requerido, precautelando la 
seguridad, independencia y soberanía tecnológica de Bolivia” 
El artículo 5, desarrollo de contenidos y aplicaciones TIC, menciona que el estado 
promoverá de manera prioritaria el desarrollo de contenidos, aplicaciones y servicios de 
las TIC en software libre, utilizando estándares abiertos y velando por la seguridad de la 
información en las áreas de: educación, salud, gestión gubernamental, productivo, 
comunicación e información. 
El artículo 6, objetivos de desarrollo de contenidos digitales, señala que fortalecer la 
seguridad informática del Estado Plurinacional de Bolivia deberá ser un objetivo mínimo 
para el desarrollo, diseño e innovación de contenidos digitales. 
El artículo 7, desarrollo de aplicaciones digitales, establece que: “El desarrollo de 
aplicaciones digitales por parte de las entidades públicas priorizará el uso de herramientas 
y plataformas de software libre, las cuales deben permitir a los usuarios y las usuarias: 
comunicarse entre sí, realizar trámites, entretenerse, orientarse, aprender, trabajar, 
informarse, activar servicios en las redes públicas de comunicaciones y realizar una serie 
de tareas de manera práctica y desde uno o más tipos de equipos terminales, proceso para 
el cual se enmarcarán en el uso de Estándares Abiertos, de modo que los contenidos sean 
democratizados y accesibles para los usuarios.” 
2.3.3 Ley Nº164, ley general de telecomunicaciones, tecnologías de información y 
comunicación 
En artículo 72, párrafo I de la ley Nº 164 de 8 de agosto de 2011, se establece que: “El 
Estado en todos sus niveles, fomentará el acceso, uso y apropiación social de las 
tecnologías de información y comunicación, el despliegue y uso de infraestructura, el 
28 
 
desarrollo de contenidos y aplicaciones, la protección de las usuarias y usuarios, la 
seguridad informática y de redes, como mecanismos de democratización de oportunidades 
para todos los sectores de la sociedad y especialmente para aquellos con menores ingresos 
y con necesidades especiales.” 
 
 
 
 
 
 
 
 
 
 
 
 
 
29 
 
CAPÍTULO III 
METODOLOGÍA DE LA INVESTIGACIÓN 
3.1 DISEÑO METODOLÓGICO 
El diseño de la presente investigación es de tipo experimental. Este diseño permite la 
manipulación de dos variables: la variable dependiente, la causa; y la variable 
independiente, el efecto. La investigación con diseño experimental ayuda a determinar el 
efecto de la variable independiente sobre la variable dependiente en una situación 
particular es este caso el efecto de implementar un modelo de seguridad para el desarrollo 
de software en la reducción de los riesgos en el software, de esta manera controlar el 
aumento o disminución de la variable dependiente. 
3.1.1 Tipo de investigación 
El tipo de investigación del presente trabajo es correlacional. De acuerdo a la clasificación 
que propone Dankhe (1986), existen tipos básicos de investigación, en función al estado 
del conocimiento de la ciencia que se trata, y del enfoque particular adoptado por el 
investigador en el tratamiento del problema y el objetivo. La presente investigación pasa 
de ser una investigación de tipo exploratoria a correlacional, donde en la: 
Investigación exploratoria, se inició el proceso investigativo, identificando posibles 
relaciones entre factores y estableciendo posibilidades de investigaciones posteriores. 
Para establecer el objeto de investigación en este caso modelo de seguridad para el 
desarrollo de software es necesario revisar la literatura correspondiente. 
Investigación descriptiva, se especificó el objeto de investigación, describió el problema 
y finalmente se describió la solución. Se buscó determinar las propiedades del proceso de 
desarrollo de software para la integración de conceptos y pruebas de seguridad. 
Investigación correlacional, se buscó establecer relaciones entre las variables 
identificadas, es decir, se determinó las posibles relaciones que existen entre esas 
variables, y luego se midió el grado de correlación o el cómo se comporta una variable en 
30 
 
función de la otra variable. También se procuró obtener un indicador cuantitativo que mida 
el grado de relación entre las variables. 
3.2 MÉTODO DE INVESTIGACIÓN 
La presente investigación se realizó con el método hipotético deductivo. El método 
hipotético deductivo consiste en hacer observaciones manipulativas y análisis, a partir de 
las cuales se formula una hipótesis que será comprobada mediante experimentos 
controlados. Esta investigación al poseer una hipótesis es necesario refutar las 
aseveraciones de la hipótesis para llegar a conclusiones que debe confrontarse con hechos, 
es por esa razón que la investigación se hizo con el método hipotético deductivo. 
3.2.1 Fases Metodológicos 
Tabla 3. Fases Metodológicos 
Fuente: Propia 
 
Objetivo Especifico Fases Metodológicas 
Realizar un análisis de 
vulnerabilidades a sistemas en 
producción previoa la 
implementación del modelo de 
desarrollo de software seguro. 
Análisis de vulnerabilidades. 
Ejecución de pruebas de intrusión. 
Ejecución de pruebas OWASP top ten. 
Elaboración de reporte de la evaluación de 
vulnerabilidades técnicas. 
Evaluar las prácticas de seguridad en 
el proceso de desarrollo de software 
de acuerdo al cumplimiento de 
normativas nacionales. 
Revisión de normativas nacionales. 
Evaluación del cumplimiento a las normativas 
y políticas de la institución. 
Evaluación de riesgo de software. 
Definir actividades relacionadas con 
seguridad en cada etapa del ciclo de 
vida de desarrollo de software. 
Elaboración de controles de seguridad para 
cada fase del ciclo de vida de desarrollo de 
software. 
Establecer una guía de buenas prácticas de 
seguridad dentro el proceso de desarrollo de 
software. 
31 
 
Validar la contribución de un modelo 
de desarrollo de software 
implementando estrategias de 
seguridad en la detección temprana de 
vulnerabilidades. 
Aplicación de un modelo de desarrollo de 
software. 
Análisis de datos obtenidos. 
 
3.2.2 Técnicas de investigación 
En la presente investigación, se utilizó las siguientes técnicas: 
i) Técnicas de recolección de datos: Con el propósito de verificar la 
importancia de la seguridad en el proceso de desarrollo de software se realizó 
encuestas a profesionales en el área de desarrollo y al responsable de desarrollo 
de la entidad pública Dirección General de Migración. 
ii) Técnicas de observación: Para la evaluación de modelo propuesto se ejecutó 
los siguientes pasos. 
a. Establecer los objetivos a ser medidos 
b. Seleccionar para que servirán en la investigación 
c. Establecer el modelo que mejor se ajuste a los casos de estudio reales. 
d. Recopilar y analizar datos. 
e. Efectuar una evaluación en función a los datos obtenidos 
f. Informar y documentar los resultados. 
3.3 UNIVERSO O POBLACIÓN DE REFERENCIA 
3.3.1 Población 
La población está delimitada al área de desarrollo de software de la institución pública 
Dirección General de Migración de la ciudad de La Paz. 
3.3.2 Muestra 
La presente investigación se desarrolló en la entidad pública dirección general de 
migración y con el fin de viabilizar la presente investigación se tomó como muestra el 
proceso de desarrollo de la institución, eligiendo dos aplicaciones de la misma para el 
32 
 
respectivo análisis de ciclo de vida de desarrollo de software y evaluación de seguridad, 
por tanto, la muestra es de tipo determinístico sesgado. 
3.4 DELIMITACIÓN 
3.4.1 Delimitación Geográfica 
La investigación se desarrolló en la ciudad de La Paz, Bolivia. 
3.4.2 Delimitación Temporal 
Se ha considerado la evaluación de los datos obtenidos en el último año y software en 
producción de la dirección general de migración para ser comparados con los resultados 
obtenidos después de la implementación del presente modelo. Es decir, se delimito a las 
vulnerabilidades de software encontradas en el software en producción durante la gestión 
2019, posteriormente se identificó y evaluó las vulnerabilidades en los productos lanzados 
a producción en los próximos 2 meses una vez aplicado el modelo de seguridad para el 
desarrollo de software. Esta evaluación al proceso de desarrollo y a las aplicaciones de la 
dirección general de migración se realizó en el mes de junio hasta octubre de la gestión 
2019. 
 
 
 
 
 
 
 
 
33 
 
CAPITULO IV 
MARCO PRÁCTICO 
La presente propuesta considera las seis fases más comunes de un ciclo de vida de 
desarrollo de software, también incluye cinco etapas para la gestión de pruebas de 
seguridad que señala la ISTQB, considerando las practicas importantes del modelo de 
desarrollo seguro de SAMM, análisis de riesgo, buenas prácticas de DevSecOps y de 
acuerdo a los requerimientos de desarrollo de sistemas de los lineamientos del plan 
institucional de seguridad de la información. La siguiente propuesta esta detallada en el 
punto 4.4. arquitectura del modelo. 
Figura 9. Propuesta de modelo de seguridad para el desarrollo de software 
Fuente: Propia 
SDLC 
 Análisis de riesgo Análisis de riesgo 
 
 DevSecOps 
 
 
Gestión de Pruebas – ISTQB 
 
Software Assurance Maturity Model 
PLAN INSTITUCIONAL DE SEGURIDAD DE LA INFORMACION 
 
Para establecer la presente propuesta se realizó un procesamiento de datos recompilados 
donde se evaluó modelos de desarrollo seguros para ver sus fortalezas y debilidades, 
también se realizó un análisis y diseño del modelo de acuerdo al contexto, mismos que 
serán descritos a continuación. 
PLANEACION DISEÑO DESARROLLO PRUEBAS DESPLIEGUE MANTENIMIENTO
Planificación de 
pruebas de 
seguridad
Diseño de 
pruebas 
seguridad
Ejecución de 
pruebas de 
seguridad
Evaluación 
de pruebas 
de seguridad
Mantenimiento 
de pruebas de 
seguridad 
34 
 
4.1 DESCRIPCIÓN Y PROCESAMIENTO DE DATOS RECOPILADOS. 
El presente trabajo propone un modelo de desarrollo de software adoptando prácticas de 
seguridad en cada actividad del ciclo de vida de desarrollo de software. El modelo consta 
de las siguientes actividades: planeación, diseño, desarrollo, pruebas, despliegue y 
mantenimiento de acuerdo a los lineamientos para la elaboración e implementación de los 
planes institucionales de seguridad de la información de las entidades del sector público 
y buenas prácticas de desarrollo de software. En ese sentido, se inició con el análisis donde 
se recopilo antecedentes de trabajos similares, normativas nacionales, estándares 
nacionales e internacionales. 
Tras el estudio de guías, modelos, estándares y normativas nacionales e internacionales, 
como base teórica para el presente modelo, se ha rescatado las mejores prácticas para el 
desarrollo seguro analizando la fortaleza de cada una. Como podemos observar en la tabla 
4 de fortalezas de modelos para el desarrollo de software, se ha considerado las debilidades 
y fortalezas de los modelos de SDLC y estándares que ayudan a mejorar el desarrollo de 
software integrando seguridad en las distintas actividades del SDLC. 
Tabla 4. Tabla de fortaleza de modelos para el desarrollo de software 
Fuente: Propia 
 
MODELOS Y ESTANDARES PARA EL DESARROLLO SEGURO 
Modelos y 
estándares 
Diseño y 
planificación 
Desarrollo Pruebas Despliegue Mantenimiento 
SAMM Fortaleza Fortaleza Medio Básico Medio 
SDLC 
Microsoft 
Medio Medio Medio Medio Medio 
Security 
Tester 
ISTQB 
Básico Básico Fortaleza Debilidad Debilidad 
DevSecOps Básico Básico Básico Fortaleza Fortaleza 
35 
 
De acuerdo a las fortalezas de cada estándar, modelo o guía se hizo una evaluación de 
actividades de seguridad descartando algunas prácticas repetitivas o básicas. Tras el 
estudio de cada modelo o estándar se descartó el modelo SDLC de Microsoft ya que si 
bien presenta aspectos importantes para el desarrollo seguro se enfoca en tecnologías de 
Microsoft y muchas de las actividades están cubiertas por los otros modelos y guías 
consideradas en la construcción del presente modelo. 
Para el procesamiento de datos se realizó una evaluación del modelo de madures de 
prácticas de seguridad de acuerdo al SAMM con el propósito de evaluar la madurez de 
seguridad en un punto inicial y finalmente comparar con el nivel de madurez después de 
aplicar el presente modelo, de esta manera demostrar la contribución del modelo. También 
se hizo una recolección de información de la institución pública dirección general de 
migración de acuerdo a los requerimientos del PISI, para ello se hizo una encuesta al 
responsable de sistema y al encargado de desarrollo de sistemas. (Ver Apéndice B) 
4.2 ANÁLISIS Y DISEÑO DEL MODELO 
Después del estudio del estado de arte, donde se conoció trabajos similares, se dio inicio 
con el análisis para el desarrollo del modelo de seguridad para el desarrollo de software 
basado

Continuar navegando