3. Các nội dung nghiên cứu của luận văn
3.1.3. Các bước triển khai cơ sở dữ liệu
KDD Process
KDD được gọi là khám phá tri thức trong cơ sở dữ liệu và được định
nghĩa là một phương pháp tìm kiếm, chuyển đổi, tinh chỉnh dữ liệu và mẫu có ý nghĩa từ cơ sở dữ liệu thô để được sử dụng trong các miền hoặc ứng dụng khác nhau (hình 3.1).
43
Hình 3.1 KDD process
Thu thập dữ liệu (Data Clollection)
Thu thập mẫu mã độc dạng PE file từ nhiều nguồn: Virushare, tự thu thập, Malware DB, malshare, …
Thu thập tệp tin thông thường: Lấy toàn bộ các tệp exe trong thư mục Windows, tải về từ trang chủ của Microsoft, FileHippo.
Malware DB (theZoo): 233 samples (202MB), Virushare: Download mẫu mã độc từ VirusShare (59GB ~ 76792 mẫu ), Tự thu thập: 47 mẫu (40MB), dasmalwerk.eu: crawling dữ liệu từ 623 link download (lỗi 47 link thu được 576 mẫu dung lượng 442 MB). Tổng số mẫu malware: 77648 mẫu (~60 GB).
Copy từ thư mục của Windows và tải về từ một số nguồn tin cậy như trang chủ của Microsoft, FileHippo, …gồm: 5226 mẫu (~6GB).
Làm sạch dữ liệu (Data Cleaning)
Loại bỏ các tệp lỗi.
Loại bỏ các mẫu trên hệ điều hành Linux, MacOS, Android, … Loại bỏ các tệp không phải định dạng tệp PE.
Loại bỏ các mẫu mã độc cũ.
Loại bỏ một số tệp mã độc nguy hiểm có khả năng gây nguy hiểm cho máy khi giải nén ra như: WannaCry, Petya, …
44 Lọc các tệp trùng nhau.
Xác định lại với VirusTotal thu được 5012 mẫu file sạch.
Thu được 15.528 mẫu mã độc + 5012 mẫu file sạch dùng để tạo bộ dữ liệu sử dụng để xây dựng mô hình.
Trích chọn đặc trưng (Feature Extraction)
IMAGE_DOS_HEADER = {"e_magic", "e_cblp", "e_cp", "e_crlc", "e_cparhdr", "e_minalloc", "e_maxalloc", "e_ss", "e_sp",
"e_csum", "e_ip", "e_cs", "e_lfarlc", "e_ovno", "e_res", "e_oemid",
"e_oeminfo", "e_res2",
"e_lfanew"}
FILE_HEADER = {"Machine", "NumberOfSections", "CreationYear", "PointerToSymbolTable",
"NumberOfSymbols",
"SizeOfOptionalHeader", "Characteristics"}
OPTIONAL_HEADER = {"Magic", "MajorLinkerVersion",
"MinorLinkerVersion", "SizeOfCode", "SizeOfInitializedData",
"SizeOfUninitializedData",
"AddressOfEntryPoint", "BaseOfCode", "BaseOfData", "ImageBase", "SectionAlignment", "FileAlignment", "MajorOperatingSystemVersion", "MinorOperatingSystemVersion", "MajorImageVersion", "MinorImageVersion", "MajorSubsystemVersion",
45
"MinorSubsystemVersion",
"SizeOfImage", "SizeOfHeaders", "CheckSum", "Subsystem", "DllCharacteristics",
"SizeOfStackReserve",
"SizeOfStackCommit", "SizeOfHeapReserve", "SizeOfHeapCommit", "LoaderFlags", "NumberOfRvaAndSizes"}
Lý do chọn các cấu trúc này mà không phải tất cả là vì từ những cấu trúc này ta có một sơ đồ vật lý khá cụ thể, và mục đích của ta trong nội dung nghiên cứu này chính là phát hiện mã độc dựa vào siêu dữ liệu của tệp tin. Chính vì vậy ta sẽ trích xuất các trường là siêu dữ liệu của tệp tin chứ không đi vào trích xuất, phân tích dữ liệu (code, data, …) của tệp tin.
Xử lí dữ liệu (Data Preprocessing)
Data Encoding: Dữ liệu dạng địa chỉ được chuyển hết về dạng số nguyên, các dữ liệu khác có giá trị nguyên các thuộc tính đều có giá trị nguyên.
Fill in missing values: Cấu trúc tệp PE là cố định và các thành phần optional nếu không có đều có giá trị là 0 trong bước trích rút Không có missing data trong bảng đã trích rút.
Ở đây không điền missing data là giá trị trung bình, hay trung vị vì nó không phản ánh được bản chất của tệp PE.
Outliers và noisy data: Các file là các mẫu mã độc và file sạch có thể thực thi được do đó không có noisy data. Các outlier có thể do tính chất của từng ứng dụng và từng mã độc Không thực hiện bước loại bỏ outlier và noisy data, do bất cứ việc thay thế giá trị nào đều không thể hiện được bản chất thực sự của tệp PE.
Loại bỏ bản ghi trùng lặp: Các file được định dạng và đã được loại bỏ trùng lặp ở phần thu thập dữ liệu từ trước.
46 Gán nhãn dữ liệu
Mã độc có giá trị là 1 Tệp tin sạch giá trị là 0
Hình 3.2 Bản ghi dữ liệu sau khi trích rút thuộc tính và gán nhãn
Chuẩn hóa dữ liệu
Báo cáo sử dụng thử nghiệm 3 trường hợp để đánh giá cùng với 9 loại mô hình phân lớp:
- Không biến đổi dữ liệu
- Min-max normalization: Chuẩn hóa dữ liệu là việc scale dữ liệu về một phân bố trong đó giá trị trung bình của các quan sát bằng 0 và độ lệch chuẩn = 1. Nhờ việc chuẩn hóa, các thuật toán như linear regression, logistic regression được cải thiện.
- Z-score normalization: Bộ scaler MinMaxScaler sẽ đưa các biến về miền giá trị [0, 1].
Lựa chọn thuộc tính và giảm chiều dữ liệu
Báo cáo sử dụng thử nghiệm 2 trường hợp lựa chọn thuộc tính và giảm chiều dữ liệu (hình 3.3).
- Không sử dụng lựa chọn thuộc tính, giảm chiều dữ liệu
- ExtraTreeClassifier: Đây là loại kỹ thuật học tập tổng hợp , tổng hợp kết quả của nhiều cây quyết định không tương quan được thu thập trong một “khu rừng” để tạo ra kết quả phân loại của nó.
47
Hình 3.3 Bảng tương quan giữa các thuộc tính
Khai phá dữ liệu
Báo cáo thử nghiệm 9 thuật toán phân lớp với các siêu tham số khác nhau (21 mô hình): - DecisionTreeClassifier - RandomForestClassifier - GradientBoosting - AdaBoost - MLP - LogisticRegression - GNB - SVM - KNeighborsClassifier 3.2. Cài đặt thử nghiệm
3.2.1. Môi trường cài đặt
Công cụ được cài đặt trên môi trường hệ điều hành Windows 10 máy có cấu hình như sau (bảng 3.1):
48
Bảng 3.1 Bảng yêu cầu chức năng
Phần cứng Phần mềm và môi trường phát triển
CPU Core(TM) i5- 1135G7 @ 2.40GHz
RAM 8GB SSD 256 GB
HĐH: Windows 10 IDE: Spyder Anacoda Môi trường: Python 3
Thư viện hỗ trợ: Sklearn, Pickle, Pefile Yêu cầu các phần mềm hỗ trợ (minh họa bảng 3.2)
Bảng 3.2 Bảng các phần mềm hỗ trợ
STT Tên Giấy phép Địa chỉ tải về
1 Python 3.8 GPL https://www.python.org/ 2 Anacoda Anaconda Inc https://repo.anaconda.com/archive/Anacond a3-2021.05-Windows-x86_64.exe 3.2.2. Thử nghiệm Các bước thực hiện
Bước 1: Chạy file Get_benign_file.py. Bước 2: Chạy file Feature_extraction.py. Bước 3: Chạy file Training.py.
Bước 4: Chạy file Savedmodel.py. Bước 5: Chạy Using_model.py.
Phương pháp huấn luyện và mẫu thử nghiệm.
Phương pháp đánh giá: Hold-out method (80% cho Training và 20% cho Testing).
49
Báo cáo thử nghiệm và đánh giá kết quả sử dụng kết hợp các mô hình và thuật toán sau (Hình 3.4):
Hình 3.4 Phương pháp chuẩn hóa, lựa chọn thuộc tính và mô hình học máy
3.3. Đánh giá kết quả
3.3.1. Đánh giá kết quả sau thực nghiệm
Đánh giá Confusions Matrix.
Cách đơn giản và hay được sử dụng nhất là Accuracy (độ chính xác). Cách đánh giá này đơn giản tính tỉ lệ giữa số điểm được dự đoán đúng và tổng số điểm trong tập dữ liệu kiểm thử.
Accuracy = 𝑇𝑃+𝑇𝑁
𝑇𝑃+𝐹𝑃+𝑇𝑁+𝐹𝑁
Đánh giá Precision và Recall
Trong thực nghiệm đã thực hiện, số lượng các lớp không đồng đều, có chút chênh lệch. Với những trường hợp như vậy phép đo khá hiệu quả được sử dụng là Precision - Recall.
Precision = 𝑇𝑃
𝑇𝑃+𝐹𝑃 Recall = 𝑇𝑃
𝑇𝑃+𝐹𝑁
Precision và Recall đều là các số không âm nhỏ hơn hoặc bẳng một. Precision cao đồng nghĩa với việc độ chính xác của các điểm tìm được là cao. Recall cao đồng đồng nghĩa với việc True Positive Rate cao, tức tỉ lệ bỏ
50
sót các điểm thực sự positive là thấp. Từ hai đại lượng tính được ta có thể thấy mô hình phân lớp triển khai được là rất tốt.
Đánh giá F1-score
$F_1$ hay F1-score là harmonic mean của precision và recall. F1 – score có giá trị nằm trong nửa khoảng (0,1]. F1 càng cao, bộ phân lớp càng tốt. Khi cả recall và precision đều bằng 1 (tốt nhất có thể), F1 = 1.
2
𝐹1 =𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛1 + 𝑟𝑒𝑐𝑎𝑙𝑙1 hay F1 = 2 1 1
𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 +𝑟𝑒𝑐𝑎𝑙𝑙1 = 2𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 .𝑟𝑒𝑐𝑎𝑙𝑙
𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛+𝑟𝑒𝑐𝑎𝑙𝑙
F1-score cao cho thấy chất lượng của mô hình cao.
Kết quả thử nghiệm với lựa chọn “Không biến đổi dữ liệu và không giảm
chiều dữ liệu” (hình 3.5).
Hình 3.5 Kết quảđánh giá không biến đổi và giảm chiều dữ liệu
Khi không biến đổi dữ liệu: Các thuật toán dạng cây quyết định cho hiệu quả khá tốt đặc biệt là RandomForest.
Mô hình có độ chính xác chung cao nhất là Randomforest với tham số là số lượng cây dự đoán n=100.
Các mô hình dựa trên khoảng cách như Logictic Regression, SVM cho hiệu quả chung khá thấp.
Kết quả thử nghiệm với lựa chọn “Biến đổi dữ liệu và không giảm chiều dữ
51
Hình 3.6 Kết quảđánh giá biến đổi và giảm chiều dữ liệu
Khi thực hiện đổi dữ liệu: Các thuật toán dạng cây quyết định vẫn cho hiệu quả khá tốt đặc biệt là RandomForest.
Mô hình có độ chính xác chung cao nhất là Randomforest với tham số là số lượng cây dự đoán n=100.
Các mô hình dựa trên khoảng cách như Logictic Regression, SVM cho hiệu quả chung cao hơn nhiều so với khi không thực hiện biến đổi dữ liệu.
Đánh giá kết quả với lựa chọn “Biến đổi dữ liệu và lựa chọn thuộc tính”
(hình 3.7).
Hình 3.7 Kết quảđánh giá biến đổi và lựa chọn thuộc tính dữ liệu
Khi thực hiện đổi dữ liệu: Các thuật toán dạng cây quyết định vẫn cho hiệu quả khá tốt đặc biệt là RandomForest.
52
Mô hình có độ chính xác chung cao nhất là Randomforest với tham số là số lượng cây dự đoán n=100.
Khi lựa chọn ít thuộc tính hơn, độ chính xác có giảm đôi chút so với cùng mô hình ban đầu.
Các mô hình dựa trên khoảng cách như Logictic Regression, SVM cho hiệu quả chung cao hơn nhiều so với khi không thực hiện biến đổi dữ liệu.
Bảng 3.3 Bảng tổng hợp kết quả thử nghiệm với thuật toán Random Forest
Kết luận
Mô hình Random Forest cho kết quả tốt nhất trong mọi trường hợp. Khi không sử dụng các phương pháp chuẩn hóa dữ liệu, độ chính xác của các mô hình không dựa trên khoảng cách như DS, RDF, … không ảnh hưởng nhiều nhưng các phương pháp dựa trên khoảng cách như Logistic Regression hay SVM ảnh hưởng rất lớn.
Khi lựa chọn thuộc tính và giảm chiều dữ liệu, độ chính xác của mô hình có giảm đi đôi chút so với việc sử dụng dữ liệu đầy đủ, nhưng tốc độ thực thi cao hơn.
Sử dụng mô hình để xây dựng chương trình quét mã độc thực tế
Sau quá trình huấn luyện, chọn mô hình RandomForest với n=100 để lưu lại sử dụng.
53
Sau khi chọn mô hình RandomForest n=100, lưu mô hình lại bằng thư viện pickle thành tệp classifier.pkl.
Kết quả thử nghiệm
100 file sạch được quét và cho kết quả: + 99 file được nhận dạng đúng là file sạch. + 1 file bị nhận nhầm thành mã độc.
99% phát hiện đúng. 300 mẫu mã độc:
+ 297 file được nhận dạng đúng là mã độc, 3 file bị nhận dạng nhầm hoặc bỏ sót.
99% phát hiện đúng.
Các trường hợp có thể xảy ra khi quét mã độc cụ thể. Trường hợp nhận dạng đúng mã độc.
Trường hợp tệp sạch nhận dạng thành mã độc.
Trường hợp nhận dạng đúng file sạch.
54
3.4. Kết luận chương 3
Chương 3 đã mô hình hóa, triển khai được thuật toán nghiên cứu được từ chương 2. Từ mô hình triển khai này, đánh giá được kết quả nghiên cứu, tính ứng dụng và khả năng mở rộng của luận văn.
55
CHƯƠNG 4. KẾT LUẬN
Ba chương của luận văn đã thể hiện được rằng những mục tiêu đặt ra khi thực hiện luận văn đều đã đạt được. Cụ thể:
Chương 1 trình bày được bức tranh tổng quan của các phương pháp phân tích mã độc hiện tại. Qua đó thấy được ưu nhược điểm của các phương pháp này. Và tầm quan trọng của giải pháp phát hiện mẫu trước khi phân tích.
Chương 2 giải thích được khái niệm siêu dữ liệu, cấu trúc tệp tin thực thi trên hệ điều hành Windows, các trường quan trọng được sử dụng làm siêu dữ liệu. Bên cạnh đó trình bày được một số thuật toán phân lớp dữ liệu dựa vào cây quyết định. Nêu ra ưu nhược điểm của các thuật toán, dựa vào tính thực tế để lựa chọn thuật toán phù hợp nhất. Từ những ví dụ thực tế và những công thức tường minh, nội dung chương đã nêu ra được cơ sở khoa học cho hướng nghiên cứu, tạo giải pháp giải quyết bài toán đặt ra.
Chương 3 đã hiện thực hóa được thuật toán và cơ sở khoa học đã tìm hiểu được, mô hình hóa được bài toán cụ thể cần giải quyết vào một giải pháp mang hướng mở có thể triển khai thực tế.
Trong quá trình làm luận văn tôi đã thu được rất nhiều kiến thức về cấu trúc tệp tin thực thi trên hệ điều hành Windows, cô đọng lại kiến thức về mã độc, tiếp cận được nhiều thuật toán khai phá dữ liệu với hướng tiếp cận cây quyết định. Hiểu được cách để phát hiện dữ liệu bằng học máy, hiểu được quy trình triển khai thuật toán học máy. Hiểu được tầm quan trọng của việc phát hiện dữ liệu, nhất là đối với dữ liệu là mã độc. Ngoài ra thu được rất nhiều kiến thức thực tế khi triển khai mô hình phát hiện mã độc.
Bên cạnh đó là những khó khăn, hạn chế trong quá trình thực hiện nghiên cứu và hoàn thiện luận văn.
Vì giới hạn về thời gian nghiên cứu, lượng dữ liệu, thuật toán tiếp cận được còn ít, năng lực bản thân hiện tại còn rất giới hạn về kiến thức và kinh nghiệm. Nhưng thay vào đó đề tài đưa ra là một vấn đề rất thực tế, là xu hướng hiện tại, có bước dài về hướng phát triển nên nếu có thể tôi sẽ cố gắng nghiên cứu sâu hơn về học máy, tiếp cận nhiều hơn với nhiều thuật toán tối
56
ưu hơn, xây dựng thêm module tự động lấy mẫu trên các cơ sở dữ liệu mở lớn, xây dựng GUI giao diện đồ họa cho ứng dụng (có thể local hoặc trên nền web), xây dựng cơ sở dữ liệu (local hoặc web) có phân quyền, bảo vệ dữ liệu, và rất nhiều tham vọng khác về hướng phát triển của nghiên cứu. Ngoài ra, hiện tại ở Việt Nam các công ty bảo mật hàng đầu cũng đang chạy đua để tích hợp trí tuệ nhân tạo, học máy vào hệ thống phát hiện, xử lý mã độc nên nếu nghiên cứu có thể phát triển tốt tôi hy vọng nó sẽ là một module quan trọng với ý nghĩa phát hiện mã độc dựa trên kỹ thuật học máy, trí tuệ nhân tạo. Ngoài ra tôi sẽ mở rộng ứng dụng cho nâng cao an toàn cho các mạng cảm biến vốn đang ngày càng được sử dụng phổ biến hơn [39][40][41].
57
TÀI LIỆU THAM KHẢO
[1]. Daniel Gibert, Carles Mateu, Jordi Planes, The rise of machine learning for detection and classification of malware, Research developments, trends and challenges, Journal of Network and Computer Applications, Volume 153, 1 March 2020, 102526.
[2]. Kateryna Chumachenko, Machine Learning Methods for Malware Detection and Classification, Cuckoo Sandbox, 2017.
[3]. John Aycock Computer Viruses and Malware, Springer Science + Business Media, Definitions and Timeline, Pages 11-25 2006.
[4]. Nguyen Ngoc Quan. Nghiên cứu phương pháp phân tích động mã độc. 2015.
[5]. Báo Nhân Dân, Bkis xác định: Tin tặc Anh tấn công website chính phủ Hàn Quốc, https://nhandan.vn/thong-tin-so/Bkis-x%C3%A1c- %C4%91%E1%BB%8Bnh:-Tin-t%E1%BA%B7c-Anh-
t%E1%BA%A5n-c%C3%B4ng-website-ch%C3%ADnh-
ph%E1%BB%A7-H%C3%A0n-Qu%E1%BB%91c-541556, online 25- 7-2021.
[6]. Báo Tuổi Trẻ, Bộ Công an điều tra vụ báo điện tử VOV bị tấn công mạng, https://tuoitre.vn/bo-cong-an-dieu-tra-vu-bao-dien-tu-vov-bi-tan- cong-mang-20210614132001071.htm, online 25-7-2021.
[7]. Sophos, SOPHOS 2021 THREAT REPORT
https://www.sophos.com/en-us/medialibrary/PDFs/technical- papers/sophos-2021-threat-report.pdf/ , online 28-8-2021.
[8]. Umbreen Fatima, Mubasher Ali, Nauman Ahmed, M.Rafiq, Numerical modeling of susceptible latent breaking-out quarantine computer virus epidemic dynamics, 21 May 2018.
[9]. Jialiang Zhang, Application of Artificial Intelligence Technology in Computer Network Security, International Journal of Network Security, Vol.20, No.6, PP.1016-1021, Nov. 2018
58
[11].D. Moore, C. Shannon, K.Claffy, Code-red a case study on the spread and victims of an Internet worm, In: Proc. of 2nd ACM SIGCOMM Workshop on Internet measurement. IEEE Secur Privacy (2002), 273–84.
[12].Z. Chen, L. Gao, K. Kwiat, Modeling the spread of active worms IEEE Comput. Commun. IEEE Societies, INFOCOM, In: 22nd Annu. Joint Conf, 3; (2003) pp. 1890–900.
[13].C. Shannon, D. Moore, The spread of the witty worm. IEEE Secur Privacy. 3(2), (2004), 46–50.
[14].Leian Liu, Zuanxing Yin, Yuli Shen, Haitao Lin, Hongjiang Wang. Research and Design of Rootkit Detection Method. Physics Procedia Volume 33, 2012, Pages 852-857.
[15].Bitdefender, Giới thiệu về phần mềm độc hại, https://www.bitdefender.vn/post/malware/, online 29-8-2021.
[16].LenaY. Connolly, David S.Wall. The rise of crypto-ransomware in a