views:

80

answers:

3

DISCLAIMER: At my place of work we are aware that, as none of us are security experts, we can't avoid hiring security consultants to get a true picture of our security status and remedial actions for vulnerabilities. This question is asked in the spirit of trying to be a little less dumb and a bit more aware of the issues.

In my place of work, a small business with a sum total of 7 employees, we need to do some work on reviewing our application for security flaw and vulnerabilities. We have identified two main requirements in a security tester:

  1. They are competent, thorough and know their stuff.
  2. They are able to leave us with a clear idea of the work we need to do to make our security better.

This process will be iterative so we will have a scan, do the remedial work and repeat. This will be a regular occurrence going forward.

The problem we have is: How do we know 1? And, even if we're reasonably sure of 1, how on earth do we proceed to 2?

Our first idea was to do some light security scanning on our code ourselves and see if we could identify any definite issues. Then, if the security consultants we choose identify those issues and a few more we're well on the way to 1 and 2. The only problem is that I've been trawling the interweb for days now looking at OWASP, Metasploit, w3af, burp, wikto, sectools (and Stack Overflow, natch)...

As far as I can tell security software seems to come in two flavours, complex open source security stuff for security experts and expensive complex proprietary security stuff for security experts.

I am not a security expert, I am an intermediate level business systems programmer looking for guidance. Is there no approachable scanner type software or similar which will give me an overview of the state of my codebase? Am I just going to have to take a part time degree in order to understand this stuff at a brass tacks level? Or am I missing something?

A: 

Wow. I wasn't really expecting this little activity.

I may have to alter this answer depending on my experiences but in continuing to wade through the acres of verbiage on my quest for something approachable I happened on a project which has been brought into the OWASP fold:

http://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project

It boasts, and I quote from the project documentation's introduction:

[ZAP] is designed to be used by people with a wide range of security experience and as such is ideal for developers and functional testers who a (sic) new to penetration testing.

EDIT: After having a swift play with ZAP this morning, although I couldn't directly switch on the attack mode on our site right away I can see that the proxy works in a manner very similar to OWASP's Web Scarab (Would link but lack of rep and anti-spam rules prevent this. Web Scarab is more technically oriented, it seems, looking over the feature list Scarab does more stuff, but it doesn't have a pen test vulnerability scanner. I'll update more once I've worked out how to have a go with the vulnerability scanner.

Anyone else who would like to pitch in and have a go would be welcome to do so and comment or answer as well below.

One Monkey
You lost all hope after two hours? Not all SO users live in the same time zone as you do. Give it a day and then start expecting results...
teukkam
Your tone, especially in the first two sentences, is quite off-putting. This is possibly, you know, putting people off.
JUST MY correct OPINION
You're both making a lot of assumptions about my expectations and how long I may *actually* have been using the site despite what my rep says. @JMcO: I guess it must be, because yours is, so who would know better? However, notice that despite the fact I make a point of saying we're not looking for a replacement for security consultancy someone still started their answer with "Well, obviously, the best thing you could do is hire security consultants..." so it might have been obnoxious to start with that, but I wasn't wrong to. Except in the sense that it did no real good.
One Monkey
+1  A: 

If you can afford to hire expert security consultants, then that may be your best bet given that your in-house security skills are low.

If not, there is not escaping the fact that you are going to need to understand more about security, how to identify threats, and how to write tests to test for common security exploits like XSS, SQL injection, CSRF, and so on.

Automated security vulnerability software (static code analysis and runtime vulnerability scanning) are useful, but they are only ever going to be one piece in your overall security approach. Automated tools do not identify all exploits, and they can leave you with a false sense of security, or a huge list of false positives. Without the ability to interpret the output of these tools, you might as well not have them.

One tool I would recommend for external vulnerability scanning is QualysGuard. They have a huge and up to date database of common exploits that they can scan for in public facing web applications, web servers, DNS servers, firewalls, VPN servers etc., and the output of the reports usually leaves you with a very clear idea of what is wrong, and what to do about it. But again, this would only be one part in your overall security approach.

If you want to take a holistic approach to security that covers not only the components in your network, applications, databases, and so on, but also the processes (eg. change management, data retention policy, patching) you may find the PCI-DSS specification to be a useful guide, even if you are not storing credit card numbers.

saille
Ironically it's working with PCI-DSS that is prompting all of this activity. As I said, we are mostly scoping out professionals to do the real heavy lifting we just want to understand more thoroughly the conversations we are having with them. Thanks for the QualysGuard link!
One Monkey
How about a vote for my answer? ;)
saille
I only just got enough rep to upvote but now done!
One Monkey
+1  A: 

I read that you're first interested in hiring someone and knowing they're good. Well, you've got a few options, but the easiest is to talk to someone in the know. I've worked with a few companies, and can tell you that Neohapsis and Matasano are very good (though it'll cost you).

The second option you have is to research the company. Who have they worked with? Can they give you references? What do the references have to say? What vulns has the company published to the world? What was the community response (were they shouted down, was the vuln considered minor, or was it game changing, like the SSL MitM vuln)? Have any of the company's employees talked at a conference? Was it a respected conference? Was the talk considered good by the attendees?

Second, you're interested in understanding the vulnerabilities that are reported to you. A good testing company will (a) give you a document describing what they did and did not do, what vulnerabilities they found, how to reproduce the vulnerabilities, and how they know the vulnerability is valid, and (b) will meet with you (possibly teleconference) to review the vulnerabilities and explain how the vulns work, and (c) will have written into the contract that they will retest once after you fix the vulns to validate that they are truly fixed.

You can also get training for your developers (or hire someone who has a good reputation in the field) so they can understand what's what. SafeLight is a good company. SANS offers good training, too. You can use training tools like OWASP's webgoat, which walks you through common web app vulns. Or you can do some reading - NIST SP 800 is a freely downloadable fantastic intro to computer security concepts, and the Hacking Exposed series do a good job teaching how to do the very basic stuff. After that Microsoft Press offers a great set of books about security and security development lifecycle activities. SafeCode offers some good, short recommendations.

Hope this helps!

atk
It most certainly does help. Thanks, that's awesome.
One Monkey