Seguridad de Aplicaciones

  • Inicio
  • Seguridad de Aplicaciones

¿Qué es seguridad de aplicaciones?

El término "Application Security" (AppSec) conocido como seguridad de aplicaciones es el proceso que involucra el desarrollo de software de forma segura y la verificación de la seguridad por medio de diferentes mecanismos manuales y automatizados.

¿Cuales son los principales riesgos de las aplicaciones?

Según OWASP que es una organización global sin fines de lucro que es referente en materia de AppSec y MITRE que es promovida por el gobierno de los Estados Unidos, existen más de mil tipos de debilidades que han sido identificadas, también conocidos como CWE (Common Weakness Enumeration) de las que se han creado listas más puntuales con la finalidad de priorizar su detección y corrección:

  • OWASP Top 10 Web: La lista de los diez tipos de riesgos más importantes para aplicaciones web.
  • OWASP Top 10 Mobile: La lista de los diez tipos de riesgos más importantes para aplicaciones móviles.
  • OWASP Top 10 API: La lista de los diez tipos de riesgos más importantes para APIs.
  • CWE Top 25: La lista de los venticinco tipos de riesgos más importantes para aplicaciones en general según MITRE.
Ciberseguridad ágil

¿Cuales procesos se utilizan para AppSec?

Para construir aplicaciones que sean seguras se requieren de algunos procesos y herramientas que forman parte del ciclo seguro de desarrollo software que involucra:

Entrenamiento

Muchas universidades no incluyen cursos de desarrollo seguro de software como parte de su currícula, esto causa que en la práctica, muchos desarrolladores aprenden sobre esto cuando están trabajando para empresas que poseen requisitos sobre seguridad en el código. Evitar los riesgos en etapas tempranas del desarrollo es una práctica conocida como "mover la seguridad hacia la izquierda" (Shift security to the left) porque es la forma más barata de reducir los costos relacionados con las correcciones de vulnerabilidades.
La premisa es sencilla, es más barato que las vulnerabilidades nunca sean introducidas en el cógido que detectarlas con herramientas, crear tiquetes, desarrollar las correcciones y probarlas involucrando a muchas personas en el proceso.

Un buen curso debe estar basado en estándares respetados de la industria como el estandar de verificación de seguridad para aplicaciones de OWASP (ASVS) para el caso de aplicaciones Web o el estándar similar de OWASP para aplicaciones móviles (MASVS).

SDLC seguro

El Ciclo de Vida de Desarrollo de Software (SDLC) debe contemplar el uso de prácticas de seguridad como:

  • Utilizar un estándar de desarrollo seguro para definir criterios de aceptación claros.
  • Revisiones de código para "Pull requests" contemplando criterios de seguridad.
  • Herramientas de escaneo para el código fuente.
  • Revisión de seguridad de las dependencias.
  • Escaneos dinámicos para aplicaciones web.
  • Pruebas unitarias con validaciones de seguridad.
  • Pruebas de extremo a extremo (E2E) con validaciones de seguridad.
  • Certificación de versiones para lanzamientos mayores.

Puede parecer todo un reto al inicio, es por esto que se recomienda establecer una estrategia basada en algún marco existente como lo es el modelo de madurez para el aseguramiento del software OWASP SAMM que permite establecer tareas y prioridades en una hoja de ruta que facilite la implementación.

Herramientas de escaneo de vulnerabilidades

Existen diversas herramientas para la detección de vulnerabilidades que permiten brindar distintas coberturas de seguridad sin que una sea reemplazo de la otra:

  • SAST: Análisis estático del código fuente (Static Application Security Testing) se basa en detectar patrones inseguros directamente en el código de las aplicaciones.
  • DAST: Análisis dinámico de aplicaciones Web o Móviles (Dynamic Application Security Testing) que emulan el comportamiento de atacantes interactuando directamente con una aplicación funcional.
  • IAST: Análisis interactivo de aplicaciones Web o Móviles (Interactive Application Security Testing) al igual que RASP, fueron variantes de DAST que surgieron para realizar detección combinando la interfaz de las aplicaciones junto con la integración con "frameworks" para detectar amenazas en tiempo de ejecución.
  • SCA: Análisis de composición de software (Software Composition Analysis) que permite la búsqueda de vulnerabilidades en componentes de terceros para prevenir ataques en la cadena de suministros.
  • Análisis de Contenedores: El escaneo de seguridad de contenedores permite detectar riesgos en la construcción de contenedores que posean debilidades de configuración o componentes vulnerables.

DevSecOps

Diagrama de DevSecOps

DevSecOps es la unión de Desarrollo (Development), Seguridad y Operaciones para permitir que las herramientas de seguridad se puedan integrar en procesos automatizados de integración y entrega contínua (CICD).

Gestión de vulnerabilidades

Por lo general los equipos de desarrollo ya disponen de herramientas de rastreo de tiquetes, sin embargo los equipos de seguridad necesitan visibilidad y requieren de herramientas que les permitan medir el estado y avance de la seguridad según las políticas de la organización, es por este motivo que se utilizan herramientas de gestión y rastreo de vulnerabilidades para asegurar que los riesgos sean priorizados y resueltos a tiempo según lo establecido por políticas o normativas de la empresa.

Certificación de aplicaciones

Las herramientas automatizadas permiten solucionar las vulnerabilidades en etapas tempranas, sin embargo es usual que se deba brindar una última verificación de seguridad antes de realizar un lanzamiento a producción, comúnmente cuando se trata de una versión mayor o que incluye cambios grandes en el software. La certificación de aplicaciones se realiza por medio de pruebas manuales de penetración (pentest) que permite detectar los riesgos que las herramientas automatizadas pudieron pasar por alto.

La importancia de los "pentest" radica en que la automatización puede excluir pruebas que dependen de contexto o de conocimiento específico de la lógica del negocio, sin embargo, al tratarse de un proceso manual que tarda varias semanas, usualmente se realiza una vez al año o cuando se realizan cambios significativos en la aplicación.

Conclusión

Ahora ya sabes lo básico sobre lo que es AppSec y algunos de sus procesos, debes tener en cuenta que el tema pasa evolucionando constantemente y cada día se van sumando técnicas o tecnologías nuevas que van implicando nuevos procesos de seguridad como lo han sido la infraestructura como código (IaC) o las aplicaciones serverless.

Este sitio web utiliza cookies para mejorar su experiencia, puede consultar nuestra política de privacidad.