Metodologías de Desarrollo de Software y técnicas de testeo

Metodologías

STRIDE

DREAD

SREP

Es un metodo basado en activos y orientado a riesgos, que permite el establecimiento de requisitos de seguridad durante el desarrollo de las aplicaciones

Es una técnica de análisis de amenazas utilizada en el campo de la seguridad de la información y el desarrollo de software

Las letras en STRIDE representan 6 categorías de amenazas comunes:

click to edit

S-SPOOFING

T-TAMPERING

R-REPUDIATION

I-INFORMATION DISCLOSURE

D-DENIAL OF SERVICE

E-ELEVATION OF PRIVILIGE

Esta amenaza se refiere a la posibilidad de que un atacante pueda hacerse pasar por otra entidad, como un usuario legítimo o un sistema, con el fin de obtener acceso no autorizado.

Implica la posibilidad de que los datos o el código sean modificados o manipulados de manera no autorizada.

Esta amenaza se relaciona con la capacidad de negar o disputar acciones realizadas por una entidad.

Se refiere a la amenaza de que la información confidencial sea expuesta o divulgada a personas no autorizadas.

Esta amenaza implica intentos de interrumpir o degradar los servicios o recursos, haciendo que un sistema no esté disponible para los usuarios legítimos.

Esta amenaza se refiere a la posibilidad de que un atacante pueda aumentar sus propios privilegios dentro de un sistema o aplicación.

Es una técnica utilizada para evaluar y calificar la gravedad de las vulnerabilidades de seguridad en un sistema o aplicación de software

Cada letra en DREAD representa una categoría específica que se evalúa en una escala de 0 a 10, donde 0 es la calificación más baja y 10 la más alta.

E-EXPLOITABILITY

A-AFFECTED USERS

R-REPRODUCIBILITY

D-DAMAGE

D-DISCOVERABILITY

Esta categoría evalúa el potencial daño que podría causar la explotación de la vulnerabilidad.

Evalúa cuán fácil es para un atacante reproducir la explotación de la vulnerabilidad.

Mide cuán difícil o fácil es para un atacante aprovechar la vulnerabilidad.

Determina cuántos usuarios o sistemas se ven afectados por la vulnerabilidad.

Evalúa cuán fácil es descubrir la vulnerabilidad.

Técnica

Test de mutación de datos.

Los test de mutación son pruebas para medir la calidad del código a largo plazo. Estas pruebas consisten en cambiar (mutar) ciertos puntos del código fuente y ver si se detectan estos cambios (errores) mediante los test unitarios.


El proceso general del test de mutación de datos se puede resumir en los siguientes pasos:

Ejecución de casos de prueba

Detección de mutantes no asesinados

Creación de mutantes

Evaluación de la efectividad de las pruebas

Se generan versiones modificadas del código fuente original, conocidas como mutantes, aplicando una serie de operadores de mutación que introducen errores comunes en el código.

Los casos de prueba existentes se ejecutan en el código original y en cada uno de los mutantes generados.

Se considera que un mutante ha sobrevivido si ninguno de los casos de prueba puede detectar la diferencia entre el comportamiento del mutante y el comportamiento del programa original.

La efectividad de las pruebas se evalúa según la capacidad de los casos de prueba para "matar" o detectar los mutantes generados.

Programación orientada a aspectos

Objetivo

El principal objetivo de la POA es la separación de las funcionalidades dentro del sistema

Componentes principales

Puntos de corte

Consejos

Aspectos

Funcionamiento

Definición de puntos de corte para la ejecución del programa.

Aplicación de consejos en los puntos de corte identificados.

Identificación de preocupaciones transversales.

Beneficios

Mayor legibilidad del código al separar preocupaciones.

Capacidad de realizar cambios independientes en los aspectos del sistema.

Mejor modularidad y reutilización del código.

Referencias

Funcionalidades propias de cada modelo.

Funcionalidades comunes utilizadas a lo largo de la aplicación.