Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Building DEF CON CTF with Ruby
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
vito
February 21, 2014
Programming
630
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Building DEF CON CTF with Ruby
Presented at Big Ruby Conference, Grapevine, TX, Feb. 20 2014
vito
February 21, 2014
Transcript
81 slides
Building DEF CON CTF with Ruby
Hello Vito Genovese @vito_lbs
[email protected]
Building DEF CON CTF •DEF CON and CTF •Team building
•Qualifications •Finals
What is DEF CON? “DEF CON is one of the
oldest continuous running hacker conventions around, and also one of the largest.” - DEF CON FAQ
What is DEF CON? “Black Hat… is more the university…
DEF CON is the fraternity party.” - USA Today, “Suits and punks convene in Las Vegas for hacker conferences,” Aug. 1 2006
What is DEF CON?
What is DEF CON?
What is CTF? (Capture The Flag)
Jeopardy-Style CTF •Pick a problem •Hack it •Get points
Attack-Defense CTF 1. Hack services 2. Steal tokens every round
3. Get points 1. Patch services 2. Pass SLA checks 3. Don’t lose points
Competing in CTF •Build a team •Get really good at
assembly •Get good at web vulns and crypto too •Compete and solve problems •Write up solutions
Competing in CTF
Sample Challenges http://hypeman.shallweplayaga.me http://worsemedicine.shallweplayaga.me
Hour 30
Building DEF CON CTF •DEF CON and CTF •Team building
•Qualifications •Finals
Team Building “Dark Tangent is looking for new CTF organizers,
want to help write a proposal?”
Team Building Software vulnerability experts Hardware engineers Network ops deity
Web application generalist
Team Building •Opinionated smart people •That need to work together
•On a software project with dozens of moving parts •On a very public stage •With immovable deadlines
Team Building Always have an exit strategy
Building DEF CON CTF •DEF CON and CTF •Team building
•Qualifications •Finals
Qualifications “Quals”
Quals “Jeopardy-style” Self-contained questions Open Entry 48 hours over a
weekend
None
Quals Scoreboard Rails Unicorn Heroku 1GB Dynos $50/month Postgres
Quals Scoreboard No Redis No memcached
Quals Scoreboard No push Only polling
Quals Scoreboard
Quals Scoreboard
Quals Scoreboard Game Start Adjusting dynos
Quals Challenges •Sinatra •PHP •Python •x86 •Golang •ARM
Sinatra Used Heroku It ruled
PHP, Python, x86, Golang EC2 Started with Micro Upgraded to
Large
PHP, Python, x86, Golang Never use Micro instances
PHP, Python, x86, Golang Sometimes you get DoS’d
ARM Challenges
Quals Problems I slept… Through a part where we had
to edit a question and put something on S3.
Quals Problems Some challenges weren’t ready until halfway through the
game
https://twitter.com/roman_soft/status/346325078369263616
Quals •IRC and Twitter: invaluable •Have a reset password flow
•Don’t forget public views •Fight bus numbers
Building DEF CON CTF •DEF CON and CTF •Team building
•Qualifications •Finals
Finals OMG
None
Finals http://www.cnbc.com/id/101179977
Finals
Finals
Finals Twenty Teams Twenty Servers One Network
Finals •Attack-defense style •Teams get a server running services •Find
vulnerabilities in services •Patch own vulnerabilities •Exploit vulnerabilities on other teams
Finals Scoring Fifty-thousand flags Five-minute rounds Tokens from services redeemed
for flags Flags lost when stolen and downtime Zero-sum for game theory reasons
Finals Scoreboard Rails, Apache, Passenger, Postgres Ubuntu on Mac Mini
HTTPS Client Certificates Kibana (Logstash, Elasticsearch) No push, no polling, just meta refresh
Finals Scoreboard Client certs rule No password resets No hacking,
no sniffing Twenty CDs of certs and keys… eh
Kibana
None
None
Kibana Log Everything
Tokens and Uptime Console Ruby script Restartable in a sensible
fashion Use Postgres and wall clock time as state Save immediately, don’t queue
Tokens and Uptime Two weeks prior: “I’m just going to
call a shell script, everyone else write your own uptime checker.”
Tokens and Uptime Three hours in: “Uh, how do we
make these shell scripts time out?”
Tokens and Uptime Ten hours in: “We should run these
in parallel.”
Tokens and Uptime Sixteen hours in: “Huh some team is
puking binary out.”
Finals Problems Teams could score on themselves
Finals Problems Flags didn’t get redistributed correctly
Finals Problems Have a better way to find issues than
rails console, SQL, and log queries
None
Finals Problems API Documentation
Finals Problems Life’s easy when you have 160 users and
they’re all right there
Finals Team Boxes
Finals Team Boxes Services run as dedicated users Teams have
sudo to service No root
None
Finals Lessons Scheduled downtime is the best
Building DEF CON CTF •DEF CON and CTF •Team building
•Qualifications •Finals
Lessons Stuff will break
Lessons Own your mistakes
Lessons Fight scope creep
Lessons JFDI
Thanks Vito Genovese @vito_lbs
[email protected]
https://legitbs.net http://bit.ly/br-ctf
Bonus Slides
DEF CON and Jeopardy
Quals Expenses What How much Heroku $126 AWS $138 Cloudflare
$20 Whisky $340
Finals Services ARM binaries ASLR, NX bit, some PIE
Finals Services Release new services Update existing services
Finals Team Boxes Boot from MicroSD Start container from iSCSI
More Decks by vito
See All by vito
Modernizing SQL Injection CTF Challenges
vito
0
370
Raw Water: Quenching Your Thirst for SQL Injection
vito
0
120
Lessons Learned from Five Years of Building Capture the Flag
vito
0
530
What I've Learned Writing CTF Challenges
vito
0
190
Capture the Flag: An Owner's Manual
vito
0
140
Other Decks in Programming
See All in Programming
flutter_test のその先へ — Flutter アプリの LLM 機能に「評価」という品質保証を
kosukesaigusa
0
200
AI-Powered Domain-Driven Design
ziobrando
0
440
ローカルLLMの基本と近況 2611 / Local LLM basics and recent situation 2611
kishida
1
200
Growing PicoRuby's Ecosystem on ESP32
yuuu
2
120
自作Discord音声botをLambda MicroVMsに移行した話 / Migrating My Discord Voice Bot to Lambda MicroVMs
akihisaikeda
1
310
Engineering Biometric UX Across Android Versions | DroidKnights 2026
ryunen344
1
200
はじめてのPLATEAU
nokonoko1203
1
640
React Native에 현대적인 빌드 도구 더하기: Rollipop 구현기
leegeunhyeok
0
180
AIがコードを書いてくれる時代、我々は何を確かめるのか
yosuke_furukawa
PRO
13
5.9k
조합이폭발하는디자인시스템이걸눈으로도테스트하라고요
giljongyu
0
750
地方こそサーバーレス — 10年続けた、顔が見えるチームで確かな基盤を / Serverless Matters Most in Regional Areas — 10 Years of Building Reliable Foundations with Close-Knit Teams
seike460
PRO
1
430
當我們開始不讀 Code - AI Agent 時代,Code Review 與 Clean Code 還剩下什麼?
jame2408
1
370
Featured
See All Featured
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Testing 201, or: Great Expectations
jmmastey
46
8.4k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
660
Mind Mapping
helmedeiros
1
440
エンジニアに許された特別な時間の終わり
watany
109
250k
Are puppies a ranking factor?
jonoalderson
2
4.2k
Speed Design
sergeychernyshev
33
2.2k
Amusing Abliteration
ianozsvald
1
390
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.9k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
550