Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Builders Vs. Breakers - Head to Head - Defcon S...

Builders Vs. Breakers - Head to Head - Defcon SkyTalks 2012

This talk pits a software developer (builder) against a penetration tester (breaker) in a debate about security in application development.

Matt Konda

July 28, 2012
Tweet

More Decks by Matt Konda

Other Decks in Programming

Transcript

  1. Head to Head •Introduce a topic •2 audience members debate

    •Commentary •Audience Votes •Win Beer!!! •Rinse/Repeat
  2. Breaker “….developers will never learn, never improve because they are

    repeating the same mistakes over and over again” – Breaker on Twitter
  3. Builder “…only good at ranting. Zero contribs, and almost zero

    constructive feedbacks but bashing” – Developer reply
  4. 14

  5. 15 A default in Rails that makes programming faster and

    easier manifests in a concrete security issue for github. So called “Mass Assignment” allows a hash of input to be dynamically set onto a model object unless a restriction is set.
  6. “Hackers love Mass Assignment” RailsCast 26 5/2/2007 Rails Issue 3453

    Rails Issue 4062 Rails Issue 3157 Rails Issue 3952 Github Rails Fun 3/2-3/4 2012 2008 2009 2010 2011 2012
  7. If  you  are  a  developer  and  don’t  know  who  OWASP

    is  at  this  point,  it’s  because  you’ve  chosen  not  to. – Breaker
  8. 27

  9. 30

  10. “it was also coded under major time crunch” “just bear

    in mind it’s essentially a POC not real production-caliber tool” “<braces for impact>” “Am I getting pre-emptively defensive?”
  11. Code Review Results • Not standard ruby • Naming conventions

    (case and _ / camel) • File layout • Not abstracted • Input / Options parsing could be shared • Unnecessary imports • Config options externalized / overridden • Rake for gem • Tests • Bundler • Lots of even more nitpicky stuff • Let’s talk about OO
  12. 40 “I’m releasing a new vuln today AND I’m including

    a patch” “Look at you making me more responsible, this sucks!!!” “Funny thing was, I found more vulns fixing (building) than breaking”
  13. We don’t really feel this way… •Take a hard stance

    on both sides in an attempt to elicit your participation •Get everyone to come to the same conclusion that the current model is broken • Generate conversation on how we can make it better