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

Stripe Capture the Flag Meetup

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.
Avatar for Andy Brody Andy Brody
March 19, 2012

Stripe Capture the Flag Meetup

The slides were part of a much more detailed talk and walkthrough that was given at the Stripe Capture the Flag Meetup on March 1st.

https://stripe.com/blog/stripe-ctf-meetup

Avatar for Andy Brody

Andy Brody

March 19, 2012
Tweet

More Decks by Andy Brody

Other Decks in Technology

Transcript

  1. Andy Brody Greg Brockman Siddarth Chandrasekaran @alberge @thegdb @sidd __

    (__) ||______________________________ || | || | || | || | || | || | || | || | ||~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ || || || ||
  2. Implementation: chroot jail User for each level Debootstrap full install

    inside chroot Separate filesystem for writable data No /proc, no setuid binaries in /bin Limited nodes in /dev
  3. Implementation: R/O FS Great for security — even root can't

    modify without remounting. Terrible for maintenance: can't make changes on the fly.
  4. Isolation: fork bombs Causes - script kiddies - people trying

    to brute force level06 - process exhaustion from lots of users
  5. Isolation: fork bombs Mitigation - cgroups - ulimits - killall

    -STOP …; killall -KILL … - by tty - by pgid or sid - by user + process name - send CONT to innocent bystanders
  6. Isolation: others - disk exhaustion - memory exhaustion - greedy

    I/O - level05 server Didn't want setuid for python Arbitrary code execution Cron job to kill & restart
  7. Next time make user accounts! let built-in user isolation do

    the work control level access with groups, setgid
  8. Cloud supported Completely isolated from the rest of our servers

    Outbound traffic open during spin-up, but firewalled off in production Spin up capacity to handle unexpected load