Trích chọn đặc trưng từ payload gói tin

Một phần của tài liệu Nâng cao hiệu quả phát hiện mã độc sử dụng các kỹ thuật học máy001 (Trang 41)

Từ file .pcap thu được, tôi đã lập trình để trích xuất ra payload của các gói tin tương tự như trong bài báo [4], trong phạm vi của nghiên cứu này tôi trích xuất payload của gói tin theo giao thức http. Thông tin nội dung file payload sau khi được lập trình để trích xuất ra nội dung file .text có dạng như sau:

Hình 3.6: nội dung payload được trích xuất từ file .pcap

Từ nội dung payload được trích xuất ra tôi đã lập trình để chuyển đổi nội dung trong payload theo phương pháp 2-gram và tính tần suất xuất hiện của các 2-gram để thu được tập hợp các vector. Vector gồm có hàng chứa thông tin về các 2-gram và cột chứa giá trị tần suất xuất hiện của các 2-gram. Thống tin về 2-gram và cách tính tần số xuất hiện như sau:

3.2.3.1. Khái niệm n-gram

Một n-gram là một dãy các byte liền nhau có độ dài bằng n. Ví dụ một dãy các byte liền nhau trong payload được trích xuất là “AB C0 EF 12” thì dãy các n-gram byte thu được là:

Hình 3.7: mô tả biểu diễn byte theo n-gram

Có thể thấy rằng với độ dài n càng cao thì kích thước đặc trưng càng lớn. Đối với mỗi byte có 8 bit thì không gian đặc trưng của 1-gram là = 256 và 2-gram là Trong phạm vi của luận văn này tôi tập trung vào 2-gram.

3.2.3.2 Tính tần số xuất hiện

Sau khi thu được các 2-gram, tôi thực hiện tính tần số xuất hiện của mỗi 2-gram khác nhau trên từng dữ liệu mẫu. Các kết quả này sẽ được lưu vào vector đặc trưng trước khi đưa vào mô hình học để chọn ra những đặc trưng tốt nhất. Công thức để tính tần số xuất hiên (turm frequency -TF) như sau:

TF(T,D) = ( ) * ( ) +

Tần số xuất hiện của một mã 2-gram byte trong tập mẫu (file payload được trích xuất đưa về dạng text) được tính bằng thương của số lần xuất hiện 2-gram byte đó trong tập mẫu và số lần xuất hiện nhiều nhất của một 2-gram byte bất kỳ trong tập mẫu đó.

 ( ): số lần xuất hiện của 2-gram byte T trong tập mẫu D

 * ( ) + : tổng số lần xuất hiện của các 2-gram trong tập mẫu

Kết quả sau khi lập trình tính tần suất xuất hiện của 2-gram byte tôi thu được vector đặc trưng có dạng như sau:

Hình 3.8: payload được 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 ít nên tôi lựa chọn ra các đặc trưng điển hình nhất giống như trong các bài báo [14-15] gồm: thông tin về dung lượng gói tin gửi, dung lượng gói tin nhận, giao thức, thời gian và loại mã độc.

3.3.2. Lựa chọn đặc trưng từ payload

Theo bài báo số [4] thì trong học máy có thể nhận thấy rằng khi số lượng đặc trưng lớn sẽ gặp khó khăn trong việc xử lý cũng như chất lượng mô hình. Các véc tơ đặc trưng trong phương pháp này có số chiều rất lớn lên đến gần hai triệu chiều, tương ứng với số điểm dữ liệu rất lớn vì vậy nếu thực hiện lưu trữ và tính toán trực tiếp trên dữ liệu có số chiều lớn như vậy sẽ gặp khó khăn cả về việc lưu trữ, tài nguyên và tốc độ tính toán. Do đó giảm số chiều dữ liệu là bước quan trọng trong nhiều bài toán học máy, trong phần tiếp theo bên dưới tôi sẽ giới thiệu khái niệm về giảm số chiều và lựa chọn đặc trưng Giảm số chiều (demension reduction) là việc đi tìm một hàm số, hàm số này lấy đầu vào là một điểm dữ liệu ban đầu với D rất lớn và tạo ra một điểm dữ liệu mới có số chiều K < D. Có một số thuật toán thực hiện giảm chiều dữ liệu như thuật toán phân tích thành phần chính (PCA), phân tích phân biệt tuyến tính (LDA) ... nhưng trong phạm vi của luận văn này tôi chọn thuật toán PCA. Cách đơn giản nhất để giảm chiều dữ liệu từ D về K<D là chỉ giữ lại K phần tử quan trọng nhất. Tuy nhiên, việc làm này chắc chắn chưa phải tốt nhất vì chúng ta chưa biết xác định thành phần nào là quan trọng hơn. Hoặc trong trường hợp xấu nhất, lượng thông tin mà mỗi thành phần mang là như nhau, bỏ đi thành phần nào cũng dẫn đến việc mất một lượng thông tin lớn. Tuy nhiên, nếu chúng ta có thể biểu diễn các vector dữ liệu ban đầu trong một hệ cơ sở mới mà trong hệ cơ sở mới đó, tầm quan trọng giữa các thành phần là khác nhau rõ rệt, thì chúng ta có thể bỏ qua những thành phần ít quan trọng nhất.

Lấy một ví dụ về việc có hai camera đặt dùng để chụp một con người, một camera đặt phía trước người và một camera đặt trên đầu. Rõ ràng là hình ảnh thu được từ camera đặt phía trước người mang nhiều thông tin hơn so với hình ảnh nhìn từ phía trên đầu. Vì vậy, bức ảnh chụp từ phía trên đầu có thể được bỏ qua mà không có quá nhiều thông tin về hình dáng của người đó bị mất. PCA chính là phương pháp đi tìm một hệ cơ sở mới sao cho thông tin

của dữ liệu chủ yếu tập trung ở một vài toạ độ, phần còn lại chỉ mang một lượng nhỏ thông tin và để cho đơn giản trong tính toán, PCA sẽ tìm một hệ trực chuẩn để làm cơ sở mới.

3.4. Xây dựng mô hình học máy

Sau khi xây dựng được tập đặc trưng dựa vào 02 phương pháp đã trình bày ở trên, bước tiếp theo ở gian đoạn này là đưa các giá trị tần số xuất hiện của các đặc trưng 2-gram byte được trích xuất từ payload đã được chọn trên tập mẫu ban đầu và các đặc trưng được chọn từ header của gói tin ở trên vào các thuật toán học máy để xây dựng mô hình dự đoán. Các dữ liệu mẫu được gán nhãn thành 2 lớp mã độc. Giai đoạn này sử dụng các véc tơ đặc trưng thu được từ 02 phương pháp ở trên như là dữ liệu huấn luyện đầu vào cho các thuật toán phân lớp dữ liệu [9] [10] có thể áp dụng như: máy véc tơ hỗ trợ (SVM), k láng giềng, rừng ngẫu nhiên (random forest), Naive Bayes (NB), cây quyết định (DT)... Trong phạm vi của nghiên cứu này tôi lựa chọn thuật toán phân lớp tiêu biểu nhất là One-class SVM để xây dựng mô hình dự đoán phát hiện và phân loại mã độc, đồng thời kết quả của 2 phương pháp trích xuất đặc trưng từ header và từ payload bằng phương pháp 2-gram sẽ được so sánh đánh giá trên cùng thuật toán One-class SVM.

3.5. Thực nghiệm và đánh giá kết quả

3.5.1. Dữ liệu thực nghiệm

Dữ liệu thực nghiệm được lấy gồm 168186 mẫu lành tính và 44202 mẫu chứa mã độc được thu thập từ [11] đã được đánh nhãn và từ [12] chứa file .pcap. Đối với dữ liệu thu thập từ [11-12] có tỷ lệ phân bố như sau:

Loại mã độc Ransomware Charger Jisut Wannalocker Benign

Số lượng mẫu 39955 1861 2786 168186

Môi trường thực nghiệm

CPU: Intel(R) Core(TM) i3-3220 CPU @ 3.30 GHZ, RAM: 06 GB

System type: 64-bit Operating system, x64-based processor

Operate system: Ubuntu 18.04 Ngôn ngữ sử dụng Python

Công cụ lập trình

(IDE) PyCharm –JetBrain comminity 2019.01 Thư viện và các gói

cài đặt chính Scikit-learn, scipy, numpy, matplotlib, pandas

3.5.3. Đánh giá hiệu quả thuật toán

Trong phạm vi của luận văn này tôi áp dụng phương pháp ma trận nhầm lẫn (confusion maxtrix) đã được trình bày ở mục 3.4.1 ở trên để đánh giá hiệu quả của mô hình học máy.

3.5.4. Kết quả thực nghiệm

Đối với phương pháp trích xuất đặc trưng 2-gram dựa trên payload của gói tin: Trên toàn bộ không gian đối với phương pháp trích rút các đăng trưng 2-gram bytes ta sẽ thu được 3765 đặc trưng, sau đó tôi áp dụng thuật toán PCA để giảm số chiều và chọn ra được 100 đặc trưng cho kết quả tốt nhất. Trong tổng số mẫu 212788 được đưa chia thành 02 file độc lập theo tỷ lệ 70:30, 70% dùng cho dữ liệu huấn luyện và 30% dùng cho dữ liệu kiểm thử. Đối với phương pháp trích xuất thông tin từ header, do số lượng đặc trưng ít, gồm 43 đặc trưng, tôi lựa chọn ra 04 đặc trưng tiêu biểu nhất cho dữ liệu gói tin gồm: tổng số gói tin gửi đi, tổng số gói tin nhận được, thời gian và loại mã độc. Việc thực nghiệm được được thực hiện kiểm thử nhiều lần đối với 02 tập dữ liệu thu được theo 02 phương pháp ở trên và các kết quả được đánh giá dựa trên phương pháp ma trận nhầm lẫn trong đó coi lớp dương là một loại mã độc, lớp âm mẫu bình thường hoặc mẫu mã độc khác. Kết quả như sau:

Số đặc trưng Mô hình Độ đo Precision Độ đo Recall Độ đo F1 Đặc trưng được trích xuất từ header 4 One- class SVM 95,93% 95,83% 95,84% Đặc trưng được trích xuất từ payload 100 One- class SVM 87,78% 71,16% 78,60%

o Với tập dữ liệu kiểm thử: Số đặc trưng Mô hình Độ đo Precision Độ đo Recall Độ đo F1 Đặc trưng được trích xuất từ header 4 One- class SVM 95,91% 95,73% 95,82% Đặc trưng được trích xuất từ payload 100 One- class SVM 85,58% 69,82% 76,05%

Nhận xét: Dựa vào kết quả thực nghiệm đối với cùng một dữ liệu đầu vào là các file .pcap thì phương pháp trích xuất đặc trưng từ header cho kết quả tốt hơn phương pháp trích xuất đặc trưng từ payload gói tin mạng khi áp dụng cùng một thuật toán học máy One-class SVM.

KẾT LUẬN

Luận văn đã trình bày một hướng tiếp cận mới có hiệu quả trong việc so sánh, đánh giá của 02 phương pháp trích xuất đặc trưng gói tin mạng, phương pháp trích xuất đậc trưng từ header gói tin mạng cho kết quả tốt hơn so phương pháp trích xuất từ payload của gói tin mạng trên cơ sở áp dụng cùng dữ liệu đầu vào và cùng một toán học máy để phát hiện và phân loại mã độc đã biết. Lựa chọn đặc trưng lớp mạng phù hợp để có thể phát hiện, phân loại được các mã độc đã biết, mã độc chưa biết (zero-day), đồng thời khắc phục điểm yếu của các thuật toán học máy khác thường cho kết quả không tốt đối với dữ liệu bị mã hõa, được ngụy trang. Kết quả thực nghiệm cho thấy phương pháp trích xuất đặc trưng từ header cho kết quả phát hiện mã độc đã biết với các độ đo Precision, Recall, F1 tốt hơn so với phương pháp trích xuất từ payload đối với cùng một dữ liệu đầu vào là các .file pcap và áp dụng cùng một thuật toán học máy One-class SVM. Các kết quả đạt được của luận văn gồm:

 Tìm hiều tổng quan về mã độc bao gồm: khái niệm, phân loại, mục đích phân tích mã độc, các kỹ thuật phân tích mã độc.

 Tìm hiều tổng quan về học máy bao gồm: khái niệm, phân loại thuật toán học máy, trích xuất đặc trưng, các thuật toán học máy, các phương pháp đáng giá độ chính xác của các thuật toán học máy

 Lựa chọn đặc trưng, trích xuất đặc trưng từ header gói tin mạng và trích xuất từ payload gói tin mạng. Lập trình trích xuất đặc trưng payload gói tin http từ các file .pcap, biểu diễn đặc trưng theo phương pháp 2-gram, lựa chọn đặc trưng theo thuật toán PCA.

 Thực nghiệm, đánh giá hiệu quả học máy đối với phương pháp trích xuất đăc trưng từ header và trích xuất đặc trưng từ payload của cùng gói

tin mạng bằng phương pháp 2-gram trên cơ sở áp dụng cùng một thoán toán học máy One-class SVM.

Hướng phát triển tiếp theo của đề tài:

 Mở rộng thử nghiệm với việc trích xuất đặc trưng payload theo các phương pháp n-gram khác như 3-gram, 4-gram, 2-v-Gram …và đánh giá hiệu quả với các thuật toán phân lớp khác thuật toán One-class SVM.

 Nghiên cứu và thử nghiệm với các thuật toán học máy One-class SVM theo các tác giả Dax và Duin hoặc các thuật toán họ máy khác để phát hiện ra các biến thể của mã độc đã biết và mã độc mới.

TÀI LIỆU THAM KHẢO

Tiếng việt

[1]https://machinelearningcoban.com/2017/04/09/smv/

Tiếng Anh

[2] Daniele Ucci, Leonardo, Roberto Baldoni, "Survey of Machine Learning Techiniques for Malware Analysis", Computer & Security (2018).

[3] Prakash Mandayam Commar, Lei Liu, Sabyasachi Saha, Pang-Ning Tan+, Antonio Nucci "Combining Supervised and Unsupervised Learning for Zero-Day Malware Detection" , 2013 Proceedings IEEE INFOCOM

[4] Roberto Perdisci, Davide Ariu, Prahlad Fogla, Giorgio Giacinto, Wenke Lee “McPAD: A Multiple Classifer System for Accurate Payload-based Anomaly Detection”, Preprint submitted to Elsevier Science (2008). [5] William Stallings, "Network Security Essentials: Applications and

Standard Foutth Edition"

[6] Michael Sikrski and Andrew Honig “Practical Malware Analysis – The Hands-On Guide to Dissecting Malicious Software”

[7] Savan Gadhiya and Kaushal Bhavsar, “Techniques for Malware Analysis”, International Journal of Advanced Research in Computer Science and Software Engineering, Vol. 3, Issue 4, pp. 972-975, April 2013

[8] Nayan Zalavadiya1 Dr. Priyanka Sharma2, "A Methodology of Malware Analysis, Tools and Technique for windows platform – RAT Analysis" [9] Peter Harrington, “Machine Leaning in Action”, in Part 1 Classification,

by Manning Publications, 2012, pp 1-129

[10] Trent Hauck, “scikit-learn Cookbook”, in Chapter 4 Classifying Data with scikit-learn, by Packt Publishing, 2014, pp. 119-157

[12] https://iscxdownloads.cs.unb.ca/iscxdownloads/CICAndMal2017/PCA Ps/

[13] https://towardsdatascience.com/workflow-of-a-machine-learning- project-ec1dba419b94

[14] Iman Sharafaldin, Arash Habibi Lashkari and Ali A. Ghorbani, "Toward Generating a New Intrusion Detection Dataset and IntrusionTraffic Characterization"

[15] Andi FitriahA. Kadir, Laya Taheri and Ali A. Ghorbani "Toward Developing a Systematic Approach toGenerate Benchmark Android Malware Datasets and ClassificationArashHabibiLashkari"

Một phần của tài liệu Nâng cao hiệu quả phát hiện mã độc sử dụng các kỹ thuật học máy001 (Trang 41)

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

(50 trang)