Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 169 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
169
Dung lượng
3,3 MB
Nội dung
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA NGUYỄN MINH HẢI KẾT HỢP PHÂN TÍCH TĨNH VÀ KIỂM TRA ĐỘNG TRONG VIỆC XÂY DỰNG ĐỒ THỊ LUỒNG ĐIỀU KHIỂN PHỤC VỤ PHÂN TÍCH MÃ NHỊ PHÂN LUẬN ÁN TIẾN SĨ KỸ THUẬT TP HỒ CHÍ MINH NĂM 2019 ĐẠI HỌC QUỐC GIA TP HCM TRƯỜNG ĐẠI HỌC BÁCH KHOA NGUYỄN MINH HẢI KẾT HỢP PHÂN TÍCH TĨNH VÀ KIỂM TRA ĐỘNG TRONG VIỆC XÂY DỰNG ĐỒ THỊ LUỒNG ĐIỀU KHIỂN PHỤC VỤ PHÂN TÍCH MÃ NHỊ PHÂN Chuyên ngành: KHOA HỌC MÁY TÍNH Mã số chuyên ngành: 62.48.01.01 Phản biện độc lập 1: PGS TS Nguyễn Thanh Bình Phản biện độc lập 2: PGS TS Vũ Thanh Nguyên Phản biện 1: PGS TS Nguyễn Đình Thuân Phản biện 2: TS Võ Văn Khang Phản biện 3: TS Nguyễn Đức Dũng NGƯỜI HƯỚNG DẪN KHOA HỌC PGS TS QUẢN THÀNH THƠ LỜI CAM ĐOAN Tác giả xin cam đoan cơng trình nghiên cứu thân tác giả Các kết nghiên cứu kết luận luận án trung thực, không chép từ nguồn hình thức Việc tham khảo nguồn tài liệu (nếu có) thực trích dẫn ghi nguồn tài liệu tham khảo theo yêu cầu Tác giả luận án (chữ ký) Nguyễn Minh Hải i TĨM TẮT LUẬN ÁN Phân tích chương trình lĩnh vực thu hút nhiều ý nhà nghiên cứu Tuy nhiên, vấn đề lớn toán nằm việc xây dựng đồ thị luồng điều khiển chương trình nhị phân Đây khó khăn lớn đồ thị luồng điều khiển thường tạo thay đổi cách ngẫu nhiên kỹ thuật mã tự thay đổi Tuy nhiên, khó khăn điển hình lĩnh vực xây dựng đồ thị luồng điều khiển q trình xử lí câu lệnh nhảy không trực tiếp Trong luận án này, đề xuất hướng tiếp cận kiểm tra thực thi ký hiệu động kết hợp q trình phân tích tĩnh kiểm tra động để xây dựng đồ thị luồng điều khiển từ mã nhị phân chương trình Mục tiêu hướng tiếp cận để giảm khơng xác xử lý lệnh nhảy động trình xây dựng đồ thị luồng điều khiển Các đóng góp luận án tóm tắt sau: i Luận án đề xuất khung thức tổng quát cho xây dựng đồ thị luồng điều khiển từ mã nhị phân chương trình cách tự động ii Luận án đưa giải pháp để tăng tốc trình thực thi chương trình cách áp dụng giải thuật song song hóa với tính tốn đa luồng để tăng tốc độ xử lý trạng thái iii Luận án đề xuất cách khai thác tri thức dựa đồ thị luồng điều khiển mã nhị phân Luận án tập trung vào vấn đề nhận diện chương trình đóng gói mã độc với hai hướng tiếp cận: (i) sử dụng kiểm tra Chi bình phương; (ii) sử dụng mơ hình Markov ẩn iv Luận án trình bày giải pháp nhận diện mã độc dựa phương pháp học sâu v Cuối cùng, luận án xây dựng cơng cụ hồn chỉnh có tên BE-PUM cho việc xây dựng đồ thị luồng điều khiển từ mã nhị phân Từ khóa: phân tích chương trình, đồ thị luồng điều khiển, thực thi ký hiệu, phân tích tĩnh, kiểm tra động ii ABSTRACT Program analysis has attracted much attention The difficulty lies in constructing a Control Flow Graph (CFG), which is dynamically generated and modified by obfuscation techniques such as self-modifying code Typical examples are handling dynamic jump instructions, in which destinations may be directly modified by rewriting loaded instructions on memory In this thesis, we propose a hybrid approach which combines static analysis and dynamic testing to construct CFG from binary code Our aim is to minimize false targets produced when processing indirect jumps during the CFG construction The main contributions of the thesis are summarized as follows i The thesis proposes a general framework for automatically generating the control flow graph of binary code ii The thesis proposes an approach for reducing the processing time of exploring states by applying the computational power of multiple threads iii The thesis proposes an approach of exploiting the knowledge discovery based on control flow graph of binary code It focuses on packer identification of malware using (i) Chi-square test and (ii) Hidden Markov Model iv The thesis proposed an approach of malware classification using deep learning v Finally, the thesis has built a complete tool called BE-PUM for generating the control flow graph of binary code iii LỜI CÁM ƠN Đầu tiên, xin gởi lời tri ân đến PGS TS Quản Thành Thơ, Thầy hướng dẫn mà tơi tơn vinh muốn bày tỏ lịng biết ơn sâu sắc Thầy tận tình hướng dẫn, định hướng động viên suốt thời gian học tập, nghiên cứu thực luận án Luận án khơng thể hồn thành tốt khơng có giúp đỡ q báu GS Mizuhito Ogawa Viện Khoa học Công nghệ tiên tiến Nhật Bản (JAIST) Tôi xin chân thành cảm ơn Thạc sĩ Lê Nguyên Dũng, công ty VNG hỗ trợ việc nghiên cứu Tôi muốn bày tỏ lòng biết ơn tập thể thầy Khoa Khoa học Kỹ thuật Máy Tính trường Đại học Bách Khoa Tp Hồ Chí Minh giúp đỡ tạo điều kiện cho nhiều trình học tập nghiên cứu Khoa Cảm ơn Phòng Quản lý Sau Đại học hỗ trợ thủ tục q trình hồn thành luận án Cuối cùng, tơi muốn bày tỏ lịng biết ơn sâu sắc đến Cha, Mẹ, Anh, Vợ Con ln điểm tựa vững chắc, chăm sóc tiếp thêm nghị lực giúp tơi hồn thành tốt luận án iv MỤC LỤC CHƯƠNG 1.1 GIỚI THIỆU Giới thiệu 1.1.1 Những lợi ích việc phân tích mã nhị phân 1.1.2 Những thách thức phân tích mã nhị phân 1.1.3 Bài toán xây dựng đồ thị luồng điều khiển 1.2 Phát biểu vấn đề 1.3 Câu hỏi nghiên cứu 1.4 Mục tiêu nghiên cứu 1.5 Những đóng góp nghiên cứu 1.6 Tầm quan trọng nghiên cứu 11 1.7 Giới hạn nghiên cứu 11 1.8 Bố cục luận án 12 CHƯƠNG KIẾN THỨC NỀN TẢNG 15 2.1 Đồ thị luồng điều khiển 15 2.2 Kỹ thuật thực thi ký hiệu 16 2.3 Kỹ thuật kiểm tra thực thi ký hiệu động 17 2.4 Chương trình đóng gói 18 2.4.1 Giới thiệu 18 2.4.2 Cấu trúc chương trình bị đóng gói 19 2.4.3 Các kỹ thuật làm rối chương trình đóng gói 21 2.5 Mơ hình Markov ẩn 29 2.6 Kiểm tra Chi bình phương 30 CHƯƠNG ĐIỀU KHIỂN KHUNG THỨC TỔNG QUÁT XÂY DỰNG ĐỒ THỊ LUỒNG 32 3.1 Giới thiệu 32 3.2 Các nghiên cứu liên quan 34 3.3 Ví dụ minh họa 35 3.3.1 Ví dụ 35 3.3.2 Ví dụ 36 v 3.4 Kết luận 38 CHƯƠNG ÁP DỤNG KỸ THUẬT SONG SONG HÓA KẾT HỢP VỚI BẢNG BĂM VÀ GIẢI THUẬT DI TRUYỀN ĐỂ GIẢM THỜI GIAN THỰC THI CỦA CHƯƠNG TRÌNH 40 4.1 Giới thiệu 40 4.2 Những nghiên cứu liên quan 41 4.3 Ví dụ động 42 4.3.1 Các vấn đề 44 4.4 Nén sử dụng bảng băm 45 4.5 Mô tả giải thuật xử lý đa luồng 45 4.5.1 Ví dụ minh họa 45 4.5.2 Tổng quan giải thuật 46 4.5.3 Chi tiết giải thuật 48 4.5.4 Chi tiết trình thực 52 4.5.5 Song song hóa kết hợp giải thuật di truyền 54 4.6 Thí nghiệm 58 4.6.1 Thí nghiệm giảm số lần trùng lặp sử dụng giải thuật di truyền 58 4.6.2 Thí nghiệm hiệu giải thuật song song hóa phân tích mã độc 59 4.7 Kết luận 62 CHƯƠNG NHẬN DIỆN CHƯƠNG TRÌNH ĐĨNG GĨI SỬ DỤNG KỸ THUẬT CHI BÌNH PHƯƠNG 64 5.1 Giới thiệu 64 5.2 Các nghiên cứu liên quan 66 5.3 Phương pháp thực 67 5.3.1 Nhận dạng kỹ thuật làm rối 67 5.3.2 Chữ ký siêu liệu 69 5.3.3 Nhận dạng chương trình đóng gói tự xây dựng 73 5.4 Thí nghiệm 74 5.4.1 Kiểm tra độ xác phân tích tập tin bình thường 74 5.4.2 Nhận diện chương trình đóng gói phân tích mã độc 75 5.4.3 Kiểm tra mẫu sai khác 77 vi 5.4.4 5.5 Nhận diện chương trình đóng gói tự xây dựng 78 Kết luận 79 CHƯƠNG NHẬN DIỆN CHƯƠNG TRÌNH ĐĨNG GĨI SỬ DỤNG MƠ HÌNH MARKOV ẨN 81 6.1 Giới thiệu 81 6.2 Phương pháp thực 83 6.2.1 Mơ hình Markov ẩn 83 6.2.2 Xây dựng mơ hình Markov ẩn 84 6.2.3 Ví dụ minh họa 85 6.3 Thí nghiệm 88 6.3.1 Xây dựng mơ hình Markov ẩn 88 6.3.2 Thực nghiệm đánh giá hiệu 90 6.3.3 So sánh phương pháp sử dụng mơ hình Markov ẩn Chi bình phương 91 6.4 Kết luận 92 CHƯƠNG NHẬN DIỆN MÃ ĐỘC SỬ DỤNG PHƯƠNG PHÁP HỌC SÂU 94 7.1 Giới thiệu 94 7.2 Những nghiên cứu liên quan 97 7.2.1 Nhận diện mã độc sử dụng học máy 97 7.2.2 Kỹ thuật trực quan hóa phân tích mã độc 98 7.3 Phương pháp thực 99 7.3.1 Xây dựng đồ thị luồng điều khiển từ mã nhị phân chương trình 99 7.3.2 Chuyển CFG thành ảnh 100 7.3.3 Sử dụng phương pháp học sâu để phát mã độc 104 7.4 Thí nghiệm 107 7.4.1 7.5 Kết thí nghiệm 107 Kết luận 109 CHƯƠNG 8.1 CÔNG CỤ XÂY DỰNG ĐỒ THỊ LUỒNG ĐIỀU KHIỂN BE-PUM 111 Giới thiệu BE-PUM 111 8.1.1 Mơ hình đẩy xuống 111 8.1.2 Mơ q trình thực thi BE-PUM 114 8.1.3 Xây dựng CFG gắn kết chậm 115 vii 8.1.4 8.2 Các chức khác 121 Kiến trúc BE-PUM 123 8.2.1 Ví dụ minh họa 126 8.3 So sánh BE-PUM với công cụ có 127 8.4 Thí nghiệm 129 8.4.1 Phân tích mã độc EMDIVI WannaCry 129 8.4.2 Kết thực nghiệm 132 8.5 Kết luận 132 CHƯƠNG KẾT LUẬN 135 9.1 Kết luận 135 9.2 Hướng nghiên cứu tương lai 136 9.2.1 Mở rộng hỗ trợ tập lệnh x86 Windows API 136 9.2.2 Mở rộng q trình nhận diện chương trình đóng gói 136 9.2.3 Nhận diện mã độc với phương pháp học máy khác 137 9.2.4 Một số hướng nghiên cứu mở rộng khác 137 DANH MỤC CÔNG TRÌNH ĐÃ CƠNG BỐ 138 CÁC ĐỀ TÀI NGHIÊN CỨU KHOA HỌC ĐÃ THAM GIA THỰC HIỆN 142 TÀI LIỆU THAM KHẢO 143 viii [CT12] Nguyen Minh Hai, Quan Thanh Tho, “Packer Identification using Hidden Markov Model”, The 11th Multi-disciplinary International Workshop on Artificial Intelligence (MIWAI 2017), 2017, Gadong – Brunei [CT13] Nguyen Minh Hai, Mizuhito Ogawa and Quan Thanh Tho, “Packer Identification Based on Metadata Signature”, The 7th Software Security, Protection, and Reverse Engineering Workshop (SSPREW-7), San Juan, Puerto Rico, USA, 2017 [CT14] Nguyen Minh Hai, Le Nguyen Dung and Quan Thanh Tho, “Applying Symbolic Execution for Malware Analysis”, The 2nd Symposium on Information Security (SOIS 2017), 02-03 December 2017, University of Information Technology Ho Chi Minh City, Vietnam (in Vietnamese) 141 CÁC ĐỀ TÀI NGHIÊN CỨU KHOA HỌC ĐÃ THAM GIA THỰC HIỆN Tên đề tài Mã số đề tài Năm thực Cấp quản lý Vai trò tham gia Kết nghiệm thu Xây dựng mơ hình Pushdown từ mã nhị phân virus máy tính TNCS-2015KHMT-06 20152016 Cấp trường Chủ trì Tốt 142 TÀI LIỆU THAM KHẢO [1] J.- M Jézéquel and B Meyer, "Design by Contract: The Lessons of Ariane," Journal Computer, vol 30, no 1, pp 129-130, 1997 [2] Tricentis (2017, Oct.) Tricentis [Online] https://www.tricentis.com/wpcontent/uploads/2017/01/20161231SoftwareFails2016.pdf [3] K E Wiegers., Peer Reviews in Software London, UK: Addison Wesley, 2002 [4] T Linz and H Schaefer A Spillner, Software Testing Foundations, Santa Barbara, Ed.: Rocky Nook Inc., 2006 [5] E M Clarke and J M Wing., "Formal methods: State of the art and future directions.," Journal ACM Computing Surveys, vol 28, no 4, pp 626-643, 1996 [6] J W Backus, ""The Syntax and Semantics of the Proposed International Algebraic Language of Zürich ACM-GAMM Conference," in Proceedings of the International Conference on Information Processing, Zurich, Switzerland, 1959, pp 1-21 [7] T Reps, D Melski, T Teitelbaum and G Balakrishnan, "WYSINWYX:What You See Is Not What You eXecute.," in Transactions on Programming Languages and Systems (TOPLAS), New York, USA, 2010 [8] Intel Corporation, "Intel 64 and IA-32 Architectures Software Developer’s Manual," 2009 [9] S K Raman, V M Pentkovski and J Keshava, "Implementing Streaming SIMD Extensions on the Pentium III Processor," Journal IEEE Micro, vol 20, no 4, pp 47-57, 2000 [10] M Pietrek, "Inside Windows: An In-Depth Look into the Win32 Portable Executable File Format (Part I)," MSDN Magazine 17.2, February 2002 [11] TIS Committee (2017, Oct.) Tool Interface Standard (TIS) Executable and 143 Linking Format (ELF) Specification http://www.skyfree.org/linux/references/ELF_Format.pdf [Online] [12] IDA Pro (2017) IDA: About [Online] https://www.hex-rays.com/products/ida/ [13] G Reps, TW Kidd, N Lai, A Lim and J Balakrishnan, "Model checking x86 executables with CodeSurfer/x86 and WPDS++," in Proceedings of the 2005 Computer-Aided Verification (CAV 05), Edinburgh, Scotland, UK, 2005, pp 158-163 [14] A V Thakur, "Directed proof generation for machine code.," in Proceedings of the 2010 Computer-Aided Verification (CAV 10), Edinburgh, Scotland, UK, 2010, pp 288–305 [15] J Zuleger, F Veith and H Kinder, "An Abstract Interpretation-Based Framework for Control Flow Reconstruction from Binaries," in Proceeding of the International Workshop on Verification, Model Checking, and Abstract Interpretation, Savannah, GA, 2009, pp 214-228 [16] S Bardin and P Herrmann, "OSMOSE: automatic structural testing of executables," Journal Software Testing, Verification & Reliability, vol 21, no 1, pp 29-54, March 2011 [17] W Li, L Lam, T Chiueh and S Nanda, "BIRD: Binary interpretation using runtime disassembly," in Proceedings of the International Symposium on Code Generation and Optimization, DC, USA, 2006, pp 358-370 [18] M G Poosankam, P Yin and H Kang, "Renovo: A Hidden Code Extractor for Packed Executables," in Proceedings of the 2007 ACM workshop on Recurring Malcode, Alexandria, VA, USA ACM, 2007, pp 46-53 [19] K.Futatsugi, A.Mori and T.Izumida, "A generic binary analysis method for malware," in Proceedings of the 5th international conference on Advances in information and computer security, Kobe, Japan, 2010, pp 199–216 [20] S.K.Lahiri, C.R.-González and P.Godefroid, "Statically validating must summaries for incremental compositional dynamic test generation," in Proceedings of the 18th international conference on Static analysis, Venice, 144 Italy, 2011, pp 112-128 [21] R C Patrick Cousot, "Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints," in Conference Record of the Sixth Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Language, New York, USA, 1977 [22] F E Allen, "Control flow analysis," in Proceedings of a symposium on Compiler optimization, Illinois, USA, 1970 [23] J King and T Watson, "Symbolic execution and program testing," Communications of the ACM, vol 19, no 7, pp 385–394, 1976 [24] K Sen and G Agha, "Cute and jcute : Concolic unit testing and explicit path modelchecking tools," in 18th Computer Aided Verification (CAV 2006), Seattle, WA, USA, 2006, pp 419–423 [25] B Marre, P Mouy, M Roger and N Williams, "Pathcrawler: Automatic generation of path tests by combining static and dynamic analysis," in 5th European Dependable Computing Conference (EDCC'05), Budapest, Hungary, 2005 [26] M Y Levin, D A Molnar and P Godefroid, "SAGE: Whitebox fuzzing for security testing," ACM Queue, vol 10, no 1, pp 20-40, 2012 [27] Microsoft Research The https://github.com/Z3Prover/z3 Z3 Theorem Prover [Online] [28] E.O Osaghae, "Classifying Packed Programs as Malicious Software Detected," International Journal of Information Technology and Electrical Engineering, vol 5, no 1, pp 22–25, 2016 [29] UPX, the Ultimate Packer for eXecutables [Online] https://upx.github.io/ [30] J Collake (2017, January) PECompact – Windows (PE) Executable Compressor [Online] https://bitsum.com/portfolio/pecompact/ [31] [Online] http://www.aspack.com/aspack.html 145 [32] Oreans Technologies (2017, October) Themida Advanced Windows Software Protection System [Online] https://www.oreans.com/themida.php [33] A Danehkar Yoda's Protector [Online] http://yodap.sourceforge.net/ [34] Un4seen PETITE Win32 http://www.un4seen.com/petite/ Executable Compressor [Online] [35] Telock Packer [Online] http://www.softpedia.com/get/Programming/PackersCrypters-Protectors/Telock.shtml [36] L Juang and B Rabiner, "An Introduction to hidden Markov models," IEEE Acoustics, Speech & Signal Processing Magazine, vol 3, pp 4-16, 1986 [37] Y He, P Bahl and A Kunda, "Handwritten Word Recognition - a Hidden Markov Model Based Approach," Pattern Recognition, vol 1, pp 283-297, 1989 [38] C.M.Brown and R.D.Rimey, "Selective Attention as Se-quential Behavior : Modeling Eye Movements with an Augmented Hidden Markov Model," in Proc DARPA Image Understanding Workshop, England, 1990 [39] K Pearson, "On the criterion that a given system of deviations from the probable in the case of a correlated system of variables is such that it can be reasonably supposed to have arisen from random sampling," Philosophy Magazine, vol 50, no 302, pp 157-175, 1900 [40] P Kohli, B Bruhadadeshwar and V S Sathyanarayan, "Signature Generation Detection of Malware Families," in Proceedings of the 13th Australasian conference on Information Security and Privacy (ACISP '08), Wollongong, Australia, 2008 [41] G Balakrishnan, R Gruian, T W Reps and T Teitelbaum, "Codesurfer/x86-a platform for analyzing x86 executables," in 14th Compiler Construction, Edinburgh, 2005 [42] A Lanzi, J Giffin, W Lee and M Sharif, "Impeding Malware Analysis Using Conditional Code Obfuscation," in Proceedings of the Network and Distributed 146 System Security Symposium (NDSS 2008), San Diego, California, USA, 2008 [43] J Fernandez, J.-Y Marion, B Rouxel, F Sabatier, A Thierry and G Bonfante, "CoDisasm: Medium Scale Concatic Disassembly of Self-Modifying Binaries with Overlapping Instructions," in Proceedings of the 22nd ACM SIGSAC Conference on Computer and Communications Security (CCS'15), Denver, Colorado, USA, 2015 [44] B Livshits, B Zorn, C Seifert and C Kolbitsch, "Rozzle: De-cloaking Internet Malware," in Proceedings of the 2012 IEEE Symposium on Security and Privacy (SP '12), Washington, DC, USA, 2012 [45] Z Deng, X Zhang, Z Lin and Z Su and F Peng, "X-force: force-executing binary programs for security applications," in Proceedings of the 23rd USENIX conference on Security Symposium (SEC'14 ), Berkeley, CA, USA, 2014 [46] S Naftaly (2012, June) Pin - A Dynamic Binary Instrumentation Tool [Online] https://software.intel.com/en-us/articles/pin-a-dynamic-binary-instrumentationtool [47] C Kruegel, E Kirda and A Moser, "Exploring Multiple Execution Paths for Malware Analysis," in IEEE Symposium on Security and Privacy 2007 (SP '07), Berkeley, CA, USA, 2007 [48] C Hartwig, Z Liang, J Newsome, D Song, H Yin and D Brumley, "Automatically Identifying Trigger-based Behavior in Malware," in Advances in Information Security, New York, NY, 2008 [49] P Herrmann, J Leroux, O Ly, R Tabary, A Vincent and S Bardin, "The BINCOA framework for binary code analysis," in Proceedings of the 23rd international conference on Computer aided verification (CAV'11), Snowbird, Utah, 2011 [50] N M Hai, N T Binh, Q T Tho and M Ogawa, "A Hybrid Approach for Control Flow Graph Construction from Binary Code," in Proceeding of 20th Asia-Pacific Software Engineering Conference (APSEC 2013), Bangkok, Thailan, 2013 147 [51] L Kristensen, L Petrucci and S Evangelista, "Multi-threaded explicit state space exploration with state reconstruction," in Proc of the 11th International Symposium on Automated Technology for Verification and Analysis (ATVA13), Ha Noi, Viet Nam, 2013 [52] J van de Pol, M Weber and A Laarman, "Boosting multi-core reachability performance with shared hash tables," in Proceedings of the 2010 Conference on Formal Methods in Computer-Aided Design (FMCAD'10), Lugano, Switzerland, 2010 [53] Y Guillot and J Tinnes (2007, April) The METASM assembly manipulation suite [Online] http://metasm.cr0.org/ [54] V Bénony Hopper v4 The macOS and Linux Disassembler [Online] http://www.hopperapp.com [55] Java User Group Java Native Access (JNA) [Online] https://github.com/javanative-access/jna [56] G.Holzmann, Design and validation of computer protocols USA: Prentice-Hall Internation Editions, 1991 [57] G.Holzmann, "An improved protocol reachability analysis technique," Journal Software—Practice & Experience, vol 18, no 2, pp 137-161, 1988 [58] P Wolper and D Leroy, "Reliable hashing without collision detection," in The 5th Computer Aided Verification (CAV'93), Elounda, Greece, 1993 [59] M A Mona and A O Fatma, "Genetic algorithms for task scheduling problem," Journal of Parallel and Distributed Computing, vol 70, no 1, pp 13-22, 2010 [60] Kai, S Huaguang and L L Zhu, "Hybrid Genetic Algorithm for Cloud Computing Applications," in Services Computing Conference (APSCC), Jeju Island, South Korea, 2011 [61] Z Zheng, R Wang, H Zhong and X Zhang, "An approach for cloud resource scheduling based on Parallel Genetic Algorithm," in 3rd International Conference on Computer Research and Development (ICCRD), Shanghai, 148 China, 2011 [62] J H Holland, "Genetic algorithms," Scientific American, vol 267, no 1, pp 66– 73, 1992 [63] VirusTotal Online Service [Online] https://www.virustotal.com [64] M Westergaard, L.M Kristensen and S Evangelista, "The comback method revisited: Caching strategies and extension with delayed duplicate detection," International Journal of Production Research, vol 3, no 1, pp 189-215, 2009 [65] F G Alejandro, F Richard, L Victor, L Biplab, S Sravana, K Sristi, L Logesh, M Mangalam and N John (2014, March) The Link between Pirated Software and Cybersecurity Breaches [Online] https://ncmedia.azureedge.net/ncmedia/2016/04/IDCNUSFinalResearch.pdf [66] K.A Roundy and B.P Miller, "Binary-code obfuscations in prevalent packer tools," Journal ACM Computing Surveys, vol 46, no 1, pp 1-32, 2013 [67] D Pistelli (2009, May) http://www.ntcore.com/exsuite.php NTCore-CFF Explorer [Online] [68] SANS PEID [Online] https://www.aldeid.com/wiki/PEiD [69] W Zhang, Z Ansari and N Yan, "Revealing Packed Malware," IEEE, Security and Privacy, vol 6, no 5, pp 65-69, 2008 [70] E Choo, J Lee, M Bat-Erdene, H Lee and G Jeong, "Generic Unpacking using Entropy Analysis," in 5th International Conference on Malicious and Unwanted Software (MALWARE), 2010 , Nancy, France, 2010 [71] S Tabish, M Farooq and M Shafiq, "PE-Probe: leveraging packer detection and structural information to detect malicious portable executables," in Proceedings of the 12th International Symposium on Recent Advances in Intrusion Detection (RAID '09), Saint-Malo, France, 2009 [72] R Isawa, S Guo, D Inoue, K Nakao and T Ban, "Efficient malware packer identification using support vector machines with spectrum kernel," in 2013 149 Eighth Asia Joint Conference on Information Security (Asia JCIS), Seoul, South Korea, 2013 [73] S Versteeg, S Boztas, T Yann and L Sun, "Pattern recognition techniques for the classification of malware packers," in Proceedings of the 15th Australasian conference on Information security and privacy (ACISP'10), Sydney, Australia, 2010 [74] J Stewart OllyBonE v0.1 [Online] http://www.joestewart.org/ollybone/ [75] O Yuschuk OllyDbg [Online] http://ollydbg.de/ [76] D Song TEMU: The BitBlaze Dynamic Analysis Component [Online] http://bitblaze.cs.berkeley.edu/temu.html [77] D Brumley, H Yin, J Caballero, I Jager, M Gyung Kang, Z Liang, J Newsome, P Poosankam, Prateek Saxena and D Song, "BitBlaze: A New Approach to Computer Security via Binary Analysis," in Proceedings of the 4th International Conference on Information Systems Security (ICISS '08), Hyderabad, India, 2008 [78] M Kamizono and D Inoue and R Isawa, "Generic Unpacking Method Based on Detecting Original Entry Point," in 20th International Conference of Neural Information Processing (ICONIP 2013), Daegu, Korea, 2013 [79] M Halpin, D Dagon, R Edmonds and W Lee P Royal, "PolyUnpack: Automating the Hidden-Code Extraction of Unpack-Executing Malware," in Proceedings of the 22nd Annual Computer Security Applications Conference (ACSAC '06), Miami Beach, FL, USA, 2006 [80] M Christodorescu, S Jha and L Martignoni, "OmniUnpack: Fast, Generic, and Safe Unpacking of Malware," in In Proceedings of the Annual Computer Security Applications Conference (ACSAC 2007), USA, 2007 [81] F Song and T Touili, "Pushdown model checking for malware detection," International Journal on Software Tools for Technology Transfer (STTT), vol 16, no 2, pp 147-173, 2014 150 [82] F Song and T Touili, "LTL model-checking for malware detection ," in Proceedings of the 19th international conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS'13), Rome, Italy, 2013 [83] S Bardin, T D Ta, L Mounier, J Feist, M.-L Potet, J.-Y Marion and R David, "BINSEC/SE: A Dynamic Symbolic Execution Toolkit for Binary-Level Analysis," in 2016 IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER), Suita, Japan, 2016 [84] VXer VX Heaven [Online] http://vxer.org/ [85] VXShare VirusShare [Online] https://virusshare.com/ [86] M Morgenstern and H Pilz, "Useful and useless statistics about viruses and anti-virus programs," in the Proceedings of the CARO Workshop 2010, Helsinki, Finland, 2010 [87] D Balzarotti, I Santos, P G.Bringas and X Ugarte-Pedrero, "SoK: Deep packer inspection: A longitudinal study of the complexity of run-time packers," in 2015 IEEE Symposium on Security and Privacy (SP), , San Jose, CA, USA, 2015 [88] Deep Instinct Research Team Certificate Bypass, "Hiding and Executing Malware from a Digitally Signed Executable," in Proceedings of Black Hat USA 2016, USA, 2016 [89] M Morgenstern and A Marx, "Runtime packer testing experiences," in Proceedings of the 2nd International CARO Workshop, Germany, 2008 [90] G.D Forney, "The Viterbi algorithm," Proc IEEE, vol 61, pp 268–278, March 1973 [91] CERT (2017) THE WANNACRY RANSOMWARE [Online] http://www.ey.com/Publication/vwLUAssets/ey-wannacry-ransomwareattack/$File/ey-wannacry-ransomware-attack.pdf [92] C E Pearl, "I Am Divergent: EMDIVI's All Kinds of Attacks," in RSA Conference 2016, Marina Bay Sands, Singapore, 2016 151 [93] E Filiol, "Malware Pattern Scanning Schemes Secure against Black-box Analysis," Journal in Computer Virology, vol 2, no 1, pp 35-50, 2006 [94] T Izumida, T Sawada, T Inoue and A Mori, "A tool for analyzing and detecting malicious mobile code," in Proceedings of the 28th international conference on Software engineering (ICSE'06), Shanghai, China, 2006 [95] E Grumberg , O Long and D Clarke, Model Checking USA: MIT Press., 1999 [96] J Katzenbeisser, S Schallhart, C Veith and H Kinder, "Detecting Malicious Code by Model Checking," in Conference on Detection of Intrusions and Malware & Vulnerability Assessment (DIMVA), Vienna, Austria, 2005 [97] Max Eddy (2014, May) PC [Online] http://securitywatch.pcmag.com/security/323419-symantec-says-antivirus-isdead-world-rolls-eyes [98] A Chandramohan, M Chen, Yang Liu and Narayanan, "A Multi-view Contextaware Approach to Android Malware Detection and Malicious Code Localization," Empirical Software Engineering, vol 1, no 1, pp 1-53, November 2017 [99] M A Maarof and M A Rassam, "Artificial Immune Network Clustering Approach for Anomaly Intrusion Detection," Journal of Advances in Information Technology, vol 3, no 1, pp 147-154, 2012 [100] D Dasgupta, Artificial Immune Systems and Their Applications USA: Springer Publishing, 1999 [101] S Jani, H Shetty, S Bhowmick and K Shah, "Virus Detection Using Artificial Neural Networks," International Journal of Computer Applications, vol 84, no 5, pp 17-23, 2013 [102] R I Jennrich and P F Sampson, "Newton-Raphson and Related Algorithms for Maximum Likelihood Variance Component Estimation," Technometrics, vol 18, no 1, pp 11-17, 1977 [103] S Zitar, R A Al-Hamami and A Afaneh, "Virus Detection using Clonal 152 Selection Algorithm with Genetic Algorithm (VDC Algorithm)," Applied Soft Computing, vol 13, no 1, pp 239-246, 2013 [104] P Holz, T Gobel, J Freiling and F.C Trinius, "Visual analysis of malware behavior using treemaps and thread graphs," in Proceedings of the Visualization for Cyber Security, 2009 (VizSec 2009), IEEE, Atlantic City, NJ, USA., 2009 [105] J., Mentis, D Greamo and C Saxe, "Visualization of shared system call sequence relationships in large malware corpora," in Proceedings of the Ninth International Symposium on Visualization for Cyber, Security 2012, ACM, Seattle, Washi, 2012 [106] Software Freedom Conservancy QEMU the FAST! processor emulator [Online] https://www.qemu.org/ [107] M Russinovich (2017, September) Process Monitor v3.40 [Online] https://docs.microsoft.com/en-us/sysinternals/downloads/procmon [108] N M Hai, M Ogawa, and Q.T Tho, "Obfuscation Code Localization Based on CFG Generation of Malware," in Proceeding of International Symposium on Foundations and Practice of Security 2015 (FPS 2015), pp 229-247, LNCS 9482, Clermont-Ferrand, , 2015 [109] Y Le Cun, "Generalization and network design strategies," Pfeifer, Schreter, Fogelman and Steels (eds) 'Connectionism , 1989 [110] G.E Hinton, "Mapping Part-Whole Hierarchies into Connectionist Networks," Artificial Intelligence, vol 46, no 2, pp 47-75., 1990 [111] R., Roux, N.L., Bordes, A Obozinski and G Jenatton, "A Latent Factor Model for Highly Multi-Relational Data," in Proceeding of Advances in Neural Information Processing Systems 2012, pp 3176-3184, Lake Tahoe, Nevada, United States., 2012 [112] J., Divvala, S., Girshick, R Farhadi and A Redmon, "You only look once: Unified, real-time object detection," in Proceedings of the Computer Vision and Pattern Recognition 2016 (CVPR 2016), USA, 2016 153 [113] A Rafique ,M Z Caballero and J Nappa, "The MALICIA dataset: identification and analysis of drive-by download operations," Journal International Journal of Information Security, vol 14, no 1, pp 15-33, 2015 [114] C Cortes and V Vapnik, "Support vector networks," Machine Learning, vol 20, no 1, pp 273-297, 1995 [115] J., Abbod, M AI-Sharhan and S Al-Enezi, "Artificial Immune Systems Models, Algorithms and Applications," International Journal of Research and Reviews in Applied Sciences, vol 3, no 2, pp 118–131., 2010 [116] C J Rijsbergen, Information Retrieval USA: Butterworths , 1979 [117] J.-Y Marion, and D Reynaud-Plantey and G Bonfante, "A computability perspective on self-modifying programs," in 7th IEEE International Conference on Software Engineering and Formal Methods ( SEFM 2009), Ha Noi, Vietnam, 2009, pp 27-38 [118] C Linn and S Debray, "Obfuscation of executable code to improve resistance to static disassembly," in Proceedings of the 10th ACM conference on Computer and communications security (ACM 2003), USA, 2003, pp 290–299 [119] E Eskin, E Zadok, S J Stolfo and M G Schultz, "Data mining methods for detection of new malicious executables," in Proceedings of IEEE Symposium on Security and Privacy, Oakland, CA, USA, 210-229, p 2001 [120] K Wang, W J Li and S J Stolfo, "Towards Stealthy Malware Detection," Advances in Information Security, vol 27, no 1, pp s 231–249, January 2007 [121] S Schwoon, S Jha, D Melski and T Reps, "Weighted pushdown systems and their application to interprocedural dataflow analysis," Science Computer Programming, vol 58, no 1-2, pp 206-263, November 2005 [122] S Sankaranarayanan, H Sipma and M Colón, "Linear Invariant Generation Using Non–linear Constraint Solving," in Proceedings of the 15th International Conference on Computer Aided Verification (CAV 2003) LNCS 2725, Springer– Verlag., Milan, Italy, 2003, pp 420–433 154 [123] S Sabjarabaratababm, G B Suonam and Z Manna, "Non-linear loop invariant generation using Grobner Bases," in ACM Princeples of Programming Languages (POPL 2004), Tokyo, Japan, 2004, pp 318-329 [124] L Yu and D Deng, "Deep Learning: Methods and Applications," Foundations and Trends in Signal Processing., vol 7, no 3-4, pp 199-200, October 2014 [125] X., Jiang, W Luo and Z Wang, "Combination of convolutional and recurrent neural network for sentiment analysis of short texts," in Proceedings of the Conference 26th International Conference on Computational Linguistics ( COLING 2016), Osaka, Japan, 2016, pp 2428 2437 155 ... BÁCH KHOA NGUYỄN MINH HẢI KẾT HỢP PHÂN TÍCH TĨNH VÀ KIỂM TRA ĐỘNG TRONG VIỆC XÂY DỰNG ĐỒ THỊ LUỒNG ĐIỀU KHIỂN PHỤC VỤ PHÂN TÍCH MÃ NHỊ PHÂN Chuyên ngành: KHOA HỌC MÁY TÍNH Mã số chuyên ngành: 62.48.01.01... Theo kết nghiên cứu, luận án xây dựng thành công phương pháp kết hợp kỹ thuật phân tích tĩnh kiểm tra động toán xây dựng đồ thị luồng điều khiển từ mã nhị phân Việc kết hợp giải thách thức phân tích. .. tích mã nhị phân, mà cụ thể toán xây dựng đồ thị luồng điều khiển 1.3 Câu hỏi nghiên cứu Luận án vận dụng kết hợp phương pháp phân tích tĩnh kiểm tra động để giải toán xây dựng đồ thị luồng điều