@misc{ChakrabortyHammerBugiel2019, author = {Chakraborty, Dhiman and Hammer, Christian and Bugiel, Sven}, title = {Secure Multi-Execution in Android}, series = {Proceedings of the 34th ACM/SIGAPP Symposium on Applied Computing}, journal = {Proceedings of the 34th ACM/SIGAPP Symposium on Applied Computing}, publisher = {Association for Computing Machinery}, address = {New York}, isbn = {978-1-4503-5933-7}, doi = {10.1145/3297280.3297469}, pages = {1934 -- 1943}, year = {2019}, abstract = {Mobile operating systems, such as Google's Android, have become a fixed part of our daily lives and are entrusted with a plethora of private information. Congruously, their data protection mechanisms have been improved steadily over the last decade and, in particular, for Android, the research community has explored various enhancements and extensions to the access control model. However, the vast majority of those solutions has been concerned with controlling the access to data, but equally important is the question of how to control the flow of data once released. Ignoring control over the dissemination of data between applications or between components of the same app, opens the door for attacks, such as permission re-delegation or privacy-violating third-party libraries. Controlling information flows is a long-standing problem, and one of the most recent and practical-oriented approaches to information flow control is secure multi-execution. In this paper, we present Ariel, the design and implementation of an IFC architecture for Android based on the secure multi-execution of apps. Ariel demonstrably extends Android's system with support for executing multiple instances of apps, and it is equipped with a policy lattice derived from the protection levels of Android's permissions as well as an I/O scheduler to achieve control over data flows between application instances. We demonstrate how secure multi-execution with Ariel can help to mitigate two prominent attacks on Android, permission re-delegations and malicious advertisement libraries.}, language = {en} } @misc{GrossTiwariHammer2018, author = {Gross, Sascha and Tiwari, Abhishek and Hammer, Christian}, title = {PlAnalyzer}, series = {Computer Security(ESORICS 2018), PT II}, volume = {11099}, journal = {Computer Security(ESORICS 2018), PT II}, publisher = {Springer}, address = {Cham}, isbn = {978-3-319-98989-1}, issn = {0302-9743}, doi = {10.1007/978-3-319-98989-1_3}, pages = {41 -- 59}, year = {2018}, abstract = {In this work we propose PIAnalyzer, a novel approach to analyze PendingIntent related vulnerabilities. We empirically evaluate PIAnalyzer on a set of 1000 randomly selected applications from the Google Play Store and find 1358 insecure usages of Pendinglntents, including 70 severe vulnerabilities. We manually inspected ten reported vulnerabilities out of which nine correctly reported vulnerabilities, indicating a high precision. The evaluation shows that PIAnalyzer is efficient with an average execution time of 13 seconds per application.}, language = {en} } @article{TiwariPrakashGrossetal.2020, author = {Tiwari, Abhishek and Prakash, Jyoti and Groß, Sascha and Hammer, Christian}, title = {A large scale analysis of Android}, series = {The journal of systems and software}, volume = {170}, journal = {The journal of systems and software}, publisher = {Elsevier}, address = {New York}, issn = {0164-1212}, doi = {10.1016/j.jss.2020.110775}, pages = {17}, year = {2020}, abstract = {Many Android applications embed webpages via WebView components and execute JavaScript code within Android. Hybrid applications leverage dedicated APIs to load a resource and render it in a WebView. Furthermore, Android objects can be shared with the JavaScript world. However, bridging the interfaces of the Android and JavaScript world might also incur severe security threats: Potentially untrusted webpages and their JavaScript might interfere with the Android environment and its access to native features. No general analysis is currently available to assess the implications of such hybrid apps bridging the two worlds. To understand the semantics and effects of hybrid apps, we perform a large-scale study on the usage of the hybridization APIs in the wild. We analyze and categorize the parameters to hybridization APIs for 7,500 randomly selected and the 196 most popular applications from the Google Playstore as well as 1000 malware samples. Our results advance the general understanding of hybrid applications, as well as implications for potential program analyses, and the current security situation: We discovered thousands of flows of sensitive data from Android to JavaScript, the vast majority of which could flow to potentially untrustworthy code. Our analysis identified numerous web pages embedding vulnerabilities, which we exemplarily exploited. Additionally, we discovered a multitude of applications in which potentially untrusted JavaScript code may interfere with (trusted) Android objects, both in benign and malign applications.}, language = {en} } @misc{WelearegaiSchlueterHammer2019, author = {Welearegai, Gebrehiwet B. and Schlueter, Max and Hammer, Christian}, title = {Static security evaluation of an industrial web application}, series = {Proceedings of the 34th ACM/SIGAPP Symposium on Applied Computing}, journal = {Proceedings of the 34th ACM/SIGAPP Symposium on Applied Computing}, publisher = {Association for Computing Machinery}, address = {New York}, isbn = {978-1-4503-5933-7}, doi = {10.1145/3297280.3297471}, pages = {1952 -- 1961}, year = {2019}, abstract = {JavaScript is the most popular programming language for web applications. Static analysis of JavaScript applications is highly challenging due to its dynamic language constructs and event-driven asynchronous executions, which also give rise to many security-related bugs. Several static analysis tools to detect such bugs exist, however, research has not yet reported much on the precision and scalability trade-off of these analyzers. As a further obstacle, JavaScript programs structured in Node. js modules need to be collected for analysis, but existing bundlers are either specific to their respective analysis tools or not particularly suitable for static analysis.}, language = {en} }