Tuyển tập Báo cáo Hội nghị Sinh viên Nghiên cứu Khoa học lần thứ 8 Đại học Đà Nẵng năm 2012
1
ỨNG DỤNG MẠNG NEURON NHÂN TẠO ĐỂ
NHẬN DẠNG TỆP THỰC THI GIẢ THƯ MỤC
FAKE FOLDER EXECUTABLE FILE RECOGNITION
USING ARTIFICIAL NEURAL NETWORK
SVTH: Nguyễn Trọng Nguyên
Lớp 07T3, Khoa Công Nghệ Thông Tin, Trường Đại học Bách khoa, Đại học Đà Nẵng
GVHD: TS. Huỳnh Hữu Hưng
Khoa Công Nghệ Thông Tin, Trường Đại học Bách khoa, Đại học Đà Nẵng
TÓM TẮT
Virus máy tính xuất hiện và lây lan ngày càng nhiều. Một tỉ lệ không nhỏ virus đánh lừa người dùng
kích hoạt bằng cách giả dạng thư mục. Các chương trình chống virus hiện nay đều nhận dạng chủ yếu dựa
trên mã đặc trưng hoặc hành vi của tệp. Trong bài báo này, tác giả đề xuất phương pháp mới, sử dụng
mạng Neuron để nhận dạng các tệp thực thi giả thư mục dựa trên việc nhận dạng biểu tượng của tệp. Tác
giả đã thử nghiệm giải pháp đề xuất với lượng lớn mẫu virus giả thư mục (70 mẫu) thu thập được thực tế
và kết quả thử nghiệm cho độ chính xác cao, hơn 99.8%.
ABSTRACT
Computer viruses appear and infect more and more. Some viruses cheat users by masquerading
folder. Most of current antiviruses are based on specific code identification or behavior. This plan introduces
another method which identify fake folder executable file, using Artificial Neural Network technology. The
proposed solution is tested with 70 fake folder virus samples, with high accuracy (more than 99.8%).
1. Mở đầu
Mạng neuron nhân tạo, Artificial Neural Network (ANN), là một mô hình xử lý thông tin
phỏng theo cách thức xử lý thông tin của các hệ neuron sinh học. ANN được ứng dụng rộng rãi
trong lĩnh vực khoa học máy tính, cụ thể là các dạng bài toán phân lớp: dự đoán [3][5][6], nhận
dạng [2][4][7][8],… ANN được tạo nên từ một lượng các phần tử (neuron) kết nối với nhau thông
qua các trọng số liên kết. Một ANN được cấu hình cho một ứng dụng cụ thể thông qua quá trình
học từ tập các mẫu huấn luyện cho trước.
Trong vấn đề nhận dạng tệp thực thi giả thư mục, mạng neuron tỏ ra ưu thế hơn các phương
pháp khác (so sánh ảnh biểu tượng tệp với ảnh biểu tượng mẫu có sẵn, xác định hình dạng đường
bao,…) ở chỗ tốn rất ít thời gian cho thủ tục tiền xử lý, trích trọn đặc trưng,… Bên cạnh đó,
phương pháp này hầu như không bị ảnh hưởng bởi nhiễu trên ảnh biểu tượng, mang tính tổng quát.
Mặt khác các phương pháp ra quyết định trong nhận dạng truyền thống được cài đặt tĩnh trong
chương trình, khi muốn bổ sung thêm các mẫu học mới cần phải thiết kế lại chương trình. Trong
khi với mạng neuron, chỉ cần cung cấp một tập mẫu huấn luyện mới là có thể bổ sung vào “bộ nhớ
mạng” những giá trị tính toán mới mà không ảnh hưởng đến cấu trúc chương trình ban đầu.
Trong phạm vi bài báo này, chúng tôi sẽ giới thiệu tổng quan về mạng neuron và ứng dụng
mạng Perceptron nhiều lớp lan truyền ngược sai số để xây dựng chương trình nhận dạng tệp thực
thi giả thư mục.
Tuyển tập Báo cáo Hội nghị Sinh viên Nghiên cứu Khoa học lần thứ 8 Đại học Đà Nẵng năm 2012
2
2. Nhận dạng tệp thực thi giả thư mục
Trong phần này, tác giả trình bày về phương pháp, thuật toán nhận dạng tệp thực thi giả thư mục.
Giải pháp đề xuất được xây dựng gồm các bước: (1) trích ảnh biểu tượng của tệp mẫu, (2) tính
vector đặc trưng, (3) thêm vector vào tệp input, (4) huấn luyện mạng neuron, (5) kiểm tra tệp và
kết luận.
Hình 1. Các bước nhận dạng tệp thực thi giả thư mục dùng ANN.
2.1. Dữ liệu đầu vào
Dữ liệu ban đầu của bài toán là các biểu tượng của các ứng dụng được chọn ngẫu nhiên từ
các ứng dụng, định dạng tệp phổ biến và một số mẫu virus giả thư mục thu thập được trong quá
trình nghiên cứu. Dữ liệu ban đầu được chia thành 2 tập dữ liệu:
- Tập biểu tượng phổ biến trong hệ điều hành Microsoft Windows.
- Tập biểu tượng các mẫu virus giả thư mục thu thập được.
Hình 2. Một số biểu tượng trong 2 tập dữ liệu.
Tính vector đặc trưng
Thêm các vector vào tệp input
Huấn luyện mạng neuron
Kiểm tra tệp & kết luận
Trích ảnh biểu tượng tệp mẫu
Tuyển tập Báo cáo Hội nghị Sinh viên Nghiên cứu Khoa học lần thứ 8 Đại học Đà Nẵng năm 2012
3
2.2. Các bước nhận dạng
2.2.1. Trích ảnh biểu tượng của tệp mẫu
Tác giả thực hiện trích biểu tượng của tệp, chuyển sang ảnh dạng bitmap với 3 kênh màu
RGB.
2.2.2. Tính vector đặc trưng
Vector đặc trưng gồm 5 thành phần:
- Trung bình lần lượt các kênh màu Red, Green, Blue trên mỗi pixel của ảnh biểu tượng:
1
1
x.
n
i
i
pi el Red
v
n
,
1
2
x.
n
i
i
pi el Green
v
n
,
1
3
x.
n
i
i
pi el Blue
v
n
(1)
- Trung bình mức xám mỗi pixel của ảnh xám từ ảnh biểu tượng:
1
4
.
n
i
i
pixel GrayScale
v
n
(2)
- Thực hiện cắt ngưỡng tự động ảnh biểu tượng và tính tỉ lệ điểm ảnh đen:
5
black
pixel
v
n
(3)
trong đó n là số pixel ảnh biểu tượng. Kết hợp các đặc trưng ở (1), (2) và (3) ta được vector
đặc trưng (v
1
,v
2
,v
3
,v
4
,v
5
).
2.2.3. Thêm các vector vào tệp input
Mỗi vector đặc trưng được đưa vào tệp vector mẫu (input) theo từng dòng, cuối mỗi dòng
là 0 hoặc 1, tương ứng với 2 tập mẫu cần học.
2.2.4. Huấn luyện mạng neuron [1][2]
Hình 3. Mạng MLP trong nhận dạng tệp thực thi giả thư mục
Neuron lớp vào Neuron lớp ẩn Neuron lớp ra
Tuyển tập Báo cáo Hội nghị Sinh viên Nghiên cứu Khoa học lần thứ 8 Đại học Đà Nẵng năm 2012
4
Hiện nay, các loại mạng neuron thông dụng gồm có: mạng truyền thẳng (Feedforward),
mạng hồi qui (Feedback), mạng tự tổ chức (Self-Organizing). Mạng truyền thẳng bao gồm nhiều
lớp các đơn vị xử lý phi tuyến (non-linear processing unit). Một vector đầu vào sẽ được đưa vào
lớp vào của mạng và sau đó các tính toán được thực hiện lan truyền thẳng từ lớp vào sang các lớp
ẩn và kết thúc ở lớp ra. Mạng Perceptron nhiều lớp MLP (MultiLayer Perceptron) là một trong
những loại mạng truyền thẳng điển hình, được sử dụng rộng rãi trong các hệ thống nhận dạng như
nhận dạng ký tự quang, chữ viết tay, nhận dạng tiếng nói,…
Với bài toán nhận dạng tệp thực thi giả thư mục, ta thiết kế một mạng MLP có 3 lớp: lớp
vào có 5 neuron tương ứng với 5 phần tử của vector đặc trưng, lớp ẩn có 3 neuron (xác định bằng
phương pháp thử-sai (Trial-and-errors)) và lớp ra có 1 neuron tương ứng với giá trị đầu ra là 1
(đúng) hoặc 0 (sai) dựa trên xấp xỉ kết quả hàm sigmoid đơn cực. Số lượng neuron lớp ẩn càng
tăng sẽ giúp mạng phân loại dữ liệu chính xác hơn, nhưng đồng thời cũng tăng chi phí tính toán.
Mạng được huấn luyện theo giải thuật lan truyền ngược sai số back-propagation [2].
2.2.5. Kiểm tra tệp & kết luận
Tính vector đặc trưng của ảnh biểu tượng tệp cần kiểm tra và truyền vào mạng đã luyện, giá
trị đầu ra ở neuron output xấp xỉ 1 thì biểu tượng tệp giống thư mục, xấp xỉ 0 thì ngược lại.
2.3. Kết quả thực nghiệm
Thử nghiệm việc huấn luyện mạng với tập mẫu gồm 15 tệp virus giả thư mục Windows XP
và 160 biểu tượng của các loại tệp phổ biến, thực hiện trên máy ảo CPU dual core 2.01GHz,
512MB RAM.
Số vector đặc trưng = 175, tốc độ học learning_rate = 0.5, hệ số góc hàm sigmoid
= 6
Bảng 1. Kết quả thực nghiệm với 5 lần cho mạng học
Lần học
Số tệp quét
Số tệp giả thư mục
Phát hiện
Phát hiện nhầm
Phát hiện thiếu
1
1607
70
72
2 (0.12%)
0
2
1607
70
73
3 (0.19%)
0
3
1607
70
70
0
0
4
1607
70
70
0
0
5
1607
70
72
2 (0.12%)
0
Qua 5 lần thực nghiệm, chúng ta nhận thấy không có tệp virus giả thư mục nào bị bỏ sót, đây là kết
quả rất khả quan. Một số tệp bị phát hiện nhầm (chiếm tỉ lệ rất thấp, tỉ lệ này chấp nhận được) là do
tập mẫu ban đầu chưa đủ phong phú, đồng thời kết quả huấn luyện mạng neuron có sự khác nhau
sau mỗi lần huấn luyện.
3. Kết luận và hướng phát triển
Với các kết quả thu được trong quá trình thử nghiệm ta nhận thấy mạng hoạt động khá ổn
định với các thông số đã thiết lập, kết quả hầu như không bị ảnh hưởng khi ảnh biểu tượng bị nhiễu
đốm. Sau khi huấn luyện, mạng nhận dạng khá tốt các tệp có biểu tượng tương tự thư mục (của cả
hệ điều hành Windows XP và Windows 7), tốc độ nhận dạng tương đối nhanh (chưa tới 30 giây để
kiểm tra hơn 1600 tệp), độ chính xác hơn 99.8%.
Tuyển tập Báo cáo Hội nghị Sinh viên Nghiên cứu Khoa học lần thứ 8 Đại học Đà Nẵng năm 2012
5
Với mỗi lần luyện mạng, một ma trận trọng số mới sẽ được tạo ra, nên kết quả thử nghiệm
sau mỗi lần luyện sẽ có sai khác nhỏ, do đó việc cho luyện mạng nhiều lần và thử nghiệm lại để
chọn bộ ma trận trọng số thích hợp là rất cần thiết.
Để thu được kết quả nhận dạng với độ chính xác cao hơn cần lượng mẫu biểu tượng phong
phú hơn (nhất là biểu tượng của các loại tệp thường thấy trên hệ điều hành Microsoft Windows), từ
đó điều chỉnh số lượng neuron lớp ẩn và các thông số mạng cho phù hợp, điều này đòi hỏi thời
gian thử nghiệm và huấn luyện mạng lâu hơn.
Có thể mở rộng khả năng nhận dạng của mạng đối với các tệp thuộc dòng Fake Icon khác
bằng cách cung cấp các tập mẫu huấn luyện tương ứng cho mạng.
TÀI LIỆU THAM KHẢO
[1] Dave Anderson, George McNeill (2006), Artificial Neural Networks Technology, Prepared for
Rome Laboratory RL/C3C Griffiss AFB, NY 13441-5700, USA.
[2] Ngô Xuân Bách (2006), Ứng dụng mạng neuron trong nhận dạng chữ viết tay rời rạc hạn chế
trực tuyến trên Tablet PC, Trường Đại học Công Nghệ, ĐH Quốc Gia Hà Nội.
[3] Đoàn An Hóa, Lê Quốc Nam (2011), Ứng dụng mạng neuron xây dựng hệ thống phát hiện
xâm nhập, Trường Đại học Bách khoa, ĐH Đà Nẵng.
[4] Đỗ Thị Phú (2008), Nhận dạng ký tự quang học bằng mạng nơron, Trường Đại học Bách
khoa, ĐH Đà Nẵng.
[5] Paula Odete Fernandes, João Paulo Teixeira, João Matos Ferreira, Susana Garrido Azevedo
(2011), “Forecasting Tourism Demand with Artificial Neural Networks”, Book of Proceedings
Vol.II – International Conference On Tourism & Management Studies, (2011), tr. 1017-1019.
[6] Phunsak Theramongkol (2000), Intelligent Ozone-level Forecasting Using Artificial Neural
Network, Environmental Systems Engineering University of Regina, Canada.
[7] Sam Maes, Karl Tuyls, Bram Vanschoenwinkel, Bernard Manderick (2002), Credit Card
Fraud Detection Using Bayesian and Neural Networks, Vrije Universiteit Brussel, Brussel.
[8] Henry A. Rowley, Shumeet Baluja, Takeo Kanade (1998), Neural Network – Based Face
Detection, Carnegie Mellon University, USA.