jueves, 19 de febrero de 2015

Libros sobre desarrollo seguro. Parte II

Threat Modeling. Adam Shostack.
Hace ya unas semanas que traje la primera entrega de loslibros sobre desarrollo seguro y es que no quiero hablaros de cosas que no haya leído bien o que, realmente, no me hayan gustado.
Esta semana ha sido de muchos cambios por lo que tenía este artículo en el tintero de mi cabeza para contaros.
Os traigo un libro que, en mi humilde opinión, es un sobresaliente, toda una referencia en el modelado de amenazas.
"Muy bien, llevas varias semanas con lo mismo, ¿qué es el modelado de amenazas?"
Esta es una pregunta curiosa porque, hay bastante escrito sobre el tema pero muy pocos ejemplos, no obstante este libro sí nos acompaña en el viaje de aprender sobre esta rama de la seguridad que empieza a ser requerida por las empresas.
En primer lugar ¿por qué modelar la seguridad?
Todo el mundo conoce los datos económicos y de imagen que suponen para una empresa u organismos oficial que sus infraestructuras online sean vulneradas, imaginaros que mañana saliera una noticia de que Amazon ha sido pirateada y los datos de millones de usuarios están en el mercado negro. Esto sería espantoso para la empresa tanto en multas, solucionar los problemas como en imagen y deserción de usuarios.
Esa es la razón, se necesitan especialistas y ciclos que aseguren el máximo las aplicaciones de "los malos" y que logren hacer lo más ágil posible el poder subsanar los problemas encontrados.
La gran ventaja del modelado de amenazas es que es una de las medidas que se toman en las fases más tempranas, al no existir aún software el poder prevenir errores y futuros problemas hará que los programadores ya estén al tanto de ellos y no comentan esos fallos. Lo cual asegura el futuro software y abarata costes.
Ya existen ciclos de vida seguros para que las aplicaciones sean lo más fiables desde el punto inicial, desde la formación o toma de requisitos (mucho antes de que se tire la primera línea de código) y es ahí cuando nace la especialización de modelado de amenazas.
¿Cómo se modela una amenaza?
En el libro nos explican que existen tres métodos, de los cuales dos de ellos son los más habituales y eficaces:
- DFD's: Diagrama de Flujos de Datos
- Árboles.
Los DFDs son unos diagramas muy estandarizados, los grandes proyectos suelen tener la figura del arquitecto de software el cual realiza modelados de la aplicación y, entre ellos, suelen existir DFDs. Si tienes la suerte de que en tu proyecto existe eso no dudes en aprovecharlo para poder analizar las amenazas.
Tengo los DFDs de mi ingeniero ¿y ahora qué?
Ahora tienes STRIDE, ya hablamos sobre el en posts anteriores pero recordemos un poco.
STRIDE era un sistema para catalogar las diferentes vulnerabilidades, como ya vimos no solo existe STRIDE sino que además nos facilitaban un juego para poder detectar vulnerabilidades.
Bien, si te descargaste los PDFs de ese juego ahora es cuando vas a poder jugar.
Vete revisando las cartas y tus diagramas, al principio cuesta pero con el tiempo todo se hace más ligero. Pronto aparecerán posibles vulnerabilidades lo cual desembocara en zonas de riesgo, elementos que pueden gustar más a los piratas, y transiciones peligrosas para los datos, zonas de confianza...
Una vez se domina STRIDE ya podríamos pasar al hermano mayor, CAPEC, del que hable la semana pasada. Pero con calma, CAPEC es tan grande que tiende a convertirse en un eterno laberinto.
Ya tengo mis diagramas, he sacado muchas cosillas ¿cómo sigo adelante?
Revísalos de nuevo, las vulnerabilidades encontradas pueden hacer que acaben sugiriendo al Ingeniero de Software cambios sobre el modelo inicial. Míralo una y mil veces, y si tienes compañeros con quien iniciar esta aventura mejor que mejor.
Pero esta maravilla de libro no acaba aquí, los siguientes capítulos son centenares de hojas con grandes explicaciones y buenos consejos para mitigar esas posibles vulnerabilidades.
Conclusión
EL modelado de amenazas es una rama que pocas personas se han atrevido a "tocar" existe buena documentación , como este libro, pero pocos ejemplos por lo que al final cada uno trata de hacer las cosas lo mejor que puede conforme a lo que su empresa tiene ¿y si no tengo ni los DFDs? Hay que tomárselo con calma, en esta temática el estudio y la experiencia son muy importantes.
Recomiendo con fervor este libro, sobre todo las Partes 1 y 2 que comprenden hasta le capítulo 6, si te has enganchado ya el resto los leerás de carrerilla.

lunes, 9 de febrero de 2015

El hermano mayor CAPEC




La semana pasada hablé sobre STRIDE, como ya os comenté se trata de una forma de categorizar las vulnerabilidades y es un concepto muy conocido por los profesionales de la seguridad.
No obstante no es el único, ni el más completo, tiene un hermano mayor que se llama CAPEC.

 
 

CAPEC es un directorio extremadamente completo donde se listan las topologías de ataques repartidos en diferentes categorías y explicando cada uno de esos ataques con un cierto grado de comprensión. 



Estas son las diferentes categorías principales de CAPEC, rápidamente se puede observar que es más completo y rico que STRIDE

CAPEC incluye hasta los ataques de acceso físico o el código malicioso.

Esto no quiere decir que STRIDE sea peor, realmente si te pones estas categorías puedes agruparlas dentro de las seis del anterior pero si es cierto que cuando comienzas adentrarte en el mundo del modelado de amenazas y ya controlas el juego de cartas de Microsoft echas en falta cosillas que CAPEC te puede dar, además CAPEC está muy cerca de poder considerársele un estándar y tiene un mantenimiento, por lo que siempre está creciendo su catálogo.

¿Dónde está el punto negativo?

Esto ya es una visión más subjetiva, CAPEC es todo un catálogo, pero como sucede con los diccionarios solo nos da la definición del concepto. Si tú lees sopa en el diccionario verás su definición pero no la receta de cómo hacer una o detectar cual es una sopa entre cientos de platos diferentes.
Resumiendo, se echa en falta un mayor grado de detalle en los diferentes conceptos.

Este problema creo que lo detectó en su día Leonardo Cavallari Militelli cuando fundó el proyecto ASDR en OWASP, todo un compendio excelente de posibles ataques con información muy detallada de los mismos e incluso ejemplos de código vulnerable/seguro en algunos de sus conceptos.

Toda una maravilla de proyecto que dio lugar a un libro muy extenso (598 páginas) pero que, por desgracia, murió en su versión Alpha hace ya unos años.

La pregunta es… ¿os animáis alguno a retomar el proyecto ASDR?