Nâng cao hiệu quả phát hiện mã độc sử dụng các kỹ thuật học máy Nâng cao hiệu quả phát hiện mã độc sử dụng các kỹ thuật học máy Nâng cao hiệu quả phát hiện mã độc sử dụng các kỹ thuật học máy luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ PHẠM LÊ MINH NÂNG CAO HIỆU QUẢ PHÁT HIỆN MÃ ĐỘC SỬ DỤNG CÁC KỸ THUẬT HỌC MÁY LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN Hà Nội – 2019 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ PHẠM LÊ MINH NÂNG CAO HIỆU QUẢ PHÁT HIỆN MÃ ĐỘC SỬ DỤNG CÁC KỸ THUẬT HỌC MÁY Chun ngành: An tồn thơng tin Mã số: 8480202.01 LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN NGƯỜI HƯỚNG DẪN KHOA HỌC: TS NGUYỄN ĐẠI THỌ Hà Nội – 2019 i LỜI CAM ĐOAN Tôi xin cam đoan luận văn thạc sĩ công nghệ thông tin “Nâng cao hiệu phát mã độc sử dụng kỹ thuật học máy” cơng trình nghiên cứu riêng tơi, khơng chép lại người khác Trong tồn nội dung luận văn, điều trình bày cá nhân tơi tổng hợp từ nhiều nguồn tài liệu Tất nguồn tài liệu tham khảo có xuất xứ rõ ràng hợp pháp Tơi xin hồn tồn chịu trách nhiệm chịu hình thức kỷ luật theo quy định cho lời cam đoan Hà Nội, ngày … tháng 05 năm 2019 Phạm Lê Minh ii LỜI CẢM ƠN Trước tiên xin dành lời cảm ơn chân thành sâu sắc đến thầy giáo, TS Nguyễn Đại Thọ – người hướng dẫn, khuyến khích, bảo hỗ trợ cho điều kiện tốt từ bắt đầu hoàn thành cơng việc Tơi xin dành lời cảm ơn chân thành tới thầy cô giáo khoa Công nghệ thông tin, trường Đại học Công nghệ, ĐHQGHN tận tình đào tạo, cung cấp cho tơi kiến thức vô quý giá tạo điều kiện tốt cho tơi suốt q trình học tập, nghiên cứu trường Đồng thời xin cảm ơn tất người thân u gia đình tơi tồn thể bạn bè người ln giúp đỡ, động viên tơi vấp phải khó khăn, bế tắc Cuối cùng, xin chân thành cảm ơn đồng nghiệp Tổng Công ty Viễn thơng Viettel – Tập đồn Cơng nghiệp Viễn thơng Qn đội giúp đỡ, tạo điều kiện thuận lợi cho tơi học tập nghiên cứu chương trình thạc sĩ Đại học Công nghệ, ĐH QGHN iii MỤC LỤC LỜI CAM ĐOAN i LỜI CẢM ƠN ii DANH MỤC HÌNH v TÓM TẮT vi MỞ ĐẦU CHƯƠNG 1: TỔNG QUAN VỀ MÃ ĐỘC 1.1 Giới thiệu mã độc 1.2 Phân loại mã độc 1.2.1 Virus [5] 1.2.2 Worm [5] 1.2.3 Ransomware 1.2.4 Trojan 10 1.2.5 Backdoor [6] 10 1.2.6 Rootkits 11 1.3 Mục đích phân tích mã độc 12 1.4 Phương pháp phân tích mã độc 12 1.5 Trích xuất đặc trưng loại đặc trưng 14 1.5.1 Trích xuất đặc trưng 14 1.5.2 Các loại đặc trưng 15 CHƯƠNG 2: TỔNG QUAN VỀ HỌC MÁY 17 2.1 Giới thiệu học máy 17 2.2 Phân loại thuật toán học máy [2] 19 2.3 Thuật toán One-class SVM 20 2.3.1 Giới thiệu thuật toán One-class SVM 20 2.3.2 Giới thiệu thuật toán SVM 21 2.3.3 Thuật toán One-class SVM theo tác giả Schưlkopf 25 iv 2.3.4 Thuật tốn One-class SVM theo tác giả Tax Duin 26 2.4 Đánh giá hiệu thuật toán 26 CHƯƠNG 3: PHƯƠNG PHÁP ÁP DỤNG HỌC MÁY VÀO PHÂN TÍCH MÃ ĐỘC 30 3.1 Mơ hình đề xuất thực gồm bước sau: 30 3.2 Thu thập tiền xử lý xử liệu liệu 31 3.2.1 Thu thập liệu gói tin mạng 31 3.2.2 Trích chọn đặc trưng header gói tin 32 3.2.3 Trích chọn đặc trưng từ payload gói tin 33 3.3 Lựa chọn đặc trưng 34 3.3.1 Lựa chọn đặc trưng từ header 34 3.3.2 Lựa chọn đặc trưng từ payload 35 3.4 Xây dựng mơ hình học máy 36 3.5 Thực nghiệm đánh giá kết 36 3.5.1 Dữ liệu thực nghiệm 36 3.5.2 Chương trình thực nghiệm 36 3.5.3 Đánh giá hiệu thuật toán 37 3.5.4 Kết thực nghiệm 37 KẾT LUẬN 39 TÀI LIỆU THAM KHẢO 41 v DANH MỤC HÌNH Hình 2.1: quy trình học máy 17 Hình 2.2: phân tích tốn SVM 23 Hình 2.3: điểm gần mặt phân cách hai class khoanh trịn 24 Hình 3.1: mơ hình phân tích mã độc 30 Hình 3.2: thơng tin gói tin http 31 Hình 3.3: thơng tin header giao thức http 32 Hình 3.4: thơng tin payload gói tin http 32 Hình 3.5: trích xuất đặc trưng từ header 32 Hình 3.6: nội dung payload trích xuất từ file pcap 33 Hình 3.7: mơ tả biểu diễn byte theo n-gram 33 Hình 3.8: payload trích xuất theo phương pháp 2-gram 34 vi TÓM TẮT Phần mềm độc hại (mã độc) mối đe dọa bảo mật gây thiệt hại lớn Internet Việc phát xác phần mềm độc hại khó khăn nhiều thử thách mã độc ngày tinh vi việc che dấu thân kỹ thuật mã hóa nội dung (payload) ngụy trang (obfucation) Ngoài ra, nhiều loại phần mềm độc hại phát triển nhanh chóng với nhiều thể loại tiếp tục cản trở việc phát mã độc Trong học máy, lựa chọn đặc trưng trích xuất đặc trưng thành phần quan trọng ảnh hưởng đến kết xây dựng mơ hình học máy Trong luận văn tập trung vào hai cách trích xuất đặc trưng gói tin mạng từ tiêu đề (header) từ nội dung (payload), sau đánh giá hiệu 02 phương pháp trích chọn đặc trưng mạng với thuật tốn học máy áp dụng one-class SVM để phát hiện, phân loại mã độc Kết thưc nghiệm với độ đo F1, Precision, Recall để đánh giá hiệu thuật tốn cho thấy phương pháp trích xuất từ header có độ xác cao so với phương pháp trích xuất từ payload, cụ thể: phương pháp trích xuất từ header có kết với độ đo Precision, Recall, F1 95,93%, 95,83%, 95,84% so với phương pháp trích xuất từ payload cho kết là 87,78%, 71,16%, 78,60% tập liệu huấn luyện kết 95,91%, 95,73%, 95,82% so với kết 85,58%, 69,82%, 76,91% tập liệu kiểm thử Điều cho thấy phát mã độc gói tin mạng cách hiệu cách xem xét thông tin tiêu đề, không cần tiêu tốn thời gian vào qt phân tích nội dung gói tin MỞ ĐẦU Ngày với phát triển mạnh mẽ công nghệ thông tin phát triển Internet toàn cầu nguy an tồn thơng tin trở nên nguy hiểm khó lường hơn, mã độc hại (malware) mối hiểm họa nghiêm trọng Internet Mã độc ngày tiến hóa với biến thể đa dạng từ virus máy tính, worm, botnet…với hình thức xâm nhập, che dấu ngày tinh vi Số lượng hình thái đa dạng mã độc ngày tăng, phần mềm phòng chống mã độc phát hiện, ngăn chặn hết dẫn đến hàng triệu máy tính bị nhiễm mã độc Ở Việt Nam, theo số liệu thống kê BKAV năm 2017 có đến 15 triệu máy tính Việt Nam bị nhiễm mã độc tương ứng thiệt hại khoảng 12.300 tỷ đồng Ngoài ra, ngày để phát triển mã độc không yêu cầu nhiều kỹ cao tính sẵn có cơng cụ cơng internet Tính sẵn sàng cao kỹ thuật chống phát khả mua phần mềm độc hại thị trường chợ đen dẫn đến hội trở thành kẻ công cho ai, không phụ thuộc vào cấp độ kỹ trình độ chun mơn Do đó, bảo vệ hệ thống máy tính khỏi phần mềm độc hại Intenet nhiệm vụ quan trọng an ninh mạng cho người dùng, doanh nghiệp Một cơng đơn lẻ dẫn đến liệu bị xâm phạm gây hậu to lớn Sự mát lớn công thường xuyên đặt yêu cầu cần thiết phải có phương pháp phát xác kịp thời Các kỹ thuật phân tích tĩnh phân tích động thường dựa vào sở liệu xây dựng trước nên có số hạn chế khó có khả phát mã độc mới, lỗ hổng chưa công bố (zero-day) hay biến thể mã độc biết Hơn nữa, ngày số lượng mã độc ngày tăng cao dẫn đến số lương mẫu ngày nhiểu đòi hỏi phải có phương pháp phù hợp để phát mã độc Do hướng nghiên cứu dựa vào mơ hình học máy để phát phân loại mã độc tỏ phương pháp tìm hiệu số lượng mẫu mã độc lớn biến thể mã độc ngày đa dạng Tuy nhiên vấn đề quan tâm làm để xây dựng mơ hình học máy hiệu mang lại kết xác cao Trong có yếu tố quan trọng ảnh hưởng đến mơ hình hiệu qủa thuật toán học máy lựa chọn đặc trưng phương pháp trích chọn đặc trưng phù hợp Trong phần nghiên cứu luận văn lựa chọn đặc trưng mạng đặc trưng mạng nâng cao khả phát lỗ hổng chưa biết (zeroday) khắc phục hạn chế hiệu học máy việc lựa chon đặc trưng khác đặc trưng byte sequence, strings, API, opcode, system call sử dụng làm đầu vào cho thuật toán học máy thường cho kết không tốt mã độc mã hóa, ngụy trang (obfucated), biến thể mã độc Đồng thời, chúng tơi trình bày 02 phương pháp trích chọn đặc trưng gói tin mạng gồm phương pháp trích chọn đặc trưng từ tiêu đề (header) gói tin mạng phương pháp trích chọn đặc trưng từ tải (payload) gói tin mạng dựa phương án 2-gram Sau liệu đặc trưng trích chọn đặc trưng phù hợp làm đầu vào cho thuật toán học máy, luận văn lựa chọn thuật toán one-class SVM thuật toán one-class SVM thuật toán phân loại phổ biến có khả phát mã độc biết, mã độc (zero-day), biến thể mã độc phân loại mã độc Kết luận văn thực nghiệm dựa liệu mẫu Android Malware dataset (CICAndMal2017) gồm 212788 mẫu, có 168186 mẫu 44202 mẫu mã độc thuộc họ Ransomware gồm loại Charger, Jisut, Wannalocker Kết thực nghiệm với độ đo F1, Precision, Recall để đánh giá hiệu thuật tốn cho thấy phương pháp trích xuất từ header có độ xác cao so với phương pháp trích xuất từ payload, cụ thể: phương pháp trích xuất từ header có kết với độ đo Precision, Recall, F1 95,93%, 28 O F1: tiêu chí đánh giá 𝐹1 kết hợp tiêu chí đánh giá Precision Recall: 𝐹1 = 2.𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛.𝑅𝑒𝑐𝑎𝑙𝑙 𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛+𝑅𝑒𝑐𝑎𝑙𝑙 = 1 + 𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 𝑅𝑒𝑐𝑎𝑙𝑙 𝑭𝟏 trung bình điều hịa tiêu chí Precision Recall 𝑭𝟏 có xu hướng lấy giá trị gần với giá trị nhỏ giá trị Precision Recall 𝑭𝟏 có giá trị lớn giá trị Precision Recall lớn 2.4.2 Phương pháp Hold-out Toàn tập mẫu D chia thành tập không giao nhau, tập huấn luyện D_train để huấn luyện mơ hình, tập kiểm thử D_test để đánh giá hiệu mơ hình học D = D_train ᴗ D_test thường |D_train| >> |D_test| Các yêu cầu đặt phương pháp Hold-out sau: Bất kỳ mẫu thuộc vào tập kiểm thử D_test không sử dụng vào q trình huấn luyện mơ hình Bất kỳ mẫu sử dụng trình huấn luyện hệ thống D_train không sử dụng vào đánh giá mơ hình Các mẫu kiểm thử tập D_test cho phép đánh giá cách khách quan hiệu mơ hình Các tỷ lệ thường gặp phân chia liệu để huấn luyện kiểm thử mơ hình là: ||D_train| = (2/3) |D_test| = (1/3) 2.4.3 Lấy mẫu phân tầng (Stratified sample) Đối với tập mẫu có kích thước nhỏ khơng cân xứng, tập mẫu tập huấn luyện kiểm thử khơng phải đại diện Ví dụ, có khơng có mẫu số lớp mục đích phân bố lớp tập huấn luyện tập kiểm thử phải xấp xỉ toàn mẫu tập D Lấy mẫu phân tầng phương pháp để cân xứng phân bố phân lớp đảm bảo tỷ lệ phân bố lớp tập huấn luyện kiểm thử phải xấp xỉ Phương pháp lấy mẫu phân tầng không áp dụng 29 cho toán học máy dự đoán/hồi quy đầu mơ hình giá trị số, khơng phải nhãn lớp 2.4.4 Kiểm tra chéo (Cross-validation) Để tránh việc trùng lặp tập kiểm thử số mẫu xuất mẫu kiểm thử khác ta sử dụng số phương pháp sau: Kiểm tra chéo k-fold (k-fold cross-validation): toàn mẫu D chia thành k tập không giao (gọi “fold”) có kích thước xấp xỉ Mỗi lần số k lần lặp, tập sử dụng làm tập kiểm thử k-1 tập lại sử dụng làm tập huấn luyện K giá trị lỗi (mỗi giá trị tương ứng với fold) tính trung bình cộng để thu giá trị tổng thể Các tùy chọn thông thường k 10 5, tập (fold) lấy mẫu xấp xỉ phân bố lớp trước áp dụng trình đánh giá kiểm tra chéo phương pháp phù hợp mẫu D vừa nhỏ 30 CHƯƠNG 3: PHƯƠNG PHÁP ÁP DỤNG HỌC MÁY VÀO PHÂN TÍCH MÃ ĐỘC Chương tập trung đề cập đến việc lựa chọn phương pháp trích xuất đặc trưng từ tiêu đề (header) từ tải (payload) gói tin mạng sở áp dụng thuật tốn học máy có giám sát Oneclass SVM vào việc phát phân loại mã độc 3.1 Mơ hình đề xuất thực gồm bước sau: Hình 3.1: mơ hình phân tích mã độc o Bước 1: Thu thập (capture) liệu mạng chứa gói tin độc hại ta thu file pcap o Bước 2: Xử lý file pcap để lấy nội dung text từ header từ payload o Bước 3: Trích chọn đặc trưng: Từ header: lấy thông tin địa ip, giao thức, thời gian, độ dài gói tin tương tự báo [14-15] Từ payload: sử dụng phương pháp n-gram [4] để biểu diễn ký tự từ payload tính tần suất xuất Trong phạm vi nghiên cứu tơi sử dụng kích thước 2-gram 31 o Bước 4: Sau thu đặc trưng bước 3, thực lựa chọn đặc trưng phù hợp từ header giảm số lượng đặc trưng từ payload o Bước 5: Từ đặc trưng lựa chọn bước đưa chúng vào xây dựng mơ hình học máy, phần tơi sử dụng thuật tốn Oneclass SVM theo phương pháp tác giả Schưlkopf o Bước 6: Sau hồn thành xây dựng mơ hình đưa liệu thực nghiệm vào để đánh giá kết 3.2 Thu thập tiền xử lý xử liệu liệu 3.2.1 Thu thập liệu gói tin mạng Trong phạm vi nghiên cứu không thực thu thập (capture) thơng tin gói tin mạng cơng cụ tcpdump, STA , IDS/IPS … mà sử dụng liệu nguồn thu thập tệp tin pcap từ sở liệu CICDS2017 [12] Ví dụ, nội dung thông tin file pcap xem công cụ wireshark sau: Hình 3.2: thơng tin gói tin http Ví dụ thơng tin header giao thức http sau: 32 Hình 3.3: thơng tin header giao thức http Ví dụ thơng tin payload loại cơng shell-code http sau: Hình 3.4: thơng tin payload gói tin http 3.2.2 Trích chọn đặc trưng header gói tin Với đầu vào file pcap trích xuất đặc trưng header giống báo [14-15] gồm: địa IP nguồn, địa IP đích, cổng nguồn, cổng đích, giao thức, độ dài gói tin (length), thời gian…Kết đầu việc trích xuất đặc trưng header thu danh sách file csv chứa thơng tin trên, ví dụ nội dụng file csv sau: Hình 3.5: trích xuất đặc trưng từ header 33 3.2.3 Trích chọn đặc trưng từ payload gói tin Từ file pcap thu được, tơi lập trình để trích xuất payload gói tin tương tự báo [4], phạm vi nghiên cứu tơi trích xuất payload gói tin theo giao thức http Thông tin nội dung file payload sau lập trình để trích xuất nội dung file text có dạng sau: Hình 3.6: nội dung payload trích xuất từ file pcap Từ nội dung payload trích xuất tơi lập trình để chuyển đổi nội dung payload theo phương pháp 2-gram tính tần suất xuất 2-gram để thu tập hợp vector Vector gồm có hàng chứa thông tin 2-gram cột chứa giá trị tần suất xuất 2-gram Thống tin 2-gram cách tính tần số xuất sau: 3.2.3.1 Khái niệm n-gram Một n-gram dãy byte liền có độ dài n Ví dụ dãy byte liền payload trích xuất “AB C0 EF 12” dãy n-gram byte thu là: Hình 3.7: mơ tả biểu diễn byte theo n-gram Có thể thấy với độ dài n cao kích thước đặc trưng lớn Đối với byte có bit khơng gian đặc trưng 1-gram 28 = 256 2-gram 28 Trong phạm vi luận văn tơi tập trung vào 2-gram 34 3.2.3.2 Tính tần số xuất Sau thu 2-gram, tơi thực tính tần số xuất 2-gram khác liệu mẫu Các kết lưu vào vector đặc trưng trước đưa vào mơ hình học để chọn đặc trưng tốt Cơng thức để tính tần số xuất hiên (turm frequency -TF) sau: TF(T,D) = 𝐅(𝐓,𝐃) ⅀{𝑭(𝑾,𝑫):𝑾 𝝐 𝑫} Tần số xuất mã 2-gram byte tập mẫu (file payload trích xuất đưa dạng text) tính thương số lần xuất 2-gram byte tập mẫu số lần xuất nhiều 2-gram byte tập mẫu 𝐅(𝐓, 𝐃): số lần xuất 2-gram byte T tập mẫu D ⅀{𝑭(𝑾, 𝑫): 𝑾 𝝐 𝑫} : tổng số lần xuất 2-gram tập mẫu Kết sau lập trình tính tần suất xuất 2-gram byte tơi thu vector đặc trưng có dạng sau: Hình 3.8: payload trích xuất theo phương pháp 2-gram 3.3 Lựa chọn đặc trưng 3.3.1 Lựa chọn đặc trưng từ header Do số lượng đặc trưng từ header nên tơi lựa chọn đặc trưng điển hình giống báo [14-15] gồm: thơng tin dung lượng gói tin gửi, dung lượng gói tin nhận, giao thức, thời gian loại mã độc 35 3.3.2 Lựa chọn đặc trưng từ payload Theo báo số [4] học máy nhận thấy số lượng đặc trưng lớn gặp khó khăn việc xử lý chất lượng mơ hình Các véc tơ đặc trưng phương pháp có số chiều lớn lên đến gần hai triệu chiều, tương ứng với số điểm liệu lớn thực lưu trữ tính tốn trực tiếp liệu có số chiều lớn gặp khó khăn việc lưu trữ, tài nguyên tốc độ tính tốn Do giảm số chiều liệu bước quan trọng nhiều toán học máy, phần bên giới thiệu khái niệm giảm số chiều lựa chọn đặc trưng Giảm số chiều (demension reduction) việc tìm hàm số, hàm số lấy đầu vào điểm liệu ban đầu điểm liệu với D lớn tạo có số chiều K < D Có số thuật tốn thực giảm chiều liệu thuật tốn phân tích thành phần (PCA), phân tích phân biệt tuyến tính (LDA) phạm vi luận văn chọn thuật toán PCA Cách đơn giản để giảm chiều liệu từ D K