Sử Dụng Kỹ Thuật Phân Tích Chuỗi Mã Lệnh Để Phát Hiện Phần Mềm Độc Hại

Khóa luận trình bày kỹ thuật phân tích chuỗi mã lệnh nhằm phát hiện phần mềm độc hại không xác định trong lĩnh vực kỹ thuật phần mềm.

Chuyên ngành

Kỹ thuật phần mềm

Người đăng

Ẩn danh

Thể loại

khóa luận tốt nghiệp

2021

68
3
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CẢM ƠN

1. CHƯƠNG 1: CÁC CÔNG TRÌNH NGHIÊN CỨU ĐÃ CÔNG BỐ VÀ CÁC VẤN ĐỀ CẦN GIẢI QUYẾT

1.1. Các công trình nghiên cứu đã công bố

1.2. Các vấn đề cần giải quyết và điểm mới của đề tài

2. CHƯƠNG 2: CÁC LÝ THUYẾT VÀ KIẾN THỨC LIÊN QUAN

2.1. Học máy không giám sát

2.2. Học củng cố

2.3. Học máy có giám sát

2.4. Thuật toán phân lớp trong máy học

2.4.1. Khái niệm và các thuật toán phân lớp

2.4.2. K-nearest neighbor

2.4.3. Support Vector Machine

2.4.4. Logistic Regression

2.4.5. Multi-layer Perceptron

2.4.6. Naive Bayes

2.4.7. Linear Discriminant Analysis

2.4.8. Decision Tree

3. CHƯƠNG 3: PHƯƠNG PHÁP NGHIÊN CỨU VÀ THIẾT KẾ KỸ THUẬT

4. CHƯƠNG 4: ĐÁNH GIÁ HỆ THỐNG

4.1. Đánh giá mô hình

4.2. Ứng dụng minh họa

4.3. Thu thập bộ dữ liệu

4.4. Huấn luyện mô hình

4.5. Cài đặt mô hình cho ứng dụng

4.6. Quét các tiến trình

5. CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

5.1. Hạn chế và hướng phát triển

5.2. Hướng phát triển

TÀI LIỆU THAM KHẢO

Tóm tắt

I. Tổng Quan Về Phân Tích Chuỗi Mã Lệnh Để Phát Hiện Phần Mềm Độc Hại

Phân tích chuỗi mã lệnh là một kỹ thuật quan trọng trong việc phát hiện phần mềm độc hại. Kỹ thuật này giúp xác định các mẫu mã độc thông qua việc phân tích các lệnh trong mã nguồn. Với sự gia tăng của các loại mã độc mới, việc áp dụng các phương pháp phân tích mã lệnh trở nên cần thiết hơn bao giờ hết. Nghiên cứu này sẽ trình bày các khía cạnh chính của phân tích chuỗi mã lệnh và tầm quan trọng của nó trong an ninh mạng.

1.1. Khái Niệm Về Phân Tích Mã Lệnh

Phân tích mã lệnh là quá trình xem xét và đánh giá các lệnh trong mã nguồn để phát hiện các hành vi bất thường. Kỹ thuật này giúp nhận diện các mẫu mã độc và hỗ trợ trong việc phát hiện malware.

1.2. Tại Sao Phân Tích Mã Lệnh Quan Trọng

Với sự phát triển nhanh chóng của các phần mềm độc hại, việc phân tích mã lệnh giúp phát hiện sớm các mối đe dọa. Điều này không chỉ bảo vệ hệ thống mà còn giảm thiểu thiệt hại do mã độc gây ra.

II. Các Thách Thức Trong Việc Phát Hiện Phần Mềm Độc Hại

Phát hiện phần mềm độc hại không phải là một nhiệm vụ đơn giản. Các nhà phát triển mã độc ngày càng tinh vi hơn, sử dụng nhiều kỹ thuật để qua mặt các hệ thống bảo mật. Những thách thức này bao gồm việc phát hiện các biến thể mới của mã độc và khả năng mã hóa thông tin.

2.1. Sự Tinh Vi Của Các Mẫu Mã Độc

Các mẫu mã độc hiện nay thường được thiết kế để tránh bị phát hiện. Chúng có thể thay đổi hình thức và hành vi, khiến cho việc phát hiện trở nên khó khăn hơn.

2.2. Lỗ Hổng Zero Day

Lỗ hổng Zero-day là những lỗ hổng chưa được phát hiện hoặc chưa có bản vá. Các mã độc khai thác những lỗ hổng này có thể gây ra thiệt hại lớn trước khi được phát hiện.

III. Phương Pháp Phân Tích Chuỗi Mã Lệnh Hiệu Quả

Để phát hiện phần mềm độc hại, nhiều phương pháp phân tích chuỗi mã lệnh đã được phát triển. Những phương pháp này không chỉ giúp nhận diện mã độc mà còn cải thiện khả năng phòng chống mã độc trong tương lai.

3.1. Kỹ Thuật Phân Tích Hành Vi Phần Mềm

Phân tích hành vi phần mềm giúp theo dõi các hoạt động của mã độc trong thời gian thực. Kỹ thuật này cho phép phát hiện các hành vi bất thường và cảnh báo người dùng.

3.2. Sử Dụng Mô Hình Máy Học

Mô hình máy học có thể được áp dụng để phân tích chuỗi mã lệnh. Các thuật toán như KNN, SVM và Logistic Regression giúp cải thiện độ chính xác trong việc phát hiện mã độc.

IV. Ứng Dụng Thực Tiễn Của Phân Tích Mã Lệnh

Phân tích mã lệnh không chỉ là lý thuyết mà còn có nhiều ứng dụng thực tiễn. Các tổ chức và doanh nghiệp đang áp dụng các kỹ thuật này để bảo vệ hệ thống của họ khỏi các mối đe dọa từ mã độc.

4.1. Ứng Dụng Trong Doanh Nghiệp

Nhiều doanh nghiệp đã triển khai các giải pháp phân tích mã lệnh để bảo vệ dữ liệu và hệ thống của họ. Điều này giúp giảm thiểu rủi ro và tăng cường an ninh mạng.

4.2. Kết Quả Nghiên Cứu

Nghiên cứu cho thấy việc áp dụng phân tích chuỗi mã lệnh có thể phát hiện được nhiều loại mã độc không xác định, từ đó nâng cao khả năng phòng chống mã độc.

V. Kết Luận Và Hướng Phát Triển Tương Lai

Phân tích chuỗi mã lệnh là một công cụ mạnh mẽ trong việc phát hiện phần mềm độc hại. Tuy nhiên, cần tiếp tục nghiên cứu và phát triển các phương pháp mới để đối phó với sự phát triển của mã độc. Tương lai của an ninh mạng phụ thuộc vào khả năng phát hiện và ngăn chặn mã độc hiệu quả.

5.1. Tương Lai Của Phân Tích Mã Lệnh

Với sự phát triển của công nghệ, phân tích mã lệnh sẽ ngày càng trở nên quan trọng hơn. Các phương pháp mới sẽ được phát triển để cải thiện khả năng phát hiện mã độc.

5.2. Đề Xuất Nghiên Cứu Tiếp Theo

Cần nghiên cứu sâu hơn về các kỹ thuật mới trong phân tích mã lệnh và áp dụng chúng vào thực tiễn. Điều này sẽ giúp nâng cao hiệu quả trong việc phát hiện và ngăn chặn mã độc.

10/07/2025
Khóa luận tốt nghiệp kỹ thuật phần mềm sử dụng kỹ thuật phân tích chuỗi mã lệnh để phát hiện phần mềm độc hại không xác định

Trích đoạn nội dung tài liệu

MỞ ĐẦU Trong bối cảnh hiện nay, các phần mềm độc hại được tạo ra và phát triển với số lượng ngày càng tăng về số lượng cũng như biến thé. Chúng được áp dụng nhiều kỹ thuật mới và ngày càng tinh vi hơn nhằm qua mặt các hệ thống phòng chống mã độc tân tiến. Tuy nhiên hầu hết các hệ thống này hiện nay đều dựa trên cơ sở đặc trưng của các mẫu mã độc đã được phát hiện và phân tích. Các nhà phát triển mã độc có thê lợi dụng điều này dé phat triển mẫu mã độc khai thác các lỗ hồng Zero-day (0- day) hoặc chỉnh sửa mẫu mã độc cũ nhằm tạo ra biến thê mới với những dấu hiệu hoàn toàn khác nhăm đánh lừa các hệ thống dang này.

Có nhiều nghiên cứu cho thấy việc sử dụng phân đoạn mã lệnh có khả năng phát hiện được các mẫu mã độc mới mà vẫn đạt hiệu quả cao Luận văn tập trung vào việc tim hiểu các kỹ thuật phân tích mã độc ở dạng tập tin Portable Executable (PE) trên hệ điều hành Windows với kiến trúc dòng x86, xây dựng bộ đặc trưng dựa trên phân đoạn mã lệnh, xây dựng mô hình máy học dé phát hiện được các loại mã độc không xác định. Đồng thời, nhóm tác giả xây dựng một ứng dụng phân tích và phát hiện mã độc sử dụng mô hình máy học. Các công trình nghiên cứu đã công bố Bài toán phát hiện phần mềm độc hại sử dụng các thuật toán máy học không phải là van dé mới. Đối với bài toán “phát hiện phần mềm độc hại không xác định” theo hướng tiếp cận là sử dụng “kỹ thuật phân tích chuỗi mã lệnh” đã được các nhà nghiên cứu công bố một số giải pháp khả thi.

Santos !"! và các cộng sự sử dụng đặc trưng term-frequency (TF) cho mỗi mã lệnh và thuật toán học máy bán giám sát Learning with Local and Global Consistency — LLGC. Sun, Zhi ”! và các cộng sự sử dung đặc trưng term-frequency-inverse document frequency (TF-IDF) kết hợp phương pháp chọn ra k cặp mã lệnh có tần suât xuât hiện nhiêu nhât đê huân luyện với các thuật toán máy học kinh điên. Manavi, Farnoush "! và các cộng sự xây dựng ma trận kề biểu diễn các cặp lệnh n-gram (với n = 2) và áp dụng thuật toán tiền hóa (Evolutionary algorithms) trên đặc trưng thu được. Anh Viet Phan '! và các cộng sự xây dựng Control Flow Graph (CFG) để phân lớp các chương trình vào 4 bai toán khác nhau, sử dung Convolutional Neural Network (CNN).

Cac van dé cần giải quyết và điểm mới của đề tài Đề tài tập trung giải quyết các vấn đề sau: - Xay dựng bộ dữ liệu mã độc trích xuất từ bộ di liệu BIG2015 với định dạng đơn giản và gọn nhẹ hơn. - _ Xây dung Control Flow Graph với một số cải tiến dé đảm bảo luồng chạy thông suốt của chương trình. - Đánh giá khả năng của nhiều loại phương pháp máy học trên các đặc trưng mới xây dựng. - Hién thực ứng dụng với tính năng tự động huấn luyện và chọn lọc đặc trưng.

CÁC LÝ THUYÉT VÀ KIÊN THỨC LIÊN QUAN 2. Máy học Machine Learning là một lĩnh vực nhỏ của Khoa Học Máy Tính, và là tập con của trí tuệ nhân tạo - Artificial Intelligence (AI), cung cấp cho máy tính khả năng học mà không cần lập trình rõ ràng. Ngày nay machine learning đã có nhiều ứng dụng thực tế trong đời sống như giáo dục, y tế, tài chính, hệ thống khuyến nghị, công nghệ tri thức, Internet kết nối vạn vật — IoT,. Học máy không giám sát Hoc máy không giám sat - Unsupervised Learning là thuật toán học máy không biết được nhãn mà chỉ có dữ liệu đầu vào.

Thuật toán học máy không giám sát sẽ dựa vào cấu trúc của dữ liệu đề thực hiện một công việc nào đó, ví dụ như phân nhóm (clustering) hoặc giảm số chiều của dữ liệu (dimension reduction) dé thuận tiện trong việc lưu trữ và tính toán. - Clustering: Clustering ding dé phân nhóm toàn bộ dữ liệu đầu vào thành các nhóm nhỏ dựa trên sự liên quan giữa các dữ liệu trong mỗi nhóm. - Association: Association dùng dé khám pha ra một quy luật dựa trên nhiều dữ liệu cho trước, thường được sử dụng trong các hệ thống khuyến nghị. Học máy bán giám sát Hoc máy ban giám sát — Semi-Supervised Learning là thuật toán học máy lai giữa học may có giám sát va học máy không giám sát.

Trong loại thuật toán nay, chỉ một phần trong dữ liệu đầu vào được gán nhãn. Học củng cố Học máy củng có - Reinforcement Learning là thuật toán học máy có khả năng giúp hệ thống tự động xác định được hành vi dựa trên hoàn cảnh dé dat được lợi ích cao nhất (maximizing the performent). Hiện tại, học máy củng cô chủ yêu được áp dụng vào Lý Thuyết Trò Chơi - Game Theory. Học máy có giám sát Học máy có giám sát - Supervised Learning là thuật toán dự đoán đầu ra của một đữ liệu dựa trên các cặp (dữ liệu, nhãn) đã biết từ trước.

Học máy có giám sắt là nhóm phổ biến nhất trong các thuật toán học máy. 16 Thuật toán hoc máy có giám sat còn được tiếp tục chia nhỏ ra thành hai loại chính. - - Thuật toán phân loại: Phân loại — Classification dùng trong trường hợp các nhãn của dữ liệu đầu vào được chia thành một số hữu hạn nhóm, ví dụ như true hoặc false, 0 hoặc 1 hoặc 2. - _ Thuật toán hồi quy: Hồi quy — Regression dùng trong trường hợp các nhãn của dữ liệu đầu vào không thuộc hữu hạn nhóm mà là các giá tri thực cụ thể.

Đề tài sử dụng hai nhãn dữ liệu là 0 cho các mẫu mã sạch và 1 cho các mẫu mã độc. Với bài toán phát hiện mã độc cần thiết phải kết quả mang tính chất rõ ràng và chính xác nên các thuật toán học máy có giám sát được lựa chọn sử dụng cho đề tài này. Thuật toán phân lớp trong máy học 2. Khái niệm và các thuật toán phân lớp Bài toán phân lớp — Classification thuộc loại hoc máy có giám sát.

Một bai toán được giải quyết bang thuật toán phân lớp khi số lượng nhãn của dit liệu đầu vào là hữu hạn, ví dụ như true hoặc false, hay 0 hoặc 1 hoặc 2. Có nhiều bải toán phân lớp dé liệu như phân lớp nhị phân — binary, phan lớp đa lớp — multiclass, phân lớp đa biến — multivariate. Đối với đề tài này, nhóm tác giả sử dung bai toán phân lớp nhị phân với mục đích gắn nhãn dữ liệu vào 2 lớp khác nhau (bao gồm nhóm mã sạch và nhóm mã độc). Các thuật toán phân lớp được sử dụng trong đề tài: 2.

K-nearest neighbor K-nearest neighbor (KNN) là một trong những thuật toán may hoc có giám sát đơn giản nhất mà vẫn hiệu quả trong một vải trường hợp trong học máy. Khi huấn luyện, thuật toán này không học một điều gì từ dữ liệu training, mọi tính toán được thực hiện khi nó cần dự đoán kết quả của dữ liệu mới. KNN có thể áp dụng được vào cả hai loại của bài toán máy học có giám sát là classification và regression. KNN còn được gọi là một thuật toán Instance-based hay Memory-based learning.

KNN có ưu điểm là độ phức tạp tính toán của quá trình huấn luyện là bằng 0, việc dự đoán kết quả của dữ liệu mới rất đơn giản. Tuy nhiên, KNN rất nhạy cảm với nhiễu khi K nhỏ, việc tính khoảng cách tới từng điểm đữ liệu trong tập training 17 sẽ tôn rât nhiêu thời gian, đặc biệt là với các cơ sở đữ liệu có sô chiêu lớn và có nhiêu điêm dữ liệu. Với K cảng lớn thì độ phức tạp cũng sẽ tăng lên. Ngoài ra, việc lưu toàn bộ dữ liệu trong bộ nhớ cũng ảnh hưởng tới hiệu năng của KNN.

Support Vector Machine Support Vector Machine (SVM) là một thuật toán học có giám sát nôi tiếng, có thể sử dụng cho cả việc Classification va Regression. Machine là bài toán đi tìm mặt phân cách hay siêu phang (hyperplane) dé phân tách dữ liệu thành các lớp riêng biệt, sao cho khoảng cách từ các điểm đữ liệu đến siêu phẳng tìm được là lớn nhất, đồng nghĩa với việc các điểm đữ liệu an toàn nhất so với mặt phân cách. Trong quá trình huấn luyện SVM, có vô số các mặt phân cách giúp phân biệt các lớp. Với mỗi mặt phân cách, ta có một bộ phân lớp, Khoảng cách gần nhất từ một điểm dữ liệu tới mặt phân cách ấy được gọi là biên (margin) của bộ phân lớp đó.

Với các bài toán mà dữ liệu gần như có thé phân tách tuyến tinh (linearly separable) hoặc phân tách phi tuyến tính (nonlinear separable), có những cải tiến khác của SVM để thích nghỉ với dữ liệu đó. Logistic Regression Logistic Regression là thuật toán học máy được vay mượn từ xác suất thông kê, được sử dụng dé tinh khả năng phân loại [0,1] với đầu vào dữ liệu cụ thé, trong đó thuật toán được biéu diễn dựa trên hàm Logistic (hàm sigmoid của logarit tự nhiên). Mặc dù có tên là Regression, Logistic Regression lại được sử dụng nhiều trong các bài toán phân lớp. Mặc dù Logistic Regression không cần có giả thiết dữ liệu hai lớp là linearly separable, nhưng mô hình này chỉ phù hợp với loại dữ liệu mà hai lớp là gần với linearly separable.

Logistic Regression không làm việc được với loại dữ liệu phi tuyến (non-linear). Multi-layer Perceptron Multi-layer Perceptron (MLP) là mang nơ-ron nhân tạo — (neural network) có nhiều lớp an (hidden layers) ở giữa. Một neuron nhân tao (còn được gọi là percepton) là một hàm biến đồi toán học nhận một hoặc nhiều đầu vào đã được nhân với các giá tri gọi là "weights", cộng các giá tri đó lại với nhau thành một giá trị duy nhất. Sau đó giá trị này được đưa vào một hàm phi tuyến (được gọi là activation function) và kết quả của hàm này chính là đầu ra của neuron.

18 Người ta đã chứng minh được rằng, luôn luôn tồn tại một Neural Network có khả năng xấp xi hầu hết các hàm liên tục với chỉ một hidden layer (với số hidden units đủ lớn va nonlinear activation function phù hợp). Tuy nhiên trên thực tế, việc tìm ra số lượng hidden units và nonlinear activation function nói trên nhiều khi bất khả thi. Thay vào đó, thực nghiệm chứng minh rằng Neural Networks với nhiều hidden layers kết hợp với các nonlinear activation function (đơn giản như ReLU) có khả năng xấp xi (khả năng biểu diễn) đữ liệu training tốt hơn.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ

Tài liệu có tiêu đề Phân Tích Chuỗi Mã Lệnh Để Phát Hiện Phần Mềm Độc Hại cung cấp cái nhìn sâu sắc về cách thức phân tích mã lệnh để nhận diện và ngăn chặn phần mềm độc hại. Bài viết nhấn mạnh tầm quan trọng của việc hiểu rõ cấu trúc và hành vi của mã độc, từ đó giúp các chuyên gia an ninh mạng phát triển các phương pháp hiệu quả hơn trong việc bảo vệ hệ thống. Độc giả sẽ tìm thấy những lợi ích thiết thực từ việc áp dụng các kỹ thuật phân tích mã lệnh, bao gồm khả năng phát hiện sớm các mối đe dọa và giảm thiểu rủi ro cho hệ thống.

Để mở rộng thêm kiến thức về chủ đề này, bạn có thể tham khảo tài liệu Khóa luận tốt nghiệp an toàn thông tin phát hiện phần mềm độc hại pe bằng cách sử dụng mạng thần kinh đồ thị và pháp chứng bộ nhớ. Tài liệu này sẽ cung cấp thêm thông tin về các phương pháp hiện đại trong việc phát hiện phần mềm độc hại, giúp bạn có cái nhìn toàn diện hơn về lĩnh vực an ninh mạng.