WebApp Sec mailing list archives
RE: one use for taxonomies
From: "Mark Curphey" <mark () curphey com>
Date: Sat, 16 Jul 2005 15:42:36 -0700
Isn't that called a pattern ? ;-) -----Original Message----- From: Frank O'Dwyer [mailto:fod () littlecatZ com] Sent: Saturday, July 16, 2005 12:11 AM To: Mark Curphey Cc: 'Brenda'; 'Andrew van der Stock'; webappsec () securityfocus com Subject: Re: one use for taxonomies Just to clarify...by 'same old same old'...I don't mean 'same old crap'. I mean that if you take 1,000 applications and separate them into those that are 'good' in terms of security and those that are bad (which will be most of them), the good ones will be remarkably similar in what they do. The bad ones will have much more variety, but still be remarkably similar in what they should have done :-) When it comes to implementing good countermeasures every time - and the good countermeasures do not vary on a weekly basis - nothing insane about that - you don't *want* different results. Cheers, Frank Mark Curphey wrote:
The main aim of the www.threatsandcountermeasures.com web site is to build such a community knowledge base of threats and countermeasures that is technology independent. As a side note the clinical definition of insanity is to do the same thing repeatedlty and expect different results ;-) -----Original Message----- From: Frank O'Dwyer [mailto:fod () littlecatZ com] Sent: Friday, July 15, 2005 3:34 PM To: Brenda Cc: Andrew van der Stock; webappsec () securityfocus com Subject: Re: one use for taxonomies Brenda wrote:Andrew, I completely agree that the point of threat modeling is to analyze business risks, and I also agree that as currently formulated, a threat model with lots of technical details is difficult to use for business risk analysis.I'd like to suggest a different and possibly heretical view, which is that maybe you don't need an (explicit) threat model at all. My reason for saying that is for any of the formal analysis I've seen, it doesn't lead to a different outcome, compared to much simpler and less formal approaches (it depends on the approach, of course). If you step back and look at the ultimate goal, it is to implement a system [or a system dev lifecycle] with effective countermeasures (technical and non-technical). The question is, which countermeasures will those be? Most formal analysis tends to consider that question along the following lines (hugely simplified): 1. Consider business impact 2. Consider attacks 3. Consider vulnerabilities 4. Consider likelihood 5. Build a threat model 6. Prune attack tree 7. Generate countermeasures to block remaining attacks 8. Implement the same old same old, the same stuff you would have implemented if you hadn't done any of that. Basically, you could just proceed direct to step 8 (I'm exaggerating, but not all that much). The thing is if the sort of question you will ultimately answer is something like "gee, I wonder which transport security protocol we will use
THIS time.
Will it be SSL/TLS, or, um...I'm sure there was another one" - well, why not just cut to the chase? Or what about authentication, which of the 2 and a half practical options will you use there? Are buffer overflows still a problem, or has that changed since the last time we built a threat model? Hmm, might we benefit from a firewall? Input validation? Audit trail?
Encryption?
And so on. You are basically choosing between well known security design patterns, or "security's greatest hits", and actually there aren't all that many of those (certainly a great many less than there are detailed attacks and vulnerabilities). (I'm not saying threat models aren't ever useful, by the way, just not necessarily for the problem they are put forward for. One area where I think they could be useful is arriving at some formal justification of which countermeasures are good (for example in the sense of reduction of attack surface), although in many cases we already have a reasonable hunch about the answer there too, still a formal justification would be nice. I'm guessing you don't need an actual app to analyse there, either. You could perhaps generate trees of attacks at random, and see which countermeasures work best). I guess what I am really saying here is that since you generally want the sort of countermeasures that operate at a high level in the tree, and therefore counter everything below, plus other things as yet unheard of, you don't need to build a deep tree. Or at least that type of chunked up , fuzzy model will get you most of the way there. The rest,
as you say, is an art.
Actually I can think of very few factors that DO lead a variation in outcome. Off the top of my head, these are: 1. The overall worst case business impacts for confidentiality, integrity, and availabilty (for those who wish to focus more expensive and effective controls on potential high value losses) 2. The technology/architecture you use (affects how you implement the same old countermeasures, also not using a technology means you can discard threats - and hence countermeasures - that are only relevant for that technology) 3. The environment your app will deploy in (this is another shorthand for a very chunked up threat model - different environments have different threats, so not being in a particular environment means not having to care about a basket of threats peculiar to that enviroment, and so the associated countermeasures aren't relevant either) 4. The infrastructure you use (infrastructure may implement countermeasures so you don't need to) 5. A handful of well-aimed questions which may indicate you need less or more countermeasures One way to implement that whole process is to start with the complete set of countermeasures you can ever imagine being useful, and systematically delete those that be easily justified as not being relevant to the case in hand, or which don't have the right cost/benefit. And actually a lot of that can be automated too. I've got some code that does a proof of concept of that, which I intend to release (GPL) as soon as I get a minute to do so. It would be interesting to see if your code and mine could be made to use the same knowledge base of countermeasures. It is all XML based so maybe some kind
of mapping is possible.
Cheers, Frank. [...much good stuff deleted ...]
Current thread:
- one use for taxonomies Brenda (Jul 14)
- Re: one use for taxonomies Andrew van der Stock (Jul 14)
- Re: one use for taxonomies Brenda (Jul 15)
- Re: one use for taxonomies Frank O'Dwyer (Jul 15)
- RE: one use for taxonomies Mark Curphey (Jul 15)
- Re: one use for taxonomies Frank O'Dwyer (Jul 16)
- RE: one use for taxonomies Mark Curphey (Jul 16)
- RE: one use for taxonomies Mark Curphey (Jul 16)
- Re: one use for taxonomies Brenda (Jul 15)
- Re: one use for taxonomies Zhiguly (Jul 16)
- Re: one use for taxonomies Frank O'Dwyer (Jul 16)
- Re: one use for taxonomies Andrew van der Stock (Jul 14)
- Re: one use for taxonomies Paul B. Saitta (Jul 18)
- Re: @CHECK++ Re: one use for taxonomies Dennis W. Kennedy (Jul 18)
- Re: one use for taxonomies Frank O'Dwyer (Jul 18)