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.

Avatar for Matt Konda

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