SlideShare una empresa de Scribd logo
1 de 33
Descargar para leer sin conexión
The Most Important
       Thing
How Mozilla Does Security and What You Can Steal




                                       Johnathan Nightingale
                                                Human Shield
                                         Mozilla Corporation
                                       johnath@mozilla.com
So you want to steal a
security architecture...

Do you actually want to get better?
Do you care about responsiveness?
Can you let go of secrecy?
Why steal from us?
We have been at it for a while...
in a phenomenally hostile environment...
with 180 million users...
and we seem to be doing a
lot of things right...
and you can see how
we do it
This Diagram is Stupid
   Metrics

   Design

Implementation

   Testing

  Response
Good Security is a
         Feedback Loop
•   The idea that security can be wholly top-down, with
    discrete one-way steps in an orderly flow from start
    to end is the worst kind of process management
    fiction

•   Your security process should instead ask at every
    step, “How can we make sure problems like this
    never happen again?”
The single most important thing
   you can do is find ways to
capture expensive knowledge so
that you never pay for the same
          lesson twice
Response
A security compromise is the most
    expensive knowledge of all
Response
           Prepare               Where is it written down?


           Triage                Who should help?



                      Schedule




Mitigate                Fix      With tests! (More later)




                       Deploy    This is not the same as shipping! (More later)



      Post-Mortem
Learning from
          Response

• It’s okay for post-mortems to be short
• It’s not okay to skip them
• If you make them into blame-finding, they
  stop being useful (even for blame-finding!)
Ask Questions
• Who did we have to bring in late?
• Why didn’t we notice that we broke the
  internet?
• How could we have dealt better with the
  original reporter?
• What were our bottlenecks?
Write down the answers for next time
              (there’s always a next time)
Testing
Testing is your best defense against
 forgetting, because you will forget
Data Point
We run:

  • 55,000 automated tests
  • in 6 test frameworks
  • on 4 platforms
  • at least 20 times a day
You Already Know Why
• Tests protect your features from security-
  based changes
• Tests protect your security from feature-
  based changes
• Tests capture and transfer expensive
  knowledge
• Tests reduce Bus Factor
Now Make It Happen
• It must be easy to add new tests
 • Yes, this is tricky at first
• Money can be exchanged for goods and
  services!
• Nothing lands without tests
• Nothing. Lands. Without. Tests.
It’s Hard To Test <X>

• This is terrifying
• Steal another framework
• Don’t underestimate manual testing
Power Tools

• Fuzzing
• Penetration Testing
• YMMV
One More Thing
Tests that don’t run are a waste of everyone’s time

        Option: Automatic Gunfire
 Buy a box that sits in a corner and runs tests off
  trunk every hour. Put a gun on it that shoots
             people who break tests.
           Option: Manual Slog
  Make check-in approval contingent on running
            tests, every single time.
Implementation
“We have tests” is not an excuse
   to keep breaking things
Where Mistakes Are
       Made
• Strategic-level mistakes can be made in
  design, but most security bugs come from
  mistakes not caught during implementation
• Your ability to profit from expensive
  knowledge is highest here, but here is
  where you’re probably doing the worst job
No-Brainers

• Static analysis tools
• assert()
• “Public” Betas
 • Alphas?
   • Source?
Tougher
• Non-security bugs point to security bugs
 • Do you have crash reporting?
• No bug happens once
 • Where else are you assuming that a null
    pointer isn’t exploitable?
• Bad patterns - knowledge that you get to
  benefit from more than once.
The Game Changer
The most important change you can make at
   implementation is mandatory review


• Socializes security knowledge by sharing it
• Gatekeeper against “This is little, it’ll be
  fine”
• P(Mistake ) * P(Mistake ) << P(Mistake )
            1             2               1
Design
Every time you eliminate a threat class
        an angel gets its wings
Making Things Right
Make it easier to profit from expensive knowledge

  • Design for re-use
  • Find areas that keep needing “temporary”
     field patches and fix them for good
  • Design for testability
  • Threat modelling
Metrics
    Measure what matters, not what’s
           easy to measure



Now with
  12%
more bits!
Don’t Know What
       Matters?

• Ask sales
• Ask your users
• Don’t ask your competitors, they are
  looking for the easy way out
The #1 Grade-A
Stupidest Metric of All
              Bug Count

• A focus on bug counting creates perverse
  incentives for security
• Developers hide bugs from management
• You hide bugs from customers
   Counting bugs teaches you to bury all the
  expensive knowledge you should be sharing
Think Harder

• Days of exposure
• Average time to deploy fix
 • Better would be avg. time until > 90% of
    users are using the fix
• Customer downtime
Get Creative
• Number of regressions per update cycle
• Number of all nighters
• Start using similar metrics when judging
  your own suppliers & platforms
• Tension between metrics can be a good
  thing, if it pulls people towards awesome
Stupid Criticisms


• This model is totally reactive, not proactive
• This model is steady-state, not innovative
Our tools, let me show
       you them
Tinderbox    http://www.mozilla.org/tinderbox.html

Mochitest    http://developer.mozilla.org/en/docs/Mochitest

Litmus       http://wiki.mozilla.org/Litmus

MXR          http://mxr.mozilla.org/

Dehydra      http://developer.mozilla.org/en/docs/Dehydra

Bug Policy   http://www.mozilla.org/projects/security/security-bugs-policy.html

Bugzilla     https://bugzilla.mozilla.org/

Fuzzers      http://www.squarefree.com/2007/08/02/introducing-jsfunfuzz/
Remember This Slide
• Capture expensive knowledge everywhere,
  so that you don’t have to re-learn it
• Apply that knowledge everywhere
• Nothing lands without tests
• Nothing lands without code review
• Counting bugs is stupid, try harder
Credits

• Developer Kit, Sean Martell, http://developer.mozilla.org/en/docs/Promote_MDC
• Waterfall, dave.hau, http://flickr.com/photos/davehauenstein/271469348/
• Alarm, Shannon K, http://flickr.com/photos/shannonmary/96320881/
• Oops, estherase, http://flickr.com/photos/estherase/24513484/
• Card House, Bah Humbug, http://flickr.com/photos/gibbons/2294375187/
• Bulldozer, Atli Harðarson, http://flickr.com/photos/atlih/2223726160/

Más contenido relacionado

La actualidad más candente

10 Reasons Why You Fix Bugs As Soon As You Find Them
10 Reasons Why You Fix Bugs As Soon As You Find Them10 Reasons Why You Fix Bugs As Soon As You Find Them
10 Reasons Why You Fix Bugs As Soon As You Find Them
Rosie Sherry
 
Bringing Science to Software Development
Bringing Science to Software DevelopmentBringing Science to Software Development
Bringing Science to Software Development
Arty Starr
 
Blend it up - leancamp london presentation
Blend it up - leancamp london presentationBlend it up - leancamp london presentation
Blend it up - leancamp london presentation
Antonio Terreno
 
100rules
100rules100rules
100rules
ancazzz
 

La actualidad más candente (20)

10 Reasons Why You Fix Bugs As Soon As You Find Them
10 Reasons Why You Fix Bugs As Soon As You Find Them10 Reasons Why You Fix Bugs As Soon As You Find Them
10 Reasons Why You Fix Bugs As Soon As You Find Them
 
Perfect Reliability
Perfect ReliabilityPerfect Reliability
Perfect Reliability
 
Testing 2.0
Testing 2.0Testing 2.0
Testing 2.0
 
Cinci ug-january2011-anti-patterns
Cinci ug-january2011-anti-patternsCinci ug-january2011-anti-patterns
Cinci ug-january2011-anti-patterns
 
Root Cause Analysis
Root  Cause  AnalysisRoot  Cause  Analysis
Root Cause Analysis
 
More Aim, Less Blame: How to use postmortems to turn failures into something ...
More Aim, Less Blame: How to use postmortems to turn failures into something ...More Aim, Less Blame: How to use postmortems to turn failures into something ...
More Aim, Less Blame: How to use postmortems to turn failures into something ...
 
Overview of Site Reliability Engineering (SRE) & best practices
Overview of Site Reliability Engineering (SRE) & best practicesOverview of Site Reliability Engineering (SRE) & best practices
Overview of Site Reliability Engineering (SRE) & best practices
 
Swarming in agile teams
Swarming in agile teamsSwarming in agile teams
Swarming in agile teams
 
Is it Security Theater?
Is it Security Theater?Is it Security Theater?
Is it Security Theater?
 
Power Of 30 Seconds: Best Practices for Exceptional Support
Power Of 30 Seconds: Best Practices for Exceptional SupportPower Of 30 Seconds: Best Practices for Exceptional Support
Power Of 30 Seconds: Best Practices for Exceptional Support
 
Brainstorm Solutions with an Affinity Diagram
Brainstorm Solutions with an Affinity DiagramBrainstorm Solutions with an Affinity Diagram
Brainstorm Solutions with an Affinity Diagram
 
Bringing Science to Software Development
Bringing Science to Software DevelopmentBringing Science to Software Development
Bringing Science to Software Development
 
Prioritize Solutions with an Impact Matrix
Prioritize Solutions with an Impact MatrixPrioritize Solutions with an Impact Matrix
Prioritize Solutions with an Impact Matrix
 
Monitoring 101
Monitoring 101Monitoring 101
Monitoring 101
 
Bug Advocacy
Bug AdvocacyBug Advocacy
Bug Advocacy
 
4 pc repair
4 pc repair4 pc repair
4 pc repair
 
Applying SRE techniques to micro service design
Applying SRE techniques to micro service designApplying SRE techniques to micro service design
Applying SRE techniques to micro service design
 
Blend it up - leancamp london presentation
Blend it up - leancamp london presentationBlend it up - leancamp london presentation
Blend it up - leancamp london presentation
 
Project Patterns
Project PatternsProject Patterns
Project Patterns
 
100rules
100rules100rules
100rules
 

Destacado

2013 michael coates-javaone
2013 michael coates-javaone2013 michael coates-javaone
2013 michael coates-javaone
Michael Coates
 
Security in an Interconnected and Complex World of Software
Security in an Interconnected and Complex World of SoftwareSecurity in an Interconnected and Complex World of Software
Security in an Interconnected and Complex World of Software
Michael Coates
 

Destacado (6)

2013 michael coates-javaone
2013 michael coates-javaone2013 michael coates-javaone
2013 michael coates-javaone
 
Security in an Interconnected and Complex World of Software
Security in an Interconnected and Complex World of SoftwareSecurity in an Interconnected and Complex World of Software
Security in an Interconnected and Complex World of Software
 
Self Defending Applications
Self Defending ApplicationsSelf Defending Applications
Self Defending Applications
 
Devbeat Conference - Developer First Security
Devbeat Conference - Developer First SecurityDevbeat Conference - Developer First Security
Devbeat Conference - Developer First Security
 
Virtual Security Lab Setup - OWASP Broken Web Apps, Webgoat, & ZAP
Virtual Security Lab Setup - OWASP Broken Web Apps, Webgoat, & ZAPVirtual Security Lab Setup - OWASP Broken Web Apps, Webgoat, & ZAP
Virtual Security Lab Setup - OWASP Broken Web Apps, Webgoat, & ZAP
 
Sf startup-security
Sf startup-securitySf startup-security
Sf startup-security
 

Similar a The Most Important Thing: How Mozilla Does Security and What You Can Steal

Classic Testing Mistakes 0226
Classic Testing Mistakes 0226Classic Testing Mistakes 0226
Classic Testing Mistakes 0226
MBA_Community
 
OSMC 2015 | Testing in Production by Devdas Bhagat
OSMC 2015 | Testing in Production by Devdas BhagatOSMC 2015 | Testing in Production by Devdas Bhagat
OSMC 2015 | Testing in Production by Devdas Bhagat
NETWAYS
 
The Why and How of Continuous Delivery
The Why and How of Continuous DeliveryThe Why and How of Continuous Delivery
The Why and How of Continuous Delivery
Nigel McNie
 

Similar a The Most Important Thing: How Mozilla Does Security and What You Can Steal (20)

The Limits of Unit Testing by Craig Stuntz
The Limits of Unit Testing by Craig StuntzThe Limits of Unit Testing by Craig Stuntz
The Limits of Unit Testing by Craig Stuntz
 
Exploratory testing workshop
Exploratory testing workshopExploratory testing workshop
Exploratory testing workshop
 
Why isn't infosec working? Did you turn it off and back on again?
Why isn't infosec working? Did you turn it off and back on again?Why isn't infosec working? Did you turn it off and back on again?
Why isn't infosec working? Did you turn it off and back on again?
 
Classic Testing Mistakes 0226
Classic Testing Mistakes 0226Classic Testing Mistakes 0226
Classic Testing Mistakes 0226
 
So you want to be a red teamer
So you want to be a red teamerSo you want to be a red teamer
So you want to be a red teamer
 
OSMC 2015 | Testing in Production by Devdas Bhagat
OSMC 2015 | Testing in Production by Devdas BhagatOSMC 2015 | Testing in Production by Devdas Bhagat
OSMC 2015 | Testing in Production by Devdas Bhagat
 
OSMC 2015: Testing in Production by Devdas Bhagat
OSMC 2015: Testing in Production by Devdas BhagatOSMC 2015: Testing in Production by Devdas Bhagat
OSMC 2015: Testing in Production by Devdas Bhagat
 
Adopting A Whole Team Approach To Quality
Adopting  A  Whole  Team  Approach  To  QualityAdopting  A  Whole  Team  Approach  To  Quality
Adopting A Whole Team Approach To Quality
 
Technical Debt - osbridge
Technical Debt - osbridgeTechnical Debt - osbridge
Technical Debt - osbridge
 
Operationalizing Machine Learning in the Enterprise
Operationalizing Machine Learning in the EnterpriseOperationalizing Machine Learning in the Enterprise
Operationalizing Machine Learning in the Enterprise
 
Agile code quality metrics
Agile code quality metricsAgile code quality metrics
Agile code quality metrics
 
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
assertYourself - Breaking the Theories and Assumptions of Unit Testing in FlexassertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
 
A Big Dashboard of Problems.pdf
A Big Dashboard of Problems.pdfA Big Dashboard of Problems.pdf
A Big Dashboard of Problems.pdf
 
Fantastic Tests - The Crimes of Bad Test Design
Fantastic Tests - The Crimes of Bad Test DesignFantastic Tests - The Crimes of Bad Test Design
Fantastic Tests - The Crimes of Bad Test Design
 
Feedback Loops
Feedback LoopsFeedback Loops
Feedback Loops
 
Гірка правда про безпеку програмного забезпечення, Володимир Стиран
Гірка правда про безпеку програмного забезпечення, Володимир СтиранГірка правда про безпеку програмного забезпечення, Володимир Стиран
Гірка правда про безпеку програмного забезпечення, Володимир Стиран
 
Sigma Open Tech Week: Bitter Truth About Software Security
Sigma Open Tech Week: Bitter Truth About Software SecuritySigma Open Tech Week: Bitter Truth About Software Security
Sigma Open Tech Week: Bitter Truth About Software Security
 
Are We Secure? Answering the Unanswerable
Are We Secure? Answering the UnanswerableAre We Secure? Answering the Unanswerable
Are We Secure? Answering the Unanswerable
 
The Why and How of Continuous Delivery
The Why and How of Continuous DeliveryThe Why and How of Continuous Delivery
The Why and How of Continuous Delivery
 
(In)convenient truths about applied machine learning
(In)convenient truths about applied machine learning(In)convenient truths about applied machine learning
(In)convenient truths about applied machine learning
 

Último

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Último (20)

HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 

The Most Important Thing: How Mozilla Does Security and What You Can Steal

  • 1. The Most Important Thing How Mozilla Does Security and What You Can Steal Johnathan Nightingale Human Shield Mozilla Corporation johnath@mozilla.com
  • 2. So you want to steal a security architecture... Do you actually want to get better? Do you care about responsiveness? Can you let go of secrecy?
  • 3. Why steal from us? We have been at it for a while... in a phenomenally hostile environment... with 180 million users... and we seem to be doing a lot of things right... and you can see how we do it
  • 4. This Diagram is Stupid Metrics Design Implementation Testing Response
  • 5. Good Security is a Feedback Loop • The idea that security can be wholly top-down, with discrete one-way steps in an orderly flow from start to end is the worst kind of process management fiction • Your security process should instead ask at every step, “How can we make sure problems like this never happen again?”
  • 6. The single most important thing you can do is find ways to capture expensive knowledge so that you never pay for the same lesson twice
  • 7. Response A security compromise is the most expensive knowledge of all
  • 8. Response Prepare Where is it written down? Triage Who should help? Schedule Mitigate Fix With tests! (More later) Deploy This is not the same as shipping! (More later) Post-Mortem
  • 9. Learning from Response • It’s okay for post-mortems to be short • It’s not okay to skip them • If you make them into blame-finding, they stop being useful (even for blame-finding!)
  • 10. Ask Questions • Who did we have to bring in late? • Why didn’t we notice that we broke the internet? • How could we have dealt better with the original reporter? • What were our bottlenecks? Write down the answers for next time (there’s always a next time)
  • 11. Testing Testing is your best defense against forgetting, because you will forget
  • 12. Data Point We run: • 55,000 automated tests • in 6 test frameworks • on 4 platforms • at least 20 times a day
  • 13. You Already Know Why • Tests protect your features from security- based changes • Tests protect your security from feature- based changes • Tests capture and transfer expensive knowledge • Tests reduce Bus Factor
  • 14. Now Make It Happen • It must be easy to add new tests • Yes, this is tricky at first • Money can be exchanged for goods and services! • Nothing lands without tests • Nothing. Lands. Without. Tests.
  • 15. It’s Hard To Test <X> • This is terrifying • Steal another framework • Don’t underestimate manual testing
  • 16. Power Tools • Fuzzing • Penetration Testing • YMMV
  • 17. One More Thing Tests that don’t run are a waste of everyone’s time Option: Automatic Gunfire Buy a box that sits in a corner and runs tests off trunk every hour. Put a gun on it that shoots people who break tests. Option: Manual Slog Make check-in approval contingent on running tests, every single time.
  • 18. Implementation “We have tests” is not an excuse to keep breaking things
  • 19. Where Mistakes Are Made • Strategic-level mistakes can be made in design, but most security bugs come from mistakes not caught during implementation • Your ability to profit from expensive knowledge is highest here, but here is where you’re probably doing the worst job
  • 20. No-Brainers • Static analysis tools • assert() • “Public” Betas • Alphas? • Source?
  • 21. Tougher • Non-security bugs point to security bugs • Do you have crash reporting? • No bug happens once • Where else are you assuming that a null pointer isn’t exploitable? • Bad patterns - knowledge that you get to benefit from more than once.
  • 22. The Game Changer The most important change you can make at implementation is mandatory review • Socializes security knowledge by sharing it • Gatekeeper against “This is little, it’ll be fine” • P(Mistake ) * P(Mistake ) << P(Mistake ) 1 2 1
  • 23. Design Every time you eliminate a threat class an angel gets its wings
  • 24. Making Things Right Make it easier to profit from expensive knowledge • Design for re-use • Find areas that keep needing “temporary” field patches and fix them for good • Design for testability • Threat modelling
  • 25. Metrics Measure what matters, not what’s easy to measure Now with 12% more bits!
  • 26. Don’t Know What Matters? • Ask sales • Ask your users • Don’t ask your competitors, they are looking for the easy way out
  • 27. The #1 Grade-A Stupidest Metric of All Bug Count • A focus on bug counting creates perverse incentives for security • Developers hide bugs from management • You hide bugs from customers Counting bugs teaches you to bury all the expensive knowledge you should be sharing
  • 28. Think Harder • Days of exposure • Average time to deploy fix • Better would be avg. time until > 90% of users are using the fix • Customer downtime
  • 29. Get Creative • Number of regressions per update cycle • Number of all nighters • Start using similar metrics when judging your own suppliers & platforms • Tension between metrics can be a good thing, if it pulls people towards awesome
  • 30. Stupid Criticisms • This model is totally reactive, not proactive • This model is steady-state, not innovative
  • 31. Our tools, let me show you them Tinderbox http://www.mozilla.org/tinderbox.html Mochitest http://developer.mozilla.org/en/docs/Mochitest Litmus http://wiki.mozilla.org/Litmus MXR http://mxr.mozilla.org/ Dehydra http://developer.mozilla.org/en/docs/Dehydra Bug Policy http://www.mozilla.org/projects/security/security-bugs-policy.html Bugzilla https://bugzilla.mozilla.org/ Fuzzers http://www.squarefree.com/2007/08/02/introducing-jsfunfuzz/
  • 32. Remember This Slide • Capture expensive knowledge everywhere, so that you don’t have to re-learn it • Apply that knowledge everywhere • Nothing lands without tests • Nothing lands without code review • Counting bugs is stupid, try harder
  • 33. Credits • Developer Kit, Sean Martell, http://developer.mozilla.org/en/docs/Promote_MDC • Waterfall, dave.hau, http://flickr.com/photos/davehauenstein/271469348/ • Alarm, Shannon K, http://flickr.com/photos/shannonmary/96320881/ • Oops, estherase, http://flickr.com/photos/estherase/24513484/ • Card House, Bah Humbug, http://flickr.com/photos/gibbons/2294375187/ • Bulldozer, Atli Harðarson, http://flickr.com/photos/atlih/2223726160/