Tài liệu Sử dụng kỹ thuật khai phá dữ liệu phần mềm độc hại từ mã lệnh - Hoàng Sỹ Tương: Nghiờn cứu khoa học cụng nghệ
Tạp chớ Nghiờn cứu KH&CN quõn sự, Số 34, 12 - 2014 81
Sử dụng kỹ thuật khai phá dữ liệu
phần mềm độc hại từ mã lệnh
HOÀNG SỸ TƯƠNG*, TRẦN THỊ LAN ANH**
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
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. So sỏnh với phương phỏp phỏt
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ú
tốc độ phỏt hiện mó độc nhanh gấp đụi.
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,
Phũng chống virus.
1. GIỚI THIỆU
...
6 trang |
Chia sẻ: quangot475 | Lượt xem: 527 | Lượt tải: 0
Bạn đang xem nội dung tài liệu Sử dụng kỹ thuật khai phá dữ liệu phần mềm độc hại từ mã lệnh - Hoàng Sỹ Tương, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Nghiên cứu khoa học công nghệ
Tạp chí Nghiên cứu KH&CN quân sự, Số 34, 12 - 2014 81
Sö dông kü thuËt khai ph¸ d÷ liÖu
phÇn mÒm ®éc h¹i tõ m· lÖnh
HOÀNG SỸ TƯƠNG*, TRẦN THỊ LAN ANH**
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
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. So sánh với phương pháp phát
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ó
tốc độ phát hiện mã độc nhanh gấp đôi.
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,
Phòng chống virus.
1. GIỚI THIỆU
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
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
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ư
sau: virus, worm, trojan, spyware, adware và các lớp con mã độc hại khác [4]. Một
trong những vấn đề chính mà cộng đồng những người nghiên cứu về virus phải đối
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
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
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ó
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
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
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ó
thể truy cập được trong các kho dữ liệu.
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ử
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
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à
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
tương tự nhau.
2. CÁC NGHIÊN CỨU LIÊN QUAN
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
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á
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
[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
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
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
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ã
độc trong một định dạng phù hợp nhằm mục đích khai phá dữ liệu. Chúng phân
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
Kỹ thuật điện tử & Khoa học máy tính
H.S.Tương, T.T.L.Anh, “Sử dụng kỹ thuật khai phá dữ liệu từ mã lệnh.” 82
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
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
được gọi là Ripper [9] đã được áp dụng để tìm ra các mẫu trong dữ liệu DLL. Một
thuật toán học máy của Naive Bayes (NB) dựa trên các thống kê Bayes, đã được
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ữ
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ữ
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
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
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
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
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ý.
3. GIẢI PHÁP NGHIÊN CỨU
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ỗ
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
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
đâ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
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
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
thực tế theo hướng dựa trên phương pháp phân cụm.
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,
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.
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
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
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
tôi rút 2000 tập tin trong bộ dữ liệu tệp virus và bộ sinh vcl32. Sau đó, sử dụng
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.
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ở.
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ữ
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
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
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
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
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
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
có dạng như dưới đây:
Hình 1. Ví dụ về mã hợp ngữ trừu tượng.
3.1. Các bước cần thực hiện
Nghiên cứu khoa học công nghệ
Tạp chí Nghiên cứu KH&CN quân sự, Số 34, 12 - 2014 83
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
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.
Hình 2. Các bước thực hiện.
3.2.Tạo tập dữ liệu virus
Để 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ữ
liệu virus có chứa 200 và 500 tệp.
3.3. Phân rã tệp virus sử dụng một trình giải hợp ngữ
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ữ
hóa để chuyển nó thành định dạng không có khả năng thực thi.
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
thực thi.
3.4. Sinh ra các mã hợp ngữ trừu tượng từ opcode
Chúng tôi sinh ra các opcode để biên dịch virus thành các mã hợp ngữ trừu
tượng phục vụ mục đích của chúng tôi.
3.5.Chọn đặc trưng
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. Để
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:
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.
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à
không sử dụng làm đặc trưng.
Tổ hợp lệnh cần phải đặc trưng cho mã độc.
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
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
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ổ
hợp trong toàn bộ dữ liệu.
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
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
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
Kỹ thuật điện tử & Khoa học máy tính
H.S.Tương, T.T.L.Anh, “Sử dụng kỹ thuật khai phá dữ liệu từ mã lệnh.” 84
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
việc phân loại của chúng tôi như Navie Bayes, Ripper.
Cấu trúc cơ bản bao gồm các bước dưới đây
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
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
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
tiên có độ dài k.
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
suất của mỗi IA tại mức khối.
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.
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
3.6. Thuật toán
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.
Đầu vào: Tập các tệp virus (V)
Đầu ra: Tập các lệnh phổ biến nhất (L)
Thực hiện các bước sau để sinh ra L bộ lệnh phổ biến.
1. For (mỗi tệp virus Vi in V) do
2. For (mỗi khối cơ sở Bij inVi ) do
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
4. Tăng biến đếm của tất cả các lệnh phổ biến.
5. End For
6. End For
7. Chọn L tổ hợp lệnh phổ biến nhất.
Các công cụ chúng tôi sử dụng ở đây bao gồm:
Tập dữ liệu virus:
(i) 200 tệp từ tập dữ liệu virus đã biết
(ii) 500 tệp từ bộ sinh vcl32
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ã
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à
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:
Opcode của tất cả các tệp virus theo các khối cơ sở.
Nghiên cứu khoa học công nghệ
Tạp chí Nghiên cứu KH&CN quân sự, Số 34, 12 - 2014 85
Hình 3. Tệp dữ liệu virus.
3. KẾT QUẢ ĐẠT ĐƯỢC
Cài đặt thử nghiệm
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
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
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
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
được huấn luyện bởi nhiều tệp hơn thì cho hiệu quả tốt hơn.
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.
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
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
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
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
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
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ọ
các dấu hiệu đặc trưng cụ thể thực thi cho kết quả tốt hơn.
4. KẾT LUẬN
Kỹ thuật điện tử & Khoa học máy tính
H.S.Tương, T.T.L.Anh, “Sử dụng kỹ thuật khai phá dữ liệu từ mã lệnh.” 86
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ỹ
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
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
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,
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à
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
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ể
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
xác tổng thể với các mã độc mới.
TÀI LIỆU THAM KHẢO
[1]. Steve R. White. Các vấn đề mở trong nghiên cứu virus máy tính. Hội thảo
virus 1998.
[2]. Fred Cohen. Virus máy tính. Luận án tiến sỹ , Đại học nam california, 1985.
[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.
Xuất bản bởi symatic, New Jersey, 2005.
[4]. Khai phá dữ liệu: www.the-data-mine.com
[5]. K.Dnuggets. Khai phá dữ liệu, khai phá dữ liệu trong môi trường web:
www.kdnuggets.com
[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
ed.Morgan Kaufmann, 2005.
[7]. M. G. Schultz, E. Eskin, E. Z., và S. J. Stolfo, ”các phương pháp khai phá dữ
liệu để phát hiện mã độc mới.”, IEEE Symp, pp. 38-49, 2007.
ABSTRACT
IMPLEMENTING DATA MINING FOR
DETECTION OF MALWARE FROM CODE
In this paper we discuss various data mining techniques that we have successfully
applied for cyber security. This research investigates the use of data mining methods
for malware (malicious programs) detection and proposed a framework as an
alternative to the traditional signature detection methods. These applications include
malicious code detection by mining binary executables by anomaly detection, and
data stream mining. The malicious detection rate of this method is more two times
faster than that of traditional one.
Keywords: Data Mining, Worm Detection, Static analysis, Diassembly,
Insruction sequences, Malware, Antivirus.
Nhận bài ngày 20 tháng 9 năm 2014
Hoàn thiện ngày 02 tháng 12 năm 2014
Chấp nhận đăng ngày 08 tháng 12 năm 2014
Địa chỉ: * Khoa An toàn thông tin, HVKT Mật mã; Email: tuonghoangsy@gmail.com.
** Khoa Công nghệ thông tin, ĐH Kinh tế Kỹ thuật công nghiệp;
Email: ttlanh@uneti.edu.vn
Các file đính kèm theo tài liệu này:
- 11_hoangsituong_81_86_2947_2149224.pdf