Clarity, Technology, and Solving Problems | PracticeThis.com
WP7 App with Key Windows Azure resources – Slides, Videos, How-To’s, and T-shooting – for quick consumption on the go.
LinkedIn
Security reviews are a respected methodology. People know about them, and probably use them semi-regularly. Ask anyone if security reviews are important, and they would all say yes. Ask them if they do it regularly, and most would say no.
Related Materials
This post discusses the obstacles to implementing security reviews and the secrets to holding effective and successful regular security reviews.
Suppose a large enterprise, Contoso Banking, is building its next generation Internet facing web site. Who’s involved and what motivates them?
Now, who cares about security of the project?
Common sense tells us security is the domain of the security guy’s, say, the Chief Security Officer.
Consider the following (not uncommon) scenario. The Chief Security Officer tells the team that the system needs to support two factor authentication due to regulatory compliance. That would usually result into the following reactions:
Project sponsor will need to tell the customers that web access won’t be as smooth as planned, since they will need to carry smart cards. End users usually get upset with such news. So the project sponsor is unhappy.
Project manager understands that with such requirement she will never ship it neither on budget nor on time.
Development manager freaks out imagining how many more bugs this requirement brings in.
Development team lead after quick search on the web finds designs that require special skills, tools, and methodologies. More sleepless nights ahead.
Developer never used crypto in any of her projects and now she needs serious ramp up on this cryptic topic. She is seriously considering moving on to a better project.
Let’s ask who cares about security once more? All of the project participants suddenly care, but most of them are not pleased with the security focus. Working with my customers I found a proven pattern to get everyone onboard with security. The pattern can be boiled down to the following principles:
This might sound funny but what I witness in the field is that people speak different languages, they might all speak their native English, Hebrew, or Russian, but in the end, even when communicating with the same language, no one understands each other. Consider another example, the unexpected security defect.
Suppose the security tester proudly presents a Cross Site Scripting vulnerability to senior project stakeholders. It goes like this:
- “I found Cross Site Scripting vulnerability in your web site”, - Security Tester happily announces.
- “So?...”, – Project Sponsor asks honestly.
- “So?!?!, Let me repeat what I just said – I found Cross Site Scripting vulnerability in OUR web site”, - Security Tester repeats honestly confused.
- “So?.....”, - Project Sponsor asks even more confused.
And it goes on and on. Until Project Sponsor asks simple question about the subject he really cares
- “How are the end users affected?”.
- “Their identities can be stolen and abused” – Security Tester explains with huge relief.
- “Oh my!!”, - now Project Sponsor understands the severity of the issue, then he continues – “What should be done to mitigate this?”
- “You need rewrite all web pages, with the right encoding, depending on where the data appears in the HTML output” – answers the Security Tester.
The Project Manager comes to life, he understands that he is not going to hit the deadline. He looks at Development Lead asking him silently with his rolling eyes:
- “How long will it take?”
- “Well.. we need to extend the schedule by… 3 months as our developers are not that proficient with such code”, - the Development Lead answers.
Everyone is upset. Security Tester comes to the rescue:
- “Let me suggest the following. You run this simple search and find all occurrences of the issue, and use a common library to make the encoding a simple one line fix in each case”
Project Manager sees the light in the end of the tunnel. In the end he might hit the deadline.
Speak the language that people understand.
"No matter how it looks at first, it's always a people problem." - The Second Law Of Consulting by Gerald M. Weinberg
Security means different things to different roles. Understand motivations and show what’s in it for me to each one to make everyone buy in.
Consistency is the foundation of effectiveness, which will be discussed later on. Frames of core principles help a lot to be consistent. I found Security Frame very useful. It guides me and the rest of the involved parties, Project Sponsor, Project Manager, Development Manager, Development Team Lead, Developer. It creates a common language that everyone understands. Notice how the Security Frame can be used either for Threats that are relevant to Project Sponsor or for Countermeasures that are relevant to Development Force and more Technical audience.
If you speak common a language, you get everyone to buy in. It is show time, time to deliver.
The answer is simple; you follow proven patterns and practices. Fortunately, patterns & practices PAG team, led by J.D. Meier, has built fantastic tool, Guidance Explorer that maintains more than 3,500 easily consumable items on security, performance, and Visual Studio topics. J.D. also maintains his SecurityGuidanceShare.com wiki where he chunks the guidance in more consumable way. Guidance Explorer allows quick searches, direct access to the information according to Security Frame. But two features that bring me effectiveness is its ability to create Word documents and ability to be consumed via any RSS reader.
Apply proven practices. Avoid approaches that do not work. Do more in less time.
The highest return on investment is achieved when security activities match specific phase of the development lifecycle. These activities must produce results that are relevant to key personas of the phase.
The following table summarizes personas and focused deliverables according to development lifecycle:
Use Guidance Explorer to quickly build guidance and inspection documents.
Bookmark ASP.NET 2.0 FAQs to address security question during the development
Conduct effective Security Code Review asking questions from Security Question List: ASP.NET 2.0
Ideally all these activities should be conducted throughout the whole development lifecycle. In the real world projects this happens rarely. Nevertheless, effective security inspection techniques prove that security bar can be constantly raised. One thing to keep in mind that security bugs can be revealed at any development phase but the cost of fixture climbs exponentially as the projects approaches production environment. It is all about risk management.
This post is made with PracticeThis.com plugin for Windows Live Writer
So, you can remediate security projects, even when complicated by involvement of numerous stakeholders, by re-framing scenarios to get the right folks on board, by establishing a common framework for speaking, & by leveraging existing IP.
I love the personal anecdotes--this makes the theoretical real life, eh?
Thanks, Jimmy!
Here is another "real problem" I solved yesterday.
There was a serious perf problem with one project I am involved. I was thrown to solve it. Instead of digging into tech and optimizing it I starte to ask a lot of question related to dev processes. Long story short. There was just misunderstanding between the team - the problem actually did not exist.
How about that?
"No matter how it looks at first, it's always a people problem."
- The Second Law Of Consulting by Gerald M. Weinberg
http://blogs.msdn.com/alikl/archive/2008/11/12/three-laws-of-consulting-by-gerald-m-weinberg.aspx
Hey Alik,
Very interesting blog posting and I’ve witnessed aspects of what you discussed in the field (both at MSFT and Impacta). I especially like your point about speaking the same language.
In your blog you cite lots of “business values” (what’s in for the business factor) or incentives for doing security reviews, I would argue that to get everyone on board you also need to consider “personal values” (the what’s in it for me factor). What personal value do they see in the security review? Everyone has a job (business value) AND everyone as an agenda (personal value). How does the security review appeal to both? Depending on who you’re talking to, the answer to this will change.
Keep up the great posts!
--
Kevin Lam
http://www.impactalabs.com
http://blog.impactalabs.com
http://www.buildingsecurecode.com
Kevin, that is great point to add - personal values. No doubt at all, really good one.
Thanks for adding it.
It only proves once more that the second law of consulting works - "No matter how it looks at first, it's always a people problem."
;)
You've been kicked (a good thing) - Trackback from DotNetKicks.com
Very interesting and helpful post.
Glad to hear it is helpful, Shai!
What about the CIO involvment? He has a curtail part in Security in his IT Dep.
Michael, great point!
From my experience CIO rarely exposed to low level security reviews in the applications. CIO is usually interested in overall IT picture and security is one part among many others. What I witnessed observing CIO's is that CIO is responsible to business alignment of IT and what he cares is reducing the risks and costs related to IT. If you can show how you can effectively and efficiently reduce risks while being aligned to the whole IT strategy aligned to the business you might hit the sweet spot speaking to CIO (given you get the chance to)
What's your experience with CIO's and their view on security reviews?