SlideShare a Scribd company logo
1 of 28
Download to read offline
Taint Analysis ForTaint Analysis For
Vulnerability DiscoveryVulnerability Discovery
passket # gmail.com
http://passket.tistory.com
2010. 7. 3
www.CodeEngn.com
2010 4th CodeEngn ReverseEngineering Conference
Motivation
Where are vulnerabilities ?
How can you find the vulnerability ?How can you find the vulnerability ?
Is there vulnerability in my program ?
Where is my data in vulnerable program ?Unknown
vulnerability in commodity program ?
Does finding zero-day-vulnerablity make money ?
OutlineOutline
• Basic Concepts
• Tainted Propagation on x86
• Simple Test for TaintingSimple Test for Tainting
• Into The Abyss : in the wild world
• Future Work : Raison Framework
• References• References
Basic Concepts
input data : xinput data : xinput data : xinput data : x
functionfunction
ddoutput data : youtput data : y
And Now we call this “system”
modify data : we call this “tainting”
input data : xinput data : xinput data : xinput data : x
functionfunction
ddoutput data : youtput data : y
we can analysis how tainted output driven
: we can call this “taint analysis”
How does taint analysis helpHow does taint analysis help
Our works ?
• Exploit Detections :
- Find tainted EIP registerFind tainted EIP register
- Find tainted Function Pointers
- Find tainted Stack Arguments
- Find tainted Data Structure using systemFind tainted Data Structure using system
• Now we reverse upper follows
• Finding Vulnerability
fOther benefits
• Solve Reachability Problems
- How can I makes PDF files to execute code block
#937 in PDF reader ?
• Zero-day Detection
I l d h b l- Include other bug class
• Helping Fuzzer Mutationsp g
Tainted Object
• The Object from untrusted source
untrusteduntrusted sourcesource
untrusted data #1untrusted data #1
operationoperationoperationoperation
untrusted data #2untrusted data #2
Tainted Object
• The Object from untrusted operation, data
untrusteduntrusted data #1data #1
untrusteduntrusted
untrusted data #2untrusted data #2 operationoperation
untrusteduntrusted
datadata
#3#3
trusted datatrusted data
#3#3
Tainted Object
• Untrusted Sources
- Files, Inputs, Network Reads, ...
• Tainted ObjectsTainted Objects
- Memory Locations, Process Registers
Taint Propagation on x86
Taint Propagation
• Taint Propagation is analysis for tainted object
derivation activities.
• If a tainted object X derive to Y
“Y i th t i t d bj t”- we say “Y is the tainted object”
- so, we assign this : X → T(Y)
• Taint operation is transitive
- X → T(Y), and Y → T(Z) then, X → T(Z)
Taint Propagation
(Tainted Objects)
memory addressmemory address
(Tainted Objects)
yy
0x0012FF700x0012FF70
ADDADD
process registerprocess register
EBXEBX
process registerprocess register
EAXEAX
EBXEBX
EAXEAX
(untainted objects)
(Tainted Objects)
Operation on x86Operation on x86
which derived in tainited
• Assignment Operations
- operation move X to Y
• Arithmetical Operationsp
- operation perfumes arithmatic calculus from X
• Stack Push/Pop Operations
- similar with Assignment Operationssimilar with Assignment Operations
Operation on x86Operation on x86
which derived in tainited
• B l O ti• Boolean Operation
- must consider if the result of the operation depend on the
value of tainted object
- ex) AND Operationex) AND Operation
A(tainted) B A && B
0 0 0(untainted)( )
0 1 0(untainted)
1 0 0(untainted)
- special case : X xor X is always untainted
1 1 1(tainted)
Operation on x86Operation on x86
which derived in tainited
• We analysis whole program process
- Finally, if we find tainted special object, we find a new bugs
- special object : EIP register, function pointers, etc.special object : EIP register, function pointers, etc.
implementations of propagation
• Just trace using breakpointsg p
- only memory locations
• Just trace using exceptions
- only memory locationsonly memory locations
• How do we trace process registers ?
- emulation or virtualization, It is only way to propagations
implementations of propagation
• Aft fi t th t i t d bj t i t ti h t• After we figure out the tainted object, every instruction has to
execute after emulation.
- So, we can figure out new tainted object.
• Or, register handler to process register using virtualizationOr, register handler to process register using virtualization
- this requires fully implementation for cpu emulating and
memory accessmemory access
Simple Test For Tainting
I h AbInto the Abyss :
in the wild world
welcome to wild world!
• P bl 1 ltith d• Problem 1 : multithread or
message-driven
• Problem II : a lot of logs
• Problem III : still can’t find ?
for the real world tainting
• Multithreaded or Message-Driven Program makes your fuzzer
into hang overinto hang over
- Cuz, There is no automated end of program
- So, you make fully virtualization for program
• Th f l• There are tons of log
- Is it same with mutation fuzzing ?g
- no waaaay, keep in going analysis tightly
tips for the real world tainting
•• Using debugger : paimei is good for it
• Construct your own emulation for programy p g
• Sometimes just use other guy’s code
- why not ? valgrind + wine + windows app.
- concentrate your major subject : finding bugsconcentrate your major subject : finding bugs.
tips for the real world tainting
• EX> Valgrind ls -al /
Extras
Raison Framework
automated exploit framework
still under-constructing.....
references
- “LIFT: A Low-Overhead Practical Information Flow Tracking System for Detecting Security Attacks” -
Feng Qin, Cheng Wang, Zhenmin Li, Ho-seop Kim, Yuanyuan zhou, Youfeng Wu - University of Illinois
- “BitBlaze: A New Approach to Computer Security via Binary Analysis” - Dawn Song
- “Dytan: A generic dynamic taint analysis framework” – James Clause, Wanchun Li, and Alessandro Orso.y g y y , ,
Georgia Institute of Technology.
- “Understanding data lifetime via whole system emulation” – Jim Chow, Tal Garfinkel, Kevi Christopher,
Mendel Rosenblum – USENIX – Stanford UniversityMendel Rosenblum USENIX Stanford University
- “Taint analysis” - edgar barbosa, H2HC 2009
- “valgrind” http://valgrind org/- valgrind - http://valgrind.org/
- “paimei & pydbg” - http://pedram.redhive.com/PyDbg/docs/
- “PyEmu” - http://code.google.com/p/pyemu/
www.CodeEngn.com
2010 4th CodeEngn ReverseEngineering Conference

More Related Content

Similar to [2010 CodeEngn Conference 04] passket - Taint analysis for vulnerability discovery

"egg" - A stealth fine grained code analyzer
"egg" - A stealth fine grained code analyzer"egg" - A stealth fine grained code analyzer
"egg" - A stealth fine grained code analyzer
FFRI, Inc.
 
Creating Havoc using Human Interface Device
Creating Havoc using Human Interface DeviceCreating Havoc using Human Interface Device
Creating Havoc using Human Interface Device
Positive Hack Days
 
Analisis Estatico y de Comportamiento de un Binario Malicioso
Analisis Estatico y de Comportamiento de un Binario MaliciosoAnalisis Estatico y de Comportamiento de un Binario Malicioso
Analisis Estatico y de Comportamiento de un Binario Malicioso
Conferencias FIST
 
михаил дударев
михаил дударевмихаил дударев
михаил дударев
apps4allru
 
From Thousands of Hours to a Couple of Minutes: Automating Exploit Generation...
From Thousands of Hours to a Couple of Minutes: Automating Exploit Generation...From Thousands of Hours to a Couple of Minutes: Automating Exploit Generation...
From Thousands of Hours to a Couple of Minutes: Automating Exploit Generation...
Priyanka Aash
 

Similar to [2010 CodeEngn Conference 04] passket - Taint analysis for vulnerability discovery (20)

Super Easy Memory Forensics
Super Easy Memory ForensicsSuper Easy Memory Forensics
Super Easy Memory Forensics
 
WTF is Penetration Testing v.2
WTF is Penetration Testing v.2WTF is Penetration Testing v.2
WTF is Penetration Testing v.2
 
"egg" - A stealth fine grained code analyzer
"egg" - A stealth fine grained code analyzer"egg" - A stealth fine grained code analyzer
"egg" - A stealth fine grained code analyzer
 
ANALYZE'15 - Bulk Malware Analysis at Scale
ANALYZE'15 - Bulk Malware Analysis at ScaleANALYZE'15 - Bulk Malware Analysis at Scale
ANALYZE'15 - Bulk Malware Analysis at Scale
 
LST Toolkit: Exfiltration Over Sound, Light, Touch
LST Toolkit: Exfiltration Over Sound, Light, TouchLST Toolkit: Exfiltration Over Sound, Light, Touch
LST Toolkit: Exfiltration Over Sound, Light, Touch
 
The basics of hacking and penetration testing 이제 시작이야 해킹과 침투 테스트 kenneth.s.kwon
The basics of hacking and penetration testing 이제 시작이야 해킹과 침투 테스트 kenneth.s.kwonThe basics of hacking and penetration testing 이제 시작이야 해킹과 침투 테스트 kenneth.s.kwon
The basics of hacking and penetration testing 이제 시작이야 해킹과 침투 테스트 kenneth.s.kwon
 
Creating Havoc using Human Interface Device
Creating Havoc using Human Interface DeviceCreating Havoc using Human Interface Device
Creating Havoc using Human Interface Device
 
Drop, Stop & Roll
Drop, Stop & RollDrop, Stop & Roll
Drop, Stop & Roll
 
Sans london april sans at night - tearing apart a fileless malware sample
Sans london april   sans at night - tearing apart a fileless malware sampleSans london april   sans at night - tearing apart a fileless malware sample
Sans london april sans at night - tearing apart a fileless malware sample
 
Analisis Estatico y de Comportamiento de un Binario Malicioso
Analisis Estatico y de Comportamiento de un Binario MaliciosoAnalisis Estatico y de Comportamiento de un Binario Malicioso
Analisis Estatico y de Comportamiento de un Binario Malicioso
 
михаил дударев
михаил дударевмихаил дударев
михаил дударев
 
The Dirty Little Secrets They Didn’t Teach You In Pentesting Class
The Dirty Little Secrets They Didn’t Teach You In Pentesting Class The Dirty Little Secrets They Didn’t Teach You In Pentesting Class
The Dirty Little Secrets They Didn’t Teach You In Pentesting Class
 
Software testing (2) trainingin-mumbai
Software testing (2) trainingin-mumbaiSoftware testing (2) trainingin-mumbai
Software testing (2) trainingin-mumbai
 
DEF CON 27 - DIMITRY SNEZHKOV - zombie ant farm practical tips
DEF CON 27 - DIMITRY SNEZHKOV - zombie ant farm practical tipsDEF CON 27 - DIMITRY SNEZHKOV - zombie ant farm practical tips
DEF CON 27 - DIMITRY SNEZHKOV - zombie ant farm practical tips
 
Metasploit Computer security testing tool
Metasploit  Computer security testing toolMetasploit  Computer security testing tool
Metasploit Computer security testing tool
 
From Thousands of Hours to a Couple of Minutes: Automating Exploit Generation...
From Thousands of Hours to a Couple of Minutes: Automating Exploit Generation...From Thousands of Hours to a Couple of Minutes: Automating Exploit Generation...
From Thousands of Hours to a Couple of Minutes: Automating Exploit Generation...
 
Reading Group Presentation: The Power of Procrastination
Reading Group Presentation: The Power of ProcrastinationReading Group Presentation: The Power of Procrastination
Reading Group Presentation: The Power of Procrastination
 
Keith J. Jones, Ph.D. - Crash Course malware analysis
Keith J. Jones, Ph.D. - Crash Course malware analysisKeith J. Jones, Ph.D. - Crash Course malware analysis
Keith J. Jones, Ph.D. - Crash Course malware analysis
 
Malware Analysis 101 - N00b to Ninja in 60 Minutes at CactusCon on April 4, 2014
Malware Analysis 101 - N00b to Ninja in 60 Minutes at CactusCon on April 4, 2014Malware Analysis 101 - N00b to Ninja in 60 Minutes at CactusCon on April 4, 2014
Malware Analysis 101 - N00b to Ninja in 60 Minutes at CactusCon on April 4, 2014
 
RIoT (Raiding Internet of Things) by Jacob Holcomb
RIoT  (Raiding Internet of Things)  by Jacob HolcombRIoT  (Raiding Internet of Things)  by Jacob Holcomb
RIoT (Raiding Internet of Things) by Jacob Holcomb
 

More from GangSeok Lee

[2014 CodeEngn Conference 11] 박한범 - 가상화 기술과 보안
[2014 CodeEngn Conference 11] 박한범 - 가상화 기술과 보안[2014 CodeEngn Conference 11] 박한범 - 가상화 기술과 보안
[2014 CodeEngn Conference 11] 박한범 - 가상화 기술과 보안
GangSeok Lee
 

More from GangSeok Lee (20)

[2014 CodeEngn Conference 11] 박한범 - 가상화 기술과 보안
[2014 CodeEngn Conference 11] 박한범 - 가상화 기술과 보안[2014 CodeEngn Conference 11] 박한범 - 가상화 기술과 보안
[2014 CodeEngn Conference 11] 박한범 - 가상화 기술과 보안
 
[2014 CodeEngn Conference 11] 이경식 - 동적 추적 프레임워크를 이용한 OS X 바이너리 분석
[2014 CodeEngn Conference 11] 이경식 - 동적 추적 프레임워크를 이용한 OS X 바이너리 분석[2014 CodeEngn Conference 11] 이경식 - 동적 추적 프레임워크를 이용한 OS X 바이너리 분석
[2014 CodeEngn Conference 11] 이경식 - 동적 추적 프레임워크를 이용한 OS X 바이너리 분석
 
[2014 CodeEngn Conference 11] 남대현 - iOS MobileSafari Fuzzer 제작 및 Fuzzing
[2014 CodeEngn Conference 11] 남대현 - iOS MobileSafari Fuzzer 제작 및 Fuzzing[2014 CodeEngn Conference 11] 남대현 - iOS MobileSafari Fuzzer 제작 및 Fuzzing
[2014 CodeEngn Conference 11] 남대현 - iOS MobileSafari Fuzzer 제작 및 Fuzzing
 
[2014 CodeEngn Conference 11] 김기홍 - 빅데이터 기반 악성코드 자동 분석 플랫폼
[2014 CodeEngn Conference 11] 김기홍 - 빅데이터 기반 악성코드 자동 분석 플랫폼[2014 CodeEngn Conference 11] 김기홍 - 빅데이터 기반 악성코드 자동 분석 플랫폼
[2014 CodeEngn Conference 11] 김기홍 - 빅데이터 기반 악성코드 자동 분석 플랫폼
 
[2014 CodeEngn Conference 11] 최우석 - 자바스크립트 난독화 너네 뭐니?
[2014 CodeEngn Conference 11] 최우석 - 자바스크립트 난독화 너네 뭐니?[2014 CodeEngn Conference 11] 최우석 - 자바스크립트 난독화 너네 뭐니?
[2014 CodeEngn Conference 11] 최우석 - 자바스크립트 난독화 너네 뭐니?
 
[2014 CodeEngn Conference 11] 박세한 - IE 1DAY Case Study KO
[2014 CodeEngn Conference 11] 박세한 - IE 1DAY Case Study KO[2014 CodeEngn Conference 11] 박세한 - IE 1DAY Case Study KO
[2014 CodeEngn Conference 11] 박세한 - IE 1DAY Case Study KO
 
[2014 CodeEngn Conference 11] 박세한 - IE 1DAY Case Study EN
[2014 CodeEngn Conference 11] 박세한 - IE 1DAY Case Study EN[2014 CodeEngn Conference 11] 박세한 - IE 1DAY Case Study EN
[2014 CodeEngn Conference 11] 박세한 - IE 1DAY Case Study EN
 
[2014 CodeEngn Conference 11] 김호빈 - Android Bootkit Analysis KO
[2014 CodeEngn Conference 11] 김호빈 - Android Bootkit Analysis KO[2014 CodeEngn Conference 11] 김호빈 - Android Bootkit Analysis KO
[2014 CodeEngn Conference 11] 김호빈 - Android Bootkit Analysis KO
 
[2014 CodeEngn Conference 11] 김호빈 - Android Bootkit Analysis EN
[2014 CodeEngn Conference 11] 김호빈 - Android Bootkit Analysis EN[2014 CodeEngn Conference 11] 김호빈 - Android Bootkit Analysis EN
[2014 CodeEngn Conference 11] 김호빈 - Android Bootkit Analysis EN
 
[2014 CodeEngn Conference 11] 정든품바 - 웹성코드
[2014 CodeEngn Conference 11] 정든품바 - 웹성코드[2014 CodeEngn Conference 11] 정든품바 - 웹성코드
[2014 CodeEngn Conference 11] 정든품바 - 웹성코드
 
[2014 CodeEngn Conference 10] 정광운 - 안드로이드에서도 한번 후킹을 해볼까 (Hooking on Android)
[2014 CodeEngn Conference 10] 정광운 -  안드로이드에서도 한번 후킹을 해볼까 (Hooking on Android)[2014 CodeEngn Conference 10] 정광운 -  안드로이드에서도 한번 후킹을 해볼까 (Hooking on Android)
[2014 CodeEngn Conference 10] 정광운 - 안드로이드에서도 한번 후킹을 해볼까 (Hooking on Android)
 
[2014 CodeEngn Conference 10] 노용환 - 디버거 개발, 삽질기
[2014 CodeEngn Conference 10] 노용환 -  디버거 개발, 삽질기[2014 CodeEngn Conference 10] 노용환 -  디버거 개발, 삽질기
[2014 CodeEngn Conference 10] 노용환 - 디버거 개발, 삽질기
 
[2014 CodeEngn Conference 10] 심준보 - 급전이 필요합니다
[2014 CodeEngn Conference 10] 심준보 -  급전이 필요합니다[2014 CodeEngn Conference 10] 심준보 -  급전이 필요합니다
[2014 CodeEngn Conference 10] 심준보 - 급전이 필요합니다
 
[2013 CodeEngn Conference 09] x15kangx - MS Office 2010 문서 암호화 방식 분석 결과
[2013 CodeEngn Conference 09] x15kangx - MS Office 2010 문서 암호화 방식 분석 결과[2013 CodeEngn Conference 09] x15kangx - MS Office 2010 문서 암호화 방식 분석 결과
[2013 CodeEngn Conference 09] x15kangx - MS Office 2010 문서 암호화 방식 분석 결과
 
[2013 CodeEngn Conference 09] proneer - Malware Tracker
[2013 CodeEngn Conference 09] proneer - Malware Tracker[2013 CodeEngn Conference 09] proneer - Malware Tracker
[2013 CodeEngn Conference 09] proneer - Malware Tracker
 
[2013 CodeEngn Conference 09] BlueH4G - hooking and visualization
[2013 CodeEngn Conference 09] BlueH4G - hooking and visualization[2013 CodeEngn Conference 09] BlueH4G - hooking and visualization
[2013 CodeEngn Conference 09] BlueH4G - hooking and visualization
 
[2013 CodeEngn Conference 09] wh1ant - various tricks for linux remote exploits
[2013 CodeEngn Conference 09] wh1ant - various tricks for linux remote exploits[2013 CodeEngn Conference 09] wh1ant - various tricks for linux remote exploits
[2013 CodeEngn Conference 09] wh1ant - various tricks for linux remote exploits
 
[2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론
[2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론[2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론
[2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론
 
[2013 CodeEngn Conference 09] Park.Sam - 게임 해킹툴의 변칙적 공격 기법 분석
[2013 CodeEngn Conference 09] Park.Sam - 게임 해킹툴의 변칙적 공격 기법 분석[2013 CodeEngn Conference 09] Park.Sam - 게임 해킹툴의 변칙적 공격 기법 분석
[2013 CodeEngn Conference 09] Park.Sam - 게임 해킹툴의 변칙적 공격 기법 분석
 
[2013 CodeEngn Conference 09] 김홍진 - 보안컨설팅 이해 및 BoB 보안컨설팅 인턴쉽
[2013 CodeEngn Conference 09] 김홍진 - 보안컨설팅 이해 및 BoB 보안컨설팅 인턴쉽[2013 CodeEngn Conference 09] 김홍진 - 보안컨설팅 이해 및 BoB 보안컨설팅 인턴쉽
[2013 CodeEngn Conference 09] 김홍진 - 보안컨설팅 이해 및 BoB 보안컨설팅 인턴쉽
 

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
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
 

Recently uploaded (20)

"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
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...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
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...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
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
 

[2010 CodeEngn Conference 04] passket - Taint analysis for vulnerability discovery

  • 1. Taint Analysis ForTaint Analysis For Vulnerability DiscoveryVulnerability Discovery passket # gmail.com http://passket.tistory.com 2010. 7. 3 www.CodeEngn.com 2010 4th CodeEngn ReverseEngineering Conference
  • 2. Motivation Where are vulnerabilities ? How can you find the vulnerability ?How can you find the vulnerability ? Is there vulnerability in my program ? Where is my data in vulnerable program ?Unknown vulnerability in commodity program ? Does finding zero-day-vulnerablity make money ?
  • 3. OutlineOutline • Basic Concepts • Tainted Propagation on x86 • Simple Test for TaintingSimple Test for Tainting • Into The Abyss : in the wild world • Future Work : Raison Framework • References• References
  • 5. input data : xinput data : xinput data : xinput data : x functionfunction ddoutput data : youtput data : y And Now we call this “system”
  • 6. modify data : we call this “tainting” input data : xinput data : xinput data : xinput data : x functionfunction ddoutput data : youtput data : y we can analysis how tainted output driven : we can call this “taint analysis”
  • 7. How does taint analysis helpHow does taint analysis help Our works ? • Exploit Detections : - Find tainted EIP registerFind tainted EIP register - Find tainted Function Pointers - Find tainted Stack Arguments - Find tainted Data Structure using systemFind tainted Data Structure using system • Now we reverse upper follows • Finding Vulnerability
  • 8. fOther benefits • Solve Reachability Problems - How can I makes PDF files to execute code block #937 in PDF reader ? • Zero-day Detection I l d h b l- Include other bug class • Helping Fuzzer Mutationsp g
  • 9. Tainted Object • The Object from untrusted source untrusteduntrusted sourcesource untrusted data #1untrusted data #1 operationoperationoperationoperation untrusted data #2untrusted data #2
  • 10. Tainted Object • The Object from untrusted operation, data untrusteduntrusted data #1data #1 untrusteduntrusted untrusted data #2untrusted data #2 operationoperation untrusteduntrusted datadata #3#3 trusted datatrusted data #3#3
  • 11. Tainted Object • Untrusted Sources - Files, Inputs, Network Reads, ... • Tainted ObjectsTainted Objects - Memory Locations, Process Registers
  • 13. Taint Propagation • Taint Propagation is analysis for tainted object derivation activities. • If a tainted object X derive to Y “Y i th t i t d bj t”- we say “Y is the tainted object” - so, we assign this : X → T(Y) • Taint operation is transitive - X → T(Y), and Y → T(Z) then, X → T(Z)
  • 14. Taint Propagation (Tainted Objects) memory addressmemory address (Tainted Objects) yy 0x0012FF700x0012FF70 ADDADD process registerprocess register EBXEBX process registerprocess register EAXEAX EBXEBX EAXEAX (untainted objects) (Tainted Objects)
  • 15. Operation on x86Operation on x86 which derived in tainited • Assignment Operations - operation move X to Y • Arithmetical Operationsp - operation perfumes arithmatic calculus from X • Stack Push/Pop Operations - similar with Assignment Operationssimilar with Assignment Operations
  • 16. Operation on x86Operation on x86 which derived in tainited • B l O ti• Boolean Operation - must consider if the result of the operation depend on the value of tainted object - ex) AND Operationex) AND Operation A(tainted) B A && B 0 0 0(untainted)( ) 0 1 0(untainted) 1 0 0(untainted) - special case : X xor X is always untainted 1 1 1(tainted)
  • 17. Operation on x86Operation on x86 which derived in tainited • We analysis whole program process - Finally, if we find tainted special object, we find a new bugs - special object : EIP register, function pointers, etc.special object : EIP register, function pointers, etc.
  • 18. implementations of propagation • Just trace using breakpointsg p - only memory locations • Just trace using exceptions - only memory locationsonly memory locations • How do we trace process registers ? - emulation or virtualization, It is only way to propagations
  • 19. implementations of propagation • Aft fi t th t i t d bj t i t ti h t• After we figure out the tainted object, every instruction has to execute after emulation. - So, we can figure out new tainted object. • Or, register handler to process register using virtualizationOr, register handler to process register using virtualization - this requires fully implementation for cpu emulating and memory accessmemory access
  • 20. Simple Test For Tainting
  • 21. I h AbInto the Abyss : in the wild world
  • 22. welcome to wild world! • P bl 1 ltith d• Problem 1 : multithread or message-driven • Problem II : a lot of logs • Problem III : still can’t find ?
  • 23. for the real world tainting • Multithreaded or Message-Driven Program makes your fuzzer into hang overinto hang over - Cuz, There is no automated end of program - So, you make fully virtualization for program • Th f l• There are tons of log - Is it same with mutation fuzzing ?g - no waaaay, keep in going analysis tightly
  • 24. tips for the real world tainting •• Using debugger : paimei is good for it • Construct your own emulation for programy p g • Sometimes just use other guy’s code - why not ? valgrind + wine + windows app. - concentrate your major subject : finding bugsconcentrate your major subject : finding bugs.
  • 25. tips for the real world tainting • EX> Valgrind ls -al /
  • 27. Raison Framework automated exploit framework still under-constructing.....
  • 28. references - “LIFT: A Low-Overhead Practical Information Flow Tracking System for Detecting Security Attacks” - Feng Qin, Cheng Wang, Zhenmin Li, Ho-seop Kim, Yuanyuan zhou, Youfeng Wu - University of Illinois - “BitBlaze: A New Approach to Computer Security via Binary Analysis” - Dawn Song - “Dytan: A generic dynamic taint analysis framework” – James Clause, Wanchun Li, and Alessandro Orso.y g y y , , Georgia Institute of Technology. - “Understanding data lifetime via whole system emulation” – Jim Chow, Tal Garfinkel, Kevi Christopher, Mendel Rosenblum – USENIX – Stanford UniversityMendel Rosenblum USENIX Stanford University - “Taint analysis” - edgar barbosa, H2HC 2009 - “valgrind” http://valgrind org/- valgrind - http://valgrind.org/ - “paimei & pydbg” - http://pedram.redhive.com/PyDbg/docs/ - “PyEmu” - http://code.google.com/p/pyemu/ www.CodeEngn.com 2010 4th CodeEngn ReverseEngineering Conference