The Construction and Applications of Callback Control Flow Graphs for Event-driven and Framework-based Mobile Apps

Mobile devices have become ubiquitous over the last years. Android, as the leading platform in the mobile ecosystem, have over 2.5 million apps published in Google Play Market. This enormous ecosystem creates a fierce competition between apps with similar functionality in which the low quality of ap...

Full description

Saved in:
Bibliographic Details
Main Author: Dominguez Perez, Danilo
Format: Dissertation
Language:English
Published: ProQuest Dissertations & Theses 01-01-2019
Subjects:
Online Access:Get full text
Tags: Add Tag
No Tags, Be the first to tag this record!
Abstract Mobile devices have become ubiquitous over the last years. Android, as the leading platform in the mobile ecosystem, have over 2.5 million apps published in Google Play Market. This enormous ecosystem creates a fierce competition between apps with similar functionality in which the low quality of apps has been shown to increase the churn rate considerably. Additionally, the complex event-driven, framework-based architecture that developers use to implement apps imposes several challenges and led to new varieties of code smells and bugs. There is a need for tools that assure the quality of apps such as program analysis and testing tools. One of the foundational challenges for developing these tools is the sequencing or ordering of callback methods invoked from external events (e.g. GUI events) and framework calls. Even for a small subset of callbacks, it has been shown that the current state-of-the-art tools fail to generate sequences of callbacks that match the runtime behavior of Android apps. This thesis explores the construction and applications of new representations and program analyses for event-driven, framework-based mobile applications, specifically Android apps. In Android, we observe that the changes of control flow between entry points are mostly handled by the framework using callbacks. These callbacks can be executed synchronously and asynchronously when an external event happens (e.g. a click event) or a framework call is made. In framework-based systems, method calls to the framework can invoke sequences of callbacks. With the high overhead introduced by libraries such as the Android framework, most current tools for the analysis of Android apps have opted to skip the analysis of these libraries. Thus, these analyses missed the correct order of callbacks for each callback invoked in framework calls. This thesis presents a new specification called Predicate Callback Summary (PCS) to summarize how library or API methods invoke callbacks. PCSs enable inter-procedural analysis for Android apps without the overhead of analyzing the whole framework and help developers understand how their code (callback methods) is executed in the framework. We show that our static analysis techniques to summarize PCSs is accurate and scalable, considering the complexity of the millions of lines of code in the Android framework. With PCSs summaries, we have information about the control flow of callbacks invoked in framework calls but lack information about how external events can execute callbacks. To integrate event-driven control flow behavior with control behavior generated from framework calls, we designed a novel program representation, namely Callback Control Flow Automata (CCFA). The design of CCFA is based on the Extended Finite State Machine (EFSM) model, which extends the Finite State Machine (FSM) by labeling transitions using information such as guards. In a CCFA, a state represents whether the execution path enters or exits a callback. The transition from one state to another represents the transfer of control flow between callbacks. We present an analysis to automatically construct CCFAs by combining two callback control flow representations developed from the previous research, namely, Window Transition Graphs (WTGs) and PCSs. To demonstrate the usefulness of our representation, we integrated CCFAs into two client analyses: a taint analysis using FLOWDROID, and a value-flow analysis that computes source and sink pairs of a program. Our evaluation shows that we can compute CCFAs efficiently and that CCFAs improved the callback coverages over WTGs. As a result of using CCFAs, we obtained 33 more true positive security leaks than FLOWDROID over a total of 55 apps we have run. With a low false positive rate, we found that 22.76\% of source-sink pairs we computed are located in different callbacks and that 31 out of 55 apps contain source-sink pairs spreading across components. In the last part of this thesis, we use the CCFAs to develop a new family of coverage criteria based on callback sequences for more effective testing Android apps. We present 2 studies to help us identify what types of callbacks are important when detecting bugs. With the help of the empirical results, we defined 3 coverage criteria based on callback sequences. Our evaluation shows that our coverage criteria are a more effective metric than statement and GUI-based event coverage to guide test input generation.
AbstractList Mobile devices have become ubiquitous over the last years. Android, as the leading platform in the mobile ecosystem, have over 2.5 million apps published in Google Play Market. This enormous ecosystem creates a fierce competition between apps with similar functionality in which the low quality of apps has been shown to increase the churn rate considerably. Additionally, the complex event-driven, framework-based architecture that developers use to implement apps imposes several challenges and led to new varieties of code smells and bugs. There is a need for tools that assure the quality of apps such as program analysis and testing tools. One of the foundational challenges for developing these tools is the sequencing or ordering of callback methods invoked from external events (e.g. GUI events) and framework calls. Even for a small subset of callbacks, it has been shown that the current state-of-the-art tools fail to generate sequences of callbacks that match the runtime behavior of Android apps. This thesis explores the construction and applications of new representations and program analyses for event-driven, framework-based mobile applications, specifically Android apps. In Android, we observe that the changes of control flow between entry points are mostly handled by the framework using callbacks. These callbacks can be executed synchronously and asynchronously when an external event happens (e.g. a click event) or a framework call is made. In framework-based systems, method calls to the framework can invoke sequences of callbacks. With the high overhead introduced by libraries such as the Android framework, most current tools for the analysis of Android apps have opted to skip the analysis of these libraries. Thus, these analyses missed the correct order of callbacks for each callback invoked in framework calls. This thesis presents a new specification called Predicate Callback Summary (PCS) to summarize how library or API methods invoke callbacks. PCSs enable inter-procedural analysis for Android apps without the overhead of analyzing the whole framework and help developers understand how their code (callback methods) is executed in the framework. We show that our static analysis techniques to summarize PCSs is accurate and scalable, considering the complexity of the millions of lines of code in the Android framework. With PCSs summaries, we have information about the control flow of callbacks invoked in framework calls but lack information about how external events can execute callbacks. To integrate event-driven control flow behavior with control behavior generated from framework calls, we designed a novel program representation, namely Callback Control Flow Automata (CCFA). The design of CCFA is based on the Extended Finite State Machine (EFSM) model, which extends the Finite State Machine (FSM) by labeling transitions using information such as guards. In a CCFA, a state represents whether the execution path enters or exits a callback. The transition from one state to another represents the transfer of control flow between callbacks. We present an analysis to automatically construct CCFAs by combining two callback control flow representations developed from the previous research, namely, Window Transition Graphs (WTGs) and PCSs. To demonstrate the usefulness of our representation, we integrated CCFAs into two client analyses: a taint analysis using FLOWDROID, and a value-flow analysis that computes source and sink pairs of a program. Our evaluation shows that we can compute CCFAs efficiently and that CCFAs improved the callback coverages over WTGs. As a result of using CCFAs, we obtained 33 more true positive security leaks than FLOWDROID over a total of 55 apps we have run. With a low false positive rate, we found that 22.76\% of source-sink pairs we computed are located in different callbacks and that 31 out of 55 apps contain source-sink pairs spreading across components. In the last part of this thesis, we use the CCFAs to develop a new family of coverage criteria based on callback sequences for more effective testing Android apps. We present 2 studies to help us identify what types of callbacks are important when detecting bugs. With the help of the empirical results, we defined 3 coverage criteria based on callback sequences. Our evaluation shows that our coverage criteria are a more effective metric than statement and GUI-based event coverage to guide test input generation.
Author Dominguez Perez, Danilo
Author_xml – sequence: 1
  givenname: Danilo
  surname: Dominguez Perez
  fullname: Dominguez Perez, Danilo
BookMark eNqNjMGOgjAURZs4JjrKP7xk1iRYQOhyQkQ37tybAiVWax--V8bfH5nMB7g6ubkn51N8ePRmJiJVlJukzHOVKakWImK2TZJLlWQyLZaCThcDFXoONLbBogftO_geBmdbPW0G7KHSzjW6vU1mIHRQO3zCnvRwYeiRYPdjfIg7si_-FWrSd_NEusWNZtPBERvrzBTmtZj32rGJ_rkSX_XuVB3igfAxGg7nK47kX9dZyjLNsnKbFul71i_3GU3-
ContentType Dissertation
Copyright Database copyright ProQuest LLC; ProQuest does not claim copyright in the individual underlying works.
Copyright_xml – notice: Database copyright ProQuest LLC; ProQuest does not claim copyright in the individual underlying works.
DBID 053
0BH
0HG
CBPLH
EU9
G20
M8-
PQEST
PQQKQ
PQUKI
DatabaseName Dissertations & Theses Europe Full Text: Science & Technology
ProQuest Dissertations and Theses Professional
Dissertations & Theses @ Iowa State University
ProQuest Dissertations & Theses Global: The Sciences and Engineering Collection
ProQuest Dissertations & Theses A&I
ProQuest Dissertations & Theses Global
ProQuest Dissertations and Theses A&I: The Sciences and Engineering Collection
ProQuest One Academic Eastern Edition (DO NOT USE)
ProQuest One Academic
ProQuest One Academic UKI Edition
DatabaseTitle Dissertations & Theses Europe Full Text: Science & Technology
ProQuest One Academic UKI Edition
ProQuest One Academic Eastern Edition
Dissertations & Theses @ Iowa State University
ProQuest Dissertations & Theses Global: The Sciences and Engineering Collection
ProQuest Dissertations and Theses Professional
ProQuest One Academic
ProQuest Dissertations & Theses A&I
ProQuest Dissertations and Theses A&I: The Sciences and Engineering Collection
ProQuest Dissertations & Theses Global
DatabaseTitleList Dissertations & Theses Europe Full Text: Science & Technology
Database_xml – sequence: 1
  dbid: G20
  name: ProQuest Dissertations & Theses Global
  url: https://www.proquest.com/pqdtglobal1
  sourceTypes: Aggregation Database
DeliveryMethod fulltext_linktorsrc
Discipline Computer Science
Genre Dissertation/Thesis
GroupedDBID 053
0BH
0HG
A6X
ALMA_UNASSIGNED_HOLDINGS
CBPLH
EU9
G20
M8-
PQEST
PQQKQ
PQUKI
ID FETCH-proquest_journals_22834486373
IEDL.DBID G20
ISBN 9781085594929
1085594920
IngestDate Thu Oct 10 18:53:06 EDT 2024
IsPeerReviewed false
IsScholarly false
Language English
LinkModel DirectLink
MergedId FETCHMERGED-proquest_journals_22834486373
PQID 2283448637
PQPubID 18750
ParticipantIDs proquest_journals_2283448637
PublicationCentury 2000
PublicationDate 20190101
PublicationDateYYYYMMDD 2019-01-01
PublicationDate_xml – month: 01
  year: 2019
  text: 20190101
  day: 01
PublicationDecade 2010
PublicationYear 2019
Publisher ProQuest Dissertations & Theses
Publisher_xml – name: ProQuest Dissertations & Theses
SSID ssib052904237
ssib000933042
Score 3.7380044
Snippet Mobile devices have become ubiquitous over the last years. Android, as the leading platform in the mobile ecosystem, have over 2.5 million apps published in...
SourceID proquest
SourceType Aggregation Database
SubjectTerms Computer science
Electrical engineering
Title The Construction and Applications of Callback Control Flow Graphs for Event-driven and Framework-based Mobile Apps
URI https://www.proquest.com/docview/2283448637
hasFullText 1
inHoldings 1
isFullTextHit
isPrint
link http://sdu.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwpV09T8MwED3RsiCG8imgpToJVguU2Em8gFCblAUWGLpVTuwsRAk0Qvx9fG4sIlXqwmg5OsWx8-7se74HcBsHBSexOiZkWDAuzD1TFvWYEiZWSpdGhk7E9i1-XSbzlMrkPPi7MESr9JjogFo3BZ2R31GZFruViML48fOLkWoUZVc7CY0B7FMZGaL0Lfrhz2a37tsikI4FQve7iJ4luQx82SfflluY7BxNNvrvKx7B4byXYT-GPVOfwMhrN2D3K5_C2q4PJLVOXz8WVa3xqZfOxqbEmaqqXBUf9CQx2jGrmh9cUJHrFm24iynRJZleE2Y6C5knezHyjxpfmtziDhluz-AmS99nz8wPa9Ut5Hb1N6bwHIZ1U5sLQGHDRmUUOXvbV_LcRjFJaXiUBLkwIb-EyS5LV7u7x3BgoxK5OeeYwNB-B3MNg1Z_T23kGy2nbpJ_AU4tsyM
link.rule.ids 312,782,786,787,11655,11695,34254,34256,44056,74579,79370
linkProvider ProQuest
linkToHtml http://sdu.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwpV09T8MwED3RMoAYyqf4KHASrBYosZt4AaE2aRFtFzqwRU7iLFQJNEL8fXxuLCIhdWG0HJ3i-PL87Hu-A7gNvIxTsTompJ8xLvQ9Uwb1mBI6UCovtPRtEdvXYP4WjiJKk_Pg7sKQrNJhogXqvMrojPyO0rSYrcTADx4_PhlVjaLoalNCowPb3DAP8vBxm_6sd-uuLTxpVSB0v4vkWZJLz6V9cm35B5PtQhP3_vuK-7A3akXYD2BLl4fQc7UbsPmVj2Bl_AOpWqfLH4uqzPGpFc7GqsChWi5Tlb3Tk6Rox3hZfeOYklzXaOguRiSXZPmKMNNaiJ3Yi9H6mOOsSg3ukOH6GG7iaDGcMDespHHkOvkdk38C3bIq9SmgMLRRaUWLvekreGpYTFhoPgi9VGifn0F_k6Xzzd3XsDNZzKbJ9Hn-cgG7hqHI9ZlHH7rmm-hL6NT515Wd6h-drbUe
linkToPdf http://sdu.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwrV1LS8QwEB7cFUQ8rE98rBrQa1hpk01zEtlu1-ci6MFbSZv0Yml1i_j3zWQbLAh78hhShiadfplkvswHcCmCnKFYHeUyzCnj5ooqi3pUcSOU0oWRoROxfRHztyieYpmce38XBmmVHhMdUOs6xzPyEZZpsVuJcShGRUuLeI6T649PigpSmGlt5TR6sC4YF-jhs24otNy5-zYPpGOE4F0vpGpJJgNfAsq35R98dotOMvjP192GrbiTed-BNVPtwsBrOpD2F9-DhfUbgiqevq4sUZUmN500N6kLMlFlman8HZ9EpjtJyvqbzLD4dUNsGEymSKOkeoFY6iwkngRGcd3U5KnOLB6h4WYfLpLp6-SW-iGmrYM36e_4wgPoV3VlDoFwG04qozAIsH0Fy2x0ExWGjaMg4yZkRzBcZel4dfc5bNgpTB_v5g8nsGkDF7k8ChlC306JOYVeo7_O3Ff_AaAgvek
openUrl ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adissertation&rft.genre=dissertation&rft.title=The+Construction+and+Applications+of+Callback+Control+Flow+Graphs+for+Event-driven+and+Framework-based+Mobile+Apps&rft.DBID=053%3B0BH%3B0HG%3BCBPLH%3BEU9%3BG20%3BM8-%3BPQEST%3BPQQKQ%3BPQUKI&rft.PQPubID=18750&rft.au=Dominguez+Perez%2C+Danilo&rft.date=2019-01-01&rft.pub=ProQuest+Dissertations+%26+Theses&rft.isbn=9781085594929&rft.externalDBID=HAS_PDF_LINK
thumbnail_l http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=9781085594929/lc.gif&client=summon&freeimage=true
thumbnail_m http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=9781085594929/mc.gif&client=summon&freeimage=true
thumbnail_s http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=9781085594929/sc.gif&client=summon&freeimage=true