Search
Lori MacVittie - Two Different Socks
You are here: DevCentral > Weblogs

posted on Tuesday, August 26, 2008 5:01 AM

Don and I were discussing security as a service and, as usual, he spouted off some wisdom in the form of an analogy that was too good to not to share.

When you're walking down the street with your entourage and an angry, I mean really angry, man steps out in front of you with a lead pipe where should your bodyguard be?

doing-it-wrong-ball Yeah, that was my thought, too. He should be in front of me to stop the threat before I have to react. Even though the threat may not hit me if the bodyguard is beside me because he manages to reach out and grab the lead pipe before it lands a blow, I've probably expended unnecessary resources avoiding or flinching or cringing or screaming like a school girl at the action. Resources I didn't need to waste. I might even be (gasp) sweating from the exertion. And what a terrible faux pas for someone who can afford an entourage and a bodyguard to sweat in public.

Basically, if I get hit by that lead pipe or I expend effort avoiding being hit or even momentarily look like something out of an Edvard Munch painting, my bodyguard is fired because he wasn't doing his job. He's doing it wrong.

That's the difference between security as a service when provided by a web application firewall and security as a service when implemented as an internal, software service solution. The WAF is inline, in front of the application, preventing that lead pipe from damaging the application. The application never has to expend unnecessary resources or sweat in public (wasted CPU/memory utilization/connections) when the security is deployed in front of the application.

If you're thinking, "Hey, what's that really gonna do? Waste a couple milliseconds? Pshaw! No one will notice!" then you need to go now and read this post on latency. Really - go now. I'll wait.

Threat defense is necessarily defensive. And the best defense is a good offense; one that is proactive rather than purely reactive. That means acting before the threat truly becomes a threat. Allowing a threat to reach the application before it's been identified and filtered out is certainly better than doing nothing, but stopping it before it gets near the application is even better.

Follow me on Twitter View Lori's profile on SlideShare AddThis Feed Button Bookmark and Share



Feedback

8/26/2008 10:02 AM
Gravatar Lori, what a waste a body guard is during daily life. Really, all bodyguards do is look tough and get you through crowds faster and for that privilege, you pay a lot of money and maintenance. The question I have, though, is will a body guard really goto the mat for you? Unless their life is in danger, what is their motivation to risk this life and limb fending off an attacker. Besides, what happens if a well placed kick in the cahones or kneecap leaves your well paid, beefy body guard, crying like a little girl on the pavement? Now there you are standing unguarded and the target of the next swing from the lead pipe wielding whacko.

A more effective strategy is to learn self-defense so that you don't need a body guard except in special situations. You don't have to be a kung-fu master to fend off an attack, but you do have to know what your capabilities are and how to execute them.

Same is true for application security. While some app security stuff can be done effectively and efficiently in the network, like protocol and schema validation, D/DoS mitigation, etc, the rest is better done in the application where the business logic resides. The app developers know what inputs should be acceptable, what accesses users and roles should have, and what permissions should be required in a multi-step process. The web app firewall doesn't. The web app firewall has to be told what to do with each new app and each change to existing apps. So some one should build in the "security" stuff somewhere in the architecture, and it belongs tightly coupled with the application logic, not divorced from it.
Mike Fratto
8/26/2008 10:58 AM
Gravatar Mike, Mike, Mike... ;-)

"A more effective strategy is to learn self-defense so that you don't need a body guard except in special situations."

Self-defense against which attack? Yesterday's? Today's? Tomorrow's? The analogy isn't perfect, mind you, as application threats require specific countering moves whereas general self-defense can work against many types of attacks. Even so, when you're taught self-defense they specifically teach you "This move works against this type of attack." So you have to not only know the defense, but how to recognize the attack.

"The web app firewall has to be told what to do with each new app and each change to existing apps."

And the application has to change to defend against every new threat. Unlike a WAF, this requires new code, testing, and redeployment. That's a brittle system that incurs additional costs and, unfortunately, the potential for introducing more errors due to changes in code.

And yeah, for us a bodyguard is pretty useless. But for people who might be targets is it? How many threats are stopped simply because those bodyguards exist? And how many would succeed if there was no bodyguard...

Application logic security, yes. General data scrubbing/input validation/etc...? That's not logic, that's essentially schema. Easy for a WAF to handle and leaves the application developer without the burden of needing to learn every attack there is and how to counter it.

There's room for both strategies, and they can complement and augment each other.
Lori MacVittie
8/26/2008 7:46 PM
Gravatar One other thing - the body guard in front and the body guard in back have to know each other and be on the same team - they must have trained together and know their respective roles. Our data center guys tell us that their IDS is frequently tripped by their own customers that figured they didn't need to tell them about an application-level security modification.
Richard Petersen
8/27/2008 4:28 AM
Gravatar @Richard

Great point! I wonder how *that's* going to work out "in the cloud"?

Lori MacVittie

Let Me Know What You Think


Please use the form below if you have any comments, questions, or suggestions.

Title:
 
Name:
 
Email: (so we can show your gravatar)
Website:
Comment: Allowed tags: blockquote, a, strong, em, p, u, strike, super, sub, code
 
Please add 4 and 7 and type the answer here:

Blog Stats

Posts:979
Comments:1685
Stories:0
Trackbacks:583
  

Image Galleries

  

Application Delivery

  

Cloud Computing

  

Random

  

Security

  

Chat Catcher

82,243 Members in 102 Countries and Growing!

Join DevCentral Today!

About DevCentral

DevCentral has been a successful, thriving community for many years. We have always strived to bring you the best technical documentation, discussion forums, blogs, media and much more that we can.

So dive in, get familiar with DevCentral. We hope you like it, we hope it makes your job easier, and lets you get that much more power out of the community. To learn more, make sure to check out the Getting Started section. And if you have any problems, or think something could be easier to use, drop us a line to let us know.

Got It !

We've received your comment and transmitted it directly to DevCentral HQ.

Thanks for taking time to let us know what's on your mind. At DevCentral | Community Matters!

Get In Touch With Us

Have questions, suggestions or just want to get something off your chest?

Use our handy form below to Direct Connect with DevCentral Mission Control.

Send Us Feedback       or