Articulo de referencia

Seguridad de la aplicación

La seguridad de las aplicaciones ( AppSec ) incluye todas las tareas que introducen un ciclo de vida de desarrollo de software seguro en los equipos de desarrollo. Su objetivo f...

La seguridad de las aplicaciones ( AppSec ) incluye todas las tareas que introducen un ciclo de vida de desarrollo de software seguro en los equipos de desarrollo. Su objetivo final es mejorar las prácticas de seguridad y, a través de ello, encontrar, corregir y, preferiblemente, prevenir problemas de seguridad en las aplicaciones. Abarca todo el ciclo de vida de la aplicación, desde el análisis de requisitos, el diseño, la implementación y la verificación, hasta el mantenimiento. [ 1 ]

La seguridad de las 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 términos generales, la seguridad de las aplicaciones web se basa en los principios de la seguridad de las aplicaciones, pero los aplica específicamente a Internet y a los sistemas web . [ 2 ] [ 3 ] La seguridad de las aplicaciones también se centra en las aplicaciones móviles y su seguridad, incluidas las aplicaciones de iOS y Android.

Las herramientas de seguridad para aplicaciones web son herramientas especializadas para trabajar con tráfico HTTP, por ejemplo, los firewalls para aplicaciones web .

Aproches

Los distintos enfoques permiten identificar diferentes subconjuntos de vulnerabilidades de seguridad latentes en una aplicación, y su eficacia varía según la etapa del ciclo de vida del software. Cada uno implica diferentes compensaciones en cuanto a 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 .
  • Pruebas de caja blanca o revisión de código . Examen crítico de la estructura interna, la arquitectura, el diseño, etc.
  • Pruebas de caja negra . Prueba la funcionalidad en lugar de la estructura interna.
  • Herramientas automatizadas. Muchas herramientas de seguridad pueden automatizarse integrándolas en el entorno de desarrollo o de pruebas. Un ejemplo de ello son las herramientas DAST/SAST automatizadas integradas en editores de código o plataformas de CI/CD.
  • Plataformas coordinadas de detección de vulnerabilidades . Se trata de soluciones de seguridad de aplicaciones impulsadas por hackers, ofrecidas por numerosos sitios web y desarrolladores de software, mediante las cuales las personas pueden recibir reconocimiento y compensación por reportar errores.

amenazas a la seguridad

El Proyecto Abierto Mundial de Seguridad de Aplicaciones ( OWASP ) proporciona recursos gratuitos y abiertos. Está dirigido por una organización sin fines de lucro llamada Fundación OWASP. 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 más críticos para las aplicaciones web incluyen: [ 5 ] [ 6 ]

  1. Control de acceso defectuoso
  2. fallos criptográficos
  3. Inyección
  4. Diseño inseguro
  5. configuración de seguridad incorrecta
  6. Componentes vulnerables y obsoletos
  7. Fallos de identificación y autenticación
  8. Fallos en la integridad del software y los datos
  9. Fallos en el registro y la monitorización de la seguridad*
  10. Falsificación de solicitudes del lado del servidor (SSRF)*

Controles de seguridad

La lista OWASP Top 10 Proactive Controls 2024 es una recopilación de técnicas de seguridad que todo arquitecto y desarrollador de software debería conocer y tener en cuenta.

La lista actual contiene:

  1. Implementar el control de acceso
  2. Utilice la criptografía de la manera correcta.
  3. Validar todos los datos de entrada y gestionar las excepciones.
  4. Abordar la seguridad desde el principio
  5. Configuraciones seguras por defecto
  6. Mantén tus componentes seguros.
  7. Implementar identidad digital
  8. Utilice las funciones de seguridad del navegador.
  9. Implementar el registro y la monitorización de seguridad.
  10. Detenga la falsificación de solicitudes del lado del servidor.

Herramientas para pruebas de seguridad

Las técnicas de pruebas de seguridad buscan vulnerabilidades o fallos de seguridad en las aplicaciones. Estas vulnerabilidades dejan las aplicaciones expuestas a ataques . Idealmente, las pruebas de seguridad se implementan a lo largo de todo el ciclo de vida del desarrollo de software (SDLC) para que las vulnerabilidades puedan abordarse de manera oportuna y exhaustiva.

Existen muchos tipos de herramientas automatizadas para identificar vulnerabilidades en las aplicaciones. Las categorías de herramientas comunes utilizadas para identificar vulnerabilidades en las aplicaciones incluyen:

  • Las pruebas estáticas de seguridad de aplicaciones (SAST) analizan el código fuente en busca de vulnerabilidades de seguridad durante el desarrollo de una aplicación. A diferencia de las pruebas dinámicas de seguridad (DAST), las SAST pueden utilizarse incluso antes de que la aplicación sea ejecutable. Dado que las SAST tienen acceso al código fuente completo, se trata de un enfoque de caja blanca. Esto puede proporcionar resultados más detallados, pero también puede generar muchos falsos positivos que requieren verificación manual.
  • Las pruebas dinámicas de seguridad de aplicaciones (DAST, a menudo llamadas escáneres de vulnerabilidades ) detectan automáticamente vulnerabilidades mediante el rastreo y análisis de sitios web. Este método es altamente escalable, fácil de integrar y rápido. Las herramientas DAST son adecuadas para abordar ataques de bajo nivel, como fallos de inyección, pero no son adecuadas para detectar fallos de alto nivel, por ejemplo, fallos de lógica o de lógica de negocio. [ 7 ] Las herramientas de fuzzing se utilizan comúnmente para pruebas de entrada. [ 8 ]
  • Las investigaciones sobre seguridad de aplicaciones industriales destacan los crecientes riesgos relacionados con las API inseguras, la manipulación del código del lado del cliente y la explotación en tiempo de ejecución, lo que refuerza la importancia de realizar pruebas de seguridad dinámicas y en tiempo de ejecución exhaustivas. [ 9 ]
  • Las pruebas interactivas de seguridad de aplicaciones (IAST) evalúan las aplicaciones desde dentro mediante 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. [ 10 ] [ 11 ] Algunos productos IAST requieren que la aplicación sea atacada, mientras que otros pueden utilizarse durante las pruebas normales de garantía de calidad. [ 12 ] [ 13 ]
  • La autoprotección de aplicaciones en tiempo de ejecución mejora las aplicaciones existentes para proporcionar detección y prevención de intrusiones desde el propio entorno de ejecución de la aplicación.
  • Los analizadores de dependencias (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 bajo demanda, por ejemplo, durante el proceso de compilación del código fuente, o periódicamente.

Normas y reglamentos de seguridad

  • Estándar de codificación segura CERT
  • ISO/IEC 27034-1:2011 Tecnología de la información — Técnicas de seguridad — Seguridad de las aplicaciones — Parte 1: Descripción general y conceptos
  • ISO/IEC TR 24772:2013 Tecnología de la información — Lenguajes de programación — Guía para evitar vulnerabilidades en los lenguajes de programación mediante la selección y el uso del lenguaje
  • Publicación especial 800-53 del NIST
  • OWASP ASVS: Estándar de verificación de seguridad de aplicaciones web [ 14 ]

Véase también

Referencias

  1. Happe, Andreas (3 de junio de 2021). "¿Qué es AppSec?" . snikt.net .
  2. "Descripción general de la seguridad de las aplicaciones web" . 23/10/2015.
  3. ^ 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 .  
  4. Korolov, Maria (27 de abril de 2017). "La última lista OWASP Top 10 analiza las API y las aplicaciones web: La nueva lista OWASP Top 10 ya está disponible y, si bien la mayor parte permanece igual, hay nuevas incorporaciones centradas en las aplicaciones web y las API". CSO . ProQuest 1892694046 . 
  5. "OWASP Top 10 - 2021: Los diez riesgos de seguridad más críticos para las aplicaciones web" . Open Web Application Security Project . 2021. Consultado el 11 de enero de 2022 .
  6. "¿Qué es la seguridad de las aplicaciones? | Tipos, herramientas y mejores prácticas | Imperva" . Centro de aprendizaje . Consultado el 17 de julio de 2025 .
  7. "Escáneres de vulnerabilidades de aplicaciones web" . NIST.
  8. "Fuzzing" . OWASP.
  9. https://quixxi.com/mobile-app-threat-landscape-in-2024/
  10. Williams, Jeff (2 de julio de 2015). "Entiendo SAST y DAST, pero ¿qué es IAST y por qué es importante?" . Contrast Security . Recuperado el 10 de abril de 2018 .
  11. "Guía OWASP DevSecOps: Pruebas interactivas de seguridad de aplicaciones" . OWASP . 24 de abril de 2025. Consultado el 24 de abril de 2025 .
  12. Abezgauz, Irene (17 de febrero de 2014). "Introducción a las pruebas interactivas de seguridad de aplicaciones" . Quotium. Archivado del original el 3 de abril de 2018. Recuperado el 25 de enero de 2018 .
  13. Rohr, Matthias (26 de noviembre de 2015). "IAST: Un nuevo enfoque para las pruebas de seguridad ágiles" . Secodis.
  14. "Estándar de verificación de seguridad de aplicaciones OWASP" .