stringtranslate.com

Garantía de software

El aseguramiento de software ( SwA ) es un proceso crítico en el desarrollo de software que garantiza la confiabilidad, seguridad y protección de los productos de software. [1] Implica una variedad de actividades, que incluyen análisis de requisitos, revisiones de diseño, inspecciones de código, pruebas y verificación formal. Un componente crucial del aseguramiento de software son las prácticas de codificación segura, que siguen los estándares y las mejores prácticas aceptados por la industria, como los descritos por el Instituto de Ingeniería de Software (SEI) en sus Estándares de codificación segura (SCS) CERT. [2]

Otro aspecto vital de la garantía de software son las pruebas, que deben realizarse en varias etapas del proceso de desarrollo de software y pueden incluir pruebas funcionales , pruebas de rendimiento y pruebas de seguridad . [3] Las pruebas ayudan a identificar cualquier defecto o vulnerabilidad en los productos de software antes de su lanzamiento. Además, la garantía de software implica prácticas organizativas y de gestión como la gestión de riesgos y la gestión de la calidad para garantizar que los productos de software cumplan con las necesidades y expectativas de las partes interesadas. [4]

El aseguramiento del software tiene como objetivo asegurar que el software esté libre de vulnerabilidades y funcione como se espera, cumpliendo con todos los requisitos y estándares que rigen el proceso de desarrollo de software. [3] Además, el aseguramiento del software tiene como objetivo producir sistemas intensivos en software que sean más seguros. Para lograr esto, se requiere un análisis dinámico y estático preventivo de las vulnerabilidades potenciales, y se recomienda una comprensión holística a nivel de sistema. El análisis de riesgos arquitectónicos desempeña un papel esencial en cualquier programa de seguridad de software, ya que los fallos de diseño representan el 50% de los problemas de seguridad y no se pueden detectar observando solo el código. [5]

Al seguir los estándares y las mejores prácticas aceptados por la industria, incorporar prácticas de prueba y gestión y realizar análisis de riesgos arquitectónicos, la garantía de software puede minimizar el riesgo de fallas del sistema y violaciones de seguridad, lo que la convierte en un aspecto crítico del desarrollo de software.

Iniciativas

Las iniciativas de garantía de software son programas y actividades diseñados para garantizar la calidad, la fiabilidad y la seguridad de los sistemas de software. Estas iniciativas son importantes porque el software se utiliza en una amplia gama de aplicaciones, desde operaciones comerciales hasta infraestructuras críticas, y los defectos o vulnerabilidades del software pueden tener consecuencias graves.

Existen varios tipos de iniciativas de garantía de software, entre ellas:

¿Por qué es importante la garantía del software?

En el mundo digital actual, el software se utiliza para controlar una amplia gama de dispositivos y sistemas, incluidos automóviles , dispositivos médicos , sistemas financieros y equipos militares . Por lo tanto, es fundamental garantizar la confiabilidad, la seguridad y la protección de los productos de software. Sin las pruebas y la verificación adecuadas, el software puede contener defectos y vulnerabilidades que pueden provocar fallas del sistema, violaciones de seguridad y otros problemas graves con consecuencias negativas para las personas, las empresas y la sociedad en su conjunto. [9]

El Instituto Nacional de Estándares y Tecnología (NIST) define la garantía de software como "el nivel de confianza de que el software está libre de vulnerabilidades, ya sea diseñadas intencionalmente en el software o insertadas accidentalmente en cualquier momento durante su ciclo de vida, y que el software funciona de la manera prevista" [22] . Las organizaciones pueden reducir el riesgo de costosas fallas del sistema, violaciones de datos y otros resultados negativos al garantizar la garantía de software.

Además de los posibles riesgos asociados a los defectos y vulnerabilidades del software, existen requisitos legales y reglamentarios relacionados con la garantía del software. El incumplimiento de estas regulaciones puede dar lugar a sanciones legales y financieras. Por ejemplo, las organizaciones que desarrollan software para determinadas industrias pueden estar sujetas a regulaciones que les exijan garantizar la seguridad de sus productos.

Muchas funciones críticas, como la defensa nacional, la banca, la atención sanitaria, las telecomunicaciones, la aviación y el control de materiales peligrosos, dependen del funcionamiento correcto y predecible del software. [10] Si los sistemas intensivos en software que respaldan estas actividades fallan, podrían verse gravemente afectados. Por lo tanto, es esencial que las organizaciones implementen técnicas y herramientas de prueba y verificación de software para reducir el riesgo de fallas del sistema y violaciones de seguridad.

Ejecución

La garantía de software se ejecuta a través de una serie de actividades que tienen como objetivo garantizar la confiabilidad, seguridad y protección de los productos de software. Estas actividades incluyen análisis de requisitos, revisiones de diseño, inspecciones de código, pruebas y verificación formal. [1]

Técnicas

Las pruebas y la verificación de software son técnicas que se utilizan para identificar y abordar defectos y vulnerabilidades en el código de software. Existen varios tipos de técnicas de prueba y verificación, entre las que se incluyen las pruebas funcionales, las pruebas de rendimiento y las pruebas de seguridad. [3]

Herramientas

Las herramientas de prueba y verificación de software se utilizan para identificar y abordar defectos y vulnerabilidades en el código de software. Existen varios tipos de herramientas de prueba y verificación, entre ellas:

Definiciones alternativas

Departamento de Seguridad Nacional de los Estados Unidos (DHS)

Según el DHS , la garantía del software aborda:

Disciplinas contribuyentes de SwA, articuladas en cuerpos de conocimiento y competencias básicas: ingeniería de software, ingeniería de sistemas, ingeniería de seguridad de sistemas de información, aseguramiento de la información, pruebas y evaluación, seguridad, protección, gestión de proyectos y adquisición de software. [16]

La garantía de software es una iniciativa estratégica del Departamento de Seguridad Nacional de los Estados Unidos (DHS) para promover la integridad, la seguridad y la confiabilidad del software. El programa SWA se basa en la Estrategia nacional para la seguridad del ciberespacio: Acción/Recomendación 2-14:

“El DHS facilitará un esfuerzo público-privado nacional para promulgar las mejores prácticas y metodologías que promuevan la integridad, la seguridad y la confiabilidad en el desarrollo de códigos de software, incluidos procesos y procedimientos que reduzcan las posibilidades de código erróneo, código malicioso o trampas que podrían introducirse durante el desarrollo”. [17] Existen herramientas de software de código abierto para la garantía de software que ayudan a identificar posibles vulnerabilidades de seguridad. [18]

Departamento de Defensa de los Estados Unidos (DoD)

Para el Departamento de Defensa , SwA se define como "el nivel de confianza de que el software funciona únicamente como está previsto y está libre de vulnerabilidades, ya sea intencional o involuntariamente diseñadas o insertadas como parte del software, durante todo el ciclo de vida". [19] El Departamento de Defensa está desarrollando SwA como una práctica de ingeniería de sistemas sólida, como lo demuestran dos publicaciones recientes financiadas por JFAC con el desarrollo dirigido por el Instituto de Ingeniería de Software (SEI) y profesionales expertos dentro de los Servicios Militares y la NSA. La Guía SwA del Gerente de Programa muestra cómo se debe planificar, dotar de recursos y gestionar SwA, mientras que la Guía SwA del Desarrollador recomienda prácticas técnicas adaptables durante todo el ciclo de vida. [20] Ambos documentos son los primeros de su tipo y fueron premiados. [21] Las dos organizaciones a escala empresarial en el Departamento de Defensa que construyen la capacidad SwA son el Centro de Garantía Federada Conjunta (JFAC) [22] y la Comunidad de práctica SwA del Departamento de Defensa, que ha funcionado como un foro colegial trimestral en 32 reuniones consecutivas. Ambos están abiertos a otras partes del gobierno de los EE. UU. La Carta del JFAC está disponible en su sitio web. Para desarrollar un conocimiento más amplio de la situación de las familias de herramientas de SwA disponibles comercialmente, el JFAC financió al Instituto de Análisis de Defensa (IDA) para producir el Recurso de Estado de Arte (SOAR). [23] Una innovación reciente en la "ingeniería" de SwA a lo largo del ciclo de vida es acoplar controles NIST 800-53 seleccionados a tareas de ingeniería de modo que los resultados de ingeniería definan el Marco de Gestión de Riesgos (RMF) e impulsen la Autoridad para Operar (ATO). Un paquete que incluye Descripciones de Elementos de Datos (DID), formatos de informe de vulnerabilidad legibles por máquina y una breve aplicación general de las técnicas está disponible en el sitio web del JFAC. Otras innovaciones disruptivas están en proceso.

Proyecto de evaluación de herramientas y métricas de garantía de software (SAMATE)

Según el proyecto NIST SAMATE, [24] la garantía de software es "el conjunto planificado y sistemático de actividades que garantiza que los procesos y productos de software se ajusten a los requisitos, estándares y procedimientos para ayudar a lograr:

Administración Nacional de Aeronáutica y del Espacio (NASA)

Según la NASA , la garantía de software es un "conjunto planificado y sistemático de actividades que garantizan que los procesos y productos de software se ajusten a los requisitos, estándares y procedimientos. Incluye las disciplinas de garantía de calidad, ingeniería de calidad, verificación y validación, informes de no conformidad y acciones correctivas, garantía de seguridad y garantía de protección y su aplicación durante el ciclo de vida del software". El Estándar de Garantía de Software de la NASA también establece: "La aplicación de estas disciplinas durante el ciclo de vida del desarrollo de un software se denomina garantía de software". [25]

Grupo de Gestión de Objetos (OMG)

Según la OMG , la garantía del software es “la confiabilidad justificable en el cumplimiento de los objetivos comerciales y de seguridad establecidos”. [26]

El Grupo de Interés Especial (SIG) de SwA de OMG, [27] trabaja con los Grupos de Trabajo de Plataforma y Dominio y otras entidades y grupos de la industria del software externos a OMG, para coordinar el establecimiento de un marco común para el análisis e intercambio de información relacionada con la confiabilidad del software, facilitando el desarrollo de una especificación para un Marco de Garantía de Software [28] que:

Foro de Garantía de Software para la Excelencia en el Código (SAFECode)

Según SAFECode, la garantía del software es “la confianza de que el software, el hardware y los servicios están libres de vulnerabilidades intencionales y no intencionales y que el software funciona según lo previsto”. [29]

Véase también

Referencias

  1. ^ Stavrou, A., Bos, H., Portokalidis, G., y van der Meyden, R. (2017). Garantía de software: una hoja de ruta . 60(1), 71-79: Comunicaciones de la ACM.{{cite book}}: Mantenimiento CS1: ubicación ( enlace ) Mantenimiento CS1: varios nombres: lista de autores ( enlace )
  2. ^ SEI (sin fecha). Estándares de codificación segura CERT. Instituto de Ingeniería de Software.
  3. ^ ISO (2015). ISO/IEC/IEEE 12207:2015 - Ingeniería de sistemas y software -- Procesos del ciclo de vida del software . ISO.
  4. ^ IEEE (2019). IEEE 730-2019 - Estándar IEEE para procesos de garantía de calidad de software . IEEE.
  5. ^ McGraw, Gary (2006). Seguridad del software: creación de seguridad en . Addison-Wesley. pág. 75. ISBN 0-321-35670-5.
  6. ^ "Garantía de software: ¿Qué es y por qué la necesito?" (PDF) . Departamento de Seguridad Nacional .
  7. ^ Modelado de amenazas. Microsoft.
  8. ^ "NICE Cybersecurity Workforce Framework". NIST . Instituto Nacional de Estándares y Tecnología. 13 de noviembre de 2019.
  9. ^ "Garantía de software". Instituto Nacional de Estándares y Tecnología (NIST).
  10. ^ "Garantía de software". Instituto de Ingeniería de Software (SEI).
  11. ^ IEEE (2018). IEEE 1012-2016 - Estándar IEEE para verificación y validación de sistemas y software . IEEE.
  12. ^ H. Guissouma, A. Lauber, A. Mkadem, E. Sax (2019). "Entorno de prueba virtual para la verificación eficiente de actualizaciones de software para sistemas automotrices ricos en variantes". Conferencia internacional de sistemas IEEE de 2019 (Sys Con ) . IEEE. págs. 1–8. doi :10.1109/SYSCON.2019.8836898. ISBN . 978-1-5386-8396-5.S2CID 199015634  .{{cite book}}: CS1 maint: varios nombres: lista de autores ( enlace )
  13. ^ J. Gao, C. Tao, D. Jie ĺ, S. Luĺ (2019). ¿Qué son las pruebas de software de IA? y por qué . Conferencia internacional IEEE de 2019 sobre ingeniería de sistemas orientados a servicios (SOSE).{{cite book}}: CS1 maint: varios nombres: lista de autores ( enlace )
  14. ^ Gligoric, M., Lopes, CV, & Pasareanu, CS Pruebas y análisis de software en el mundo real . Comunicaciones de la ACM. p. 58(4), 66-75. {{cite book}}: CS1 maint: varios nombres: lista de autores ( enlace )
  15. ^ Kim, J., Kantarcioglu, M. y Thuraisingham, B. (2016). Desafíos de seguridad y privacidad en big data . Journal of Big Data. pág. 3(1), 1-14.{{cite book}}: CS1 maint: varios nombres: lista de autores ( enlace )
  16. ^ Build Security In Home (2 de diciembre de 2011). "Portal web DHS Build Security In". Buildsecurityin.us-cert.gov. Archivado desde el original el 17 de mayo de 2006. Consultado el 8 de mayo de 2013 .
  17. ^ Build Security In Home (2 de diciembre de 2011). "Build Security In Home". Buildsecurityin.us-cert.gov. Archivado desde el original el 17 de mayo de 2006. Consultado el 8 de mayo de 2013 .
  18. ^ "Herramientas de garantía de (software) de código abierto". Archivado desde el original el 11 de septiembre de 2014.
  19. ^ LEY PÚBLICA 112–239—2 DE ENERO DE 2013, LEY DE AUTORIZACIÓN DE DEFENSA NACIONAL PARA EL AÑO FISCAL 2013, sección 933.
  20. ^ https://resources.sei.cmu.edu/library/asset-view.cfm?assetid=538756 y https://resources.sei.cmu.edu/library/asset-view.cfm?assetid=538771
  21. ^ y https://www.isc2.org/News-and-Events/Press-Room/Posts/2019/06/17/ISC2-Announces-2019-Information-Security-Leadership-Awards-Government-Winners
  22. ^ LEY PÚBLICA 113–66—26 DE DICIEMBRE DE 2013, LEY DE AUTORIZACIÓN DE DEFENSA NACIONAL PARA EL AÑO FISCAL 2014, artículo 937
  23. ^ "Recursos de última generación". IDA . Consultado el 27 de septiembre de 2023 .
  24. ^ "Página principal - Proyecto SAMATE". Samate.nist.gov . Consultado el 8 de mayo de 2013 .
  25. ^ NASA-STD-2201-93 Archivado el 2 de julio de 2006 en Wayback Machine "Software Assurance Standard", 10 de noviembre de 1992
  26. ^ OMG Software Assurance (SwA) Special Interest Group (SIG) http://adm.omg.org/SoftwareAssurance.pdf Archivado el 29 de septiembre de 2011 en Wayback Machine y http://swa.omg.org/docs/softwareassurance.v3.pdf Archivado el 12 de octubre de 2006 en Wayback Machine
  27. ^ "Omg Swa Sig". Swa.omg.org. 26 de febrero de 2010. Archivado desde el original el 3 de diciembre de 2020. Consultado el 8 de mayo de 2013 .
  28. ^ Sistema de TI compatible con CISQ omg.org [ enlace inactivo ]
  29. ^ "Software Assurance: An Overview of Current Industry Best Practices" (PDF) . Archivado desde el original (PDF) el 13 de mayo de 2013 . Consultado el 8 de mayo de 2013 .

Enlaces externos