SlideShare a Scribd company logo
從DARPA CGC及DEFCON CTF探討自動攻防技術
C.K. Chen
Twitter: Bletchley13
ckchen@cs.nctu.edu.tw
1
 陳仲寬(Bletchley)
 交通大學網路安全實驗室博士生
 Sandbox: https://github.com/GlacierW/MBA
 Malware, Vulnerability, Virtual Machine, Machine Learning
 BambooFox領隊/交大網樂安全策進會顧問
 CTF, CTF and more CTFs
 Rank 31 in ctftime 2016
 NCTU PT Team -> discover about 40 bugs in NCTU
 Synology bug bounty -> 7 bugs and about 40w NTD
 HackerCollege Member
 http://hackercollege.nctu.edu.tw/
 HITCON.KB Editor
 ….
2
 Introduction to CGC
 CQE
 CFE
 Automatic Vulnerability Discovery
 Fuzz
 Symbolic/Concolic Execution
 Symbolic-assist Fuzzing
 Software Hardeness
 General Protection
 Software Patch
 Conclusion
3
4
 A weakness of an asset or group of assets that can be exploited
by one or more threats -- ISO 27005
 Programmer may make some mistakes, the unpredictable
behavior may result in software vulnerability
 Buffer overflow
 Use-After-Free
 Type Confusion
 What attacker can do?
 Information leak – Heartbleed
 Arbitrary Code Execution - PHPMailer
5
 CVE is a dictionary of publicly known information security
vulnerabilities and exposures
 More than 10000 CVEs in 2016
6
 Malware, which may use vulnerability to attack/exploit, is
mostly active only 2~3 hours
 The vulnerability needs about 24 day to patch
 Between the time windows, it’s the 0 day.
7
void do_something(char
*Buffer)
{
char MyVar[128];
strcpy(MyVar,Buffer);
}
int main (int argc, char **argv)
{
do_something(argv[1]);
}
8
9
 The a prize competition organized by DARPA to make innovation
for next generation technique
 2007 Urban Challenge
 2012 Robotics Challenge
 Cyber Grand Challenge
 The first full machine attack-defense CTF
 Focus on develop automatic attack-defense system
10
 7 teams are qualified to compete the final champion
11
 Start from 2014
 Qualification round in June 3, 2015
12
 Modified Linux
 Customize ELF format
 only 7 syscalls
 terminate (exit)
 transmit (write)
 receive (read)
 fdwait (select)
 allocate (mmap)
 deallocate (munmap)
 Random
 no signal handling, no not-executable stack, no ASLR, …
13
 CGC format
 Minor modification to ELF
 32-bit, x86
 Inetd-style services
 Each connection create a new process
 IPC, communicate via controlled fd socket-pairs
 Userspace
 Statically linked
 Compiled Binaries only (not hand coded)
14
Text vs Code of trivial program
 Type 1
 Hi-jack control flow
 Control EIP and one register
 Type 2
 Information leak
 Leak information in the magic page
16
 Cyber Reasoning System
 Given Challenge Binary
CRS
CB
CB
CB
RCB
IDS
POV
17
 113 CBs are provided to participator’s CRS
 CRS – Cyber Reasoning System
 Produce crash
 Generate and apply patch
 2 Scored Events for testing the CRS
 基本理念是希望展現各隊的特長。若某個CB全部隊伍都解出/都沒
解出,這些題目分數就會較低。而只有部分隊伍解出的題目,將會
得到比較高的分數。這樣的計分方式可以鼓勵各隊提出不同獨特的
程式分析技術。
18
 VM Provided by DARPA
 Code and Data
 https://github.com/cybergrandchallenge
 https://repo.cybergrandchallenge.com/
 VirtualBox VM and Vagrant
19
 A small program with overflow
 Crash when we give it long input
20
 POV in XML format
21
 Based on regular expression
 Most teams in final doesn’t like IDS
22
 Testing if your POV crash the CB
23
 Poller : Check if your program remains it’s functionalities
 Cb-test can test if your
patch binary pass the poller
24
 SECUINSIDE CTF 2016
 Simple ECHO Server
 Ask user name
 Echo every thing from user
 Make it crash to get the flag
25
 Use radare2 to reverse
 Steps
 Become admin
 Give admin’s key
 Reach crash point
 How to find admin’s key
 Use symbolic execution
 We will talk about it later 
26
mov dword [ebp - local_454h], 0
mov eax, dword [ebp - local_454h]
mov byte [eax], 0xa
27
28
29

30

31

32
33

34
Team Research CTF Enterprise
CodeJitsu Berkeley BlueLotus Cyberhaven
CSDS University of
Idaho
Deep Red Some CTF Player Raytheon
disekt Different
university
disekt
ForAllSecure CMU CyLab PPP ForAllSecure
Shellphish UCSB Shellphish LastLine
TECHx University of
Virginia
Some White Hack
Students
GrammaTech
35
36
 CGC Final Event was held at DEF CON 2016
 Final Winner – ForAllSecure/Mayhem
 Startup company ForAllSecure
 Most member come from PPP CTF Team
 Researcher from CMU CyLab
 Next day to the CGC, Mayhem competed with top human
hackers in DEFCON CTF
 Mayhem get the last rank, but PPP win the game
37
 Cyber Reasoning System
 Given Challenge Binary
 Given OpRCB, IDS
CRS
CB
CB
CB
CB
CB
RCB
CB
CB
IDS
CB
CB
PCAP
RCB
IDS
CFE
POV
38
 Simulator for CGC Competition
 For CRS interface testing
39
 Client API
 Upload RCB, POV, IDS
 Download other team’s RCB, IDS
40
Availability
Security
Evaluation
除了會用不同方法檢查是
否符合功能完整性,還會
看time, memory usage,
and space efficiency,大
概共有2x-30個檢查 ,所
以分數是符合項/總檢查
數
0~1
1 or
2
1~2
X
X
被拿到flag or not
被拿到flag or not
Scoring 評分系統有三大指標
X
100
 DARPA provide the rich interface for demonstrate the
competition
 Cool visualization
43
44

45
• 2003年1月25日,SQL Slammer 蠕蟲短短10分鐘內,
感染七萬多台主機。
• 2010 MS LNK漏洞MS10-045,微軟Patch一次還不夠,
2015年又被挖出沒修好。
 HeartBleed
 Demonstrate how these technique can solve real world problem

48

49

50
51
52
53
54
55
 Determine if the program has a vulnerability is undicidable
 Assume we have a Machine M that can detect any vulnerability in the
program
 Halting Problem If M(P) has no bug:
do_some_bug()
Else:
do_nothing()
56
 If we have a execution trace, we can check if the bug appeared
in this path
 To testing software complete, we need to traversal all the code
inside the program
 Halting problem
 But we can still do something 
57
 Automatic generate the input to make the program crash
 Not inspect into program semantic
 Generate input randomly, or some heuristic
 Coverage-based
 AFL, Peach, BFF
58
 American Fuzzy Loop
 The easy-to-use fuzzer
 Efficiency
 low-level compile-time
instrumentation
 Coverage-based Fuzzer
 Effective Mutation Strategy
At least 4 team in CGC use AFL
59
 How AFL do?
1. Load user-supplied initial test cases into the queue
2. Take next input file from the queue
3. Attempt to trim the test case to the smallest size that doesn't
alter the measured behavior of the program,
4. Repeatedly mutate the file using a balanced and well-
researched variety of traditional fuzzing strategies
5. If any of the generated mutations resulted in a new state
transition recorded by the instrumentation, add mutated output
as a new entry in the queue.
6. Go to 2.
 Binary fuzzer -> QEMU(emulator) support
60
 Feed every thing in network PCAP into APF
 Using AFL as first layer checker
 Check if the input is worth for deep analysis
 This instance would run through each of the incoming PCAP files and
evaluate whether they brought anything "new" to the table.
Building an Autonomous Cyber Battle System: Our Experience in DARPA's Cyber
Grand Challenge
61
 Most test falls into some high frequency path
 Strategy to find the low frequency path
 Energy
 The number of inputs to be generated from that seed
 Strategy
 low energy to seeds exercising high-frequency paths
 high energy to seeds exercising low-frequency paths
 AFLFast Paper published in
 ACM Conference on Computer
and Communications Security
 Github
 https://github.com/mboehme/
aflfast
62
 Murphy is the directed fuzzer based on AFL
 Most improvement is on the efficiency
 Binary-only instrument
 Maybe base on BAP
63
 A mechanism to discover the code coverage
 Translate each instruction/code line into constraints
 Constraints: a formula define the operation functionality
 Collect all the constraints
 Solve when required condition is meet
 E.g. branch happened
64
1st 2nd 3rd
0 ebx = 0
1 ecx = 0
2 eax = 3
3 ebx = 3 ebx = 6 ebx = 9
4 ecx = 1 ecx = 2 ecx = 3
5 NE NE E
6 N N Y
7 Y Y
8 NE
9 N
0 mov ebx, 0
1 mov ecx, 0
2 mov eax, input
3 add ebx, eax
4 add ecx, 1
5 cmp ecx, 3
6 je final
7 jmp loop
8 cmp ebx, 15
9 je f1
f1 f2 65
1st 2nd 3rd
0 ebx_0 = 0
1 ecx_0 = 0
2 eax_0 = sym_0
3 ebx_1 =
ebx_0+eax_0
ebx_2 =
ebx_1+eax_0
ebx_3 =
ebx_2+eax_0
4 ecx_1 =
ecx_0+1
ecx_2 =
ecx_1+1
ecx_3 =
ecx_2+1
5 NE NE E
6 N N Y
7 Y Y
8 NE
9 N
66
0 mov ebx, 0
1 mov ecx, 0
2 mov eax, input
3 add ebx, eax
4 add ecx, 1
5 cmp ecx, 3
6 je final
7 jmp loop
8 cmp ebx, 15
9 je f1
f1 f2
 Can we jump to final block when loop 3
times?
1st 2nd 3rd
0 ebx_0 = 0
1 ecx_0 = 0
2 eax_0 = sym_0
3 ebx_1 =
ebx_0+eax_0
ebx_2 =
ebx_1+eax_0
ebx_3 =
ebx_2+eax_0
4 ecx_1 =
ecx_0+1
ecx_2 =
ecx_1+1
ecx_3 =
ecx_2+1
5 NE NE E
67
0 mov ebx, 0
1 mov ecx, 0
2 mov eax, input
3 add ebx, eax
4 add ecx, 1
5 cmp ecx, 3
6 je final
7 jmp loop
8 cmp ebx, 15
9 je f1
f1 f2
 Can we jump to final block when loop 3
times?
( = ecx_3 3)
( = ( + ecx_2 1 ) 3)
( = ( + (+ ecx_1 1 ) 1 ) 3)
( = ( + (+ (+ ecx_0 1) 1 ) 1 ) 3) and ( = ecx_0
0)
SMT Solver
SAT! This formula is
satisfiable.
68
0 mov ebx, 0
1 mov ecx, 0
2 mov eax, input
3 add ebx, eax
4 add ecx, 1
5 cmp ecx, 3
6 je final
7 jmp loop
8 cmp ebx, 15
9 je f1
f1 f2
 Can we enter f1?
1st 2nd 3rd
0 ebx_0 = 0
1 ecx_0 = 0
2 eax_0 = sym_0
3 ebx_1 =
ebx_0+eax_0
ebx_2 =
ebx_1+eax_0
ebx_3 =
ebx_2+eax_0
4 ecx_1 =
ecx_0+1
ecx_2 =
ecx_1+1
ecx_3 =
ecx_2+1
5 NE NE E
6 N N Y
7 Y Y
8 NE
9 N 69
0 mov ebx, 0
1 mov ecx, 0
2 mov eax, input
3 add ebx, eax
4 add ecx, 1
5 cmp ecx, 3
6 je final
7 jmp loop
8 cmp ebx, 15
9 je f1
f1 f2
 Tracking related instructions only?
1st 2nd 3rd
0 ebx = 0
1 ecx = 0
2 eax = 3
3 ebx = 3 ebx = 6 ebx = 9
4 ecx = 1 ecx = 2 ecx = 3
5 NE NE E
6 N N Y
7 Y Y
8 NE
9 N
70
0 mov ebx, 0
1 mov ecx, 0
2 mov eax, input
3 add ebx, eax
4 add ecx, 1
5 cmp ecx, 3
6 je final
7 jmp loop
8 cmp ebx, 15
9 je f1
f1 f2
 Number of possible path increasing exponentially
 In symbolic execution, every memory location is symbolize
 Too many symbole to solve
 Concolic Execution
 Only make the interesting memory symbolize
 Concrete value
71
1st 2nd 3rd
0 ebx_0 = 0
1 ecx_0 = 0
2 eax_0 = sym_0
3 ebx_1 =
ebx_0+eax_0
ebx_2 =
ebx_1+eax_0
ebx_3 =
ebx_2+eax_0
4 ecx_1 = 1 ecx_2 = 2 ecx_3 = 3
5 NE NE E
6 N N Y
7 Y Y
8 NE
9 N 72
0 mov ebx, 0
1 mov ecx, 0
2 mov eax, input
3 add ebx, eax
4 add ecx, 1
5 cmp ecx, 3
6 je final
7 jmp loop
8 cmp ebx, 15
9 je f1
f1 f2
 Which input make us arrive f1?
1st 2nd 3rd
0 ebx_0 = 0
1 ecx_0 = 0
2 eax_0 =
sym_0
3 ebx_1 =
ebx_0+eax_
0
ebx_2 =
ebx_1+eax_
0
ebx_3 =
ebx_2+eax_
0
4 ecx_1 = 1 ecx_2 = 2 ecx_3 = 3
5 NE NE E
6 N N Y
7 Y Y
8 NE
9 N
ebx_3
+
ebx_2
+
ebx_1
+
eax_0
eax_0
eax_0ebx_0
0 73
 Which input make us arrive f1?
Final
( = 15 (+ in ( + in (+ in 0) ) ) )
SMT Solver
SAT! This formula is
satisfiable when in = 5.
ebx_3
+
ebx_2
+
ebx_1
+
eax_0
eax_0
eax_0ebx_0
0
74
 In-house symbolic execution engine, called Grace
 Path Priority
 “Grace to focus on unique and interesting inputs, rather than
churning away at things that would likely lead down previously-
explored paths”
 Symbolize authentication/random token
 Powerful static
analysis
Building an Autonomous Cyber Battle System: Our Experience in DARPA's Cyber
Grand Challenge
75
 Virtual Machine Symbolic Execution
Framework - S2E
 Selective symbolic execution/Concolic
Execution
 Execution consistency models
 state merging and prioritizing
Whole
System
QEMU
KLEEBinary
LLVM
76
 Angr
 Not only the symbolic execution engine, but a binary analysis
framework
 http://angr.io/
“Cyber Grand Shellphish”, shellphish, DEFCON 24
77
 binary-only symbolic execution
 Fast than S2E(whole system/LLVM), Angr(VEX Simulator)
 BAP-based binary instrument
 Veritesting
 A search strategy based on coverage
 Other feature
 fine-tuned process-based instrumentation and taint analysis
 access to an extensive set of tested x86 semantics
 several years of performance tuning for solvers (expression
rewriting, caches, etc)
 path merging
78
 Shellphish
 SoK: (State of) The Art of War:
Offensive Techniques in Binary
Analysis
 IEEE Symposium on Security
and Privacy 2016
79
 One of most important technique we learn from CGC is “How to
integrate efficiency fuzzer and sophisticated symbolic
execution”
80
 sharing seeds between Mayhem and our custom AFL.
https://blog.forallsecure.com/2016/02/09/unleashing-mayhem/
81
 Seed sharing: fuzzer + S2E + traffic replay
 Path exploration
 S2E helps Fuzzer to break through some branches
82
 Remind of AFL Gate-Keeper
83
 Driller
 Switch between fuzzer and symbolic execution
 Driller: Augmenting Fuzzing Through Selective Symbolic Execution
 Network and Distributed System Security Symposium 2016
84
85
86
 DEP
 ASLR
 Stack Guard
 CFI
 Pointer Integrity
 Shadow Stack
 Binary Patch
 Input filter
 IDS
87
 PS: Meyhem put most attention on attack, doing less on defense
88
 Patcherex
 https://github.com/shellphish/patcherex
 QEMU 0 Day for anti-analysis
“Cyber Grand Shellphish”, shellphish, DEFCON 24
89
 Return pointer encryption
 Protect indirect calls/jmps
 Extended Malloc allocations
 Randomly shift the stack (ASLR)
 Clean uninitialized stack space
90
91Automatic Binary Exploitation and Patching using Mechanical [Shell]Phish
Automatic Patching
● Prevent binary form being exploit
● Preserve binary functionality
● Preserve binary performance
○ speed
○ memory usage
○ disk space
● Prevent analysis from other teams
92Automatic Binary Exploitation and Patching using Mechanical [Shell]Phish
Patcherex
Patching
Backends
Patching
Techniques
Patches
Patched Binary
Original Binary
93Automatic Binary Exploitation and Patching using Mechanical [Shell]Phish
Patcherex
● Defensive Techniques
○ Return pointer encryption
○ Protect indirect calls/jmps
○ Extended Malloc allocations
○ Randomly shift the stack (ASLR)
○ ...
94Automatic Binary Exploitation and Patching using Mechanical [Shell]Phish
Patcherex
● Adversarial Techniques
○ Detect QEMU
mov eax, 0x1
push eax
push eax
push eax
fld TBYTE PTR [esp]
fsqrt
○ Backdoor
○ ...
95Automatic Binary Exploitation and Patching using Mechanical [Shell]Phish
Patcherex
● Making the original binary faster →
Our patches can be slower!
● Optimization Techniques:
○ Constant Propagation
○ Dead Assignment Elimination
○ ...
96Automatic Binary Exploitation and Patching using Mechanical [Shell]Phish
Patcherex – Backends
● Patching Backends
○ Inject code/data in an existing binary
○ No source code
○ No symbols
97Automatic Binary Exploitation and Patching using Mechanical [Shell]Phish
Patcherex – Backends
● How to inject code without breaking functionality?
0x0 : mov eax, 0x11
0x5 : jmp eax
0x7 : mov edx, 0x11223344
0xc : mov ebx, 0x55667788
0x11: mov ecx, ebx
0x0 : mov eax, 0x11
0x5 : jmp eax
0x7: call inserted_function
0xc : mov edx, 0x11223344
0x11: mov ebx, 0x55667788
0x16: mov ecx, ebx
98Automatic Binary Exploitation and Patching using Mechanical [Shell]Phish
Patcherex – Backends
● Detour Backend
○ Try to add code without moving the original one
○ Not always possible
○ Slow (requires a lot of additional jmp instructions)
0x0 : mov eax, 0x11
0x5 : jmp eax
0x7 : mov edx, 0x11223344
0xc : mov ebx, 0x55667788
0x11: mov ecx, ebx
0x0 : mov eax, 0x11
0x5 : jmp eax
0x7 : jmp out1
0xc : mov ebx, 0x55667788
0x11: mov ecx, ebx
mov edx, 0x11223344
call inserted_function
jmp 0xc
99Automatic Binary Exploitation and Patching using Mechanical [Shell]Phish
Patcherex – Backends
● Reassemler Backend
○ Recover original “program symbols”
○ More efficient code
○ (Slightly) less reliable
Ramblr: Making Reassembly Great Again.
R. Wang, Y. Shoshitaishvili, A. Bianchi, A. Machiry, J. Grosen, P. Grosen, C. Kruegel,
G. Vigna
In NDSS 2017
100Automatic Binary Exploitation and Patching using Mechanical [Shell]Phish
Patcherex – Backends
0x0 : mov eax, 0x11
0x5 : jmp eax
0x7 : mov edx, 0x11223344
0xc : mov ebx, 0x55667788
0x11: mov ecx, ebx
mov eax, _label1
jmp eax
mov edx, 0x11223344
mov ebx, 0x55667788
_label1:
mov ecx, ebx
mov eax, _label1
jmp eax
call inserted_function
mov edx, 0x11223344
mov ebx, 0x55667788
_label1:
mov ecx, ebx
0x0 : mov eax, 0x16
0x5 : jmp eax
0x7 : call inserted _function
0xc : mov edx, 0x11223344
0x11: mov ebx, 0x55667788
0x16: mov ecx, ebx
 CFI: control flow integrity
 Shadow stacks
 Maintain a duplicate stack
 Once the return address difference from the one in shadow stack,
then attack is detected
 DEP
 Randomization
 Data leakage defense
101
 Control Flow Integrity
https://www.trust.informatik.tu-darmstadt.de/research/projects/current-
projects/control-flow-integrity/
102
 TechX achieve the
first place about
security
 PEASOUP
 Code Sonar
Building an Autonomous Cyber Battle System: Our Experience in DARPA's Cyber
Grand Challenge
103
 The other important aspect is “how to integrate many system in
large architecture”
 Handle with complicated system architecture
 Reliable is difficult
 Mayhem meets some problem and fails in half of the game
104
“Cyber Grand Shellphish”, shellphish, DEFCON 24
105
“Cyber Grand Challenge and CodeJitsu”, Chao Zhang
106
 DARPA CGC Introduction
 Most team have research, CTF and enterprise support
 Automatic Vulnerability Discovery
 Fuzzer and Symbolic Execution are widely used technique in CGC
 How to integrate fuzzer and symbolic execution
 Engineering Power: Integration many different software system
107
 https://cgc.darpa.mil/
 https://www.cybergrandchallenge.com/
 “DARPA’s Cyber Grand Challenge: Creating a League of Extra-Ordinary Machines”, Ben Price
and Michael Zhivich, ACSAC
 “Rise of the Machines: Cyber Grand Challenge 及 DEFCON 24 CTF 决赛介绍”, MaskRay
 “Cyber Grand Challenge and CodeJitsu”, Chao Zhang
 https://www.youtube.com/watch?v=xfgGZq86iWk
 Reddit IamA Mayhem, the Hacking Machine that won DARPA‘s Cyber Grand Challenge. AMA!
 Unleashing the Mayhem CRS, ForAllSecure
 “Cyber Grand Shellphish”, shellphish, DEFCON 24
 “The Cyber Grand Challenge”, GrammaTech Eric Rizzi
 “Hybrid Concolic Execution, Part 1 (Background)”, GrammaTech Ducson Nguyen
 “Hybrid Concolic Execution, Part 2”, GrammaTech Ducson Nguyen
 “Case Study: LEGIT_00004”, ForAllSecure
108
109

More Related Content

What's hot

Processor Verification Using Open Source Tools and the GCC Regression Test Suite
Processor Verification Using Open Source Tools and the GCC Regression Test SuiteProcessor Verification Using Open Source Tools and the GCC Regression Test Suite
Processor Verification Using Open Source Tools and the GCC Regression Test Suite
DVClub
 
Course lecture - An introduction to the Return Oriented Programming
Course lecture - An introduction to the Return Oriented ProgrammingCourse lecture - An introduction to the Return Oriented Programming
Course lecture - An introduction to the Return Oriented Programming
Jonathan Salwan
 
Power of linked list
Power of linked listPower of linked list
Power of linked list
Peter Hlavaty
 
CSW2017 Henry li how to find the vulnerability to bypass the control flow gua...
CSW2017 Henry li how to find the vulnerability to bypass the control flow gua...CSW2017 Henry li how to find the vulnerability to bypass the control flow gua...
CSW2017 Henry li how to find the vulnerability to bypass the control flow gua...
CanSecWest
 
Dive into ROP - a quick introduction to Return Oriented Programming
Dive into ROP - a quick introduction to Return Oriented ProgrammingDive into ROP - a quick introduction to Return Oriented Programming
Dive into ROP - a quick introduction to Return Oriented Programming
Saumil Shah
 
syzbot and the tale of million kernel bugs
syzbot and the tale of million kernel bugssyzbot and the tale of million kernel bugs
syzbot and the tale of million kernel bugs
Dmitry Vyukov
 
How Safe is your Link ?
How Safe is your Link ?How Safe is your Link ?
How Safe is your Link ?
Peter Hlavaty
 
Статический анализ кода в контексте SSDL
Статический анализ кода в контексте SSDLСтатический анализ кода в контексте SSDL
Статический анализ кода в контексте SSDL
Positive Hack Days
 
Buffer overflow attacks
Buffer overflow attacksBuffer overflow attacks
Buffer overflow attacks
Japneet Singh
 
Valgrind overview: runtime memory checker and a bit more aka использование #v...
Valgrind overview: runtime memory checker and a bit more aka использование #v...Valgrind overview: runtime memory checker and a bit more aka использование #v...
Valgrind overview: runtime memory checker and a bit more aka использование #v...
Minsk Linux User Group
 
Possibility of arbitrary code execution by Step-Oriented Programming
Possibility of arbitrary code execution by Step-Oriented ProgrammingPossibility of arbitrary code execution by Step-Oriented Programming
Possibility of arbitrary code execution by Step-Oriented Programming
kozossakai
 
Developer support/process automation tools
Developer support/process automation toolsDeveloper support/process automation tools
Developer support/process automation tools
Dmitry Vyukov
 
HIS 2015: Prof. Ian Phillips - Stronger than its weakest link
HIS 2015: Prof. Ian Phillips - Stronger than its weakest linkHIS 2015: Prof. Ian Phillips - Stronger than its weakest link
HIS 2015: Prof. Ian Phillips - Stronger than its weakest link
AdaCore
 
syzkaller: the next gen kernel fuzzer
syzkaller: the next gen kernel fuzzersyzkaller: the next gen kernel fuzzer
syzkaller: the next gen kernel fuzzer
Dmitry Vyukov
 
Search for Vulnerabilities Using Static Code Analysis
Search for Vulnerabilities Using Static Code AnalysisSearch for Vulnerabilities Using Static Code Analysis
Search for Vulnerabilities Using Static Code Analysis
Andrey Karpov
 
How to reverse engineer Android applications
How to reverse engineer Android applicationsHow to reverse engineer Android applications
How to reverse engineer Android applications
hubx
 
Attack on the Core
Attack on the CoreAttack on the Core
Attack on the Core
Peter Hlavaty
 
Hacking - high school intro
Hacking - high school introHacking - high school intro
Hacking - high school intro
Peter Hlavaty
 
Mitigating overflows using defense in-depth. What can your compiler do for you?
Mitigating overflows using defense in-depth. What can your compiler do for you?Mitigating overflows using defense in-depth. What can your compiler do for you?
Mitigating overflows using defense in-depth. What can your compiler do for you?
Javier Tallón
 
Guardians of your CODE
Guardians of your CODEGuardians of your CODE
Guardians of your CODE
Peter Hlavaty
 

What's hot (20)

Processor Verification Using Open Source Tools and the GCC Regression Test Suite
Processor Verification Using Open Source Tools and the GCC Regression Test SuiteProcessor Verification Using Open Source Tools and the GCC Regression Test Suite
Processor Verification Using Open Source Tools and the GCC Regression Test Suite
 
Course lecture - An introduction to the Return Oriented Programming
Course lecture - An introduction to the Return Oriented ProgrammingCourse lecture - An introduction to the Return Oriented Programming
Course lecture - An introduction to the Return Oriented Programming
 
Power of linked list
Power of linked listPower of linked list
Power of linked list
 
CSW2017 Henry li how to find the vulnerability to bypass the control flow gua...
CSW2017 Henry li how to find the vulnerability to bypass the control flow gua...CSW2017 Henry li how to find the vulnerability to bypass the control flow gua...
CSW2017 Henry li how to find the vulnerability to bypass the control flow gua...
 
Dive into ROP - a quick introduction to Return Oriented Programming
Dive into ROP - a quick introduction to Return Oriented ProgrammingDive into ROP - a quick introduction to Return Oriented Programming
Dive into ROP - a quick introduction to Return Oriented Programming
 
syzbot and the tale of million kernel bugs
syzbot and the tale of million kernel bugssyzbot and the tale of million kernel bugs
syzbot and the tale of million kernel bugs
 
How Safe is your Link ?
How Safe is your Link ?How Safe is your Link ?
How Safe is your Link ?
 
Статический анализ кода в контексте SSDL
Статический анализ кода в контексте SSDLСтатический анализ кода в контексте SSDL
Статический анализ кода в контексте SSDL
 
Buffer overflow attacks
Buffer overflow attacksBuffer overflow attacks
Buffer overflow attacks
 
Valgrind overview: runtime memory checker and a bit more aka использование #v...
Valgrind overview: runtime memory checker and a bit more aka использование #v...Valgrind overview: runtime memory checker and a bit more aka использование #v...
Valgrind overview: runtime memory checker and a bit more aka использование #v...
 
Possibility of arbitrary code execution by Step-Oriented Programming
Possibility of arbitrary code execution by Step-Oriented ProgrammingPossibility of arbitrary code execution by Step-Oriented Programming
Possibility of arbitrary code execution by Step-Oriented Programming
 
Developer support/process automation tools
Developer support/process automation toolsDeveloper support/process automation tools
Developer support/process automation tools
 
HIS 2015: Prof. Ian Phillips - Stronger than its weakest link
HIS 2015: Prof. Ian Phillips - Stronger than its weakest linkHIS 2015: Prof. Ian Phillips - Stronger than its weakest link
HIS 2015: Prof. Ian Phillips - Stronger than its weakest link
 
syzkaller: the next gen kernel fuzzer
syzkaller: the next gen kernel fuzzersyzkaller: the next gen kernel fuzzer
syzkaller: the next gen kernel fuzzer
 
Search for Vulnerabilities Using Static Code Analysis
Search for Vulnerabilities Using Static Code AnalysisSearch for Vulnerabilities Using Static Code Analysis
Search for Vulnerabilities Using Static Code Analysis
 
How to reverse engineer Android applications
How to reverse engineer Android applicationsHow to reverse engineer Android applications
How to reverse engineer Android applications
 
Attack on the Core
Attack on the CoreAttack on the Core
Attack on the Core
 
Hacking - high school intro
Hacking - high school introHacking - high school intro
Hacking - high school intro
 
Mitigating overflows using defense in-depth. What can your compiler do for you?
Mitigating overflows using defense in-depth. What can your compiler do for you?Mitigating overflows using defense in-depth. What can your compiler do for you?
Mitigating overflows using defense in-depth. What can your compiler do for you?
 
Guardians of your CODE
Guardians of your CODEGuardians of your CODE
Guardians of your CODE
 

Similar to Cgc2

Security Monitoring with eBPF
Security Monitoring with eBPFSecurity Monitoring with eBPF
Security Monitoring with eBPF
Alex Maestretti
 
Pragmatic Optimization in Modern Programming - Demystifying the Compiler
Pragmatic Optimization in Modern Programming - Demystifying the CompilerPragmatic Optimization in Modern Programming - Demystifying the Compiler
Pragmatic Optimization in Modern Programming - Demystifying the Compiler
Marina Kolpakova
 
Symbolic Execution And KLEE
Symbolic Execution And KLEESymbolic Execution And KLEE
Symbolic Execution And KLEE
Shauvik Roy Choudhary, Ph.D.
 
Cray XT Porting, Scaling, and Optimization Best Practices
Cray XT Porting, Scaling, and Optimization Best PracticesCray XT Porting, Scaling, and Optimization Best Practices
Cray XT Porting, Scaling, and Optimization Best Practices
Jeff Larkin
 
emips_overview_apr08
emips_overview_apr08emips_overview_apr08
emips_overview_apr08
Neil Pittman
 
May2010 hex-core-opt
May2010 hex-core-optMay2010 hex-core-opt
May2010 hex-core-opt
Jeff Larkin
 
How Triton can help to reverse virtual machine based software protections
How Triton can help to reverse virtual machine based software protectionsHow Triton can help to reverse virtual machine based software protections
How Triton can help to reverse virtual machine based software protections
Jonathan Salwan
 
The Spectre of Meltdowns
The Spectre of MeltdownsThe Spectre of Meltdowns
The Spectre of Meltdowns
Andriy Berestovskyy
 
Georgy Nosenko - An introduction to the use SMT solvers for software security
Georgy Nosenko - An introduction to the use SMT solvers for software securityGeorgy Nosenko - An introduction to the use SMT solvers for software security
Georgy Nosenko - An introduction to the use SMT solvers for software security
DefconRussia
 
Linux Kernel, tested by the Linux-version of PVS-Studio
Linux Kernel, tested by the Linux-version of PVS-StudioLinux Kernel, tested by the Linux-version of PVS-Studio
Linux Kernel, tested by the Linux-version of PVS-Studio
PVS-Studio
 
On chip crosstalk_avoidance_codec_design_using_fibonacci
On chip crosstalk_avoidance_codec_design_using_fibonacciOn chip crosstalk_avoidance_codec_design_using_fibonacci
On chip crosstalk_avoidance_codec_design_using_fibonacci
bharath naidu
 
Grow and Shrink - Dynamically Extending the Ruby VM Stack
Grow and Shrink - Dynamically Extending the Ruby VM StackGrow and Shrink - Dynamically Extending the Ruby VM Stack
Grow and Shrink - Dynamically Extending the Ruby VM Stack
KeitaSugiyama1
 
PVS-Studio, a solution for resource intensive applications development
PVS-Studio, a solution for resource intensive applications developmentPVS-Studio, a solution for resource intensive applications development
PVS-Studio, a solution for resource intensive applications development
OOO "Program Verification Systems"
 
[CCC-28c3] Post Memory Corruption Memory Analysis
[CCC-28c3] Post Memory Corruption Memory Analysis[CCC-28c3] Post Memory Corruption Memory Analysis
[CCC-28c3] Post Memory Corruption Memory Analysis
Moabi.com
 
TiReX: Tiled Regular eXpression matching architecture
TiReX: Tiled Regular eXpression matching architectureTiReX: Tiled Regular eXpression matching architecture
TiReX: Tiled Regular eXpression matching architecture
NECST Lab @ Politecnico di Milano
 
Symbolic Execution (introduction and hands-on)
Symbolic Execution (introduction and hands-on)Symbolic Execution (introduction and hands-on)
Symbolic Execution (introduction and hands-on)
Emilio Coppa
 
Porting is a Delicate Matter: Checking Far Manager under Linux
Porting is a Delicate Matter: Checking Far Manager under LinuxPorting is a Delicate Matter: Checking Far Manager under Linux
Porting is a Delicate Matter: Checking Far Manager under Linux
PVS-Studio
 
Direct Code Execution - LinuxCon Japan 2014
Direct Code Execution - LinuxCon Japan 2014Direct Code Execution - LinuxCon Japan 2014
Direct Code Execution - LinuxCon Japan 2014
Hajime Tazaki
 
Рахманов Александр "Что полезного в разборе дампов для .NET-разработчиков?"
Рахманов Александр "Что полезного в разборе дампов для .NET-разработчиков?"Рахманов Александр "Что полезного в разборе дампов для .NET-разработчиков?"
Рахманов Александр "Что полезного в разборе дампов для .NET-разработчиков?"
Yulia Tsisyk
 
Adding a BOLT pass
Adding a BOLT passAdding a BOLT pass
Adding a BOLT pass
Amir42407
 

Similar to Cgc2 (20)

Security Monitoring with eBPF
Security Monitoring with eBPFSecurity Monitoring with eBPF
Security Monitoring with eBPF
 
Pragmatic Optimization in Modern Programming - Demystifying the Compiler
Pragmatic Optimization in Modern Programming - Demystifying the CompilerPragmatic Optimization in Modern Programming - Demystifying the Compiler
Pragmatic Optimization in Modern Programming - Demystifying the Compiler
 
Symbolic Execution And KLEE
Symbolic Execution And KLEESymbolic Execution And KLEE
Symbolic Execution And KLEE
 
Cray XT Porting, Scaling, and Optimization Best Practices
Cray XT Porting, Scaling, and Optimization Best PracticesCray XT Porting, Scaling, and Optimization Best Practices
Cray XT Porting, Scaling, and Optimization Best Practices
 
emips_overview_apr08
emips_overview_apr08emips_overview_apr08
emips_overview_apr08
 
May2010 hex-core-opt
May2010 hex-core-optMay2010 hex-core-opt
May2010 hex-core-opt
 
How Triton can help to reverse virtual machine based software protections
How Triton can help to reverse virtual machine based software protectionsHow Triton can help to reverse virtual machine based software protections
How Triton can help to reverse virtual machine based software protections
 
The Spectre of Meltdowns
The Spectre of MeltdownsThe Spectre of Meltdowns
The Spectre of Meltdowns
 
Georgy Nosenko - An introduction to the use SMT solvers for software security
Georgy Nosenko - An introduction to the use SMT solvers for software securityGeorgy Nosenko - An introduction to the use SMT solvers for software security
Georgy Nosenko - An introduction to the use SMT solvers for software security
 
Linux Kernel, tested by the Linux-version of PVS-Studio
Linux Kernel, tested by the Linux-version of PVS-StudioLinux Kernel, tested by the Linux-version of PVS-Studio
Linux Kernel, tested by the Linux-version of PVS-Studio
 
On chip crosstalk_avoidance_codec_design_using_fibonacci
On chip crosstalk_avoidance_codec_design_using_fibonacciOn chip crosstalk_avoidance_codec_design_using_fibonacci
On chip crosstalk_avoidance_codec_design_using_fibonacci
 
Grow and Shrink - Dynamically Extending the Ruby VM Stack
Grow and Shrink - Dynamically Extending the Ruby VM StackGrow and Shrink - Dynamically Extending the Ruby VM Stack
Grow and Shrink - Dynamically Extending the Ruby VM Stack
 
PVS-Studio, a solution for resource intensive applications development
PVS-Studio, a solution for resource intensive applications developmentPVS-Studio, a solution for resource intensive applications development
PVS-Studio, a solution for resource intensive applications development
 
[CCC-28c3] Post Memory Corruption Memory Analysis
[CCC-28c3] Post Memory Corruption Memory Analysis[CCC-28c3] Post Memory Corruption Memory Analysis
[CCC-28c3] Post Memory Corruption Memory Analysis
 
TiReX: Tiled Regular eXpression matching architecture
TiReX: Tiled Regular eXpression matching architectureTiReX: Tiled Regular eXpression matching architecture
TiReX: Tiled Regular eXpression matching architecture
 
Symbolic Execution (introduction and hands-on)
Symbolic Execution (introduction and hands-on)Symbolic Execution (introduction and hands-on)
Symbolic Execution (introduction and hands-on)
 
Porting is a Delicate Matter: Checking Far Manager under Linux
Porting is a Delicate Matter: Checking Far Manager under LinuxPorting is a Delicate Matter: Checking Far Manager under Linux
Porting is a Delicate Matter: Checking Far Manager under Linux
 
Direct Code Execution - LinuxCon Japan 2014
Direct Code Execution - LinuxCon Japan 2014Direct Code Execution - LinuxCon Japan 2014
Direct Code Execution - LinuxCon Japan 2014
 
Рахманов Александр "Что полезного в разборе дампов для .NET-разработчиков?"
Рахманов Александр "Что полезного в разборе дампов для .NET-разработчиков?"Рахманов Александр "Что полезного в разборе дампов для .NET-разработчиков?"
Рахманов Александр "Что полезного в разборе дампов для .NET-разработчиков?"
 
Adding a BOLT pass
Adding a BOLT passAdding a BOLT pass
Adding a BOLT pass
 

More from Chong-Kuan Chen

Compilation and Execution
Compilation and ExecutionCompilation and Execution
Compilation and Execution
Chong-Kuan Chen
 
Oram And Secure Computation
Oram And Secure ComputationOram And Secure Computation
Oram And Secure Computation
Chong-Kuan Chen
 
Mem forensic
Mem forensicMem forensic
Mem forensic
Chong-Kuan Chen
 
Addios!
Addios!Addios!
Security events in 2014
Security events in 2014Security events in 2014
Security events in 2014
Chong-Kuan Chen
 
Automatic tool for static analysis
Automatic tool for static analysisAutomatic tool for static analysis
Automatic tool for static analysis
Chong-Kuan Chen
 
Intro. to static analysis
Intro. to static analysisIntro. to static analysis
Intro. to static analysis
Chong-Kuan Chen
 
Android Application Security
Android Application SecurityAndroid Application Security
Android Application Security
Chong-Kuan Chen
 
Android system security
Android system securityAndroid system security
Android system security
Chong-Kuan Chen
 
HITCON CTF 2014 BambooFox 解題心得分享
HITCON CTF 2014 BambooFox 解題心得分享HITCON CTF 2014 BambooFox 解題心得分享
HITCON CTF 2014 BambooFox 解題心得分享
Chong-Kuan Chen
 
Inside the Matrix,How to Build Transparent Sandbox for Malware Analysis
Inside the Matrix,How to Build Transparent Sandbox for Malware AnalysisInside the Matrix,How to Build Transparent Sandbox for Malware Analysis
Inside the Matrix,How to Build Transparent Sandbox for Malware Analysis
Chong-Kuan Chen
 
Become A Security Master
Become A Security MasterBecome A Security Master
Become A Security Master
Chong-Kuan Chen
 
Malware Detection - A Machine Learning Perspective
Malware Detection - A Machine Learning PerspectiveMalware Detection - A Machine Learning Perspective
Malware Detection - A Machine Learning Perspective
Chong-Kuan Chen
 
Malware collection and analysis
Malware collection and analysisMalware collection and analysis
Malware collection and analysis
Chong-Kuan Chen
 
Malware classification and detection
Malware classification and detectionMalware classification and detection
Malware classification and detection
Chong-Kuan Chen
 
2012 S&P Paper Reading Session1
2012 S&P Paper Reading Session12012 S&P Paper Reading Session1
2012 S&P Paper Reading Session1
Chong-Kuan Chen
 

More from Chong-Kuan Chen (16)

Compilation and Execution
Compilation and ExecutionCompilation and Execution
Compilation and Execution
 
Oram And Secure Computation
Oram And Secure ComputationOram And Secure Computation
Oram And Secure Computation
 
Mem forensic
Mem forensicMem forensic
Mem forensic
 
Addios!
Addios!Addios!
Addios!
 
Security events in 2014
Security events in 2014Security events in 2014
Security events in 2014
 
Automatic tool for static analysis
Automatic tool for static analysisAutomatic tool for static analysis
Automatic tool for static analysis
 
Intro. to static analysis
Intro. to static analysisIntro. to static analysis
Intro. to static analysis
 
Android Application Security
Android Application SecurityAndroid Application Security
Android Application Security
 
Android system security
Android system securityAndroid system security
Android system security
 
HITCON CTF 2014 BambooFox 解題心得分享
HITCON CTF 2014 BambooFox 解題心得分享HITCON CTF 2014 BambooFox 解題心得分享
HITCON CTF 2014 BambooFox 解題心得分享
 
Inside the Matrix,How to Build Transparent Sandbox for Malware Analysis
Inside the Matrix,How to Build Transparent Sandbox for Malware AnalysisInside the Matrix,How to Build Transparent Sandbox for Malware Analysis
Inside the Matrix,How to Build Transparent Sandbox for Malware Analysis
 
Become A Security Master
Become A Security MasterBecome A Security Master
Become A Security Master
 
Malware Detection - A Machine Learning Perspective
Malware Detection - A Machine Learning PerspectiveMalware Detection - A Machine Learning Perspective
Malware Detection - A Machine Learning Perspective
 
Malware collection and analysis
Malware collection and analysisMalware collection and analysis
Malware collection and analysis
 
Malware classification and detection
Malware classification and detectionMalware classification and detection
Malware classification and detection
 
2012 S&P Paper Reading Session1
2012 S&P Paper Reading Session12012 S&P Paper Reading Session1
2012 S&P Paper Reading Session1
 

Recently uploaded

Software Engineering and Project Management - Introduction, Modeling Concepts...
Software Engineering and Project Management - Introduction, Modeling Concepts...Software Engineering and Project Management - Introduction, Modeling Concepts...
Software Engineering and Project Management - Introduction, Modeling Concepts...
Prakhyath Rai
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
uqyfuc
 
2. protection of river banks and bed erosion protection works.ppt
2. protection of river banks and bed erosion protection works.ppt2. protection of river banks and bed erosion protection works.ppt
2. protection of river banks and bed erosion protection works.ppt
abdatawakjira
 
smart pill dispenser is designed to improve medication adherence and safety f...
smart pill dispenser is designed to improve medication adherence and safety f...smart pill dispenser is designed to improve medication adherence and safety f...
smart pill dispenser is designed to improve medication adherence and safety f...
um7474492
 
Zener Diode and its V-I Characteristics and Applications
Zener Diode and its V-I Characteristics and ApplicationsZener Diode and its V-I Characteristics and Applications
Zener Diode and its V-I Characteristics and Applications
Shiny Christobel
 
一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理
一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理
一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理
ecqow
 
Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...
Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...
Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...
PriyankaKilaniya
 
Applications of artificial Intelligence in Mechanical Engineering.pdf
Applications of artificial Intelligence in Mechanical Engineering.pdfApplications of artificial Intelligence in Mechanical Engineering.pdf
Applications of artificial Intelligence in Mechanical Engineering.pdf
Atif Razi
 
一比一原版(uoft毕业证书)加拿大多伦多大学毕业证如何办理
一比一原版(uoft毕业证书)加拿大多伦多大学毕业证如何办理一比一原版(uoft毕业证书)加拿大多伦多大学毕业证如何办理
一比一原版(uoft毕业证书)加拿大多伦多大学毕业证如何办理
sydezfe
 
Introduction to Computer Networks & OSI MODEL.ppt
Introduction to Computer Networks & OSI MODEL.pptIntroduction to Computer Networks & OSI MODEL.ppt
Introduction to Computer Networks & OSI MODEL.ppt
Dwarkadas J Sanghvi College of Engineering
 
AI-Based Home Security System : Home security
AI-Based Home Security System : Home securityAI-Based Home Security System : Home security
AI-Based Home Security System : Home security
AIRCC Publishing Corporation
 
一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
upoux
 
Use PyCharm for remote debugging of WSL on a Windo cf5c162d672e4e58b4dde5d797...
Use PyCharm for remote debugging of WSL on a Windo cf5c162d672e4e58b4dde5d797...Use PyCharm for remote debugging of WSL on a Windo cf5c162d672e4e58b4dde5d797...
Use PyCharm for remote debugging of WSL on a Windo cf5c162d672e4e58b4dde5d797...
shadow0702a
 
Mechatronics material . Mechanical engineering
Mechatronics material . Mechanical engineeringMechatronics material . Mechanical engineering
Mechatronics material . Mechanical engineering
sachin chaurasia
 
SENTIMENT ANALYSIS ON PPT AND Project template_.pptx
SENTIMENT ANALYSIS ON PPT AND Project template_.pptxSENTIMENT ANALYSIS ON PPT AND Project template_.pptx
SENTIMENT ANALYSIS ON PPT AND Project template_.pptx
b0754201
 
Tools & Techniques for Commissioning and Maintaining PV Systems W-Animations ...
Tools & Techniques for Commissioning and Maintaining PV Systems W-Animations ...Tools & Techniques for Commissioning and Maintaining PV Systems W-Animations ...
Tools & Techniques for Commissioning and Maintaining PV Systems W-Animations ...
Transcat
 
LLM Fine Tuning with QLoRA Cassandra Lunch 4, presented by Anant
LLM Fine Tuning with QLoRA Cassandra Lunch 4, presented by AnantLLM Fine Tuning with QLoRA Cassandra Lunch 4, presented by Anant
LLM Fine Tuning with QLoRA Cassandra Lunch 4, presented by Anant
Anant Corporation
 
Null Bangalore | Pentesters Approach to AWS IAM
Null Bangalore | Pentesters Approach to AWS IAMNull Bangalore | Pentesters Approach to AWS IAM
Null Bangalore | Pentesters Approach to AWS IAM
Divyanshu
 
1FIDIC-CONSTRUCTION-CONTRACT-2ND-ED-2017-RED-BOOK.pdf
1FIDIC-CONSTRUCTION-CONTRACT-2ND-ED-2017-RED-BOOK.pdf1FIDIC-CONSTRUCTION-CONTRACT-2ND-ED-2017-RED-BOOK.pdf
1FIDIC-CONSTRUCTION-CONTRACT-2ND-ED-2017-RED-BOOK.pdf
MadhavJungKarki
 
AI + Data Community Tour - Build the Next Generation of Apps with the Einstei...
AI + Data Community Tour - Build the Next Generation of Apps with the Einstei...AI + Data Community Tour - Build the Next Generation of Apps with the Einstei...
AI + Data Community Tour - Build the Next Generation of Apps with the Einstei...
Paris Salesforce Developer Group
 

Recently uploaded (20)

Software Engineering and Project Management - Introduction, Modeling Concepts...
Software Engineering and Project Management - Introduction, Modeling Concepts...Software Engineering and Project Management - Introduction, Modeling Concepts...
Software Engineering and Project Management - Introduction, Modeling Concepts...
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
 
2. protection of river banks and bed erosion protection works.ppt
2. protection of river banks and bed erosion protection works.ppt2. protection of river banks and bed erosion protection works.ppt
2. protection of river banks and bed erosion protection works.ppt
 
smart pill dispenser is designed to improve medication adherence and safety f...
smart pill dispenser is designed to improve medication adherence and safety f...smart pill dispenser is designed to improve medication adherence and safety f...
smart pill dispenser is designed to improve medication adherence and safety f...
 
Zener Diode and its V-I Characteristics and Applications
Zener Diode and its V-I Characteristics and ApplicationsZener Diode and its V-I Characteristics and Applications
Zener Diode and its V-I Characteristics and Applications
 
一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理
一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理
一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理
 
Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...
Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...
Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...
 
Applications of artificial Intelligence in Mechanical Engineering.pdf
Applications of artificial Intelligence in Mechanical Engineering.pdfApplications of artificial Intelligence in Mechanical Engineering.pdf
Applications of artificial Intelligence in Mechanical Engineering.pdf
 
一比一原版(uoft毕业证书)加拿大多伦多大学毕业证如何办理
一比一原版(uoft毕业证书)加拿大多伦多大学毕业证如何办理一比一原版(uoft毕业证书)加拿大多伦多大学毕业证如何办理
一比一原版(uoft毕业证书)加拿大多伦多大学毕业证如何办理
 
Introduction to Computer Networks & OSI MODEL.ppt
Introduction to Computer Networks & OSI MODEL.pptIntroduction to Computer Networks & OSI MODEL.ppt
Introduction to Computer Networks & OSI MODEL.ppt
 
AI-Based Home Security System : Home security
AI-Based Home Security System : Home securityAI-Based Home Security System : Home security
AI-Based Home Security System : Home security
 
一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
一比一原版(uofo毕业证书)美国俄勒冈大学毕业证如何办理
 
Use PyCharm for remote debugging of WSL on a Windo cf5c162d672e4e58b4dde5d797...
Use PyCharm for remote debugging of WSL on a Windo cf5c162d672e4e58b4dde5d797...Use PyCharm for remote debugging of WSL on a Windo cf5c162d672e4e58b4dde5d797...
Use PyCharm for remote debugging of WSL on a Windo cf5c162d672e4e58b4dde5d797...
 
Mechatronics material . Mechanical engineering
Mechatronics material . Mechanical engineeringMechatronics material . Mechanical engineering
Mechatronics material . Mechanical engineering
 
SENTIMENT ANALYSIS ON PPT AND Project template_.pptx
SENTIMENT ANALYSIS ON PPT AND Project template_.pptxSENTIMENT ANALYSIS ON PPT AND Project template_.pptx
SENTIMENT ANALYSIS ON PPT AND Project template_.pptx
 
Tools & Techniques for Commissioning and Maintaining PV Systems W-Animations ...
Tools & Techniques for Commissioning and Maintaining PV Systems W-Animations ...Tools & Techniques for Commissioning and Maintaining PV Systems W-Animations ...
Tools & Techniques for Commissioning and Maintaining PV Systems W-Animations ...
 
LLM Fine Tuning with QLoRA Cassandra Lunch 4, presented by Anant
LLM Fine Tuning with QLoRA Cassandra Lunch 4, presented by AnantLLM Fine Tuning with QLoRA Cassandra Lunch 4, presented by Anant
LLM Fine Tuning with QLoRA Cassandra Lunch 4, presented by Anant
 
Null Bangalore | Pentesters Approach to AWS IAM
Null Bangalore | Pentesters Approach to AWS IAMNull Bangalore | Pentesters Approach to AWS IAM
Null Bangalore | Pentesters Approach to AWS IAM
 
1FIDIC-CONSTRUCTION-CONTRACT-2ND-ED-2017-RED-BOOK.pdf
1FIDIC-CONSTRUCTION-CONTRACT-2ND-ED-2017-RED-BOOK.pdf1FIDIC-CONSTRUCTION-CONTRACT-2ND-ED-2017-RED-BOOK.pdf
1FIDIC-CONSTRUCTION-CONTRACT-2ND-ED-2017-RED-BOOK.pdf
 
AI + Data Community Tour - Build the Next Generation of Apps with the Einstei...
AI + Data Community Tour - Build the Next Generation of Apps with the Einstei...AI + Data Community Tour - Build the Next Generation of Apps with the Einstei...
AI + Data Community Tour - Build the Next Generation of Apps with the Einstei...
 

Cgc2

  • 1. 從DARPA CGC及DEFCON CTF探討自動攻防技術 C.K. Chen Twitter: Bletchley13 ckchen@cs.nctu.edu.tw 1
  • 2.  陳仲寬(Bletchley)  交通大學網路安全實驗室博士生  Sandbox: https://github.com/GlacierW/MBA  Malware, Vulnerability, Virtual Machine, Machine Learning  BambooFox領隊/交大網樂安全策進會顧問  CTF, CTF and more CTFs  Rank 31 in ctftime 2016  NCTU PT Team -> discover about 40 bugs in NCTU  Synology bug bounty -> 7 bugs and about 40w NTD  HackerCollege Member  http://hackercollege.nctu.edu.tw/  HITCON.KB Editor  …. 2
  • 3.  Introduction to CGC  CQE  CFE  Automatic Vulnerability Discovery  Fuzz  Symbolic/Concolic Execution  Symbolic-assist Fuzzing  Software Hardeness  General Protection  Software Patch  Conclusion 3
  • 4. 4
  • 5.  A weakness of an asset or group of assets that can be exploited by one or more threats -- ISO 27005  Programmer may make some mistakes, the unpredictable behavior may result in software vulnerability  Buffer overflow  Use-After-Free  Type Confusion  What attacker can do?  Information leak – Heartbleed  Arbitrary Code Execution - PHPMailer 5
  • 6.  CVE is a dictionary of publicly known information security vulnerabilities and exposures  More than 10000 CVEs in 2016 6
  • 7.  Malware, which may use vulnerability to attack/exploit, is mostly active only 2~3 hours  The vulnerability needs about 24 day to patch  Between the time windows, it’s the 0 day. 7
  • 8. void do_something(char *Buffer) { char MyVar[128]; strcpy(MyVar,Buffer); } int main (int argc, char **argv) { do_something(argv[1]); } 8
  • 9. 9
  • 10.  The a prize competition organized by DARPA to make innovation for next generation technique  2007 Urban Challenge  2012 Robotics Challenge  Cyber Grand Challenge  The first full machine attack-defense CTF  Focus on develop automatic attack-defense system 10
  • 11.  7 teams are qualified to compete the final champion 11
  • 12.  Start from 2014  Qualification round in June 3, 2015 12
  • 13.  Modified Linux  Customize ELF format  only 7 syscalls  terminate (exit)  transmit (write)  receive (read)  fdwait (select)  allocate (mmap)  deallocate (munmap)  Random  no signal handling, no not-executable stack, no ASLR, … 13
  • 14.  CGC format  Minor modification to ELF  32-bit, x86  Inetd-style services  Each connection create a new process  IPC, communicate via controlled fd socket-pairs  Userspace  Statically linked  Compiled Binaries only (not hand coded) 14
  • 15. Text vs Code of trivial program
  • 16.  Type 1  Hi-jack control flow  Control EIP and one register  Type 2  Information leak  Leak information in the magic page 16
  • 17.  Cyber Reasoning System  Given Challenge Binary CRS CB CB CB RCB IDS POV 17
  • 18.  113 CBs are provided to participator’s CRS  CRS – Cyber Reasoning System  Produce crash  Generate and apply patch  2 Scored Events for testing the CRS  基本理念是希望展現各隊的特長。若某個CB全部隊伍都解出/都沒 解出,這些題目分數就會較低。而只有部分隊伍解出的題目,將會 得到比較高的分數。這樣的計分方式可以鼓勵各隊提出不同獨特的 程式分析技術。 18
  • 19.  VM Provided by DARPA  Code and Data  https://github.com/cybergrandchallenge  https://repo.cybergrandchallenge.com/  VirtualBox VM and Vagrant 19
  • 20.  A small program with overflow  Crash when we give it long input 20
  • 21.  POV in XML format 21
  • 22.  Based on regular expression  Most teams in final doesn’t like IDS 22
  • 23.  Testing if your POV crash the CB 23
  • 24.  Poller : Check if your program remains it’s functionalities  Cb-test can test if your patch binary pass the poller 24
  • 25.  SECUINSIDE CTF 2016  Simple ECHO Server  Ask user name  Echo every thing from user  Make it crash to get the flag 25
  • 26.  Use radare2 to reverse  Steps  Become admin  Give admin’s key  Reach crash point  How to find admin’s key  Use symbolic execution  We will talk about it later  26 mov dword [ebp - local_454h], 0 mov eax, dword [ebp - local_454h] mov byte [eax], 0xa
  • 27. 27
  • 28. 28
  • 29. 29
  • 33. 33
  • 35. Team Research CTF Enterprise CodeJitsu Berkeley BlueLotus Cyberhaven CSDS University of Idaho Deep Red Some CTF Player Raytheon disekt Different university disekt ForAllSecure CMU CyLab PPP ForAllSecure Shellphish UCSB Shellphish LastLine TECHx University of Virginia Some White Hack Students GrammaTech 35
  • 36. 36
  • 37.  CGC Final Event was held at DEF CON 2016  Final Winner – ForAllSecure/Mayhem  Startup company ForAllSecure  Most member come from PPP CTF Team  Researcher from CMU CyLab  Next day to the CGC, Mayhem competed with top human hackers in DEFCON CTF  Mayhem get the last rank, but PPP win the game 37
  • 38.  Cyber Reasoning System  Given Challenge Binary  Given OpRCB, IDS CRS CB CB CB CB CB RCB CB CB IDS CB CB PCAP RCB IDS CFE POV 38
  • 39.  Simulator for CGC Competition  For CRS interface testing 39
  • 40.  Client API  Upload RCB, POV, IDS  Download other team’s RCB, IDS 40
  • 41. Availability Security Evaluation 除了會用不同方法檢查是 否符合功能完整性,還會 看time, memory usage, and space efficiency,大 概共有2x-30個檢查 ,所 以分數是符合項/總檢查 數 0~1 1 or 2 1~2 X X 被拿到flag or not 被拿到flag or not Scoring 評分系統有三大指標 X 100
  • 42.
  • 43.  DARPA provide the rich interface for demonstrate the competition  Cool visualization 43
  • 44. 44
  • 46. • 2003年1月25日,SQL Slammer 蠕蟲短短10分鐘內, 感染七萬多台主機。 • 2010 MS LNK漏洞MS10-045,微軟Patch一次還不夠, 2015年又被挖出沒修好。
  • 47.  HeartBleed  Demonstrate how these technique can solve real world problem
  • 51. 51
  • 52. 52
  • 53. 53
  • 54. 54
  • 55. 55
  • 56.  Determine if the program has a vulnerability is undicidable  Assume we have a Machine M that can detect any vulnerability in the program  Halting Problem If M(P) has no bug: do_some_bug() Else: do_nothing() 56
  • 57.  If we have a execution trace, we can check if the bug appeared in this path  To testing software complete, we need to traversal all the code inside the program  Halting problem  But we can still do something  57
  • 58.  Automatic generate the input to make the program crash  Not inspect into program semantic  Generate input randomly, or some heuristic  Coverage-based  AFL, Peach, BFF 58
  • 59.  American Fuzzy Loop  The easy-to-use fuzzer  Efficiency  low-level compile-time instrumentation  Coverage-based Fuzzer  Effective Mutation Strategy At least 4 team in CGC use AFL 59
  • 60.  How AFL do? 1. Load user-supplied initial test cases into the queue 2. Take next input file from the queue 3. Attempt to trim the test case to the smallest size that doesn't alter the measured behavior of the program, 4. Repeatedly mutate the file using a balanced and well- researched variety of traditional fuzzing strategies 5. If any of the generated mutations resulted in a new state transition recorded by the instrumentation, add mutated output as a new entry in the queue. 6. Go to 2.  Binary fuzzer -> QEMU(emulator) support 60
  • 61.  Feed every thing in network PCAP into APF  Using AFL as first layer checker  Check if the input is worth for deep analysis  This instance would run through each of the incoming PCAP files and evaluate whether they brought anything "new" to the table. Building an Autonomous Cyber Battle System: Our Experience in DARPA's Cyber Grand Challenge 61
  • 62.  Most test falls into some high frequency path  Strategy to find the low frequency path  Energy  The number of inputs to be generated from that seed  Strategy  low energy to seeds exercising high-frequency paths  high energy to seeds exercising low-frequency paths  AFLFast Paper published in  ACM Conference on Computer and Communications Security  Github  https://github.com/mboehme/ aflfast 62
  • 63.  Murphy is the directed fuzzer based on AFL  Most improvement is on the efficiency  Binary-only instrument  Maybe base on BAP 63
  • 64.  A mechanism to discover the code coverage  Translate each instruction/code line into constraints  Constraints: a formula define the operation functionality  Collect all the constraints  Solve when required condition is meet  E.g. branch happened 64
  • 65. 1st 2nd 3rd 0 ebx = 0 1 ecx = 0 2 eax = 3 3 ebx = 3 ebx = 6 ebx = 9 4 ecx = 1 ecx = 2 ecx = 3 5 NE NE E 6 N N Y 7 Y Y 8 NE 9 N 0 mov ebx, 0 1 mov ecx, 0 2 mov eax, input 3 add ebx, eax 4 add ecx, 1 5 cmp ecx, 3 6 je final 7 jmp loop 8 cmp ebx, 15 9 je f1 f1 f2 65
  • 66. 1st 2nd 3rd 0 ebx_0 = 0 1 ecx_0 = 0 2 eax_0 = sym_0 3 ebx_1 = ebx_0+eax_0 ebx_2 = ebx_1+eax_0 ebx_3 = ebx_2+eax_0 4 ecx_1 = ecx_0+1 ecx_2 = ecx_1+1 ecx_3 = ecx_2+1 5 NE NE E 6 N N Y 7 Y Y 8 NE 9 N 66 0 mov ebx, 0 1 mov ecx, 0 2 mov eax, input 3 add ebx, eax 4 add ecx, 1 5 cmp ecx, 3 6 je final 7 jmp loop 8 cmp ebx, 15 9 je f1 f1 f2
  • 67.  Can we jump to final block when loop 3 times? 1st 2nd 3rd 0 ebx_0 = 0 1 ecx_0 = 0 2 eax_0 = sym_0 3 ebx_1 = ebx_0+eax_0 ebx_2 = ebx_1+eax_0 ebx_3 = ebx_2+eax_0 4 ecx_1 = ecx_0+1 ecx_2 = ecx_1+1 ecx_3 = ecx_2+1 5 NE NE E 67 0 mov ebx, 0 1 mov ecx, 0 2 mov eax, input 3 add ebx, eax 4 add ecx, 1 5 cmp ecx, 3 6 je final 7 jmp loop 8 cmp ebx, 15 9 je f1 f1 f2
  • 68.  Can we jump to final block when loop 3 times? ( = ecx_3 3) ( = ( + ecx_2 1 ) 3) ( = ( + (+ ecx_1 1 ) 1 ) 3) ( = ( + (+ (+ ecx_0 1) 1 ) 1 ) 3) and ( = ecx_0 0) SMT Solver SAT! This formula is satisfiable. 68 0 mov ebx, 0 1 mov ecx, 0 2 mov eax, input 3 add ebx, eax 4 add ecx, 1 5 cmp ecx, 3 6 je final 7 jmp loop 8 cmp ebx, 15 9 je f1 f1 f2
  • 69.  Can we enter f1? 1st 2nd 3rd 0 ebx_0 = 0 1 ecx_0 = 0 2 eax_0 = sym_0 3 ebx_1 = ebx_0+eax_0 ebx_2 = ebx_1+eax_0 ebx_3 = ebx_2+eax_0 4 ecx_1 = ecx_0+1 ecx_2 = ecx_1+1 ecx_3 = ecx_2+1 5 NE NE E 6 N N Y 7 Y Y 8 NE 9 N 69 0 mov ebx, 0 1 mov ecx, 0 2 mov eax, input 3 add ebx, eax 4 add ecx, 1 5 cmp ecx, 3 6 je final 7 jmp loop 8 cmp ebx, 15 9 je f1 f1 f2
  • 70.  Tracking related instructions only? 1st 2nd 3rd 0 ebx = 0 1 ecx = 0 2 eax = 3 3 ebx = 3 ebx = 6 ebx = 9 4 ecx = 1 ecx = 2 ecx = 3 5 NE NE E 6 N N Y 7 Y Y 8 NE 9 N 70 0 mov ebx, 0 1 mov ecx, 0 2 mov eax, input 3 add ebx, eax 4 add ecx, 1 5 cmp ecx, 3 6 je final 7 jmp loop 8 cmp ebx, 15 9 je f1 f1 f2
  • 71.  Number of possible path increasing exponentially  In symbolic execution, every memory location is symbolize  Too many symbole to solve  Concolic Execution  Only make the interesting memory symbolize  Concrete value 71
  • 72. 1st 2nd 3rd 0 ebx_0 = 0 1 ecx_0 = 0 2 eax_0 = sym_0 3 ebx_1 = ebx_0+eax_0 ebx_2 = ebx_1+eax_0 ebx_3 = ebx_2+eax_0 4 ecx_1 = 1 ecx_2 = 2 ecx_3 = 3 5 NE NE E 6 N N Y 7 Y Y 8 NE 9 N 72 0 mov ebx, 0 1 mov ecx, 0 2 mov eax, input 3 add ebx, eax 4 add ecx, 1 5 cmp ecx, 3 6 je final 7 jmp loop 8 cmp ebx, 15 9 je f1 f1 f2
  • 73.  Which input make us arrive f1? 1st 2nd 3rd 0 ebx_0 = 0 1 ecx_0 = 0 2 eax_0 = sym_0 3 ebx_1 = ebx_0+eax_ 0 ebx_2 = ebx_1+eax_ 0 ebx_3 = ebx_2+eax_ 0 4 ecx_1 = 1 ecx_2 = 2 ecx_3 = 3 5 NE NE E 6 N N Y 7 Y Y 8 NE 9 N ebx_3 + ebx_2 + ebx_1 + eax_0 eax_0 eax_0ebx_0 0 73
  • 74.  Which input make us arrive f1? Final ( = 15 (+ in ( + in (+ in 0) ) ) ) SMT Solver SAT! This formula is satisfiable when in = 5. ebx_3 + ebx_2 + ebx_1 + eax_0 eax_0 eax_0ebx_0 0 74
  • 75.  In-house symbolic execution engine, called Grace  Path Priority  “Grace to focus on unique and interesting inputs, rather than churning away at things that would likely lead down previously- explored paths”  Symbolize authentication/random token  Powerful static analysis Building an Autonomous Cyber Battle System: Our Experience in DARPA's Cyber Grand Challenge 75
  • 76.  Virtual Machine Symbolic Execution Framework - S2E  Selective symbolic execution/Concolic Execution  Execution consistency models  state merging and prioritizing Whole System QEMU KLEEBinary LLVM 76
  • 77.  Angr  Not only the symbolic execution engine, but a binary analysis framework  http://angr.io/ “Cyber Grand Shellphish”, shellphish, DEFCON 24 77
  • 78.  binary-only symbolic execution  Fast than S2E(whole system/LLVM), Angr(VEX Simulator)  BAP-based binary instrument  Veritesting  A search strategy based on coverage  Other feature  fine-tuned process-based instrumentation and taint analysis  access to an extensive set of tested x86 semantics  several years of performance tuning for solvers (expression rewriting, caches, etc)  path merging 78
  • 79.  Shellphish  SoK: (State of) The Art of War: Offensive Techniques in Binary Analysis  IEEE Symposium on Security and Privacy 2016 79
  • 80.  One of most important technique we learn from CGC is “How to integrate efficiency fuzzer and sophisticated symbolic execution” 80
  • 81.  sharing seeds between Mayhem and our custom AFL. https://blog.forallsecure.com/2016/02/09/unleashing-mayhem/ 81
  • 82.  Seed sharing: fuzzer + S2E + traffic replay  Path exploration  S2E helps Fuzzer to break through some branches 82
  • 83.  Remind of AFL Gate-Keeper 83
  • 84.  Driller  Switch between fuzzer and symbolic execution  Driller: Augmenting Fuzzing Through Selective Symbolic Execution  Network and Distributed System Security Symposium 2016 84
  • 85. 85
  • 86. 86
  • 87.  DEP  ASLR  Stack Guard  CFI  Pointer Integrity  Shadow Stack  Binary Patch  Input filter  IDS 87
  • 88.  PS: Meyhem put most attention on attack, doing less on defense 88
  • 89.  Patcherex  https://github.com/shellphish/patcherex  QEMU 0 Day for anti-analysis “Cyber Grand Shellphish”, shellphish, DEFCON 24 89
  • 90.  Return pointer encryption  Protect indirect calls/jmps  Extended Malloc allocations  Randomly shift the stack (ASLR)  Clean uninitialized stack space 90
  • 91. 91Automatic Binary Exploitation and Patching using Mechanical [Shell]Phish Automatic Patching ● Prevent binary form being exploit ● Preserve binary functionality ● Preserve binary performance ○ speed ○ memory usage ○ disk space ● Prevent analysis from other teams
  • 92. 92Automatic Binary Exploitation and Patching using Mechanical [Shell]Phish Patcherex Patching Backends Patching Techniques Patches Patched Binary Original Binary
  • 93. 93Automatic Binary Exploitation and Patching using Mechanical [Shell]Phish Patcherex ● Defensive Techniques ○ Return pointer encryption ○ Protect indirect calls/jmps ○ Extended Malloc allocations ○ Randomly shift the stack (ASLR) ○ ...
  • 94. 94Automatic Binary Exploitation and Patching using Mechanical [Shell]Phish Patcherex ● Adversarial Techniques ○ Detect QEMU mov eax, 0x1 push eax push eax push eax fld TBYTE PTR [esp] fsqrt ○ Backdoor ○ ...
  • 95. 95Automatic Binary Exploitation and Patching using Mechanical [Shell]Phish Patcherex ● Making the original binary faster → Our patches can be slower! ● Optimization Techniques: ○ Constant Propagation ○ Dead Assignment Elimination ○ ...
  • 96. 96Automatic Binary Exploitation and Patching using Mechanical [Shell]Phish Patcherex – Backends ● Patching Backends ○ Inject code/data in an existing binary ○ No source code ○ No symbols
  • 97. 97Automatic Binary Exploitation and Patching using Mechanical [Shell]Phish Patcherex – Backends ● How to inject code without breaking functionality? 0x0 : mov eax, 0x11 0x5 : jmp eax 0x7 : mov edx, 0x11223344 0xc : mov ebx, 0x55667788 0x11: mov ecx, ebx 0x0 : mov eax, 0x11 0x5 : jmp eax 0x7: call inserted_function 0xc : mov edx, 0x11223344 0x11: mov ebx, 0x55667788 0x16: mov ecx, ebx
  • 98. 98Automatic Binary Exploitation and Patching using Mechanical [Shell]Phish Patcherex – Backends ● Detour Backend ○ Try to add code without moving the original one ○ Not always possible ○ Slow (requires a lot of additional jmp instructions) 0x0 : mov eax, 0x11 0x5 : jmp eax 0x7 : mov edx, 0x11223344 0xc : mov ebx, 0x55667788 0x11: mov ecx, ebx 0x0 : mov eax, 0x11 0x5 : jmp eax 0x7 : jmp out1 0xc : mov ebx, 0x55667788 0x11: mov ecx, ebx mov edx, 0x11223344 call inserted_function jmp 0xc
  • 99. 99Automatic Binary Exploitation and Patching using Mechanical [Shell]Phish Patcherex – Backends ● Reassemler Backend ○ Recover original “program symbols” ○ More efficient code ○ (Slightly) less reliable Ramblr: Making Reassembly Great Again. R. Wang, Y. Shoshitaishvili, A. Bianchi, A. Machiry, J. Grosen, P. Grosen, C. Kruegel, G. Vigna In NDSS 2017
  • 100. 100Automatic Binary Exploitation and Patching using Mechanical [Shell]Phish Patcherex – Backends 0x0 : mov eax, 0x11 0x5 : jmp eax 0x7 : mov edx, 0x11223344 0xc : mov ebx, 0x55667788 0x11: mov ecx, ebx mov eax, _label1 jmp eax mov edx, 0x11223344 mov ebx, 0x55667788 _label1: mov ecx, ebx mov eax, _label1 jmp eax call inserted_function mov edx, 0x11223344 mov ebx, 0x55667788 _label1: mov ecx, ebx 0x0 : mov eax, 0x16 0x5 : jmp eax 0x7 : call inserted _function 0xc : mov edx, 0x11223344 0x11: mov ebx, 0x55667788 0x16: mov ecx, ebx
  • 101.  CFI: control flow integrity  Shadow stacks  Maintain a duplicate stack  Once the return address difference from the one in shadow stack, then attack is detected  DEP  Randomization  Data leakage defense 101
  • 102.  Control Flow Integrity https://www.trust.informatik.tu-darmstadt.de/research/projects/current- projects/control-flow-integrity/ 102
  • 103.  TechX achieve the first place about security  PEASOUP  Code Sonar Building an Autonomous Cyber Battle System: Our Experience in DARPA's Cyber Grand Challenge 103
  • 104.  The other important aspect is “how to integrate many system in large architecture”  Handle with complicated system architecture  Reliable is difficult  Mayhem meets some problem and fails in half of the game 104
  • 105. “Cyber Grand Shellphish”, shellphish, DEFCON 24 105
  • 106. “Cyber Grand Challenge and CodeJitsu”, Chao Zhang 106
  • 107.  DARPA CGC Introduction  Most team have research, CTF and enterprise support  Automatic Vulnerability Discovery  Fuzzer and Symbolic Execution are widely used technique in CGC  How to integrate fuzzer and symbolic execution  Engineering Power: Integration many different software system 107
  • 108.  https://cgc.darpa.mil/  https://www.cybergrandchallenge.com/  “DARPA’s Cyber Grand Challenge: Creating a League of Extra-Ordinary Machines”, Ben Price and Michael Zhivich, ACSAC  “Rise of the Machines: Cyber Grand Challenge 及 DEFCON 24 CTF 决赛介绍”, MaskRay  “Cyber Grand Challenge and CodeJitsu”, Chao Zhang  https://www.youtube.com/watch?v=xfgGZq86iWk  Reddit IamA Mayhem, the Hacking Machine that won DARPA‘s Cyber Grand Challenge. AMA!  Unleashing the Mayhem CRS, ForAllSecure  “Cyber Grand Shellphish”, shellphish, DEFCON 24  “The Cyber Grand Challenge”, GrammaTech Eric Rizzi  “Hybrid Concolic Execution, Part 1 (Background)”, GrammaTech Ducson Nguyen  “Hybrid Concolic Execution, Part 2”, GrammaTech Ducson Nguyen  “Case Study: LEGIT_00004”, ForAllSecure 108
  • 109. 109