24
Developing Software with Security in Mind Scott Blomquist CTO, Vidoop

Developing Software with Security in Mind

  • Upload
    sblom

  • View
    520

  • Download
    1

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Developing Software with Security in Mind

Developing Software with Security in Mind

Scott BlomquistCTO, Vidoop

Page 2: Developing Software with Security in Mind

FormatThis session is:• 10 useful rules for developing with security in mind• Not just mine: feel free to interrupt at any time

This session isn't:• A talk about specific security pitfalls, development

techniques, etc.

Page 3: Developing Software with Security in Mind

Rule #11.Learn about security or it will teach you.

Page 4: Developing Software with Security in Mind

How my security education beganJuly 2001: Code Red slows corporate networks to a crawl September 2001: Nimda does it again February/March 2002: Windows Security Push January 2003: This time it's Slammer Summer 2003: Work begins on "Springboard" August 2003: Blaster terrorizes the world

Page 5: Developing Software with Security in Mind

Rule #21.Learn about security or it will teach you.2.Security knowledge goes obsolete quickly.

Page 6: Developing Software with Security in Mind

Security trendsTools, languages, development practices get better• Static analysis tools• Safer versions of C run-time functions• Input fuzzing tools• Stack attack detection

 So do the badguys• Tools advances may help them, too• New techniques are discovered all the time

 ALL: favorite examples of either of these?

Page 7: Developing Software with Security in Mind

Rule #31.Learn about security or it will teach you.2.Security knowledge goes obsolete quickly.3.Your team should have a security geek (or more).

Page 8: Developing Software with Security in Mind

Passions get the best attention• Security geek doesn't have to be a full-time job.• You might already work with one (or might be one).• To get started, you just have to make it a point to read about

and talk about security.• With luck, it will just "fit" for someone.

Page 9: Developing Software with Security in Mind

Rule #41.Learn about security or it will teach you.2.Security knowledge goes obsolete quickly.3.Your team should have a security geek (or more).4.Befriend the security researchers in your field.

Page 10: Developing Software with Security in Mind

Security researchers: symbiotic parasites• We have great local resources here in Tulsa.• Spend time poking holes in your project over coffee or beer.• Suggest exciting research projects.• Make sure they know how to reach you if they have an

interesting thought. • Despite how bad it feels when a flaw in your project gets

published, you want them to find the flaw.

Page 11: Developing Software with Security in Mind

Rule #51.Learn about security or it will teach you.2.Security knowledge goes obsolete quickly.3.Your team should have a security geek (or more).4.Befriend the security researchers in your field.5.Despite knowledge, you will ship security bugs.

Page 12: Developing Software with Security in Mind

Software is never defect-free• No one would claim to be unbreakable (okay, except Oracle)• But many projects sure act like they are.

Page 13: Developing Software with Security in Mind

Rule #61.Learn about security or it will teach you.2.Security knowledge goes obsolete quickly.3.Your team should have a security geek (or more).4.Befriend the security researchers in your field.5.Despite knowledge, you will ship security bugs.6.Have security response plans in place.

Page 14: Developing Software with Security in Mind

Emergency response plans

• How to know when to respondo Web products and boxed products are different.

• How to disseminate the responseo Everyone needs an update process.o Sometimes you need damage control levers, too.

Page 15: Developing Software with Security in Mind

Rue #71.Learn about security or it will teach you.2.Security knowledge goes obsolete quickly.3.Your team should have a security geek (or more).4.Befriend the security researchers in your field.5.Despite knowledge, you will ship security bugs.6.Have security response plans in place.7.Security and usability will always be in tension.

Page 16: Developing Software with Security in Mind

Secrity vs. Usability

"The most secure computer in the world is in a concrete and steel vault, protected by armed guards, and not plugged in to the network or even power. But it's not very useful, either."--Various

Page 17: Developing Software with Security in Mind

Rule #81.Learn about security or it will teach you.2.Security knowledge goes obsolete quickly.3.Your team should have a security geek (or more).4.Befriend the security researchers in your field.5.Despite knowledge, you will ship security bugs.6.Have security response plans in place.7.Security and usability will always be in tension.8.The perfect is the enemy of the good.

Page 18: Developing Software with Security in Mind

A case study: OpenID

First, what is OpenID: OpenID According to Dave • Many OpenID objections center around how it doesn't solve

as many problems as pick-your-favorite-heavy-crypto-based-auth-protocol.

• Despite those strong objections, OpenID is poised to be an Internet phenomenon.

Page 19: Developing Software with Security in Mind

Rule #91.Learn about security or it will teach you.2.Security knowledge goes obsolete quickly.3.Your team should have a security geek (or more).4.Befriend the security researchers in your field.5.Despite knowledge, you will ship security bugs.6.Have security response plans in place.7.Security and usability will always be in tension.8.The perfect is the enemy of the good.9.Have open conversations about security.

Page 20: Developing Software with Security in Mind

Open conversation

• You want to know at least as much about your security as everyone else. 

• Sometimes conversations will be uncomfortable, but you have to learn and your users have to be reassured about their future with your software.

• Who to talk to:o Userso Researchers

Page 21: Developing Software with Security in Mind

Rule #101.Learn about security or it will teach you.2.Security knowledge goes obsolete quickly.3.Your team should have a security geek (or more).4.Befriend the security researchers in your field.5.Despite knowledge, you will ship security bugs.6.Have security response plans in place.7.Security and usability will always be in tension.8.The perfect is the enemy of the good.9.Have open conversations about security.10.Sometimes there is no rule #10.

Page 22: Developing Software with Security in Mind

No rule #10

• Security is unpredictable.• Be ready for anything.

Page 23: Developing Software with Security in Mind

Additional Resources

More information about Microsoft's security turning point• Inside Windows XP SP2• Inside the Windows Security Push

Page 24: Developing Software with Security in Mind

Questions?

Slides available at http://Scott.Blomqui.st