Medidas adoptadas para mejorar la seguridad de una aplicación
La seguridad de aplicaciones ( AppSec , por sus siglas en inglés ) incluye todas las tareas que introducen un ciclo de vida de desarrollo de software seguro a los equipos de desarrollo. Su objetivo final es mejorar las prácticas de seguridad y, a través de eso, encontrar, solucionar y, preferiblemente, prevenir problemas de seguridad dentro de las aplicaciones. Abarca todo el ciclo de vida de la aplicación, desde el análisis de requisitos, el diseño, la implementación, la verificación y el mantenimiento. [1]
La seguridad de aplicaciones web es una rama de la seguridad de la información que se ocupa específicamente de la seguridad de sitios web , aplicaciones web y servicios web . En un nivel alto, la seguridad de aplicaciones web se basa en los principios de seguridad de aplicaciones, pero los aplica específicamente a Internet y los sistemas web . [2] [3] La seguridad de aplicaciones también se concentra en las aplicaciones móviles y su seguridad, que incluye aplicaciones iOS y Android.
Las herramientas de seguridad de aplicaciones web son herramientas especializadas para trabajar con tráfico HTTP, por ejemplo, firewalls de aplicaciones web .
Aproches
Los distintos enfoques permiten detectar distintos subconjuntos de vulnerabilidades de seguridad que se esconden en una aplicación y son más eficaces en distintos momentos del ciclo de vida del software. Cada uno de ellos implica diferentes compensaciones en términos de tiempo, esfuerzo, coste y vulnerabilidades detectadas.
Revisión del diseño . Antes de escribir el código, se puede revisar la arquitectura y el diseño de la aplicación para detectar problemas de seguridad. Una técnica común en esta fase es la creación de un modelo de amenazas .
Revisión de seguridad de caja blanca o revisión de código . Se trata de un ingeniero de seguridad que comprende profundamente la aplicación mediante la revisión manual del código fuente y la detección de fallas de seguridad. Mediante la comprensión de la aplicación, se pueden encontrar vulnerabilidades exclusivas de la misma.
Auditoría de seguridad de Blackbox . Esto se realiza únicamente mediante el uso de una aplicación para probarla en busca de vulnerabilidades de seguridad; no se requiere código fuente.
Herramientas automatizadas. Muchas herramientas de seguridad se pueden automatizar mediante su inclusión en el entorno de desarrollo o prueba. Algunos ejemplos son las herramientas DAST/SAST automatizadas que se integran en el editor de código o en las plataformas CI/CD.
Plataformas de vulnerabilidad coordinada . Son soluciones de seguridad de aplicaciones impulsadas por piratas informáticos que ofrecen muchos sitios web y desarrolladores de software y que permiten a las personas recibir reconocimiento y compensación por informar errores.
Amenazas a la seguridad
El proyecto Open Worldwide Application Security Project ( OWASP ) ofrece recursos gratuitos y abiertos. Está dirigido por una organización sin fines de lucro llamada The OWASP Foundation. El OWASP Top 10 - 2017 es el resultado de una investigación reciente basada en datos exhaustivos recopilados de más de 40 organizaciones asociadas. Estos datos revelaron aproximadamente 2,3 millones de vulnerabilidades en más de 50 000 aplicaciones. [4] Según el OWASP Top 10 - 2021, los diez riesgos de seguridad de aplicaciones web más críticos incluyen: [5]
Falsificación de solicitud del lado del servidor (SSRF)*
Controles de seguridad
Los 10 mejores controles proactivos de OWASP 2024 es una lista de técnicas de seguridad que todo arquitecto y desarrollador de software debe conocer y tener en cuenta.
La lista actual contiene:
Implementar el control de acceso
Utilice la criptografía de la manera adecuada
Validar todas las entradas y manejar excepciones
Abordar la seguridad desde el principio
Configuraciones seguras por defecto
Mantenga sus componentes seguros
Implementar la identidad digital
Aproveche las funciones de seguridad del navegador
Implementar el registro y monitoreo de seguridad
Detener la falsificación de solicitudes del lado del servidor
Herramientas para pruebas de seguridad
Las técnicas de pruebas de seguridad buscan vulnerabilidades o agujeros de seguridad en las aplicaciones. Estas vulnerabilidades dejan las aplicaciones expuestas a la explotación . Lo ideal es que las pruebas de seguridad se implementen a lo largo de todo el ciclo de vida del desarrollo de software (SDLC) para que las vulnerabilidades se puedan abordar de manera oportuna y exhaustiva.
Existen muchos tipos de herramientas automatizadas para identificar vulnerabilidades en aplicaciones. Las categorías de herramientas más comunes que se utilizan para identificar vulnerabilidades en aplicaciones incluyen:
Las pruebas de seguridad de aplicaciones estáticas (SAST) analizan el código fuente en busca de vulnerabilidades de seguridad durante el desarrollo de una aplicación. En comparación con las DAST, las SAST se pueden utilizar incluso antes de que la aplicación se encuentre en estado ejecutable. Como las SAST tienen acceso al código fuente completo, se trata de un enfoque de caja blanca. Esto puede producir resultados más detallados, pero puede dar lugar a muchos falsos positivos que deben verificarse manualmente.
Las pruebas de seguridad de aplicaciones dinámicas (DAST, a menudo denominadas escáneres de vulnerabilidades ) detectan vulnerabilidades automáticamente mediante el rastreo y análisis de sitios web. Este método es altamente escalable, se integra fácilmente y es rápido. Las herramientas DAST son adecuadas para tratar ataques de bajo nivel, como fallas de inyección, pero no son adecuadas para detectar fallas de alto nivel, por ejemplo, fallas de lógica o de lógica de negocios. [6] Las herramientas de fuzzing se utilizan comúnmente para pruebas de entrada. [7]
Las pruebas de seguridad de aplicaciones interactivas (IAST) evalúan las aplicaciones desde dentro mediante la instrumentación de software. Esto combina las ventajas de los métodos SAST y DAST, además de proporcionar acceso al código, el tráfico HTTP, la información de la biblioteca, las conexiones de backend y la información de configuración. [8] [9] Algunos productos IAST requieren que se ataque la aplicación, mientras que otros se pueden utilizar durante las pruebas de control de calidad normales. [10] [ ¿ fuente promocional? ] [11] [ ¿fuente promocional? ]
Los escáneres de dependencia (también llamados análisis de composición de software ) intentan detectar el uso de componentes de software con vulnerabilidades conocidas. Estas herramientas pueden funcionar a demanda, por ejemplo, durante el proceso de compilación del código fuente, o de forma periódica.
ISO/IEC 27034-1:2011 Tecnología de la información — Técnicas de seguridad — Seguridad de aplicaciones -- Parte 1: Descripción general y conceptos
ISO/IEC TR 24772:2013 Tecnología de la información — Lenguajes de programación — Orientación para evitar vulnerabilidades en lenguajes de programación mediante la selección y el uso de lenguajes
^ Happe, Andreas (3 de junio de 2021). "¿Qué es AppSec?". snikt.net .
^ "Descripción general de la seguridad de las aplicaciones web". 23 de octubre de 2015.
^ Shuaibu, Bala Musa; Norwawi, Norita Md; Selamat, Mohd Hasan; Al-Alwani, Abdulkareem (17 de enero de 2013). "Revisión sistemática del modelo de desarrollo de seguridad de aplicaciones web". Revisión de inteligencia artificial . 43 (2): 259–276. doi :10.1007/s10462-012-9375-6. ISSN 0269-2821. S2CID 15221613.
^ Korolov, Maria (27 de abril de 2017). "El último Top 10 de OWASP analiza las API y las aplicaciones web: la nueva lista Top 10 de OWASP ya está disponible y, si bien la mayor parte sigue siendo la misma, hay nuevas incorporaciones que se centran en las aplicaciones web y las API". CSO . ProQuest 1892694046.
^ "OWASP Top 10 - 2021: Los diez riesgos de seguridad de aplicaciones web más críticos". Proyecto de seguridad de aplicaciones web abiertas . 2021. Consultado el 11 de enero de 2022 .
^ "Escáneres de vulnerabilidad de aplicaciones web". NIST.
^ "Pelusa". OWASP.
^ Williams, Jeff (2 de julio de 2015). "Entiendo SAST y DAST, pero ¿qué es un IAST y por qué es importante?". Contrast Security . Consultado el 10 de abril de 2018 .
^ Velasco, Roberto (7 de mayo de 2020). "¿Qué es IAST? Todo sobre pruebas de seguridad de aplicaciones interactivas". Hdiv Security . Consultado el 7 de mayo de 2020 .
^ Abezgauz, Irene (17 de febrero de 2014). «Introducción a las pruebas de seguridad de aplicaciones interactivas». Quotium. Archivado desde el original el 3 de abril de 2018. Consultado el 25 de enero de 2018 .
^ Rohr, Matthias (26 de noviembre de 2015). "IAST: un nuevo enfoque para las pruebas de seguridad ágiles". Secodis.
^ "Estándar de verificación de seguridad de aplicaciones OWASP".