As 44Con 2012 starts to gain momentum (we'll be there again this time around) I was perusing some of the talks from last year's event...
It was a great event with some great presentations, including (if I may say) our own Ian deVilliers' *Security Application Proxy Pwnage*. Another presentation that caught my attention was Haroon Meer's *Penetration Testing considered harmful today*. In this presentation Haroon outlines concerns he has with Penetration Testing and suggests some changes that could be made to the way we test in order to improve the results we get. As you may know a core part of SensePost's business, and my career for almost 13 years, has been security testing, and so I followed this talk quite closely. The raises some interesting ideas and I felt I'd like to comment on some of the points he was making.
As I understood it, the talk's hypothesis could be (over) simplified as follows:
Next, I'd like to consider the assertion that penetration testing or even security assessment is presented as the "solution" to the security problem. While it's true that many companies do employ regular testing, amongst our customers it's most often used as a part of a broader strategy, to achieve a specific purpose. Security Assessment is about learning. Through regular testing, the tester, the assessment team and the customer incrementally understand threats and defenses better. Assumptions and assertions are tested and impacts are demonstrated. To me the talk's point is like saying that cholesterol testing is being presented as a solution to heart attacks. This seems untrue. Medical testing for a specific condition helps us gauge the likelihood of someone falling victim to a disease. Having understood this, we can apply treatments, change behavior or accept the odds and carry on. Where we have made changes, further testing helps us gauge whether those changes were successful or not. In the same way, security testing delivers a data point that can be used as part of a general security management process. I don't believe many people are presenting testing as the 'solution' to the security problem.
It is fair to say that the entire process within which security testing functions is not having the desired effect; Hence the talk's reference to a "security apocalypse". The failure of security testers to communicate the severity of the situation in language that business can understand surely plays a role here. However, it's not clear to me that the core of this problem lies with the testing component.
A significant, and interesting component of the talk's thesis has to do with the role of "0-day" in security and testing. He rightly points out that even a single 0-day in the hands of an attacker can completely change the result of the test and therefore the situation for the attacker. He suggests in his talk that the testing teams who do have 0-day are inclined to over-emphasise those that they have, whilst those who don't have tend to underemphasize or ignore their impact completely. Reading a bit into what he was saying, you can see the 0-day as a joker in a game of cards. You can play a great game with a great hand but if your opponent has a joker he's going to smoke you every time. In this the assertion is completely true. The talk goes on to suggest that testers should be granted "0-day cards", which they can "play" from time to time to be granted access to a particular system and thereby to illustrate more realistically the impact a 0-day can have. I like this idea very much and I'd like to investigate incorporating it into the penetration testing phase for some of our own assessments.
What I struggle to understand however, is why the talk emphasizes the particular 'joker' over a number of others that seems apparent to me. For example, why not have a "malicious system administrator card", a "spear phishing card", a "backdoor in OTS software" card or a "compromise of upstream provider" card? As the 'compromise' of major UK sites like the Register and the Daily Telegraph illustrate there are many factors that could significantly alter the result of an attack but that would typically fall outside the scope of a traditional penetration test. These are attack vectors that fall within the victim's threat model but are often outside of their reasonable control. Their existence is typically not dealt with during penetration testing, or even assessment, but also cannot be ignored. This doesn't doesn't invalidate penetration testing itself, it simply illustrates that testing is not equal to risk management and that risk management also needs to consider factors beyond the client's direct control.
The solution to this conundrum was touched on in the presentation, albeit very briefly, and it's "Threat Modeling". For the last five years I've been arguing that system- or enterprise-wide Threat Modeling presents us with the ability to deal with all these unknown factors (and more) and perform technical testing in a manner that's both broader and more efficient.
The core of the approach I'm proposing is roughly based on the Microsoft methodology and looks as follows:
Threat Modeling makes our testing smarter, broader, more efficient and more relevant and as such is a vital improvement to our risk assessment methodology.
Solving the security problem in total is sadly still going to take a whole lot more work...
so what do we do?
You start by agreeing that what we are currently doing is not working and
you end by suggesting that Threat Modeling is the answer. This perfectly validates what Haroon was saying.
Your argument about cholesterol checks sounds clever at first, but isn't. Do you notice that you don't get companies that specialize just in doing cholesterol checks and then walking away [like most pen-test companies do]. [You can get really good at cholesterol checks before you remember that the original point was to prevent heart attacks]
It's a pretty simple sum. You say Threat Modeling is the solution yet you sell Pen-tests over threat models. As Haroon said: "sell them what they need, not what just what you can"
-pS
What you say is true, and it is a real challenge. However, given a sufficiently good relationship with the client, I still think the Threat Model can bring this problem to light and raise it as one of the enumerated risks, to which a mediation step might be to perform a comprehensive inventory exercise. The point (to me) remains that you're using a structure approach to think widely about the theoretical risks a system or organization faces, and then conducting technical tests (e.g. penetration tests) to understand those risks better.
./charl
Pentesting threat modeling aren't mutually exclusive. In fact, they work very well together. Charl created our threat modeling methodology, and I (Dominic) expanded on it. We have a tool, a workshop (on ours and other methodologies), multiple presentations and have contributed to papers on the topic. It's certainly not something we just talk about, but something we've done a significant amount of work in, and actively sell (I'm doing one such project at the moment).
As for the test walk-away argument. You have another problem of false exclusivity. It's possible for a pentest to be useful, *and* remediation to be useful *and* not have the same company provide both services. Unless you can show why one company *should* provide both, and failing to do so, makes the whole thing pointless, your point won't stand. In fact, there's years of counter examples, which is why audit houses can't implement stuff they audit anymore (ask Enron).
That said, I personally run our consulting division which exists specifically to help customers deal with the bigger problem. This isn't something SP has ignored. The reality however, is that a client needs to implement the changes themselves or it won't stick. Sure we could storm the site, dish out patches, plug into code repos and write fixes, config boxes to be secure, but we aren't in the best position to do that, taking into account business realities, and so we choose to instead advise clients on how best to do that.
P.S. Sorry you felt you needed to use Tor. I love a good debate and would be happy to do it face to face sometime if you're interested ;)
I have to disagree (as usual). There is no separation of duties conflict here.
The role (very simply) of a financial audit is to make sure for the shareholders (stakeholders?) that the people running the company are doing a good job. The accountants prepare the financial statements which essentially say "we are running the company well and it will be a good investment for at least the next year." Their auditors come in and say "yes, we agree." IT Audits are very different. They are more a case of "can we be hacked? And if so, how?" It is done on behalf of the company and not specific
ally the shareholders. The outcome should be a course of action and not a "yes. these guys are doing a good job". Then there is no reason why the company doing the audit can not take it further and say "...we can help close this issue."
The only risk is that the audit firm may overplay some issues in order to get some consulting work. This is not a bad thing because there is no requirement legally to close all the holes and it really comes down to the Security Manager making a good business decision on what course of action to take. He essentially has to earn his position.
LOL. @haroon /busted/ you! ;). A reminder that privacy is a two-way street?
As for your SoD point, I'm not sure I understand you. You're saying we have a disincentive to argue honestly about audit independence (KFC wouldn't want to push cholesterol testing because people would eat less KFC), yet, I'm the one arguing *for* it. So... what are you trying to say, I'm being too honest?