SlideShare uma empresa Scribd logo
1 de 42
CLOTHO : Saving Programs from
Malformed Strings and Incorrect
String-handling
Aritra Dhar
M.Tech CSE (MT12004)
Information Security
Thesis Committee
Dr. Rahul Purandare (Advisor)
Dr. Mohan Dhawan (External Reviewer)
Dr. Sambuddho Chakravarty (Internal Reviewer)
Outline
 Problem definition & Motivation
 Related Works
 Contribution
 Example
 Repairing Strategy : CLOTHO design
 Implementation
 Evaluation
 Conclusion
4/1/2015
CLOTHO : Saving Programs from Malformed
Strings and Incorrect
2
Problem Definition
 Runtime Exceptions go unnoticed at the time of
development.
 Restart/shutdown can be very expensive or
unacceptable.
 Example :
 Air-traffic control
 Autopilot
 UAV drones,
 life-support system
 smart power grid
 telephone network
 software controlled gas pipeline and many more.
4/1/2015
CLOTHO : Saving Programs from Malformed
Strings and Incorrect
3
Problem Definition
 Vulnerability in the code may be targeted by the
attacker.
 Crash is bad for business.
 3rd party library: no control over the sources.
 Classify candidates for patching : financial
transactions should not be repaired/patched.
 Major problem – availability
4/1/2015
CLOTHO : Saving Programs from Malformed
Strings and Incorrect
4
Why String?
4/1/2015
CLOTHO : Saving Programs from Malformed
Strings and Incorrect
5
 Heavily used
 Incorrect string handling and Malformed String
 Large number of major, critical and blocker priority
bugs.
Challenges
 No access of source code.
 Logic is unknown.
 Patching based on the program behavior and
information available in the byte code.
4/1/2015
CLOTHO : Saving Programs from Malformed
Strings and Incorrect
6
Most Frequently used Java String APIs
 String APIs
 Java SE String library
(java.lang.{String, StringBuffer, StringBuilder})
 Apache Commons
(org.apache.commons.lang.{StringUtils,StringEscapeUtils})
(http://commons.apache.org/)
 Google Guava (com.google.common.base.Strings)
(https://code.google.com/p/guava-libraries/)
4/1/2015
CLOTHO : Saving Programs from Malformed
Strings and Incorrect
7
Outline
 Problem definition & Motivation
 Related Works
 Contribution
 Example
 Repairing Strategy : CLOTHO design
 Implementation
 Evaluation
 Conclusion
4/1/2015
CLOTHO : Saving Programs from Malformed
Strings and Incorrect
8
Related Works
 Cabin et al.(’11), Perkins et al.(’09) Dynamic approaches :
memory, data, and incorrect programming constructs such
as infinite loops
 Demsky et al. (’03, ’05, ’06) Data structure repairing by
isolating damaged data or memory portion
 Eom et al.(’12) Delay execution till program self-stabilizes
 Pezze et al.(’11) Find alternative execution paths
 Long et al. (’14) Suppressing signals and attach lightweight
monitors for divide by zero and null dereferencing errors
 Cerny et al.(’14), Wei et al. (’10) develop patch and check
correctness by computationally intensive techniques such
as model-checking
4/1/2015
CLOTHO : Saving Programs from Malformed
Strings and Incorrect
9
Outline
 Problem definition
 Related Works
 Contribution
 Example
 Repairing Strategy : CLOTHO design
 Implementation
 Evaluation
 Conclusion
4/1/2015
CLOTHO : Saving Programs from Malformed
Strings and Incorrect
10
Contribution
 Novel hybrid technique for patch generation which
ensures patch quality to be as per developers’ fix.
 Fully automated end-to-end tool : CLOTHO; soon to
be open sourced.
 Repairing solutions over 64+ String based API calls.
 Promising results for popular 30 java 3rd party
library bug.
4/1/2015
CLOTHO : Saving Programs from Malformed
Strings and Incorrect
11
Outline
 Problem Definition & Motivation
 Related Works
 Contribution
 Example
 Repairing Strategy : CLOTHO design
 Implementation
 Evaluation
 Conclusion
4/1/2015
CLOTHO : Saving Programs from Malformed
Strings and Incorrect
12
Example
Apache FileUtils bug
4/1/2015
CLOTHO : Saving Programs from Malformed
Strings and Incorrect
13
No boundary check
Example : Automated Patch
4/1/2015
CLOTHO : Saving Programs from Malformed
Strings and Incorrect
14
Example : Developers’ Patch
4/1/2015
CLOTHO : Saving Programs from Malformed
Strings and Incorrect
15
Outline
 Problem definition & Motivation
 Related Works
 Contribution
 Example
 Repairing Strategy : CLOTHO design
 Implementation
 Evaluation
 Conclusion
4/1/2015
CLOTHO : Saving Programs from Malformed
Strings and Incorrect
16
Design Goals
 High patch fidelity
 Precise
 Preserve intended program behavior
 Non-invasive instrumentation
 No side effect
 Patch triggers only when crash is imminent
 Low system overhead
 None when no exception
 Minimal incase patch triggers
4/1/2015
CLOTHO : Saving Programs from Malformed
Strings and Incorrect
17
CLOTHO : Overall Design
4/1/2015
CLOTHO : Saving Programs from Malformed
Strings and Incorrect
18
• Taint Analysis
• Call graph analysis
Java byte code
Design : Taint Analysis Module
4/1/2015
CLOTHO : Saving Programs from Malformed
Strings and Incorrect
19
Call Graph Analysis
4/1/2015
CLOTHO : Saving Programs from Malformed
Strings and Incorrect
20
foo()
bar()
g()
h()
 Look in the call sight of all the
ancestors.
 Level order traversal.
Design : Patching Module
4/1/2015
CLOTHO : Saving Programs from Malformed
Strings and Incorrect
21
Constraint analysis
4/1/2015
CLOTHO : Saving Programs from Malformed
Strings and Incorrect
22
//user input
//may fail
//may fail
4/1/2015
CLOTHO : Saving Programs from Malformed
Strings and Incorrect
23
Constraint Collection
𝑆𝑡 ∗ 𝑂𝑃
𝑆𝑡. 𝑠𝑡𝑎𝑟𝑡𝑠𝑊𝑖𝑡ℎ 𝑠 ⇒ ( 𝑆𝑡) 𝑠𝑡𝑎𝑟𝑡𝑠𝑊𝑖𝑡ℎ (𝑠 )
𝑆𝑡. 𝑙𝑒𝑛𝑔𝑡ℎ < 5 ⇒ ((𝑆𝑡) 𝑙𝑒𝑛𝑔𝑡ℎ < (5))
Static Constraint Evaluation
4/1/2015
CLOTHO : Saving Programs from Malformed
Strings and Incorrect
24
Min Length Max Length Prefix set Contains set
abcd
Dynamic Constraint Collection &
Evaluation
 Also need to collect the static constraints and re
evaluate.
 Evaluate only if necessary
4/1/2015
CLOTHO : Saving Programs from Malformed
Strings and Incorrect
25
What if nothing works?
 Parameter tweaking
 Evaluate safe indices from string properties
 Recall the 1st example
4/1/2015
CLOTHO : Saving Programs from Malformed
Strings and Incorrect
26
What if nothing works?
 Fallback to parameter tweaking
 Look for the string properties
4/1/2015
CLOTHO : Saving Programs from Malformed
Strings and Incorrect
27
Outline
 Problem definition & Motivation
 Related Works
 Contribution
 Example
 Repairing Strategy : CLOTHO design
 Implementation
 Evaluation
 Conclusion
4/1/2015
CLOTHO : Saving Programs from Malformed
Strings and Incorrect
28
Implementation
 End-to-end repairing tool chain written in java
~15KLOC.
 Soot (version 2.5.0) for byte code analysis and
instrumentation.
 Soot infoFlow (May 2014 snapshot) for static taint
analysis.
 Java Decompiler (version 0.7.0.7) for visual inspection
of the instrumentation.
 Optimizations
 Minimize constraint analysis
 Minimize patch instrumentation
4/1/2015
CLOTHO : Saving Programs from Malformed
Strings and Incorrect
29
Outline
 Problem definition & Motivation
 Related Works
 Contribution
 Example
 Repairing Strategy : CLOTHO design
 Implementation
 Evaluation
 Conclusion
4/1/2015
CLOTHO : Saving Programs from Malformed
Strings and Incorrect
30
Evaluation metrics
 Program Quality Index (PQI)
 Taint analysis precession
 Flow Consistency Index (FCI)
𝐹𝐶𝐼 = 𝑛 (𝐹𝐶𝐼 ≥ 0)
 Cascaded exceptions
4/1/2015
CLOTHO : Saving Programs from Malformed
Strings and Incorrect
31
CLOTHO Evaluation
4/1/2015
CLOTHO : Saving Programs from Malformed
Strings and Incorrect
32
CLOTHO Performance
4/1/2015
CLOTHO : Saving Programs from Malformed
Strings and Incorrect
33
CLOTHO Performance
4/1/2015
CLOTHO : Saving Programs from Malformed
Strings and Incorrect
34
CLOTHO Overheads
 Execution overhead
 None in case of no exception
 Average overhead of ~2.32 𝜇𝑠 per call for 50𝐾 runs.
 Maximum overhead of ~3.96 𝜇𝑠 per call for Apache
Hive
 Call graph
 Apache wicket ~70𝐾
 Analysis time ~52.4 𝑠 and 210 𝑀𝐵 memory
 Constraint analysis
 At most ~5𝑠 for collection and evaluation
 Instrumentation
 At most 4𝑠
4/1/2015
CLOTHO : Saving Programs from Malformed
Strings and Incorrect
35
Outline
 Problem definition & Motivation
 Related Works
 Contribution
 Example
 Repairing Strategy : CLOTHO design
 Implementation
 Evaluation
 Conclusion
4/1/2015
CLOTHO : Saving Programs from Malformed
Strings and Incorrect
36
Conclusion & Future work
 In most of the cases CLOTHO generates efficient
patches.
 Adding more support for other Java APIs.
 Adding more intelligence to patching mechanism
for more effective patch.
4/1/2015
CLOTHO : Saving Programs from Malformed
Strings and Incorrect
37
Thank you
4/1/2015
CLOTHO : Saving Programs from Malformed
Strings and Incorrect
38
Constraint Collection
4/1/2015
CLOTHO : Saving Programs from Malformed
Strings and Incorrect
39
Constraint Evaluation
4/1/2015
CLOTHO : Saving Programs from Malformed
Strings and Incorrect
40
Fallback : Parameter Tweaking
4/1/2015
CLOTHO : Saving Programs from Malformed
Strings and Incorrect
41
Patching Strategy
4/1/2015
CLOTHO : Saving Programs from Malformed
Strings and Incorrect
42

Mais conteúdo relacionado

Mais procurados

Solutions manual for c++ programming from problem analysis to program design ...
Solutions manual for c++ programming from problem analysis to program design ...Solutions manual for c++ programming from problem analysis to program design ...
Solutions manual for c++ programming from problem analysis to program design ...Warren0989
 
Staroletov Design by Contract, verification of Cyber-physical systems
Staroletov Design by Contract, verification of Cyber-physical systemsStaroletov Design by Contract, verification of Cyber-physical systems
Staroletov Design by Contract, verification of Cyber-physical systemsSergey Staroletov
 
Open-DO Update
Open-DO UpdateOpen-DO Update
Open-DO UpdateAdaCore
 
150412 38 beamer methods of binary analysis
150412 38 beamer methods of  binary analysis150412 38 beamer methods of  binary analysis
150412 38 beamer methods of binary analysisRaghu Palakodety
 
Unit 3 Control Flow Testing
Unit 3   Control Flow TestingUnit 3   Control Flow Testing
Unit 3 Control Flow Testingravikhimani
 
Validation and Verification of SYSML Activity Diagrams Using HOARE Logic
Validation and Verification of SYSML Activity Diagrams Using HOARE Logic Validation and Verification of SYSML Activity Diagrams Using HOARE Logic
Validation and Verification of SYSML Activity Diagrams Using HOARE Logic ijseajournal
 
Static analysis works for mission-critical systems, why not yours?
Static analysis works for mission-critical systems, why not yours? Static analysis works for mission-critical systems, why not yours?
Static analysis works for mission-critical systems, why not yours? Rogue Wave Software
 
9781439035665 ppt ch02
9781439035665 ppt ch029781439035665 ppt ch02
9781439035665 ppt ch02Terry Yoast
 
Csc1100 lecture01 ch01 pt2-paradigm
Csc1100 lecture01 ch01 pt2-paradigmCsc1100 lecture01 ch01 pt2-paradigm
Csc1100 lecture01 ch01 pt2-paradigmIIUM
 
Static Code Analysis and Cppcheck
Static Code Analysis and CppcheckStatic Code Analysis and Cppcheck
Static Code Analysis and CppcheckZachary Blair
 

Mais procurados (19)

Solutions manual for c++ programming from problem analysis to program design ...
Solutions manual for c++ programming from problem analysis to program design ...Solutions manual for c++ programming from problem analysis to program design ...
Solutions manual for c++ programming from problem analysis to program design ...
 
Staroletov Design by Contract, verification of Cyber-physical systems
Staroletov Design by Contract, verification of Cyber-physical systemsStaroletov Design by Contract, verification of Cyber-physical systems
Staroletov Design by Contract, verification of Cyber-physical systems
 
Sta unit 2(abimanyu)
Sta unit 2(abimanyu)Sta unit 2(abimanyu)
Sta unit 2(abimanyu)
 
Open-DO Update
Open-DO UpdateOpen-DO Update
Open-DO Update
 
150412 38 beamer methods of binary analysis
150412 38 beamer methods of  binary analysis150412 38 beamer methods of  binary analysis
150412 38 beamer methods of binary analysis
 
Unit 3 Control Flow Testing
Unit 3   Control Flow TestingUnit 3   Control Flow Testing
Unit 3 Control Flow Testing
 
Tyuukan
TyuukanTyuukan
Tyuukan
 
Validation and Verification of SYSML Activity Diagrams Using HOARE Logic
Validation and Verification of SYSML Activity Diagrams Using HOARE Logic Validation and Verification of SYSML Activity Diagrams Using HOARE Logic
Validation and Verification of SYSML Activity Diagrams Using HOARE Logic
 
Static analysis works for mission-critical systems, why not yours?
Static analysis works for mission-critical systems, why not yours? Static analysis works for mission-critical systems, why not yours?
Static analysis works for mission-critical systems, why not yours?
 
9781439035665 ppt ch02
9781439035665 ppt ch029781439035665 ppt ch02
9781439035665 ppt ch02
 
Unit1
Unit1Unit1
Unit1
 
Csc1100 lecture01 ch01 pt2-paradigm
Csc1100 lecture01 ch01 pt2-paradigmCsc1100 lecture01 ch01 pt2-paradigm
Csc1100 lecture01 ch01 pt2-paradigm
 
Static Code Analysis and Cppcheck
Static Code Analysis and CppcheckStatic Code Analysis and Cppcheck
Static Code Analysis and Cppcheck
 
Unit 2 unit testing
Unit 2   unit testingUnit 2   unit testing
Unit 2 unit testing
 
Sta unit 3(abimanyu)
Sta unit 3(abimanyu)Sta unit 3(abimanyu)
Sta unit 3(abimanyu)
 
Chap02
Chap02Chap02
Chap02
 
Sta unit 4(abimanyu)
Sta unit 4(abimanyu)Sta unit 4(abimanyu)
Sta unit 4(abimanyu)
 
Testing
TestingTesting
Testing
 
[IJCT-V3I2P28] Authors: KulbirKaur, AnureetKaur
[IJCT-V3I2P28] Authors: KulbirKaur, AnureetKaur[IJCT-V3I2P28] Authors: KulbirKaur, AnureetKaur
[IJCT-V3I2P28] Authors: KulbirKaur, AnureetKaur
 

Destaque

Designing and Evaluating Techniques to
 Mitigate Misinformation Spread on 
Mi...
Designing and Evaluating Techniques to
 Mitigate Misinformation Spread on 
Mi...Designing and Evaluating Techniques to
 Mitigate Misinformation Spread on 
Mi...
Designing and Evaluating Techniques to
 Mitigate Misinformation Spread on 
Mi...IIIT Hyderabad
 
Novel Instruction Set Architecture Based Side Channels in popular SSL/TLS Imp...
Novel Instruction Set Architecture Based Side Channels in popular SSL/TLS Imp...Novel Instruction Set Architecture Based Side Channels in popular SSL/TLS Imp...
Novel Instruction Set Architecture Based Side Channels in popular SSL/TLS Imp...Cybersecurity Education and Research Centre
 
Easiest Way to Write a Thesis Statement
Easiest Way to Write a Thesis StatementEasiest Way to Write a Thesis Statement
Easiest Way to Write a Thesis StatementCustomWriting
 
Twitter and Polls: What Do 140 Characters Say About India General Elections 2014
Twitter and Polls: What Do 140 Characters Say About India General Elections 2014Twitter and Polls: What Do 140 Characters Say About India General Elections 2014
Twitter and Polls: What Do 140 Characters Say About India General Elections 2014Cybersecurity Education and Research Centre
 
Araling panlipunan grades 1 10 01.17.2014 edited march 25 2014
Araling panlipunan grades  1 10 01.17.2014 edited march 25 2014Araling panlipunan grades  1 10 01.17.2014 edited march 25 2014
Araling panlipunan grades 1 10 01.17.2014 edited march 25 2014Dep ED
 

Destaque (10)

Designing and Evaluating Techniques to
 Mitigate Misinformation Spread on 
Mi...
Designing and Evaluating Techniques to
 Mitigate Misinformation Spread on 
Mi...Designing and Evaluating Techniques to
 Mitigate Misinformation Spread on 
Mi...
Designing and Evaluating Techniques to
 Mitigate Misinformation Spread on 
Mi...
 
Broker Bots: Analyzing automated activity during High Impact Events on Twitter
Broker Bots: Analyzing automated activity during High Impact Events on TwitterBroker Bots: Analyzing automated activity during High Impact Events on Twitter
Broker Bots: Analyzing automated activity during High Impact Events on Twitter
 
Exploration of gaps in Bitly's spam detection and relevant countermeasures
Exploration of gaps in Bitly's spam detection and relevant countermeasuresExploration of gaps in Bitly's spam detection and relevant countermeasures
Exploration of gaps in Bitly's spam detection and relevant countermeasures
 
Web Application Security 101
Web Application Security 101Web Application Security 101
Web Application Security 101
 
Novel Instruction Set Architecture Based Side Channels in popular SSL/TLS Imp...
Novel Instruction Set Architecture Based Side Channels in popular SSL/TLS Imp...Novel Instruction Set Architecture Based Side Channels in popular SSL/TLS Imp...
Novel Instruction Set Architecture Based Side Channels in popular SSL/TLS Imp...
 
Automated Methods for Identity Resolution across Online Social Networks
Automated Methods for Identity Resolution across Online Social NetworksAutomated Methods for Identity Resolution across Online Social Networks
Automated Methods for Identity Resolution across Online Social Networks
 
Video Inpainting detection using inconsistencies in optical Flow
Video Inpainting detection using inconsistencies in optical FlowVideo Inpainting detection using inconsistencies in optical Flow
Video Inpainting detection using inconsistencies in optical Flow
 
Easiest Way to Write a Thesis Statement
Easiest Way to Write a Thesis StatementEasiest Way to Write a Thesis Statement
Easiest Way to Write a Thesis Statement
 
Twitter and Polls: What Do 140 Characters Say About India General Elections 2014
Twitter and Polls: What Do 140 Characters Say About India General Elections 2014Twitter and Polls: What Do 140 Characters Say About India General Elections 2014
Twitter and Polls: What Do 140 Characters Say About India General Elections 2014
 
Araling panlipunan grades 1 10 01.17.2014 edited march 25 2014
Araling panlipunan grades  1 10 01.17.2014 edited march 25 2014Araling panlipunan grades  1 10 01.17.2014 edited march 25 2014
Araling panlipunan grades 1 10 01.17.2014 edited march 25 2014
 

Semelhante a Clotho : Saving Programs from Malformed Strings and Incorrect

Model Drift Monitoring using Tensorflow Model Analysis
Model Drift Monitoring using Tensorflow Model AnalysisModel Drift Monitoring using Tensorflow Model Analysis
Model Drift Monitoring using Tensorflow Model AnalysisVivek Raja P S
 
Wait for it: identifying “On-Hold” self-admitted technical debt
Wait for it: identifying “On-Hold” self-admitted technical debtWait for it: identifying “On-Hold” self-admitted technical debt
Wait for it: identifying “On-Hold” self-admitted technical debtRungrojMaipradit1
 
A year of SonarQube and TFS/VSTS
A year of SonarQube and TFS/VSTSA year of SonarQube and TFS/VSTS
A year of SonarQube and TFS/VSTSMatteo Emili
 
Software Testing: Test Design and the Project Life Cycle
Software Testing: Test Design and the Project Life CycleSoftware Testing: Test Design and the Project Life Cycle
Software Testing: Test Design and the Project Life CycleDerek Callaway
 
Python for Machine Learning
Python for Machine LearningPython for Machine Learning
Python for Machine LearningStudent
 
FiQuant Market Microstructure Simulator: Strategy Definition Language
FiQuant Market Microstructure Simulator: Strategy Definition LanguageFiQuant Market Microstructure Simulator: Strategy Definition Language
FiQuant Market Microstructure Simulator: Strategy Definition LanguageAnton Kolotaev
 
Error Isolation and Management in Agile Multi-Tenant Cloud Based Applications
Error Isolation and Management in Agile Multi-Tenant Cloud Based Applications Error Isolation and Management in Agile Multi-Tenant Cloud Based Applications
Error Isolation and Management in Agile Multi-Tenant Cloud Based Applications neirew J
 
Error isolation and management in agile
Error isolation and management in agileError isolation and management in agile
Error isolation and management in agileijccsa
 
Just-in-time Detection of Protection-Impacting Changes on WordPress and Media...
Just-in-time Detection of Protection-Impacting Changes on WordPress and Media...Just-in-time Detection of Protection-Impacting Changes on WordPress and Media...
Just-in-time Detection of Protection-Impacting Changes on WordPress and Media...Amine Barrak
 
SE2023 0401 Software Coding and Testing.pptx
SE2023 0401 Software Coding and Testing.pptxSE2023 0401 Software Coding and Testing.pptx
SE2023 0401 Software Coding and Testing.pptxBharat Chawda
 
Towards Developing a Repository of Logical Errors Observed in Parallel Code t...
Towards Developing a Repository of Logical Errors Observed in Parallel Code t...Towards Developing a Repository of Logical Errors Observed in Parallel Code t...
Towards Developing a Repository of Logical Errors Observed in Parallel Code t...Ritu Arora
 
DHSSTTSL11192.HSI Process (1)
DHSSTTSL11192.HSI Process (1)DHSSTTSL11192.HSI Process (1)
DHSSTTSL11192.HSI Process (1)John Chin
 
st-notes-13-26-software-testing-is-the-act-of-examining-the-artifacts-and-the...
st-notes-13-26-software-testing-is-the-act-of-examining-the-artifacts-and-the...st-notes-13-26-software-testing-is-the-act-of-examining-the-artifacts-and-the...
st-notes-13-26-software-testing-is-the-act-of-examining-the-artifacts-and-the...mwpeexdvjgtqujwhog
 
Defect Tracking Software Project Presentation
Defect Tracking Software Project PresentationDefect Tracking Software Project Presentation
Defect Tracking Software Project PresentationShiv Prakash
 
Introduction to llvm
Introduction to llvmIntroduction to llvm
Introduction to llvmTao He
 
How to save on software maintenance costs
How to save on software maintenance costsHow to save on software maintenance costs
How to save on software maintenance costsFrancisJansen
 
Fy secondsemester2016
Fy secondsemester2016Fy secondsemester2016
Fy secondsemester2016Ankit Dubey
 

Semelhante a Clotho : Saving Programs from Malformed Strings and Incorrect (20)

Model Drift Monitoring using Tensorflow Model Analysis
Model Drift Monitoring using Tensorflow Model AnalysisModel Drift Monitoring using Tensorflow Model Analysis
Model Drift Monitoring using Tensorflow Model Analysis
 
Intro To AOP
Intro To AOPIntro To AOP
Intro To AOP
 
Wait for it: identifying “On-Hold” self-admitted technical debt
Wait for it: identifying “On-Hold” self-admitted technical debtWait for it: identifying “On-Hold” self-admitted technical debt
Wait for it: identifying “On-Hold” self-admitted technical debt
 
A year of SonarQube and TFS/VSTS
A year of SonarQube and TFS/VSTSA year of SonarQube and TFS/VSTS
A year of SonarQube and TFS/VSTS
 
Software Testing: Test Design and the Project Life Cycle
Software Testing: Test Design and the Project Life CycleSoftware Testing: Test Design and the Project Life Cycle
Software Testing: Test Design and the Project Life Cycle
 
Python for Machine Learning
Python for Machine LearningPython for Machine Learning
Python for Machine Learning
 
FiQuant Market Microstructure Simulator: Strategy Definition Language
FiQuant Market Microstructure Simulator: Strategy Definition LanguageFiQuant Market Microstructure Simulator: Strategy Definition Language
FiQuant Market Microstructure Simulator: Strategy Definition Language
 
Fehlmann and Kranich - Measuring tests using cosmic
Fehlmann and Kranich - Measuring tests using cosmicFehlmann and Kranich - Measuring tests using cosmic
Fehlmann and Kranich - Measuring tests using cosmic
 
Error Isolation and Management in Agile Multi-Tenant Cloud Based Applications
Error Isolation and Management in Agile Multi-Tenant Cloud Based Applications Error Isolation and Management in Agile Multi-Tenant Cloud Based Applications
Error Isolation and Management in Agile Multi-Tenant Cloud Based Applications
 
Error isolation and management in agile
Error isolation and management in agileError isolation and management in agile
Error isolation and management in agile
 
Just-in-time Detection of Protection-Impacting Changes on WordPress and Media...
Just-in-time Detection of Protection-Impacting Changes on WordPress and Media...Just-in-time Detection of Protection-Impacting Changes on WordPress and Media...
Just-in-time Detection of Protection-Impacting Changes on WordPress and Media...
 
SE2023 0401 Software Coding and Testing.pptx
SE2023 0401 Software Coding and Testing.pptxSE2023 0401 Software Coding and Testing.pptx
SE2023 0401 Software Coding and Testing.pptx
 
Software metrics
Software metricsSoftware metrics
Software metrics
 
Towards Developing a Repository of Logical Errors Observed in Parallel Code t...
Towards Developing a Repository of Logical Errors Observed in Parallel Code t...Towards Developing a Repository of Logical Errors Observed in Parallel Code t...
Towards Developing a Repository of Logical Errors Observed in Parallel Code t...
 
DHSSTTSL11192.HSI Process (1)
DHSSTTSL11192.HSI Process (1)DHSSTTSL11192.HSI Process (1)
DHSSTTSL11192.HSI Process (1)
 
st-notes-13-26-software-testing-is-the-act-of-examining-the-artifacts-and-the...
st-notes-13-26-software-testing-is-the-act-of-examining-the-artifacts-and-the...st-notes-13-26-software-testing-is-the-act-of-examining-the-artifacts-and-the...
st-notes-13-26-software-testing-is-the-act-of-examining-the-artifacts-and-the...
 
Defect Tracking Software Project Presentation
Defect Tracking Software Project PresentationDefect Tracking Software Project Presentation
Defect Tracking Software Project Presentation
 
Introduction to llvm
Introduction to llvmIntroduction to llvm
Introduction to llvm
 
How to save on software maintenance costs
How to save on software maintenance costsHow to save on software maintenance costs
How to save on software maintenance costs
 
Fy secondsemester2016
Fy secondsemester2016Fy secondsemester2016
Fy secondsemester2016
 

Mais de Cybersecurity Education and Research Centre

Data-Driven Assessment of Cyber Risk: Challenges in Assessing and Migrating C...
Data-Driven Assessment of Cyber Risk: Challenges in Assessing and Migrating C...Data-Driven Assessment of Cyber Risk: Challenges in Assessing and Migrating C...
Data-Driven Assessment of Cyber Risk: Challenges in Assessing and Migrating C...Cybersecurity Education and Research Centre
 
National Critical Information Infrastructure Protection Centre (NCIIPC): Role...
National Critical Information Infrastructure Protection Centre (NCIIPC): Role...National Critical Information Infrastructure Protection Centre (NCIIPC): Role...
National Critical Information Infrastructure Protection Centre (NCIIPC): Role...Cybersecurity Education and Research Centre
 

Mais de Cybersecurity Education and Research Centre (9)

TASVEER : Tomography of India’s Internet Infrastructure
TASVEER : Tomography of India’s Internet InfrastructureTASVEER : Tomography of India’s Internet Infrastructure
TASVEER : Tomography of India’s Internet Infrastructure
 
Data-Driven Assessment of Cyber Risk: Challenges in Assessing and Migrating C...
Data-Driven Assessment of Cyber Risk: Challenges in Assessing and Migrating C...Data-Driven Assessment of Cyber Risk: Challenges in Assessing and Migrating C...
Data-Driven Assessment of Cyber Risk: Challenges in Assessing and Migrating C...
 
A Strategy for Addressing Cyber Security Challenges
A Strategy for Addressing Cyber Security Challenges A Strategy for Addressing Cyber Security Challenges
A Strategy for Addressing Cyber Security Challenges
 
Identification and Analysis of Malicious Content on Facebook: A Survey
Identification and Analysis of Malicious Content on Facebook: A SurveyIdentification and Analysis of Malicious Content on Facebook: A Survey
Identification and Analysis of Malicious Content on Facebook: A Survey
 
National Critical Information Infrastructure Protection Centre (NCIIPC): Role...
National Critical Information Infrastructure Protection Centre (NCIIPC): Role...National Critical Information Infrastructure Protection Centre (NCIIPC): Role...
National Critical Information Infrastructure Protection Centre (NCIIPC): Role...
 
Analyzing Social and Stylometric Features to Identify Spear phishing Emails
Analyzing Social and Stylometric Features to Identify Spear phishing EmailsAnalyzing Social and Stylometric Features to Identify Spear phishing Emails
Analyzing Social and Stylometric Features to Identify Spear phishing Emails
 
Emerging Phishing Trends and Effectiveness of the Anti-Phishing Landing Page
Emerging Phishing Trends and Effectiveness of the Anti-Phishing Landing PageEmerging Phishing Trends and Effectiveness of the Anti-Phishing Landing Page
Emerging Phishing Trends and Effectiveness of the Anti-Phishing Landing Page
 
Securing the Digital Enterprise
Securing the Digital EnterpriseSecuring the Digital Enterprise
Securing the Digital Enterprise
 
The future of interaction & its security challenges
The future of interaction & its security challengesThe future of interaction & its security challenges
The future of interaction & its security challenges
 

Último

Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 

Último (20)

Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 

Clotho : Saving Programs from Malformed Strings and Incorrect

  • 1. CLOTHO : Saving Programs from Malformed Strings and Incorrect String-handling Aritra Dhar M.Tech CSE (MT12004) Information Security Thesis Committee Dr. Rahul Purandare (Advisor) Dr. Mohan Dhawan (External Reviewer) Dr. Sambuddho Chakravarty (Internal Reviewer)
  • 2. Outline  Problem definition & Motivation  Related Works  Contribution  Example  Repairing Strategy : CLOTHO design  Implementation  Evaluation  Conclusion 4/1/2015 CLOTHO : Saving Programs from Malformed Strings and Incorrect 2
  • 3. Problem Definition  Runtime Exceptions go unnoticed at the time of development.  Restart/shutdown can be very expensive or unacceptable.  Example :  Air-traffic control  Autopilot  UAV drones,  life-support system  smart power grid  telephone network  software controlled gas pipeline and many more. 4/1/2015 CLOTHO : Saving Programs from Malformed Strings and Incorrect 3
  • 4. Problem Definition  Vulnerability in the code may be targeted by the attacker.  Crash is bad for business.  3rd party library: no control over the sources.  Classify candidates for patching : financial transactions should not be repaired/patched.  Major problem – availability 4/1/2015 CLOTHO : Saving Programs from Malformed Strings and Incorrect 4
  • 5. Why String? 4/1/2015 CLOTHO : Saving Programs from Malformed Strings and Incorrect 5  Heavily used  Incorrect string handling and Malformed String  Large number of major, critical and blocker priority bugs.
  • 6. Challenges  No access of source code.  Logic is unknown.  Patching based on the program behavior and information available in the byte code. 4/1/2015 CLOTHO : Saving Programs from Malformed Strings and Incorrect 6
  • 7. Most Frequently used Java String APIs  String APIs  Java SE String library (java.lang.{String, StringBuffer, StringBuilder})  Apache Commons (org.apache.commons.lang.{StringUtils,StringEscapeUtils}) (http://commons.apache.org/)  Google Guava (com.google.common.base.Strings) (https://code.google.com/p/guava-libraries/) 4/1/2015 CLOTHO : Saving Programs from Malformed Strings and Incorrect 7
  • 8. Outline  Problem definition & Motivation  Related Works  Contribution  Example  Repairing Strategy : CLOTHO design  Implementation  Evaluation  Conclusion 4/1/2015 CLOTHO : Saving Programs from Malformed Strings and Incorrect 8
  • 9. Related Works  Cabin et al.(’11), Perkins et al.(’09) Dynamic approaches : memory, data, and incorrect programming constructs such as infinite loops  Demsky et al. (’03, ’05, ’06) Data structure repairing by isolating damaged data or memory portion  Eom et al.(’12) Delay execution till program self-stabilizes  Pezze et al.(’11) Find alternative execution paths  Long et al. (’14) Suppressing signals and attach lightweight monitors for divide by zero and null dereferencing errors  Cerny et al.(’14), Wei et al. (’10) develop patch and check correctness by computationally intensive techniques such as model-checking 4/1/2015 CLOTHO : Saving Programs from Malformed Strings and Incorrect 9
  • 10. Outline  Problem definition  Related Works  Contribution  Example  Repairing Strategy : CLOTHO design  Implementation  Evaluation  Conclusion 4/1/2015 CLOTHO : Saving Programs from Malformed Strings and Incorrect 10
  • 11. Contribution  Novel hybrid technique for patch generation which ensures patch quality to be as per developers’ fix.  Fully automated end-to-end tool : CLOTHO; soon to be open sourced.  Repairing solutions over 64+ String based API calls.  Promising results for popular 30 java 3rd party library bug. 4/1/2015 CLOTHO : Saving Programs from Malformed Strings and Incorrect 11
  • 12. Outline  Problem Definition & Motivation  Related Works  Contribution  Example  Repairing Strategy : CLOTHO design  Implementation  Evaluation  Conclusion 4/1/2015 CLOTHO : Saving Programs from Malformed Strings and Incorrect 12
  • 13. Example Apache FileUtils bug 4/1/2015 CLOTHO : Saving Programs from Malformed Strings and Incorrect 13 No boundary check
  • 14. Example : Automated Patch 4/1/2015 CLOTHO : Saving Programs from Malformed Strings and Incorrect 14
  • 15. Example : Developers’ Patch 4/1/2015 CLOTHO : Saving Programs from Malformed Strings and Incorrect 15
  • 16. Outline  Problem definition & Motivation  Related Works  Contribution  Example  Repairing Strategy : CLOTHO design  Implementation  Evaluation  Conclusion 4/1/2015 CLOTHO : Saving Programs from Malformed Strings and Incorrect 16
  • 17. Design Goals  High patch fidelity  Precise  Preserve intended program behavior  Non-invasive instrumentation  No side effect  Patch triggers only when crash is imminent  Low system overhead  None when no exception  Minimal incase patch triggers 4/1/2015 CLOTHO : Saving Programs from Malformed Strings and Incorrect 17
  • 18. CLOTHO : Overall Design 4/1/2015 CLOTHO : Saving Programs from Malformed Strings and Incorrect 18 • Taint Analysis • Call graph analysis Java byte code
  • 19. Design : Taint Analysis Module 4/1/2015 CLOTHO : Saving Programs from Malformed Strings and Incorrect 19
  • 20. Call Graph Analysis 4/1/2015 CLOTHO : Saving Programs from Malformed Strings and Incorrect 20 foo() bar() g() h()  Look in the call sight of all the ancestors.  Level order traversal.
  • 21. Design : Patching Module 4/1/2015 CLOTHO : Saving Programs from Malformed Strings and Incorrect 21
  • 22. Constraint analysis 4/1/2015 CLOTHO : Saving Programs from Malformed Strings and Incorrect 22 //user input //may fail //may fail
  • 23. 4/1/2015 CLOTHO : Saving Programs from Malformed Strings and Incorrect 23 Constraint Collection 𝑆𝑡 ∗ 𝑂𝑃 𝑆𝑡. 𝑠𝑡𝑎𝑟𝑡𝑠𝑊𝑖𝑡ℎ 𝑠 ⇒ ( 𝑆𝑡) 𝑠𝑡𝑎𝑟𝑡𝑠𝑊𝑖𝑡ℎ (𝑠 ) 𝑆𝑡. 𝑙𝑒𝑛𝑔𝑡ℎ < 5 ⇒ ((𝑆𝑡) 𝑙𝑒𝑛𝑔𝑡ℎ < (5))
  • 24. Static Constraint Evaluation 4/1/2015 CLOTHO : Saving Programs from Malformed Strings and Incorrect 24 Min Length Max Length Prefix set Contains set abcd
  • 25. Dynamic Constraint Collection & Evaluation  Also need to collect the static constraints and re evaluate.  Evaluate only if necessary 4/1/2015 CLOTHO : Saving Programs from Malformed Strings and Incorrect 25
  • 26. What if nothing works?  Parameter tweaking  Evaluate safe indices from string properties  Recall the 1st example 4/1/2015 CLOTHO : Saving Programs from Malformed Strings and Incorrect 26
  • 27. What if nothing works?  Fallback to parameter tweaking  Look for the string properties 4/1/2015 CLOTHO : Saving Programs from Malformed Strings and Incorrect 27
  • 28. Outline  Problem definition & Motivation  Related Works  Contribution  Example  Repairing Strategy : CLOTHO design  Implementation  Evaluation  Conclusion 4/1/2015 CLOTHO : Saving Programs from Malformed Strings and Incorrect 28
  • 29. Implementation  End-to-end repairing tool chain written in java ~15KLOC.  Soot (version 2.5.0) for byte code analysis and instrumentation.  Soot infoFlow (May 2014 snapshot) for static taint analysis.  Java Decompiler (version 0.7.0.7) for visual inspection of the instrumentation.  Optimizations  Minimize constraint analysis  Minimize patch instrumentation 4/1/2015 CLOTHO : Saving Programs from Malformed Strings and Incorrect 29
  • 30. Outline  Problem definition & Motivation  Related Works  Contribution  Example  Repairing Strategy : CLOTHO design  Implementation  Evaluation  Conclusion 4/1/2015 CLOTHO : Saving Programs from Malformed Strings and Incorrect 30
  • 31. Evaluation metrics  Program Quality Index (PQI)  Taint analysis precession  Flow Consistency Index (FCI) 𝐹𝐶𝐼 = 𝑛 (𝐹𝐶𝐼 ≥ 0)  Cascaded exceptions 4/1/2015 CLOTHO : Saving Programs from Malformed Strings and Incorrect 31
  • 32. CLOTHO Evaluation 4/1/2015 CLOTHO : Saving Programs from Malformed Strings and Incorrect 32
  • 33. CLOTHO Performance 4/1/2015 CLOTHO : Saving Programs from Malformed Strings and Incorrect 33
  • 34. CLOTHO Performance 4/1/2015 CLOTHO : Saving Programs from Malformed Strings and Incorrect 34
  • 35. CLOTHO Overheads  Execution overhead  None in case of no exception  Average overhead of ~2.32 𝜇𝑠 per call for 50𝐾 runs.  Maximum overhead of ~3.96 𝜇𝑠 per call for Apache Hive  Call graph  Apache wicket ~70𝐾  Analysis time ~52.4 𝑠 and 210 𝑀𝐵 memory  Constraint analysis  At most ~5𝑠 for collection and evaluation  Instrumentation  At most 4𝑠 4/1/2015 CLOTHO : Saving Programs from Malformed Strings and Incorrect 35
  • 36. Outline  Problem definition & Motivation  Related Works  Contribution  Example  Repairing Strategy : CLOTHO design  Implementation  Evaluation  Conclusion 4/1/2015 CLOTHO : Saving Programs from Malformed Strings and Incorrect 36
  • 37. Conclusion & Future work  In most of the cases CLOTHO generates efficient patches.  Adding more support for other Java APIs.  Adding more intelligence to patching mechanism for more effective patch. 4/1/2015 CLOTHO : Saving Programs from Malformed Strings and Incorrect 37
  • 38. Thank you 4/1/2015 CLOTHO : Saving Programs from Malformed Strings and Incorrect 38
  • 39. Constraint Collection 4/1/2015 CLOTHO : Saving Programs from Malformed Strings and Incorrect 39
  • 40. Constraint Evaluation 4/1/2015 CLOTHO : Saving Programs from Malformed Strings and Incorrect 40
  • 41. Fallback : Parameter Tweaking 4/1/2015 CLOTHO : Saving Programs from Malformed Strings and Incorrect 41
  • 42. Patching Strategy 4/1/2015 CLOTHO : Saving Programs from Malformed Strings and Incorrect 42