Khóa Luận Tốt Nghiệp: Phát Hiện Gói Mã Độc Mã Nguồn Mở Bằng Phân Tích Động Và Học Máy

Khóa luận tốt nghiệp nghiên cứu tốt nghiệp an toàn thông tin phân tích động mã nguồn mở và ứng dụng học máy trong nhận biết mã độc, vận dụng lý thuyết vào thực tế, đề xuất giải

Chuyên ngành

Cử nhân ngành An toàn thông tin

Người đăng

Ẩn danh

Thể loại

khóa luận tốt nghiệp
78
3
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CẢM ƠN

TÓM TẮT

1. CHƯƠNG 1: GIỚI THIỆU

1.1. Mục tiêu, đối tượng và phạm vi nghiên cứu

1.2. Bố cục của khóa luận

2. CHƯƠNG 2: TẤN CÔNG CHUỖI CUNG ỨNG PHẦN MỀM

3. CHƯƠNG 3: KỸ THUẬT SANDBOXING VÀ CÔNG CỤ PACKAGE-ANALYSIS

3.1. Kỹ thuật Sandboxing

3.2. Công cụ phân tích động package-analysis

4. CHƯƠNG 4: PHÂN TÍCH VÀ KHAI PHÁ DỮ LIỆU

4.1. Tổng quan về các kho mã nguồn mở

4.2. Phân tích các kết nối mạng tạo bởi các gói phần mềm

4.2.1. Phân tích các địa chỉ IP được các gói phần mềm kết nối tới

4.2.2. Phân tích các tên miền (domains) được các gói kết nối tới

4.3. Phân tích các câu lệnh thực thi bởi các gói

4.4. Phân tích các files truy cập bởi các gói phần mềm

4.5. Phân tích hành vi của các gói phần mềm mã nguồn mở độc hại và lành tính

4.5.1. Phân tích các câu lệnh

4.5.2. Phân loại hành vi của các câu lệnh độc hại trong các gói độc hại

4.5.3. Phân tích thống kê hành vi các gói độc hại

4.5.4. Phân tích các kết nối mạng mà các gói kết nối tới

4.5.5. Phân tích các tên miền mà các gói độc hại kết nối tới

5. CHƯƠNG 5: CÁC GIẢI THUẬT HỌC MÁY

5.1. Giải thuật hồi quy tuyến tính (Linear Regression)

5.2. Giải thuật Logistic Regression

5.3. Giải thuật cây quyết định (Decision Tree)

5.4. Giải thuật Random Forest

5.5. Giải thuật Mạng nơ ron

5.6. Giải thuật K-Means

6. CHƯƠNG 6: ỨNG DỤNG HỌC MÁY TRONG PHÁT HIỆN CÁC GÓI PHẦN MỀM ĐỘC HẠI

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

6.2. Thu thập dữ liệu

6.2.1. Thu thập các gói độc hại

6.2.2. Thu thập các gói lành tính

6.3. Tiền xử lý dữ liệu

6.4. Trích xuất đặc tính (features) của các gói phần mềm

6.5. Encoding các đặc tính

6.6. Huấn luyện các mô hình học máy (Training)

6.7. Đánh giá kết quả

6.8. Chương trình ứng dụng

6.8.1. Các thành phần của ứng dụng

6.8.2. Xây dựng chương trình kiểm tra mã nguồn mở

6.8.3. Một số hình ảnh demo

6.8.4. Ưu điểm và hạn chế của chương trình ứng dụng

7. CHƯƠNG 7: HẠN CHẾ CỦA KHÓA LUẬN VÀ CÁC BƯỚC CẢI TIẾN TIẾP THEO

8. CHƯƠNG 8: KẾT LUẬN

TÀI LIỆU THAM KHẢO

PHỤ LỤC A: CÁC TÊN MIỀN ĐÁNH GIÁ ĐỘC HẠI ĐƯỢC CÁC GÓI PHẦN MỀM KẾT NỐI

Tóm tắt

I. Giới thiệu về phát hiện gói mã độc mã nguồn mở

Trong bối cảnh phát triển phần mềm hiện đại, việc sử dụng các gói mã nguồn mở ngày càng trở nên phổ biến. Tuy nhiên, sự gia tăng của các gói mã độc trong các kho mã nguồn mở như PyPI, npm và RubyGems đã đặt ra nhiều thách thức cho các nhà phát triển. Việc phát hiện và phân tích các gói mã độc là rất cần thiết để bảo vệ an ninh mạng.

1.1. Tại sao cần phát hiện mã độc trong gói mã nguồn mở

Sự gia tăng nhanh chóng của các gói mã độc đã gây ra nhiều rủi ro cho người dùng. Các gói này có thể chứa mã độc, dẫn đến việc đánh cắp thông tin hoặc tấn công hệ thống. Do đó, việc phát hiện kịp thời là rất quan trọng.

1.2. Tổng quan về phân tích động và tĩnh

Phân tích tĩnh và động là hai phương pháp chính để phát hiện mã độc. Phân tích tĩnh không thực thi mã, trong khi phân tích động chạy mã trong môi trường cô lập, giúp phát hiện hành vi thực sự của mã độc.

II. Thách thức trong phát hiện gói mã độc mã nguồn mở

Mặc dù có nhiều công cụ phát hiện mã độc, nhưng vẫn tồn tại nhiều thách thức trong việc phân tích các gói mã nguồn mở. Các kết quả dương tính giả thường xảy ra, gây khó khăn cho các nhà phát triển trong việc xác định mã độc.

2.1. Vấn đề dương tính giả trong phân tích tĩnh

Phân tích tĩnh thường dẫn đến nhiều kết quả dương tính giả, khi các gói lành tính bị nhầm lẫn là độc hại. Điều này làm giảm độ tin cậy của các công cụ phát hiện.

2.2. Hạn chế của các công cụ phân tích động hiện tại

Mặc dù phân tích động cung cấp kết quả chính xác hơn, nhưng các công cụ hiện tại vẫn gặp khó khăn trong việc xử lý dữ liệu thô và yêu cầu nhiều nguồn lực để phân tích.

III. Phương pháp phát hiện gói mã độc bằng học máy

Học máy đã trở thành một công cụ mạnh mẽ trong việc phát hiện gói mã độc. Bằng cách sử dụng các đặc tính động từ các gói mã nguồn mở, các mô hình học máy có thể tự động phân loại gói độc hại và lành tính.

3.1. Cách thức hoạt động của mô hình học máy

Mô hình học máy sử dụng các đặc tính được trích xuất từ kết quả phân tích động để phân loại gói mã độc. Các đặc tính này bao gồm hành vi kết nối mạng và các câu lệnh thực thi.

3.2. Các thuật toán học máy phổ biến

Một số thuật toán học máy như hồi quy logistic, cây quyết định và mạng nơ ron đã được áp dụng để phát hiện gói mã độc. Mỗi thuật toán có ưu điểm và nhược điểm riêng trong việc phân loại.

IV. Ứng dụng thực tiễn của phát hiện gói mã độc

Kết quả nghiên cứu cho thấy việc phát hiện gói mã độc bằng phân tích động và học máy có thể cải thiện đáng kể độ chính xác trong việc phân loại gói độc hại. Các ứng dụng thực tiễn từ nghiên cứu này có thể giúp bảo vệ an ninh mạng hiệu quả hơn.

4.1. Kết quả nghiên cứu và ứng dụng

Nghiên cứu đã chỉ ra rằng các gói mã độc thường thực hiện nhiều câu lệnh hơn và kết nối tới nhiều địa chỉ IP độc hại hơn so với các gói lành tính. Điều này giúp cải thiện khả năng phát hiện.

4.2. Tương lai của phát hiện mã độc

Với sự phát triển của công nghệ học máy, việc phát hiện gói mã độc sẽ ngày càng chính xác hơn. Các nghiên cứu tiếp theo cần tập trung vào cải thiện các công cụ phân tích động và giảm thiểu dương tính giả.

V. Kết luận về phát hiện gói mã độc mã nguồn mở

Phát hiện gói mã độc mã nguồn mở là một thách thức lớn trong lĩnh vực an ninh mạng. Tuy nhiên, với sự phát triển của các phương pháp phân tích động và học máy, khả năng phát hiện mã độc đang ngày càng được cải thiện.

5.1. Tóm tắt các phát hiện chính

Nghiên cứu đã chỉ ra rằng việc áp dụng học máy vào phân tích động có thể giúp phát hiện gói mã độc hiệu quả hơn. Các đặc tính động là yếu tố quan trọng trong việc phân loại.

5.2. Đề xuất cho nghiên cứu tương lai

Cần có nhiều nghiên cứu hơn về các hành vi độc hại của gói mã nguồn mở và cải thiện các công cụ phân tích động để nâng cao độ chính xác trong phát hiện mã độc.

10/07/2025
Khóa luận tốt nghiệp an toàn thông tin phân tích động mã nguồn mở và ứng dụng học máy trong nhận biết mã độc trong mã nguồn mở

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

Chương 1. GIỚI THIỆU 11 Mở dau Trong việc phát triển phần mềm, việc tự xây dựng các thư viện lại từ đầu sẽ rất tốn nguôn lực và kéo dài thời gian phát triển phần mềm. Việc sử dụng các thư viện có sẵn từ các bên thứ ba (ví dụ PyPI cho Python) sẽ tiết kiệm chi phí, nâng cao hiệu quả cho việc phát triển phần mềm. Các thư viện mã nguồn mở là một lựa chọn của rất nhiều lập trình viên khi phát triển phần mềm.

Bên cạnh những lợi ích to lớn mà các thư viện mã nguồn mở đem lại, thì cũng tồn tại những rủi ro về bảo mật. Ví dụ, người tấn công có thể chèn các đoạn mã độc vào các thư viện mã nguồn mở trong một chuỗi cung ứng phát triển phần mềm, kết quả là lập trình viên sẽ trở thành nạn nhân khi sử dụng các thư viện này sé bị nhiễm mã độc khi sử dụng các gói phần mềm độc hại này. Một số hành vi độc hại trên máy nạn nhân có thể kể tới như đánh cắp thông tin (thông tin về hệ điều hành, mã thông bao(token), khóa phién(session key) v.) hay thực hiện các câu lệnh độc hai (command and control), reverse shell v. Ngoài ra, người tan công còn sử dụng nhiều các kỹ thuật anti-analysis khác nhau để qua mặt các công cụ dò tìm mã độc như mã hóa, làm rối mã v.

Theo một phân tích của snyk.io thì từ đầu năm 2023 tổ chức Snyk đã phát hiện ra hơn 6,800 các gói mã nguồn mở độc hại [2]. Đặc biệt, chỉ trong tháng 12 năm 2022 thì hãng Checkmarx đã phát hiện hơn 144,000 các gói mã nguồn mở độc hại [3]. Điều này cho thấy các gói phần mềm độc hại đang gia tăng nhanh chóng trong những năm gan đây [2]. Có hai kiểu phân tích chính mã độc cho các gói mã nguồn mở là: phân tích tinh va phân tích động.

Phân tích tinh là quá trình phân tích mà không thực thi phần mềm mã độc. Phân tích động là quá trình phân tích chạy chương trình hoặc thực thi trong môi trường cô lập (sandbox). Công cụ package-analysis là công cụ tự động phân tích các gói mã nguồn mở từ các kho lưu trữ mã nguồn mở. Đây là một công cụ mã nguồn mở được Google phát triển.

Công cụ này tập trung vào phân tích các hành vi thực sự của mã nguồn từ đó cho ra các kết quả chính xác hơn. Tuy nhiên, công cu package-analysis hiện tại chỉ cung cấp kết quả dit liệu phân tích ở dạng thô (raw analysis result) ở dạng tệp tin JSON, điều này sẽ đòi hỏi nhiều CHUONG 1. GIGI THIỆU nguồn lực để phân tích các dữ liệu này. Các nguồn lực này bao gồm thời gian xem xét phân tích kết quả ở dạng thô hay viết các quy tắc (rules) để xác định xem gói mã nguồn mở này có độc hại hay không.

Vì lý do đó, trong khóa luận tốt nghiệp này nhóm em quyết định tìm hiểu và phân tích, khai phá dữ liệu phân tích thô được cung cấp bởi công cụ package-analysis để tìm hiểu hành vi thực sự bên trong của các gói mã nguồn mở lành tính và độc hại trong các kho lưu trữ mã nguồn mở phổ biến. Khi phân tích các gói phần mềm mã nguồn mở, các nhà nghiên cứu bảo mật thường tập trung quan sát các yếu tố thường xác định là độc hại (ví dụ: các tên miền nghi vấn độc hại mà các gói kết nối tới, các lời gọi hệ thống mà các gói sử dụng). Bên cạnh đó, những kiến thức chuyên môn cũng là yếu tố quan trọng để các nhà phân tích xác định các gói phần mềm là độc hại hay không. Dương tính giả (False positives) thường xảy ra trong quá trình phân tích, khi mà các gói phần mềm là lành tính nhưng lại bị nhầm xác định là độc hại [4].

Để tránh dương tính giả, các công cụ phân tích mã độc cần phải phân biệt rõ sự khác biệt trong hành vi của các gói lành tính và các gói độc hại. Qua tìm hiểu của nhóm em, hiện nay chưa có tài liệu nghiên cứu khoa học nào phân tích về các hành vi độc hại của các gói phần mềm mã nguồn mở sử dụng công cụ phân tích động. Các công cụ phát hiện gói phần mềm độc hại dựa vào các đặc điểm tĩnh thường đưa ra nhiều kết quả dương tính giả do các kỹ thuật qua mặt các công cụ phân tích tĩnh luôn được cải tiến [1]. Một cách tiếp cận khác để phân tích chính xác hơn các gói phần mềm đó là dựa trên phân tích động (dynamic analysis).

Việc xây dựng những công cu phát hiện các gói mã nguồn độc hai dựa trên phân tích động mang nhiều kết quả hứa hẹn, vì nó tập trung phân tích vào biểu hiện hành vi của mã độc thay vì các đặc tính cố định. Nghiên cứu bởi Vu va các đồng nghiệp [4] khuyến nghị nên có nhiều nghiên cứu tập trung vào phân tích động, đặc biệt là cải thiện độ chính xác của kĩ thuật sandboxing và xử lý các kết quả phân tích thô của các công cụ phân tích động. Vì những lý do dé cập phía trên, trong khóa luận tốt nghiệp này, nhóm em tập trung vào việc phân tích các đặc tính động của các gói mã nguồn mở trên nhiều kho mã nguồn mở khác nhau bao gồm PyPI, npm, RubyGems, crates. Trong quá trình tìm hiểu các công cụ phân tích động (Chương 2), nhóm em quyết 1.

CONG BO KHOA HOC định lựa chon package-analysis [5] là công cu phan tích chính vi đây là một công cụ mã nguồn mở, dễ sử dụng, và có thể mở rộng (Chương 3). Trong khóa luận này nhóm em sử dụng các kết quả phân tích của package-analysis cho các gói mã nguồn mở. Sử dụng các kết quả phân tích này, nhóm em phân tích các đặc tính phổ biến có trong các gói độc hại và lành tính. Hơn nữa, trong khóa luận này nhóm em cũng so sánh sự khác biệt hành vi giữa các gói mã nguồn mở độc hại và gói mã nguồn mở lành tính (Chương 4).

Các đặc tính được trích xuất từ kết quả phân tích của các gói được đưa vào các giải thuật học máy để tự động phát hiện các gói mã nguồn mở (Chương 6). Để xây dựng được các mô hình học máy để phân loại các gói mã nguồn mở độc hại, nhóm em đã xây dựng một tập dữ liệu bao gồm các gói lành tính và độc hại. Các bước phân tích và khai phá dif liệu giúp nhóm em hiểu rõ sự khác nhau trong hành vi của các gói lành tính và các gói độc hại. Các mục dưới đây tóm lược các đóng góp của khóa luận tốt nghiệp này: ¢ Phương pháp các gói lành tính và độc hại phục vu cho việc phân tích hành vi và huấn luyện các mô hình học máy.

* Tìm hiểu về công cụ phân tích động các gói phần mềm mã nguồn mở package- analysis, bao gồm các hạn chế cũng như ưu điểm của công cụ này và kỹ thuật sandboxing đăng sau nó. « Phân tích các hành vi độc hại và các hành vi lành tính trong các gói phần mềm mã nguồn mở, từ đó chắt lọc ra các đặc tính để phân loại các gói độc hại. s Áp dung các mô hình học máy dựa trên dữ liệu của package-analysis để phân loại gói độc hại và lành tính. Công bố khoa học Kết quả nghiên cứu từ khóa luận này đã được nhóm em nộp vào một hội nghị quốc tế có tên “International Conference on Computer Applications in Industry and En- gineering”.

Mã nguồn, cũng như các kết quả phân tích được nhóm em lưu trữ tại [6] CHUONG 1. GIGI THIỆU để các nhóm nghiên cứu khác có thể tham khảo. Ngoài ra, nhóm em đang tiếp tục phát triển và mở rộng bài báo hội nghị để nộp vào một tạp chí từ Q3 trở lên. Mục tiêu, đối tượng và phạm vi nghiên cứu 1.1 Mục tiêu nghiên cứu 1.1 Về kiến thức Thông qua khóa luận tốt nghiệp này, nhóm em hướng tới tìm hiểu và vận dụng những kiến thức sau: « Cấu trúc của các gói phần mềm mã nguồn mở trên các kho phần mềm phổ biến như PyPI, npm.

* Cách thức hoạt động của một kho mã nguồn mở cũng như cách người tấn công lợi dụng chúng để chèn mã độc tấn công người dùng. s Cách thức hoạt động của các công cu phát hiện các gói độc hại, ưu và nhược điểm của từng công cụ. « Phân tích và trích xuất các đặc tính từ các kết qua phân tích của package- analysis. « Lua chọn các đặc tính phù hợp cho các mô hình học máy để phân loại các gói độc hại và lành tính.

« Nam bắt và vận dụng được các kiến thức cơ bản về học máy cho việc phân loại các gói độc hại.2 Về sản phẩm Bên cạnh kiến thức, nhóm em cũng mong muốn tạo ra một sản phẩm ứng dụng học máy vào việc phát hiện các gói phần mềm độc hại dựa trên dữ liệu của công cụ package-analysis. BO CỤC CUA KHÓA LUẬN 1.2 Đối tượng và phạm vi nghiên cứu Đối tượng và phạm vi nghiên cứu của khóa luận tốt nghiệp này gồm có: 1. Nghiên cứu các kỹ thuật phân tích động các gói phần mềm độc hại, cụ thể là với công cụ package-analysis. Phân tích kết quả phân tích từ công cụ package-analysis để đánh giá hiệu năng cũng như tìm hiểu các đặc tính của các gói mã nguồn mở.

Xây dựng một tập dữ liệu bao gồm các gói mã nguồn mở lành tính và độc hại, phục vụ cho việc xây dựng các mô hình học máy để phân loại mã độc. Ap dụng các giải thuật hoc máy trên các đặc tinh động trích xuất từ tap dữ liệu thu thập được. Đánh giá hiệu năng của các giải thuật học máy trong việc phân loại mã độc.44 Bồ cục của khóa luận Bố cục của khóa luận được tổ chức như sau. « Chương | giới thiệu tổng quan về đề tai.

¢ Chương 2 mô tả khái niệm quan trọng trong bai báo. s Chương 3 mô tả kỹ thuật sandbox của package-analysis và quá trình phân tích của package-analysis. « Chương 4 mô tả thực nghiệm và kết quả phát hiện từ việc phân tích dữ liệu lớn từ package-analysis. « Chương 5 trình bày lý thuyết các giải thuật học máy được sử dụng trong thực nghiệm.

« Chương 6 trình bày các kỹ thuật học máy trong phát hiện các gói phần mềm độc hại và trình bày chương trình ứng dụng của nhóm em. GIGI THIỆU * Chương 7 nhận xét những hạn chế của khóa luận nay và dé xuất cách cải thiện trong tương lai. * Chương 8 trình bày tóm tắt những kết quả đạt được trong khóa luận của nhóm em.

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

Tài liệu có tiêu đề Phát Hiện Gói Mã Độc Mã Nguồn Mở Bằng Phân Tích Động Và Học Máy cung cấp cái nhìn sâu sắc về việc sử dụng phân tích động và học máy để phát hiện mã độc trong các gói mã nguồn mở. Tài liệu nhấn mạnh tầm quan trọng của việc áp dụng các phương pháp học máy để cải thiện khả năng phát hiện và ngăn chặn mã độc, từ đó bảo vệ hệ thống và dữ liệu của người dùng. Độc giả sẽ tìm thấy những lợi ích thiết thực từ việc hiểu rõ hơn về các kỹ thuật này, cũng như cách chúng có thể được áp dụng trong thực tiễn để nâng cao an ninh thông tin.

Để mở rộng kiến thức của bạn về các chủ đề liên quan, 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 bảo mật api gateway cho nhiều bên trong môi trường cloud native sử dụng học liên kết, nơi khám phá cách bảo mật API trong môi trường đám mây. Ngoài ra, tài liệu Application of machine learning on automatic program repair of security vulnerabilities sẽ giúp bạn hiểu rõ hơn về ứng dụng của học máy trong việc sửa chữa tự động các lỗ hổng bảo mật. Cuối cùng, tài liệu Khóa luận tốt nghiệp an toàn thông tin nghiên cứu hệ thống phát hiện xâm nhập dựa trên học liên kết phi tập trung công bằng cung cấp cái nhìn về các hệ thống phát hiện xâm nhập sử dụng học liên kết, mở ra nhiều hướng nghiên cứu thú vị cho bạn.