Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Facultad de Ingeniería Electromecánica Investigación Amenazas, riesgos y vulnerabilidades Desarrollo de Software Seguro Presenta Enrique de Jesús Ochoa Preciado Profesor Díaz García Fernando Tomás Manzanillo, Col., México, 21 de febrero de 2023 Índice Tipos de riesgos en el desarrollo de software 3 Vulnerabilidades al momento del desarrollo y despliegue del software 5 Centros donde se pueden revisar las amenazas, riesgos y vulnerabilidades que existen 6 Referencias 8 1 Amenazas en el desarrollo de software Existen varias amenazas que pueden afectar el desarrollo de software, algunas de las cuales son: • Vulnerabilidades de seguridad: El software puede ser vulnerable a ataques maliciosos que pueden comprometer la seguridad de los datos y la privacidad de los usuarios. Las vulnerabilidades de seguridad pueden ser explotadas por los atacantes para robar información o realizar otras actividades ilegales. • Falta de calidad: La falta de calidad en el software puede hacer que sea difícil de usar, inestable y propenso a errores. Esto puede llevar a una mala experiencia del usuario, reducción de la productividad y aumento de los costos de mantenimiento. • Problemas de compatibilidad: El software puede ser incompatible con ciertas plataformas, sistemas operativos o aplicaciones, lo que puede impedir su correcto funcionamiento o limitar su uso. • Problemas de rendimiento: El software puede ser lento, consumir muchos recursos del sistema o tener problemas de escalabilidad, lo que puede afectar su rendimiento y capacidad de respuesta. • Cambios en los requisitos: Los requisitos pueden cambiar a medida que se desarrolla el software, lo que puede retrasar el proyecto, aumentar los costos y afectar la calidad del software. • Falta de documentación: La falta de documentación adecuada puede dificultar la comprensión del software y su mantenimiento. La documentación también puede ser útil para la capacitación de nuevos usuarios y para la resolución de problemas. 2 • Problemas de gestión de proyectos: La mala gestión del proyecto puede afectar la planificación, el presupuesto, la calidad y la entrega del software. Esto puede llevar a retrasos, aumento de los costos y desmotivación del equipo de desarrollo. Además de las amenazas mencionadas anteriormente, hay otras que pueden surgir en el desarrollo de software, tales como: • Amenazas internas: Esto ocurre cuando los miembros del equipo de desarrollo, los empleados de la organización o los usuarios autorizados abusan de su acceso al software y los sistemas de la organización. Las amenazas internas pueden incluir la introducción de virus o malware en el software, la violación de la privacidad de los usuarios o el robo de propiedad intelectual. • Fallos en terceros: Los desarrolladores de software a menudo dependen de terceros para proporcionar bibliotecas, frameworks, plugins y otros componentes de software que se utilizan en su desarrollo. Si estos componentes contienen errores, vulnerabilidades de seguridad u otros problemas, pueden afectar negativamente la calidad del software desarrollado. • Problemas de cumplimiento normativo: Las regulaciones gubernamentales y las políticas internas de las organizaciones pueden imponer requisitos específicos de cumplimiento en el software, lo que puede ser difícil de cumplir o de mantener. • Problemas de diseño y arquitectura: Las decisiones de diseño y arquitectura incorrectas pueden tener un impacto negativo en la calidad, el rendimiento y la capacidad de mantenimiento del software. Además, una mala arquitectura puede hacer que sea difícil agregar nuevas características o integrar el software con otros sistemas. 3 • Problemas de escalabilidad: El software debe ser capaz de manejar un gran número de usuarios y una gran cantidad de datos sin sufrir problemas de rendimiento o de capacidad de respuesta. Los problemas de escalabilidad pueden ser difíciles de resolver y pueden requerir una revisión completa de la arquitectura y del código. Es importante tener en cuenta todas estas amenazas durante el desarrollo de software y tomar medidas para mitigar sus efectos. Esto puede incluir la implementación de controles de seguridad, la adopción de prácticas de diseño y arquitectura sólidas, la realización de pruebas de rendimiento y la supervisión continua del cumplimiento normativo. Tipos de riesgos en el desarrollo de software Hay varios tipos de riesgos asociados con el desarrollo de software, algunos de los cuales incluyen: • Riesgos técnicos: Estos son riesgos relacionados con el diseño, implementación, prueba y mantenimiento del software. Pueden incluir problemas con la arquitectura, la escalabilidad, la seguridad, el rendimiento y la compatibilidad. • Riesgos de presupuesto y tiempo: Estos riesgos están relacionados con la gestión de proyectos y pueden incluir retrasos en la entrega del software, cambios en los requisitos del cliente y sobrecostos asociados con el desarrollo del software. • Riesgos de recursos humanos: Estos riesgos están relacionados con el equipo de desarrollo, incluyendo problemas de motivación, la falta de 4 habilidades y experiencia, la rotación de personal y la falta de comunicación y colaboración. • Riesgos comerciales: Estos riesgos están relacionados con el impacto del software en la organización o en el mercado en general. Pueden incluir la falta de demanda para el software, cambios en las regulaciones, la competencia y la obsolescencia. • Riesgos legales y de cumplimiento: Estos riesgos están relacionados con la responsabilidad legal y la posible violación de normas y regulaciones gubernamentales y de la industria. Esto puede incluir violaciones de privacidad, infracciones de propiedad intelectual, y el incumplimiento de las regulaciones de seguridad. Es importante tener en cuenta estos riesgos durante el proceso de desarrollo de software y tomar medidas para mitigarlos. Esto puede incluir la identificación y priorización de los riesgos, la implementación de controles de seguridad y gestión de riesgos, la adopción de prácticas de gestión de proyectos sólidas y la supervisión continua del cumplimiento normativo. 5 Vulnerabilidades al momento del desarrollo y despliegue del software Durante el proceso de desarrollo y despliegue de software, hay varias vulnerabilidades que pueden surgir, incluyendo: • Errores de programación: Los errores de programación son errores cometidos durante el proceso de codificación que pueden causar fallos de software y/o vulnerabilidades de seguridad. Los errores de programación pueden incluir vulnerabilidades de inyección de código, problemas de validación de entrada, errores de lógica y otros errores de programación. • Fallos en la configuración del software: Los fallos en la configuración del software pueden dejar expuestos servicios y sistemas a través de la configuración incorrecta de firewalls, servidores web, bases de datos, entre otros. • Vulnerabilidades de seguridad de terceros: Las bibliotecas de software de terceros y otros componentes utilizados en el desarrollo de software pueden tener vulnerabilidades de seguridad que pueden ser explotadas para atacar el software desarrollado. • Malas prácticas de seguridad: Las malas prácticas de seguridad durante el proceso de desarrollo, tales como el almacenamiento de credenciales de usuario en texto plano, la falta de cifrado de datos sensibles y la falta de autenticación y autorización adecuada, pueden dejar al software expuesto a riesgos de seguridad. • Problemas de cumplimiento normativo: Las regulaciones gubernamentales y las políticas internas de las organizaciones pueden imponer requisitos específicos de cumplimiento en el software, lo que puede ser difícil de cumpliro de mantener. 6 Para mitigar estas vulnerabilidades, se recomienda implementar buenas prácticas de seguridad en todo el proceso de desarrollo de software, incluyendo el uso de herramientas de análisis de código y pruebas de penetración para identificar y corregir vulnerabilidades, la implementación de controles de seguridad adecuados, la adopción de prácticas de diseño y arquitectura sólidas, la realización de pruebas de seguridad y la supervisión continua del cumplimiento normativo. Centros donde se pueden revisar las amenazas, riesgos y vulnerabilidades que existen Existen varios recursos en línea que ofrecen información actualizada y útil sobre las amenazas, riesgos y vulnerabilidades que existen en el desarrollo de software. Algunos de estos recursos incluyen: • OWASP (Open Web Application Security Project): OWASP es una organización sin fines de lucro que tiene como objetivo mejorar la seguridad del software. Ofrecen recursos y herramientas para identificar y mitigar vulnerabilidades de seguridad en aplicaciones web y móviles. • NIST (National Institute of Standards and Technology): NIST es una agencia gubernamental de EE. UU. que se dedica a desarrollar y promover estándares y buenas prácticas de seguridad de la información. Ofrecen guías y herramientas para la evaluación y gestión de riesgos de seguridad en el desarrollo de software. • SANS Institute: El SANS Institute es una organización de investigación y educación en seguridad de la información que ofrece una amplia gama de 7 recursos y cursos de capacitación en seguridad de la información, incluyendo el desarrollo seguro de software. • CERT/CC (Computer Emergency Response Team Coordination Center): CERT/CC es una organización de investigación y respuesta a incidentes de seguridad de la información que ofrece recursos y asesoramiento en seguridad de la información, incluyendo el desarrollo seguro de software. Además de estos recursos, hay muchas empresas y consultores que ofrecen servicios de evaluación de riesgos y seguridad en el desarrollo de software. Si se está preocupado por la seguridad de su software, es recomendable buscar asesoramiento de un experto en seguridad de la información o un consultor de seguridad. 8 Referencias - Sánchez-Bautista, G., & Ramírez-Chávez, L. (2022). Amenazas de seguridad a considerar en el desarrollo de software. XIKUA Boletín Científico de La Escuela Superior de Tlahuelilpan, 10(19), 31-37. - Karailievova, I. (2020, 17 noviembre). Las vulnerabilidades del software una gua para novatos. MA-NO Web Design and Development. https://www.ma- no.org/es/seguridad/las-vulnerabilidades-del-software-una-guia-para- novatos - Castellaro, M., Romaniz, S., Ramos, J. C., Feck, C., & Gaspoz, I. (2016). Aplicar el Modelo de Amenazas para incluir la Seguridad en el Modelado de Sistemas. In V Congreso Iberoamericano de Seguridad Informática-CIBSI (Vol. 16). - Mighetti, J. P. (2021). Mitigación de amenazas a requisitos en el desarrollo global de software usando LEL y escenarios. https://www.ma-no.org/es/seguridad/las-vulnerabilidades-del-software-una-guia-para-novatos https://www.ma-no.org/es/seguridad/las-vulnerabilidades-del-software-una-guia-para-novatos https://www.ma-no.org/es/seguridad/las-vulnerabilidades-del-software-una-guia-para-novatos
Compartir