跳到主要內容

臺灣博碩士論文加值系統

(216.73.216.169) 您好!臺灣時間:2026/11/15 07:09
字體大小: 字級放大   字級縮小   預設字形  
回查詢結果 :::

詳目顯示

我願授權國圖
: 
twitterline
研究生:邱奕斌
研究生(外文):Chiu, Yi-Pin
論文名稱:應用於程式行為分析之彈性資訊流追蹤技術
論文名稱(外文):Elastic Information Flow Tracking for Program Behavior Analysis
指導教授:吳育松
學位類別:碩士
校院名稱:國立交通大學
系所名稱:資訊科學與工程研究所
學門:工程學門
學類:電資工程學類
論文種類:學術論文
論文出版年:2015
畢業學年度:104
語文別:英文
論文頁數:56
中文關鍵詞:資料流追蹤、程式行為分析、資料探勘
外文關鍵詞:information flow tracking、program analysis、data mining
相關次數:
  • 被引用被引用:0
  • 點閱點閱:264
  • 評分評分:
  • 下載下載:0
  • 收藏至我的研究室書目清單書目收藏:0
隨著網際網路的普及下,開放原始碼專案的風氣也日益盛行,網路上隨手可得大大小小實用的開放專案。然而,由於開放原始碼將內部的原始碼公開,人們往往會掉以輕心地認為這類型開放的程式在執行上都會遵照說明文件所寫的內容,也經過了足夠人員的審查,不會執行額外不當的操作,因此在使用上常常會直接將程式執行,而不會真的實際查看原始碼的內容,這些行為可能就會使得使用者在不知情的情況下執行不安全的操作。因此在此篇論文中,我們提出了一套基於程式碼轉換的彈性資訊流追蹤系統,此系統會自動將開放原始碼專案的程式碼做轉換與添加,讓程式具有資訊流追蹤的能力,使用者即可利用此轉換完成的原始碼幫助使用者監控程式執行中的資訊流流動,此外我們也結合了資料探勘技術,利用程式執行所產生的資訊流訊息以分析出該程式的執行行為,讓使用者能夠對該程式的行為有一定的了解,並確認程式是否如期運作。在本研究中,我們加入了一些彈性分析的機制,使用者可選擇想要追蹤的特定資料型態,且我們的系統也設有動態開關資訊流追蹤的機制,以降低不必要的程式執行負擔。從實驗中顯示我們的系統能夠幫助使用者監控程式的內部資訊流流動,並且具有一定的程式分析能力。
Open source project has been widely developed and released thanks to the rapid growth of the Internet. Many useful open source projects can be found on the Internet. However, using open source project might be insecure even though it provides all the source code. The reason is that for users who just want to use the program as a tool, they might not actually check the containing code. The execution behavior of the program might not be the same as you think. Hence, in this research, we propose an elastic information flow tracking framework based on source code transformation. Our system can automatically transform the target source code to apply elastic information flow tracking capability. Users can use the transformed program to monitor the information flows within the project. We also use the machine learning technique to analyze the information extracted from program runtime and try to infer the underlying program behavior. Our framework can help user to have the knowledge of the program and make sure the program is executing as expected. We also provide some flexible mechanisms in our research. Users can decide the data types they want to track. And we have a dynamic switch mechanism let users to turn on or turn off the tracking process during program runtime to reduce the performance overhead. Evaluation results show that our system can help users to monitor the information flows within the program and also has the effectiveness to analyze the program behavior.
Chapter 1. Introduction 1
Chapter 2. Background 2
Chapter 3. Related Work 3
Chapter 4. Elastic Information Flow Tracking 5
4.1. Information Flow Graph Model 6
4.1.1. Information Flow 7
4.1.2. Operations within Information Flow 8
4.1.3. Graph Definitions 8
4.2. Source Code Transformation 10
4.2.1. Marking Transformation Regions 12
4.2.2. Type Extraction 14
4.2.3. LabelObject Encapsulation 15
4.2.4. Instrumenting Flow Collection Code 23
4.3. Elastic Flow Tracking 24
4.3.1. Exact Flow Tracking 25
4.3.2. Taint Label based Flow Tracking 27
4.3.3. Content based Flow Tracking 28
4.3.4. Handling Cross-Region Flows 29
4.3.5. Handling Cross-Domain Flows 31
Chapter 5. Program Behavior Analysis 33
5.1. Workflow of Behavior Analysis 33
5.2. Perspectives and Feature Extraction 35
5.2.1. Flow Graph Size 36
5.2.2. Data Mixing Patterns 36
5.2.3. Taint Label Relational Mappings 37
5.2.4. Operator Occurrences 37
Chapter 6. Implementation 39
6.1. Marking Third-Party Libraries 39
6.2. Log Format for Information Flow Collection 40
6.3. Cross-Domain Switch and Flow Collection Switch 41
Chapter 7. Evaluation 43
7.1. Flow Tracking Overhead 43
7.1.1. Execution Time Overhead 45
7.1.2. Memory Usage Overhead 48
7.2. Effectiveness of Information Flow Tracking Framework 49
7.2.1. Taint Tracking for ActiveMQ 49
7.2.2. Sorting Behavior Analysis 51
7.2.3. Encryption Behavior Analysis 52
Chapter 8. Conclusion 53
Reference 54

[1] GitHub. Available: http://github.com/
[2] I. Stenroth, "Is Open Source Software Secure?," ed. EXOVE, 2015.
[3] A. Bridgwater, "Is it safe? Can open source be trusted?," ed. ComputerWeekly, 2011.
[4] Wikipedia. Information flow (information theory). Available: http://en.wikipedia.org/wiki/Information_flow_(information_theory)
[5] Wikipedia. SQL injection. Available: http://en.wikipedia.org/wiki/SQL_injection
[6] Wikipedia. Buffer overflow. Available: http://en.wikipedia.org/wiki/Buffer_overflow
[7] Wikipedia. Information leakage. Available: http://en.wikipedia.org/wiki/Information_leakage
[8] J. Newsome and D. Song, "Dynamic taint analysis for automatic detection, analysis, and signature generation of exploits on commodity software," in Proceedings of the Network and Distributed Security Symposium, 2005.
[9] J. Clause, W. Li, and A. Orso, "Dytan: a generic dynamic taint analysis framework," in Proceedings of the 2007 International Symposium on Software Testing and Analysis, 2007, pp. 196-206.
[10] F. Qin, C. Wang, Z. Li, H.-s. Kim, Y. Zhou, and Y. Wu, "Lift: A low-overhead practical information flow tracking system for detecting security attacks," in Proceedings of the 39th Annual IEEE/ACM International Symposium on Microarchitecture, 2006, pp. 135-148.
[11] D. Y. Zhu, J. Jung, D. Song, T. Kohno, and D. Wetherall, "TaintEraser: protecting sensitive data leaks using application-level taint tracking," ACM SIGOPS Operating Systems Review, vol. 45, pp. 142-154, 2011.
[12] G. E. Suh, J. W. Lee, D. Zhang, and S. Devadas, "Secure program execution via dynamic information flow tracking," in Proceedings of the 11th International Conference on Architectural Support for Programming Languages and Operating Systems, 2004, pp. 85-96.
[13] M. Dalton, H. Kannan, and C. Kozyrakis, "Raksha: a flexible information flow architecture for software security," in Proceedings of the 34th International Symposium on Computer Architecture, 2007, pp. 482-493.
[14] V. Haldar, D. Chandra, and M. Franz, "Dynamic taint propagation for Java," in Proceedings of the 21st Annual Computer Security Applications Conference, 2005, pp. 9 pp.-311.
[15] P. Vogt, F. Nentwich, N. Jovanovic, E. Kirda, C. Kruegel, and G. Vigna, "Cross Site Scripting Prevention with Dynamic Data Tainting and Static Analysis," in Proc. of Network and Distributed System Security, 2007.
[16] W. Enck, P. Gilbert, S. Han, V. Tendulkar, B.-G. Chun, L. P. Cox, et al., "TaintDroid: an information-flow tracking system for realtime privacy monitoring on smartphones," ACM Transactions on Computer Systems, vol. 32, p. 5, 2014.
[17] W. Xu, S. Bhatkar, and R. Sekar, "Taint-Enhanced Policy Enforcement: A Practical Approach to Defeat a Wide Range of Attacks," in Proceedings of the 15th USENIX Security Symposium, 2006, pp. 121-136.
[18] L. C. Lam and T.-c. Chiueh, "A general dynamic information flow tracking framework for security applications," in Proceedins of the 22nd Annual Computer Security Applications Conference, 2006, pp. 463-472.
[19] W. Chang, B. Streiff, and C. Lin, "Efficient and Extensible Security Enforcement Using Dynamic Data Flow Analysis," in Proceedings of the 15th ACM conference on Computer and Communications Security, 2008, pp. 39-50.
[20] ORACLE. javap - The Java Class File Disassembler. Available: http://docs.oracle.com/javase/7/docs/technotes/tools/windows/javap.html
[21] Wikipedia. Parse tree. Available: http://en.wikipedia.org/wiki/Parse_tree
[22] Wikipedia. Statistical classification. Available: http://en.wikipedia.org/wiki/Statistical_classification
[23] Wikipedia. Machine learning. Available: http://en.wikipedia.org/wiki/Machine_learning
[24] Wikipedia. Supervised learning. Available: http://en.wikipedia.org/wiki/Supervised_learning
[25] ANTLR. Available: www.antlr.org
[26] S. H. Terence Parr. Java grammar. Available: http://github.com/antlr/grammars-v4/blob/master/java/Java.g4
[27] ORACLE. Primitive Data Types. Available: http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html
[28] MessagePack. Available: http://msgpack.org/
[29] Dato. GraphLab Create. Available: http://dato.com/products/create/
[30] Dato. Gradient Boosted Regression Trees. Available: http://dato.com/learn/userguide/supervised-learning/boosted_trees_regression.html
[31] Wikipedia. Random forest. Available: http://en.wikipedia.org/wiki/Random_forest
[32] Wikipedia. Support vector machine. Available: http://en.wikipedia.org/wiki/Support_vector_machine
[33] ORACLE. Using JAR Files: The Basics. Available: http://docs.oracle.com/javase/tutorial/deployment/jar/basicsindex.html
[34] Wikipedia. Shared memory (interprocess communication). Available: http://en.wikipedia.org/wiki/Shared_memory_(interprocess_communication)
[35] ORACLE. MappedByteBuffer. Available: http://docs.oracle.com/javase/7/docs/api/java/nio/MappedByteBuffer.html
[36] Wikipedia. Data Encryption Standard. Available: http://en.wikipedia.org/wiki/Data_Encryption_Standard
[37] Apache. ActiveMQ. Available: http://activemq.apache.org/
[38] Wikipedia. Artificial neural network. Available: http://en.wikipedia.org/wiki/Artificial_neural_network

連結至畢業學校之論文網頁點我開啟連結
註: 此連結為研究生畢業學校所提供,不一定有電子全文可供下載,若連結有誤,請點選上方之〝勘誤回報〞功能,我們會盡快修正,謝謝!
QRCODE
 
 
 
 
 
                                                                                                                                                                                                                                                                                                                                                                                                               
第一頁 上一頁 下一頁 最後一頁 top