Well, I see threat coming from three sources as per the original definition; human, natural, and environmental. I try to keep it is as simple as possible to help break down risk to manageable components.
While I
can understand the issue with something like SQL injection, I
would see, even as a developer myself, SQL Injection as an attack
vector or tactic (i.e., something a human would use to exploit a system
that is vulnerable to SQL injection). Ultimately the source would
still be human, SQL injections don't just happen, someone triggers them.
Also, I would say it, in itself, is not a vulnerability. It becomes one when the
system being attacked isn't doing something like input validation that
checks for SQL injection.
When doing threat modeling or risk
assessments, I always try to break things down to their fundamental parts
in order to help people make a risk based decision on determining the appropriate
controls and where to apply them.
As I was working through the definitions I was thinking that a separate one would be needed for attack vector. Something like:
Attack Vector: A tactic used or triggered by a threat that exploits a known or potential vulnerability.
So, if we didn't want to leave out a "bridge" we could change or add the term Threat Model with the same or similar definition.
Jason:cause harm to an information asset
Also,
I would be hesitant in constricting it in this way, because some events
don't actually cause any harm nor are restricted to information assets. For example, war-driving and subsequently using an open access point to access the Internet is a form of "digital trespassing". Also, some events cause performance issue, like sucking up someone's WiFi bandwidth, which can be controlled/prevented through security controls.
Therefore, the impact (harmful or otherwise) needs to be determine as part of the entire risk profile. This is why I included likelihood (potential) and impact (harm, outage, performance, etc.) as part of the Risk definition.