intTypePromotion=1
ADSENSE

Sử dụng kỹ thuật khai phá dữ liệu phần mềm độc hại từ mã lệnh

Chia sẻ: Thi Thi | Ngày: | Loại File: PDF | Số trang:6

27
lượt xem
0
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Trong bài báo này, phân tích các kỹ thuật khai phá dữ liệu mà chúng tôi đã áp dụng thành công cho an ninh mạng. Nghiên cứu này tập trung vào việc sử dụng các phương pháp khai phá dữ liệu để phát hiện phần mềm độc hại (các chương trình độc hại) và đề xuất một giải pháp nhằm thay thế cho các phương pháp phát hiện dựa trên chữ ký truyền thống. Các ứng dụng này bao gồm phát hiện mã độc hại bằng cách khai thác các mã nhị phân dựa trên phát hiện sự bất thường, và khai thác luồng dữ liệu.

Chủ đề:
Lưu

Nội dung Text: Sử dụng kỹ thuật khai phá dữ liệu phần mềm độc hại từ mã lệnh

Nghiên cứu khoa học công nghệ<br /> <br /> <br /> Sö dông kü thuËt khai ph¸ d÷ liÖu<br /> phÇn mÒm ®éc h¹i tõ m· lÖnh<br /> HOÀNG SỸ TƯƠNG*, TRẦN THỊ LAN ANH**<br /> Tóm tắt: Trong bài báo này, chúng tôi phân tích các kỹ thuật khai phá dữ liệu<br /> mà chúng tôi đã áp dụng thành công cho an ninh mạng. Nghiên cứu này tập<br /> trung vào việc sử dụng các phương pháp khai phá dữ liệu để phát hiện phần mềm<br /> độc hại (các chương trình độc hại) và đề xuất một giải pháp nhằm thay thế cho<br /> các phương pháp phát hiện dựa trên chữ ký truyền thống. Các ứng dụng này bao<br /> gồm phát hiện mã độc hại bằng cách khai thác các mã nhị phân dựa trên phát<br /> hiện sự bất thường, và khai thác luồng dữ liệu. So sánh với phương pháp phát<br /> hiện mã độc dựa trên chữ ký truyền thống, phương pháp đề xuất của chúng tôi có<br /> tốc độ phát hiện mã độc nhanh gấp đôi.<br /> Từ khóa: Khai phá dữ liệu, Phát hiện mã độc, Phân tích tĩnh, Phát hiện tuần tự, Đặc trưng dữ liệu,<br /> Phòng chống virus.<br /> <br /> 1. GIỚI THIỆU<br /> Phát hiện virus máy tính đã phát triển thành chương trình phát hiện mã độc hại<br /> từ khi Cohen đưa ra thuật ngữ virus máy tính lần đầu tiên vào năm 1983 [3]. Các<br /> chương trình độc hại có thể được phân loại thành các loại phần mềm độc hại như<br /> sau: virus, worm, trojan, spyware, adware và các lớp con mã độc hại khác [4]. Một<br /> trong những vấn đề chính mà cộng đồng những người nghiên cứu về virus phải đối<br /> mặt đó là tìm ra được các phương pháp phát hiện các chương trình độc hại mới các<br /> mã độc chưa được phân tích [1]. Công nghệ quét virus hiện nay có hai phần: một<br /> là bộ phát hiện dựa trên chữ ký và hai là bộ phân loại phỏng đoán (heuristic) có<br /> thể phát hiện được các virus mới [2]. Khai phá dữ liệu đề cập đến việc trích rút<br /> hoặc 'khai phá' các tri thức cần thiết từ một lượng lớn dữ liệu [5]. Nó cung cấp một<br /> cách thức trích rút thông tin được dự đoán và chưa biết trước đó dựa trên dữ liệu có<br /> thể truy cập được trong các kho dữ liệu.<br /> Các phương pháp khai phá dữ liệu phát hiện các mẫu trong kho dữ liệu. Sử<br /> dụng các phương pháp khai phá dữ liệu, mục tiêu của chúng tôi là thiết kế ra<br /> một giải pháp phát hiện mã độc một cách tự động, chẳng hạn như mã byte và<br /> sử dụng các mẫu đó để phát hiện các tấn công trong tương lai từ những dữ liệu<br /> tương tự nhau.<br /> <br /> 2. CÁC NGHIÊN CỨU LIÊN QUAN<br /> Trong những năm gần đây, các nhà nghiên cứu mã độc đã tập trung vào kỹ thuật<br /> khai phá dữ liệu để phát hiện các mã độc chưa biết. Khai phá dữ liệu là một quá<br /> trình phân tích dữ liệu được lưu trữ điện tử bằng cách tìm kiếm tự động các mẫu<br /> [7]. Các thuật toán đã được sử dụng rộng rãi cho các bài toán khai phá dữ liệu khác<br /> nhau để phát hiện các mẫu và tìm ra các mối tương quan giữa các thể hiện dữ liệu<br /> và các thuộc tính. Nhiều nhà nghiên cứu đã sử dụng các n-gram hoặc các cuộc gọi<br /> API vì kiểu đặc trưng chính của chúng được dùng để biểu diễn các thể hiện của mã<br /> độc trong một định dạng phù hợp nhằm mục đích khai phá dữ liệu. Chúng phân<br /> tích các chuỗi byte được trích rút từ bộ trích xuất mã hexa (hexdump) của mã thực<br /> <br /> <br /> Tạp chí Nghiên cứu KH&CN quân sự, Số 34, 12 - 2014 81<br /> Kỹ thuật điện tử & Khoa học máy tính<br /> <br /> thi. Tập dữ liệu được xét gồm 4.266 tệp, trong đó 3.265 tệp là mã độc và 1.001 tệp<br /> là các chương trình hợp pháp hoặc tệp an toàn. Một thuật toán quy nạp có quy tắc<br /> được gọi là Ripper [9] đã được áp dụng để tìm ra các mẫu trong dữ liệu DLL. Một<br /> thuật toán học máy của Naive Bayes (NB) dựa trên các thống kê Bayes, đã được<br /> dùng để tìm ra các mẫu với dữ liệu chuỗi và các n-gram gồm các chuỗi byte là dữ<br /> liệu đầu vào của thuật toán này. Một tập dữ liệu được phân hoạch thành hai tập dữ<br /> liệu gồm: một tập dữ liệu kiểm tra và một tập dữ liệu học. Điều này cho phép hiệu<br /> năng kiểm tra trên dữ liệu phụ thuộc vào dữ liệu được dùng để sinh ra các lớp phân<br /> loại. Thuật toán Naive Bayes sử dụng các chuỗi như là dữ liệu đầu vào và mang lại<br /> hiệu năng phân loại cao nhất với độ chính xác khoảng 97,11%. Đặc biệt, việc phát<br /> hiện ra mã độc mới với tốc độ nhanh gấp hai lần so với thuật toán dựa trên chữ ký.<br /> <br /> 3. GIẢI PHÁP NGHIÊN CỨU<br /> Như đã đề cập trong phần giới thiệu, tập trung chính của chúng tôi là nằm ở chỗ<br /> xử lý tự động thông tin thu lượm được từ các phân tích mã độc động. Hai kỹ thuật<br /> phân tích hành vi sử dụng việc phân cụm các báo cáo hành vi được đề cập đến gần<br /> đây [6, 7]. Khó khăn lớn nhất của các phương pháp phân cụm xuất phát từ tính<br /> chất không được giám sát của chúng, do sự thiếu hụt các thông tin bổ sung cần<br /> thiết cho quá trình phân tích dữ liệu. Ở đây chúng tôi đề cập đến một số bài toán<br /> thực tế theo hướng dựa trên phương pháp phân cụm.<br /> Quá trình khai phá dữ liệu bao gồm 5 bước: Phát biểu và mô hình hóa bài toán,<br /> thu thập dữ liệu, tiền xử lý dữ liệu, ước lượng mô hình, giải thích mô hình.<br /> Trong bài báo này chúng tôi giới thiệu một phương pháp phát hiện virus dựa<br /> trên việc phân tích dữ liệu. Để làm được như vậy chúng tôi sử dụng tập dữ liệu tệp<br /> nhiễm virus và một số virus tạo ra từ bộ công cụ tạo virus vcl32. Trước hết chúng<br /> tôi rút 2000 tập tin trong bộ dữ liệu tệp virus và bộ sinh vcl32. Sau đó, sử dụng<br /> Idpro để hợp ngữ hóa tất cả các tệp virus và tạo ra các tập tin ASM từ chúng.<br /> Trong quá trình hợp ngữ hóa, các lệnh hợp ngữ được tổ chức thành các khối cơ sở.<br /> Chúng tôi thu được các khối lệnh hợp ngữ từ quá trình này. Quá trình giải hợp ngữ<br /> sẽ tạo ra một nhãn cho mỗi khối cơ sở một cách tự động. Chúng tôi coi khối cơ bản<br /> nắm bắt được cấu trúc của trình tự lệnh và chúng tôi xử lý các lệnh nhằm tạo thành<br /> khối cơ bản. Mã đó gọi là mã " hợp ngữ logic" [5]. Mỗi lệnh hợp ngữ bao gồm<br /> opcode và các toán hạng. Chúng tôi chỉ sử dụng các opcode và bỏ qua các toán<br /> hạng và tiền tố vì các opcode đủ để nói lên hành vi của chương trình. Các mã hợp<br /> ngữ kết quả được gọi là "hợp ngữ trừu tượng" [5]. Hợp ngữ trừu tượng cuối cùng<br /> có dạng như dưới đây:<br /> <br /> <br /> <br /> <br /> Hình 1. Ví dụ về mã hợp ngữ trừu tượng.<br /> 3.1. Các bước cần thực hiện<br /> <br /> <br /> <br /> 82 H.S.Tương, T.T.L.Anh, “Sử dụng kỹ thuật khai phá dữ liệu … từ mã lệnh.”<br /> Nghiên cứu khoa học công nghệ<br /> <br /> Tạo tập dữ liệu virus, phân rã các tệp virus sử dụng bất kỳ một trình giải hợp<br /> ngữ nào, sinh ra các mã hợp ngữ trừu tượng từ các opcode, chọn các đặc trưng.<br /> <br /> <br /> <br /> <br /> Hình 2. Các bước thực hiện.<br /> 3.2.Tạo tập dữ liệu virus<br /> Để phục vụ mục đích chúng tôi nêu ra ở đây, chúng tôi sẽ sinh ra một tập dữ<br /> liệu virus có chứa 200 và 500 tệp.<br /> 3.3. Phân rã tệp virus sử dụng một trình giải hợp ngữ<br /> Chúng tôi chuyển đổi định nghĩa virus bằng cách sử dụng trình giải hợp ngữ<br /> hóa để chuyển nó thành định dạng không có khả năng thực thi.<br /> Theo đó trình giải hợp nhữ sẽ dịch các mã virus thành dạng không có khả năng<br /> thực thi.<br /> 3.4. Sinh ra các mã hợp ngữ trừu tượng từ opcode<br /> Chúng tôi sinh ra các opcode để biên dịch virus thành các mã hợp ngữ trừu<br /> tượng phục vụ mục đích của chúng tôi.<br /> 3.5.Chọn đặc trưng<br /> Các đặc trưng được sử dụng cho việc phân loại ở đây là các tổ hợp lệnh. Để<br /> chọn các tổ hợp lệnh phù hợp, chúng tôi sử dụng hai rằng buộc sau:<br /> Các tổ hợp lệnh thường là các tổ hợp xuất hiện thường xuyên trong tập dữ liệu.<br /> Nếu tổ hợp lệnh xuất hiện rất ít, chúng tôi sẽ coi nó là các tổ hợp lệnh nhiễu và<br /> không sử dụng làm đặc trưng.<br /> Tổ hợp lệnh cần phải đặc trưng cho mã độc.<br /> Chúng tôi sử dụng một biến thể của thuật toán Apriori để sinh ra tất các ba kiểu<br /> tổ hợp lệnh tần suất cao từ các mã hợp ngữ trừu tượng. Một tham số của thuật toán<br /> Apriori là “độ hỗ trợ tối thiểu”. Đó là tần suất xuất hiện tối thiểu của các dãy tổ<br /> hợp trong toàn bộ dữ liệu.<br /> Sau đó chọn L đặc trưng đầu tiên làm tập đặc trưng của chúng tôi. Để tính toàn<br /> trong tập dữ liệu, ta đếm số lượng các khối cơ sở chứa các đặc trưng, chuẩn khóa<br /> nó với số lượng các khối cơ sở. Chúng tôi thực hiện việc này với mọi thực thi trong<br /> <br /> <br /> <br /> <br /> Tạp chí Nghiên cứu KH&CN quân sự, Số 34, 12 - 2014 83<br /> Kỹ thuật điện tử & Khoa học máy tính<br /> <br /> tập dữ liệu của chúng tôi, và cuối cùng, chúng tôi sinh các đầu vào cần thiết cho<br /> việc phân loại của chúng tôi như Navie Bayes, Ripper.<br /> Cấu trúc cơ bản bao gồm các bước dưới đây<br /> Bước 1: Phân rã tất cả các tệp và sinh ra các mã hợp ngữ trừu tượng<br /> Bước 2: Tìm các tần suất của mỗi tổ hợp lệnh (IA) tùy theo kiểu 1 và kiểu 2<br /> Bước 3: Sắp xếp các dãy lệnh này theo tần suất và chọn 10 tổ hợp lệnh đầu<br /> tiên có độ dài k.<br /> Bước 4: Đánh số thứ tự của các tệp (cả tệp virus và tệp lành tính) và tính tần<br /> suất của mỗi IA tại mức khối.<br /> Bước 5. Tạo bảng các IA và tần suất của các IA được chọn từ các tệp.<br /> Bước 6. Lặp lại bước 4 và bước 5 cho kiểu 1 và 2 và độ dài 2,3 IA<br /> 3.6. Thuật toán<br /> Tìm các tập phổ biến: Các tập của các thành phần thỏa mãn độ tin cậy tối thiểu.<br /> Đầu vào: Tập các tệp virus (V)<br /> Đầu ra: Tập các lệnh phổ biến nhất (L)<br /> Thực hiện các bước sau để sinh ra L bộ lệnh phổ biến.<br /> 1. For (mỗi tệp virus Vi in V) do<br /> 2. For (mỗi khối cơ sở Bij inVi ) do<br /> 3. Ghi nhận tất cả các tần suất xuất hiện của sl được thấy trong Bij<br /> 4. Tăng biến đếm của tất cả các lệnh phổ biến.<br /> 5. End For<br /> 6. End For<br /> 7. Chọn L tổ hợp lệnh phổ biến nhất.<br /> Các công cụ chúng tôi sử dụng ở đây bao gồm:<br /> Tập dữ liệu virus:<br /> (i) 200 tệp từ tập dữ liệu virus đã biết<br /> (ii) 500 tệp từ bộ sinh vcl32<br /> IDA Pro: Công cụ giải hợp ngữ để sinh ra các tệp ASM từ các tệp mã độc, mã<br /> của virus: Tệp ASM của tệp virus, bộ chọn opcode: chọn các opcode từ tệp asm và<br /> tạo các mã hợp ngữ logic và các mã hợp ngữ trừu tượng, mã hợp ngữ trừu tượng:<br /> Opcode của tất cả các tệp virus theo các khối cơ sở.<br /> <br /> <br /> <br /> <br /> 84 H.S.Tương, T.T.L.Anh, “Sử dụng kỹ thuật khai phá dữ liệu … từ mã lệnh.”<br /> Nghiên cứu khoa học công nghệ<br /> <br /> <br /> <br /> <br /> Hình 3. Tệp dữ liệu virus.<br /> 3. KẾT QUẢ ĐẠT ĐƯỢC<br /> Cài đặt thử nghiệm<br /> Mô hình được huấn luyện bởi bộ phân loại mạng noron. Các kết quả được so<br /> sánh giữa bộ 600 tệp và 350 tệp được huấn luyện bởi mô hình NN. Biểu đồ chỉ ra<br /> kết quả đạt được tốt hơn khi sử dụng mô hình NN được huấn luyện với 600 tệp<br /> hơn là khi sử dụng mô hình NN với 350 tệp. Từ biểu đồ ta suy ra rằng mô hình NN<br /> được huấn luyện bởi nhiều tệp hơn thì cho hiệu quả tốt hơn.<br /> <br /> <br /> <br /> <br /> Hình 4. chỉ dẫn kết hợp lại 1. Hình 5. Chỉ dẫn kết hợp loại 2.<br /> <br /> Mô hình được huấn luyện bởi bộ phân loại SVM. Các kết quả được so sánh giữa<br /> việc sử dụng 600 tệp và 350 tệp để huấn luyện mô hình SVM. Biểu đồ sau chỉ ra<br /> rằng khi chúng tôi thực thi phương pháp tìm kiếm đặc trưng tập trụng vào việc<br /> chọn các đặc trưng có thể áp dụng cho các họ khác nhau của virus. Trong bài kiểm<br /> tra thử nghiệm phương pháp của chúng tôi đạt hiệu năng tốt hơn so với các phương<br /> pháp phát hiện virus cũ hơn. Kết quả của chúng tôi chỉ ra rằng hệ thống sử dụng họ<br /> các dấu hiệu đặc trưng cụ thể thực thi cho kết quả tốt hơn.<br /> <br /> 4. KẾT LUẬN<br /> <br /> <br /> <br /> Tạp chí Nghiên cứu KH&CN quân sự, Số 34, 12 - 2014 85<br /> Kỹ thuật điện tử & Khoa học máy tính<br /> <br /> Bài báo này giới thiệu về việc nghiên cứu mã độc thông qua việc sử dụng kỹ<br /> thuật khai phá dữ liệu. Chúng tôi đã áp dụng hệ thống phân cấp 4 tầng để tổ chức<br /> nghiên cứu và kết hợp kỹ thuật khai phá dữ liệu trong tầng đầu tiên của phương<br /> pháp phát hiện. Nhiệm vụ của chúng tôi là lựa chọn mô hình phân loại tốt nhất,<br /> chúng tôi so sánh phương pháp lựa chọn đặc trưng và phương pháp bộ phân loại và<br /> cung cấp kết quả thực nghiệm. Chúng tôi đề xuất sử dụng phân tích kết hợp lựa<br /> chọn đặc trưng và khai thác chữ ký tự động. Thuật toán mà chúng tôi nghĩ ra có thể<br /> nhận được khoảng thấp hơn 1,9% tỷ lệ dương tính giả và cao hơn 93% độ chính<br /> xác tổng thể với các mã độc mới.<br /> <br /> TÀI LIỆU THAM KHẢO<br /> <br /> [1]. Steve R. White. Các vấn đề mở trong nghiên cứu virus máy tính. Hội thảo<br /> virus 1998.<br /> [2]. Fred Cohen. Virus máy tính. Luận án tiến sỹ , Đại học nam california, 1985.<br /> [3]. Peter Szor. Bức tranh toàn cảnh về virus máy tính và giải pháp phòng chống.<br /> Xuất bản bởi symatic, New Jersey, 2005.<br /> [4]. Khai phá dữ liệu: www.the-data-mine.com<br /> [5]. K.Dnuggets. Khai phá dữ liệu, khai phá dữ liệu trong môi trường web:<br /> www.kdnuggets.com<br /> [6]. I.H. Witten, E. Frank, Khai phá dữ liệu: các công cụ và kỹ thuật học máy, 2nd<br /> ed.Morgan Kaufmann, 2005.<br /> [7]. M. G. Schultz, E. Eskin, E. Z., và S. J. Stolfo, ”các phương pháp khai phá dữ<br /> liệu để phát hiện mã độc mới.”, IEEE Symp, pp. 38-49, 2007.<br /> <br /> ABSTRACT<br /> IMPLEMENTING DATA MINING FOR<br /> DETECTION OF MALWARE FROM CODE<br /> <br /> In this paper we discuss various data mining techniques that we have successfully<br /> applied for cyber security. This research investigates the use of data mining methods<br /> for malware (malicious programs) detection and proposed a framework as an<br /> alternative to the traditional signature detection methods. These applications include<br /> malicious code detection by mining binary executables by anomaly detection, and<br /> data stream mining. The malicious detection rate of this method is more two times<br /> faster than that of traditional one.<br /> <br /> Keywords: Data Mining, Worm Detection, Static analysis, Diassembly,<br /> Insruction sequences, Malware, Antivirus.<br /> Nhận bài ngày 20 tháng 9 năm 2014<br /> Hoàn thiện ngày 02 tháng 12 năm 2014<br /> Chấp nhận đăng ngày 08 tháng 12 năm 2014<br /> <br /> Địa chỉ: * Khoa An toàn thông tin, HVKT Mật mã; Email: tuonghoangsy@gmail.com.<br /> ** Khoa Công nghệ thông tin, ĐH Kinh tế Kỹ thuật công nghiệp;<br /> Email: ttlanh@uneti.edu.vn<br /> <br /> <br /> <br /> 86 H.S.Tương, T.T.L.Anh, “Sử dụng kỹ thuật khai phá dữ liệu … từ mã lệnh.”<br />
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2