{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,3,27]],"date-time":"2025-03-27T06:07:35Z","timestamp":1743055655253,"version":"3.40.3"},"publisher-location":"Cham","reference-count":28,"publisher":"Springer Nature Switzerland","isbn-type":[{"type":"print","value":"9783031711619"},{"type":"electronic","value":"9783031711626"}],"license":[{"start":{"date-parts":[[2024,9,11]],"date-time":"2024-09-11T00:00:00Z","timestamp":1726012800000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"},{"start":{"date-parts":[[2024,9,11]],"date-time":"2024-09-11T00:00:00Z","timestamp":1726012800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2025]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>Android\u2019s intents provide a form of inter-app communication with implicit, capability-based matching of senders and receivers. Such kind of implicit addressing provides some much-needed flexibility but also increases the risk of introducing information flow security bugs and vulnerabilities\u2014as there is no standard way to specify what permissions are required to access the data sent through intents, so that it is handled properly.<\/jats:p><jats:p>To mitigate such risks of intent-based communication, this paper introduces <jats:sc>IntentRepair<\/jats:sc>, an automated technique to detect such information flow security leaks and to automatically repair them. <jats:sc>IntentRepair<\/jats:sc> first finds sender and receiver modules that may communicate via intents, and such that the sender sends sensitive information that the receiver forwards to a public channel. To prevent this flow, <jats:sc>IntentRepair<\/jats:sc> patches the sender so that it also includes information about the permissions needed to access the data; and the receiver so that it will only disclose the sensitive information if it possesses the required permissions.<\/jats:p><jats:p>We evaluated a prototype implementation of <jats:sc>IntentRepair<\/jats:sc> on 869 Android open-source apps, showing that it is effective in automatically detecting and repairing information flow security bugs that originate in implicit intent-based communication, introducing only a modest overhead in terms of patch size.<\/jats:p>","DOI":"10.1007\/978-3-031-71162-6_15","type":"book-chapter","created":{"date-parts":[[2024,9,10]],"date-time":"2024-09-10T02:02:27Z","timestamp":1725933747000},"page":"285-303","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":0,"title":["Automated Repair of\u00a0Information Flow Security in\u00a0Android Implicit Inter-App Communication"],"prefix":"10.1007","author":[{"given":"Abhishek","family":"Tiwari","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Jyoti","family":"Prakash","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Zhen","family":"Dong","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Carlo A.","family":"Furia","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","published-online":{"date-parts":[[2024,9,11]]},"reference":[{"key":"15_CR1","unstructured":"Droidbench: A micro-benchmark suite to assess the stability of taint-analysis tools for android. Github. https:\/\/github.com\/secure-software-engineering\/DroidBench\/tree\/develop"},{"key":"15_CR2","unstructured":"Apktool: A tool for reverse engineering android apk files (2024). https:\/\/apktool.org"},{"key":"15_CR3","unstructured":"Intent communication in android (2024). https:\/\/developer.android.com\/reference\/android\/content\/Intent"},{"key":"15_CR4","unstructured":"Android platform architecture. https:\/\/developer.android.com\/guide\/platform\/. Accessed 15 Jan 2024"},{"key":"15_CR5","doi-asserted-by":"publisher","unstructured":"Arzt, S., et al.: Flowdroid: precise context, flow, field, object-sensitive and lifecycle-aware taint analysis for android apps. In: Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation. PLDI \u201914, pp. 259\u2013269. Association for Computing Machinery, New York, NY, USA (2014). https:\/\/doi.org\/10.1145\/2594291.2594299","DOI":"10.1145\/2594291.2594299"},{"key":"15_CR6","doi-asserted-by":"publisher","unstructured":"Arzt, S., et al.: Flowdroid: precise context, flow, field, object-sensitive and lifecycle-aware taint analysis for android apps. SIGPLAN Not. 49(6), 259\u2013269 (2014). https:\/\/doi.org\/10.1145\/2666356.2594299","DOI":"10.1145\/2666356.2594299"},{"key":"15_CR7","unstructured":"Backes, M., Bugiel, S., Derr, E., McDaniel, P., Octeau, D., Weisgerber, S.: On demystifying the android application framework: re-visiting android permission specification analysis. In: Proceedings of the 25th USENIX Conference on Security Symposium. SEC\u201916, pp. 1101\u20131118. USENIX Association, USA (2016)"},{"key":"15_CR8","unstructured":"Backes, M., Bugiel, S., Derr, E., McDaniel, P., Octeau, D., Weisgerber, S.: Github: Axplorer\u2013android permission mappings. GitHub (2024). https:\/\/github.com\/reddr\/axplorer\/tree\/master"},{"issue":"6","key":"15_CR9","doi-asserted-by":"publisher","first-page":"595","DOI":"10.1109\/TSE.2017.2697848","volume":"44","author":"G Bai","year":"2018","unstructured":"Bai, G., et al.: Towards model checking android applications. IEEE Trans. Softw. Eng. 44(6), 595\u2013612 (2018). https:\/\/doi.org\/10.1109\/TSE.2017.2697848","journal-title":"IEEE Trans. Softw. Eng."},{"issue":"5","key":"15_CR10","doi-asserted-by":"publisher","first-page":"470","DOI":"10.1109\/TSE.2017.2689012","volume":"44","author":"A Banerjee","year":"2018","unstructured":"Banerjee, A., Chong, L.K., Ballabriga, C., Roychoudhury, A.: Energypatch: repairing resource leaks to improve energy-efficiency of android apps. IEEE Trans. Softw. Eng. 44(5), 470\u2013490 (2018). https:\/\/doi.org\/10.1109\/TSE.2017.2689012","journal-title":"IEEE Trans. Softw. Eng."},{"key":"15_CR11","doi-asserted-by":"publisher","unstructured":"Bhatt, B.N., Furia, C.A.: Automated repair of resource leaks in android applications. J. Syst. Softw. 192, 111417 (2022). https:\/\/doi.org\/10.1016\/j.jss.2022.111417, https:\/\/www.sciencedirect.com\/science\/article\/pii\/S0164121222001273","DOI":"10.1016\/j.jss.2022.111417"},{"key":"15_CR12","doi-asserted-by":"publisher","unstructured":"Bosu, A., Liu, F., Yao, D.D., Wang, G.: Collusive data leak and more: large-scale threat analysis of inter-app communications. In: Proceedings of the 2017 ACM on Asia Conference on Computer and Communications Security. ASIA CCS \u201917, pp. 71\u201385. Association for Computing Machinery, New York, NY, USA (2017). https:\/\/doi.org\/10.1145\/3052973.3053004","DOI":"10.1145\/3052973.3053004"},{"key":"15_CR13","unstructured":"Center, I.T.W.R.: Wala T. J. Watson libraries for analysis (2024). https:\/\/github.com\/wala\/WALA"},{"key":"15_CR14","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"41","DOI":"10.1007\/978-3-319-98989-1_3","volume-title":"Computer Security","author":"S Gro\u00df","year":"2018","unstructured":"Gro\u00df, S., Tiwari, A., Hammer, C.: PIAnalyzer: a precise approach for pendingintent vulnerability analysis. In: Lopez, J., Zhou, J., Soriano, M. (eds.) ESORICS 2018. LNCS, vol. 11099, pp. 41\u201359. Springer, Cham (2018). https:\/\/doi.org\/10.1007\/978-3-319-98989-1_3"},{"key":"15_CR15","doi-asserted-by":"publisher","unstructured":"Guo, W., Dong, Z., Shen, L., Tian, W., Su, T., Peng, X.: Detecting and fixing data loss issues in android apps. In: Proceedings of the 31st ACM SIGSOFT International Symposium on Software Testing and Analysis. ISSTA 2022, pp. 605\u2013616. Association for Computing Machinery, New York, NY, USA (2022). https:\/\/doi.org\/10.1145\/3533767.3534402","DOI":"10.1145\/3533767.3534402"},{"key":"15_CR16","doi-asserted-by":"publisher","unstructured":"Huang, H., Xu, C., Wen, M., Liu, Y., Cheung, S.: Conffix: repairing configuration compatibility issues in android apps. ACM (2023). https:\/\/doi.org\/10.1145\/3597926","DOI":"10.1145\/3597926"},{"key":"15_CR17","doi-asserted-by":"publisher","unstructured":"Klieber, W., Flynn, L., Bhosale, A., Jia, L., Bauer, L.: Android taint flow analysis for app sets. In: Proceedings of the 3rd ACM SIGPLAN International Workshop on the State of the Art in Java Program Analysis. SOAP \u201914, pp.\u00a01\u20136. Association for Computing Machinery, New York, NY, USA (2014). https:\/\/doi.org\/10.1145\/2614628.2614633","DOI":"10.1145\/2614628.2614633"},{"key":"15_CR18","doi-asserted-by":"crossref","unstructured":"Li, L., et al.: ICCTA: detecting inter-component privacy leaks in android apps. In: Proceedings of the 37th International Conference on Software Engineering - Volume 1. ICSE \u201915, pp. 280\u2013291. IEEE Press (2015)","DOI":"10.1109\/ICSE.2015.48"},{"key":"15_CR19","unstructured":"Limited, F.D., Contributors: F-droid (2023). https:\/\/f-droid.org"},{"key":"15_CR20","doi-asserted-by":"publisher","unstructured":"Mesecan, I., Blackwell, D., Clark, D., Cohen, M.B., Petke, J.: Hypergi: automated detection and repair of information flow leakage. In: 2021 36th IEEE\/ACM International Conference on Automated Software Engineering (ASE), pp. 1358\u20131362 (2021). https:\/\/doi.org\/10.1109\/ASE51524.2021.9678758","DOI":"10.1109\/ASE51524.2021.9678758"},{"key":"15_CR21","unstructured":"Pauck, F.: Repodroid: android benchmark reproduction framework. Github (2024). https:\/\/foellix.github.io\/ReproDroid\/"},{"key":"15_CR22","doi-asserted-by":"publisher","DOI":"10.1016\/j.cose.2023.103311","volume":"131","author":"A Romdhana","year":"2023","unstructured":"Romdhana, A., Merlo, A., Ceccato, M., Tonella, P.: Assessing the security of inter-app communications in android through reinforcement learning. Comput. Secur. 131, 103311 (2023)","journal-title":"Comput. Secur."},{"key":"15_CR23","doi-asserted-by":"publisher","unstructured":"Tan, S.H., Dong, Z., Gao, X., Roychoudhury, A.: Repairing crashes in android apps. In: 2018 IEEE\/ACM 40th International Conference on Software Engineering (ICSE), pp. 187\u2013198. ACM (2018). https:\/\/doi.org\/10.1145\/3180155","DOI":"10.1145\/3180155"},{"key":"15_CR24","series-title":"Lecture Notes of the Institute for Computer Sciences, Social Informatics and Telecommunications Engineering","doi-asserted-by":"publisher","first-page":"335","DOI":"10.1007\/978-3-030-37231-6_19","volume-title":"Security and Privacy in Communication Networks","author":"A Tiwari","year":"2019","unstructured":"Tiwari, A., Gro\u00df, S., Hammer, C.: IIFA: modular inter-app intent information flow analysis of android applications. In: Chen, S., Choo, K.-K.R., Fu, X., Lou, W., Mohaisen, A. (eds.) SecureComm 2019. LNICST, vol. 305, pp. 335\u2013349. Springer, Cham (2019). https:\/\/doi.org\/10.1007\/978-3-030-37231-6_19"},{"key":"15_CR25","unstructured":"Tiwari, A., Prakash, J., Dong, Z., Furia, C.A.: Artifacts for automated repair of information flow security in android implicit inter-app communication. Zenodo (2024). https:\/\/doi.org\/10.5281\/zenodo.11957919"},{"key":"15_CR26","doi-asserted-by":"publisher","unstructured":"Wei, F., Roy, S., Ou, X., Robby: amandroid: a precise and general inter-component data flow analysis framework for security vetting of android apps. ACM Trans. Priv. Secur. 21(3) (2018). https:\/\/doi.org\/10.1145\/3183575","DOI":"10.1145\/3183575"},{"key":"15_CR27","doi-asserted-by":"publisher","unstructured":"Xu, T., et al.: Guider: GUI structure and vision co-guided test script repair for android apps. In: Proceedings of the 30th ACM SIGSOFT International Symposium on Software Testing and Analysis. ISSTA 2021, pp. 191\u2013203. Association for Computing Machinery, New York, NY, USA (2021). https:\/\/doi.org\/10.1145\/3460319.3464830","DOI":"10.1145\/3460319.3464830"},{"key":"15_CR28","doi-asserted-by":"publisher","unstructured":"Zhao, Y., Li, L., Liu, K., Grundy, J.: Towards automatically repairing compatibility issues in published android apps. In: Proceedings of the 44th International Conference on Software Engineering. ICSE \u201922, pp. 2142\u20132153. Association for Computing Machinery, New York, NY, USA (2022). https:\/\/doi.org\/10.1145\/3510003.3510128","DOI":"10.1145\/3510003.3510128"}],"container-title":["Lecture Notes in Computer Science","Formal Methods"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-031-71162-6_15","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2024,9,10]],"date-time":"2024-09-10T02:06:34Z","timestamp":1725933994000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/978-3-031-71162-6_15"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2024,9,11]]},"ISBN":["9783031711619","9783031711626"],"references-count":28,"URL":"https:\/\/doi.org\/10.1007\/978-3-031-71162-6_15","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"type":"print","value":"0302-9743"},{"type":"electronic","value":"1611-3349"}],"subject":[],"published":{"date-parts":[[2024,9,11]]},"assertion":[{"value":"11 September 2024","order":1,"name":"first_online","label":"First Online","group":{"name":"ChapterHistory","label":"Chapter History"}},{"value":"FM","order":1,"name":"conference_acronym","label":"Conference Acronym","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"International Symposium on Formal Methods","order":2,"name":"conference_name","label":"Conference Name","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Milan","order":3,"name":"conference_city","label":"Conference City","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Italy","order":4,"name":"conference_country","label":"Conference Country","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"2024","order":5,"name":"conference_year","label":"Conference Year","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"9 September 2024","order":7,"name":"conference_start_date","label":"Conference Start Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"13 September 2024","order":8,"name":"conference_end_date","label":"Conference End Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"26","order":9,"name":"conference_number","label":"Conference Number","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"fm2024","order":10,"name":"conference_id","label":"Conference ID","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"https:\/\/www.fm24.polimi.it\/","order":11,"name":"conference_url","label":"Conference URL","group":{"name":"ConferenceInfo","label":"Conference Information"}}]}}