Type 1 attacks are easier to defend against — reduce tool permissions. Type 2 attacks are harder — you need to understand sequences of calls, not just individual calls. Most mature deployments focus on Type 1 and underestimate Type 2.
Real attacks often combine both: an over-privileged tool is chained with another tool to create a path the developer never considered.