Un árbol de ataque y un árbol de amenaza son lo mismo. En un modelo de amenaza de aplicación tradicional, comienza con el componente que está creando (ya sea la aplicación completa, un componente o función, un flujo de datos, etc.) y enumera las amenazas potenciales para ese componente.
Cuando estás construyendo un árbol de ataque, el desarrollo se invierte. Comienza con el objetivo final del atacante, y luego enumeras las posibles formas de alcanzar el objetivo final, y solo entonces miras la aplicación para encontrar lugares donde pueda ser vulnerable a los vectores que has identificado.
Como Adam Shostack mencionó en su respuesta , los árboles de ataque generalmente son más adecuados para los practicantes más avanzados, y generalmente como complemento a los modelos tradicionales de amenazas, no como un reemplazo para ellos.
Ideológicamente, los árboles de ataque son más un enfoque centrado en el atacante del estilo del equipo rojo, que puede proporcionar información adicional útil.