martes, 3 de febrero de 2015

Aplicaciones seguras, STRIDE y empezando a gatear

Aplicaciones seguras, STRIDE y empezando a gatear
Cuando comienzas a estudiar sobre desarrollo seguro te encuentras con varios conceptos y problemas que te ocupan muchas de las primeras horas de estudio sobre el tema.
El primer concepto que comienza a estar de moda es el “Modelado de Amenazas” un mundo que a mí me apasiona, pero plantea muchos problemas al inicio.
Una de esas problemáticas es:
Vale, ya tengo mi modelo de la aplicación (normalmente DFDs) ¿y ahora cómo saco las posibles vulnerabilidades? ¿Cuáles hay?
Entonces es cuando cunde el pánico, tú conoces muchas técnicas para poder amenazar el software (hay que pensar como los malos) pero seguro que existen muchísimas más que desconoces o no controlas, entonces te das cuenta de que acabas de empezar y ya tenemos un problema.
En ese momento es cuando Microsoft propone STRIDE.
STRIDE es un acrónimo de las cinco categorías que propone Microsoft para agrupar las diferentes amenazas de software.
STRIDE significa:

- Spoofing:
-Trampering.
- Repudation.
- Information Disclosure.
- Denial of Service.
-Elevation of Priviledge.


Lo que explicado con mayor detalle sería:
 -          S - Suplantación (Spoofing) Un ataque de suplantación se produce cuando un atacante se hace pasar por alguien que no es.

-          T - Manipulación (Tampering)La manipulación ataques se producen cuando el atacante modifica los datos en tránsito.

-          R - Repudio (Repudiation)
Negar la autoría de una acción o evento en los sistemas de información.

-          I - Revelación de información (Information Disclosure)
Cuando la aplicación revela información sensible de forma no controlada debido a un error en la programación o un fallo en la configuración del servicio o aplicación.

-          D - Denegación de servicio (Denial of Service)
Introducción de información maliciosa que logre la saturación o el bloqueo de la aplicación y de los servicios que esta proporciona generando como consecuencia la caída de la aplicación o el sistema informático. 

-          E Elevación de privilegios (Elevation of Privilege) Una elevación de privilegios se produce cuando un atacante tiene la capacidad para obtener privilegios que normalmente no tendrían. Esto se logra mediante la alteración o ataque a la aplicación obteniendo unos niveles de acceso mayores de los inicialmente otorgados, saltándose así la política de control de acceso predefinida.

Agrupar en seis categorías todas las tipologías de ataques es agrupar “mucha maldad” en pocos conceptos, pero como se suele decir “a grandes males grandes remedios” y Microsoft nos da para las seis grandes categorías seis grandes remedios:

Ya entraremos en más detalle sobre cómo ir mitigando estos problemas, por el momento sigamos con STRIDE y nuestros primeros pasos asegurando nuestro software.
Ya tenemos seis categorías de ataques pero seguramente sigamos en blanco ante el modelo de nuestra aplicación, pues no hay que preocuparse porque Microsoft (que son unos cachondos mentales) nos regala un juego de cartas descargable con el que podrás ir jugando y detectando posibles amenazas en tu modelo.
Puede parecer una coña, pensaras que me tomado un par de cervecitas pero no, para ir comenzando está muy muy bien.  Vas viendo paso a paso como ir descubriendo y que posible amenazas hay dentro de esos grupos.
Ya tenemos las categorías y algunas subcategorías en forma de juego, ahora verás que es mucho trabajo. El poder ir revisando absolutamente todo en todo tipo de aplicaciones supone un esfuerzo considerable.
Para poder minimizar el esfuerzo maximizando los resultados Microsoft nos expone, a través de su dilatada experiencia, unos consejos para saber aplicar STRIDE. No todas las vulnerabilidades son aplicables o tienen la misma importancia en todos los tipos de proyectos, por lo que resume su experiencia en un breve cuadro:
Esto va a optimizar mucho los tiempos, solo los Procesos necesitan revisión completa de todas las tipologías de STRIDE pero los demás no lo necesitan y puedes centrar tus esfuerzos en tipologías más concretas.
Ya entraremos en más detalle sobre modelado de amenazas más adelante, pero para quienes quieran ir profundizando más en esto os dejo algunas referencias:
http://www.amazon.es/Threat-Modeling-Designing-Adam-Shostack/dp/1118809998 << De este libro hablaremos con más detalle en otra ocasión.  Aún lo estoy terminando.

PD: No, no me ha pagado Microsoft ni tengo nada que ver con ellos ;)

No hay comentarios:

Publicar un comentario

Esperando tu comentario...