Please use this identifier to cite or link to this item:
Uncovering dynamically loaded classes of iOS executables with static string analysis
Lin, Jun Han
Lin, Jun Han
Dynamically loaded classes
|Issue Date: ||2017-07-31 10:59:10 (UTC+8)|
|Abstract: ||當今已有數以百萬計的行動應用程序在 Apple 的 App Store 中發布，並在iOS設備下載量超過150億次。為了保護iOS用戶免於惡意應用程式的傷害，Apple 對於上架之App 有相對嚴格的審查政策。通過審查的App才能在App Store中發布。在本文中，我們提出基於|
iOS可執行檔的靜態字串分析技術用於檢驗App可能動態載入之類別 。為了檢查動態載入之類別是否符合Apple之規範，必須要能確定動態加載函數之可能字串參數值 。我們方法的第一步是使用現有工具擷取 iOS可執行檔的組合語言。然後自組合語言中建立整個程式的控制流程圖（CFGs） 。接著，在控制流程圖上識別動態加載類別的函數，並且對於該函數的每個參數，我們構造一個字串相依圖，用以顯示流向字串參數值的所有構成成分以及構成方式 。最後，我們對這些可能流向參數的字串進行字串分析，以確定這些參數值所有的可能值集合。透過把這些可能值與特徵值（從Apple 審查政策建構而來，例如私有/敏感性API），我們能夠檢測到App
Millions of mobile apps have been published in Apple's AppStore with more than 15 billion downloads by iOS devices. In order to protect iOS users from malicious apps, Apple has strict policies which are used to eliminate apps before they can be published in the AppStore. In this paper we present a string analysis technique for iOS executables for statically checking policies that are related to dynamically loaded classes. In order to check that an app conforms to such a policy, it is necessary to determine the possible string values for the class name parameters of the functions that dynamically load classes. The first step of our approach is to construct the assembly for iOS executables using existing tools. We then extract flow information from the assembly code and construct control flow graphs (CFGs) of functions. We identify functions that dynamically load classes, and for each parameter that corresponds to a dynamically loaded class, we construct a dependency graph that shows the set of values that flow to that parameter. Finally, we conduct string analysis on these dependency graphs to determine all potential string values that these parameters can take, which identifies the set of dynamically loaded classes. Taking the intersection of these values with patterns that characterize Apple's app policies (such as private/sensitive APIs), we are able to detect potential policy violations. We analyzed more than 1300 popular apps from Apple's AppStore and checked them against Apple's policy about the use of private APIs and the identifier for Advertising (IDFA). Our tool extracted more than 37000 string dependency graphs from these applications and our analysis reported 208 apps that compose the corresponding API with strings and have potential IDFA violations. Our analysis also found 372 apps that could have compose the private class name with string and 236 apps that could have load the private framework with path string; and could violate the private API usage policy.
|Reference: || “Number of apps available in leading app stores as of july 2015,” http://www.statista. com/statistics/276623/number-of-apps-available-in-leading-app-stores, (Visited on 01/04/2016).|
 “G data mobile malware report threat report: Q3/2015,” https:// public.gdatasoftware.com/Presse/Publikationen/Malware Reports/G DATA MobileMWR Q3 2015 EN.pdf, (Visited on 01/04/2016).
 “Mcafee labs threats report november 2015,” http://www.mcafee.com/us/resources/ reports/rp-quarterly-threats-nov-2015.pdf, (Visited on 01/04/2016).
 “Path,” https://itunes.apple.com/us/app/path/id403639508?mt=8, (Visited on 01/04/2016).
 “Path app under fire for unauthorized address book upload,” http://appleinsider. com/articles/12/02/07/path app under fire for unauthorized address book upload. html, (Visited on 01/04/2016).
 “Mobilead2013,” http://www.emarketer.com/Article/ Driven-by-Facebook-Google-Mobile-Ad-Market-Soars-10537-2013/1010690, (Vis- ited on 01/04/2016).
 “Gartner says mobile advertising spending will reach $18 billion in 2014,” http:// www.gartner.com/newsroom/id/2653121, (Visited on 01/04/2016).
 J. Gui, S. Mcilroy, M. Nagappan, and W. G. J. Halfond, “Truth in advertising: The hidden cost of mobile ads for software developers,” in 37th IEEE/ACM International Conference on Software Engineering, ICSE 2015, Florence, Italy, May 16-24, 2015, Volume 1, 2015, pp. 100–110.
 Z. Deng, B. Saltaformaggio, X. Zhang, and D. Xu, “iris: Vetting private api abuse in ios applications,” in Proceedings of the 22nd ACM SIGSAC Conference on Computer and Communications Security. ACM, 2015, pp. 44–56.
 F. Yu, Y.-C. Lee, S. Tai, and W.-S. Tang, “Appbeach: Characterizing app behaviors via static binary analysis,” in Proceedings of the 2013 IEEE Second International Conference on Mobile Services. IEEE Computer Society, 2013, p. 86.
 Z. R. Fang, S. W. Huang, and F. Yu, “Appreco: Behavior-aware recommendation for ios mobile applications,” in 2016 IEEE International Conference on Web Services (ICWS), June 2016, pp. 492–499.
 W. Enck, P. Gilbert, S. Han, V. Tendulkar, B.-G. Chun, L. P. Cox, J. Jung, P. Mc- Daniel, and A. N. Sheth, “Taintdroid: an information-flow tracking system for real- time privacy monitoring on smartphones,” ACM Transactions on Computer Systems (TOCS), vol. 32, no. 2, p. 5, 2014.
 J. Huang, X. Zhang, L. Tan, P. Wang, and B. Liang, “Asdroid: detecting stealthy behaviors in android applications by user interface and program behavior contradic- tion,” in 36th International Conference on Software Engineering, Hyderabad, India - May 31 - June 07, 2014, 2014, pp. 1036–1046.
 S. Arzt, S. Rasthofer, C. Fritz, E. Bodden, A. Bartel, J. Klein, Y. L. Traon, D. Octeau, and P. McDaniel, “Flowdroid: precise context, flow, field, object-sensitive and lifecycle-aware taint analysis for android apps,” in ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI ’14, Edinburgh, United Kingdom - June 09 - 11, 2014, 2014, p. 29.
 L. Li, T. F. Bissyand ́e, D. Octeau, and J. Klein, “Droidra: taming reflection to support whole-program analysis of android apps,” in Proceedings of the 25th Inter- national Symposium on Software Testing and Analysis. ACM, 2016, pp. 318–329.
 P. d. B. SILVA FILHO, “Static analysis of implicit control flow: resolving java re- flection and android intents,” 2016.
 DroidBench, “Droidbench benchmarks,” https://github.com/ secure-software-engineering/DroidBench.
 A. P. Felt, M. Finifter, E. Chin, S. Hanna, and D. Wagner, “A survey of mobile malware in the wild,” in Proceedings of the 1st ACM Workshop on Security and Privacy in Smartphones and Mobile Devices, ser. SPSM ’11, 2011, pp. 3–14.
 C. Mann and A. Starostin, “A framework for static detection of privacy leaks in android applications,” in Proceedings of the 27th Annual ACM Symposium on Applied Computing. ACM, 2012, pp. 1457–1462.
 Y. Zhou, Z. Wang, W. Zhou, and X. Jiang, “Hey, you, get off of my market: Detecting malicious apps in official and alternative Android markets,” in Proceedings of the 19th Annual Network & Distributed System Security Symposium, ser. NDSS’12, 2012.
 D. Babi ́c, D. Reynaud, and D. Song, “Malware analysis with tree automata in- ference,” in Proceedings of the 23rd International Conference on Computer Aided Verification, ser. CAV’11, 2011, pp. 116–131.
 M. Egele, C. Kruegel, E. Kirda, and G. Vigna, “Pios: Detecting privacy leaks in ios applications.” in NDSS, 2011, pp. 177–183.
 N. Nethercote and J. Seward, “Valgrind: a framework for heavyweight dynamic binary instrumentation,” in ACM Sigplan notices, vol. 42, no. 6. ACM, 2007, pp. 89–100.
 T. Bao, J. Burket, M. Woo, R. Turner, and D. Brumley, “Byteweight: Learning to recognize functions in binary code,” in Proceedings of the 23rd USENIX Conference on Security Symposium, ser. SEC’14. USENIX Association, 2014, pp. 845–860.
 X. Meng and B. P. Miller, “Binary code is not easy,” in Proceedings of the 25th International Symposium on Software Testing and Analysis, ser. ISSTA 2016. ACM, 2016, pp. 24–35.
 T. Reinbacher and J. Brauer, “Precise control flow reconstruction using boolean logic,” in Proceedings of the Ninth ACM International Conference on Embedded Soft- ware, ser. EMSOFT ’11. ACM, 2011, pp. 117–126.
 D. Brumley, I. Jager, T. Avgerinos, and E. J. Schwartz, “BAP: A binary analysis platform,” in Computer Aided Verification - 23rd International Conference, CAV 2011, Snowbird, UT, USA, July 14-20, 2011. Proceedings, 2011, pp. 463–469.
 Hex-Rays, “IDAPro,” https://www.hex-rays.com/products/ida.
 Dynist, “Dynist: Tools for binary instrumentation, analysis, and modification,” https://github.com/dyninst.
 D. Song, D. Brumley, H. Yin, J. Caballero, I. Jager, M. G. Kang, Z. Liang, J. New- some, P. Poosankam, and P. Saxena, “Bitblaze: A new approach to computer security via binary analysis,” in Proceedings of the 4th International Conference on Informa- tion Systems Security, ser. ICISS ’08, 2008, pp. 1–25.
 A. S. Christensen, A. Møller, and M. I. Schwartzbach, “Precise analysis of string expressions,” in Proc. 10th International Static Analysis Symposium (SAS), ser. LNCS, vol. 2694. Springer-Verlag, June 2003, pp. 1–18, available from http://www.brics.dk/JSA/.
 C. Gould, Z. Su, and P. Devanbu, “Static checking of dynamically generated queries in database applications,” in Software Engineering, 2004. ICSE 2004. Proceedings. 26th International Conference on. IEEE, 2004, pp. 645–654.
 Y. Minamide, “Static approximation of dynamically generated web pages,” in Pro- ceedings of the 14th international conference on World Wide Web. ACM, 2005, pp. 432–441.
 G. Wassermann and Z. Su, “Sound and precise analysis of web applications for in- jection vulnerabilities,” in ACM Sigplan Notices, vol. 42, no. 6. ACM, 2007, pp. 32–41.
 ——, “Static detection of cross-site scripting vulnerabilities,” in Proceedings of the 30th International Conference on Software Engineering, ser. ICSE ’08. New York, NY, USA: ACM, 2008, pp. 171–180. [Online]. Available: http://doi.acm.org/10.1145/1368088.1368112
 P. A. Abdulla, M. F. Atig, Y.-F. Chen, L. Hol ́ık, A. Rezine, P. Ru ̈mmer, and J. Sten- man, “String constraints for verification,” in International Conference on Computer Aided Verification. Springer, 2014, pp. 150–166.
 T. Liang, A. Reynolds, C. Tinelli, C. Barrett, and M. Deters, “A dpll (t) theory solver for a theory of strings and regular expressions,” in International Conference on Computer Aided Verification. Springer, 2014, pp. 646–662.
 Y. Zheng, X. Zhang, and V. Ganesh, “Z3-str: A z3-based string solver for web application analysis,” in Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering. ACM, 2013, pp. 114–124.
 A. Kiezun, V. Ganesh, P. J. Guo, P. Hooimeijer, and M. D. Ernst, “Hampi: a solver for string constraints,” in Proceedings of the eighteenth international symposium on Software testing and analysis. ACM, 2009, pp. 105–116.
 G. Li and I. Ghosh, “Pass: String solving with parameterized array and interval automaton,” in Haifa Verification Conference. Springer, 2013, pp. 15–31.
 F. Yu, M. Alkhalaf, T. Bultan, and O. H. Ibarra, “Automata-based symbolic string analysis for vulnerability detection,” Formal Methods in System Design, vol. 44, no. 1, pp. 44–70, 2014.
 F. Yu, T. Bultan, and O. H. Ibarra, “Relational string verification using multi- track automata,” in International Conference on Implementation and Application of Automata. Springer, 2010, pp. 290–299.
 F. Yu, M. Alkhalaf, and T. Bultan, “Stranger: An automata-based string analysis tool for php,” in International Conference on Tools and Algorithms for the Construc- tion and Analysis of Systems. Springer, 2010, pp. 154–157.
 H.-E. Wang, T.-L. Tsai, C.-H. Lin, F. Yu, and J.-H. R. Jiang, String Analysis via Automata Manipulation with Logic Circuit Representation. Cham: Springer International Publishing, 2016, pp. 241–260. [Online]. Available: http://dx.doi.org/10.1007/978-3-319-41528-4 13
 F. Yu, M. Alkhalaf, and T. Bultan, “Patching vulnerabilities with sanitization synthesis,” in Proceedings of the 33rd International Conference on Software Engineering, ser. ICSE ’11. New York, NY, USA: ACM, 2011, pp. 251–260. [Online]. Available: http://doi.acm.org/10.1145/1985793.1985828
 F. Yu, C.-Y. Shueh, C.-H. Lin, Y.-F. Chen, B.-Y. Wang, and T. Bultan, “Optimal sanitization synthesis for web application vulnerability repair,” in Proceedings of the 25th International Symposium on Software Testing and Analysis, ser. ISSTA 2016. New York, NY, USA: ACM, 2016, pp. 189–200. [Online]. Available: http://doi.acm.org/10.1145/2931037.2931050
 “Ida: About - hex-rays,” http://www.hex-rays.com/products/ida, (Visited on 01/04/2016).
 F. Yu, C.-Y. Shueh, C.-H. Lin, Y.-F. Chen, B.-Y. Wang, and T. Bultan, “Optimal sanitization synthesis for web application vulnerability repair,” in Proceedings of the 25th International Symposium on Software Testing and Analysis. ACM, 2016, pp. 189–200.
|Source URI: ||http://thesis.lib.nccu.edu.tw/record/#G0104356016|
|Data Type: ||thesis|
|Appears in Collections:||[資訊管理學系] 學位論文|
Files in This Item:
All items in 政大典藏 are protected by copyright, with all rights reserved.