Seguridad de Aplicaciones
- Inicio
- 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.
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:
Para construir aplicaciones que sean seguras se requieren de algunos procesos y herramientas que forman parte del ciclo seguro de desarrollo software que involucra:
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).
El Ciclo de Vida de Desarrollo de Software (SDLC) debe contemplar el uso de prácticas de seguridad como:
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.
Existen diversas herramientas para la detección de vulnerabilidades que permiten brindar distintas coberturas de seguridad sin que una sea reemplazo de la otra:
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).
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.
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.
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.
En WhiteJaguars brindamos diferentes tipos de servicios para ayudarte a implementar o mejorar la seguridad de tus aplicaciones: