Kết luận chương 2

Một phần của tài liệu Luận văn Thạc sĩ Nghiên cứu phương pháp phát hiện mã độc dựa trên dữ liệu metadata của tệp tin (Trang 48)

3. Các nội dung nghiên cứu của luận văn

2.4. Kết luận chương 2

Chương 2 trình bày được khái niệm về siêu dữ liệu, cấu trúc dữ liệu của tệp tin thực thi trên hệ điều hành Windows. Qua đó làm sáng tỏ mối liên hệ giữa dữ liệu cần sử dụng làm siêu dữ liệu với các trường, cấu trúc của tệp tin thực thi.

Trong chương này cũng đã trình bày chi tiết về các kỹ thuật áp dụng trong cây quyết định, ưu nhược điểm, tính thực tế và khả năng triển khai từ đó làm cơ sở cho mô hình triển khai trong chương 3.

40

CHƯƠNG 3. TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ 3.1. Triển khai giải pháp

3.1.1. Giới thiệu giải pháp

Yêu cầu đặt ra cần xây dựng cây quyết định phát hiện mã độc dựa vào dữ liệu meta-data của tệp tin giúp xác định một tệp tin có phải là mã độc hay không.

Ta có thể nghĩ đến giải pháp tương tự như virustotal hay nhiều cơ sở dữ liệu khác có thể phát hiện họ mã độc. Với cơ sở dữ liệu rất lớn và tích hợp nhiều nhà phát triển đây là một giải pháp khôn ngoan, nhưng lại khó giải quyết với những mẫu mã độc mới.

Việc cần thiết của ứng phó sự cố là tính tức thời, ta không thể phụ thuộc vào một giải pháp của hãng thứ 3 quá nhiều. Nếu mã độc có sức lây lan cao vào nhanh hay tấn công APT thì việc cần xác định nhanh thông tin về mã độc là việc hết sức cần thiết.

Việc này thật sự cần thiết cho nhà phân tích có thêm thông tin để có thể rút ngắn thời gian phân tích mã độc, đưa ra biện pháp ứng phó sự cố. Đối với nhà phát triển phần mềm chống mã độc, đây cũng là một hướng tiếp cận cho phép phân chia, quản lý mẫu mã độc trong cơ sở dữ liệu.

Công cụ phát hiện mã độc hướng đến mục tiêu như sau:

 Tối ưu hóa thời gian phân tích bằng cách xác định đối tượng phân tích.

 Phát hiện mã độc bằng hướng tiếp cận học máy mở ra hướng phát triển cao hơn cho việc nghiên cứu mã độc và ứng phó sự cố an toàn thông tin.

 Phát hiện mã độc bằng siêu dữ liệu tối ưu hóa thời gian phát hiện.  Giảm thiểu việc tác động của mã độc tới hệ thống.

3.1.2. Lựa chọn thuật toán để xây dựng mô hình đánh giá

41

Do thuật toán Quinlan quyết định thuộc tính phân hoạch bằng cách xây dựng các vector đặc trưng cho mỗi giá trị của từng thuộc tính dẫn xuất và thuộc tính mục tiêu nên hiệu suất của thuật toán không cao. Dễ lỗi với dữ liệu có độ nhiễu cao. Phù hợp với các mô hình thử nghiệm nhỏ vậy nên để luận văn có tính mở có thể phát triển ta không lựa chọn thuật toán này.

Đánh giá thuật toán ID3

ID3 xây dựng cây quyết định cho dữ liệu đã cho theo kiểu top-down, bắt đầu từ một tập hợp các đối tượng và đặc tả của các thuộc tính tài nguyên và thông tin. Tại mỗi nút của cây, một thuộc tính được kiểm tra dựa trên việc tối đa hóa thông tin thu được và entropy nhỏ nhất, kết quả này được sử dụng để chia bộ đối tượng. ID3 chọn thuộc tính tốt nhất dựa trên khái niệm entropy và tăng thông tin để phát triển cây. ID3 phù hợp với dữ liệu vừa, được phân lớp tốt và độ nhiễu thấp.

Nhược điểm:

 Chỉ có một thuộc tính tại một thời điểm được kiểm tra để đưa ra quyết định.

 Không xử lý được các thuộc tính ở kiểu dữ liệu số (numberic).  Không xử lý các giá trị bị khuyết.

Đánh giá thuật toán C4.5

Nhìn chung C4.5 hoạt động tương tự ID3 nhưng cải thiện một số hành vi.  C4.5 có thể xử lý được các thuộc tính liên tục và rời rạc.

 Khả năng sử dụng dữ liệu liên tục. Sử dụng các giá trị chưa biết (còn thiếu).

 Khả năng sử dụng các thuộc tính với các trọng số khác nhau.  Cắt tỉa cây sau khi cây được tạo ra.

Nhược điểm:

 Xây dựng các nhánh rỗng với các giá trị bằng không.  Hiệu quả chưa tốt với dữ liệu bị nhiễu.

42

Random Forest có thể sử dụng cho cả bài toán Classification và Regression.

Random Forest làm việc được với dữ liệu thiếu giá trị.

Khi Forest có nhiều cây hơn, chúng ta có thể tránh được việc Overfitting với tập dữ liệu.

Có thể tạo mô hình cho các giá trị phân loại.

Lựa chọn thuật toán

Dựa vào các ưu nhược điểm của các thuật toán ta có thể thấy C4.5, ID3 và RDF đều phù hợp với nghiên cứu khai phá dữ liệu meta-data của tệp tin mã độc phục vụ mục đích nhận biết mã độc. Một ưu điểm khác của 3 thuật toán này là chúng đều lưu trú trong bộ nhớ vì vậy tốc độ xử lý rất tốt. Nhìn chung thì RDF có nhiều ưu điểm hơn ID3 và C4.5 nên trong luận văn này sẽ lựa chọn RDF làm thuật toán triển khai mô hình thực nghiệm.

Thuật toán Random Forest (RDF) đã được áp dụng trong nghiên cứu của tôi. RDF không dùng tất cả dữ liệu training, cũng như không dùng tất cả các thuộc tính của dữ liệu để xây dựng cây quyết định nên mỗi cây (trường hợp) có thể sẽ dự đoán không tốt, để tạo ra một mô hình dự đoán. Các trường hợp dự đoán không tốt được thực hiện dễ dàng, nhanh chóng và đơn giản. Bằng cách lặp lại, RF đào tạo và kết hợp chúng lại để xác định mô hình dự đoán cuối cùng. Hiệu suất của mô hình cuối cùng tốt hơn so với các mô hình thiếu chính xác trước đó.

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.

Một phần của tài liệu Luận văn Thạc sĩ Nghiên cứu phương pháp phát hiện mã độc dựa trên dữ liệu metadata của tệp tin (Trang 48)

Tải bản đầy đủ (PDF)

(69 trang)