50
ĐẠI HC QUC GIA HÀ NI TRƯỜNG ĐẠI HC CÔNG NGHPHM LÊ MINH NÂNG CAO HIU QUPHÁT HIN MÃ ĐỘC SDNG CÁC KTHUT HC MÁY LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN Hà Ni 2019

PHẠM LÊ MINHlib.uet.vnu.edu.vn/bitstream/123456789/1016/1/luanvan.pdf · 2019. 6. 24. · ĐẠi hỌc quỐc gia hÀ nỘi trƯỜng ĐẠi hỌc cÔng nghỆ phẠm lÊ minh

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: PHẠM LÊ MINHlib.uet.vnu.edu.vn/bitstream/123456789/1016/1/luanvan.pdf · 2019. 6. 24. · ĐẠi hỌc quỐc gia hÀ nỘi trƯỜng ĐẠi hỌc cÔng nghỆ phẠm lÊ minh

ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

PHẠM LÊ MINH

NÂNG CAO HIỆU QUẢ PHÁT HIỆN

MÃ ĐỘC SỬ DỤNG CÁC KỸ THUẬT HỌC MÁY

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN

Hà Nội – 2019

Page 2: PHẠM LÊ MINHlib.uet.vnu.edu.vn/bitstream/123456789/1016/1/luanvan.pdf · 2019. 6. 24. · ĐẠi hỌc quỐc gia hÀ nỘi trƯỜng ĐẠi hỌc cÔng nghỆ phẠm lÊ minh

ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

PHẠM LÊ MINH

NÂNG CAO HIỆU QUẢ PHÁT HIỆN

MÃ ĐỘC SỬ DỤNG CÁC KỸ THUẬT HỌC MÁY

Chuyên ngành: An toàn thông tin

Mã số: 8480202.01

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN

NGƯỜI HƯỚNG DẪN KHOA HỌC: TS NGUYỄN ĐẠI THỌ

Hà Nội – 2019

Page 3: PHẠM LÊ MINHlib.uet.vnu.edu.vn/bitstream/123456789/1016/1/luanvan.pdf · 2019. 6. 24. · ĐẠi hỌc quỐc gia hÀ nỘi trƯỜng ĐẠi hỌc cÔng nghỆ phẠm lÊ minh

i

LỜI CAM ĐOAN

Tôi xin cam đoan rằng luận văn thạc sĩ công nghệ thông tin “Nâng cao

hiệu quả phát hiện mã độc sử dụng các kỹ thuật học máy” là công trình

nghiên cứu của riêng tôi, không sao chép lại của người khác. Trong toàn bộ

nội dung của luận văn, những điều đã được trình bày hoặc là của chính cá

nhân tôi hoặc là được tổng hợp từ nhiều nguồn tài liệu. Tất cả các nguồn tài

liệu tham khảo đều có xuất xứ rõ ràng và hợp pháp.

Tôi xin hoàn toàn chịu trách nhiệm và chịu mọi hình thức kỷ luật theo

quy định cho lời cam đoan này.

Hà Nội, ngày …. tháng 05 năm 2019

Phạm Lê Minh

Page 4: PHẠM LÊ MINHlib.uet.vnu.edu.vn/bitstream/123456789/1016/1/luanvan.pdf · 2019. 6. 24. · ĐẠi hỌc quỐc gia hÀ nỘi trƯỜng ĐẠi hỌc cÔng nghỆ phẠm lÊ minh

ii

LỜI CẢM ƠN

Trước tiên tôi xin dành lời cảm ơn chân thành và sâu sắc đến thầy giáo,

TS. Nguyễn Đại Thọ – người đã hướng dẫn, khuyến khích, chỉ bảo và hỗ trợ

cho tôi những điều kiện tốt nhất từ khi bắt đầu cho tới khi hoàn thành công

việc của mình.

Tôi xin dành lời cảm ơn chân thành tới các thầy cô giáo khoa Công

nghệ thông tin, trường Đại học Công nghệ, ĐHQGHN đã tận tình đào tạo,

cung cấp cho tôi những kiến thức vô cùng quý giá và đã tạo điều kiện tốt nhất

cho tôi trong suốt quá trình học tập, nghiên cứu tại trường.

Đồng thời tôi xin cảm ơn tất cả những người thân yêu trong gia đình tôi

cùng toàn thể bạn bè những người đã luôn giúp đỡ, động viên tôi những khi

vấp phải những khó khăn, bế tắc.

Cuối cùng, tôi xin chân thành cảm ơn các đồng nghiệp của tôi tại Tổng

Công ty Viễn thông Viettel – Tập đoàn Công nghiệp Viễn thông Quân đội đã

giúp đỡ, tạo điều kiện thuận lợi cho tôi học tập và nghiên cứu chương trình

thạc sĩ tại Đại học Công nghệ, ĐH QGHN.

Page 5: PHẠM LÊ MINHlib.uet.vnu.edu.vn/bitstream/123456789/1016/1/luanvan.pdf · 2019. 6. 24. · ĐẠi hỌc quỐc gia hÀ nỘi trƯỜng ĐẠi hỌc cÔng nghỆ phẠm lÊ minh

iii

MỤC LỤC

LỜI CAM ĐOAN ............................................................................................. i

LỜI CẢM ƠN .................................................................................................. ii

DANH MỤC HÌNH ......................................................................................... v

TÓM TẮT ....................................................................................................... vi

MỞ ĐẦU .......................................................................................................... 1

CHƯƠNG 1: TỔNG QUAN VỀ MÃ ĐỘC ................................................. 4

1.1. Giới thiệu về mã độc .................................................................................. 4

1.2. Phân loại mã độc ........................................................................................ 4

1.2.1. Virus [5]. ................................................................................................. 5

1.2.2. Worm [5] ................................................................................................. 7

1.2.3. Ransomware ............................................................................................ 8

1.2.4. Trojan .................................................................................................... 10

1.2.5. Backdoor [6] .......................................................................................... 10

1.2.6. Rootkits ................................................................................................. 11

1.3. Mục đích phân tích mã độc ...................................................................... 12

1.4. Phương pháp phân tích mã độc ............................................................... 12

1.5. Trích xuất đặc trưng và các loại đặc trưng ............................................... 14

1.5.1. Trích xuất đặc trưng .............................................................................. 14

1.5.2. Các loại đặc trưng ................................................................................. 15

CHƯƠNG 2: TỔNG QUAN VỀ HỌC MÁY ............................................. 17

2.1. Giới thiệu về học máy .............................................................................. 17

2.2. Phân loại các thuật toán học máy [2] ....................................................... 19

2.3. Thuật toán One-class SVM. ..................................................................... 20

2.3.1. Giới thiệu thuật toán One-class SVM ................................................... 20

2.3.2. Giới thiệu thuật toán SVM. ................................................................... 21

2.3.3. Thuật toán One-class SVM theo tác giả Schölkopf .............................. 25

Page 6: PHẠM LÊ MINHlib.uet.vnu.edu.vn/bitstream/123456789/1016/1/luanvan.pdf · 2019. 6. 24. · ĐẠi hỌc quỐc gia hÀ nỘi trƯỜng ĐẠi hỌc cÔng nghỆ phẠm lÊ minh

iv

2.3.4. Thuật toán One-class SVM theo tác giả Tax và Duin .......................... 26

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

CHƯƠNG 3: PHƯƠNG PHÁP ÁP DỤNG HỌC MÁY VÀO PHÂN

TÍCH MÃ ĐỘC ............................................................................................. 30

3.1. Mô hình đề xuất thực hiện gồm các bước sau: ....................................... 30

3.2. Thu thập và tiền xử lý xử liệu dữ liệu ..................................................... 31

3.2.1. Thu thập dữ liệu gói tin mạng ............................................................... 31

3.2.2. Trích chọn đặc trưng trong header của gói tin ...................................... 32

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

3.3. Lựa chọn đặc trưng ................................................................................. 34

3.3.1. Lựa chọn đặc trưng từ header ............................................................... 34

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

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

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

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

3.5.2. Chương trình thực nghiệm .................................................................... 36

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

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

KẾT LUẬN .................................................................................................... 39

TÀI LIỆU THAM KHẢO ............................................................................ 41

Page 7: PHẠM LÊ MINHlib.uet.vnu.edu.vn/bitstream/123456789/1016/1/luanvan.pdf · 2019. 6. 24. · ĐẠi hỌc quỐc gia hÀ nỘi trƯỜng ĐẠi hỌc cÔng nghỆ phẠm lÊ minh

v

DANH MỤC HÌNH

Hình 2.1: quy trình học máy ........................................................................... 17

Hình 2.2: phân tích bài toán SVM .................................................................. 23

Hình 2.3: các điểm gần mặt phân cách nhất của hai class được khoanh tròn . 24

Hình 3.1: mô hình phân tích mã độc ............................................................... 30

Hình 3.2: thông tin gói tin http ........................................................................ 31

Hình 3.3: thông tin header của giao thức http ................................................. 32

Hình 3.4: thông tin payload trong gói tin http ................................................ 32

Hình 3.5: trích xuất đặc trưng từ header ......................................................... 32

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

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

Hình 3.8: payload được trích xuất theo phương pháp 2-gram ........................ 34

Page 8: PHẠM LÊ MINHlib.uet.vnu.edu.vn/bitstream/123456789/1016/1/luanvan.pdf · 2019. 6. 24. · ĐẠi hỌc quỐc gia hÀ nỘi trƯỜng ĐẠi hỌc cÔng nghỆ phẠm lÊ minh

vi

TÓM TẮT

Phần mềm độc hại (mã độc) là một trong những mối đe dọa bảo mật

gây thiệt hại lớn nhất đối với Internet hiện nay. Việc phát hiện chính xác phần

mềm độc hại hết sức khó khăn và nhiều thử thách do mã độc ngày càng tinh

vi trong việc che dấu bản thân bằng các kỹ thuật như mã hóa nội dung

(payload) và ngụy trang (obfucation). Ngoài ra, nhiều loại phần mềm độc hại

phát triển nhanh chóng với nhiều thể loại tiếp tục cản trở việc phát hiện mã

độc. Trong học máy, lựa chọn đặc trưng và trích xuất đặc trưng là một trong

những thành phần quan trọng ảnh hưởng đến kết quả xây dựng mô hình học

máy. Trong luận văn này chúng tôi tập trung vào hai cách trích xuất đặc trưng

của gói tin mạng từ tiêu đề (header) và từ nội dung (payload), sau đó đánh giá

hiệu quả của 02 phương pháp trích chọn đặc trưng mạng với cùng một thuật

toán học máy được áp dụng là one-class SVM để phát hiện, phân loại mã độc.

Kết quả thưc nghiệm với các độ đo F1, Precision, Recall để đánh giá hiệu quả

của thuật toán cho thấy phương pháp trích xuất từ header có độ chính xác cao

hơn so với phương pháp trích xuất từ payload, cụ thể: phương pháp trích xuất

từ header có kết quả với các độ đo Precision, Recall, F1 lần lượt là 95,93%,

95,83%, 95,84% so với phương pháp trích xuất từ payload cho kết quả lần

lượt là là 87,78%, 71,16%, 78,60% đối với tập dữ liệu huấn luyện và kết quả

95,91%, 95,73%, 95,82% so với kết quả 85,58%, 69,82%, 76,91% đối với tập

dữ liệu kiểm thử. Điều này cho thấy có thể phát hiện mã độc trong các gói tin

mạng một cách hiệu quả chỉ bằng cách xem xét các thông tin tiêu đề, không

cần tiêu tốn thời gian vào quét và phân tích nội dung của từng gói tin.

Page 9: PHẠM LÊ MINHlib.uet.vnu.edu.vn/bitstream/123456789/1016/1/luanvan.pdf · 2019. 6. 24. · ĐẠi hỌc quỐc gia hÀ nỘi trƯỜng ĐẠi hỌc cÔng nghỆ phẠm lÊ minh

1

MỞ ĐẦU

Ngày nay cùng với sự phát triển mạnh mẽ của công nghệ thông tin và

sự phát triển của Internet toàn cầu là các nguy cơ mất an toàn thông tin đang

trở nên nguy hiểm và khó lường hơn, trong đó mã độc hại (malware) là một

trong những mối hiểm họa nghiêm trọng trên Internet. Mã độc ngày càng tiến

hóa với những biến thể đa dạng từ virus máy tính, worm, botnet…với các

hình thức xâm nhập, che dấu ngày càng tinh vi. Số lượng và hình thái đa dạng

của mã độc ngày càng tăng, trong khi các phần mềm phòng chống mã độc

không thể phát hiện, ngăn chặn được hết dẫn đến hàng triệu máy tính bị

nhiễm mã độc. Ở Việt Nam, theo số liệu thống kê của BKAV thì năm 2017 có

đến 15 triệu máy tính ở Việt Nam bị nhiễm mã độc tương ứng thiệt hại

khoảng 12.300 tỷ đồng. Ngoài ra, ngày nay để phát triển một mã độc mới

không yêu cầu nhiều kỹ năng cao do tính sẵn có các công cụ tấn công trên

internet. Tính sẵn sàng cao của các kỹ thuật chống phát hiện cũng như khả

năng mua phần mềm độc hại trên thị trường chợ đen dẫn đến cơ hội trở thành

một kẻ tấn công cho bất kỳ ai, không phụ thuộc vào cấp độ kỹ năng và trình

độ chuyên môn. Do đó, bảo vệ hệ thống máy tính khỏi các phần mềm độc hại

trên Intenet là một trong những nhiệm vụ quan trọng nhất về an ninh mạng

cho người dùng, doanh nghiệp. Một cuộc tấn công đơn lẻ có thể dẫn đến dữ

liệu bị xâm phạm và gây ra những hậu quả to lớn. Sự mất mát lớn và các cuộc

tấn công thường xuyên đặt ra yêu cầu cần thiết phải có các phương pháp phát

hiện chính xác và kịp thời. Các kỹ thuật phân tích tĩnh và phân tích động

thường dựa vào cơ sở dữ liệu được xây dựng trước đó nên có một số hạn chế

như khó có khả năng phát hiện ra các mã độc mới, các lỗ hổng chưa được

công bố (zero-day) hay các biến thể của mã độc đã biết. Hơn nữa, ngày nay số

lượng mã độc ngày càng tăng cao dẫn đến số lương mẫu ngày càng nhiểu đòi

hỏi phải có một phương pháp phù hợp để phát hiện mã độc. Do đó hướng

Page 10: PHẠM LÊ MINHlib.uet.vnu.edu.vn/bitstream/123456789/1016/1/luanvan.pdf · 2019. 6. 24. · ĐẠi hỌc quỐc gia hÀ nỘi trƯỜng ĐẠi hỌc cÔng nghỆ phẠm lÊ minh

2

nghiên cứu dựa vào các mô hình học máy để phát hiện và phân loại mã độc tỏ

ra là phương pháp tìm năng và hiệu quả khi số lượng mẫu mã độc lớn và các

biến thể của mã độc ngày càng đa dạng. Tuy nhiên một trong những vấn đề

chính được quan tâm là làm thế nào để xây dựng được mô hình học máy hiệu

quả và mang lại kết quả chính xác cao. Trong đó có một yếu tố quan trọng

ảnh hưởng chính đến mô hình và hiệu qủa của các thuật toán học máy là lựa

chọn đặc trưng và các phương pháp trích chọn đặc trưng phù hợp. Trong phần

nghiên cứu của luận văn này chúng tôi lựa chọn đặc trưng mạng do đặc trưng

mạng có thể nâng cao khả năng phát hiện các lỗ hổng chưa được biết (zero-

day) và khắc phục được hạn chế về hiệu quả học máy đối với việc lựa chon

các đặc trưng khác như đặc trưng về byte sequence, strings, API, opcode,

system call ... được sử dụng làm đầu vào cho các thuật toán học máy thường

cho kết quả không tốt đối với các mã độc được mã hóa, được ngụy trang

(obfucated), biến thể của mã độc. Đồng thời, chúng tôi trình bày về 02

phương pháp trích chọn đặc trưng gói tin mạng gồm phương pháp trích chọn

đặc trưng từ tiêu đề (header) của gói tin mạng và phương pháp trích chọn đặc

trưng từ tải (payload) của gói tin mạng dựa trên phương án 2-gram. Sau đó dữ

liệu đặc trưng này sẽ được trích chọn ra các đặc trưng phù hợp nhất làm đầu

vào cho thuật toán học máy, trong luận văn này chúng tôi lựa chọn thuật toán

one-class SVM do thuật toán one-class SVM là một trong những thuật toán

phân loại phổ biến nhất và có khả năng phát hiện mã độc đã biết, mã độc mới

(zero-day), các biến thể của mã độc và phân loại mã độc. Kết quả của luận

văn được thực nghiệm dựa trên dữ liệu mẫu Android Malware dataset

(CICAndMal2017) gồm 212788 mẫu, trong đó có 168186 mẫu sạch và 44202

mẫu mã độc thuộc họ Ransomware gồm các loại Charger, Jisut, Wannalocker.

Kết quả thực nghiệm với các độ đo F1, Precision, Recall để đánh giá hiệu quả

của thuật toán cho thấy phương pháp trích xuất từ header có độ chính xác cao

hơn so với phương pháp trích xuất từ payload, cụ thể: phương pháp trích xuất

từ header có kết quả với các độ đo Precision, Recall, F1 lần lượt là 95,93%,

Page 11: PHẠM LÊ MINHlib.uet.vnu.edu.vn/bitstream/123456789/1016/1/luanvan.pdf · 2019. 6. 24. · ĐẠi hỌc quỐc gia hÀ nỘi trƯỜng ĐẠi hỌc cÔng nghỆ phẠm lÊ minh

3

95,83%, 95,84% so với phương pháp trích xuất từ payload cho kết quả lần

lượt là là 87,78%, 71,16%, 78,60% đối với tập dữ liệu huấn luyện và kết quả

95,91%, 95,73%, 95,82% so với kết quả 85,58%, 69,82%, 76,91% đối với tập

dữ liệu kiểm thử.

Nội dung tiếp theo của luận văn này được chia làm 04 phần như sau:

Chương 1: Tổng quan về mã độc. Chương này này sẽ giới thiệu về các

loại mã độc, phân loại mã độc, các kỹ thuật phân tích mã độc, các đặc trưng

và trích chọn đặc trưng.

Chương 2: Tổng quan về kỹ thuật học máy. Chương này sẽ giới thiệu

về học máy, phân loại các phương pháp học máy, thuật toán học máy svm,

thuật toán one-class svm và các phương pháp đánh giá hiệu quả của học máy.

Chương 3: Giải pháp áp dụng học máy vào phân tích mã độc. Chương

này sẽ trình bày về mô hình đề xuất, 02 phương pháp trích chọn đặc trưng gói

tin mạng, lựa chọn đặc trưng, thực nghiệm và đánh giá kết quả thực nghiệm.

Kết luận và hướng phát triển của đề tài

Page 12: PHẠM LÊ MINHlib.uet.vnu.edu.vn/bitstream/123456789/1016/1/luanvan.pdf · 2019. 6. 24. · ĐẠi hỌc quỐc gia hÀ nỘi trƯỜng ĐẠi hỌc cÔng nghỆ phẠm lÊ minh

4

CHƯƠNG 1: TỔNG QUAN VỀ MÃ ĐỘC

Chương này giới thiệu khái niệm về mã độc, phân loại mã độc, mục

đích phân tích mã độc và các kỹ thuật phân tích mã độc.

1.1. Giới thiệu về mã độc

Mã độc (tên tiếng anh là malware – được viết tắt từ malicious software)

là loại phần mềm bất kỳ được thiết kế có mục đích để gây tổn hại cho một

máy tính, máy chủ, máy khách hoặc mạng máy tính. Các chương trình độc hại

này có thể thực hiện nhiều chức năng, bao gồm ăn cắp, mã hóa hoặc xóa dữ

liệu nhạy cảm, thay đổi hoặc chiếm đoạt các chức năng tính toán lõi và giám

sát hoạt động máy tính của người dùng mà không được sự cho phép của họ.

Mã độc chỉ gây thiệt hại sau khi được cấy hoặc đưa vào máy tính mục tiêu và

có thể ở dạng mã lệnh thực thi, tập lệnh, nội dung hoạt động và phần mềm

khác. Mã độc có mục đích xấu, hoạt động trái phép với người dùng máy tính

bình thường vì vậy mã độc không bao gồm phần mềm gây ra tác hại vô ý do

một số thiếu sót liên quan đến lỗi phần mềm.

Các chương trình được cung cấp chính thức bởi các công ty có thể

được coi là phần mềm độc hại nếu họ bí mật hành động chống lại lợi ích của

người dùng máy tính. Ví dụ, tại một thời điểm, đĩa nhạc Compact của hãng

Sony đã bí mật cài đặt một rootkit trên máy tính người mua với đích ngăn

chặn sự sao chép bất hợp pháp nhưng đồng thời cũng thu thập thông tin về

thói quen nghe nhạc của người dùng và vô tình tạo ra các lỗ hổng bảo mật.

Các giải pháp như phần mềm antivirus, tường lữa…thường được sử dụng để

kiểm tra sự tồn tại, các hoạt động độc hại cũng như ngăn chặn phần mềm độc

hại truy cập vào máy tính.

1.2. Phân loại mã độc

Có nhiều cách tiếp cận khác nhau để phân loại mã độc thành một số

loại nhật định với các đặc điểm cụ thể như: tính nhân bản, sự nhiễm độc, tàng

hình, lệnh và điểu khiển (C&C), các kỹ thuật che dấu, tập hợp các hành vi

Page 13: PHẠM LÊ MINHlib.uet.vnu.edu.vn/bitstream/123456789/1016/1/luanvan.pdf · 2019. 6. 24. · ĐẠi hỌc quỐc gia hÀ nỘi trƯỜng ĐẠi hỌc cÔng nghỆ phẠm lÊ minh

5

được thể hiện trong quá trình chạy trên hệ điều hành. Hơn nữa, ngày càng khó

xác định các phần mềm độc hại vì ngày nay tác giả của phần mềm độc hại có

thể dễ dàng tiếp cận mã nguồn của một số mẫu phần mềm độc hại và kết hợp

các chức năng của chúng để tạo ra các mẫu mới có cơ chế tự mở rộng khả

năng và nhỏ gọn hơn. Mặc dù không có sự thống nhất chung về việc phân loại

phần mềm độc hại, các loại phần mềm độc hại dựa trên mục đích và hành vi

của chúng có thể được phân loại như sau:

1.2.1. Virus [5].

1.2.1.1. Khái niệm

Virus máy tính là một loại phần mềm độc hại phổ biến nhất, được ẩn

dấu trong một chương trình có vẻ vô hại, có thể tự tạo ra các bản sao và lây

lan vào các chương trình khác hoặc các tệp (file) khác để thực hiện một hành

vi độc hại như xóa file, sao chép nội dung, mã hóa file...

1.2.1.2. Thành phần

Một virus máy tình gồm 03 thành phần:

o Cơ chế lây nhiễm: các phương tiện mà virus lây lan, cho phép tự nhân

bản, cơ chế này gọi là vec-tơ lây nhiễm

o Bộ kích khởi (trigger): sự kiện hay điều kiện mà quyết định khi nào tải

(payload) được kích hoạt

o Payload: một đoạn mã được chạy trên máy nạn nhân, dùng để thực hiện

một số hoạt động phá hoại hoặc có thể liên quan đến hoạt động lành tính

nào đó nhưng đáng chú ý.

1.2.1.3. Vòng đời của Virus

Vòng đời của Virus, thường bao gồm 04 giai đoạn sau:

o Giai đoạn ngủ đông: Giai đoạn này virus không hoạt động, Virus được

kích hoạt bởi một số sự kiện như: như ngày, sự có mặt của chương trình

khác hoặc tệp tin hoặc dung lượng ổ đĩa vượt quá giới hạn. Không phải

tất cả các virus đều có giai đoạn này.

Page 14: PHẠM LÊ MINHlib.uet.vnu.edu.vn/bitstream/123456789/1016/1/luanvan.pdf · 2019. 6. 24. · ĐẠi hỌc quỐc gia hÀ nỘi trƯỜng ĐẠi hỌc cÔng nghỆ phẠm lÊ minh

6

o Giai đoạn nhân bản: Virus sao chép bản sao của chính nó vào chương

trình khác hoặc vào các vùng của hệ thống trên ổ cứng. Bản sao của nó

có thể không giống với phiên bản lan truyền, virus thường biến hình để

tránh phát hiện. Mỗi chương trình đã bị nhiễm sẽ chứa một bản sao của

virus, bản thân virus sẽ bước vào giai đoạn nhân bản.

o Giai đoạn kích hoạt: Virus sẽ được kích hoạt để thực hiện chức năng mà

nó đã dự định. Cũng như giai đoạn không hoạt động, giai đoạn kích hoạt

có thể được thực hiện bởi một loạt các sự kiện hệ thống, bao gồm số lần

bản sao của virus đã tạo ra các bản sao của chính nó.

o Giai đoạn thực thi: Chức năng của virus được thực hiện, chức năng có

thể vô hại như một thông báo trên màn hình hoặc phá hoại chương trình

và các tệp dữ liệu

1.2.1.4. Phân loại virus:

Virus cơ bản được phân làm hai loại: theo loại mục đích mà virus cố

gắng lây nhiễm và theo phương pháp mà virus sử dụng để che dấu bản thân

nhằm tránh phát hiện bởi người dùng và các phần mềm chống virus. Phân loại

theo mục đích bao gồm các loại sau:

Lây nhiễm vào vùng khởi động (Boot sector infector): lây nhiễm một

bản ghi khởi động chính hoặc bản khi khởi động và lây lan khi một hệ

thống được khởi động từ đĩa chứa virus.

Lây nhiễm têp tin (file infector): lây nhiễm vào các tệp tin của hệ điều

hành hoặc shell được thực thi.

Macro virus: lây nhiễm các tệp tin với mã macro được biên dịch bởi một

ứng dụng.

Phân loại theo phương pháp mà Virus sử dụng bao gồm các loại sau:

Virus được mã hóa (Encrypted virus): phương pháp được thực hiện như

sau. Một phần của virus tạo ra một khóa mã hóa ngẫu nhiên và mã hóa

phần còn lại của virus. Khóa được lưu với virus. Khi một chương trình

bị nhiễm được gọi, virus sử dụng khóa ngẫu nhiên được lưu trữ để giải

Page 15: PHẠM LÊ MINHlib.uet.vnu.edu.vn/bitstream/123456789/1016/1/luanvan.pdf · 2019. 6. 24. · ĐẠi hỌc quỐc gia hÀ nỘi trƯỜng ĐẠi hỌc cÔng nghỆ phẠm lÊ minh

7

mã virus. Khi virus nhân bản, một khóa ngẫu nhiên khác nhau được lựa

chọn. Bởi vì phần lớn virus được mã hóa bằng một khóa khác nhau cho

mỗi trường hợp dẫn đến không có mẫu bit cố định để quan sát.

Virus tàng hình (Stealth virus): một hình thức của virus được thiết kế để

che dấu bản thân nó khỏi sự phát hiện của phần mềm chống virus.

Virus đa hình (Polymorphic virus): một loại virus biến đổi theo mọi lây

nhiễm, khiến cho việc phát hiện virus bằng chữ ký trở nên không thể.

Virus biến hóa (Metamorphic virus): giống như một virus biến hình,

một virus biến hóa biến đổi với mọi sự lây nhiễm. Sự khác biệt là một

virus biến hóa tự viết lại hoàn toàn ở mỗi vòng lặp để tăng độ khó phát

hiện. Virus biến hóa có thể thay đổi hành vi, cũng như ngoại hình của

chúng.

1.2.2. Worm [5]

Sâu (Worm) là một chương trình có thể tự sao chép và gửi các bản sao

từ máy tính này sang máy tính khác qua các kết nối mạng. Khi đến nơi, worm

có thể được kích hoạt và nhân bản lần nữa. Ngoài việc nhân bản, worm

thường thực hiện một số chức năng không mong muốn như thu thập thông tin

hệ thống, tìm kiếm lỗ hổng bảo mật... Worm là một loại phần mềm độc hại

được ẩn náu trong máy tính, nhưng nó không phải là virus vì nó không được

nhúng vào chương trình khác.Worm lây nhiễm từ máy tính này đến máy tính

khác bằng cách khai thác lổ hổng bảo mật hoặc lỗ hổng do chính tác giả tạo ra.

Để tự nhân bản, một worm mạng sử dụng một số phương tiện mạng như sau:

Chức năng thư điện tử (Electronic mail facility): worm thư điện tử gửi

bản sao của nó đến hệ thống khác, mã của nó được kích hoạt khi thư

điện tử hoặc tệp đính kèm nhận được hoặc xem.

Khả năng thực thi từ xa (Remote execution capability): worm thực thi

bản sao của chính nó trên hệ thống khác bằng cách sử dụng một cơ chế

thực thi từ xa hoặc bằng cách khai thác lỗ hổng chương trình của một

dịch vụ mạng để phá hủy hoạt động của chúng.

Page 16: PHẠM LÊ MINHlib.uet.vnu.edu.vn/bitstream/123456789/1016/1/luanvan.pdf · 2019. 6. 24. · ĐẠi hỌc quỐc gia hÀ nỘi trƯỜng ĐẠi hỌc cÔng nghỆ phẠm lÊ minh

8

Khả năng truy cập từ xa (Remote login capability): worm đăng nhập

vào hệ thống từ xa như một người dùng, sau đó sử dụng các lệnh để sao

chép chính nó từ hệ thống này đến hệ thống khác và thực thi lệnh.

Ví dụ, một trong những sâu máy tính nổi tiếng nhất trong lịch sử máy tính

có tên là Confiker. Confiker mục tiêu tấn công vào hệ điều hành Microsoft

Window, phiên bản đầu tiên của sâu Confiker được phát hiện vào tháng 10

năm 2008 và đã lây nhiễm hàng triệu máy tính trên thế giới. Confiker khai

thác một lỗ hổng về dịch vụ mạng được xây dựng trên hệ điều hành Window,

bao gồm tất các các phiên bản từ Window 2008 đến Windows server 2008

được nhân bản qua Internet. Lỗ hổng này có tên là MS08_067, cho phép một

kẻ tấn cống thực thi mã lệnh từ xa và chiếm toàn bộ quyền điều khiển máy

tính từ xa.

1.2.3. Ransomware

Ransomware (mã độc tống tiền) gồm nhiều lớp phần mềm độc hại với

mục đích hạn chế truy cập đến hệ thống máy tính mà nó đã lây nhiễm và đòi

hỏi phải trả một khoản tiền cho kẻ tấn công nhằm xóa bỏ hạn chế truy cập mà

nó đã tạo ra trước đó. Một vài dạng của ransomware mã hóa tệp tin, dữ liệu

trên ổ đĩa cứng nhằm tống tiền, trong khi một vài dạng khác thì đơn giản hơn

như chúng khóa hệ thống lại và hiển thị một thông báo để thuyết phục nạn

nhân trả tiền. Mã độc tống tiền thường lan truyền qua email với các file đính

kèm, như các virus máy tính khác, khi mở file đính kèm này thì máy tính của

người dùng sẽ bị kiểm soát. Khi đó, mã độc quét toàn bộ ổ đĩa của máy tính

và mã hóa các file bằng mã hóa công khai. Hầu hết các tập tin quan trọng trên

máy tính người dùng với định dạng .doc, pdf, xls, zip... sẽ không mở được

nữa. Để giải mã bắt buộc phải có khóa bí bật, mà khóa bí mật chỉ có kẻ tấn

công mới có và nạn nhân sẽ nhận được thông báo trên màn hình (desktop) đòi

tiền chuộc nếu muốn giải mã file. Một số loại mã độc ransomware như sau:

Charger: mã độc này sẽ sao chép tất cả các dữ liệu từ tin nhắn dạng text,

danh bạ, nhật ký ...và tìm kiếm quyền admin từ người dùng. Nếu người

Page 17: PHẠM LÊ MINHlib.uet.vnu.edu.vn/bitstream/123456789/1016/1/luanvan.pdf · 2019. 6. 24. · ĐẠi hỌc quỐc gia hÀ nỘi trƯỜng ĐẠi hỌc cÔng nghỆ phẠm lÊ minh

9

dùng chấp nhận yêu cầu của mã độc, thì phần mềm mềm độc hại sẽ tấn

công người dùng và một tin nhắn cảnh báo cho người dùng biết là thiết

bị của người dùng đã bị khóa và các dữ liệu cá nhân sẽ được bán trên thị

trường nếu người dùng không chấp nhận trả tiền chuộc. Các nạn nhân

của mã độc Charger sẽ yêu cầu phải trả khoảng 0.2 bitcoins (khoảng

8000$ USD) nếu muốn mở khóa (unblock) thiết bị.

Jisut: Không giống như những mã độc ransomware khác thường yêu cầu

tiền chuộc thì Jisut tiếp cận theo một cách khác và không quan tâm về

sự nặc danh. Trên màn hình xuất hiện con ngựa con bao gồm thông tin

liên quan trên mạng xã hội QQ ở Trung Quốc và thuyết phục nạn nhân

liên hệ với tác giả để lấy lại các tệp tin của họ. Nếu thông tin trên QQ là

đúng thì chủ nhân của mã độc là các thanh niên từ 16 đến 21 tuổi sẽ

xuất hiện. Các biến thể đầu tiên của Jisut Android/LockScreen xuất hiện

nữa đầu năm 2014, từ thời điểm 2014 đến bây giờ đã phát hiện hàng

trăm biến thể của Jisut với các hành vi khác nhau hoặc các tin nhắn đòi

tiền chuộc khác nhau nhưng tất cả dựa trên cùng một mẫu mã độc. Khi

mã độc Jisut được kích hoạt thì nó sẽ tạo ra một màn hình hoạt động

được hiện lên với đầy đủ màn hình với màu đen, nếu người dùng thay

đổi giao diện hoặc tắt, khởi động lại thiết bị thì một thông báo sẽ được

hiển thị lên hoặc một bài hát sẽ được thực thi.

WannaLocker: mã độc này là một loại khác của ransomware Wannacry,

ban đầu nhắm đến người dùng Android ở Trung Quốc và mở rộng ra

toàn thế giới. Mã độc này lây nhiễm các tệp tin (files) trên bộ lưu trữ

của thiết bị và mã hóa các tệp tin bằng thuật toát mã hóa AES. Khi các

tệp tin bị mã hóa, mã độc sẽ hiện lên một thông báo đòi tiền chuộc

tương tự như WannaCry, nó cung cấp thông tin về dữ liệu đã được mã

hóa và các khả năng đê phục hội chúng bằng ngôn ngữ tiếng trung.

WannaLocker yêu cầu số tiền chuộc là 40 Renmibi Trung Quốc và cách

liên lạc để thực hiện giao dịch chuyển tiền và khôi phục dữ liệu.

Page 18: PHẠM LÊ MINHlib.uet.vnu.edu.vn/bitstream/123456789/1016/1/luanvan.pdf · 2019. 6. 24. · ĐẠi hỌc quỐc gia hÀ nỘi trƯỜng ĐẠi hỌc cÔng nghỆ phẠm lÊ minh

10

1.2.4. Trojan

Trojan là một loại phần mềm giả mạo phổ biến, chúng thường ẩn náu

trong chương trình phần mềm hữu ích để thực hiện các nhiệm vụ mong muốn

và hợp pháp nhưng thực chất là thực hiện một số chức năng độc hại như xóa

file, thu thập thông tin hệ thống và gửi cho máy chủ điều khiển, ăn cắp thông

tin tài khoản người dùng ....Những chức năng mong muốn và hợp pháp chỉ là

phần bề mặt giả tạo nhằm che dấu cho các thao táo độc hại. Không giống như

virus, trojan không có chức năng tự sao chép nhưng lại có chức năng phá hoại

tương tự virus. Một số dạng Trojans cơ bản như sau:

Remote Access Trojans: cho phép kẻ tấn công kiểm soát toàn bộ hệ

thống từ xa

Data-Sending Trojans: Trojan gửi thông tin nhạy cảm của nạn nhân cho

kẻ tấn công

Destructive Trojans: Trojan phá hủy hệ thống

Denied-of-Service – DoS Attack Trojan: Trojan phục vụ tấn công Ddos

HTTP, FTP Trojans: Trojan tự tạo thành HTTP hay FTP server để kẻ

tấn công khai thác lỗi

Security Software Disable Trojan: Có tác dụng tắt tính năng bảo mật

trong các máy tính nạn nhân

1.2.5. Backdoor [6]

Backdoor (cửa hậu) là một loại phần mềm độc hại cung cấp cho kẻ tấn

công quyền truy cập từ xa vào máy nạn nhân. Backdoor là loại phần mềm độc

hại phổ biến nhất và chúng có đủ hình dạng, kích cỡ với khả năng khác nhau.

Mã backdoor thường thực hiện đầy đủ các khả năng, vì vậy khi sử dụng

backdoor kẻ tấn công thường không cần tải thêm các phần mềm độc hại khác

hoặc mã chương trình. Backdoor thường cho phép kẻ tấn công kết nối đến

máy tính từ xa với ít quyền hoặc không cần xác thực và đi kèm với một số

chức năng phổ biến như khả năng thao tác các khóa registry, liệt kê các cửa sổ

hiện thị, tạo thư mục, tìm kiếm tập tin, truy cập từ xa bằng tài khoản riêng,

thực thi lệnh hệ thống....Một số loại backdoor như sau:

Page 19: PHẠM LÊ MINHlib.uet.vnu.edu.vn/bitstream/123456789/1016/1/luanvan.pdf · 2019. 6. 24. · ĐẠi hỌc quỐc gia hÀ nỘi trƯỜng ĐẠi hỌc cÔng nghỆ phẠm lÊ minh

11

Reverse Shell: là một kết nối bắt nguồn từ một máy bị nhiễm và cung

cắp quyền truy cập shell cho kẻ tấn công vào máy tính đó. Khi ở trong

reverse shell, kẻ tấn công có thể thực thi các lệnh trên máy của nạn nhân

ngay trên máy của kẻ tấn công.

RATs: công cụ quản trị từ xa (RAT) được sử dụng để quản lý các máy

tính từ xa. RAT thường được sử dụng trong các cuộc tấn công có chủ

đích với mục tiêu cụ thể, chẳng hạn như đánh cắp thông tin.

Botnet: là tập hợp các máy chủ bị xâm nhập, được gọi là zombie, được

điểu khiển bởi máy chủ botnet. Mục tiêu của botnet là tạo ra một mạng

lưới zombie lớn để botnet phát tán mềm mềm độc hại hoặc thực hiện tấn

công từ chối dịch vụ (DDoS).

1.2.6. Rootkits

Rootkit là một bộ công cụ phần mềm do kẻ xâm nhập đưa vào máy tính

nạn nhân nhằm mục đích cho phép mình quay lại xâm nhập máy tính đó và

dùng nó cho các mục đích xấu mà không bị phát hiện. Một số mục đích của

kẻ xâm nhập khi sử dụng rootkit bao gồm:

Thu thập dữ liệu về các máy tính trong cùng mạng và thông tin của

người dùng như mật khẩu, thông tin tài chính.

Tạo hoặc chuyển tiếp spam.

Gây lỗi hoặc sai trong hoạt động của máy tính.

Rootkit được thiết kế tốt có khả năng che giấu hoặc xóa bỏ bất cứ dấu

vết nào của việc nó truy cập vào máy tính, sự tồn tại và hoạt động của nó. Ví

dụ, nó có thể sữa nhật ký (log) của hệ thống để hệ điều hành không ghi hoặc

xóa bỏ tất cả các thông tin liên quan đến việc nó đăng nhập vào máy, thông

tin các lần truy cập tiếp theo của kẻ xâm nhập, thông tin về các chương trình

mà rootkit chạy. Rootkit không phải là virus do nó không tự nhân bản và

không có cơ chế hoạt động tự chủ. Rootkit nằm hoàn toàn dưới quyền kiểm

soát của kẻ tấn công.

Page 20: PHẠM LÊ MINHlib.uet.vnu.edu.vn/bitstream/123456789/1016/1/luanvan.pdf · 2019. 6. 24. · ĐẠi hỌc quỐc gia hÀ nỘi trƯỜng ĐẠi hỌc cÔng nghỆ phẠm lÊ minh

12

1.3. Mục đích phân tích mã độc

Khái niệm: phân tích phần mềm độc hại là quá trình xác định chức

năng và mục đích của mẫu phần mềm độc hại đã cho là virus, worm, Trojan

Horse .. hay biến thể của mã độc đã biết hoặc mã độc mới.

Các mục đích của phân tích mã độc: có ba mục đích chính trong việc

phân tích mã độc bao gồm phát hiện mã độc, phân tích sự tương tự giữa các

phần mềm độc hại và phân loại các phần mềm độc hại. Chi tiết ba mục đích

của phân tích mã độc như sau: [2]

Phát hiện mã độc nhằm mục đích phát hiện một tập tin có phải là mã

độc hay không.

Phân tích sự tương tự giữa các phần mềm độc hại nhằm mục đích kiểm

tra sự giống nhau, khác nhau giữa các phần mềm độc hại để phát hiện

biến thể của mã độc đã biết hoặc lớp mã độc mới.

Phân loại phần mềm độc hại: cho phép phân loại phần mềm độc hại vào

các nhóm phần mềm đọc hại khác nhau như nhóm virus, horm, rootkit...

1.4. Phương pháp phân tích mã độc

Hiện tại có một số kỹ thuật được dùng để phân tích mã độc, gồm có phân

tích tĩnh, phân tích động và phân tích lai, chi tiết các các kỹ thuật như sau:

Phân tích tĩnh là phương pháp phân tích phần mềm mà không cần thực

thi chúng. Các thông tin thu được có thể bao gồm các metadata của chương

trình, định dạng, dung lượng…các chuỗi ký tự xuất hiên trong mã nguồn, các

thư viện được thêm vào (import), các lời gọi hàm có thể được sử dụng, mã

nguồn chương trình dưới dạng Assembly…Ưu điểm của phương pháp này là

có thể biết được tất cả các khả năng thực hiện có thể của chương trình, tuy

nhiên đối với mã độc thì việc phân tích tĩnh thường gặp khó khăn do việc mã

hóa (Encrypt), đóng gói (Packed), ngụy trang (Obfuscated). Một số kỹ thuật

được sử dụng cho phân tích tĩnh bao gồm [8]:

Kỹ thuật phát hiện dựa trên chữ ký (signature based detection

technique) còn gọi là khớp mẫu hoặc chuỗi hoặc mặt nạ hoặc kỹ thuật

Page 21: PHẠM LÊ MINHlib.uet.vnu.edu.vn/bitstream/123456789/1016/1/luanvan.pdf · 2019. 6. 24. · ĐẠi hỌc quỐc gia hÀ nỘi trƯỜng ĐẠi hỌc cÔng nghỆ phẠm lÊ minh

13

dấu vân tay. Chữ ký là một chuỗi các bit được người viết phần mềm độc

hại chèn vào chương trình ứng dụng được viết bởi những người phát

triển mã độc và cho phép nhận ra một loại mã độc cụ thể. Để phát hiện

phần mềm độc hại trong mã của chương trình, người rà soát mã độc hại

sẽ tìm kiếm một số chữ ký đã được định nghĩa trước đó trong mã

chương trình. Ví dụ, các từ khóa được tìm kiếm như địa chỉ IP, lời gọi

chương trình….

Kỹ thuật phát hiện heuristic (heuristic detection technique) được biết

như là kỹ thuật chủ động. Có nhiều sự tương đồng giữa kỹ thuật phân

tích chữ ký số và kỹ thuật heuristic tuy nhiên có một sự khác nhau rõ

ràng của kỹ thuật phân tích heuristic là việc thay cho tìm kiềm một chữ

ký cụ thể trong đoạn mã chương trình thì người kiểm tra mã độc sẽ tìm

những lệnh và chỉ thị mà không có trong chương trình. Thuận lợi chính

của kỹ thuật này là có thể dễ dàng phát hiện ra các biến thể mới của mã

độc mà chưa được phát hiện trước đây.

Phân tích động là phương pháp theo dõi, phân tích hành vi thực hiện, các

tương tác của phần mềm với môi trường thông qua việc thực thi các phần

mềm đó. Khi phân tích động mã độc cũng đồng nghĩa với việc ta phải chạy

mã độc đó, do vậy chúng ta cần có một môi trường an toàn để tránh các tác

hại đối với hệ thống cũng như bên ngoài. Hộp cát (Sandbox) là một cơ chế

bảo mật để chạy các chương trình không đáng tin cậy trong một môi trường

an toàn mà không sợ làm hệ thống "thực". Ưu điểm của phương pháp phân

tích này đó là có thể theo dõi các hành động thực sự được thực hiện bởi mã

độc trong khi đối với phân tích tĩnh, khi gặp rẽ nhánh chúng ta không thể biết

mã độc sẽ đi theo nhánh nào. Thách thức của phương pháp này là môi trường

sandbox phải an toàn, tránh bị phát hiện đồng thời phải đáp ứng được các điều

kiện để mã độc bộc lộ tối đa hành vi của mình. Có hai cách tiếp cận chính cho

phương pháp phân tích động gồm có:

Page 22: PHẠM LÊ MINHlib.uet.vnu.edu.vn/bitstream/123456789/1016/1/luanvan.pdf · 2019. 6. 24. · ĐẠi hỌc quỐc gia hÀ nỘi trƯỜng ĐẠi hỌc cÔng nghỆ phẠm lÊ minh

14

Phân tích sự khác biệt giữa các thời điểm được xác định: với phương

pháp này, mẫu phần mềm độc hại đã được phân tích trong một khoảng

thời gian nhất định, sau đó thay đổi cấu hình hệ thống và phân mềm độc

hại sẽ được phân tích lại như ban đầu [7]

Quan sát hành vi thời gian chạy: theo cách tiếp cận này, phần mềm độc

hại sẽ thực hiên các hành động độc hại được giám sát các hành vi bằng

công cụ chuyên dụng [7]

Phân tích lai (hybrid): kỹ thuật phân tích này là sự kết hợp giữa phân

tích tĩnh và phân tích động, thường tuân theo một quy trình đơn giản

ban đầu kiểm tra bất kỳ chữ ký trong mã chương trình, nếu phát hiện bất

kỳ chữ ký nào xuất hiện thì sẽ giám sát hành vi của mã này [8]

1.5. Trích xuất đặc trưng và các loại đặc trưng

1.5.1. Trích xuất đặc trưng

Quá trình trích xuất đặc trưng được thực hiện bằng việc phân tích tĩnh

hoặc phân tích động hoặc cả hai loại phân tích tĩnh và phân tích động. Cách

tiếp cận dựa trên phân tích tĩnh được thực hiện bằng cách xem xét nội dung

của các mẫu mã độc mà không cần chúng thực thi (không cần chạy chương

trình), trong khi cách tiếp cận dựa trên phân tích động được thực hiện dựa trên

các mẫu mã được được thực thi để kiểm tra các hành vi của nó. Mốt số kỹ

thuật có thể được sử dụng cho phân tích động như: trình sữa lỗi (debugger)

được sử dụng cho việc phân tích các lớp chỉ thị (instruction), các bộ mô

phỏng (simulators) biểu diễn và hiện thị các hành vi tương tự như trong môi

trường thật của mã độc, trong khi các bộ giả lập (emulators) nhân bản hành vi

của một hệ thống với độ chính xác cao hơn nhưng yêu cầu nhiều tài nguyên

hơn. Sandboxes là các hệ điều hành được ảo hóa cung cấp một môi trường

đánh tin cậy và cô lập để kích hoạt các mã độc. Các dấu vết thực thi (excution

traces) thường được sử dụng để trích xuất các đặc trưng khi sử dụng phân tích

động. Ngoài ra, một số công cụ và kỹ thuật khác thường được sử dụng để

trích xuất đặc như: các mã disassembly và biều đồ luồng dữ liệu (data-flow)

Page 23: PHẠM LÊ MINHlib.uet.vnu.edu.vn/bitstream/123456789/1016/1/luanvan.pdf · 2019. 6. 24. · ĐẠi hỌc quỐc gia hÀ nỘi trƯỜng ĐẠi hỌc cÔng nghỆ phẠm lÊ minh

15

và điều khiển (control). Mã dịch ngược assembly là thành phần quan trọng

cho việc trích xuất các byte tuần tự (Byte sequence và Opcode), trong khi

biểu đồ luồng dữ liệu và điều khiển được sử dụng để trích xuất các lời gọi hệ

thống (system calls) và API.

1.5.2. Các loại đặc trưng

Có 8 loại đặc trưng điển hình bao gồm [2]:

Chuỗi byte (bytes sequence): phân tích các chuỗi byte cụ thể trong tệp

tin nhị phân được sử dụng phổ biến trong phân tích tĩnh. Một số công

trình sử dụng chuỗi các byte với kích thước cụ thể và đa số công trình

khác sử dụng n-grams (n-grams là một chuỗi các byte).

Opcodes: opcodes xác định các hoạt động (operation) ở mức máy được

thực thi bởi một file thực thi và có thể được trích xuất thông qua phân

tích tĩnh bằng cách kiểm tra các mã assembly. Chuỗi tuần tự opcode là

một trong những đặc trưng phổ biến được sử dụng, nó đếm số lần xuất

hiện của opcode cụ thể trong assemby.

API và các lời gọi hệ thống (System calls): tương tự opcodes, API và

các lời gọi hệ thống cho phép phân tích hành vi của mã độc nhưng ở

mức cao. Chúng có thể được trích xuất bằng phân tích tĩnh hoặc phân

tích động bằng cách phân tích mã assembly được dịch ngược hoặc một

danh sách các lời gọi hệ thống. Một trong những cấu trúc dữ liệu phổ

biến để biểu diễn hành vi PE và trích xuất cấu trúc chương trình là đồ

thị luồng điều khiển (control flow graph).

Hoạt động mạng (Network activity): một số lượng lớn các thông tin

chính có thể thu được bằng cách quan sát việc tương tác mã thực thi với

mạng. Địa chỉ kết nối và lưu lượng được tạo ra có thể rất có giá trị như

kết nối với một lệnh và trung tâm điều khiển. Một số đặc trưng được sử

dụng như giao thức, cổng TCP/UDP, các yêu cầu HTTP, kết nối DNS....

File system: các hành động của file được thực thi bởi các mã độc là

thành phần cơ bản khi thu thập chứng cứ về sự tương tác của mã độc với

Page 24: PHẠM LÊ MINHlib.uet.vnu.edu.vn/bitstream/123456789/1016/1/luanvan.pdf · 2019. 6. 24. · ĐẠi hỌc quỐc gia hÀ nỘi trƯỜng ĐẠi hỌc cÔng nghỆ phẠm lÊ minh

16

môi trường, ví dụ loại file gì được thêm, sữa, xóa, thay đổi; file gì bị

nhiễm mã độc và file chưa bị nhiễm mã độc.

Các thanh ghi CPU (CPU Registers): cách các thanh ghi trong CPU

được sử dụng có thể có giá trị như thanh ghi ẩn nào được sử dụng và các

giá trị gì được lưu trong các thanh ghi, đặc biệt là các cờ (Flasgs).

Các đặc điểm file PE (PE file characteristics): phân tích tĩnh một PE có

thể mang lại tập hợp các thông tin có giá trị như các phần (sections), các

nhập (imports), các ký hiệu (symbols),

Chuỗi ký tự (Strings): một PE có thể được kiểm tra bằng cách tìm kiếm

các ký tự cụ thể như dấu hiệu tác giả, tên file, thông tin hệ thống.

Page 25: PHẠM LÊ MINHlib.uet.vnu.edu.vn/bitstream/123456789/1016/1/luanvan.pdf · 2019. 6. 24. · ĐẠi hỌc quỐc gia hÀ nỘi trƯỜng ĐẠi hỌc cÔng nghỆ phẠm lÊ minh

17

CHƯƠNG 2: TỔNG QUAN VỀ HỌC MÁY

2.1. Giới thiệu về học máy

Thời gian gần đây, trí tuệ nhân tạo (AI – Artificial Intelligence) và cụ

thể hơn là học máy (Machine Learning) đang nổi lên như một bằng chứng của

cách mạng công nghiệp lần thứ tư (lần 1 – động cơ hơi nước, lần 2 – năng

lượng điện, lần 3 – công nghệ thông tin). Trí tuệ nhân tạo đang len lỏi vào

mọi lĩnh vực trong đời sống của chúng ta như xẹ tự lái của Google và Tesla,

hệ thống gợi ý sản phẩm của Amazon, hệ thống trợ lý ảo Siri của Apple, hệ

thống gợi ý phim của Netfix....chỉ là một trong những ứng dụng AI/Machine

Learning.

Học máy là một tập con của trí tuệ nhân tạo. Theo định nghĩa của

Wikipedia thì, học máy là một lĩnh vực nhỏ của khoa học máy tính, nó có khả

năng tự học hỏi dựa trên dữ liệu đưa vào mà không cần phải lập trình cụ thể.

Ý tưởng cơ bản của mọi quy trình học máy là xây dựng mô hình dựa

trên một số thuật toán để thực hiện một nhiệm vụ cụ thể như phân loại, phân

lớp, hồi quy... Giai đoạn huấn luyện được thực hiện dựa trên dữ liệu đầu vào

và mô hình được xây dựng để dự đoán đầu ra. Kết quả đầu ra phụ thuộc mục

tiêu ban đầu và việc thực hiện. Chi tiết quy trình học máy gồm các bước như

sau [13]:

Hình 2.1: quy trình học máy

Page 26: PHẠM LÊ MINHlib.uet.vnu.edu.vn/bitstream/123456789/1016/1/luanvan.pdf · 2019. 6. 24. · ĐẠi hỌc quỐc gia hÀ nỘi trƯỜng ĐẠi hỌc cÔng nghỆ phẠm lÊ minh

18

Quy trình học máy cơ bản được chia làm các giai đoạn sau:

Thu thập dữ liệu (gathering data): Quá trình thu thập dữ liệu phụ thuộc

vào loại dự án mà chúng ta mong muốn xây dựng, ví dụ nếu chúng ta

muốn xây dựng dự án học máy mà sử dụng dữ liệu thực để chúng ta có

thể xây dựng một hệ thống IoT từ các dữ liệu cảm biến khác nhau. Dữ

liệu chúng ta có thể thu thập từ các nguồn dữ liệu khác nhau như một

tập tin, cơ sở dữ liệu, cảm biến ...

Tiền xử lý dữ liệu (data pre-processing): Tiền xử lý dữ liệu là một trong

những giai đoạn quan trọng trong học máy, nó giúp xây dựng mô hình

học máy chính xác. Tiền xử lý dữ liệu là một quá trình làm sạch dữ liệu

thô, dữ liệu được thu thập từ nhiều nguồn trong thế giới thực và được

chuyển thành một tập dữ liệu sạch. Dữ liệu thô ban đầu có một số đặc

điểm như dữ liệu bị thiếu sót, không nhất quán, nhiễu vì vậy dữ liệu này

phải được xử lý trước khi đưa vào học máy.

Xây dựng mô hình phù hợp cho loại dữ liệu (researching model): Mục

tiêu chính của chúng ta là xây dựng mô hình thực hiện tốt nhất dựa trên

một số thuật toán phân loại và phân lớp.

Huấn luyện và kiểm thử mô hình trên dữ liệu (training and testing

model): để huấn luyện một mô hình, ban đầu chúng ta chia mô hình

thành 03 giai đoạn bao gồm: dữ liệu huấn luyện (training data), dữ liệu

xác nhận (validation data) và dữ liệu kiểm thử (testing data). Để huấn

luyện bộ phân lớp ta sử dụng tập hợp dữ liệu huấn luyện (training data

set), để tinh chỉnh các tham số ta sử dụng tập hợp xác nhận (validation

set) và sau đó kiểm tra hiệu suất của bộ phân loại chưa biết sử dụng tập

hợp dữ liệu kiểm thử (test data set). Một lưu ý quan trọng là trong quá

trình huấn luyện bộ phân lớp là dữ liệu kiểm thử không được sử dụng để

huấn luyện.

Đánh giá (evaluation): Đánh giá mô hình là một phần quan trọng trong

quy trình phát triển mô hình, nó giúp tìm ra mô hình tốt nhất để đại diện

Page 27: PHẠM LÊ MINHlib.uet.vnu.edu.vn/bitstream/123456789/1016/1/luanvan.pdf · 2019. 6. 24. · ĐẠi hỌc quỐc gia hÀ nỘi trƯỜng ĐẠi hỌc cÔng nghỆ phẠm lÊ minh

19

cho dữ liệu của chúng ta và mô hình được chọn sẽ hoạt động tốt như thế

nào trong tương lai.

2.2. Phân loại các thuật toán học máy [2]

Có hai cách phổ biến để phân loại các thuật toán học máy. Một là dựa vào

phương thức học (learning style) và hai là dựa trên chức năng (function) của

thuật toán. Theo phương phức học thì các thuật toán học máy được chia làm

04 loại gồm: học có giám sát (Supervise learning), học không giám sát

(Unsupervised learning), học bán giám sát (Semi-supervised learning) và học

tăng cường (Reinforcement Learning). Chi tiết các loại học máy theo phương

thức học như sau:

Học có giám sát: Là thuật toán dự đoán đầu ra (outcome) của một dữ

liệu mới (new input) dựa trên các cặp (input, output) đã biết từ trước.

Các cặp dữ liệu này còn được gọi là “dữ liệu, nhãn”, tức (data, label).

Học có giám sát là loại phổ biến nhất trong các thuật toán học máy. Bài

toán học có giám sát còn được chia nhỏ thành hai loại chính như sau:

Phân loại (Classification): Một bài toán được gọi là phân loại nếu các

nhãn của dữ liệu đầu vào (input data) được chia thành một số hữu

hạn nhóm: Ví dụ bài toán xác định xem một email có phải spam hay

không?

Hồi quy (Regression): Nếu nhãn (label) không được chia thành các

loại mà là một giá trị thực cụ thể. Ví dụ, một căn nhà rộng x 𝒎𝟐`, có

y phòng ngủ và cách trung tâm thành phố z km sẽ có giá là bao

nhiêu?

Học không giám sát: trong bài toán này, chúng ta không biết được nhãn

hay outcome mà chỉ có dữ liệu đầu vào. Thuật toán học 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) để thuận tiện trong việc lưu trữ và tính toán. Bài toán học

không giám sát được tiếp tục chia nhỏ thành hai loại sau:

Page 28: PHẠM LÊ MINHlib.uet.vnu.edu.vn/bitstream/123456789/1016/1/luanvan.pdf · 2019. 6. 24. · ĐẠi hỌc quỐc gia hÀ nỘi trƯỜng ĐẠi hỌc cÔng nghỆ phẠm lÊ minh

20

Phân nhóm (clustering): Một bài toán phân nhóm toàn bộ dữ liệu Y

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. Ví dụ, phân nhóm khách hàng dựa vào hành vi mua hàng

Kết hợp (association): là bài toán khi chúng ta muốn khám phá ra

một quy luật dựa trên nhiều dữ liệu cho trước. Ví dụ, những khách

hàng nữ mua quần áo thường có xu hướng mua thêm son môi; những

khách hàng mua bóng đá thường mua thêm bảo hộ ống quyển và tất.

Học bán giám sát (Semi-supervised learning): Các bài toán khi chúng ta

có một lượng lớn dữ liệu Z nhưng chỉ một trong chúng được gán nhãn.

Những bài toán thuộc nhóm này nằm giữa hai nhóm được nêu trên. Ví

dụ, chỉ một phần các bức ảnh (ảnh về người, động vật, thực vật) được

gán nhán và phần lớn các bức ảnh khác chưa được gán nhãn trên

internet.

Phân loại dựa trên chức năng: Cách phân loại thứ hai dựa trên chức

năng của các thuật toán. Ví dụ các thuật toán hồi quy (Linear regression,

Logistic Regression, Stepwise Regresstion), các thuật toán phân loại (SVM,

kernel SVM, Linear Classifier), các thuật toán phân cụm (k-Means clustering,

k-Medians, EM)...

2.3. Thuật toán One-class SVM.

2.3.1. Giới thiệu thuật toán One-class SVM

Theo truyền thống nhiều vấn đề phân loại cố gắng giải quyết tình

huống hai hoặc phân loại nhiều lớp và mục tiêu của ứng dụng học máy là

phân biệt dữ liệu kiểm thử giữa một số lớp sử dụng dữ liệu huấn luyện.

Nhưng điều gì sẽ xảy ra nếu bạn chỉ có dữ liệu của một lớp và mục tiêu là

kiểm tra dữ liệu mới và tìm hiểu xem nó có giống hay không giống với dữ

liệu huấn luyện. Một phương pháp cho nhiệm vụ này đã trở nên phổ biến là

máy véc tơ hỗ trợ một lớp (One-class Support Vector Machine). Ví dụ hãy

tưởng tượng một loại thiết lập của nhà máy với các máy sản xuất rất lớn dưới

sự giám sát của một số hệ thống tiên tiến và nhiệm vụ của hệ thống giám sát

Page 29: PHẠM LÊ MINHlib.uet.vnu.edu.vn/bitstream/123456789/1016/1/luanvan.pdf · 2019. 6. 24. · ĐẠi hỌc quỐc gia hÀ nỘi trƯỜng ĐẠi hỌc cÔng nghỆ phẠm lÊ minh

21

là xác định khi có sự cố xảy ra, chất lượng của các sản phẩm có dưới chuẩn

chất lượng không, các máy có tạo ra rung động gì lạ không hoặc một cái gì đó

làm nhiệt độ tăng lên không? Việc thu thập dữ liệu huấn luyện về các tình

huống tương đối dễ dàng do nó chỉ là trạng thái hoạt động bình thường nhưng

mật khác dữ liệu huấn luyện thu thập từ các trạng thái bị lỗi là khá tốn kém và

đôi khi là không thể thực hiện được. Để đối phó với vấn dề này, các giải pháp

phân loại một lớp (one-class) được giới thiệu bằng cách chỉ cung cấp dữ liệu

huấn luyện bình thường và thuật toán tạo ra một mô hình cho dữ liệu này.

Nếu dữ liệu được thu được quá khác nhau cùng với một số phép đo thì nó

được gán nhãn ngoài lớp từ mô hình này.

Trong phạm vi của nghiên cứu này chúng tôi sẽ trình bày 02 cách tiếp

cận về thuật toán One-class SVM, một cách tiếp cận theo tác giả Schölkopf và

một cách tiếp cận theo các tác giả Tax và Duin. Trước khi đi vào chi tiết thuật

toán One-Class SVM, chúng ta tìm hiểu thuật toán máy véc tơ hỗ trợ (SVM –

Support Vector Machine).

2.3.2. Giới thiệu thuật toán SVM.

SVM (support vector machine) là một khái niệm trong thống kê và

khoa học máy tính cho một tập hợp các phương pháp học có giám sát liên

quan đến nhau để phân loại và phân tích hồi quy. SVM dạng chuẩn nhận dữ

liệu đầu vào và phân loại chúng vào hai lớp khác nhau. Do đó SVM là một

thuật toán phân loại nhị phân. Với một bộ các ví dụ huấn luyện thuộc hai thể

loại cho trước, thuật toán huấn luyện SVM xây dựng một mô hình SVM để

phân loại các ví dụ khác vào hai thể loại đó. Một mô hình SVM là một cách

biểu diễn các điểm trong không gian và lựa chọn ranh giới giữa hai thể loại

sao cho khoảng cách từ các ví dụ huấn luyện tới ranh giới là xa nhất có thể.

Các ví dụ mới cũng được biểu diễn trong cùng một không gian và được thuật

toán dự đoán thuộc một trong hai thể loại tùy vào ví dụ đó nằm ở phía nào của

ranh giới.

Page 30: PHẠM LÊ MINHlib.uet.vnu.edu.vn/bitstream/123456789/1016/1/luanvan.pdf · 2019. 6. 24. · ĐẠi hỌc quỐc gia hÀ nỘi trƯỜng ĐẠi hỌc cÔng nghỆ phẠm lÊ minh

22

SVM xây dựng một siêu phẳng hoặc một tập hợp các siêu phẳng trong

một không gian nhiều chiều hoặc vô hạn chiều, có thể được sử dụng cho phân

loại, hồi quy, hoặc các nhiệm vụ khác. Một cách trực giác, để phân loại tốt

nhất thì các siêu phẳng nằm ở càng xa các điểm dữ liệu của tất cả các lớp (gọi

là hàm lề) càng tốt, vì nói chung lề càng lớn thì sai số tổng quát hóa của thuật

toán phân loại càng bé.

Trong nhiều trường hợp, không thể phân chia các lớp dữ liệu một cách

tuyến tính trong một không gian ban đầu được dùng để mô tả một vấn đề. Vì

vậy, nhiều khi cần phải ánh xạ các điểm dữ liệu trong không gian ban đầu vào

một không gian mới nhiều chiều hơn, để việc phân tách chúng trở nên dễ

dàng hơn trong không gian mới. Để việc tính toán được hiệu quả, ánh xạ sử

dụng trong thuật toán SVM chỉ đòi hỏi tích vô hướng của các vector dữ liệu

trong không gian mới có thể được tính dễ dàng từ các tọa độ trong không gian

cũ. Tích vô hướng này được xác định bằng một hàm hạt nhân K(x,y) phù hợp.

[1] Một siêu phẳng trong không gian mới được định nghĩa là tập hợp các điểm

có tích vô hướng với một vectơ cố định trong không gian đó là một hằng số.

Vector xác định một siêu phẳng sử dụng trong SVM là một tổ hợp tuyến tính

của các vector dữ liệu luyện tập trong không gian mới với các hệ số αi. Với

siêu phẳng lựa chọn như trên, các điểm x trong không gian đặc trưng được

ánh xạ vào một siêu mặt phẳng là các điểm thỏa mãn: Σi αi K(xi,x) = hằng số.

Ghi chú rằng nếu K(x,y) nhận giá trị ngày càng nhỏ khi y xa dần khỏi x

thì mỗi số hạng của tổng trên được dùng để đo độ tương tự giữa x với điểm xi

tương ứng trong dữ liệu luyện tập. Như vậy, tác dụng của tổng trên chính là

so sánh khoảng cách giữa điểm cần dự đoán với các điểm dữ liệu đã biết. Lưu

ý là tập hợp các điểm x được ánh xạ vào một siêu phẳng có thể có độ phức tạp

tùy ý trong không gian ban đầu, nên có thể phân tách các tập hợp thậm chí

không lồi trong không gian ban đầu.

Phân loại thống kê là một nhiệm vụ phổ biến trong học máy. Trong mô

hình học có giám sát, thuật toán được cho trước một số điểm dữ liệu cùng với

nhãn của chúng thuộc một trong hai lớp cho trước. Mục tiêu của thuật toán là

Page 31: PHẠM LÊ MINHlib.uet.vnu.edu.vn/bitstream/123456789/1016/1/luanvan.pdf · 2019. 6. 24. · ĐẠi hỌc quỐc gia hÀ nỘi trƯỜng ĐẠi hỌc cÔng nghỆ phẠm lÊ minh

23

xác định xem một điểm dữ liệu mới sẽ được thuộc về lớp nào. Mỗi điểm dữ

liệu được biểu diễn dưới dạng một vector p chiều và ta muốn biết liệu có thể

chia tách hai lớp dữ liệu bằng một siêu phẳng p − 1 chiều, đây gọi là phân loại

tuyến tính. Có nhiều siêu phẳng có thể phân loại được dữ liệu. Một lựa chọn

hợp lý trong chúng là siêu phẳng có lề lớn nhất giữa hai lớp.

2.3.2.1. Xây dựng bài toán SVM

Giả sử rằng các cặp dữ liệu của training set là

(𝒙𝟏, 𝒚𝟏), (𝒙𝟐, 𝒚𝟐),.., (𝒙𝟑, 𝒚𝟑) với vector 𝒙𝒊 𝞊 𝑹𝒅 thể hiện đầu vào của một

điểm dữ liệu và 𝒚𝒊là nhãn của điểm dữ liệu đó, d là số chiều của dữ liệu và N là

số điểm dữ liệu. Giả sử rằng nhãn của mỗi điểm dữ liệu được xác định bởi 𝒚𝒊 =

1 (lớp 1) hoặc 𝒚𝒊 = -1 (lớp 2). Để dễ hình dung, chúng ta cùng xét trường hợp

trong không gian hai chiều dưới đây. Không gian hai chiều để dễ hình dung,

các phép toán hoàn toàn có thể được tổng quát lên không gian nhiều chiều.

Hình 2.2: phân tích bài toán SVM

Giả sử rằng các điểm vuông xanh thuộc lớp 1, các điểm tròn đỏ thuộc

lớp -1 và mặt (𝑤𝑇𝑥 + 𝑏) = 𝑤1𝑥1 + 𝑤2𝑥2 + 𝑏 là mặt phân chia giữa hai lớp

(hình 2.2). Hơn nữa, lớp 1 nằm về phía dương, lớp -1 nằm về phía âm của mặt

phân chia. Nếu ngược lại, ta chỉ cần đổi dấu của w và b. Chú ý rằng chúng ta

cần đi tìm các hệ số w và b. Ta quan sát thấy một điểm quan trọng sau đây:

với cặp dữ liệu (𝑥𝑛, 𝑦𝑛) bất kỳ, khoảng cách từ điểm đó tới mặt phân chia là:

Page 32: PHẠM LÊ MINHlib.uet.vnu.edu.vn/bitstream/123456789/1016/1/luanvan.pdf · 2019. 6. 24. · ĐẠi hỌc quỐc gia hÀ nỘi trƯỜng ĐẠi hỌc cÔng nghỆ phẠm lÊ minh

24

Điều này có thể dễ nhận thấy vì theo giả sử ở trên, ynluôn cùng dấu với

phía của 𝑥𝑛. Từ đó suy ra yn cùng dấu với (𝑤𝑇xn + b) và tử số luôn là 1 số

không âm. Với mặt phần chia như trên, giới hạn (margin) được tính là khoảng

cách gần nhất từ 1 điểm tới mặt đó (bất kể điểm nào trong hai lớp):

Bài toán tối ưu trong SVM chính là bài toán tìm w và b sao cho margin

này đạt giá trị lớn nhất:

Nhận xét quan trọng nhất là nếu ta thay vector hệ số w bởi kw và b bởi kb

trong đó k là một hằng số dương thì mặt phân chia không thay đổi, tức

khoảng cách từ từng điểm đến mặt phân chia không đổi, tức margin không

đổi. Dựa trên tính chất này, ta có thể giả sử:

𝒚𝒏(𝒘𝑻𝒙𝒏 + b) = 1

Với những điểm nằm gần mặt phân chia nhất như hình 2.3 dưới đây:

Hình 2.3: các điểm gần mặt phân cách nhất của hai class được khoanh tròn

Như vậy, với mọi n, ta có:

𝒚𝒏(𝒘𝑻𝒙𝒏 + b) = 1

Page 33: PHẠM LÊ MINHlib.uet.vnu.edu.vn/bitstream/123456789/1016/1/luanvan.pdf · 2019. 6. 24. · ĐẠi hỌc quỐc gia hÀ nỘi trƯỜng ĐẠi hỌc cÔng nghỆ phẠm lÊ minh

25

Vậy bài toán tối ưu (1) có thể đưa về bài toán tối ưu có ràng buộc sau đây:

Bằng một biến đổi đơn giản, ta có thể đưa bài toán này về bài toán dưới

đây:

Ở đây, chúng ta đã lấy nghịch đảo hàm mục tiêu, bình phương nó để được

một hàm khả vi và nhân với 1/2 để biểu thức đạo hàm đẹp hơn. Xác định lớp

(class) cho một điểm dữ liệu mới: sau khi tìm được mặt phân cách 𝑾𝑻𝒙 +

𝒃 = 𝟎 , class của bất kỳ một điểm nào sẽ được xác định đơn giản bằng cách:

class(x) = sgn(𝑤𝑻x + b)

trong đó hàm sgn là hàm xác định dấu, nhận giá trị 1 nếu đối số là không âm

và -1 nếu ngược lại.

2.3.3. Thuật toán One-class SVM theo tác giả Schölkopf

Về cơ bản, thuật toán One-class SVM theo tác giả Schölkopf thực hiện

tách tất cả các điểm dữ liệu khỏi điểm gốc (trong không gian đặc trưng F) và

tối đa khoảng cách từ siêu phẳng này đến điểm gốc. Điều này dẫn đến một

hàm nhị phân thu thập các vùng trong không gian đầu vào nơi mật độ xác suất

của dữ liệu tồn tại vì vậy hàm này sẽ trả lại giá trị +1 trong một vùng bé (vùng

thu thập các điểm dữ liệu huấn luyện) và -1 đối với các vùng khác.

Chúng ta xem xét dữ liệu huấn luyện 𝑥1,𝑥2,𝑥3, ... 𝑥𝑙 𝜖 𝑋 với l 𝜖 N là các

mẫu và X là một số tập hợp, để đơn giản chúng ta nghĩ nó như một tập hợp

con 𝑅𝑁, đặt ɸ là một chuyển đổi đặc trưng X -> F, ví dụ một chuyển đổi vào

F không gian sản phẩm điểm sao cho có thể tính toán sản phẩm điểm trong

hình ảnh của ɸ có thể được tính toán bằng hàm nhân đơn giản:

K(x, y) = (ɸ(x). ɸ(y)), với hàm nhân Gaussian

Page 34: PHẠM LÊ MINHlib.uet.vnu.edu.vn/bitstream/123456789/1016/1/luanvan.pdf · 2019. 6. 24. · ĐẠi hỌc quỐc gia hÀ nỘi trƯỜng ĐẠi hỌc cÔng nghỆ phẠm lÊ minh

26

Chúng ta phát triển một thuật toán mà trả về môt hàm f lấy giá trị +1

trong một vùng nhỏ chứa đa số các điểm dữ liệu và -1 cho vùng khác. Chiến

lược của chúng ta là ánh xạ dữ liệu ban đầu vào không gian đặc trưng tương

ứng với hàm nhân và tách chúng khỏi không gian ban đầu với khoảng cách tối

đa. Đối với một điểm X mới, giá trị f(x) được xác định bằng việc nào của siêu

phẳng mà nó thuộc về trong không gian đặc trưng.

2.3.4. Thuật toán One-class SVM theo tác giả Tax và Duin

Phương pháp mô tả dữ liệu véc tơ hỗ trợ theo các tác giả Tax và Duin

tạo ra một hình cầu thay cho cách tiếp cận mặt phẳng. Thuật toán thu được

một ranh giới hình cầu trong không gian đặc trưng bao quanh dữ liệu. Khối

lượng của siêu cầu này được giảm thiểu để giảm tác động của việc kết hợp

các ngoại lệ trong giải pháp này.

Siêu cầu được tạo ra được đặc trưng bởi một tâm a và một bán kính R >

0, là khoảng cách từ tâm đến bất kỳ véc tơ hỗ trợ nào trên ranh giới. Tâm a là

một tổ hợp tuyến tính của các véc tơ hỗ trợ (đó là các điểm dữ liễu huấn luyện

mà hệ số nhân Lagrange khác không). Giống như công thức truyền thống, có

thể yêu cầu tất cả các khoảng cách từ các điểm dữ liệu 𝑥𝑖 đều nhỏ hơn R. Một

điểm dữ liệu mới z có thể được kiểm tra để đưa vào lớp hoặc đưa ra khỏi lớp.

Nếu khoảng cách từ điểm z đến tâm của hình cầu nhỏ hơn hoặc bằng bán kính

R thì nó thuộc vào lớp, ngược lại nếu khoảng cách lớn hơn bán kính R thì

điểm z mới không thuộc vào lớp.

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

Trong thực tế, chúng ta cần áp dụng nhiều thuật toán học máy để chọn

ra mô hình phù hợp nhất cho bài toán của mình. Vấn đề đặt ra là làm thế nào

để đạt được một đánh giá đáng tin cậy về hiệu quả của mô hình và chọn ra mô

hình phù hợp. Ngoài các thuật toán học máy thì hiệu quả của mô hình còn phụ

thuộc vào một số yếu tố khác như sự phân phố của lớp (class distribution), chi

Page 35: PHẠM LÊ MINHlib.uet.vnu.edu.vn/bitstream/123456789/1016/1/luanvan.pdf · 2019. 6. 24. · ĐẠi hỌc quỐc gia hÀ nỘi trƯỜng ĐẠi hỌc cÔng nghỆ phẠm lÊ minh

27

phí của việc phân lớp sai (Cost of misclassification), kích thước của tập huấn

luyện (Size of the training set), kích thước của tập kiểm thử (Size of the

testing set). Trong phần này tôi sẽ trình bày một số phương pháp đánh giá

hiệu quả của thuật toán như: ma trận nhầm lẫn (Confusion maxtrix), hold-out,

kiểm tra chéo (Cross-validation), Stratified sampling

2.4.1. Ma trận nhầm lẫn (Confusion maxtrix):

Ma trận nhầm lẫn chỉ được sử dụng đối với các bài toán phân loại,

không thể áp dụng với các bài toán hồi quy, ví dụ ma trận nhầm lẫn như sau:

Lớp 𝐶𝑖 Lớp được dự đoán bởi hệ thống

Thuộc Không thuộc

Phân lớp thực sự (đúng) Thuộc 𝑇𝑃𝑖 𝐹𝑁𝑖

Không thuộc 𝐹𝑃𝑖 𝑇𝑁𝑖

Các thông tin trong ma trận nhầm lẫn ta có các thông tin như:

𝑇𝑃𝑖 (𝑇𝑟𝑢𝑒 𝑝𝑜𝑠𝑖𝑡𝑖𝑣𝑒): Số lượng mẫu thuộc lớp dương được phân chính

xác vào lớp dương

𝐹𝑃𝑖 (𝐹𝑎𝑙𝑠𝑒 𝑝𝑜𝑠𝑖𝑡𝑖𝑣𝑒): Số lượng mẫu không thuộc lớp dương bị phân loại

nhầm vào lớp dương

𝑇𝑁𝑖 (True negative): Số lượng các mẫu không thuộc lớp dương được phân

loại đúng

𝐹𝑁𝑖 (𝐹𝑎𝑙𝑠𝑒 𝑛𝑒𝑔𝑎𝑡𝑖𝑣𝑒): Số lượng mẫu thuộc lớp dương được phân vào lớp

âm (phân loại sai).

Từ đây độ chính xác của mô hình được tính như sau:

o Precision đối với lớp 𝐶𝑖: bằng tổng số các mẫu thuộc lớp 𝐶𝑖 được phân

loại chính xác chia cho tổng số các mẫu được phân loại vào lớp 𝐶𝑖

Precision(𝐶𝑖) = 𝑇𝑃𝑖

𝑇𝑃𝑖 +𝐹𝑃𝑖

o Recall đối với lớp 𝐶𝑖: bằng tổng sổ các mẫu thuộc lớp 𝐶𝑖 được phân loại

chính xác tổng số các mẫu thuộc lớp 𝐶𝑖

Recall(𝐶𝑖) = 𝑇𝑃𝑖

𝑇𝑃𝑖 +𝐹𝑁𝑖

Page 36: PHẠM LÊ MINHlib.uet.vnu.edu.vn/bitstream/123456789/1016/1/luanvan.pdf · 2019. 6. 24. · ĐẠi hỌc quỐc gia hÀ nỘi trƯỜng ĐẠi hỌc cÔng nghỆ phẠm lÊ minh

28

O F1: tiêu chí đánh giá 𝐹1là sự kết hợp của 2 tiêu chí đánh giá Precision và

Recall:

𝐹1 = 2.𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛.𝑅𝑒𝑐𝑎𝑙𝑙

𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛+𝑅𝑒𝑐𝑎𝑙𝑙 =

11

𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 +

1

𝑅𝑒𝑐𝑎𝑙𝑙

𝑭𝟏 là một trung bình điều hòa của các tiêu chí Precision và Recall. 𝑭𝟏 có

xu hướng lấy giá trị gần với giá trị nào nhỏ hơn giữa 2 giá trị Precision và

Recall. 𝑭𝟏 có giá trị lớn nếu cả 2 giá trị Precision và Recall đều lớn.

2.4.2. Phương pháp Hold-out

Toàn bộ tập mẫu D được chia thành 2 tập con không giao nhau, tập

huấn luyện D_train để huấn luyện mô hình, tập kiểm thử D_test để đánh giá

hiệu quả của mô hình đã học vì vậy D = D_train ᴗ D_test và thường |D_train|

>> |D_test|. Các yêu cầu đặt ra đối với phương pháp Hold-out như sau:

Bất kỳ mẫu nào thuộc vào tập kiểm thử D_test đều không được sử dụng

vào quá trình huấn luyện mô hình.

Bất kỳ mẫu nào được sử dụng trong quá trình huấn luyện hệ thống

D_train đều không được sử dụng vào đánh giá mô hình.

Các mẫu kiểm thử trong tập D_test cho phép đánh giá một cách khách

quan về hiệu quả của mô hình.

Các tỷ lệ thường gặp khi phân chia dữ liệu để huấn luyện và kiểm thử

mô hình là: ||D_train| = (2/3) và |D_test| = (1/3).

2.4.3. Lấy mẫu phân tầng (Stratified sample)

Đối với các tập mẫu có kích thước nhỏ hoặc không cân xứng, các tập

mẫu trong tập huấn luyện và kiểm thử có thể không phải là đại diện. Ví dụ, có

rất ít hoặc không có các mẫu đối với một số lớp do đó mục đích phân bố lớp

trong tập huấn luyện và trong tập kiểm thử phải xấp xỉ như trong toàn bộ các

mẫu trong tập D. Lấy mẫu phân tầng là một phương pháp để cân xứng về

phân bố phân lớp và đảm bảo tỷ lệ phân bố giữa các lớp trong tập huấn luyện

và kiểm thử phải xấp xỉ nhau. Phương pháp lấy mẫu phân tầng không áp dụng

Page 37: PHẠM LÊ MINHlib.uet.vnu.edu.vn/bitstream/123456789/1016/1/luanvan.pdf · 2019. 6. 24. · ĐẠi hỌc quỐc gia hÀ nỘi trƯỜng ĐẠi hỌc cÔng nghỆ phẠm lÊ minh

29

được cho bài toán học máy dự đoán/hồi quy do đầu ra của mô hình là một giá

trị số, không phải là nhãn của lớp.

2.4.4. Kiểm tra chéo (Cross-validation)

Để tránh việc trùng lặp giữa các tập kiểm thử do một số mẫu cùng

xuất hiện trong các mẫu kiểm thử khác nhau ta sử dụng một số phương

pháp như sau:

Kiểm tra chéo k-fold (k-fold cross-validation): toàn bộ các mẫu D được

chia thành k tập con không giao nhau (gọi là “fold”) có kích thước xấp xỉ

nhau. Mỗi lần trong số k lần lặp, một tập con được sử dụng làm tập kiểm thử

và k-1 tập con còn lại được sử dụng làm tập huấn luyện. K giá trị lỗi (mỗi giá

trị tương ứng với một fold) được tính trung bình cộng để thu được giá trị tổng

thể. Các tùy chọn thông thường của k là 10 hoặc 5, mỗi tập con (fold) được

lấy mẫu xấp xỉ phân bố lớp trước khi áp dụng quá trình đánh giá kiểm tra

chéo và phương pháp này phù hợp khi các mẫu D vừa và nhỏ.

Page 38: PHẠM LÊ MINHlib.uet.vnu.edu.vn/bitstream/123456789/1016/1/luanvan.pdf · 2019. 6. 24. · ĐẠi hỌc quỐc gia hÀ nỘi trƯỜng ĐẠi hỌc cÔng nghỆ phẠm lÊ minh

30

CHƯƠNG 3: PHƯƠNG PHÁP ÁP DỤNG HỌC MÁY

VÀO PHÂN TÍCH MÃ ĐỘC

Chương này sẽ tập trung đề cập đến việc lựa chọn phương pháp trích

xuất đặc trưng từ tiêu đề (header) và từ tải (payload) của gói tin mạng trên cơ

sở áp dụng cùng một thuật toán học máy có giám sát Oneclass SVM vào việc

phát hiện và phân loại mã độc.

3.1. Mô hình đề xuất thực hiện gồm các bước sau:

Hình 3.1: mô hình phân tích mã độc

o Bước 1: Thu thập (capture) dữ liệu mạng chứa gói tin độc hại ta thu

được các file .pcap.

o Bước 2: Xử lý file .pcap để lấy ra nội dung text từ header và từ payload.

o Bước 3: Trích chọn đặc trưng:

Từ header: lấy ra thông tin về địa chỉ ip, giao thức, thời gian, độ dài gói

tin... tương tự như trong các bài báo [14-15]

Từ payload: sử dụng phương pháp n-gram [4] để biểu diễn các ký tự từ

payload và tính tần suất xuất hiện. Trong phạm vi của nghiên cứu này

tôi sử dụng kích thước 2-gram.

Page 39: PHẠM LÊ MINHlib.uet.vnu.edu.vn/bitstream/123456789/1016/1/luanvan.pdf · 2019. 6. 24. · ĐẠi hỌc quỐc gia hÀ nỘi trƯỜng ĐẠi hỌc cÔng nghỆ phẠm lÊ minh

31

o Bước 4: Sau khi thu được các đặc trưng ở bước 3, tôi thực hiện lựa chọn

đặc trưng phù hợp từ header và giảm số lượng đặc trưng từ payload.

o Bước 5: Từ các đặc trưng đã lựa chọn ở bước 4 chúng ta đưa chúng vào

xây dựng mô hình học máy, trong phần này tôi sử dụng thuật toán One-

class SVM theo phương pháp của tác giả Schölkopf.

o Bước 6: Sau khi hoàn thành xây dựng mô hình thì đưa dữ liệu thực

nghiệm vào để đánh giá kết quả.

3.2. Thu thập và tiền xử lý xử liệu dữ liệu

3.2.1. Thu thập dữ liệu gói tin mạng

Trong phạm vi của nghiên cứu này tôi không thực hiện thu thập

(capture) thông tin gói tin mạng bằng các công cụ như tcpdump, STA ,

IDS/IPS … mà sử dụng dữ liệu nguồn đã được thu thập là các tệp tin .pcap từ

cơ sở dữ liệu CICDS2017 [12]. Ví dụ, nội dung thông tin file .pcap được xem

bằng công cụ wireshark như sau:

Hình 3.2: thông tin gói tin http

Ví dụ thông tin header của giao thức http như sau:

Page 40: PHẠM LÊ MINHlib.uet.vnu.edu.vn/bitstream/123456789/1016/1/luanvan.pdf · 2019. 6. 24. · ĐẠi hỌc quỐc gia hÀ nỘi trƯỜng ĐẠi hỌc cÔng nghỆ phẠm lÊ minh

32

Hình 3.3: thông tin header của giao thức http

Ví dụ thông tin về payload của loại tấn công shell-code http như sau:

Hình 3.4: thông tin payload trong gói tin http

3.2.2. Trích chọn đặc trưng trong header của gói tin

Với đầu vào là các file .pcap được trích xuất ra các đặc trưng trong

header giống như trong các bài báo [14-15] gồm: địa chỉ IP nguồn, địa chỉ IP

đích, cổng nguồn, cổng đích, giao thức, độ dài gói tin (length), thời gian…Kết

quả đầu ra của việc trích xuất các đặc trưng trong header thu được một danh

sách các file .csv chứa thông tin như trên, ví dụ nội dụng file .csv như sau:

Hình 3.5: trích xuất đặc trưng từ header

Page 41: PHẠM LÊ MINHlib.uet.vnu.edu.vn/bitstream/123456789/1016/1/luanvan.pdf · 2019. 6. 24. · ĐẠi hỌc quỐc gia hÀ nỘi trƯỜng ĐẠi hỌc cÔng nghỆ phẠm lÊ minh

33

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

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à 28 = 256 và

2-gram là 28. Trong phạm vi của luận văn này tôi tập trung vào 2-gram.

Page 42: PHẠM LÊ MINHlib.uet.vnu.edu.vn/bitstream/123456789/1016/1/luanvan.pdf · 2019. 6. 24. · ĐẠi hỌc quỐc gia hÀ nỘi trƯỜng ĐẠi hỌc cÔng nghỆ phẠm lÊ minh

34

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.

Page 43: PHẠM LÊ MINHlib.uet.vnu.edu.vn/bitstream/123456789/1016/1/luanvan.pdf · 2019. 6. 24. · ĐẠi hỌc quỐc gia hÀ nỘi trƯỜng ĐẠi hỌc cÔng nghỆ phẠm lÊ minh

35

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

Page 44: PHẠM LÊ MINHlib.uet.vnu.edu.vn/bitstream/123456789/1016/1/luanvan.pdf · 2019. 6. 24. · ĐẠi hỌc quỐc gia hÀ nỘi trƯỜng ĐẠi hỌc cÔng nghỆ phẠm lÊ minh

36

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

3.5.2. Chương trình thực nghiệm

Page 45: PHẠM LÊ MINHlib.uet.vnu.edu.vn/bitstream/123456789/1016/1/luanvan.pdf · 2019. 6. 24. · ĐẠi hỌc quỐc gia hÀ nỘi trƯỜng ĐẠi hỌc cÔng nghỆ phẠm lÊ minh

37

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:

o Với tập dữ liệu huấn luyện:

Page 46: PHẠM LÊ MINHlib.uet.vnu.edu.vn/bitstream/123456789/1016/1/luanvan.pdf · 2019. 6. 24. · ĐẠi hỌc quỐc gia hÀ nỘi trƯỜng ĐẠi hỌc cÔng nghỆ phẠm lÊ minh

38

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.

Page 47: PHẠM LÊ MINHlib.uet.vnu.edu.vn/bitstream/123456789/1016/1/luanvan.pdf · 2019. 6. 24. · ĐẠi hỌc quỐc gia hÀ nỘi trƯỜng ĐẠi hỌc cÔng nghỆ phẠm lÊ minh

39

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

Page 48: PHẠM LÊ MINHlib.uet.vnu.edu.vn/bitstream/123456789/1016/1/luanvan.pdf · 2019. 6. 24. · ĐẠi hỌc quỐc gia hÀ nỘi trƯỜng ĐẠi hỌc cÔng nghỆ phẠm lÊ minh

40

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.

Page 49: PHẠM LÊ MINHlib.uet.vnu.edu.vn/bitstream/123456789/1016/1/luanvan.pdf · 2019. 6. 24. · ĐẠi hỌc quỐc gia hÀ nỘi trƯỜng ĐẠi hỌc cÔng nghỆ phẠm lÊ minh

41

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

[11] https://iscxdownloads.cs.unb.ca/iscxdownloads/CICAndMal2017/CSVs

Page 50: PHẠM LÊ MINHlib.uet.vnu.edu.vn/bitstream/123456789/1016/1/luanvan.pdf · 2019. 6. 24. · ĐẠi hỌc quỐc gia hÀ nỘi trƯỜng ĐẠi hỌc cÔng nghỆ phẠm lÊ minh

42

[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"