{"id":{"repo_id":"uiuc","oai_identifier":"oai:www.ideals.illinois.edu:2142/44313"},"canonical_url":"https://search.dev.ndltd.org/etd/uiuc/oai:www.ideals.illinois.edu:2142/44313","repository":{"repo_id":"uiuc","name":"University of Illinois - Urbana-Champaign","base_url":"https://www.ideals.illinois.edu/oai-pmh"},"display":{"title":"Using redundancy to improve security and testing","abstract":"Modern computer systems are complex. Their complexity leads to security vulnerabilities and software bugs that are hard to fix using existing techniques. One current trend is that nowadays we have more redundant resources available in computer systems. Redundant resources are independent computing units that provide the same or similar functionalities. We have redundant software instances such as standards compliant web browsers. We also have lots of users that participate directly in computing. In this dissertation, we study how to combine redundant resources to improve software systems. Redundant software instances are implemented independently, they are unlikely to have the same security vulnerability. It is hard to exploit all of them with the same attack. We first study improving security using redundant software to detect anomaly behaviors. In specific, we build Cocktail, which uses replicated execution of redundant web browsers to improve browser security. Cocktail mirrors inputs to each replica and votes on browser states and outputs to detect potential attacks, while continuing to run. The net effect of Cocktail’s architecture is to shift the security burden of the system from complex browsers to a simplified layer of software. We demonstrate that Cocktail can withstand real-world browser exploits and reliability issues, such as browser crashes, while adding only 31.5% overhead to page load latency times on average, and remaining compatible with popular web sites. With Cocktail, we make use of the independent implementations of redundant software. Next, we leverage users’ independent interactions with mobile apps to build CrowdBlaze. CrowdBlaze recruits users through crowdsourcing to help improve mobile app testing. CrowdBlaze combines human directed interactive testing and automatic testing. CrowdBlaze constructs a model of the app using static analysis and explore it first with automatic testing. Users recruited through crowdsourcing help improve model coverage by providing inputs that are too complex to generate during automatic testing. By switching between the two testing mechanisms, CrowdBlaze achieve high coverage effectively. We apply CrowdBlaze to cover reachable user interfaces in Android apps. On average, CrowdBlaze is able to cover 66.6% more user interfaces comparing to using automatic testing alone. By designing and implementing Cocktail and CrowdBlaze, we show that redundant resources are effective in improving nowadays software systems in terms of security and testing.","abstract_html":"Modern computer systems are complex. Their complexity leads to security vulnerabilities and software bugs that are hard to fix using existing techniques. One current trend is that nowadays we have more redundant resources available in computer systems. Redundant resources are independent computing units that provide the same or similar functionalities. We have redundant software instances such as standards compliant web browsers. We also have lots of users that participate directly in computing. In this dissertation, we study how to combine redundant resources to improve software systems. Redundant software instances are implemented independently, they are unlikely to have the same security vulnerability. It is hard to exploit all of them with the same attack. We first study improving security using redundant software to detect anomaly behaviors. In specific, we build Cocktail, which uses replicated execution of redundant web browsers to improve browser security. Cocktail mirrors inputs to each replica and votes on browser states and outputs to detect potential attacks, while continuing to run. The net effect of Cocktail’s architecture is to shift the security burden of the system from complex browsers to a simplified layer of software. We demonstrate that Cocktail can withstand real-world browser exploits and reliability issues, such as browser crashes, while adding only 31.5% overhead to page load latency times on average, and remaining compatible with popular web sites. With Cocktail, we make use of the independent implementations of redundant software. Next, we leverage users’ independent interactions with mobile apps to build CrowdBlaze. CrowdBlaze recruits users through crowdsourcing to help improve mobile app testing. CrowdBlaze combines human directed interactive testing and automatic testing. CrowdBlaze constructs a model of the app using static analysis and explore it first with automatic testing. Users recruited through crowdsourcing help improve model coverage by providing inputs that are too complex to generate during automatic testing. By switching between the two testing mechanisms, CrowdBlaze achieve high coverage effectively. We apply CrowdBlaze to cover reachable user interfaces in Android apps. On average, CrowdBlaze is able to cover 66.6% more user interfaces comparing to using automatic testing alone. By designing and implementing Cocktail and CrowdBlaze, we show that redundant resources are effective in improving nowadays software systems in terms of security and testing.","abstract_has_math":false,"creators":["Xue, Hui"],"institution":"University of Illinois at Urbana-Champaign","degree_name":"Ph.D.","degree_level":"Dissertation","degree_discipline":"Computer Science","degree_department":null,"school":null,"contributors":["King, Samuel T.","Gunter, Carl A.","Gupta, Indranil","Voelker, Geoffrey M."],"advisors":[],"committee_chairs":[],"committee_members":[],"year":2013,"date_issued":"2013-05-24T22:07:25Z","date_published":"2013-05-24T22:07:25Z","updated_at":"2026-07-22T22:25:34Z","subjects":["Security","Software testing","Operating System","Web browser","Crowdsourcing"],"languages":["en"],"rights":["Copyright 2013 Hui Xue. All rights reserved."],"rights_urls":[],"identifier_entries":[]},"links":{"outbound_url":"http://hdl.handle.net/2142/44313","outbound_label":"Handle","outbound_source":"dc:identifier"},"metadata_groups":[{"id":"people","label":"People","entries":[{"key":"dc:contributor","label":"Contributor","values":["King, Samuel T.","Gunter, Carl A.","Gupta, Indranil","Voelker, Geoffrey M."]},{"key":"dc:creator","label":"Author","values":["Xue, Hui"]}]},{"id":"academic_context","label":"Academic Context","entries":[{"key":"dc:date","label":"Dc Date","values":["2013-05-24T22:07:25Z","2013-05"]},{"key":"dc:type","label":"Dc Type","values":["text"]},{"key":"thesis:degree_discipline","label":"Discipline","values":["Computer Science"]},{"key":"thesis:degree_level","label":"Degree Level","values":["Dissertation"]},{"key":"thesis:degree_name","label":"Degree Name","values":["Ph.D."]},{"key":"thesis:institution_name","label":"Thesis Institution Name","values":["University of Illinois at Urbana-Champaign"]}]},{"id":"subjects_keywords","label":"Subjects and Keywords","entries":[{"key":"dc:subject","label":"Dc Subject","values":["Security","Software testing","Operating System","Web browser","Crowdsourcing"]}]},{"id":"language_rights","label":"Language and Rights","entries":[{"key":"dc:language","label":"Dc Language","values":["en"]},{"key":"dc:rights","label":"Dc Rights","values":["Copyright 2013 Hui Xue. All rights reserved."]}]},{"id":"identifiers","label":"Identifiers","entries":[{"key":"dc:identifier","label":"Identifier","values":["http://hdl.handle.net/2142/44313"]}]},{"id":"additional","label":"Additional Metadata","entries":[{"key":"dc:description","label":"Description","values":["Modern computer systems are complex. Their complexity leads to security vulnerabilities and software bugs that are hard to fix using existing techniques. One current trend is that nowadays we have more redundant resources available in computer systems. Redundant resources are independent computing units that provide the same or similar functionalities. We have redundant software instances such as standards compliant web browsers. We also have lots of users that participate directly in computing. In this dissertation, we study how to combine redundant resources to improve software systems. Redundant software instances are implemented independently, they are unlikely to have the same security vulnerability. It is hard to exploit all of them with the same attack. We first study improving security using redundant software to detect anomaly behaviors. In specific, we build Cocktail, which uses replicated execution of redundant web browsers to improve browser security. Cocktail mirrors inputs to each replica and votes on browser states and outputs to detect potential attacks, while continuing to run. The net effect of Cocktail’s architecture is to shift the security burden of the system from complex browsers to a simplified layer of software. We demonstrate that Cocktail can withstand real-world browser exploits and reliability issues, such as browser crashes, while adding only 31.5% overhead to page load latency times on average, and remaining compatible with popular web sites. With Cocktail, we make use of the independent implementations of redundant software. Next, we leverage users’ independent interactions with mobile apps to build CrowdBlaze. CrowdBlaze recruits users through crowdsourcing to help improve mobile app testing. CrowdBlaze combines human directed interactive testing and automatic testing. CrowdBlaze constructs a model of the app using static analysis and explore it first with automatic testing. Users recruited through crowdsourcing help improve model coverage by providing inputs that are too complex to generate during automatic testing. By switching between the two testing mechanisms, CrowdBlaze achieve high coverage effectively. We apply CrowdBlaze to cover reachable user interfaces in Android apps. On average, CrowdBlaze is able to cover 66.6% more user interfaces comparing to using automatic testing alone. By designing and implementing Cocktail and CrowdBlaze, we show that redundant resources are effective in improving nowadays software systems in terms of security and testing.","Item withdrawn by Alexis Thompson (athmpsn1@illinois.edu) on 2013-02-21T19:10:33Z Item was in collections: University of Illinois Theses & Dissertations (ID: 1) No. of bitstreams: 1 Xue_Hui.pdf: 3620840 bytes, checksum: 2eb904d96e22e2d6d9ee95ba7d91b25c (MD5)","Made available in DSpace on 2013-05-24T22:07:25Z (GMT). No. of bitstreams: 2 Hui_Xue.pdf: 3621259 bytes, checksum: 9a4e7ad50297ef050a164d8d73a7426a (MD5) license.txt: 4056 bytes, checksum: 866093a6808a62820e83850be259e444 (MD5)"]},{"key":"dc:title","label":"Title","values":["Using redundancy to improve security and testing"]}]}],"canonical_facts":{"dc:contributor":["King, Samuel T.","Gunter, Carl A.","Gupta, Indranil","Voelker, Geoffrey M."],"dc:creator":["Xue, Hui"],"dc:date":["2013-05-24T22:07:25Z","2013-05"],"dc:description":["Modern computer systems are complex. Their complexity leads to security vulnerabilities and software bugs that are hard to fix using existing techniques. One current trend is that nowadays we have more redundant resources available in computer systems. Redundant resources are independent computing units that provide the same or similar functionalities. We have redundant software instances such as standards compliant web browsers. We also have lots of users that participate directly in computing. In this dissertation, we study how to combine redundant resources to improve software systems. Redundant software instances are implemented independently, they are unlikely to have the same security vulnerability. It is hard to exploit all of them with the same attack. We first study improving security using redundant software to detect anomaly behaviors. In specific, we build Cocktail, which uses replicated execution of redundant web browsers to improve browser security. Cocktail mirrors inputs to each replica and votes on browser states and outputs to detect potential attacks, while continuing to run. The net effect of Cocktail’s architecture is to shift the security burden of the system from complex browsers to a simplified layer of software. We demonstrate that Cocktail can withstand real-world browser exploits and reliability issues, such as browser crashes, while adding only 31.5% overhead to page load latency times on average, and remaining compatible with popular web sites. With Cocktail, we make use of the independent implementations of redundant software. Next, we leverage users’ independent interactions with mobile apps to build CrowdBlaze. CrowdBlaze recruits users through crowdsourcing to help improve mobile app testing. CrowdBlaze combines human directed interactive testing and automatic testing. CrowdBlaze constructs a model of the app using static analysis and explore it first with automatic testing. Users recruited through crowdsourcing help improve model coverage by providing inputs that are too complex to generate during automatic testing. By switching between the two testing mechanisms, CrowdBlaze achieve high coverage effectively. We apply CrowdBlaze to cover reachable user interfaces in Android apps. On average, CrowdBlaze is able to cover 66.6% more user interfaces comparing to using automatic testing alone. By designing and implementing Cocktail and CrowdBlaze, we show that redundant resources are effective in improving nowadays software systems in terms of security and testing.","Item withdrawn by Alexis Thompson (athmpsn1@illinois.edu) on 2013-02-21T19:10:33Z Item was in collections: University of Illinois Theses & Dissertations (ID: 1) No. of bitstreams: 1 Xue_Hui.pdf: 3620840 bytes, checksum: 2eb904d96e22e2d6d9ee95ba7d91b25c (MD5)","Made available in DSpace on 2013-05-24T22:07:25Z (GMT). No. of bitstreams: 2 Hui_Xue.pdf: 3621259 bytes, checksum: 9a4e7ad50297ef050a164d8d73a7426a (MD5) license.txt: 4056 bytes, checksum: 866093a6808a62820e83850be259e444 (MD5)"],"dc:identifier":["http://hdl.handle.net/2142/44313"],"dc:language":["en"],"dc:rights":["Copyright 2013 Hui Xue. All rights reserved."],"dc:subject":["Security","Software testing","Operating System","Web browser","Crowdsourcing"],"dc:title":["Using redundancy to improve security and testing"],"dc:type":["text"],"thesis:degree_discipline":["Computer Science"],"thesis:degree_level":["Dissertation"],"thesis:degree_name":["Ph.D."],"thesis:institution_name":["University of Illinois at Urbana-Champaign"]},"updated_at":"2026-07-22T22:25:34Z"}