首页 > 最新文献

Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering最新文献

英文 中文
µDroid: an energy-aware mutation testing framework for Android μ Droid:一个能量感知突变测试框架的Android
Reyhaneh Jabbarvand, S. Malek
The rising popularity of mobile apps deployed on battery-constrained devices underlines the need for effectively evaluating their energy properties. However, currently there is a lack of testing tools for evaluating the energy properties of apps. As a result, for energy testing, developers are relying on tests intended for evaluating the functional correctness of apps. Such tests may not be adequate for revealing energy defects and inefficiencies in apps. This paper presents an energy-aware mutation testing framework, called μDROID, that can be used by developers to assess the adequacy of their test suite for revealing energy-related defects. μDROID implements fifty energy-aware mutation operators and relies on a novel, automatic oracle to determine if a mutant can be killed by a test. Our evaluation on real-world Android apps shows the ability of proposed mutation operators for evaluating the utility of tests in revealing energy defects. Moreover, our automated oracle can detect whether tests kill the energy mutants with an overall accuracy of 94%, thereby making it possible to apply μDROID automatically.
在电池有限的设备上部署的移动应用程序越来越受欢迎,这突显了有效评估其能量特性的必要性。然而,目前缺乏评估应用程序能量特性的测试工具。因此,对于能量测试,开发人员依赖于用于评估应用程序功能正确性的测试。这样的测试可能不足以揭示应用程序中的能量缺陷和低效率。本文提出了一个能量感知的突变测试框架,称为μDROID,开发人员可以使用它来评估他们的测试套件是否足够,以揭示与能量相关的缺陷。μDROID实现了50个能量感知突变操作符,并依赖于一种新颖的自动oracle来确定是否可以通过测试杀死突变体。我们对真实Android应用程序的评估表明,所提出的突变算子能够评估测试在揭示能量缺陷方面的效用。此外,我们的自动化oracle能够以94%的总体准确率检测测试是否杀死能量突变体,从而使μDROID的自动应用成为可能。
{"title":"µDroid: an energy-aware mutation testing framework for Android","authors":"Reyhaneh Jabbarvand, S. Malek","doi":"10.1145/3106237.3106244","DOIUrl":"https://doi.org/10.1145/3106237.3106244","url":null,"abstract":"The rising popularity of mobile apps deployed on battery-constrained devices underlines the need for effectively evaluating their energy properties. However, currently there is a lack of testing tools for evaluating the energy properties of apps. As a result, for energy testing, developers are relying on tests intended for evaluating the functional correctness of apps. Such tests may not be adequate for revealing energy defects and inefficiencies in apps. This paper presents an energy-aware mutation testing framework, called μDROID, that can be used by developers to assess the adequacy of their test suite for revealing energy-related defects. μDROID implements fifty energy-aware mutation operators and relies on a novel, automatic oracle to determine if a mutant can be killed by a test. Our evaluation on real-world Android apps shows the ability of proposed mutation operators for evaluating the utility of tests in revealing energy defects. Moreover, our automated oracle can detect whether tests kill the energy mutants with an overall accuracy of 94%, thereby making it possible to apply μDROID automatically.","PeriodicalId":313494,"journal":{"name":"Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-08-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129921089","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 61
Detecting wearable app permission mismatches: a case study on Android wear 检测可穿戴应用权限不匹配:Android穿戴案例研究
Suhaib Mujahid
Wearable devices are becoming increasingly popular. These wearable devices run what is known as wearable apps. Wearable apps are packaged with handheld apps, that must be installed on the accompanying handheld device (e.g., phone). Given that wearable apps are tightly coupled with the handheld apps, any wearable permission must also be requested in the handheld version of the app on the Android Wear platform. However, in some cases, the wearable apps may request permissions that do not exist in the handheld app, resulting in a permission mismatch, and causing the wearable app to error or crash. In this paper, we propose a technique to detect wear app permission mismatches. We perform a case study on 2,409 free Android Wear apps and find that 73 released wearable apps suffer from the permission mismatch problem.
可穿戴设备正变得越来越流行。这些可穿戴设备运行所谓的可穿戴应用程序。可穿戴应用程序与手持应用程序打包,必须安装在附带的手持设备上(例如,电话)。考虑到可穿戴应用与手持应用紧密结合,在Android Wear平台上,任何手持版本的应用都必须获得可穿戴许可。但是,在某些情况下,可穿戴应用可能会请求手持应用中不存在的权限,导致权限不匹配,从而导致可穿戴应用出错或崩溃。在本文中,我们提出了一种检测磨损应用程序权限不匹配的技术。我们对2409款免费Android Wear应用进行了案例研究,发现73款已发布的可穿戴应用存在权限不匹配问题。
{"title":"Detecting wearable app permission mismatches: a case study on Android wear","authors":"Suhaib Mujahid","doi":"10.1145/3106237.3121279","DOIUrl":"https://doi.org/10.1145/3106237.3121279","url":null,"abstract":"Wearable devices are becoming increasingly popular. These wearable devices run what is known as wearable apps. Wearable apps are packaged with handheld apps, that must be installed on the accompanying handheld device (e.g., phone). Given that wearable apps are tightly coupled with the handheld apps, any wearable permission must also be requested in the handheld version of the app on the Android Wear platform. However, in some cases, the wearable apps may request permissions that do not exist in the handheld app, resulting in a permission mismatch, and causing the wearable app to error or crash. In this paper, we propose a technique to detect wear app permission mismatches. We perform a case study on 2,409 free Android Wear apps and find that 73 released wearable apps suffer from the permission mismatch problem.","PeriodicalId":313494,"journal":{"name":"Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering","volume":"76 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-08-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125098988","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 8
ARTINALI: dynamic invariant detection for cyber-physical system security 网络物理系统安全的动态不变量检测
M. Aliabadi, Amita Ajith Kamath, Julien Gascon-Samson, K. Pattabiraman
Cyber-Physical Systems (CPSes) are being widely deployed in security critical scenarios such as smart homes and medical devices. Unfortunately, the connectedness of these systems and their relative lack of security measures makes them ripe targets for attacks. Specification-based Intrusion Detection Systems (IDS) have been shown to be effective for securing CPSs. Unfortunately, deriving invariants for capturing the specifications of CPS systems is a tedious and error-prone process. Therefore, it is important to dynamically monitor the CPS system to learn its common behaviors and formulate invariants for detecting security attacks. Existing techniques for invariant mining only incorporate data and events, but not time. However, time is central to most CPS systems, and hence incorporating time in addition to data and events, is essential for achieving low false positives and false negatives. This paper proposes ARTINALI, which mines dynamic system properties by incorporating time as a first-class property of the system. We build ARTINALI-based Intrusion Detection Systems (IDSes) for two CPSes, namely smart meters and smart medical devices, and measure their efficacy. We find that the ARTINALI-based IDSes significantly reduce the ratio of false positives and false negatives by 16 to 48% (average 30.75%) and 89 to 95% (average 93.4%) respectively over other dynamic invariant detection tools.
网络物理系统(cpse)被广泛应用于智能家居和医疗设备等安全关键场景。不幸的是,这些系统的连通性和相对缺乏安全措施使它们成为攻击的成熟目标。基于规范的入侵检测系统(IDS)已被证明是保护cps安全的有效方法。不幸的是,推导用于捕获CPS系统规范的不变量是一个冗长且容易出错的过程。因此,对CPS系统进行动态监控,了解其常见行为,制定检测安全攻击的不变量是非常重要的。现有的不变量挖掘技术只包含数据和事件,而不包含时间。然而,时间是大多数CPS系统的核心,因此,除了数据和事件之外,将时间结合起来,对于实现低假阳性和假阴性至关重要。本文提出了ARTINALI方法,该方法通过将时间作为系统的一级性质来挖掘系统的动态特性。针对智能电表和智能医疗设备两种cpse,构建基于artinali的入侵检测系统(ids),并对其效能进行测量。我们发现,与其他动态不变检测工具相比,基于artinali的ids显著降低了假阳性和假阴性的比例,分别为16%至48%(平均30.75%)和89%至95%(平均93.4%)。
{"title":"ARTINALI: dynamic invariant detection for cyber-physical system security","authors":"M. Aliabadi, Amita Ajith Kamath, Julien Gascon-Samson, K. Pattabiraman","doi":"10.1145/3106237.3106282","DOIUrl":"https://doi.org/10.1145/3106237.3106282","url":null,"abstract":"Cyber-Physical Systems (CPSes) are being widely deployed in security critical scenarios such as smart homes and medical devices. Unfortunately, the connectedness of these systems and their relative lack of security measures makes them ripe targets for attacks. Specification-based Intrusion Detection Systems (IDS) have been shown to be effective for securing CPSs. Unfortunately, deriving invariants for capturing the specifications of CPS systems is a tedious and error-prone process. Therefore, it is important to dynamically monitor the CPS system to learn its common behaviors and formulate invariants for detecting security attacks. Existing techniques for invariant mining only incorporate data and events, but not time. However, time is central to most CPS systems, and hence incorporating time in addition to data and events, is essential for achieving low false positives and false negatives. This paper proposes ARTINALI, which mines dynamic system properties by incorporating time as a first-class property of the system. We build ARTINALI-based Intrusion Detection Systems (IDSes) for two CPSes, namely smart meters and smart medical devices, and measure their efficacy. We find that the ARTINALI-based IDSes significantly reduce the ratio of false positives and false negatives by 16 to 48% (average 30.75%) and 89 to 95% (average 93.4%) respectively over other dynamic invariant detection tools.","PeriodicalId":313494,"journal":{"name":"Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering","volume":"10 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-08-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124080714","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 25
Recovering clear, natural identifiers from obfuscated JS names 从混淆的JS名称中恢复清晰、自然的标识符
Bogdan Vasilescu, Casey Casalnuovo, Premkumar T. Devanbu
Well-chosen variable names are critical to source code readability, reusability, and maintainability. Unfortunately, in deployed JavaScript code (which is ubiquitous on the web) the identifier names are frequently minified and overloaded. This is done both for efficiency and also to protect potentially proprietary intellectual property. In this paper, we describe an approach based on statistical machine translation (SMT) that recovers some of the original names from the JavaScript programs minified by the very popular UglifyJS. This simple tool, Autonym, performs comparably to the best currently available deobfuscator for JavaScript, JSNice, which uses sophisticated static analysis. In fact, Autonym is quite complementary to JSNice, performing well when it does not, and vice versa. We also introduce a new tool, JSNaughty, which blends Autonym and JSNice, and significantly outperforms both at identifier name recovery, while remaining just as easy to use as JSNice. JSNaughty is available online at http://jsnaughty.org.
选择良好的变量名对于源代码的可读性、可重用性和可维护性至关重要。不幸的是,在已部署的JavaScript代码(在web上无处不在)中,标识符名称经常被缩小和重载。这样做既是为了提高效率,也是为了保护潜在的专有知识产权。在本文中,我们描述了一种基于统计机器翻译(SMT)的方法,该方法可以从被非常流行的UglifyJS缩小的JavaScript程序中恢复一些原始名称。这个简单的工具Autonym的性能与目前最好的JavaScript去混淆器JSNice相当,后者使用复杂的静态分析。事实上,Autonym是JSNice的一个很好的补充,在它不具备的情况下也能表现得很好,反之亦然。我们还介绍了一个新工具JSNaughty,它混合了Autonym和JSNice,在标识符名称恢复方面明显优于两者,同时仍然像JSNice一样易于使用。JSNaughty可以在http://jsnaughty.org上找到。
{"title":"Recovering clear, natural identifiers from obfuscated JS names","authors":"Bogdan Vasilescu, Casey Casalnuovo, Premkumar T. Devanbu","doi":"10.1145/3106237.3106289","DOIUrl":"https://doi.org/10.1145/3106237.3106289","url":null,"abstract":"Well-chosen variable names are critical to source code readability, reusability, and maintainability. Unfortunately, in deployed JavaScript code (which is ubiquitous on the web) the identifier names are frequently minified and overloaded. This is done both for efficiency and also to protect potentially proprietary intellectual property. In this paper, we describe an approach based on statistical machine translation (SMT) that recovers some of the original names from the JavaScript programs minified by the very popular UglifyJS. This simple tool, Autonym, performs comparably to the best currently available deobfuscator for JavaScript, JSNice, which uses sophisticated static analysis. In fact, Autonym is quite complementary to JSNice, performing well when it does not, and vice versa. We also introduce a new tool, JSNaughty, which blends Autonym and JSNice, and significantly outperforms both at identifier name recovery, while remaining just as easy to use as JSNice. JSNaughty is available online at http://jsnaughty.org.","PeriodicalId":313494,"journal":{"name":"Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-08-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130668249","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 60
Understanding the impact of support for iteration on code search 理解支持迭代对代码搜索的影响
Lee Martie
Sometimes, when programmers use a search engine they know more or less what they need. Other times, programmers use the search engine to look around and generate possible ideas for the programming problem they are working on. The key insight we explore in this paper is that the results found in the latter case tend to serve as inspiration or triggers for the next queries issued. We introduce two search engines, CodeExchange and CodeLikeThis, both of which are specifically designed to enable the user to directly leverage the results in formulating the next query. CodeExchange does this with a set of four features supporting the programmer to use characteristics of the results to find other code with or without those characteristics. CodeLikeThis supports simply selecting an entire result to find code that is analogous, to some degree, to that result. We evaluated how these approaches were used along with two approaches not explicitly supporting iteration, a baseline and Google, in a user study among 24 developers. We find that search engines that support using results to form the next query can improve the programmers’ search experience and different approaches to iteration can provide better experiences depending on the task.
有时,当程序员使用搜索引擎时,他们或多或少知道自己需要什么。其他时候,程序员使用搜索引擎四处查看,并为他们正在处理的编程问题生成可能的想法。我们在本文中探讨的关键观点是,在后一种情况下发现的结果往往会作为下一个查询的灵感或触发器。我们介绍了两个搜索引擎,CodeExchange和CodeLikeThis,它们都是专门为使用户能够直接利用结果来制定下一个查询而设计的。CodeExchange通过一组四个特性来实现这一点,这些特性支持程序员使用结果的特征来查找具有或不具有这些特征的其他代码。CodeLikeThis支持简单地选择整个结果来查找在某种程度上与该结果相似的代码。在对24名开发人员的用户研究中,我们评估了这些方法是如何与两种不明确支持迭代的方法(基线和Google)一起使用的。我们发现,支持使用结果形成下一个查询的搜索引擎可以改善程序员的搜索体验,不同的迭代方法可以根据任务提供更好的体验。
{"title":"Understanding the impact of support for iteration on code search","authors":"Lee Martie","doi":"10.1145/3106237.3106293","DOIUrl":"https://doi.org/10.1145/3106237.3106293","url":null,"abstract":"Sometimes, when programmers use a search engine they know more or less what they need. Other times, programmers use the search engine to look around and generate possible ideas for the programming problem they are working on. The key insight we explore in this paper is that the results found in the latter case tend to serve as inspiration or triggers for the next queries issued. We introduce two search engines, CodeExchange and CodeLikeThis, both of which are specifically designed to enable the user to directly leverage the results in formulating the next query. CodeExchange does this with a set of four features supporting the programmer to use characteristics of the results to find other code with or without those characteristics. CodeLikeThis supports simply selecting an entire result to find code that is analogous, to some degree, to that result. We evaluated how these approaches were used along with two approaches not explicitly supporting iteration, a baseline and Google, in a user study among 24 developers. We find that search engines that support using results to form the next query can improve the programmers’ search experience and different approaches to iteration can provide better experiences depending on the task.","PeriodicalId":313494,"journal":{"name":"Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering","volume":"119 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-08-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130805428","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 25
AtexRace: across thread and execution sampling for in-house race detection 跨线程和执行采样,用于内部竞争检测
Yu-dong Guo, Yan Cai, Z. Yang
Data race is a major source of concurrency bugs. Dynamic data race detection tools (e.g., FastTrack) monitor the execu-tions of a program to report data races occurring in runtime. However, such tools incur significant overhead that slows down and perturbs executions. To address the issue, the state-of-the-art dynamic data race detection tools (e.g., LiteRace) ap-ply sampling techniques to selectively monitor memory access-es. Although they reduce overhead, they also miss many data races as confirmed by existing studies. Thus, practitioners face a dilemma on whether to use FastTrack, which detects more data races but is much slower, or LiteRace, which is faster but detects less data races. In this paper, we propose a new sam-pling approach to address the major limitations of current sampling techniques, which ignore the facts that a data race involves two threads and a program under testing is repeatedly executed. We develop a tool called AtexRace to sample memory accesses across both threads and executions. By selectively monitoring the pairs of memory accesses that have not been frequently observed in current and previous executions, AtexRace detects as many data races as FastTrack at a cost as low as LiteRace. We have compared AtexRace against FastTrack and LiteRace on both Parsec benchmark suite and a large-scale real-world MySQL Server with 223 test cases. The experiments confirm that AtexRace can be a replacement of FastTrack and LiteRace.
数据竞争是并发性bug的主要来源。动态数据竞争检测工具(例如,FastTrack)监视程序的执行,以报告运行时发生的数据竞争。然而,这样的工具会导致显著的开销,减慢和干扰执行。为了解决这个问题,最先进的动态数据竞争检测工具(例如,LiteRace)应用采样技术来选择性地监视内存访问。虽然它们减少了开销,但正如现有研究证实的那样,它们也错过了许多数据竞争。因此,从业者面临着一个两难的选择:是使用FastTrack,它检测到更多的数据竞争,但速度要慢得多;还是使用LiteRace,它更快,但检测到的数据竞争更少。在本文中,我们提出了一种新的采样方法来解决当前采样技术的主要限制,这些技术忽略了数据竞争涉及两个线程和被测试程序被重复执行的事实。我们开发了一个名为AtexRace的工具来跨线程和执行采样内存访问。通过选择性地监视在当前和以前的执行中不经常观察到的内存访问对,AtexRace可以检测到与FastTrack一样多的数据竞争,而成本与litace一样低。我们将AtexRace与FastTrack和LiteRace在Parsec基准测试套件和具有223个测试用例的大型真实MySQL服务器上进行了比较。实验证明,AtexRace可以替代FastTrack和LiteRace。
{"title":"AtexRace: across thread and execution sampling for in-house race detection","authors":"Yu-dong Guo, Yan Cai, Z. Yang","doi":"10.1145/3106237.3106242","DOIUrl":"https://doi.org/10.1145/3106237.3106242","url":null,"abstract":"Data race is a major source of concurrency bugs. Dynamic data race detection tools (e.g., FastTrack) monitor the execu-tions of a program to report data races occurring in runtime. However, such tools incur significant overhead that slows down and perturbs executions. To address the issue, the state-of-the-art dynamic data race detection tools (e.g., LiteRace) ap-ply sampling techniques to selectively monitor memory access-es. Although they reduce overhead, they also miss many data races as confirmed by existing studies. Thus, practitioners face a dilemma on whether to use FastTrack, which detects more data races but is much slower, or LiteRace, which is faster but detects less data races. In this paper, we propose a new sam-pling approach to address the major limitations of current sampling techniques, which ignore the facts that a data race involves two threads and a program under testing is repeatedly executed. We develop a tool called AtexRace to sample memory accesses across both threads and executions. By selectively monitoring the pairs of memory accesses that have not been frequently observed in current and previous executions, AtexRace detects as many data races as FastTrack at a cost as low as LiteRace. We have compared AtexRace against FastTrack and LiteRace on both Parsec benchmark suite and a large-scale real-world MySQL Server with 223 test cases. The experiments confirm that AtexRace can be a replacement of FastTrack and LiteRace.","PeriodicalId":313494,"journal":{"name":"Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering","volume":"64 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-08-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131572813","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 8
CodeMatch: obfuscation won't conceal your repackaged app CodeMatch:混淆不会隐藏你重新打包的应用
Leonid Glanz, Sven Amann, Michael Eichberg, Michael Reif, Ben Hermann, Johannes Lerch, M. Mezini
An established way to steal the income of app developers, or to trick users into installing malware, is the creation of repackaged apps. These are clones of - typically - successful apps. To conceal their nature, they are often obfuscated by their creators. But, given that it is a common best practice to obfuscate apps, a trivial identification of repackaged apps is not possible. The problem is further intensified by the prevalent usage of libraries. In many apps, the size of the overall code base is basically determined by the used libraries. Therefore, two apps, where the obfuscated code bases are very similar, do not have to be repackages of each other. To reliably detect repackaged apps, we propose a two step approach which first focuses on the identification and removal of the library code in obfuscated apps. This approach - LibDetect - relies on code representations which abstract over several parts of the underlying bytecode to be resilient against certain obfuscation techniques. Using this approach, we are able to identify on average 70% more used libraries per app than previous approaches. After the removal of an app's library code, we then fuzzy hash the most abstract representation of the remaining app code to ensure that we can identify repackaged apps even if very advanced obfuscation techniques are used. This makes it possible to identify repackaged apps. Using our approach, we found that ≈ 15% of all apps in Android app stores are repackages
窃取应用程序开发商收入或诱骗用户安装恶意软件的一种既定方法是创建重新打包的应用程序。这些都是典型的成功应用的克隆。为了隐藏他们的本性,他们经常被他们的创造者混淆。但是,考虑到混淆应用程序是一种常见的最佳实践,对重新打包的应用程序进行简单的识别是不可能的。由于普遍使用图书馆,这个问题进一步加剧了。在许多应用程序中,总体代码库的大小基本上取决于所使用的库。因此,两个混淆代码库非常相似的应用程序不必相互重新打包。为了可靠地检测重新打包的应用程序,我们提出了一个两步的方法,首先关注于识别和删除被混淆的应用程序中的库代码。这种方法——LibDetect——依赖于代码表示,它抽象了底层字节码的几个部分,以抵御某些混淆技术。使用这种方法,我们能够比以前的方法平均多识别70%的应用程序使用库。在删除应用程序的库代码后,我们对剩余应用程序代码的最抽象表示进行模糊散列,以确保我们可以识别重新打包的应用程序,即使使用了非常先进的混淆技术。这使得识别重新打包的应用程序成为可能。通过我们的方法,我们发现Android应用商店中约有15%的应用是重新包装的
{"title":"CodeMatch: obfuscation won't conceal your repackaged app","authors":"Leonid Glanz, Sven Amann, Michael Eichberg, Michael Reif, Ben Hermann, Johannes Lerch, M. Mezini","doi":"10.1145/3106237.3106305","DOIUrl":"https://doi.org/10.1145/3106237.3106305","url":null,"abstract":"An established way to steal the income of app developers, or to trick users into installing malware, is the creation of repackaged apps. These are clones of - typically - successful apps. To conceal their nature, they are often obfuscated by their creators. But, given that it is a common best practice to obfuscate apps, a trivial identification of repackaged apps is not possible. The problem is further intensified by the prevalent usage of libraries. In many apps, the size of the overall code base is basically determined by the used libraries. Therefore, two apps, where the obfuscated code bases are very similar, do not have to be repackages of each other. To reliably detect repackaged apps, we propose a two step approach which first focuses on the identification and removal of the library code in obfuscated apps. This approach - LibDetect - relies on code representations which abstract over several parts of the underlying bytecode to be resilient against certain obfuscation techniques. Using this approach, we are able to identify on average 70% more used libraries per app than previous approaches. After the removal of an app's library code, we then fuzzy hash the most abstract representation of the remaining app code to ensure that we can identify repackaged apps even if very advanced obfuscation techniques are used. This makes it possible to identify repackaged apps. Using our approach, we found that ≈ 15% of all apps in Android app stores are repackages","PeriodicalId":313494,"journal":{"name":"Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering","volume":"9 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-08-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131908095","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 35
Improving understanding of dynamically typed software developed by agile practitioners 提高敏捷实践者对动态类型软件的理解
Jair García, Kelly Garcés
Agile Development values working software over documentation. Therefore, in maintenance stages of existing software, the source code is the sole software artifact that developers have for analyzing the viability and impact of a new user story. Since functionality is often spread in hundreds of lines of code, it is hard for the developer to understand the system, which may lead to under-/overestimation of the new feature cost and rework/delays in the subsequent phases of development. In a previous work, we proposed a Model-Driven Reverse Engineering approach for obtaining software visualizations from source code. Two case studies of comprehension of applications written in statically typed languages have shown the applicability of this approach. A recent experience with an industrial partner, where the systems are developed on dynamically typed languages, has motivated us to adapt the previous proposal to take as input not only the source code but also the application data schema to complete the information that is missing in the code, and then automatically generate more meaningful diagrams that help developers in maintenance tasks. In this article, we present the adaptation of the general approach to support data schema as an additional input and its instrumentation in an industrial case study where the technology is Ruby on Rails. The paper ends by explaining the precision and performance of the instrumentation when used in a Colombian company as well as lessons learned.
敏捷开发更重视工作软件而不是文档。因此,在现有软件的维护阶段,源代码是开发人员用来分析新用户场景的可行性和影响的唯一软件工件。由于功能通常分布在数百行代码中,因此开发人员很难理解系统,这可能导致对新功能成本的低估/高估,以及在后续开发阶段的返工/延迟。在之前的工作中,我们提出了一种模型驱动的逆向工程方法,用于从源代码中获得软件可视化。理解用静态类型语言编写的应用程序的两个案例研究表明了这种方法的适用性。最近与一个工业合作伙伴的经验,其中系统是用动态类型语言开发的,这促使我们调整了之前的建议,不仅将源代码作为输入,还将应用程序数据模式作为输入,以完成代码中缺失的信息,然后自动生成更有意义的图,帮助开发人员完成维护任务。在本文中,我们将介绍对通用方法的修改,以支持数据模式作为附加输入,并在一个工业案例研究中使用Ruby on Rails技术。本文最后解释了该仪器在哥伦比亚一家公司使用时的精度和性能以及吸取的教训。
{"title":"Improving understanding of dynamically typed software developed by agile practitioners","authors":"Jair García, Kelly Garcés","doi":"10.1145/3106237.3117772","DOIUrl":"https://doi.org/10.1145/3106237.3117772","url":null,"abstract":"Agile Development values working software over documentation. Therefore, in maintenance stages of existing software, the source code is the sole software artifact that developers have for analyzing the viability and impact of a new user story. Since functionality is often spread in hundreds of lines of code, it is hard for the developer to understand the system, which may lead to under-/overestimation of the new feature cost and rework/delays in the subsequent phases of development. In a previous work, we proposed a Model-Driven Reverse Engineering approach for obtaining software visualizations from source code. Two case studies of comprehension of applications written in statically typed languages have shown the applicability of this approach. A recent experience with an industrial partner, where the systems are developed on dynamically typed languages, has motivated us to adapt the previous proposal to take as input not only the source code but also the application data schema to complete the information that is missing in the code, and then automatically generate more meaningful diagrams that help developers in maintenance tasks. In this article, we present the adaptation of the general approach to support data schema as an additional input and its instrumentation in an industrial case study where the technology is Ruby on Rails. The paper ends by explaining the precision and performance of the instrumentation when used in a Colombian company as well as lessons learned.","PeriodicalId":313494,"journal":{"name":"Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering","volume":"43 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-08-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122895520","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 5
Verifying the forecast: how climate models are developed and tested (invited talk) 验证预测:如何开发和测试气候模型(特邀演讲)
S. Easterbrook
Stolen passwords, compromised medical records, taking the internet out through video cameras– cybersecurity breaches are in the news every day. Despite all this, the practice of cybersecurity today is generally reactive rather than proactive. That is, rather than improving their defenses in advance, organizations react to attacks once they have occurred by patching the individual vulnerabilities that led to those attacks. Researchers engineer solutions to the latest form of attack. What we need, instead, are scientifically founded design principles for building in security mechanisms from the beginning, giving protection against broad classes of attacks. Through scientific measurement, we can improve our ability to make decisions that are evidence-based, proactive, and long-sighted. Recognizing these needs, the US National Security Agency (NSA) devised a new framework for collaborative research, the “Lablet” structure, with the intent to more aggressively advance the science of cybersecurity. A key motivation was to catalyze a shift in relevant areas towards a more organized and cohesive scientific community. The NSA named Carnegie Mellon University, North Carolina State University, and the University of Illinois – Urbana Champaign its initial Lablets in 2011, and added the University of Maryland in 2014. This talk will reflect on the structure of the collaborative research efforts of the Lablets, lessons learned in the transition to more scientific concepts to cybersecurity, research results in solving five hard security problems, and methods that are being used for the measurement of scientific progress of the Lablet research.
密码被盗、医疗记录泄露、通过摄像头切断网络——网络安全漏洞每天都在新闻中出现。尽管如此,今天的网络安全实践通常是被动的,而不是主动的。也就是说,组织不是提前提高防御能力,而是在攻击发生后通过修补导致这些攻击的单个漏洞来应对攻击。研究人员设计解决方案的最新形式的攻击。相反,我们需要的是基于科学的设计原则,从一开始就构建安全机制,防止各种类型的攻击。通过科学的测量,我们可以提高我们做出基于证据的、前瞻性的、有远见的决策的能力。认识到这些需求,美国国家安全局(NSA)设计了一种新的合作研究框架,即“Lablet”结构,旨在更积极地推进网络安全科学。一个关键的动机是促进相关领域向更有组织和凝聚力的科学界转变。2011年,美国国家安全局将卡耐基梅隆大学、北卡罗来纳州立大学和伊利诺伊大学厄巴纳香槟分校命名为最初的Lablets,并于2014年加入了马里兰大学。本次演讲将反映Lablet合作研究工作的结构,向更科学的网络安全概念过渡的经验教训,解决五个硬安全问题的研究成果,以及用于测量Lablet研究的科学进展的方法。
{"title":"Verifying the forecast: how climate models are developed and tested (invited talk)","authors":"S. Easterbrook","doi":"10.1145/3106237.3121271","DOIUrl":"https://doi.org/10.1145/3106237.3121271","url":null,"abstract":"Stolen passwords, compromised medical records, taking the internet out through video cameras– cybersecurity breaches are in the news every day. Despite all this, the practice of cybersecurity today is generally reactive rather than proactive. That is, rather than improving their defenses in advance, organizations react to attacks once they have occurred by patching the individual vulnerabilities that led to those attacks. Researchers engineer solutions to the latest form of attack. What we need, instead, are scientifically founded design principles for building in security mechanisms from the beginning, giving protection against broad classes of attacks. Through scientific measurement, we can improve our ability to make decisions that are evidence-based, proactive, and long-sighted. Recognizing these needs, the US National Security Agency (NSA) devised a new framework for collaborative research, the “Lablet” structure, with the intent to more aggressively advance the science of cybersecurity. A key motivation was to catalyze a shift in relevant areas towards a more organized and cohesive scientific community. The NSA named Carnegie Mellon University, North Carolina State University, and the University of Illinois – Urbana Champaign its initial Lablets in 2011, and added the University of Maryland in 2014. This talk will reflect on the structure of the collaborative research efforts of the Lablets, lessons learned in the transition to more scientific concepts to cybersecurity, research results in solving five hard security problems, and methods that are being used for the measurement of scientific progress of the Lablet research.","PeriodicalId":313494,"journal":{"name":"Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering","volume":"59 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-08-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124549396","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
JoanAudit: a tool for auditing common injection vulnerabilities JoanAudit:一个审计常见注入漏洞的工具
Julian Thomé, Lwin Khin Shar, D. Bianculli, L. Briand
JoanAudit is a static analysis tool to assist security auditors in auditing Web applications and Web services for common injection vulnerabilities during software development. It automatically identifies parts of the program code that are relevant for security and generates an HTML report to guide security auditors audit the source code in a scalable way. JoanAudit is configured with various security-sensitive input sources and sinks relevant to injection vulnerabilities and standard sanitization procedures that prevent these vulnerabilities. It can also automatically fix some cases of vulnerabilities in source code — cases where inputs are directly used in sinks without any form of sanitization — by using standard sanitization procedures. Our evaluation shows that by using JoanAudit, security auditors are required to inspect only 1% of the total code for auditing common injection vulnerabilities. The screen-cast demo is available at https://github.com/julianthome/joanaudit.
JoanAudit是一个静态分析工具,用于帮助安全审计员在软件开发过程中审计Web应用程序和Web服务,以查找常见的注入漏洞。它自动识别与安全性相关的程序代码部分,并生成HTML报告,以指导安全审计员以可伸缩的方式审计源代码。JoanAudit配置了各种与注入漏洞相关的安全敏感输入源和接收器,以及防止这些漏洞的标准清理过程。它还可以通过使用标准的清理程序自动修复源代码中的某些漏洞,即输入直接用于水槽而不进行任何形式的清理的情况。我们的评估显示,通过使用JoanAudit,安全审计员只需要检查总代码的1%来审计常见的注入漏洞。屏幕演示可以在https://github.com/julianthome/joanaudit上获得。
{"title":"JoanAudit: a tool for auditing common injection vulnerabilities","authors":"Julian Thomé, Lwin Khin Shar, D. Bianculli, L. Briand","doi":"10.1145/3106237.3122822","DOIUrl":"https://doi.org/10.1145/3106237.3122822","url":null,"abstract":"JoanAudit is a static analysis tool to assist security auditors in auditing Web applications and Web services for common injection vulnerabilities during software development. It automatically identifies parts of the program code that are relevant for security and generates an HTML report to guide security auditors audit the source code in a scalable way. JoanAudit is configured with various security-sensitive input sources and sinks relevant to injection vulnerabilities and standard sanitization procedures that prevent these vulnerabilities. It can also automatically fix some cases of vulnerabilities in source code — cases where inputs are directly used in sinks without any form of sanitization — by using standard sanitization procedures. Our evaluation shows that by using JoanAudit, security auditors are required to inspect only 1% of the total code for auditing common injection vulnerabilities. The screen-cast demo is available at https://github.com/julianthome/joanaudit.","PeriodicalId":313494,"journal":{"name":"Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering","volume":"10 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-08-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128691371","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 10
期刊
Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering
全部 Acc. Chem. Res. ACS Applied Bio Materials ACS Appl. Electron. Mater. ACS Appl. Energy Mater. ACS Appl. Mater. Interfaces ACS Appl. Nano Mater. ACS Appl. Polym. Mater. ACS BIOMATER-SCI ENG ACS Catal. ACS Cent. Sci. ACS Chem. Biol. ACS Chemical Health & Safety ACS Chem. Neurosci. ACS Comb. Sci. ACS Earth Space Chem. ACS Energy Lett. ACS Infect. Dis. ACS Macro Lett. ACS Mater. Lett. ACS Med. Chem. Lett. ACS Nano ACS Omega ACS Photonics ACS Sens. ACS Sustainable Chem. Eng. ACS Synth. Biol. Anal. Chem. BIOCHEMISTRY-US Bioconjugate Chem. BIOMACROMOLECULES Chem. Res. Toxicol. Chem. Rev. Chem. Mater. CRYST GROWTH DES ENERG FUEL Environ. Sci. Technol. Environ. Sci. Technol. Lett. Eur. J. Inorg. Chem. IND ENG CHEM RES Inorg. Chem. J. Agric. Food. Chem. J. Chem. Eng. Data J. Chem. Educ. J. Chem. Inf. Model. J. Chem. Theory Comput. J. Med. Chem. J. Nat. Prod. J PROTEOME RES J. Am. Chem. Soc. LANGMUIR MACROMOLECULES Mol. Pharmaceutics Nano Lett. Org. Lett. ORG PROCESS RES DEV ORGANOMETALLICS J. Org. Chem. J. Phys. Chem. J. Phys. Chem. A J. Phys. Chem. B J. Phys. Chem. C J. Phys. Chem. Lett. Analyst Anal. Methods Biomater. Sci. Catal. Sci. Technol. Chem. Commun. Chem. Soc. Rev. CHEM EDUC RES PRACT CRYSTENGCOMM Dalton Trans. Energy Environ. Sci. ENVIRON SCI-NANO ENVIRON SCI-PROC IMP ENVIRON SCI-WAT RES Faraday Discuss. Food Funct. Green Chem. Inorg. Chem. Front. Integr. Biol. J. Anal. At. Spectrom. J. Mater. Chem. A J. Mater. Chem. B J. Mater. Chem. C Lab Chip Mater. Chem. Front. Mater. Horiz. MEDCHEMCOMM Metallomics Mol. Biosyst. Mol. Syst. Des. Eng. Nanoscale Nanoscale Horiz. Nat. Prod. Rep. New J. Chem. Org. Biomol. Chem. Org. Chem. Front. PHOTOCH PHOTOBIO SCI PCCP Polym. Chem.
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1