SlideShare uma empresa Scribd logo
1 de 79
THE WORLD'S FIRST
ALL-MACHINE
HACKING
TOURNAMENT
Tyler Nighswander
THE CYBER GRAND CHALLENGE
MOTIVATION
▸ Software security assessment does not scale
▸ Estimate 50:1 code writers to code reviewers
▸ Writers create 200 lines of code/week?
▸ Analysts need to review 10k lines/week, 500k/year
Good luck
‣ Oh, and until you catch up, code still being written!
THE CYBER GRAND CHALLENGE
MOTIVATION
▸ Bandwidth issue:
▸ More programs written than programs analyzed
▸ Latency issue:
▸ Takes a lot of time to assess a program from scratch
▸ Triaging any security issues is very time consuming
THE CYBER GRAND CHALLENGE
MOTIVATION
High
Bandwidth
Low
Bandwidth
High
Latency
THE CYBER GRAND CHALLENGE
MOTIVATION
High
Bandwidth
Medium
Bandwidth
Moderate
Latency
UNREALISTIC
THE CYBER GRAND CHALLENGE
MOTIVATION
Medium
Bandwidth
Low
Bandwidth
High
Latency
BAD FOR
BUSINESS
THE CYBER GRAND CHALLENGE
MOTIVATION
High
Bandwidth
Medium
Bandwidth
High
Latency
NOT
ECONOMICAL
THE CYBER GRAND CHALLENGE
MOTIVATION
High
Bandwidth
High
Bandwidth
Low
Latency
STILL MANY
YEARS AWAY
THE CYBER GRAND CHALLENGE
MOTIVATION
High
Bandwidth
High
Bandwidth
Low
Latency
THE CYBER GRAND CHALLENGE
THE BEGINNINGS
▸ Defense Advanced Research Projects Agency (DARPA)
▸ Helped create Internet, GPS, stealth, onion routing, etc.
▸ Famously hosts “challenges”
CMU Sandstorm Google Self Driving Car
THE CYBER GRAND CHALLENGE
THE BEGINNINGS
▸ Idea: host one of these challenges for computer security
▸ Model after Capture the Flag competition
▸ Offer USD$750,000 to top 7 teams to qualify
▸ Offer USD$2,000,000 to top team in final contest
▸ Cyber Grand Challenge
THE CYBER GRAND CHALLENGE
ABOUT ME
▸ Playing in CTFs for about 7 years with PPP
▸ Top ranked CTF team in the world(usually) !
▸ Graduated from CMU
▸ Winner/finalist in several DARPA Challenges
▸ Researcher at ForAllSecure
▸ Based on a decade of research in automated security
Perfect fit !
THE CYBER GRAND CHALLENGE
ABOUT CGC
▸ Attack & Defense CTF Format: REFEREE
PLAYERS
THE CYBER GRAND CHALLENGE
ABOUT CGC
▸ Attack & Defense CTF Format:
THE CYBER GRAND CHALLENGE
ABOUT CGC
▸ Attack & Defense CTF Format:
+10 POINTS
FOR RED
-10 POINTS
FOR GREEN
THE CYBER GRAND CHALLENGE
ABOUT CGC
▸ Attack & Defense CTF Format:
IS YOUR
SERVICE RUNNING?
THE CYBER GRAND CHALLENGE
ABOUT CGC
▸ Attack & Defense CTF Format:
THE CYBER GRAND CHALLENGE
ABOUT CGC
▸ Attack & Defense CTF Format: YOUR
SERVICE IS DOWN!
-20 POINTS
IS YOUR
SERVICE RUNNING?
THE CYBER GRAND CHALLENGE
ABOUT CGC
▸ Scores based on:
▸ Security:
▸ Lose points if anyone exploits your system
▸ Offense:
▸ Gain points if you exploit other teams
▸ Availability:
▸ Lose points if performance decreased
▸ Lose points if functionality is decreased
THE CYBER GRAND CHALLENGE
ABOUT CGC
▸ To make scoring more fair+secure, DAPRA runs everything
▸ Give DARPA patched binaries to run
▸ Give DARPA a program that sends exploits
MACHINES TALK
WITH API
REFEREE RUNS
ITS OWN GAME
THE CYBER GRAND CHALLENGE
ABOUT CGC
▸ Availability scoring very strict!
▸ Lose points for any functionality failures
▸ Measured based on pollers written alongside programs
▸ Pollers hidden, but traffic is shown
▸ No specification given!
▸ Lose points if time or memory usage increase by 5%
15% OVERHEAD
70% SCORE
THE CYBER GRAND CHALLENGE
ABOUT CGC
▸ Create a new executable format, modeled after ELF
▸ Seven system calls:
▸ exit
▸ transmit
▸ receive
▸ fdwait
▸ allocate
▸ deallocate
▸ random
▸ Makes running foreign code more safe
▸ Makes automated analysis easier vs Linux/Windows/OSX
THE CYBER GRAND CHALLENGE
ABOUT CGC
▸ No file system or fork or exec… what is an exploit?
▸ Type 1:
▸ Control of register and instruction pointer
▸ Type 2:
▸ Leak of sensitive data
Codenomicon/Synopsys
THE CYBER GRAND CHALLENGE
ABOUT CGC
▸ With 7 system calls, still plenty of complexity!
▸ Programs can have:
▸ Several binaries communicating
▸ User-space threads
▸ Non-determinism, nonces, checksums
▸ C or C++ code compiled to x86 assembly
THE CYBER GRAND CHALLENGE
ABOUT CGC
▸ Easily able to recreate several famous bugs:
▸ Heartbleed
▸ LNK exploit (Stuxnet infection vector)
▸ Crackaddr bug
▸ SQL Slammer
▸ All inside the more simple CGC framework
THE CYBER GRAND CHALLENGE
MAYHEM
▸ System created by ForAllSecure
▸ (spoiler alert: winning system!)
▸ Overall architecture roughly similar to other teams
▸ Several independent components with different tasks
▸ Use centralized database for sharing information
▸ Let’s dive in!
THE CYBER GRAND CHALLENGE
MAYHEM: ROBUSTNESS
▸ Must be 100% automated!
▸ Keeping a system running is hard!
▸ Running untrusted code is hard!
▸ Writing software to analyze unknown programs is hard!
▸ Distributed systems are hard!
▸ Now do all of this in an adversarial setting!
THE CYBER GRAND CHALLENGE
MAYHEM: ROBUSTNESS
▸ Step 1: Sandbox everything
▸ Run tools with seccomp
▸ … with resource limits
▸ … inside of VMs
▸ Step 2: Redundancy wherever possible
▸ Graceful failover of at least any single node
▸ Step 3: Assume things will fail, and recover when they do
▸ Liveness checks for all components
▸ Make sure components are easy to restart
THE CYBER GRAND CHALLENGE
MAYHEM: BUG FINDING
▸ Symbolic execution
▸ State of the art technique in academia
▸ Represent program as symbolic expressions
▸ Use SAT/SMT solvers to generate inputs
int main(int argc, char** argv) {
if (argc < 3)
return -1;
int a = atoi(argv[1]);
int b = atoi(argv[2]);
if (a == 42) {
if (b == 31337) {
puts(“You made it!”);
}
return 1;
}
return 0;
}
TREAT
SYMBOLICLY!
LEN(ARGV) >= 3
RETURN -1
42 == ATOI(ARGV[1])
31337 == ATOI(ARGV[2])
RETURN 0 RETURN 1
PRINT
THE CYBER GRAND CHALLENGE
MAYHEM: BUG FINDING
▸ Fuzzing
▸ Standard technique in industry
▸ Send concrete values to a program and execute it
▸ Can also “instrument” the program
▸ Reveal internal state about what it did with inputs
▸ Possible using a variety of techniques…
A = 239075, B = 75291
if (a == 42) {
if (b == 31337) {
puts(“You made it!”);
}
return 1;
}
return 0;
42 == A
31337 == B
PRINT
0.00000002%
0.00000002%
RETURN 0
99.99999998%
A = 239075, B = 31337A = 42, B = 9852756A = 42, B = 24752A = 42, B = 31337
THE CYBER GRAND CHALLENGE
MAYHEM: BUG FINDING
▸ Instrumentation for fuzzing:
▸ Efficient ways to instrument are still an area of research
▸ QEMU, PIN, DynInst, DynamoRIO, etc ?
▸ All incur a 2-10x slow-down!
▸ Making a fuzzer too “smart” only makes it slow!
THE CYBER GRAND CHALLENGE
MAYHEM: BUG FINDING
Fuzzing
very easy to setup and run
10-10k executions/second
doesn’t “know” anything
light on resources
explore shallow paths fast
stalling
Symbolic Execution
usually very complex
1-∞ seconds/“execution”
“understands” the program
very resource intensive
explore deep paths slowly
path explosion
THE CYBER GRAND CHALLENGE
MAYHEM: BUG FINDING
▸ Fuzzing and Symbolic execution
▸ Combine the best of both worlds
▸ Fuzz a program to uncover shallow paths
▸ Use symbolic execution to find deep, complex paths
▸ To work together, simply share inputs
▸ Keep track of which inputs did something “interesting”
▸ Share the interesting inputs
THE CYBER GRAND CHALLENGE
MAYHEM: BUG EXPLOITING
▸ After you have a bug, need to turn it into an exploit!
▸ Again, use symbolic execution:
▸ In addition to path constraints ask for EIP set to value
▸ Can even use SMT solver in exploit script!
▸ A hybrid approach here works as well:
▸ Use fuzzing of crashes to get deeper crashes
▸ Use symbolic execution to generate exploits
▸ Many of our exploits are actually pretty complex
THE CYBER GRAND CHALLENGE
MAYHEM: BUG EXPLOITING
▸ Given ability to write a single null byte, generate exploit
▸ Basic exploit chain:
▸ Overwrite lowest byte of saved EBP with 0
▸ Stack frame above uses EBP-relative address for buffer
▸ Future writes to that buffer will now clobber memory
▸ Send a command to do another write, overflow buffer
▸ Overwrite EIP, and win!
▸ Sound difficult?
▸ Mayhem found and exploited this bug in 105 minutes
THE CYBER GRAND CHALLENGE
MAYHEM: PATCHING
▸ First: how can you modify a compiled program?
▸ “Hot patch”
▸ Static binary rewriting
▸ Recompilation
THE CYBER GRAND CHALLENGE
MAYHEM: PATCHING
▸ Hot patching
▸ Find or create more space in the program
▸ Redirect basic blocks to new location
THE CYBER GRAND CHALLENGE
MAYHEM: PATCHING
▸ Hot patching
▸ Find or create more space in the program
▸ Redirect basic blocks to new location
▸ Benefits:
▸ Easy to write, unlikely to break program
▸ Disadvantages:
▸ Poor speed performance, poor memory performance
THE CYBER GRAND CHALLENGE
MAYHEM: PATCHING
▸ Static binary rewriting
▸ “Just change the code in the binary”
▸ …then go back and fix everything you broke
THE CYBER GRAND CHALLENGE
MAYHEM: PATCHING
▸ Static binary rewriting
▸ “Just change the code in the binary”
▸ …then go back and fix everything you broke
▸ Benefits:
▸ Excellent memory performance, good speed
▸ Disadvantages:
▸ Very easy to break functionality of the program
THE CYBER GRAND CHALLENGE
MAYHEM: PATCHING
▸ Recompilation
▸ Create high level representation of program
▸ Apply high level patches, and then compile
0:	CMP	EAX,	ECX	
1:	JNE	EXIT	
2:	MOV	EAX,	[EDX+4]
IF	(A	==	B)	
		A	=	D[1]	
ELSE	
		EXIT()
IF	(A	!=	B++)	
		A	=	D[1]	
ELSE	
		EXIT()
0:	INC	EDX	
1:	CMP	EBX,	EDX	
2:	JE	EXIT	
3:	MOV	EBX,	[ECX+4]
LIFT TO
HIGH LEVEL
APPLY
HIGH LEVEL
PATCH
COMPILE
THE CYBER GRAND CHALLENGE
MAYHEM: PATCHING
▸ Recompilation
▸ Create high level representation of program
▸ Apply high level patches, and then compile
▸ Benefits:
▸ Performance can rival that of compiled code
▸ Easy to do high level transformations and patches
▸ Disadvantages:
▸ Requires near-perfect decompiler
▸ Needs optimizations or performance will decrease
THE CYBER GRAND CHALLENGE
MAYHEM: PATCHING
▸ Helpful trick: use patching for instrumentation for fuzzing!
▸ Use patching process to insert very performant code
▸ Add code to log information about code paths
▸ Use this to replace compile-time instrumentation!
THE CYBER GRAND CHALLENGE
MAYHEM: PATCHING
▸ Once a program can be modified:
▸ Where to patch?
▸ What kinds of protections to add?
THE CYBER GRAND CHALLENGE
MAYHEM: PATCHING
▸ Given a binary, where should patches be applied?
▸ Every memory access?
▸ Way too slow…
▸ Every memory access that can’t be proven safe?
▸ Better, but still very slow…
▸ Memory accesses that look scary?
▸ Moderate performance, but not as safe
▸ Difficult to decide where to protect
THE CYBER GRAND CHALLENGE
MAYHEM: PATCHING
▸ Given a binary, where should patches be applied?
▸ Wherever bugs are found!
▸ Excellent choice… if you can find all the bugs
▸ Minimal overhead, protects whatever you find
▸ Whatever can affect control flow
▸ Protect jumps, returns, calls, and so on
▸ If all are protected, no control flow hijacks possible
▸ Still moderate overhead
THE CYBER GRAND CHALLENGE
MAYHEM: TRIAGE
▸ If we want to patch bugs… what does that mean?
▸ Given a program and crashing input what is “responsible”?
▸ Access violation: the registers used in the access
▸ Execution violation: backtrack to control flow instruction
▸ Add in checks that verify instruction won’t crash
▸ These do not address the root cause…
THE CYBER GRAND CHALLENGE
MAYHEM: TRIAGE
▸ To attempt to find the root cause, use “normal” inputs
▸ Run the program, inspect program state near the crash
▸ Use this to infer invariants violated by crashes
▸ To patch, simply add in explicit checks for invariants!
▸ This is not perfect, and is still complex, but it’s a start…
THE CYBER GRAND CHALLENGE
MAYHEM: PATCHING
▸ What if we don’t find 100% of the bugs?
▸ We can also apply generic patches
▸ Standard protections normally done by compilers
▸ Stack canaries
▸ Data Execution Prevention
▸ Control Flow Integrity
▸ Out of bounds read/write protection
▸ Even for compilers these protections are not trivial nor free
▸ Unlike compilers, we don’t have source code!
RETURN ADDRESS
SAVED EBP
LOCAL BUFFER
LOCAL ARGS
RETURN ADDRESS
CANARY
SAVED EBP
LOCAL BUFFER
LOCAL ARGS
…
if (a == 5)
foo()
return 0;
}
WHAT
CAN POSSIBLY
COME NEXT?
THE CYBER GRAND CHALLENGE
MAYHEM: PATCHING
▸ Use static analysis to recover program information
▸ Take shortcuts!
▸ Perfect CFI requires a lot of program information
▸ “Pretty good” CFI is still very powerful!
▸ Get free registers, etc. as a compiler would have
▸ Generate efficient, lightweight patches
▸ Run thousands of benchmarks to ensure performance!
THE CYBER GRAND CHALLENGE
MAYHEM: PERFORMANCE CHECKING
▸ Performance only measurable when you know inputs
▸ Run valid inputs, measure speed/memory usage
▸ Make sure they output the same as unmatched version
▸ This is great for offline testing, but how about in a CTF?
▸ Don’t know “junk” traffic from “real” traffic
▸ Don’t know “proper” outputs from program
▸ Use inputs generated by bug finding components
▸ Things that don’t crash were “interesting”!
▸ Interesting means: uses program in non-trivial way
THE CYBER GRAND CHALLENGE
MAYHEM: DECISION MAKING
▸ How can an automated system make informed choices?
▸ Given several patches, which one is best?
▸ Is the system being attacked?
▸ Which exploits should be used?
▸ These questions are very important for cyber security!
THE CYBER GRAND CHALLENGE
MAYHEM: DECISION MAKING
▸ Several ways to approach this problem:
▸ Fixed strategy
▸ Easy to code, won’t surprise you
▸ Collection of strategies
▸ Easy to code, less naive, still no surprises
▸ Fully dynamic/learned strategy
▸ Difficult to code, lots of surprises!
THE CYBER GRAND CHALLENGE
MAYHEM: DECISION MAKING
▸ Surprise isn’t always bad!
▸ Pre-written strategies can only do what you’ve planned for!
▸ What if:
▸ Teams are stronger/weaker than expected
▸ Other teams find bugs which you do not
▸ Challenges have several unexpected bugs
▸ Things break in new, spectacular ways (because they will)
THE CYBER GRAND CHALLENGE
MAYHEM: DECISION MAKING
▸ One of many approaches: Bayesian estimation
▸ How likely is it we find a crash through fuzzing?
▸ How likely is it a random crash is exploitable?
▸ How many crashes/exploits have we found?
▸ How correlated are our exploits with other teams?
▸ How likely is it team X patches randomly?
▸ How correlated are team X’s patches and exploits?
▸ Combine: How likely is it we are being attacked?
THE CYBER GRAND CHALLENGE
MAYHEM: DECISION MAKING
▸ Very difficult to tell which decisions are “correct”!
▸ But as a whole, decisions are very intelligent
▸ This is not just applicable for games!
▸ Is this traffic malicious or benign?
▸ Should servers be temporarily shut off?
▸ What are the costs/benefits of patching?
▸ Imagine deciding all of this in real time!
THE CYBER GRAND CHALLENGE
MAYHEM: TYING IT TOGETHER…
1. Receive compiled program
2. Generate patched version, and instrumented version
3. Use symbolic execution and fuzzing to uncover new inputs
4. Use non-crashing inputs to test patches
5. Use crashing inputs to generate exploits
6. Win
THE CYBER GRAND CHALLENGE
THE FUTURE
▸ What is the future for this technology?
▸ Testing:
▸ Test software security during development cycle
▸ Test software security during deployment
▸ This future is very close to reality!
THE CYBER GRAND CHALLENGE
THE FUTURE
▸ Triage + offense research:
▸ Lots of fuzzers produce crashes
▸ Most of these crashes are not security issues
▸ Very time consuming to sort through them!
▸ Automated system can produce exploit ⇒ security issue
THE CYBER GRAND CHALLENGE
THE FUTURE
▸ Response:
▸ Detecting 0-day exploits remains incredibly difficult
▸ Humans take very long time to analyze/detect exploits
▸ Automatically detect exploits
▸ Automatically triage exploits to help human response
▸ Automatically use exploits to create patches
{
THE CYBER GRAND CHALLENGE
THE FUTURE
▸ Protection:
▸ Automatic software patching
▸ Harden/patch no-longer-supported software
▸ Harden/patch software by lazy vendors
▸ Automatic testing for patches
THE CYBER GRAND CHALLENGE
THE FUTURE
▸ Where are we today?
CMU Sandstorm
Google Self Driving Car
Mercedes Concept
X
THE CYBER GRAND CHALLENGE
THE FUTURE
▸ What still needs to be done:
▸ Porting to modern systems (partially done)
▸ Scaling to large scale programs
▸ More advanced techniques for exploitation
THE CYBER GRAND CHALLENGE
THE FUTURE
Image credit: Orion Pictures
THE CYBER GRAND CHALLENGE
THE FUTURE
Japan Daily Press: Robotic band Z-Machines with human band Amoyamo
[CB16] About the cyber grand challenge: the world’s first all-machine hacking tournament by Tyler Nighswander

Mais conteúdo relacionado

Mais procurados

EMBA - Firmware analysis - Black Hat Arsenal USA 2022
EMBA - Firmware analysis - Black Hat Arsenal USA 2022EMBA - Firmware analysis - Black Hat Arsenal USA 2022
EMBA - Firmware analysis - Black Hat Arsenal USA 2022
MichaelM85042
 
Reaching the multimedia web from embedded platforms with WPEWebkit
Reaching the multimedia web from embedded platforms with WPEWebkitReaching the multimedia web from embedded platforms with WPEWebkit
Reaching the multimedia web from embedded platforms with WPEWebkit
Igalia
 

Mais procurados (20)

Hardware-assisted Isolated Execution Environment to run trusted OS and applic...
Hardware-assisted Isolated Execution Environment to run trusted OS and applic...Hardware-assisted Isolated Execution Environment to run trusted OS and applic...
Hardware-assisted Isolated Execution Environment to run trusted OS and applic...
 
Embedded Recipes 2017 - Introduction to Yocto Project/OpenEmbedded - Mylène J...
Embedded Recipes 2017 - Introduction to Yocto Project/OpenEmbedded - Mylène J...Embedded Recipes 2017 - Introduction to Yocto Project/OpenEmbedded - Mylène J...
Embedded Recipes 2017 - Introduction to Yocto Project/OpenEmbedded - Mylène J...
 
EMBA - Firmware analysis - Black Hat Arsenal USA 2022
EMBA - Firmware analysis - Black Hat Arsenal USA 2022EMBA - Firmware analysis - Black Hat Arsenal USA 2022
EMBA - Firmware analysis - Black Hat Arsenal USA 2022
 
ABS 2012 - Android Device Porting Walkthrough
ABS 2012 - Android Device Porting WalkthroughABS 2012 - Android Device Porting Walkthrough
ABS 2012 - Android Device Porting Walkthrough
 
Reaching the multimedia web from embedded platforms with WPEWebkit
Reaching the multimedia web from embedded platforms with WPEWebkitReaching the multimedia web from embedded platforms with WPEWebkit
Reaching the multimedia web from embedded platforms with WPEWebkit
 
QEMU - Binary Translation
QEMU - Binary Translation QEMU - Binary Translation
QEMU - Binary Translation
 
cmake.pdf
cmake.pdfcmake.pdf
cmake.pdf
 
Android device driver structure introduction
Android device driver structure introductionAndroid device driver structure introduction
Android device driver structure introduction
 
Introduction to OpenCL
Introduction to OpenCLIntroduction to OpenCL
Introduction to OpenCL
 
Ceph Day Taipei - Accelerate Ceph via SPDK
Ceph Day Taipei - Accelerate Ceph via SPDK Ceph Day Taipei - Accelerate Ceph via SPDK
Ceph Day Taipei - Accelerate Ceph via SPDK
 
Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)
 
Build Low-Latency Applications in Rust on ScyllaDB
Build Low-Latency Applications in Rust on ScyllaDBBuild Low-Latency Applications in Rust on ScyllaDB
Build Low-Latency Applications in Rust on ScyllaDB
 
Manage your bare-metal infrastructure with a CI/CD-driven approach
Manage your bare-metal infrastructure with a CI/CD-driven approachManage your bare-metal infrastructure with a CI/CD-driven approach
Manage your bare-metal infrastructure with a CI/CD-driven approach
 
Inside Android's UI
Inside Android's UIInside Android's UI
Inside Android's UI
 
KeyLoggers - beating the shit out of keyboard since quite a long time
KeyLoggers - beating the shit out of keyboard since quite a long timeKeyLoggers - beating the shit out of keyboard since quite a long time
KeyLoggers - beating the shit out of keyboard since quite a long time
 
HKG15-311: OP-TEE for Beginners and Porting Review
HKG15-311: OP-TEE for Beginners and Porting ReviewHKG15-311: OP-TEE for Beginners and Porting Review
HKG15-311: OP-TEE for Beginners and Porting Review
 
Building Embedded Linux Full Tutorial for ARM
Building Embedded Linux Full Tutorial for ARMBuilding Embedded Linux Full Tutorial for ARM
Building Embedded Linux Full Tutorial for ARM
 
Anatomy of the loadable kernel module (lkm)
Anatomy of the loadable kernel module (lkm)Anatomy of the loadable kernel module (lkm)
Anatomy of the loadable kernel module (lkm)
 
LCU13: An Introduction to ARM Trusted Firmware
LCU13: An Introduction to ARM Trusted FirmwareLCU13: An Introduction to ARM Trusted Firmware
LCU13: An Introduction to ARM Trusted Firmware
 
Conan.io - The C/C++ package manager for Developers
Conan.io - The C/C++ package manager for DevelopersConan.io - The C/C++ package manager for Developers
Conan.io - The C/C++ package manager for Developers
 

Destaque

[CB16] DeathNote of Microsoft Windows Kernel by Peter Hlavaty & Jin Long
[CB16] DeathNote of Microsoft Windows Kernel by Peter Hlavaty & Jin Long[CB16] DeathNote of Microsoft Windows Kernel by Peter Hlavaty & Jin Long
[CB16] DeathNote of Microsoft Windows Kernel by Peter Hlavaty & Jin Long
CODE BLUE
 
[CB16] EXOTIC DATA RECOVERY & PARADAIS by しもがいとだい
[CB16] EXOTIC DATA RECOVERY & PARADAIS by しもがいとだい[CB16] EXOTIC DATA RECOVERY & PARADAIS by しもがいとだい
[CB16] EXOTIC DATA RECOVERY & PARADAIS by しもがいとだい
CODE BLUE
 
[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹
[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹
[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹
CODE BLUE
 
D1T3-Anto-Joseph-Droid-FF
D1T3-Anto-Joseph-Droid-FFD1T3-Anto-Joseph-Droid-FF
D1T3-Anto-Joseph-Droid-FF
Anthony Jose
 
[CB16] Cyber Grand Challenge (CGC) : 世界初のマシン同士の全自動ハッキングトーナメント by Tyler Nighsw...
[CB16] Cyber Grand Challenge (CGC) : 世界初のマシン同士の全自動ハッキングトーナメント by Tyler Nighsw...[CB16] Cyber Grand Challenge (CGC) : 世界初のマシン同士の全自動ハッキングトーナメント by Tyler Nighsw...
[CB16] Cyber Grand Challenge (CGC) : 世界初のマシン同士の全自動ハッキングトーナメント by Tyler Nighsw...
CODE BLUE
 
[CB16] バイナリロックスターになる:Binary Ninjaによるプログラム解析入門 by Sophia D’Antoine
[CB16] バイナリロックスターになる:Binary Ninjaによるプログラム解析入門 by Sophia D’Antoine[CB16] バイナリロックスターになる:Binary Ninjaによるプログラム解析入門 by Sophia D’Antoine
[CB16] バイナリロックスターになる:Binary Ninjaによるプログラム解析入門 by Sophia D’Antoine
CODE BLUE
 
You didnt see it’s coming? "Dawn of hardened Windows Kernel"
You didnt see it’s coming? "Dawn of hardened Windows Kernel" You didnt see it’s coming? "Dawn of hardened Windows Kernel"
You didnt see it’s coming? "Dawn of hardened Windows Kernel"
Peter Hlavaty
 

Destaque (20)

[CB16] DeathNote of Microsoft Windows Kernel by Peter Hlavaty & Jin Long
[CB16] DeathNote of Microsoft Windows Kernel by Peter Hlavaty & Jin Long[CB16] DeathNote of Microsoft Windows Kernel by Peter Hlavaty & Jin Long
[CB16] DeathNote of Microsoft Windows Kernel by Peter Hlavaty & Jin Long
 
[CB16] EXOTIC DATA RECOVERY & PARADAIS by しもがいとだい
[CB16] EXOTIC DATA RECOVERY & PARADAIS by しもがいとだい[CB16] EXOTIC DATA RECOVERY & PARADAIS by しもがいとだい
[CB16] EXOTIC DATA RECOVERY & PARADAIS by しもがいとだい
 
[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹
[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹
[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹
 
[CB16] The ARMs race for kernel protection by Jonathan Levin
[CB16] The ARMs race for kernel protection by Jonathan Levin[CB16] The ARMs race for kernel protection by Jonathan Levin
[CB16] The ARMs race for kernel protection by Jonathan Levin
 
D1T3-Anto-Joseph-Droid-FF
D1T3-Anto-Joseph-Droid-FFD1T3-Anto-Joseph-Droid-FF
D1T3-Anto-Joseph-Droid-FF
 
The Python bites your apple
The Python bites your appleThe Python bites your apple
The Python bites your apple
 
BSides LV 2016 - Beyond the tip of the iceberg - fuzzing binary protocols for...
BSides LV 2016 - Beyond the tip of the iceberg - fuzzing binary protocols for...BSides LV 2016 - Beyond the tip of the iceberg - fuzzing binary protocols for...
BSides LV 2016 - Beyond the tip of the iceberg - fuzzing binary protocols for...
 
What the fuzz
What the fuzzWhat the fuzz
What the fuzz
 
[CB16] Cyber Grand Challenge (CGC) : 世界初のマシン同士の全自動ハッキングトーナメント by Tyler Nighsw...
[CB16] Cyber Grand Challenge (CGC) : 世界初のマシン同士の全自動ハッキングトーナメント by Tyler Nighsw...[CB16] Cyber Grand Challenge (CGC) : 世界初のマシン同士の全自動ハッキングトーナメント by Tyler Nighsw...
[CB16] Cyber Grand Challenge (CGC) : 世界初のマシン同士の全自動ハッキングトーナメント by Tyler Nighsw...
 
Henrique Dantas - API fuzzing using Swagger
Henrique Dantas - API fuzzing using SwaggerHenrique Dantas - API fuzzing using Swagger
Henrique Dantas - API fuzzing using Swagger
 
50 Shades of Fuzzing by Peter Hlavaty & Marco Grassi
50 Shades of Fuzzing by Peter Hlavaty & Marco Grassi50 Shades of Fuzzing by Peter Hlavaty & Marco Grassi
50 Shades of Fuzzing by Peter Hlavaty & Marco Grassi
 
SmartphoneHacking_Android_Exploitation
SmartphoneHacking_Android_ExploitationSmartphoneHacking_Android_Exploitation
SmartphoneHacking_Android_Exploitation
 
American Fuzzy Lop
American Fuzzy LopAmerican Fuzzy Lop
American Fuzzy Lop
 
Bug Hunting with Media Formats
Bug Hunting with Media FormatsBug Hunting with Media Formats
Bug Hunting with Media Formats
 
Discovering Vulnerabilities For Fun and Profit
Discovering Vulnerabilities For Fun and ProfitDiscovering Vulnerabilities For Fun and Profit
Discovering Vulnerabilities For Fun and Profit
 
[CB16] Be a Binary Rockstar: An Introduction to Program Analysis with Binary ...
[CB16] Be a Binary Rockstar: An Introduction to Program Analysis with Binary ...[CB16] Be a Binary Rockstar: An Introduction to Program Analysis with Binary ...
[CB16] Be a Binary Rockstar: An Introduction to Program Analysis with Binary ...
 
The Nightmare Fuzzing Suite and Blind Code Coverage Fuzzer
The Nightmare Fuzzing Suite and Blind Code Coverage FuzzerThe Nightmare Fuzzing Suite and Blind Code Coverage Fuzzer
The Nightmare Fuzzing Suite and Blind Code Coverage Fuzzer
 
[CB16] バイナリロックスターになる:Binary Ninjaによるプログラム解析入門 by Sophia D’Antoine
[CB16] バイナリロックスターになる:Binary Ninjaによるプログラム解析入門 by Sophia D’Antoine[CB16] バイナリロックスターになる:Binary Ninjaによるプログラム解析入門 by Sophia D’Antoine
[CB16] バイナリロックスターになる:Binary Ninjaによるプログラム解析入門 by Sophia D’Antoine
 
You didnt see it’s coming? "Dawn of hardened Windows Kernel"
You didnt see it’s coming? "Dawn of hardened Windows Kernel" You didnt see it’s coming? "Dawn of hardened Windows Kernel"
You didnt see it’s coming? "Dawn of hardened Windows Kernel"
 
High Definition Fuzzing; Exploring HDMI vulnerabilities
High Definition Fuzzing; Exploring HDMI vulnerabilitiesHigh Definition Fuzzing; Exploring HDMI vulnerabilities
High Definition Fuzzing; Exploring HDMI vulnerabilities
 

Semelhante a [CB16] About the cyber grand challenge: the world’s first all-machine hacking tournament by Tyler Nighswander

Adversarial Post Ex - Lessons from the Pros
Adversarial Post Ex - Lessons from the ProsAdversarial Post Ex - Lessons from the Pros
Adversarial Post Ex - Lessons from the Pros
sixdub
 
Everything you ever wanted to know about deployment but were afraid to ask
Everything you ever wanted to know about deployment but were afraid to askEverything you ever wanted to know about deployment but were afraid to ask
Everything you ever wanted to know about deployment but were afraid to ask
lauraxthomson
 
Methods of Sharding MySQL
Methods of Sharding MySQLMethods of Sharding MySQL
Methods of Sharding MySQL
Laine Campbell
 

Semelhante a [CB16] About the cyber grand challenge: the world’s first all-machine hacking tournament by Tyler Nighswander (20)

2017-10-24 All Day DevOps - Disposable Development Environments
2017-10-24 All Day DevOps - Disposable Development Environments2017-10-24 All Day DevOps - Disposable Development Environments
2017-10-24 All Day DevOps - Disposable Development Environments
 
London Hashicorp Meetup #8 - Testing Programmable Infrastructure By Matt Long
London Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt LongLondon Hashicorp Meetup #8 -  Testing Programmable Infrastructure By Matt Long
London Hashicorp Meetup #8 - Testing Programmable Infrastructure By Matt Long
 
Intro to DevOps
Intro to DevOpsIntro to DevOps
Intro to DevOps
 
DevOps Security - Is It Really So Difficult? - Reuven Harrison - DevOpsDays T...
DevOps Security - Is It Really So Difficult? - Reuven Harrison - DevOpsDays T...DevOps Security - Is It Really So Difficult? - Reuven Harrison - DevOpsDays T...
DevOps Security - Is It Really So Difficult? - Reuven Harrison - DevOpsDays T...
 
Journeys To Cloud Native Architecture: Sun, Sea And Emergencies - Nicki Watt
Journeys To Cloud Native Architecture: Sun, Sea And Emergencies - Nicki WattJourneys To Cloud Native Architecture: Sun, Sea And Emergencies - Nicki Watt
Journeys To Cloud Native Architecture: Sun, Sea And Emergencies - Nicki Watt
 
Sandbox detection: leak, abuse, test - Hacktivity 2015
Sandbox detection: leak, abuse, test - Hacktivity 2015Sandbox detection: leak, abuse, test - Hacktivity 2015
Sandbox detection: leak, abuse, test - Hacktivity 2015
 
Adversarial Post-Ex: Lessons From The Pros
Adversarial Post-Ex: Lessons From The ProsAdversarial Post-Ex: Lessons From The Pros
Adversarial Post-Ex: Lessons From The Pros
 
Adversarial Post Ex - Lessons from the Pros
Adversarial Post Ex - Lessons from the ProsAdversarial Post Ex - Lessons from the Pros
Adversarial Post Ex - Lessons from the Pros
 
A Developer’s Guide to Kubernetes Security
A Developer’s Guide to Kubernetes SecurityA Developer’s Guide to Kubernetes Security
A Developer’s Guide to Kubernetes Security
 
Aggressive Autonomous Actions - Operating with Automation
Aggressive Autonomous Actions - Operating with AutomationAggressive Autonomous Actions - Operating with Automation
Aggressive Autonomous Actions - Operating with Automation
 
Putting Rugged Into your DevOps Toolchain
Putting Rugged Into your DevOps ToolchainPutting Rugged Into your DevOps Toolchain
Putting Rugged Into your DevOps Toolchain
 
OSDC 2014: Fernando Hönig - New Data Center Service Model: Cloud + DevOps
OSDC 2014:  Fernando Hönig - New Data Center Service Model: Cloud + DevOpsOSDC 2014:  Fernando Hönig - New Data Center Service Model: Cloud + DevOps
OSDC 2014: Fernando Hönig - New Data Center Service Model: Cloud + DevOps
 
Everything you ever wanted to know about deployment but were afraid to ask
Everything you ever wanted to know about deployment but were afraid to askEverything you ever wanted to know about deployment but were afraid to ask
Everything you ever wanted to know about deployment but were afraid to ask
 
Shift-left SRE: Self-healing on OpenShift with Ansible
Shift-left SRE: Self-healing on OpenShift with AnsibleShift-left SRE: Self-healing on OpenShift with Ansible
Shift-left SRE: Self-healing on OpenShift with Ansible
 
Just In Time Scalability Agile Methods To Support Massive Growth Presentation
Just In Time Scalability  Agile Methods To Support Massive Growth PresentationJust In Time Scalability  Agile Methods To Support Massive Growth Presentation
Just In Time Scalability Agile Methods To Support Massive Growth Presentation
 
The Best Feature of Go – A 5 Year Retrospective
The Best Feature of Go – A 5 Year RetrospectiveThe Best Feature of Go – A 5 Year Retrospective
The Best Feature of Go – A 5 Year Retrospective
 
Continuous Deployment To The Cloud With Spring Cloud Pipelines @WarsawCloudNa...
Continuous Deployment To The Cloud With Spring Cloud Pipelines @WarsawCloudNa...Continuous Deployment To The Cloud With Spring Cloud Pipelines @WarsawCloudNa...
Continuous Deployment To The Cloud With Spring Cloud Pipelines @WarsawCloudNa...
 
Methods of Sharding MySQL
Methods of Sharding MySQLMethods of Sharding MySQL
Methods of Sharding MySQL
 
Cloud adoption fails - 5 ways deployments go wrong and 5 solutions
Cloud adoption fails - 5 ways deployments go wrong and 5 solutionsCloud adoption fails - 5 ways deployments go wrong and 5 solutions
Cloud adoption fails - 5 ways deployments go wrong and 5 solutions
 
Ops for NoOps - Operational Challenges for Serverless Apps
Ops for NoOps - Operational Challenges for Serverless AppsOps for NoOps - Operational Challenges for Serverless Apps
Ops for NoOps - Operational Challenges for Serverless Apps
 

Mais de CODE BLUE

[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
CODE BLUE
 
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(4) by 板橋 博之
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(4) by 板橋 博之[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(4) by 板橋 博之
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(4) by 板橋 博之
CODE BLUE
 
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
CODE BLUE
 
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(3) by Lorenzo Pupillo
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(3) by Lorenzo Pupillo[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(3) by Lorenzo Pupillo
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(3) by Lorenzo Pupillo
CODE BLUE
 
[cb22] ”The Present and Future of Coordinated Vulnerability Disclosure” Inte...
[cb22]  ”The Present and Future of Coordinated Vulnerability Disclosure” Inte...[cb22]  ”The Present and Future of Coordinated Vulnerability Disclosure” Inte...
[cb22] ”The Present and Future of Coordinated Vulnerability Disclosure” Inte...
CODE BLUE
 
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(2)by Allan Friedman
[cb22]  「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(2)by Allan Friedman [cb22]  「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(2)by Allan Friedman
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(2)by Allan Friedman
CODE BLUE
 
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
CODE BLUE
 
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション (1)by 高橋 郁夫
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション (1)by  高橋 郁夫[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション (1)by  高橋 郁夫
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション (1)by 高橋 郁夫
CODE BLUE
 
[cb22] Wslinkのマルチレイヤーな仮想環境について by Vladislav Hrčka
[cb22] Wslinkのマルチレイヤーな仮想環境について by Vladislav Hrčka [cb22] Wslinkのマルチレイヤーな仮想環境について by Vladislav Hrčka
[cb22] Wslinkのマルチレイヤーな仮想環境について by Vladislav Hrčka
CODE BLUE
 
[cb22] Under the hood of Wslink’s multilayered virtual machine en by Vladisla...
[cb22] Under the hood of Wslink’s multilayered virtual machine en by Vladisla...[cb22] Under the hood of Wslink’s multilayered virtual machine en by Vladisla...
[cb22] Under the hood of Wslink’s multilayered virtual machine en by Vladisla...
CODE BLUE
 
[cb22] CloudDragon’s Credential Factory is Powering Up Its Espionage Activiti...
[cb22] CloudDragon’s Credential Factory is Powering Up Its Espionage Activiti...[cb22] CloudDragon’s Credential Factory is Powering Up Its Espionage Activiti...
[cb22] CloudDragon’s Credential Factory is Powering Up Its Espionage Activiti...
CODE BLUE
 
[cb22] From Parroting to Echoing: The Evolution of China’s Bots-Driven Info...
[cb22]  From Parroting to Echoing:  The Evolution of China’s Bots-Driven Info...[cb22]  From Parroting to Echoing:  The Evolution of China’s Bots-Driven Info...
[cb22] From Parroting to Echoing: The Evolution of China’s Bots-Driven Info...
CODE BLUE
 
[cb22] Tracking the Entire Iceberg - Long-term APT Malware C2 Protocol Emulat...
[cb22] Tracking the Entire Iceberg - Long-term APT Malware C2 Protocol Emulat...[cb22] Tracking the Entire Iceberg - Long-term APT Malware C2 Protocol Emulat...
[cb22] Tracking the Entire Iceberg - Long-term APT Malware C2 Protocol Emulat...
CODE BLUE
 
[cb22] Fight Against Malware Development Life Cycle by Shusei Tomonaga and Yu...
[cb22] Fight Against Malware Development Life Cycle by Shusei Tomonaga and Yu...[cb22] Fight Against Malware Development Life Cycle by Shusei Tomonaga and Yu...
[cb22] Fight Against Malware Development Life Cycle by Shusei Tomonaga and Yu...
CODE BLUE
 

Mais de CODE BLUE (20)

[cb22] Hayabusa Threat Hunting and Fast Forensics in Windows environments fo...
[cb22] Hayabusa  Threat Hunting and Fast Forensics in Windows environments fo...[cb22] Hayabusa  Threat Hunting and Fast Forensics in Windows environments fo...
[cb22] Hayabusa Threat Hunting and Fast Forensics in Windows environments fo...
 
[cb22] Tales of 5G hacking by Karsten Nohl
[cb22] Tales of 5G hacking by Karsten Nohl[cb22] Tales of 5G hacking by Karsten Nohl
[cb22] Tales of 5G hacking by Karsten Nohl
 
[cb22] Your Printer is not your Printer ! - Hacking Printers at Pwn2Own by A...
[cb22]  Your Printer is not your Printer ! - Hacking Printers at Pwn2Own by A...[cb22]  Your Printer is not your Printer ! - Hacking Printers at Pwn2Own by A...
[cb22] Your Printer is not your Printer ! - Hacking Printers at Pwn2Own by A...
 
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
 
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(4) by 板橋 博之
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(4) by 板橋 博之[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(4) by 板橋 博之
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(4) by 板橋 博之
 
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
 
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(3) by Lorenzo Pupillo
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(3) by Lorenzo Pupillo[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(3) by Lorenzo Pupillo
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(3) by Lorenzo Pupillo
 
[cb22] ”The Present and Future of Coordinated Vulnerability Disclosure” Inte...
[cb22]  ”The Present and Future of Coordinated Vulnerability Disclosure” Inte...[cb22]  ”The Present and Future of Coordinated Vulnerability Disclosure” Inte...
[cb22] ”The Present and Future of Coordinated Vulnerability Disclosure” Inte...
 
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(2)by Allan Friedman
[cb22]  「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(2)by Allan Friedman [cb22]  「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(2)by Allan Friedman
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(2)by Allan Friedman
 
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
 
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション (1)by 高橋 郁夫
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション (1)by  高橋 郁夫[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション (1)by  高橋 郁夫
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション (1)by 高橋 郁夫
 
[cb22] Are Embedded Devices Ready for ROP Attacks? -ROP verification for low-...
[cb22] Are Embedded Devices Ready for ROP Attacks? -ROP verification for low-...[cb22] Are Embedded Devices Ready for ROP Attacks? -ROP verification for low-...
[cb22] Are Embedded Devices Ready for ROP Attacks? -ROP verification for low-...
 
[cb22] Wslinkのマルチレイヤーな仮想環境について by Vladislav Hrčka
[cb22] Wslinkのマルチレイヤーな仮想環境について by Vladislav Hrčka [cb22] Wslinkのマルチレイヤーな仮想環境について by Vladislav Hrčka
[cb22] Wslinkのマルチレイヤーな仮想環境について by Vladislav Hrčka
 
[cb22] Under the hood of Wslink’s multilayered virtual machine en by Vladisla...
[cb22] Under the hood of Wslink’s multilayered virtual machine en by Vladisla...[cb22] Under the hood of Wslink’s multilayered virtual machine en by Vladisla...
[cb22] Under the hood of Wslink’s multilayered virtual machine en by Vladisla...
 
[cb22] CloudDragon’s Credential Factory is Powering Up Its Espionage Activiti...
[cb22] CloudDragon’s Credential Factory is Powering Up Its Espionage Activiti...[cb22] CloudDragon’s Credential Factory is Powering Up Its Espionage Activiti...
[cb22] CloudDragon’s Credential Factory is Powering Up Its Espionage Activiti...
 
[cb22] From Parroting to Echoing: The Evolution of China’s Bots-Driven Info...
[cb22]  From Parroting to Echoing:  The Evolution of China’s Bots-Driven Info...[cb22]  From Parroting to Echoing:  The Evolution of China’s Bots-Driven Info...
[cb22] From Parroting to Echoing: The Evolution of China’s Bots-Driven Info...
 
[cb22] Who is the Mal-Gopher? - Implementation and Evaluation of “gimpfuzzy”...
[cb22]  Who is the Mal-Gopher? - Implementation and Evaluation of “gimpfuzzy”...[cb22]  Who is the Mal-Gopher? - Implementation and Evaluation of “gimpfuzzy”...
[cb22] Who is the Mal-Gopher? - Implementation and Evaluation of “gimpfuzzy”...
 
[cb22] Mal-gopherとは?Go系マルウェアの分類のためのgimpfuzzy実装と評価 by 澤部 祐太, 甘粕 伸幸, 野村 和也
[cb22] Mal-gopherとは?Go系マルウェアの分類のためのgimpfuzzy実装と評価 by 澤部 祐太, 甘粕 伸幸, 野村 和也[cb22] Mal-gopherとは?Go系マルウェアの分類のためのgimpfuzzy実装と評価 by 澤部 祐太, 甘粕 伸幸, 野村 和也
[cb22] Mal-gopherとは?Go系マルウェアの分類のためのgimpfuzzy実装と評価 by 澤部 祐太, 甘粕 伸幸, 野村 和也
 
[cb22] Tracking the Entire Iceberg - Long-term APT Malware C2 Protocol Emulat...
[cb22] Tracking the Entire Iceberg - Long-term APT Malware C2 Protocol Emulat...[cb22] Tracking the Entire Iceberg - Long-term APT Malware C2 Protocol Emulat...
[cb22] Tracking the Entire Iceberg - Long-term APT Malware C2 Protocol Emulat...
 
[cb22] Fight Against Malware Development Life Cycle by Shusei Tomonaga and Yu...
[cb22] Fight Against Malware Development Life Cycle by Shusei Tomonaga and Yu...[cb22] Fight Against Malware Development Life Cycle by Shusei Tomonaga and Yu...
[cb22] Fight Against Malware Development Life Cycle by Shusei Tomonaga and Yu...
 

Último

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Último (20)

Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
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...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
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...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
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...
 
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...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 

[CB16] About the cyber grand challenge: the world’s first all-machine hacking tournament by Tyler Nighswander

  • 2.
  • 3. THE CYBER GRAND CHALLENGE MOTIVATION ▸ Software security assessment does not scale ▸ Estimate 50:1 code writers to code reviewers ▸ Writers create 200 lines of code/week? ▸ Analysts need to review 10k lines/week, 500k/year Good luck ‣ Oh, and until you catch up, code still being written!
  • 4. THE CYBER GRAND CHALLENGE MOTIVATION ▸ Bandwidth issue: ▸ More programs written than programs analyzed ▸ Latency issue: ▸ Takes a lot of time to assess a program from scratch ▸ Triaging any security issues is very time consuming
  • 5. THE CYBER GRAND CHALLENGE MOTIVATION High Bandwidth Low Bandwidth High Latency
  • 6. THE CYBER GRAND CHALLENGE MOTIVATION High Bandwidth Medium Bandwidth Moderate Latency UNREALISTIC
  • 7. THE CYBER GRAND CHALLENGE MOTIVATION Medium Bandwidth Low Bandwidth High Latency BAD FOR BUSINESS
  • 8. THE CYBER GRAND CHALLENGE MOTIVATION High Bandwidth Medium Bandwidth High Latency NOT ECONOMICAL
  • 9. THE CYBER GRAND CHALLENGE MOTIVATION High Bandwidth High Bandwidth Low Latency STILL MANY YEARS AWAY
  • 10. THE CYBER GRAND CHALLENGE MOTIVATION High Bandwidth High Bandwidth Low Latency
  • 11.
  • 12. THE CYBER GRAND CHALLENGE THE BEGINNINGS ▸ Defense Advanced Research Projects Agency (DARPA) ▸ Helped create Internet, GPS, stealth, onion routing, etc. ▸ Famously hosts “challenges” CMU Sandstorm Google Self Driving Car
  • 13. THE CYBER GRAND CHALLENGE THE BEGINNINGS ▸ Idea: host one of these challenges for computer security ▸ Model after Capture the Flag competition ▸ Offer USD$750,000 to top 7 teams to qualify ▸ Offer USD$2,000,000 to top team in final contest ▸ Cyber Grand Challenge
  • 14. THE CYBER GRAND CHALLENGE ABOUT ME ▸ Playing in CTFs for about 7 years with PPP ▸ Top ranked CTF team in the world(usually) ! ▸ Graduated from CMU ▸ Winner/finalist in several DARPA Challenges ▸ Researcher at ForAllSecure ▸ Based on a decade of research in automated security Perfect fit !
  • 15. THE CYBER GRAND CHALLENGE ABOUT CGC ▸ Attack & Defense CTF Format: REFEREE PLAYERS
  • 16. THE CYBER GRAND CHALLENGE ABOUT CGC ▸ Attack & Defense CTF Format:
  • 17. THE CYBER GRAND CHALLENGE ABOUT CGC ▸ Attack & Defense CTF Format: +10 POINTS FOR RED -10 POINTS FOR GREEN
  • 18. THE CYBER GRAND CHALLENGE ABOUT CGC ▸ Attack & Defense CTF Format: IS YOUR SERVICE RUNNING?
  • 19. THE CYBER GRAND CHALLENGE ABOUT CGC ▸ Attack & Defense CTF Format:
  • 20. THE CYBER GRAND CHALLENGE ABOUT CGC ▸ Attack & Defense CTF Format: YOUR SERVICE IS DOWN! -20 POINTS IS YOUR SERVICE RUNNING?
  • 21. THE CYBER GRAND CHALLENGE ABOUT CGC ▸ Scores based on: ▸ Security: ▸ Lose points if anyone exploits your system ▸ Offense: ▸ Gain points if you exploit other teams ▸ Availability: ▸ Lose points if performance decreased ▸ Lose points if functionality is decreased
  • 22. THE CYBER GRAND CHALLENGE ABOUT CGC ▸ To make scoring more fair+secure, DAPRA runs everything ▸ Give DARPA patched binaries to run ▸ Give DARPA a program that sends exploits
  • 23. MACHINES TALK WITH API REFEREE RUNS ITS OWN GAME
  • 24. THE CYBER GRAND CHALLENGE ABOUT CGC ▸ Availability scoring very strict! ▸ Lose points for any functionality failures ▸ Measured based on pollers written alongside programs ▸ Pollers hidden, but traffic is shown ▸ No specification given! ▸ Lose points if time or memory usage increase by 5% 15% OVERHEAD 70% SCORE
  • 25. THE CYBER GRAND CHALLENGE ABOUT CGC ▸ Create a new executable format, modeled after ELF ▸ Seven system calls: ▸ exit ▸ transmit ▸ receive ▸ fdwait ▸ allocate ▸ deallocate ▸ random ▸ Makes running foreign code more safe ▸ Makes automated analysis easier vs Linux/Windows/OSX
  • 26. THE CYBER GRAND CHALLENGE ABOUT CGC ▸ No file system or fork or exec… what is an exploit? ▸ Type 1: ▸ Control of register and instruction pointer ▸ Type 2: ▸ Leak of sensitive data Codenomicon/Synopsys
  • 27. THE CYBER GRAND CHALLENGE ABOUT CGC ▸ With 7 system calls, still plenty of complexity! ▸ Programs can have: ▸ Several binaries communicating ▸ User-space threads ▸ Non-determinism, nonces, checksums ▸ C or C++ code compiled to x86 assembly
  • 28. THE CYBER GRAND CHALLENGE ABOUT CGC ▸ Easily able to recreate several famous bugs: ▸ Heartbleed ▸ LNK exploit (Stuxnet infection vector) ▸ Crackaddr bug ▸ SQL Slammer ▸ All inside the more simple CGC framework
  • 29. THE CYBER GRAND CHALLENGE MAYHEM ▸ System created by ForAllSecure ▸ (spoiler alert: winning system!) ▸ Overall architecture roughly similar to other teams ▸ Several independent components with different tasks ▸ Use centralized database for sharing information ▸ Let’s dive in!
  • 30. THE CYBER GRAND CHALLENGE MAYHEM: ROBUSTNESS ▸ Must be 100% automated! ▸ Keeping a system running is hard! ▸ Running untrusted code is hard! ▸ Writing software to analyze unknown programs is hard! ▸ Distributed systems are hard! ▸ Now do all of this in an adversarial setting!
  • 31. THE CYBER GRAND CHALLENGE MAYHEM: ROBUSTNESS ▸ Step 1: Sandbox everything ▸ Run tools with seccomp ▸ … with resource limits ▸ … inside of VMs ▸ Step 2: Redundancy wherever possible ▸ Graceful failover of at least any single node ▸ Step 3: Assume things will fail, and recover when they do ▸ Liveness checks for all components ▸ Make sure components are easy to restart
  • 32. THE CYBER GRAND CHALLENGE MAYHEM: BUG FINDING ▸ Symbolic execution ▸ State of the art technique in academia ▸ Represent program as symbolic expressions ▸ Use SAT/SMT solvers to generate inputs
  • 33. int main(int argc, char** argv) { if (argc < 3) return -1; int a = atoi(argv[1]); int b = atoi(argv[2]); if (a == 42) { if (b == 31337) { puts(“You made it!”); } return 1; } return 0; } TREAT SYMBOLICLY! LEN(ARGV) >= 3 RETURN -1 42 == ATOI(ARGV[1]) 31337 == ATOI(ARGV[2]) RETURN 0 RETURN 1 PRINT
  • 34. THE CYBER GRAND CHALLENGE MAYHEM: BUG FINDING ▸ Fuzzing ▸ Standard technique in industry ▸ Send concrete values to a program and execute it ▸ Can also “instrument” the program ▸ Reveal internal state about what it did with inputs ▸ Possible using a variety of techniques…
  • 35. A = 239075, B = 75291 if (a == 42) { if (b == 31337) { puts(“You made it!”); } return 1; } return 0; 42 == A 31337 == B PRINT 0.00000002% 0.00000002% RETURN 0 99.99999998% A = 239075, B = 31337A = 42, B = 9852756A = 42, B = 24752A = 42, B = 31337
  • 36. THE CYBER GRAND CHALLENGE MAYHEM: BUG FINDING ▸ Instrumentation for fuzzing: ▸ Efficient ways to instrument are still an area of research ▸ QEMU, PIN, DynInst, DynamoRIO, etc ? ▸ All incur a 2-10x slow-down! ▸ Making a fuzzer too “smart” only makes it slow!
  • 37. THE CYBER GRAND CHALLENGE MAYHEM: BUG FINDING Fuzzing very easy to setup and run 10-10k executions/second doesn’t “know” anything light on resources explore shallow paths fast stalling Symbolic Execution usually very complex 1-∞ seconds/“execution” “understands” the program very resource intensive explore deep paths slowly path explosion
  • 38. THE CYBER GRAND CHALLENGE MAYHEM: BUG FINDING ▸ Fuzzing and Symbolic execution ▸ Combine the best of both worlds ▸ Fuzz a program to uncover shallow paths ▸ Use symbolic execution to find deep, complex paths ▸ To work together, simply share inputs ▸ Keep track of which inputs did something “interesting” ▸ Share the interesting inputs
  • 39. THE CYBER GRAND CHALLENGE MAYHEM: BUG EXPLOITING ▸ After you have a bug, need to turn it into an exploit! ▸ Again, use symbolic execution: ▸ In addition to path constraints ask for EIP set to value ▸ Can even use SMT solver in exploit script! ▸ A hybrid approach here works as well: ▸ Use fuzzing of crashes to get deeper crashes ▸ Use symbolic execution to generate exploits ▸ Many of our exploits are actually pretty complex
  • 40.
  • 41. THE CYBER GRAND CHALLENGE MAYHEM: BUG EXPLOITING ▸ Given ability to write a single null byte, generate exploit ▸ Basic exploit chain: ▸ Overwrite lowest byte of saved EBP with 0 ▸ Stack frame above uses EBP-relative address for buffer ▸ Future writes to that buffer will now clobber memory ▸ Send a command to do another write, overflow buffer ▸ Overwrite EIP, and win! ▸ Sound difficult? ▸ Mayhem found and exploited this bug in 105 minutes
  • 42. THE CYBER GRAND CHALLENGE MAYHEM: PATCHING ▸ First: how can you modify a compiled program? ▸ “Hot patch” ▸ Static binary rewriting ▸ Recompilation
  • 43. THE CYBER GRAND CHALLENGE MAYHEM: PATCHING ▸ Hot patching ▸ Find or create more space in the program ▸ Redirect basic blocks to new location
  • 44.
  • 45.
  • 46.
  • 47. THE CYBER GRAND CHALLENGE MAYHEM: PATCHING ▸ Hot patching ▸ Find or create more space in the program ▸ Redirect basic blocks to new location ▸ Benefits: ▸ Easy to write, unlikely to break program ▸ Disadvantages: ▸ Poor speed performance, poor memory performance
  • 48. THE CYBER GRAND CHALLENGE MAYHEM: PATCHING ▸ Static binary rewriting ▸ “Just change the code in the binary” ▸ …then go back and fix everything you broke
  • 49.
  • 50.
  • 51.
  • 52. THE CYBER GRAND CHALLENGE MAYHEM: PATCHING ▸ Static binary rewriting ▸ “Just change the code in the binary” ▸ …then go back and fix everything you broke ▸ Benefits: ▸ Excellent memory performance, good speed ▸ Disadvantages: ▸ Very easy to break functionality of the program
  • 53. THE CYBER GRAND CHALLENGE MAYHEM: PATCHING ▸ Recompilation ▸ Create high level representation of program ▸ Apply high level patches, and then compile
  • 55. THE CYBER GRAND CHALLENGE MAYHEM: PATCHING ▸ Recompilation ▸ Create high level representation of program ▸ Apply high level patches, and then compile ▸ Benefits: ▸ Performance can rival that of compiled code ▸ Easy to do high level transformations and patches ▸ Disadvantages: ▸ Requires near-perfect decompiler ▸ Needs optimizations or performance will decrease
  • 56. THE CYBER GRAND CHALLENGE MAYHEM: PATCHING ▸ Helpful trick: use patching for instrumentation for fuzzing! ▸ Use patching process to insert very performant code ▸ Add code to log information about code paths ▸ Use this to replace compile-time instrumentation!
  • 57. THE CYBER GRAND CHALLENGE MAYHEM: PATCHING ▸ Once a program can be modified: ▸ Where to patch? ▸ What kinds of protections to add?
  • 58. THE CYBER GRAND CHALLENGE MAYHEM: PATCHING ▸ Given a binary, where should patches be applied? ▸ Every memory access? ▸ Way too slow… ▸ Every memory access that can’t be proven safe? ▸ Better, but still very slow… ▸ Memory accesses that look scary? ▸ Moderate performance, but not as safe ▸ Difficult to decide where to protect
  • 59. THE CYBER GRAND CHALLENGE MAYHEM: PATCHING ▸ Given a binary, where should patches be applied? ▸ Wherever bugs are found! ▸ Excellent choice… if you can find all the bugs ▸ Minimal overhead, protects whatever you find ▸ Whatever can affect control flow ▸ Protect jumps, returns, calls, and so on ▸ If all are protected, no control flow hijacks possible ▸ Still moderate overhead
  • 60. THE CYBER GRAND CHALLENGE MAYHEM: TRIAGE ▸ If we want to patch bugs… what does that mean? ▸ Given a program and crashing input what is “responsible”? ▸ Access violation: the registers used in the access ▸ Execution violation: backtrack to control flow instruction ▸ Add in checks that verify instruction won’t crash ▸ These do not address the root cause…
  • 61. THE CYBER GRAND CHALLENGE MAYHEM: TRIAGE ▸ To attempt to find the root cause, use “normal” inputs ▸ Run the program, inspect program state near the crash ▸ Use this to infer invariants violated by crashes ▸ To patch, simply add in explicit checks for invariants! ▸ This is not perfect, and is still complex, but it’s a start…
  • 62. THE CYBER GRAND CHALLENGE MAYHEM: PATCHING ▸ What if we don’t find 100% of the bugs? ▸ We can also apply generic patches ▸ Standard protections normally done by compilers ▸ Stack canaries ▸ Data Execution Prevention ▸ Control Flow Integrity ▸ Out of bounds read/write protection ▸ Even for compilers these protections are not trivial nor free ▸ Unlike compilers, we don’t have source code! RETURN ADDRESS SAVED EBP LOCAL BUFFER LOCAL ARGS RETURN ADDRESS CANARY SAVED EBP LOCAL BUFFER LOCAL ARGS … if (a == 5) foo() return 0; } WHAT CAN POSSIBLY COME NEXT?
  • 63. THE CYBER GRAND CHALLENGE MAYHEM: PATCHING ▸ Use static analysis to recover program information ▸ Take shortcuts! ▸ Perfect CFI requires a lot of program information ▸ “Pretty good” CFI is still very powerful! ▸ Get free registers, etc. as a compiler would have ▸ Generate efficient, lightweight patches ▸ Run thousands of benchmarks to ensure performance!
  • 64. THE CYBER GRAND CHALLENGE MAYHEM: PERFORMANCE CHECKING ▸ Performance only measurable when you know inputs ▸ Run valid inputs, measure speed/memory usage ▸ Make sure they output the same as unmatched version ▸ This is great for offline testing, but how about in a CTF? ▸ Don’t know “junk” traffic from “real” traffic ▸ Don’t know “proper” outputs from program ▸ Use inputs generated by bug finding components ▸ Things that don’t crash were “interesting”! ▸ Interesting means: uses program in non-trivial way
  • 65. THE CYBER GRAND CHALLENGE MAYHEM: DECISION MAKING ▸ How can an automated system make informed choices? ▸ Given several patches, which one is best? ▸ Is the system being attacked? ▸ Which exploits should be used? ▸ These questions are very important for cyber security!
  • 66. THE CYBER GRAND CHALLENGE MAYHEM: DECISION MAKING ▸ Several ways to approach this problem: ▸ Fixed strategy ▸ Easy to code, won’t surprise you ▸ Collection of strategies ▸ Easy to code, less naive, still no surprises ▸ Fully dynamic/learned strategy ▸ Difficult to code, lots of surprises!
  • 67. THE CYBER GRAND CHALLENGE MAYHEM: DECISION MAKING ▸ Surprise isn’t always bad! ▸ Pre-written strategies can only do what you’ve planned for! ▸ What if: ▸ Teams are stronger/weaker than expected ▸ Other teams find bugs which you do not ▸ Challenges have several unexpected bugs ▸ Things break in new, spectacular ways (because they will)
  • 68. THE CYBER GRAND CHALLENGE MAYHEM: DECISION MAKING ▸ One of many approaches: Bayesian estimation ▸ How likely is it we find a crash through fuzzing? ▸ How likely is it a random crash is exploitable? ▸ How many crashes/exploits have we found? ▸ How correlated are our exploits with other teams? ▸ How likely is it team X patches randomly? ▸ How correlated are team X’s patches and exploits? ▸ Combine: How likely is it we are being attacked?
  • 69. THE CYBER GRAND CHALLENGE MAYHEM: DECISION MAKING ▸ Very difficult to tell which decisions are “correct”! ▸ But as a whole, decisions are very intelligent ▸ This is not just applicable for games! ▸ Is this traffic malicious or benign? ▸ Should servers be temporarily shut off? ▸ What are the costs/benefits of patching? ▸ Imagine deciding all of this in real time!
  • 70. THE CYBER GRAND CHALLENGE MAYHEM: TYING IT TOGETHER… 1. Receive compiled program 2. Generate patched version, and instrumented version 3. Use symbolic execution and fuzzing to uncover new inputs 4. Use non-crashing inputs to test patches 5. Use crashing inputs to generate exploits 6. Win
  • 71. THE CYBER GRAND CHALLENGE THE FUTURE ▸ What is the future for this technology? ▸ Testing: ▸ Test software security during development cycle ▸ Test software security during deployment ▸ This future is very close to reality!
  • 72. THE CYBER GRAND CHALLENGE THE FUTURE ▸ Triage + offense research: ▸ Lots of fuzzers produce crashes ▸ Most of these crashes are not security issues ▸ Very time consuming to sort through them! ▸ Automated system can produce exploit ⇒ security issue
  • 73. THE CYBER GRAND CHALLENGE THE FUTURE ▸ Response: ▸ Detecting 0-day exploits remains incredibly difficult ▸ Humans take very long time to analyze/detect exploits ▸ Automatically detect exploits ▸ Automatically triage exploits to help human response ▸ Automatically use exploits to create patches {
  • 74. THE CYBER GRAND CHALLENGE THE FUTURE ▸ Protection: ▸ Automatic software patching ▸ Harden/patch no-longer-supported software ▸ Harden/patch software by lazy vendors ▸ Automatic testing for patches
  • 75. THE CYBER GRAND CHALLENGE THE FUTURE ▸ Where are we today? CMU Sandstorm Google Self Driving Car Mercedes Concept X
  • 76. THE CYBER GRAND CHALLENGE THE FUTURE ▸ What still needs to be done: ▸ Porting to modern systems (partially done) ▸ Scaling to large scale programs ▸ More advanced techniques for exploitation
  • 77. THE CYBER GRAND CHALLENGE THE FUTURE Image credit: Orion Pictures
  • 78. THE CYBER GRAND CHALLENGE THE FUTURE Japan Daily Press: Robotic band Z-Machines with human band Amoyamo