# data[].attributes.body
En el mundo actual es una realidad que el software está en todo, desde las apps que utilizamos en nuestros dispositivos móviles para temas laborales o personales hasta los sistemas avanzados que aportan significativamente según sea la rama como por ejemplo la parte médica. Si estos no se construyen de forma segura, puede ser vulnerable a ataques que comprometan datos, funciones, dinero o incluso vidas. Por eso, debemos tener conciencia al momento de crear software seguro lo cual no es opcional, debe ser una responsabilidad que nos lleve a la obligatoriedad.

Como señala OWASP, “la seguridad de las aplicaciones web es un desafío en constante evolución. A medida que las tecnologías cambian y las aplicaciones se vuelven más complejas, también aumentan las oportunidades para que los atacantes exploten vulnerabilidades”.

OWASP Foundation. (s.f.). Guía del desarrollador OWASP: Fundamentos de seguridad. OWASP. https://owasp.org/www-project-developer-guide/release-es/fundamentos/fundamentos_seguridad/

# data[].attributes.body
La promesa de valor al momento de construir software seguro es que debemos incluir la seguridad desde la planeación de las fases iniciales, ya no es suficiente con probarlo al final previo a salir a producción. Dentro de dicha planeación debemos tener muy presente los siguientes aspectos:

Usar técnicas de codificación segura.

Repetir procesos que ya se ha comprobado como efectivos.

Elegir librerías confiables que no tengan vulnerabilidades conocidas

Aplicar estándares reconocidos en la industria del desarrollo.

Utilizar herramienta que nos permitan realizar análisis de vulnerabilidades, como el SonarQube

La mentalidad de que solo debemos enfocarnos en que el software funcione, ya paso a la historia, ahora debemos garantizar que funcione, pero de forma segura. Es necesario aplicar pruebas específicas que buscan errores, de fallos de seguridad y comportamientos inesperados. Finalmente debemos comprobar que el software cumple con lo que se espera, y verificar que lo hace sin poner en riesgo la integridad del sistema

# data[].attributes.body
Es una técnica la cual nos permite anticiparnos ante un posible ataque. Para esto se debe: identificar posibles vulnerabilidades, analizar posibles riesgos, y al final se debe implementar las respectivas defensas que nos permitan mitigar los riesgos y/o vulnerabilidades antes de que el software sea puesto en producción. Es otras palabras, es como hacer un mapa de los posibles peligros y preparar un plan para cada uno de ellos.

Caso práctico

Proyecto: Digitalizando Pagos en App de Comidas Rapidas

En una pequeña empresa de comidas rápidas, se está desarrollando una aplicación móvil para que el cliente pueda ordenar sus pedidos y se tiene la necesidad de implementar pagos digitales. Para garantizar la seguridad desde las etapas iniciales del proyecto, se aplicara el modelo de amenazas de acuerdo con el siguiente lineamiento:

Identificación de activos: se identificarán los más representativos y que podrán ser blanco de ataques, como lo son los datos bancarios, credenciales de usuario, historial de transacciones.

Análisis de amenazas: Posibles ataques como phishing, inyección de código, acceso no autorizado.

Evaluación de riesgos: en este punto debemos tomar cada amenaza y preguntarnos: ¿Qué tan probable es cada amenaza? ¿Qué impacto tendría? y con relación a la respuesta de cada pregunta, pasamos a poder definir los posibles controles a implementar.

Definición de controles: Se decide implementar el doble factor de autenticación para fortalecer el acceso de los usuarios. Además, se utilizará un algoritmo de cifrado de datos, cuyas llaves pública y privada serán firmadas por una entidad confiable. La llave pública será custodiada en el servicio de secretos de AWS para garantizar su integridad y disponibilidad. Finalmente, se establecerá la validación rigurosa de todas las entradas de datos para prevenir ataques como inyecciones o manipulaciones maliciosas.

Verificación continua: Pruebas constantes de penetración, revisión de código estático en cada commit que se realice el repositorio y para este caso se utilizara SonarQube junto a Pipelines para automatizar su ejecución, así como también se simularan ataques.

Este enfoque nos permitira anticiparnos a los problemas antes de que ocurran, y construir una aplicación que no solo funcione, sino que sea resistente y confiable.

# data[].attributes.attachment_link.title
¿En qué consiste el modelamiento de amenazas? ¡AntiFraude te enseña!

# data[].attributes.body
La seguridad debe estar presente desde el diseño hasta la ejecución.

Importante utilizar procesos estandarizados, componentes seguros y técnicas de validación permite construir software confiable, resistente y preparado para enfrentar amenazas reales.

Garantizar el uso de librerías confiables y que estén libres de vulnerabilidades.

Importante conocer casos de éxito de otros proyectos donde han utilizado desarrollo de software seguros desde etapas tempranas.

# data[].attributes.wish_content.attachment_props.alternative_text
conclusiones desarrollo e sotfware seguro