Phát hiện lỗ hổng phần mềm nhờ học sâu

Các tác giả

  • Bùi Văn Công Khoa Công nghệ Thông tin, Trường Đại học Kinh tế - Kỹ thuật Công nghiệp, 456 Minh Khai, phường Vĩnh Tuy, Hà Nội, Việt Nam
  • Vũ Thảo Nguyên Trường Đại học Công nghệ Nanyang, 50 Đại lộ Nanyang, Singapore
  • Vũ Đức Minh Trường THPT Cầu Giấy, 8/118 Nguyễn Khánh Toàn, phường Cầu Giấy, Hà Nội, Việt Nam
  • Nguyễn Phương Lan Trường Quốc tế Nhật Bản, 84A Nguyễn Thanh Bình, phường Hà Đông, Hà Nội, Việt Nam

Từ khóa

học sâu, học tương phản, lỗ hổng, phần mềm

DOI:

https://doi.org/10.31276/CNTT.2024.3026

Tóm tắt

Việc phát triển các dự án phần mềm thành công luôn là mối quan tâm hàng đầu của các tổ chức,  doanh nghiệp. Trong đó, việc đảm bảo chất lượng của phần mềm là ưu tiên cao nhất trong toàn bộ  quá trình phát triển cũng như vận hành của phần mềm. Bài báo đề cập việc phát hiện các lỗ hổng của mã nguồn và tập trung vào phân tích cú pháp và ngữ nghĩa của các câu lệnh trong mã nguồn. Mô hình phát hiện lỗ hổng mã nguồn được thực hiện theo quy trình: (i) biểu diễn cú pháp và ngữ nghĩa; (ii) trích xuất đặc trưng của mã nguồn; (iii) cân bằng dữ liệu; (iv) phân loại mã nguồn. Đầu ra của mô hình cho biết mã nguồn đó hoặc bình thường, hoặc có lỗ hổng. Mô hình sử dụng bộ dữ  liệu SARD để huấn luyện mô hình học sâu. Mạng học sâu sử dụng mô hình BERT (Bidirectional Encoder Representations from Transformers), mô hình Word2Vec kết hợp LSTM (Long Short-Term  Memory) và mô hình Word2Vec với BiLSTM (Bidirectional Long Short-Term Memory) theo ba kịch bản. Kết quả phân loại được đưa qua một hàm softmax để trả về một vector chứa dự đoán xác suất  xảy ra của từng loại lỗ hổng. Với tỷ lệ phát hiện lỗ hổng mã nguồn cho kết quả chính xác lên đến 82,63%, tương ứng với tỷ lệ bỏ sót chỉ còn 17,37%. Đây là một kết quả có thể chấp nhận được, chứng minh hiệu quả vượt trội đối với bài toán phát hiện lỗ hổng mã nguồn.

Lượt tải

Chưa có dữ liệu tải xuống.

Lượt tải xuống

Đã Xuất bản

2025-12-20