150
ỤC VÀ ĐÀO TẠ ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ ỆN MÃ ĐỘ Ĩ

ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

  • Upload
    others

  • View
    12

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

Ộ ỤC VÀ ĐÀO TẠ Ệ Ọ

Ệ Ệ

Ọ Ệ Ọ Ệ

ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị

ỆN MÃ ĐỘ Ế Ị

Ậ Ế Ĩ

Ộ –

Page 2: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

Ộ ỤC VÀ ĐÀO TẠ Ệ Ọ

Ệ Ệ

Ọ Ệ Ọ Ệ

ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị

ỆN MÃ ĐỘ Ế Ị

ệ ố

Ậ Ế Ĩ

NGƯỜI HƯỚ Ẫ Ọ

ốc Dũng

ễ ỳ

Ộ –

Page 3: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

i

LỜI CAM ĐOAN

Tôi xin cam đoan Luận án Tiến sĩ với tiêu đề “Nghiên cứu đề xuất đặc trưng đồ

thị PSI trong phát hiện mã độc botnet trên các thiết bị IoT” là một công trình nghiên cứu

của riêng tôi, dưới sự hướng dẫn khoa học của TS. Ngô Quốc Dũng và TS. Nguyễn Anh

Quỳnh, trừ những kiến thức tham khảo từ các tài liệu liên quan ở trong nước và quốc tế

đã được trích dẫn trong luận án.

Các kết quả, số liệu được trình bày trong luận án là hoàn toàn trung thực, một

phần kết quả đã được công bố trên các Tạp chí và Kỷ yếu Hội thảo khoa học chuyên

ngành công nghệ thông tin (tại Danh mục công trình của tác giả), phần còn lại chưa từng

được công bố trong bất kỳ công trình nào khác.

Hà Nội, ngày tháng năm 2020

Tác giả

Nguyễn Huy Trung

Page 4: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

ii

LỜI CẢM ƠN

Luận án này được nghiên cứu sinh (NCS) thực hiện trong quá trình học tập Tiến

sĩ tại Viện Công nghệ thông tin – Viện Hàn lâm Khoa học và Công nghệ Việt Nam, Học

viện Khoa học và Công nghệ – Viện Hàn lâm Khoa học và Công nghệ Việt Nam. Tại

đây, NCS đã được các thầy, cô trong Viện Công nghệ thông tin, Học viện Khoa học và

Công nghệ giúp đỡ, chỉ dạy và trang bị những kiến thức nền tảng cần thiết trong suốt

quá trình thực hiện luận án, đồng thời NCS có cơ hội tiếp xúc chuyên sâu về lĩnh vực

mới và cấp thiết trong bảo mật thông tin liên quan đến phát hiện mã độc nói chung và

mã độc botnet nói riêng trên các thiết bị IoT.

Trước hết, NCS xin bày tỏ lòng biết ơn chân thành tới hai thầy hướng dẫn khoa

học, TS. Ngô Quốc Dũng và TS. Nguyễn Anh Quỳnh. Hai thầy đã luôn giúp đỡ, động

viên, khích lệ và cho NCS nhiều kinh nghiệm quý báu, định hướng cách tư duy và cách

làm việc trong nghiên cứu khoa học và cuộc sống, giúp NCS vững tin vượt qua những

khó khăn trong suốt quá trình thực hiện luận án.

Tiếp đó, NCS muốn gửi lời cảm ơn tới TS. Trần Nghi Phú, một người anh đã cho

NCS nhiều lời khuyên quý báu trước khi NCS bắt đầu quá trình học tập nghiên cứu Tiến

sĩ. NCS cũng muốn gửi lời cảm ơn chân thành đến các cộng sự Lê Văn Hoàng, Nguyễn

Doãn Hiếu đã có nhiều hỗ trợ và giúp đỡ NCS trong quá trình thực hiện luận án. Bên

cạnh đó, NCS xin gửi lời cảm ơn tới Ban Giám đốc, các Phòng ban liên quan và TS. Sử

Ngọc Anh - lãnh đạo Khoa An ninh thông tin của Học viện An ninh nhân dân đã tạo

điều kiện về thời gian và tài chính để NCS có thể tập trung học tập và thực hiện luận án

này.

Cuối cùng, từ tận đáy lòng NCS xin gửi lời cảm ơn vô hạn đến với gia đình, đặc

biệt là con gái bởi đó luôn là động lực phấn đấu của NCS, luôn khuyến khích, động viên

NSC trong quá trình nghiên cứu khoa học. Luận án này sẽ không thể hoàn thành nếu

không có sự ủng hộ, động viên và giúp đỡ của họ.

Page 5: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

iii

MỤC LỤC

Trang

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

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

MỤC LỤC ............................................................................................................ iii

DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT ....................................... vi

DANH MỤC CÁC BẢNG .................................................................................. vii

DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ ............................................................ viii

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

1. Đặt vấn đề ...................................................................................................... 1

1.1. Thông tin cơ bản..................................................................................... 1

1.2. Cơ sở đề xuất nghiên cứu ....................................................................... 3

2. Mục tiêu nghiên cứu ...................................................................................... 5

3. Đối tượng và phạm vi nghiên cứu ................................................................. 5

4. Nội dung và phương pháp nghiên cứu .......................................................... 6

5. Các đóng góp của luận án ............................................................................. 8

6. Bố cục của luận án ........................................................................................ 9

CHƯƠNG 1. CƠ SỞ LÝ THUYẾT ................................................................... 11

1.1. Mã độc IoT botnet .................................................................................... 11

1.1.1. Khái niệm và đặc điểm thiết bị IoT ................................................... 11

1.1.2. Khái niệm mã độc IoT botnet ........................................................... 15

1.1.3. Sự tiến hóa của mã độc IoT botnet ................................................... 17

1.1.4. Cấu trúc và nguyên lý hoạt động của mã độc IoT botnet ................. 23

1.1.5. Sự khác biệt giữa mã độc botnet truyền thống và IoT botnet ........... 25

1.2. Học máy và học sâu trong phát hiện mã độc IoT botnet ......................... 28

1.2.1. Học máy ............................................................................................ 28

1.2.2. Học sâu .............................................................................................. 34

Page 6: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

iv

1.3. Kết luận Chương 1 ................................................................................... 39

CHƯƠNG 2. PHƯƠNG PHÁP PHÁT HIỆN MÃ ĐỘC IOT BOTNET ........... 40

2.1. Tổng quan các phương pháp phát hiện mã độc IoT botnet ...................... 40

2.1.1. Phân tích động ................................................................................... 41

2.1.2. Phân tích tĩnh ..................................................................................... 43

2.1.3. Phân tích lai ....................................................................................... 46

2.1.4. So sánh giữa phân tích tĩnh và phân tích động ................................. 47

2.2. So sánh, đánh giá các phương pháp dựa trên phân tích tích trong phát

hiện mã độc IoT botnet.................................................................................... 48

2.2.1. Phân tích tĩnh dựa trên đặc trưng phi cấu trúc đồ thị ........................ 49

2.2.2. Phân tích tĩnh dựa trên đặc trưng có cấu trúc đồ thị ......................... 56

2.2.3. Xây dựng bộ cơ sở dữ liệu thử nghiệm ............................................. 63

2.2.4. Các tiêu chí đánh giá ......................................................................... 68

2.2.5. Kết quả thực nghiệm và nhận xét ...................................................... 70

2.3. Kết luận Chương 2 và định hướng nghiên cứu ........................................ 73

CHƯƠNG 3. ĐẶC TRƯNG ĐỒ THỊ PSI TRONG PHÁT HIỆN MÃ ĐỘC IOT

BOTNET ............................................................................................................. 75

3.1. Phát biểu bài toán ..................................................................................... 75

3.2. Giải thích bài toán .................................................................................... 76

3.3. Sơ đồ và ý tưởng phương pháp đề xuất ................................................... 79

3.4. Đồ thị lời gọi hàm trong phát hiện mã độc IoT botnet ............................ 81

3.4.1. Khái niệm đồ thị lời gọi hàm ............................................................ 81

3.4.2. Xây dựng đồ thị lời gọi hàm ............................................................. 83

3.5. Xây dựng đồ thị PSI ................................................................................. 88

3.5.1. Các khái niệm liên quan .................................................................... 88

3.5.2. Thuật toán xây dựng đồ thị PSI......................................................... 90

3.6. Đánh giá thực nghiệm .............................................................................. 96

Page 7: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

v

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

3.6.2. Mô hình đánh giá .............................................................................. 96

3.6.3. Các kết quả thực nghiệm và thảo luận ............................................ 101

3.7. Kết luận Chương 3 ................................................................................. 104

CHƯƠNG 4. ĐẶC TRƯNG ĐỒ THỊ CON PSI CÓ GỐC TRONG PHÁT HIỆN

MÃ ĐỘC IOT BOTNET .................................................................................. 105

4.1. Phát biểu bài toán ................................................................................... 105

4.2. Sơ đồ và ý tưởng phương pháp đề xuất ................................................. 106

4.3. Xây dựng đặc trưng đồ thị PSI-rooted subgraph ................................... 107

4.3.1. Khái niệm ........................................................................................ 107

4.3.2 Thuật toán xây dựng PSI-rooted subraph ........................................ 108

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

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

4.4.2. Mô hình đánh giá ............................................................................ 113

4.4.3. Các kết quả thực nghiệm và thảo luận ............................................ 116

4.5. Kết luận Chương 4 ................................................................................. 122

KẾT LUẬN VÀ KIẾN NGHỊ ........................................................................... 124

DANH MỤC CÔNG TRÌNH CỦA TÁC GIẢ ................................................. 127

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

Page 8: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

vi

DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT

Từ viết tắt Viết đầy đủ (tiếng Anh) Viết đầy đủ (tiếng Việt)

IoT Internet of things Vạn vật kết nối Internet

DL Deep Learning Học sâu

ML Machine Learning Học máy

SVM Support Vector Machine Máy hỗ trợ vector

GPU Graphical Processing Unit Thẻ xử lý đồ họa

CFG Control Flow Graph Đồ thị luồng điều khiển

PSI Printable String Information Thông tin có ý nghĩa

DNN Deep Neural Networ Mạng nơ-ron học sâu

ELF Executable Linkable Format Định dạng tập tin ELF

DNS Domain Name System Hệ thống tên miền

KNN K-nearest neighbour Thuật toán k láng giềng gần nhất

RF Random Forest Thuật toán rừng ngẫu nhiên

RNN Recurrent Neural Network Mạng nơ-ron hồi quy

CNN Convolution Neural Network Mạng nơ-ron tích chập

SVM Support Vector Machine Thuật toán máy hỗ trợ vector

Page 9: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

vii

DANH MỤC CÁC BẢNG

Trang

Bảng 1.1. So sánh mã độc botnet trên máy tính truyền thống và IoT 26

Bảng 2.1. Ưu điểm và hạn chế của phân tích động 42

Bảng 2.2. Ưu điểm và hạn chế của phân tích tĩnh 44

Bảng 2.3. So sánh các phương pháp phân tích, phát hiện mã độc IoT botnet 47

Bảng 2.4. So sánh các phương pháp phát hiện mã độc IoT botnet dựa trên đặc

trưng tĩnh trong các nghiên cứu gần đây 61

Bảng 2.5. Mô tả tập dữ liệu mẫu để thử nghiệm 67

Bảng 2.6. Kết quả thực nghiệm các hướng tiếp cận dựa trên đặc trưng tĩnh hiện

nay trong phát hiện mã độc IoT botnet 71

Bảng 3.1. So sánh giữa đồ thị PSI và đồ thị lời gọi hàm FCG 93

Bảng 3.2. Chi tiết số lượng cạnh và số lượng đỉnh trong đồ thị PSI giữa các lớp

mẫu 93

Bảng 3.3. Kết quả phát hiện mã độc IoT botnet bằng đồ thị PSI và đồ thị lời gọi

hàm 101

Bảng 3.4. Kết quả so sánh giữa các phương pháp phát hiện IoT botnet 103

Bảng 4.1. Một ví dụ sinh đồ thị con PSI có gốc với độ sâu bằng 2 111

Bảng 4.2. Kết quả của các bộ phân loại với đặc trưng đề xuất 116

Bảng 4.3. Kết quả đánh giá phát hiện mã độc với tập dữ liệu kiến trúc ARM 117

Bảng 4.4. Kết quả đánh giá phát hiện mã độc với tập dữ liệu dựa kiến trúc MIPS 118

Bảng 4.5. So sánh thời gian xử lý 119

Bảng 4.6. So sánh độ chính xác của các bộ phân lớp học máy truyền thống trong

phát hiện mã độc IoT botnet 120

Page 10: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

viii

DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ

Trang

Hình 1.1. Số lượng các thiết bị IoT từ năm 2015 – 2025 12

Hinh 1.2. Minh họa ứng dụng của Internet of Things (IoT) trong cuộc sống 13

Hinh 1.3. Số lượng mã độc botnet trên các thiết bị IoT giai đoạn 2016 – 2018 16

Hình 1.4. Vị trí của mã độc IoT botnet trong các loại mã độc 17

Hình 1.5. Mối quan hệ giữa một số mã độc IoT botnet 18

Hình 1.6. Quy trình lây nhiễm của mã độc IoT botnet 23

Hình 1.7. Một ví dụ minh họa cây quyết định 30

Hình 1.8. Minh họa lề tối đa cho siêu phẳng với phân loại 2 lớp 32

Hình 1.9. Biểu diễn một mạng nơ-ron truyền thẳng 34

Hình 1.10. Một mô hình mạng nơ-ron tích chập 35

Hinh 1.11. Mô hình Skip-gram (trái) và CBOW (phải) 37

Hình 1.12. Mô hình túi từ phân tán 38

Hình 1.13. Mô hình bộ nhớ phân tán 38

Hình 2.1. Phân loại các phương pháp phát hiện mã độc IoT botnet 41

Hình 2.2. Các phương pháp phân tích lai 46

Hình 2.3. Tổng quan tiến trình phát hiện mã độc IoT botnet dựa trên các đặc

trưng tĩnh 48

Hình 2.4. Phân loại các đặc trưng tĩnh trong phát hiện mã độc IoT botnet 49

Hình 2.5. Minh họa các chuỗi Opcode trong tập tin thực thi mã độc 50

Hinh 2.6. Một số chuỗi PSI trong tập tin nhị phân mã độc 52

Hinh 2.7. Chuỗi BAD được mô tả dưới dạng ASCII 52

Hinh 2.8. Chuỗi BAD được miêu tả dưới dạng Unicode 53

Hình 2.9. Định dạng tập tin ELF 54

Hinh 2.10. Quá trình biểu diễn mã độc thông qua ảnh đa mức xám 55

Hinh 2.11. Ví dụ ảnh mẫu mã độc dòng Linux.Gafgyt 56

Hình 2.12. Minh họa một đồ thị đơn giản 57

Page 11: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

ix

Hình 2.13. Minh họa một đồ thị có hướng và nhãn 57

Hinh 2.14. Đồ thị CFG của một mẫu mã độc botnet Linux.Bashlite 59

Hình 2.15. Minh họa đồ thị Opcode 60

Hình 2.16. Kết quả tải về tập dữ liệu mã độc IoT botnet từ IoTPOT 63

Hình 2.17. Giao thức telnet 64

Hình 2.18. Giao diện của VirusShare sau khi đăng nhập với tài khoản được cấp 65

Hình 2.19. Kết quả tải về tập dữ liệu mã độc IoT botnet từ VirusShare 66

Hình 2.20. Sự phân bố kiến trúc vi xử lý trong các mẫu mã độc IoT botnet 67

Hình 3.1. Tổng quan bài toán phát hiện mã độc IoT botnet dựa trên đặc trưng

đồ thị 76

Hình 3.2. Quy trình phương pháp đề xuất phát hiện mã độc IoT botnet 80

Hình 3.3. Minh họa cấu trúc của tập tin bị đóng gói bằng UPX 84

Hình 3.4. Một hàm từ mã độc Linux.Mirai 85

Hình 3.5. Một phần đồ thị lời gọi hàm của mã độc Linux.Mirai 87

Hình 3.6. Các chuỗi bị mã hóa trong Linux.Mirai 89

Hình 3.7. Minh họa lưu trữ dữ liệu đồ thị PSI 92

Hình 3.8. Số lượng các cạnh và đỉnh giữa các lớp mẫu 94

Hình 3.9. Đồ thị lời gọi hàm (trái) và đồ thị PSI (phải) của mẫu mã độc

Linux.Bashlite 95

Hình 3.10. Mô hình đánh giá đặc trưng đồ thị PSI trong phát hiện mã độc IoT

botnet 97

Hình 3.11. Mô hình cơ bản của kỹ thuật nhúng đồ thị 98

Hình 3.12. Mô hình hoạt động của graph2vec tương đồng với doc2vec 99

Hình 4.1. Minh họa ý tưởng bài toán dùng đồ thị con PSI có gốc 105

Hình 4.2. Tổng quan phương pháp đề xuất sử dụng PSI-rooted subgraph trong

phát hiện mã độc IoT botnet 106

Hình 4.3. Một ví dụ đồ thị PSI 107

Hình 4.4. Kết quả thử nghiệm với các độ sâu khác nhau khi duyệt đồ thị con

PSI 109

Hình 4.5. Một minh họa đồ thị con PSI có gốc ở đỉnh 11. 111

Page 12: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

x

Hình 4.6. Biểu đồ phân tán mô tả phân bố các điểm dữ liệu của đồ thị con PSI

có gốc trong tập dữ liệu sau khi giảm chiều LSA 3-D 112

Hình 4.7. Minh họa kỹ thuật đánh giá chéo k-fold 113

Hình 4.8. Mô hình đánh giá đặc trưng đồ thị con PSI có gốc trong phát hiện mã

độc IoT botnet 114

Hình 4.9. Các bộ phân lớp học máy phổ biến trong phát hiện mã độc 115

Hình 4.10. Đường cong ROC của Bagging, RF, DT, kNN và SVM trên tập dữ

liệu 116

Hình 4.11. Đường cong ROC của Bagging, RF, DT, kNN và SVM trên tập dữ

liệu kiến trúc ARM 117

Hình 4.12. Kết quả đường cong ROC của Bagging, RF, DT, kNN và SVM trên

tập dữ liệu kiến trúc MIPS 118

Hình 4.13. Cấu trúc mô hình Skipgram với trường hợp từ trung tâm là “passes” 121

Hình (i). Mô hình ứng dụng thực tế của phương pháp phát hiện IoT botnet sử

dụng đặc trưng đồ thị PSI 125

Page 13: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

1

MỞ ĐẦU

1. Đặt vấn đề

1.1. Th¹ng tin c bn

Cuộc cách mạng công nghiệp 4.0 hay còn được gọi với những cái tên như Vạn

vật kết nối Internet (Internet of Things - IoT) hay công nghiệp Internet (Industrial

Internet) làm biến đổi nhanh chóng nền công nghiệp ở mọi quốc gia, diễn ra trên toàn

cầu. Với nhiều tên gọi khác nhau nhưng đặc điểm nổi bật nhất của cuộc cách mạng công

nghiệp lần thứ 4 đó là việc dịch chuyển các hệ thống máy móc sản xuất truyền thống

sang các hệ thống tự động hoá có khả năng tự hành một cách thông minh dựa trên nền

tảng lõi là các thiết bị IoT. Thông qua cuộc các mạng công nghiệp 4.0 mà giáo dục, y

tế, chính trị, xã hội, kinh tế đã có những thành tựu vượt bậc trong thời gian ngắn. Bên

cạnh những tiện ích mà cuộc cách mạng công nghiệp 4.0 mang lại thì an toàn thông tin

trên không gian mạng ngày càng trở nên phức tạp, tiềm ẩn nhiều nguy cơ ảnh hưởng

trực tiếp tới an ninh quốc gia, lợi ích hợp pháp của người dân. Những nguy cơ này ngày

càng hiện hữu khi mà các chuỗi cung ứng, nhà máy, người tiêu dùng và các hoạt động

liên quan được kết nối với nhau. Khác biệt với máy tính truyền thống, thiết bị IoT rất đa

dạng về chủng loại và kiến trúc phần cứng, chính sự đa dạng của thiết bị IoT khiến sự

phát triển về số lượng thiết bị IoT bùng nổ. Dự kiến đến năm 2025 sẽ có khoảng 75 tỷ

thiết bị [28] được sử dụng ở nhiều lĩnh vực, ngành nghề và đem tới nhiều trải nghiệm

cho người sử dụng như nhà thông minh, giao thông thông minh, y tế thông minh [8].

Theo nghiên cứu của Gartner, đến năm 2020 ước tính 25% các cuộc tấn công hệ thống

thông tin tập trung và các thiết bị IoT [18], và sẽ ngày càng nhiều ngành nghề, lĩnh vực

áp dụng công nghệ IoT, điều đó sẽ khiến số lượng và quy mô các cuộc tấn công mạng

sẽ tiếp tục gia tăng. Bên cạnh đó, nghiên cứu của OWASP (Open Web Application

Security Project) cũng cho thấy 75% các thiết bị IoT có nguy cơ bị tấn công xâm nhập

[29]. Dưới góc độ của kẻ tấn công, các thiết bị IoT là môi trường hấp dẫn bởi khác với

máy tính truyền thống, các thiết bị IoT hoạt động liên tục 24/7, khó cài đặt các giải pháp

phòng chống mã độc (anti-malware), sử dụng cơ chế xác thực yếu,… , điều đó khiến kẻ

tấn công dễ dàng truy cập mức sâu vào các thiết bị IoT (ví dụ như Busybox) [22]. Với

thực tế đó, nhiều cá nhân và tổ chức trong và ngoài nước đã quan tâm, đầu tư nghiên

cứu về đảm bảo an toàn thông tin đối với thiết bị IoT. Một khảo sát, thống kê các nghiên

Page 14: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

2

cứu đã công bố từ 2016 – 2018 tại các tạp chí uy tín của các nhà xuất bản lớn trên thế

giới như Elsevier, IEEE, Hindawi and Springer [6] cho thấy xác thực vẫn là giải pháp

phổ biến trong bảo mật thiết bị IoT và quản lý tin cậy (trust) vẫn đang tiếp tục được đẩy

mạnh sự đầu tư nghiên cứu. Ngoài ra có thể kể đến một số nghiên cứu về giải pháp mã

hóa nhẹ (light), giao thức và cơ chế truyền thông an toàn đối với thiết bị IoT.

- Tại Việt Nam, các giải pháp bảo mật IoT theo 2 hướng chính là giải pháp quản

lý và giải pháp công nghệ, kỹ thuật. Đối với các giải pháp quản lý thì có thể kể đến Viện

Chiến lược Thông tin và Truyền thông - Bộ Thông tin và Truyền thông đã có đề tài

“Nghiên cứu xu thế phát triển, những tác động của công nghệ IoT (Internet of Things)

và đề xuất giải pháp quản lý phù hợp”, mã số 40-15-KHKT-RD, đã có những nghiên

cứu tổng quan về thiết bị IoT và các ứng dụng của IoT được phát triển ở Việt Nam. Từ

những lợi ích đó, nhóm nghiên cứu của Viện đã đưa ra những giải pháp bảo mật, an toàn

thông tin cho sự phát triển IoT ở Việt Nam. Tuy nhiên những giải pháp đó mới dừng ở

mức chính sách quản lý đã ban hành và sẽ ban hành, các giải pháp về phát triển cơ sở

hạ tầng, giải pháp bảo mật ở mức ứng dụng cơ bản cũng như các tiêu chuẩn trong IoT

tại Việt Nam. Về giải pháp công nghệ, kỹ thuật thì nhóm nghiên cứu của Trung tâm an

toàn an ninh thông tin - Đại học Bách khoa Hà Nội hiện đang nghiên cứu một số giải

pháp, hệ thống an ninh mạng với thiết bị IoT, có thể kể đến một số nghiên cứu như

Luangoudom sonexay và cộng sự [1], Nguyễn Văn Tánh và cộng sự [2] đã trình bày giải

pháp phát hiện tấn công trong mạng IoT, trong đó nghiên cứu chỉ tập trung phân tích chi

tiết các dạng tấn công vào giao thức định tuyến RPL (Routing Protocol for Low-Power

and Lossy Networks) được thiết kế cho mạng cảm biến không dây và IoT.

- Trên thế giới, đã có nhiều cá nhân, tổ chức quan tâm nghiên cứu vấn đề bảo mật

cho IoT như. James King và cộng sự [72] đã phát triển giải pháp nhẹ (light) nhằm bảo

vệ kênh truyền giữa các thiết bị IoT có tài nguyên hạn chế với các cổng kết nối

(gateway). Các nhà nghiên cứu tại Eurecom (Pháp) [10] đã thực hiện khảo sát, đánh giá

trên diện rộng mức độ an toàn của các thiết bị IoT cỡ nhỏ như Router, IPCamera và phát

hiện ra trong 32.256 phần sụn (firmware) được phân tích: có hơn 38 loại lỗ hổng zero-

day; phát hiện nhiều cổng hậu (backdoor) giúp các nhà cung cấp, tin tặc dễ dàng truy

cập trái phép vào các thiết bị từ xa bất hợp pháp. Cùng hướng nghiên cứu này và để thúc

đẩy sự hợp tác trong chương trình nghiên cứu và phát triển về an toàn thông tin của cộng

Page 15: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

3

đồng chung Châu Âu (EU), Châu Âu đã thành lập Cụm dự án nghiên cứu trên IoT

(CERP-IoT, Cluster of European Research Projects on IoT) năm 2010 để tiến hành

nghiên cứu chuyên sâu về đảm bảo an ninh, an toàn cho các thiết bị IoT. Các nhà nghiên

cứu Nhật bản cũng đã giới thiệu giải pháp IoTProtect [106] nhằm đảm bảo an toàn cho

các thiết bị IoT. Cơ chế hoạt động của IoTProtect là sử dụng tác tử phần mềm và danh

sách trắng (Whitelist) để kiểm tra định kỳ các tiến trình đang chạy trên thiết bị IoT và

sẽ kết thúc các tiến trình khả nghi hoặc không xác định. Bên cạnh đó, dựa trên các nghiên

cứu của Yashaswini và cộng sự [109], Rafiullah Khan và cộng sự [16] thấy rằng các

nguy cơ đe dọa an ninh, an toàn thông tin đối với các thiết bị IoT bao gồm các hình thức

chính như tấn công giả mạo, tấn công bằng phần mềm độc hại, tấn công thăm dò, tấn

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

Trong khi đó, mã độc botnet là nguy cơ đe dọa thường trực nhất đối với các thiết

bị IoT [15]. Ví dụ điển hình là tháng 10/2016, nhà cung cấp dịch vụ tên miền lớn của

Mỹ là Dyn đã bị mã độc Linux.Mirai tấn công từ chối dịch vụ phân tán (DDoS –

Distributed Denial of Service), với lưu lượng được ghi nhận lại là lớn nhất từ trước đến

nay ở ngưỡng 1,2 Tbps (Terabit per second) với hơn 1,2 triệu thiết bị IoT bị lây nhiễm

[5], đồng thời mã độc Linux.Mirai cũng hướng tới nhiều dịch vụ trực tuyến phổ biến

như Google, Amazon,…

1.2. C sε ĽΖ xu t nghiên cοu

Hiện nay, các nghiên cứu về phát hiện mã độc IoT botnet đã thu hút sự quan tâm

của các nhà nghiên cứu bảo mật. Những nghiên cứu và phương pháp này được thực hiện

dựa trên phát hiện mã độc botnet tự động sử dụng phân tích tĩnh hoặc phân tích động.

Luận án này được thúc đẩy bởi vấn đề nghiên cứu mở sau đây:

- Hiện nay, thiết bị IoT bùng nổ về số lượng, kéo theo số lượng mã độc IoT botnet

cũng gia tăng vượt trội. Dựa trên báo cáo của công ty nghiên cứu thị trường Statista

(Đức), số lượng thiết bị IoT trong năm 2018 đạt 23,14 tỷ thiết bị, tăng 13,7% so với năm

2017 [28]. Theo báo cáo của hãng Kaspersky, số lượng mã độc IoT botnet trong năm

2018 cũng tăng khoảng 73% so với năm 2017.

- Các thiết bị IoT đa dạng, bao gồm nhiều loại thiết bị điện tử nhưng thường được

chia thành 2 nhóm là các thiết bị IoT hạn chế tài nguyên và các thiết bị IoT không hạn

Page 16: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

4

chế tài nguyên. Hiện nay, đã có nhiều nghiên cứu về phát hiện mã độc botnet, tiêu biểu

như nghiên cứu của Zhao và cộng sự [27], Chowdhury và cộng sự [9], Homayoun và

cộng sự [67]. Tuy nhiên, các nghiên cứu này tập trung vào phát hiện mã độc botnet trên

các thiết bị IoT không hạn chế tài nguyên, như máy tính cá nhân truyền thống (Personal

Computer). Do đó, trong phần cơ sở đề xuất này, luận án sẽ tập trung giải quyết vấn đề

nghiên cứu trên các thiết bị IoT hạn chế tài nguyên (bộ nhớ thấp, năng lực tính toán nhỏ,

dung lượng năng lượng pin thấp), ví dụ IP camera, thiết bị định tuyến, thiết bị chuyển

mạch, khóa cửa thông minh,… bởi những thiết bị IoT hạn chế tài nguyên ít được triển

khai cơ chế bảo mật, đảm bảo an toàn thông tin hoặc các giải pháp bảo mật rất yếu kém,

dễ bị tin tặc khai thác, tấn công.

- Bên cạnh đó, lĩnh vực nghiên cứu phát hiện mã độc botnet trên các thiết bị IoT

hạn chế tài nguyên chưa được quan tâm, đầu tư nghiên cứu, mà chủ yếu các nghiên cứu

hiện nay đều dựa trên các bộ luật (rule-based) và dựa trên luồng (flow-based, ví dụ như

địa chỉ IP nguồn/đích, giao thức, số lượng gói tin được gửi/và nhận,…) . Các phương

pháp trên hiện vẫn còn bộc lộ nhiều hạn chế như khó phát hiện các hành vi độc hại của

botnet một cách hiệu quả, dựa trên bộ luật có tỷ lệ phát hiện nhầm cao khi mã độc sử

dụng kỹ thuật gây rối, … Chính vì thế, các hướng tiếp cận dựa trên cấu trúc đồ thị, xuất

phát từ các thông tin mức luồng dữ liệu để phản ánh hành vi của mã độc botnet là một

giải pháp có thể khắc phục những hạn chế trên [3]. Tuy nhiên, các phương pháp theo

hướng cấu trúc đồ thị trong phát hiện mã độc IoT botnet hiện có độ phức tạp tính toán

lớn. Bên cạnh đó, nghiên cứu của Elisa Bertino và cộng sự [58], Kolias và cộng sự [77],

là những nghiên cứu này bước đầu tìm hiểu và giới thiệu một số giải pháp kỹ thuật nhằm

hạn chế sự lây nhiễm của mã độc botnet trên thiết bị IoT. Các nghiên cứu tiêu biểu trong

phát hiện mã độc IoT botnet có thể kể đến như Haddadpajouh và cộng sự [14],

Azmoodeh và cộng sự [36], Su và cộng sự [25]; tuy nhiên những nghiên cứu này hầu

hết đưa ra giải pháp, đánh giá và thực nghiệm trên mã độc IoT botnet đơn kiến trúc.

Những vấn đề cho thấy việc nghiên cứu các phương pháp phát hiện mã độc IoT

botnet mới là cấp thiết, có ý nghĩa về mặt thực tiễn và khoa học, đáp ứng đòi hỏi ngày

càng cao của công tác bảo đảm an ninh, an toàn thông tin cho các thiết bị IoT nói riêng

và không gian mạng nói chung. Phương pháp đề xuất của luận án giải quyết được các

thách thức còn tồn tại sau:

Page 17: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

5

- Thứ nhất là tính đa kiến trúc của các thiết bị IoT, một đặc trưng quan trọng của

thiết bị IoT. Trong phạm vi luận án, việc sử dụng hai thuật ngữ thiết bị IoT và thiết bị

IoT hạn chế tài nguyên là đồng nhất;

- Thứ hai là có tính hiệu quả cao (độ chính xác cao, độ phức tạp thấp);

- Thứ ba là hướng tiếp cận không theo hướng dựa trên các bộ luật và dựa trên

luồng, mà là dựa trên đồ thị và học máy, học sâu.

2. Mục tiêu nghiên cứu

Từ việc phân tích tính cấp thiết của đề tài đã trình bày ở trên, luận án xác định

mục tiêu nghiên cứu nhằm đề xuất một đặc trưng có cấu trúc đồ thị mới và hiệu quả (độ

chính xác cao, độ phức tạp thấp) trong phát hiện mã độc IoT botnet, có khả năng xử lý

mã độc IoT botnet đa kiến trúc.

3. Đối tượng và phạm vi nghiên cứu

*) Đối tượng nghiên cứu của đề tài: Để đạt được mục tiêu nghiên cứu đã đặt

ra, luận án này tập trung vào nghiên cứu các tập tin thực thi trên thiết bị IoT. Các tập tin

thực thi trên thiết bị IoT có thể là mã độc hoặc lành tính, trong đó các tập tin thực thi

được thu thập từ nhiều nguồn uy tín như mạng bẫy (honeypot) hoặc được bóc tách từ

phần sụn của các thiết bị IoT, sẽ được trình bày chi tiết ở phần sau của luận án này. Hiện

nay đã có những nghiên cứu chỉ ra rằng, trong bài toán nghiên cứu phát hiện mã độc thì

thường lựa chọn các tập tin thực thi làm mục tiêu phân tích. Nguyên nhân bởi các tập

tin thực thi được xem như là ánh xạ một một, giúp đảm bảo tính toàn vẹn các hành vi

độc hại của mã độc khi lây nhiễm cũng như việc phân tích về sau của luận án. Bên cạnh

đó, các thiết bị IoT chạy trên nền tảng hệ điều hành Linux chiếm đại đa số [31]. Với

những lý do trên, đối tượng nghiên cứu, thực nghiệm của luận án là các tập tin thực thi

trên thiết bị IoT, có tính đa kiến trúc và có nền tảng trên các hệ điều hành Linux Kernel

2.6 hoặc 3.2. Tuy nhiên, nguyên tắc tổng quát và kiến trúc của phương pháp đề xuất

được áp dụng cho hầu hết các thiết bị IoT chạy trên các nền tảng hệ điều hành khác.

*) Phạm vi nghiên cứu của đề tài:

Bài toán phân tích mã độc được chia thành 3 nhóm chính sau [26]:

Page 18: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

6

(1) Phát hiện mã độc, cung cấp khả năng phân biệt các tập tin mã độc giữa các

tập mẫu lành tính;

(2) Phân loại mã độc, cung cấp khả năng quyết định mã độc thuộc về loại nào

(như virus, worm, trojan, hay botnet);

(3) Sự tiến hóa của mã độc, phát hiện ra mối liên hệ kế thừa giữa các loại mã độc.

Phân loại mã độc là bài toán phân loại đa lớp và phát hiện mã độc có thể xem

như bài toán phân loại hai lớp (nhị phân). Trong phạm vi nghiên cứu, luận án tập trung

vào bài toán phát hiện mã độc. Luận án này phát triển hướng tiếp cận mới trong phát

hiện mã độc IoT botnet, được trình bày chi tiết trong luận án này với phạm vi nghiên

cứu sau:

- Có nhiều loại mã độc lây nhiễm trên các thiết bị IoT như Trojan, Worm,

Ransomware, … Nhưng trên các thiết bị IoT hạn chế tài nguyên thì ít thông tin người

sử dụng để mã độc giám sát, thu thập, mã hóa; trong khi số lượng thiết bị IoT lớn và

phân tán khắp nơi nên hiện nay hầu hết mã độc lây nhiễm trên thiết bị IoT là mã độc

botnet [49]. Vì lý do đó, luận án chỉ tập trung nghiên cứu, phát hiện mã độc IoT botnet.

- Có nhiều cách phân loại thiết bị IoT như dựa trên hãng sản xuất, dựa trên giao

thức sử dụng, dựa trên mục đích kết nối, … Nhưng để phù hợp với nội dung nghiên cứu

của luận án thì luận án sẽ tập trung vào các thiết bị IoT hạn chế về tài nguyên như năng

lượng tiêu thụ thấp, bộ nhớ lưu trữ hạn chế, khả năng tính toán hạn chế. Ví dụ IP camera,

thiết bị định tuyến, thiết bị chuyển mạch, khóa cửa thông minh,…

- Có 02 hướng chính trong phát hiện mã độc botnet là phân tích tĩnh và phân tích

động. Tuy nhiên, để đạt được mục tiêu nghiên cứu, luận án lựa tiếp cận theo phương

pháp có khả năng xử lý vấn đề đa kiến trúc của thiết bị IoT hiệu quả và hiệu suất, đó là

phân tích tĩnh.

4. Nội dung và phương pháp nghiên cứu

*) Nội dung nghiên cứu

Để đạt được mục tiêu nghiên cứu đã đề ra ở trên, luận án sẽ tập trung phân tích,

đánh giá một số nội dung sau:

Page 19: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

7

- Nghiên cứu sự phát triển, tiến hóa và đặc điểm của mã độc IoT botnet cũng như

các phương pháp phát hiện mã độc IoT botnet hiện nay.

- Khảo sát, phân tích và đánh giá lại các phương pháp phát hiện mã độc IoT botnet

hiện nay dựa trên phân tích tĩnh trên cùng bộ cơ sở dữ liệu lớn và môi trường thử nghiệm.

- Nghiên cứu và đề xuất đặc trưng mới có cấu trúc đồ thị trong phát hiện mã độc

IoT botnet

- Đánh giá đặc trưng đã đề xuất về độ chính xác và độ phức tạp trong phát hiện

mã độc IoT botnet bằng cách sử dụng tập dữ liệu lớn và đáng tin cậy, so sánh với những

phương pháp hiện tại cùng hướng tiếp nghiên cứu

Các nội dung trên được giải quyết và trình bày cụ thể trong các Chương sau của

luận án này, cấu trúc cụ thể được trình bày trong phần tiếp theo của luận án này.

*) Phương pháp nghiên cứu

Nghiên cứu lý thuyết:

Tiến hành nghiên cứu, khảo sát, tổng hợp, đánh giá các công trình nghiên cứu

liên quan ở trong và ngoài nước để phân tích những vấn đề chưa giải quyết, những vấn

đề cần tiếp tục nghiên cứu theo hướng của đề tài. Các công trình nghiên cứu được tìm

kiếm tại các kho dữ liệu trực tuyến như:

- Google Scholar (https://scholar.google.com/)

- ScienceDirect (https://www.sciencedirect.com/)

- ACM Digital Library (https://dl.acm.org/)

- IEEE Xplore (https://ieeexplore.ieee.org/)

- Một số hội thảo về an toàn thông tin trong lĩnh vực công nghiệp uy tín hàng đầu

như Blackhat, USENIX, DEF CON, …

Trong đó, tập trung nghiên cứu về đặc trưng hành vi vòng đời lây nhiễm của mã

độc IoT botnet, nghiên cứu các đoạn mã dịch ngược của các tập tin thực thi trên thiết bị

IoT, … Trên cơ sở đó, lựa chọn các nội dung, vấn đề sẽ nghiên cứu, đề xuất và giải

quyết. Hệ thống hóa các vấn đề cần thực hiện, đề xuất mô hình bài toán, đưa ra các vấn

đề để phân tích, đánh giá và thực hiện.

Page 20: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

8

Nghiên cứu thực nghiệm:

Dựa trên tập dữ liệu gồm hơn 10000 mẫu gồm cả mã độc botnet và mẫu lành tính

trên thiết bị IoT, chia thành các tập huấn luyện và kiểm thử, sử dụng kỹ thuật kiểm thử

chéo (cross-validation), luận án tiến hành các thí nghiệm, thực nghiệm xây dựng đặc

trưng mã độc IoT botnet bằng các phương pháp phát hiện mã độc IoT botnet, trên tập

dữ liệu các tập tin thực thi trên IoT (mã độc, lành tính). Thực nghiệm đánh giá tính hiệu

quả của đặc trưng đồ thị PSI mà luận án đề xuất với học sâu. Thực nghiệm xây dựng và

đánh giá đặc trưng đồ thị con PSI có gốc (PSI-rooted subgraph) với các thuật toán học

máy để nâng cao hiệu quả trong bài toán phát hiện mã độc IoT botnet.

5. Các đóng góp của luận án

Luận án này tập trung giải quyết các nội dung đã nêu trên. Các đóng góp có thể

được liệt kê như kết quả của luận án này:

- Đóng góp 1: Thực nghiệm, phân tích và đánh giá các phương pháp phát hiện

mã độc IoT hiện nay với cùng bộ cơ sở dữ liệu lớn các tập tin thực thi trên IoT (gồm mã

độc và lành tính), trong đó có các mẫu mã độc thực tế, quá trình thực nghiệm các phương

pháp đó thực hiện trên cùng một cấu hình hệ thống. Kết quả đạt được góp phần đem lại

một đánh giá tổng quan về các phương pháp phát hiện mã độc IoT hiện nay, từ đó góp

phần giúp các nhà nghiên cứu có thể lựa chọn hướng tiếp cận phù hợp cho bài toán phát

hiện mã độc IoT nói chung và IoT botnet nói riêng.

- Đóng góp 2: Luận án đề xuất được một phương pháp mới, gọi là đồ thị PSI

(Printable String Information) có thể mô phỏng quá trình lây nhiễm của mã độc IoT

botnet. Phương pháp đề xuất có độ phức tạp thấp nhưng vẫn đảm bảo độ chính xác cao

trong phát hiện mã độc IoT botnet.

- Đóng góp 3: Luận án đề xuất cải tiến phương pháp phát hiện mã độc IoT botnet

dựa trên đồ thị PSI bằng đồ thị con có gốc PSI (PSI-rooted subgraph) để hoàn thiện quy

trình phát hiện mã độc IoT botnet mà luận án đề xuất với độ chính xác cao và độ phức

tạp thấp.

Toàn bộ mã nguồn nghiên cứu của luận án được công bố mở tại địa chỉ sau:

https://github.com/NguyenHuyTrung

Page 21: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

9

6. Bố cục của luận án

Với những kết quả nghiên cứu đã thực hiện, luận án được trình bày trong bố cục

gồm phần mở đầu, 4 chương nội dung và phần kết luận, hướng phát triển của đề tài. Cụ

thể bố cục như sau:

Phần mở đầu: Luận án trình bày tính cấp thiết và ý nghĩa khoa học của đề tài

nghiên cứu, trên cơ sở đó xác định mục tiêu nghiên cứu, đối tượng và phạm vi nghiên

cứu cũng như nội dung và các phương pháp nghiên cứu của luận án.

Chương 1: Luận án trình bày hai nội dung chính về tổng quan về mã độc IoT

botnet và sơ lược học máy, học sâu. Trong nội dung tổng quan về mã độc IoT botnet,

luận án trình bày khái niệm về thiết bị IoT và mã độc IoT botnet. Tiếp đó, luận án phân

tích và đánh giá tổng quan sự tiến hóa của mã độc IoT botnet. Trên cơ sở đó, luận án

thảo luận và đưa ra kiến trúc vòng đời lây nhiễm của mã độc IoT botnet. Đồng thời, luận

án cũng đánh giá đặc điểm và sự khác biệt của mã độc botnet trên thiết bị IoT so với mã

độc botnet trên máy tính truyền thống. Những nội dung đã thảo luận trên giúp luận án

củng cố luận cứ trong xác định phương pháp phát hiện mã độc IoT botnet phù hợp. Phần

thứ hai, luận án trình bày sơ lược về học máy, học sâu bởi đây là những lý thuyết cơ sở

để luận án áp dụng trong các phương pháp phát hiện IoT botnet.

Chương 2: Luận án trình bày sơ lược các phương pháp phát hiện mã độc IoT

botnet. Mỗi phương pháp được đánh giá toàn diện bởi khái niệm, mô tả các thuận lợi và

hạn chế của chúng, tiếp đó là các nghiên cứu liên quan. Kết hợp với những nội dung đã

trình bày ở Chương 1, luận án đề xuất hướng tiếp cận dựa trên phân tích tĩnh trong phát

hiện mã độc IoT botnet. Tiếp đó, luận án thực hiện khảo sát, đánh giá và thực nghiệm

lại các phương pháp phân tích tĩnh trong phát hiện mã độc IoT botnet trên cùng bộ cơ

sở dữ liệu và môi trường thực nghiệm, trên cơ sở đó đề xuất hướng tiếp cận phù hợp của

luận án.

Chương 3: Luận án trình bày phương pháp luận về giải pháp đề xuất đặc trưng

đồ thị PSI nhằm phát hiện mã độc IoT botnet hiệu quả và hiệu suất cao. Chương này

gồm 3 phần. Phần thứ nhất trình bày tổng quát quy trình hoạt động của phương pháp đề

xuất. Phần thứ hai giới thiệu về cách thức xây dựng đặc trưng đồ thị PSI. Cuối cùng là

Page 22: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

10

đánh giá tính hiệu quả của phương pháp đề xuất dựa trên tiêu chí về độ chính xác và độ

phức tạp, đồng thời so sánh với các nghiên cứu hiện nay.

Chương 4: Luận án tiến hành đánh giá các hạn chế của phương pháp đề xuất ở

Chương 3 nhằm đưa ra giải pháp mới hiệu quả trong phát hiện mã độc IoT botnet. Phần

này tập trung vào đề xuất cách thức xử lý đồ thị PSI nhằm sinh đặc trưng đồ thị mới, gọi

là đồ thị con PSI có gốc (PSI-rooted subgraph). Trên cơ sở đó đánh giá tính hiệu quả

của đặc trưng đồ thị con PSI có gốc với nhiều bộ phân lớp học máy cơ bản, kết quả đạt

được rất khả quan trong phát hiện mã độc IoT botnet.

Cuối cùng, luận án được kết luận, cùng với đó là các định hướng nghiên cứu

tương lai.

Page 23: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

11

CHƯƠNG 1. CƠ SỞ LÝ THUYẾT

1.1. Mã độc IoT botnet

1.1.1. Khái niΜm v¨ ĽΊc ĽiΘm thiΔt bΠ IoT

1.1.1.1. Các khái niệm IoT

Sự phát triển không ngừng của công nghệ thông tin, đặc biệt là sự gia tăng tích

hợp, kết nối các thiết bị thông minh bằng công nghệ vạn vật kết nối (Internet of Things).

Thuật ngữ “Internet of things” (IoT) trong những năm gần đây xuất hiện phổ biến và thu

hút không ít sự quan tâm chú ý của thế giới công nghệ. Sự bùng nổ của các thiết bị IoT

có tác động mạnh mẽ tới cuộc sống, công việc và xã hội loài người. Năm 1999, cụm từ

Vạn vật kết nối Internet (IoT - Internet of Things) lần đầu được đưa ra định nghĩa bởi

Kevin Ashton [73] - nhà khoa học đã sáng lập ra Trung tâm Auto-ID ở Viện công nghệ

Massachusets (MIT - Massachusetts Institute of Technology) để chỉ vật dụng, máy móc

trong nhà như TV, tủ lạnh, máy giặt, bếp gas,... được trang bị những công nghệ như Wi-

Fi, Bluetooth, cảm biến Radio Frequency Identification (RFID), Near-Field

Communications (NFC),... nhằm giúp chúng kết nối với nhau.

Hiện nay có rất nhiều cách giải thích hay khái niệm khác nhau về IoT được đưa

ra, trong đó có thể kể đến khái niệm về IoT của Liên minh Viễn thông thế giới (ITU –

International Telecommunication Union) [69] đã phần giúp làm sáng tỏ hơn về IoT.

Theo ITU thì: Internet of things là một cơ sở hạ tầng mang tính toàn cầu cho xã hội

thông tin, mang đến những dịch vụ tiên tiến bằng cách kết nối các “đồ vật” (cả vật lý

lẫn ảo) dựa trên sự tồn tại của thông tin, dựa trên khả năng tương tác của các thông tin

đó và dựa trên các công nghệ truyền thông. Thông qua việc khai thác khả năng nhận

biết, thu thập xử lý dữ liệu, công nghệ các hệ thống IoT tận dụng mọi thứ để cung cấp

dịch vụ cho tất cả các loại ứng dụng khác nhau, đồng thời bảo đảm tính bảo mật và

quyền riêng tư. Ngoài định nghĩa về IoT của ITU thì một số tổ chức cũng đưa ra các

cách giải thích, khái niệm về IoT để giúp cho các bên liên quan có cái nhìn đa chiều

hơn, hiểu rõ hơn về khái niệm IoT như trong từ điển Oxford có nêu “Internet of Things

(danh từ): là sự kết nối thông qua Internet của các thiết bị điện toán nhúng trong các

đối tượng hàng ngày cho phép chúng có thể gửi và nhận dữ liệu”. Tổ chức IREC

Page 24: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

12

(European Research Cluster on the IoT) cũng đưa ra khái niệm IoT như sau “IoT là một

kiến trúc toàn cầu động, có khả năng tự cấu hình dựa trên giao thức truyền thông tương

tác tiêu chuẩn, ở đó các đồ vật (gồm cả vật lý và ảo) có khả năng định danh và các tính

chất vật lý và ảo hóa, có giao diện thông minh và kết hợp khéo léo với nhau để hòa vào

hệ thống thông tin mạng”. Nhìn chung vẫn chưa có một khái niệm thống nhất nào về

IoT, tuy nhiên các khái niệm của các tổ chức đã đưa ra thì đều cơ bản xoay quanh việc

kết nối các đồ vật qua mạng Internet. Chính vì thế, luận án đưa ra khái niệm IoT tổng

quát như sau:

Định nghĩa 1.1. IoT là nền tảng bao gồm các “vật” (vật lý và ảo hóa) được tích

hợp trên các vật dụng, con người, môi trường và có khả năng kết nối, chia sẻ và xử lý

dữ liệu phục vụ các mục đích khác nhau.

Theo kết quả dự báo của công ty nghiên cứu thị trường Statista (Đức) có thể thấy

số lượng thiết bị IoT sẽ bùng nổ, cụ thể năm 2025 ước đạt gần 75 tỷ thiết bị, gấp 2,4 lần

so với năm 2020, minh họa ở hình 1.1.

Hình 1.1. Số lượng các thiết bị IoT từ năm 2015 – 2025 [28]

Từ khái niệm IoT thấy rằng trong môi trường IoT, có rất nhiều loại thiết bị khác

nhau như điện thoại thông minh, máy tính cá nhân, máy tính xách tay, đồng hồ thông

minh, ti vi thông minh, máy in, máy quét, IP Camera, thiết bị định tuyến, ...Từ khái niệm

Page 25: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

13

IoT, cũng đã nhiều khái niệm về thiết bị IoT [118], nhưng để phù hợp với nội dung

nghiên cứu, luận án đưa ra khái niệm thiết bị IoT như sau:

Định nghĩa 1.2. Thiết bị IoT là những “vật” (gồm vật lý và ảo hóa) đa kiến trúc,

hạn chế về tài nguyên (có năng lực xử lý thấp, bộ nhớ lưu trữ nhỏ, nguồn điện năng

thấp, ...) có khả năng kết nối, chia sẻ, truyền tải và xử lý dữ liệu phục vụ các mục đích

khác nhau.

Qua khái niệm thiết bị IoT thấy rằng, các thiết bị IoT có mặt ở mọi nơi, hầu hết

các ngành nghề, lĩnh vực như chăm sóc sức khỏe, quản lý dây truyền sản xuất, quản lý

năng lượng, hệ thống giao thông thông minh, hệ thống truyền tải điện năng, …, minh

họa ở hình 1.2. Trong đó, đại đa số các thiết bị IoT chạy trên nền tảng biến thể của hệ

điều hành Linux. Những biến thể đó rất phổ biến bởi chúng chứa nhiều tiện ích phổ biến,

và nhiều khả năng của Unix trong một tập tin thực thi [71]. Đó cũng sẽ là lý do luận án

này chỉ tập trung thử nghiệm, đánh giá các phương pháp đề xuất với các tập tin thực thi

trên Linux, có định dạng phổ biến là ELF (Executable Linkable Format) nhưng không

mất đi tính tổng quát khi áp dụng trên các nền tảng hệ điều hành khác.

Hinh 1.2. Minh họa ứng dụng của Internet of Things (IoT) trong cuộc sống [13]

Page 26: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

14

Ngoài các tiện ích đem lại và được ứng dụng trong nhiều lĩnh vực, ngành nghề

thì các thiết bị IoT cũng được dự báo sẽ đóng góp lớn vào nền kinh tế toàn cầu. Theo

báo cáo của công ty IoT Analytics [76] (nhà cung cấp hàng đầu về tìm hiểu thị trường

cho IoT có trụ sở ở Đức) thì giá trị kinh tế toàn cầu do IoT mang lại sẽ từ 2.700 tỷ USD

cho đến 6.700 tỷ USD trước năm 2025.

1.1.1.2. Đặc điểm của thiết bị IoT

Thiết bị IoT có những đặc điểm khác biệt với những công nghệ điện toán truyền

thống hiện nay, như [103]:

- Môi trường không được kiểm soát: Các thiết bị IoT có tính di động và tự hành

cao (ví dụ đồng hồ thông minh, thiết bị định tuyến,…). Những thiết bị này có thể truy

cập vật lý vào nhiều vị trí và tuỳ phụ thuộc vào điều kiện môi trường và thực hiện các

nhiệm vụ được lập trình sẵn mà không cần đến sự tham gia của người sử dụng. Với khả

năng tự hành, thu thập và trao đổi dữ liệu giữa các thiết bị IoT dựa trên cơ sở hạ tầng

mạng nên các vấn đề an toàn bảo mật có thể kể đến như mất an toàn giao thức, mất an

toàn ứng dụng trên các thiết bị IoT là có thể xảy ra.

- Tính không đồng nhất: Khác với các thiết bị xử lý dữ liệu truyền thống như máy

tính cá nhân với vi xử lý x86 thì các thiết bị IoT nói chung và các thiết bị IoT cỡ nhỏ

nói riêng sử dụng một cách đa dạng các kiến trúc vi xử lý như: MIPS, ARM, PowerPC,

MIPSEL, ... Ngoài ra, các nhà sản xuất khác nhau, đặc biệt là các nhà sản xuất đến từ

Trung Quốc cũng có những thay đổi riêng trong kiến trúc vi xử lý của riêng mình nhằm

giảm giá thành và thực hiện những mục đích khác nhau. Bên cạnh đó, sự không đồng

nhất còn thể hiện ở việc các thiết bị IoT dựa trên các mạng khác nhau như mạng Internet,

mạng viễn thông, mạng vệ tinh. Vì thế, việc nghiên cứu tổng thể, phổ quát cho các thiết

bị IoT là khó khăn.

- Tài nguyên hạn chế: Các thiết bị IoT thường bị hạn chế triển khai các cơ chế

đảm bảo an toàn nhằm giảm thiểu chi phí sản xuất và giảm kích thước các thiết bị IoT

cỡ nhỏ. Điều này vô hình chung đã dẫn đến các thiết bị IoT cũng bị hạn chế về tài nguyên

như bộ nhớ thấp, năng lực tính toán nhỏ, dung lượng năng lượng pin thấp.

- Trạng thái động: Trạng thái của các thiết bị IoT thay đổi linh hoạt, ví dụ như

lúc hoạt động và ngủ chờ, lúc kết nối và ngắt kết nối... phụ thuộc vào hoàn cảnh của các

Page 27: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

15

thiết bị gồm vị trí, chức năng và tốc độ di chuyển. Hơn nữa, số lượng các thiết bị IoT

cũng có thể thay đổi.

- Tính kết nối: Thông qua IoT, mọi vật có thể được kết nối, tương tác với cơ sở

hạ tầng thông tin và truyền thông toàn cầu thường xuyên, liên tục.

Bên cạnh các đặc điểm trên thì các thiết bị IoT hiện thiếu cơ chế bảo mật trong

thiết kế và thường có cấu hình bảo mật yếu kém. Sự tồn tại của hai yếu tố này làm vấn

đề bảo mật IoT càng nghiêm trọng bởi kẻ tấn công luôn cố gắng khai thác thiết bị IoT

từ các lớp trong cấu trúc thiết bị IoT. Cấu trúc của thiết bị IoT gồm [112] lớp chính sách

(policy), lớp giao thức (protocol), lớp giao diện web (web interface), lớp hệ điều hành

và ứng dụng (Operating system and application), lớp phần sụn và lớp phần cứng

(hardware). Từ các lớp bảo mật trên có thể xác định rõ các mối nguy cơ đe dọa đối với

từng lớp, từ đó xây dựng các biện pháp bảo mật phù hợp, hiệu quả. Với nguy cơ đe dọa

từ các tập tin thực thi mã độc thì sẽ tập trung vào các lớp phần sụn, lớp hệ điều hành và

ứng dụng.

Như vậy, để đạt hiệu quả cao trong các bài toán phát hiện mã độc IoT botnet thì

việc nghiên cứu, tìm hiểu xem mã độc IoT botnet có những đặc trưng khác biệt gì so với

mã độc botnet truyền thống là rất quan trọng, phần tiếp theo của luận án sẽ trình bày chi

tiết vấn đề này.

1.1.2. Khái niΜm m« Ľίc IoT botnet

Mặc dù có rất nhiều loại mã độc tấn công, lây nhiễm các thiết IoT, nhưng xu

hướng mã độc botnet được xem là phổ biến nhất, gây hậu quả lớn nhất đối với các thiết

bị IoT [49]. Hoạt động của mã độc IoT botnet gần đây cho thấy tội phạm mạng đang

chuyển hướng sử dụng các thiết bị IoT nhằm phát động các cuộc tấn công mạng quy mô

lớn, có khả năng gây gián đoạn mạng Internet. Số lượng mã độc được phát triển với mục

đích lây nhiễm, tấn công các thiết bị IoT cỡ nhỏ ngày càng tăng, cụ thể là theo báo cáo

của hãng Kaspersky thì số lượng mã độc trên thiết bị IoT năm 2018 đã tăng gấp hơn 37

lần so với năm 2016 [85], minh họa ở hình 1.3.

Trước khi đi vào thuật ngữ mã độc IoT botnet thì cần tìm hiểu thuật ngữ mã độc.

Thuật ngữ mã độc có rất nhiều cách hiểu khác nhau, theo Helenius [65], mã độc được

là các chương trình được thiết kế với mục đích người dùng không mong muốn. Ed

Page 28: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

16

Skoudis và cộng sự thì cho rằng [59] mã độc là tập các câu lệnh được lây nhiễm vào

máy tính người dùng để kiểm soát máy tính thực hiện các hành vi độc hại theo mục đích

của kẻ tấn công. Một cách tổng quan, mã độc (tiếng anh là Malicious Software/Code) là

một chương trình hoặc một đoạn mã được bí mật chèn vào hệ thống người dùng nhằm

gây hại hệ thống máy tính, hệ thống mạng, thông tin dữ liệu, … như tính tin cậy, tính

bảo mật, tính toàn vẹn hoặc tính sẵn sàng.

Hinh 1.3. Số lượng mã độc botnet trên các thiết bị IoT giai đoạn 2016 – 2018

Mã độc botnet là loại mã độc xuất phát từ tên gọi “robot”, trong đó mã độc botnet

là một ứng dụng có khả năng tự tương tác với các dịch vụ khác trên mạng. Mã độc botnet

[104], [88] được thiết kế để lây nhiễm các thiết bị cụ thể (ví dụ như máy tính, thiết bị di

động hoặc thiết bị IoT) và biến những thiết bị đó thành một phần trong hệ thống mạng

máy tính ma (zombies) – đó là một mạng máy tính gồm nhiều thiết bị đã bị lây nhiễm

mã độc botnet và được điều khiển bởi kẻ tấn công, thường được gọi là bot-master thông

qua các kênh giao tiếp như Internet Relay Chat (IRC). Điểm khác biệt giữa mã độc

botnet với các mã độc khác là mã độc botnet chỉ thực hiện các hành vi độc hại khi nhận

được chỉ thị từ các máy chủ C&C của kẻ tấn công.

Page 29: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

17

Hình 1.4. Vị trí của mã độc IoT botnet trong các loại mã độc

Bởi vì số lượng thiết bị IoT hiện nay phát triển ngày càng nhanh, vượt xa so với

số lượng máy tính truyền thống, mã độc botnet trên các nền tàng đó sẽ lây nhiễm được

càng nhiều thiết bị. Do đó, có thể chia mã độc botnet thành hai loại là: mã độc IoT botnet

và mã độc botnet trên máy tính truyền thống (gọi tắt là mã độc botnet truyền thống).

Như vậy, tương tự như mã độc trên thiết bị di động [61] và mã độc Linux [50] thì mã

độc IoT botnet được xem như là mã độc botnet lây nhiễm trên các thiết bị IoT. Trong

phạm vi nghiên cứu, luận án định nghĩa mã độc IoT botnet như sau:

Định nghĩa 1.3. Mã độc IoT botnet là mã độc botnet có khả năng tự lây nhiễm

trên các thiết bị IoT, bị kết nối và điều khiển bởi tin tặc.

1.1.3. Sχ tiΔn hóa cνa m« Ľίc IoT botnet

Cũng giống như máy tính truyền thống, sự tiến hóa của mã độc botnet cũng gia

tăng theo sự phát triển của công nghệ tính toán, và cả Internet, sự phức tạp và mức độ

nguy hiểm của mã độc đã tăng lên kể từ khi công nghệ thông minh ra đời với hàng ngàn,

hàng tỷ thiết bị có khả năng kết nối mạng Internet. Allix và cộng sự [35] đã nhận định

rằng, hầu hết mã độc hiện nay được sinh ra bằng cách sao chép mã nguồn theo các hướng

dẫn trực tuyến hoặc biến thể của cùng mã độc theo sự sáng tạo của người viết mã độc.

Điều này được thể hiện khá rõ đối với mã độc IoT, thông qua việc phân tích, đánh giá

và tổng hợp một số nghiên cứu như [38], [37], [87], [55], [44], [45] thì luận án đưa ra

một biểu đồ ngắn gọn về sự phát triển, tiến hóa của mã độc IoT được sử dụng để thực

hiện tấn công từ chối dịch vụ phân tán gần đây, minh họa ở hình 1.5. Tuy nhiên, danh

sách các loại mã độc dưới đây vẫn chưa đầy đủ bởi tội phạm mạng thường xuyên sửa

đổi và cập nhật các loại mã độc đã biết để tạo ra các loại mã độc mới, khai thác nhiều

loại thiết bị IoT.

Page 30: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

18

Hình 1.5. Mối quan hệ giữa một số mã độc IoT botnet

Page 31: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

19

Linux.Hydra [55] được xem là mã độc lây nhiễm sớm nhất trên các thiết bị IoT

(gọi tắt là mã độc IoT). Linux.Hydra xuất hiện vào năm 2008, ở dạng mã nguồn mở

nhằm mục đích tấn công các thiết bị định tuyến dựa trên nền tảng kiến trúc MIPS. Mã

độc này được thiết kế để lây nhiễm các thiết bị IoT và biến các thiết bị này trở thành

một phần trong mạng botnet thực hiện tấn công từ chối dịch vụ phân tán bằng kỹ thuật

SYN Flood dựa trên IRC.

Psyb0t [44] xuất hiện vào năm 2009 với nhiều điểm tương tự với mã độc

Linux.Hydra như lây nhiễm trên các thiết bị định tuyến, modem DSL có vi xử lý MIPS

litte-endian. Psyb0t hoạt động dựa trên cơ chế nhận lệnh từ máy chủ C&C qua giao thức

IRC để thực hiện tấn công UDP Flood, ICMP Flood. Sau khi lây nhiễm thành công các

thiết bị, mã độc Psy0t sẽ chặn truy cập thiết bi định tuyến qua một số cổng TCP như 22,

23, 80.

Chuck Norris [45] được phát hiện vào năm 2010, là mã độc botnet dựa trên IRC

để lây nhiễm các thiết bị định tuyến và modem DSL. Mã độc này được coi là tiến hóa

từ Psyb0t với các khả năng tấn công từ chối dịch vụ phân tán bằng kỹ thuật UDP Flood,

ACK Flood, SYN Flood.

Tsunami/Kaiten [38] [55] là mã độc IRC bot được tiến hóa từ mã độc

Linux.Hydra với các tính năng tấn công tinh vi như HTTP Layer 7 Flood, TCP XMASS,

chỉnh sửa thông tin cấu hình máy chủ DNS trên thiết bị đã lây nhiễm khiến cho lưu

lượng từ thiết bị IoT được chuyển hướng tới máy chủ điều khiển của kẻ tấn công, ngắt

tiến trình, tải và thực thi các tập tin, giả mạo địa chỉ IP của những thiết bị dễ bị tổn

thương. Tùy thuộc vào các biến thể của mã độc mà nó có thể chỉnh sửa vị trí lưu trữ các

tập tin /etc/init.d/rc.local nhằm tự động thực thi những tập tin mã độc mỗi khi người

dùng đăng nhập hoặc tại thư mục /etc/rc.d/rc.local để đảm bảo các tập tin thực thi khi

hệ thống khởi động [30].

Aidra/LightAidra [55] là 2 loại mã độc IRC bot xuất hiện vào năm 2012, có mã

nguồn tương tự nhau nên có thể ghép chung vào cùng họ mã độc. So sánh với những

loại mã độc đã trình bày trước thì mã độc này phức tạp hơn vì chúng có thể biên dịch

dựa trên nhiều kiến trúc khác nhau như MIPS, MIPSEL ARM, PowerPC, x86/86-64 và

SuperH. Mã độc này có thể khởi tạo các cuộc tấn công từ chối dịch vụ sử dụng các kỹ

Page 32: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

20

thuật TCP flood, UDP flood, DNS flood, SYN Flood và ACL Flood. Sau khi đã lây

nhiễm thành công các thiết bị IoT, mã độc LightAidra/Aidra được tải về thư mục

/var/run, /var/tmp trên thiết bị (nếu thiết bị sử dụng x86 thì sẽ lưu trong thư mục /tmp)

[113], đây là là vị trí không lưu trữ các tập tin thực thi trên các hệ thống bình thường bởi

dữ liệu sẽ bị xóa khi thiết bị khởi động lại.

Linux.Darlloz là mã độc được hãng Symantec phát hiện vào năm 2013, mã độc

này khai thác lỗ hổng PHP có mã CVE-2012-1823. Tương tự như LightAidra, mã độc

Linux.Darlloz hỗ trợ nhiều nền tảng kiến trúc như x86, ARM, MIPS, PPC…Nhằm chặn

người dùng truy cập tới thiết bị IoT đã lây nhiễm, mã độc này chặn các lưu lượng kết

nối bằng telnet với cấu hình iptable và kết thúc tiến trình của dịch vụ telnet trên thiết bị.

Ngoài ra, mã độc Linux.Darlloz sẽ tìm cách xóa các tập tin của LightAidra khỏi thiết bị

đã lây nhiễm và kết thúc các tiến trình có ID tiến trình (PID) được lưu trữ trong các tập

tin như /var/run/.lightpid, /var/run/.aidrapid và /var/run/lightpid.

Linux.Wifatch là mã độc mã nguồn mở lây nhiễm trên các thiết bị IoT có xác

thực yếu hoặc sử dụng tài khoản mặc định. Khi đã lây nhiễm, mã độc Wifatch sẽ tìm

cách loại bỏ những mã độc khác và ngăn chặn truy cập telnet với thông báo “Telnet đã

được đóng nhằm tránh lây nhiễm thiết bị trong tương lai. Vui lòng ngắt telnet, thay đổi

mật khẩu kết nối telnet hoặc cập nhật firmware” trong nhật ký của thiết bị.

Linux.Wifatch sử dụng mạng ngang hàng (P2P) để cập nhật mã độc và xóa các dấu vết

mã độc lưu lại trên thiết bị IoT. Theo phân tích của hãng bảo mật Symantec [101] thì

sau khi lây nhiễm lên thiết bị, mã độc Linux.Wifatch có thể thực hiện những hành vi mở

cổng hậu hoặc kết nối tới máy chủ C&C thông qua giao thức TCP.

Spike/Dofloo/MrBlack/Wrkatk/Sotdas/AES.DdoS [55] là loại mã độc được

phát hiện lây nhiễm các thiết bị IoT có kiến trúc ARM và MIPS vào giữa năm 2014.

Điểm khác biệt trong kiến trúc mạng botnet so với những dòng mã độc trước đây là

thường sử dụng IRC-based thì dòng mã độc này sử dụng Agent-handler. Hơn nữa, mã

độc này sử dụng cơ chế bảo đảm sự bền vững bằng cách giả mạo tập tin etc/rc.local,

nhằm duy trì sự lây nhiễm khi thiết bị khởi động lại. Bên cạnh đó, đặc trưng nổi bật của

mã độc này là sử dụng luồng SendInfo để tính toán hiệu năng của thiết bị và gửi về máy

chủ C&C, khi đó kẻ tấn công có thể triển khai mật độ thực hiện tấn công từ chối dịch

vụ phân tán trên mỗi thiết bị bot hiệu quả.

Page 33: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

21

BASHLITE/Gafgyt/Q-Bot/Torlus/Lizkebab/LizardStresser) là loại mã độc

xuất hiện vào năm 2014, có nhiều đặc điểm tương tự như dòng mã độc Spike như kiến

trúc mạng botnet sử dụng Agent-Handler, có khả năng lây nhiễm trên các thiết bị đa

kiến trúc, thực hiện tấn công từ chối dịch vụ phân tán bằng một số kỹ thuật đơn giản

như SYN, UDP, TCP ACK Flood.

Elknot/BillGates được phát hiện năm 2015, là mã độc được thiết kế hướng tới

mục tiêu là các thiết bị dân dụng SOHO (Small Office/Home Office) đa kiến trúc như

ARM, MIPS. Có khả năng thực hiện tấn công từ chối dịch vụ phân tán bằng các kỹ thuật

HTTP Layer 7 Flood, TCP Flood.

XOR.DDoS đã âm thâm lây nhiễm nhiều thiết bị IoT trong năm 2015, mã độc

này có khả năng thực hiện nhiều loại tấn công từ chối dịch vụ phân tán như SYN Flood,

UDP Flood, DNS Flood, TCP Flood. Đúng như tên gọi của mã độc này, các kết nối với

máy chủ C&C và mã nguồn của mã độc đều sử dụng mã hóa XOR [63].

Remaiten/KTN-RM là mã độc IoT có những tính năng kết hợp giữa mã độc

Tsunami và Bashlite. Remaiten thực hiện lây nhiễm thiết bị IoT chạy nền tảng Linux

bằng phương pháp tấn công vét cạn dựa trên danh sách các tài khoản đăng nhập, mật

khẩu thường xuyên được sử dụng. Các máy chủ C&C kết nối tới các thiết bị đã bị lây

nhiễm bằng kênh truyền tin IRC. Remaiten có cấu trúc tinh vi, phức tạp hơn Tsunami

và Bashlite ở điểm có thể tùy biến dựa trên kiến trúc thiết bị và phương thức tấn công

mà mã độc thực hiện.

Mirai được viết bằng ngôn ngữ C (5732 dòng mã) và Google Go (1197 dòng mã)

Mã độc Mirai sử dụng những kỹ thuật tấn công DDoS đơn giản như TCP SYN Flood,

UDP Flood, DNS,…nhưng hậu quả tấn công đem lại vô cùng lớn khi có tới 400.000

thiết bị IoT bị lây nhiễm và vụ tấn công đã được ghi nhận với quy mô lớn nhất ở mức

1.2 Tbps [55] vào năm 2016. Mã nguồn của Mirai được biên dịch cho nhiều kiến trúc

chạy hệ điều hành Linux vì đây là nền tảng phổ biến trên các thiết bị IoT và hệ thống

nhúng .

Linux.IRCTelnet là mã độc IoT được xây dựng dựa trên kết hợp mã nguồn của

LightAidra/Aidra, giao thức IRC của mã độc Tsunami, các kỹ thuật lây nhiễm của mã

độc BASHLITE và danh sách xác thực của mã độc Mirai. Tất cả các thiết bị IoT dựa

Page 34: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

22

trên các kiến trúc chuẩn đều có thể bị lây nhiễm bởi mã độc này. Mã độc này sử dụng

nhiều kỹ thuật tấn công như TCP Flood, TCP XMAS, UDP Flood trong cả IPv4 và IPv6.

Hajime là một mã độc IoT botnet được khám phá vào 10/2016 bởi công ty mạng

Rapidity [77], sử dụng phương thức lây nhiễm tương tự mã độc Mirai. Tuy nhiên, sự

khác biệt ở chỗ kiến trúc mã độc Hajime sử dụng hoàn toàn dựa trên truyền thông phân

tán và sử dụng giao thức bảng mã băm phân tán BitTorrent (DHT) cho phát hiện ngang

hàng và giao thức giao vận uTorrent cho trao đổi dữ liệu. Mỗi thông điệp đưpực mã hóa

bằng RC4 và được ký sử dụng các khóa công khai và riêng tư. Chính vì vậy, việc phát

hiện các hành vi độc hại của mã độc Hajime hiện còn gặp nhiều khó khăn.

BrickerBot là một mã độc IoT botnet dựa trên busybox được phát hiện bởi các

nhà nghiên cứu hãng Radware [120] vào 4/2017. Brickerbot có khả năng khai thác thiết

bị tương tự như Mirai, đặc biệt mã độc này có khả năng phá hủy (bricks) các thiết bị sau

khi đã lây nhiễm, khiến thiết bị đó không còn sử dụng được nữa. Mã độc này cố gắng

thực hiện tấn công từ chối dịch vụ các thiết bị IoT bằng nhiều phương pháp khác nhau

như xóa các tập tin khỏi bộ nhớ, cấu hình lại thông số mạng, thay đổi firmware thiết bị.

VNPFilter xuất hiện vào năm 2018, là mã độc được thiết kế để gây hại đến các

thiết bị định tuyến và các thiết bị lưu trữ trên mạng như thiết bị NAS (Network Attached

Storage) [102] nhằm đánh cắp dữ liệu. Không giống như mã độc IoT khác, VPNFilter

là mã độc có khả năng tồn tại ngay cả khi thiết bị IoT được khởi động lại.

Qua đánh giá sự tương quan giữa các loại mã độc IoT botnet được phản ảnh bởi

sự giống nhau giữa các chức năng cũng như mã nguồn. Luận án cho thấy mã độc

Linux.Hydra là mã độc IoT botnet có khả năng tấn công từ chối dịch vụ phân tán đầu

tiên xuất hiện từ năm 2008. Kể từ khi mã nguồn của Linux.Hydra được công bố thì các

nhà viết mã độc IoT đã kế thừa và cho ra nhiều biến thể như Psybot, Chuck Norris,

Tsunami. Tuy nhiên, một phần đoạn mã của Tsunami đã được phát triển thành mã độc

Remaiten và LightAidra, đó là một trong những mã độc IoT xuất hiện gần đây nhất. Bên

cạnh đó, mã độc Tsunami là tiền thân của mã độc Bashlite và từ mã độc Bashlite thì mã

độc Mirai đã kế thừa và tiến hòa với nhiều chức năng phức tạp hơn với các cuộc tấn

công DDoS quy mô lớn vào năm 2016. Kể từ đó, mã độc Mirai đã tiếp tục được phát

triển và tiến hóa thành nhiều biến thể khác nhau như BrickerBot, VPNFilter. Trước khi

kết thúc năm 2017, mã độc IoT Botnet bắt đầu tận dụng các lợi thế của các đặc trưng

Page 35: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

23

hành vi độc hại của mã độc IoT botnet trước đó, nhưng cũng mang nhiều khả năng độc

hại mới như mã hóa, proxy ẩn danh, rootkit và khả năng tự hủy. Mã độc VPNFilter được

phát hiện bởi Cisco Talos [48] năm 2018. VPNFilter đại diện cho loại mã độc IoT botnet

có cấu trúc phức tạp, tinh vi, sử dụng các kỹ thuật tự vệ được tìm thấy trong mã độc IoT

botnet. Nhìn chung, các tác giả viết mã độc botnet vẫn đang tiếp tục xây dựng những

loại mã độc mới để lây nhiễm trên các thiết bị IoT.

1.1.4. C u trúc và nguyên lý ho t Ľίng cνa m« Ľίc IoT botnet

Thông qua đánh giá sự tiến hóa của mã độc IoT botnet có thể thấy sự liên kết

giữa các loại mã độc IoT botnet hiện nay. Trong đó, mã độc IoT botnet chứa hầu hết 2

thành phần cơ bản và 4 thành phần hỗ trợ [38], minh họa ở hình 1.6.

Hình 1.6. Quy trình lây nhiễm của mã độc IoT botnet

Các thành phần gồm: Mã độc botnet thực hiện tấn công DDoS khi nhận lệnh;

Máy chủ C&C để điều khiển mã độc botnet; Bộ Scanner để dò quét các thiết bị IoT mới

có thể bị khai thác; Máy chủ Reporting được sử dụng để thu thập các kết quả dò quét

của mã độc botnet hoặc bộ Scanner; Bộ Loaders được sử dụng để đăng nhập vào các

thiết bị IoT có thể bị khai thác, và ra chỉ thị cho chúng tải về các tập tin thực thi mã độc

có kiến trúc phù hợp; Máy chủ phân phối mã độc xác định vị trí lưu trữ mà độc sẽ được

Page 36: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

24

tải về bởi các thiết bị IoT đã bị lây nhiễm. Các chức năng của một hoặc nhiều thành

phần khác có thể được kết hợp và chức năng của chúng có thể được thực hiện bởi thành

phần khác. Ví dụ, mã độc Mirai không tồn tại tách biệt Bộ Scanner mà thay vào đó mã

độc botnet sẽ thực hiện chức năng dò quét các thiết bị IoT dễ bị tổn thương và cũng thực

hiện tấn công DDoS. Với những thành phần đó, cơ chế hoạt động chung cho hầu hết mã

độc IoT botnet như sau [38]:

Bước 1: Mã độc dò quét dải địa chỉ IP ngẫu nhiên thông qua TCP cổng 23/2323

để tìm kiếm các thiết bị IoT có lỗ hổng bảo mật để xâm nhập, lây nhiễm mở rộng mạng

lưới máy tính botnet. Tuy nhiên, để tránh bị phát hiện và tránh sự chú ý của các cơ quan

chính phủ, mã độc IoT thường loại trừ một số dải địa chỉ IP đặc biệt của IANA, hãng

HP, Bộ quốc phòng Mỹ, dịch vụ bưu chính Mỹ. Sau khi dò quét được thiết bị có khả

năng xâm nhập, mã độc IoT tiến hành tấn công vét cạn để truy cập thiết bị. Việc vét cạn

thường được thực hiện dựa trên tổ hợp các tài khoản mặc định có sẵn được nhúng trong

mã nguồn mã độc. Ví dụ admin/admin, admin/123.

Bước 2: Sau khi dò quét được thiết bị có khả năng xâm nhập và đã thu thập được

thông tin để xác thực và leo thang đặc quyền trên thiết bị (thông qua giao diện câu lệnh

hoặc giao diện đồ họa), thì mã độc sẽ gửi những thông tin đặc trưng của thiết bị về máy

chủ Report thông qua các cổng dịch vụ khác (không sử dụng cổng đã dò quét ban đầu),

những thông tin đó như địa chỉ IP, giá trị cổng giao thức, kiến trúc thiết bị và tài khoản

xác thực.

Bước 3: Mã độc nhận lệnh từ C&C để kiểm tra thông tin đặc tả của thiết bị như

địa chỉ IP, kiến trúc phần cứng (MIPS, ARM, PowerPC, …)

Bước 4: Sau khi máy chủ C&C tiếp nhận thông tin đặc tả về thiết bị thì sẽ ra lệnh

cho máy chủ Loader lựa chọn tập tin thực thi mã độc phù hợp.

Bước 5: Máy chủ Loader gửi tới thiết bị muốn xâm nhập tập tin mã độc phù hợp.

Ngay sau khi tập tin mã độc được tải về và thực thi trên thiết bị thì mã độc sẽ xóa tập tin

thực thi và chỉ chạy trong bộ nhớ RAM để tránh bị phát hiện, đồng thời mã độc sẽ tắt

các dịch vụ cho phép truy cập từ xa như Telnet, SSH, vô hiệu hóa các chức năng của

tường lửa…và tìm kiếm các mã độc khác nhằm diệt chúng để tránh bị ảnh hưởng đến

tài nguyên thiết bị. Ví dụ mã độc Mirai sau khi lây nhiễm thành công thiết bị sẽ tìm và

Page 37: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

25

diệt các mã độc cạnh tranh như Qbot, Remaiten. Việc khởi động lại thiết bị có thế xóa

được mã độc botnet, nhưng việc này chỉ được thực hiện bởi quản trị hệ thống hoặc quản

trị mạng. Ví dụ, nếu thiết bị lây nhiễm mã độc là các thiết bị định tuyến thì hệ thống

mạng sẽ bị gián đoạn khi các thiết bị định tuyến khởi động lại. Hơn nữa, hành động này

có thể vi phạm chính sách thỏa thuận mức độ phục vụ (SLA – Service Level Agreement)

của các dịch vụ có độ sẵn sàng cao.

Bước 6 và 7: Thông qua C&C kẻ tấn công có thể ra lệnh cho mã độc thực hiện

các tấn công từ chối dịch vụ phân tán bằng nhiều kỹ thuật như UDP flood, SYN flood,

GRE IP flood… tới một mục tiêu cụ thể.

1.1.5. Sχ khác biΜt giυa m« Ľίc botnet truyΖn thΧng và IoT botnet

Mã độc botnet trên máy tính truyền thống (ví dụ PCs, Laptops) và thiết bị IoT hầu

như tương đồng nhau về đặc trưng, hành vi vòng đời lây nhiễm. Tuy nhiên, với đặc

trưng công nghệ của thiết bị IoT thì mã độc IoT botnet cũng có những đặc điểm riêng

biệt:

- Thứ nhất, mã độc IoT botnet có tính đa kiến trúc để đảm bảo khả năng lây nhiễm

tối đa trên các thiết bị IoT (với nhiều kiến trúc như ARM, MIPS, PowerPC, Sparc,

MIPSEL, Renesas SH, x86-64 …) trong khi trên các máy tính truyền thống thì mã độc

thường chỉ lây nhiễm đơn kiến trúc [88] (ví dụ phổ biến trên máy tính cá nhân là kiến

trúc x86, trên điện thoại Android là ARM, …).

- Thứ hai, mặc dù khả năng xử lý của các thiết bị IoT sẽ tăng dần và thậm chí

vượt so với máy tính truyền thống trong tương lai. Nhưng hiện nay tài nguyên trên các

thiết bị IoT bị hạn chế hơn nhiều so với trên máy tính truyền thống. Chính vì thế, các

chương trình trên IoT có hướng tiếp cận khác cho việc điều khiển tài nguyên, phần cứng

và tài nguyên ứng dụng. Trên máy tính cá nhân thì coi các chương trình là tin cậy, cho

phép chúng truy cập tới nhiều phần của hệ thống, có thể sử dụng các kỹ thuật mã hóa

phức tạp [23], trong khi đó các thiết bị IoT thì các chương trình hạn chế truy cập của

mỗi ứng dụng tới tài nguyên của chúng, cũng như không sử dụng các kỹ thuật mã hóa

phức tạp. Bên cạnh đó, hầu hết mã độc IoT botnet sau khi lây nhiễm luôn thực hiện tìm

kiếm để dừng hoặc loại bỏ các mã độc khác (ví dụ Mirai tìm và loại bỏ các tiến trình

của mã độc .Anime và Qbot) để tránh bị ảnh hưởng tài nguyên của chúng.

Page 38: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

26

- Thứ ba, mã độc IoT botnet thường thực hiện tấn công DDoS nhiều hơn so với

botnet trên PC truyền thống. Lý do là các thiết bị IoT bị lây nhiễm có tính phân tán diện

rộng, thậm chí là toàn cầu. Lưu lượng thực hiện các cuộc tấn công DDoS do mã độc IoT

botnet thực hiện thường cao hơn so với các mã độc botnet trên PC truyền thống, thường

từ 100 Gbps trở lên [38].

- Thứ tư, hầu hết mã độc IoT botnet thường tạo ra các lưu lượng tấn công khác

biệt như [38] : GRE (Generic Routing Encapsulation), trong đó lưu lượng GRE thì

không thể bị giả mạo nguồn tấn công. Hầu hết các thiết bị định tuyến Internet đều cho

phép lưu lượng GRE bởi chúng được sử dụng để tạo các kết nối mạng riêng ảo VPN

(Virtual Private Networks); và kỹ thuật “DNS water torture” cũng rất khác biệt với kỹ

thuật phản xạ và khuếch đại ở mã độc botnet thông thường là số lượng truy vấn được

gửi từ mã độc IoT botnet ít hơn đáng kể, mà thay vào đó sẽ để máy chủ DNS của các

nhà cung cấp dịch vụ ISP đệ quy thực hiện tấn công mục tiêu.

- Cuối cùng, một đặc điểm quan trọng khác biệt so với máy tính truyền thống là

các thiết bị IoT thường có xu hướng chạy lâu dài, ít khi khởi động lại hay cần đến tương

tác với người sử dụng (ví dụ như thiết bị định tuyến sau khi thiết lập, triển khai thì hầu

như người sử dụng không quan tâm đến quá trình hoạt động của thiết bị trừ khi thiết bị

bị lỗi, sự cố, …). Đây chính là điểm khiến mã độc IoT botnet được thiết kế khác biệt so

với mã độc botnet truyền thống. Mã độc truyền thống có thể lây nhiễm và thường trú tại

các vị trí bộ nhớ bền vững trên máy tính, cũng như lưu lại các tập tin thực thi độc hại

trên máy tính. Ngược lại, mã độc IoT botnet sau khi lây nhiễm sẽ xóa bỏ các tập tin thực

thi và chỉ chạy trên các bộ nhớ không bền vững, tức là có tính không thường trú.

Tóm lại, kết quả so sánh giữa mã độc botnet trên máy tính truyền thống và thiết

bị IoT được tổng hợp như tại bảng dưới đây:

Bảng 1.1. So sánh mã độc botnet trên máy tính truyền thống và IoT

Tiêu chí Mã độc botnet trên PC Mã độc botnet trên IoT

Nền tảng không đồng nhất Nền tảng kiến trúc mã độc

botnet trên máy tính truyền

thấp có sự đa dạng thấp,

So sự đa dạng của các thiết

bị IoT nên mã độc botnet

trên các thiết bị IoT rất đa

dạng về kiến trúc như

Page 39: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

27

chủ yếu tập trung vào các

kiến trúc x86_64

ARM, MIPS, PowerPC,

Sparc, … để đảm bảo khả

năng lây nhiễm thành công

nhiều loại thiết bị

Đa dạng các loại mã độc Mã độc trên máy tính

truyền thống rất đa dạng về

chủng loại, tinh vi và phức

tạp

Do xu hướng thiết bị IoT

mới nổi, cũng như các đặc

trưng khác biệt của thiết bị

IoT nên người viết mã độc

lây nhiễm trên IoT đa phần

là chỉnh sửa cơ bản dựa

trên mã nguồn của các loại

mã độc đã công bố công

khai trước đó. Vì thế sự đa

dạng của mã độc trên IoT

thấp

Kỹ thuật gây rối Do tài nguyên và năng lực

tính toán của máy tính

truyền thống lớn nên người

viết mã độc thường sử

dụng các kỹ thuật gây rối

phức tạp để bảo vệ mã độc

khỏi bị phát hiện, phân

tích. Nguyên nhân là do mã

độc có đủ tài nguyên để xử

lý các kỹ thuật gây rối phức

tạp trước khi thực thi hành

vi độc hại

Do tài nguyên của các thiết

bị IoT bị hạn chế nên người

viết mã độc ít khi sử dụng

các kỹ thuật gây rối phức

tập, hoặc chỉ sử dụng một

số kỹ thuật gây rối đơn

giản như UPX, XOR.

Hình thức tấn công Đa dạng với nhiều hình

thức tấn công như mã hóa

dữ liệu, đánh cắp dữ liệu

Tập trung chủ yếu là hình

thức tấn công từ chối dịch

vụ phân tán bởi đặc điểm

Page 40: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

28

riêng tư, tấn công từ chối

dịch vụ….

số lượng thiết bị IoT lớn và

phân tán toàn cầu

Phát hiện trên hệ thống Dễ dàng phát hiện dấu hiệu

mã độc thông qua biểu hiện

của máy tính truyền thống

Khó phát hiện bởi các thiết

bị IoT có tính hoạt động

độc lập cao, ít tương tác

với người dùng nên không

phát hiện được các dấu

hiệu bất thường trên hệ

thống

Khả năng thực thi trên môi

trường ảo

Dễ dàng triển khai phân

tích với môi trường phân

tích an toàn như sandbox

trên máy tính truyền thống

Khó triển khai phân tích

với môi trường an toàn như

sandbox bởi phải đáp ứng

yêu cầu về có khả năng xử

lý tính đa kiến trúc

Tính thường trú Có thể lây nhiễm và thường

trú tại các vị trí bộ nhớ bền

vững trên máy tính, cũng

như lưu lại các tập tin thực

thi độc hại trên máy tính.

Sau khi lây nhiễm sẽ xóa

bỏ các tập tin thực thi và

chỉ chạy trên các bộ nhớ

không bền vững, tức là có

tính không thường trú.

Tìm và ngăn chặn mã độc

khác

Do tài nguyên lớn nên trên

máy tính truyền thống

thường có khả năng bị lây

nhiễm nhiều loại mã độc

đồng thời

Do tài nguyên hạn chế nên

mã độc IoT thường có cơ

chế tìm và ngăn chặn mã

độc khác sau khi lây nhiễm

thành công

1.2. Học máy và học sâu trong phát hiện mã độc IoT botnet

1.2.1. HΣc máy

Trí tuệ nhân tạo là một bộ phận của khoa học máy tính nhằm nghiên cứu và phát

triển lý thuyết, phương pháp, kỹ thuật và ứng dụng mô phỏng, mở rộng và triển khai trí

thông minh của con người [107]. Học máy (Machine Learning-ML) là một tập con của

Page 41: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

29

trí tuệ nhân tạo và có liên hệ chặt chẽ với tính toán thống kê, tập trung vào dự đoán bằng

cách sử dụng các hệ thống máy tính. Để giải quyết vấn đề số lượng lớn mã độc IoT ngày

càng gia tăng, nhiều nhà nghiên cứu và các hãng bảo mật đã hướng tới phát triển các

giải pháp tự động phát hiện mã độc IoT botnet. Một trong những giải pháp hiệu quả là

ứng dụng học máy. Học máy liên quan đến việc xây dựng các thuật toán phân lớp có

khả năng “học” từ dữ liệu đầu vào và sau đó sử dụng chúng để xử lý các dữ liệu mới.

Dữ liệu đầu vào ở dạng các đặc trưng của đối tượng đã phân tích. Các đặc trưng này có

thể là số nguyên hoặc số phẩy động hoặc giá trị logic (‘true’ hoặc ‘false’)…

Các thuật toán học máy có thể chia thành 3 loại [79], [93], gồm:

- Học có giám sát (Supervised learning) là quá trình học để dự đoán đầu ra của

một dữ liệu mới dựa trên các cặp (dữ liệu, nhãn) đã biết từ trước. Học có giám sát thường

được sử dụng trong các bài toán phân lớp, do đó hướng tiếp cận này sẽ được luận án sử

dụng trong các thực nghiệm về sau.

- Học không giám sát (Unsupervised learning) là quá trình học để tìm kiếm cấu

trúc hoặc mối liên hệ trong một tập dữ liệu đầu vào không có nhãn, hay còn được gọi là

không biết được kết quả đầu ra hoặc nhãn mà chỉ biết các đặc trưng dữ liệu đầu vào.

Học không giám sát thường được sử dụng trong các bài toán phân cụm.

- Học bán giám sát (Semi-supervised learning) là học với tập dữ liệu huấn luyện

gồm cả dữ liệu đã được gán nhãn và dữ liệu chưa được gán nhãn, trong đó số lượng có

nhãn chỉ chiếm một phần nhỏ. Tuỳ vào từng mục đích cụ thể, học bán giám sát có thể

được áp dụng cho bài toán phân lớp hoặc phân cụm.

Các nghiên cứu cho phát hiện mã độc sử dụng phương pháp học máy như [7],

[21], [60], [83] cho thấy các thuật toán học máy như cây quyết định (DT – Decision

Tree), k-lân cận gần nhất (kNN – k Nearest Neighbors), máy hỗ trợ vector (SVM –

Support Vector Machine), rừng ngẫu nhiên (RF – Random Forest), Bagging được sử

dụng phổ biến.

- Cây quyết định (DT – Decision Tree): là công cụ hỗ trợ ra quyết định sử dụng

biểu đồ dạng cây. Cây quyết định là cây mà ở đó các đỉnh biểu diễn một quyết định dựa

trên một vài đặc trưng và mỗi đỉnh có nhiều nhất các nút con đại diện cho số lượng các

giá trị có thể của đặc trưng này. Các nút lá của cây là các quyết định (ví dụ trong luận

Page 42: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

30

án này thì đó là mã độc hay lành tính). Cây quyết định là một mô hình học có giám sát

có thể áp dụng vào cả bài toán phân lớp (classification) và hồi quy/dự báo (regression).

Việc xây dựng một cây quyết định trên dữ liệu huấn luyện là xác định các câu hỏi và

thứ tự của chúng. Trong đó, cây quyết định có thể làm việc với các đặc trưng ở dạng rời

rạc, không có thứ tự (ví dụ nắng, mưa, bão, vàng…) và cả với dữ liệu có vector đặc

trưng gồm cả dạng rời rạc và liên tục (numeric). Khó khăn lớn nhất ở đây là cách thực

học cây quyết định. Quá trình học thường được lặp đi lặp lại từng lớp. Trong 1 lần lặp

(phân chia tập các thể hiện 𝑆) thuộc tính phù hợp nhất A được lựa chọn để phân chia dữ

liệu và dữ liệu được phân chia tùy theo các giá trị của đặc trưng thành 𝑆1,,𝑆2,…,𝑆𝑛,, ở

đó n đại diện cho số các giá trị có thể của thuộc tính A (trong các tài liệu về cây quyết

định, các đặc trưng thường được gọi là thuộc tính – attribute). Nếu thuộc tính không có

số lượng giá trị hữu hạn nhưng là một số thì cần lựa chọn một ràng buộc để hia dữ liệu

theo giá trị của các đặc trưng đã chọn vào các lớp. Lặp lại quá trình học cho đến khi kết

thúc, tức cây đạt đến độ sâu giới hạn hoặc đã chạy hết các đặc trưng. Để lựa chọn “các

đặc trưng phù hợp nhất” có thể sử dụng tới Entropy và Độ đo thông tin (Information

Gain). DT được thực thi trong Python thông qua gói ScikiLearn (“Scikit-Learn

DecisionTreeClassifier,”), có một siêu tham số đối với DT gọi là “tiêu chuẩn

(criterion)”, tham số này được sử dụng để đo chất lượng phân chia trong cây. Ví dụ một

cây quyết định với các đặc trưng {A, B, C} và các lớp mục tiêu là {1, 2, 3}, cây quyết

định có thể minh họa như một đồ thị có hướng hoặc viết như một tập các luật.

Hình 1.7. Một ví dụ minh họa cây quyết định

- K-lân cận gần nhất (kNN – k Nearest Neighbors): là một phương pháp học có

giám sát, dựa trên hàm khoảng cách đo sự khác biệt hoặc tương đồng giữa 2 thể hiện.

Thuật toán lấy 01 mẫu cần phân loại và tính toán khoảng cách với các mẫu từ tập huấn

Page 43: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

31

luyện, sau đó lựa chọn k hàng xóm gần nhất (với khoảng cách ngắn nhất) và thực hiện

quyết định dựa trên loại lớp của k hàng xóm đó. Khoảng cách Euclidean chuẩn d (x,y)

giữa 2 thể hiện x và y được xác định như công thức (1.1):

𝑑 (𝑥,𝑦)= √∑ (𝑥𝑘− 𝑦𝑘)2

𝑛

𝑘=1

(1.1)

Trong đó, 𝑥𝑘 là phần tử đặc trưng thứ k của thể hiện x, 𝑦𝑘 là phần tử đặc trưng

thứ k của thể hiện y và n là tổng số đặc trưng trong tập dữ liệu. Đôi khi việc ra quyết

định dựa trên việc đại đa số lớp mà k hàng xóm đã chọn thuộc về, trong khi đó một số

trường hợp khác lại dựa trên các trọng số liên quan để ra quyết định. Khi sử dụng k-NN

trong bài toán phát hiện và phân loại mã độc thì cần chú ý lựa chọn đặc trưng cũng như

phương pháp để giải quyết các ngoại lệ và dữ liệu hỗn hợp cao khi mà các mẫu huấn

luyện không thể tạo ra sự tách biệt [68]. Scikit-Learn có thực thi kNN (“Scikit-Learn

KneighborsClassifier”, siêu tham biến quan trọng đối với kNN là “số hàng xóm

(n_neighbors)” được sử dụng để dự đoán các phân loại mới.

- Máy hỗ trợ vector (SVM – Support Vector Machine): Ý tưởng của SVM đến từ

việc phân tách các mẫu mã độc (dương tính) và lành tính (âm tính), trong không gian

đặc trưng sử dụng một đường thẳng (trong không gian 2 chiều), hoặc thường sử dụng

siêu phẳng (hyperlane) tối ưu cho phép chia các điểm thành 2 phần sao cho các điểm

cùng một lớp nằm về một phía với siêu phẳng này.Thuật toán này xây dựng một hoặc

nhiều siêu phẳng (hyperplanes) để chia tập dữ liệu cho việc phân loại. Siêu phẳng được

xây dựng để tối đa hóa khoảng cách từ nó tới các điểm dữ liệu gần nhất. Đôi khi chuyển

đổi nhân được sử dụng để đơn giản hóa siêu phẳng. Xây dựng một siêu phẳng thường

hướng vấn đề 2 lớp (một với một, một với nhiều) và liên quan đến lập trình bậc hai. Cho

một tập dữ liệu tuyến tính tách biệt, biểu diễn bởi 𝐷={(𝑥𝑖,𝑦𝑖) | 𝑥𝑖∈ ℝ,𝑦𝑖∈

{−1,1}}𝑖=1𝑛 . Trong đó, 𝑦𝑖 là +1 hoặc -1 phụ thuộc vào lớp của điểm 𝑥𝑖. Mỗi 𝑥𝑖là một

vector p chiều (thường không được chuẩn hóa). Nhiệm vụ là tìm siêu phẳng với lề tối

đa (margin) mà nó chia tập dữ liệu thành các điểm 𝑦𝑖=1 và 𝑦𝑖=−1:𝑤∙𝑥−𝑏=0,

trong đó 𝑤 là vector bình thường tới một siêu phẳng. Nếu dữ liệu được phân tách tuyến

tính thì ta có thể xây dựng hai siêu phẳng 𝑤∙𝑥−𝑏=1 và 𝑤∙𝑥−𝑏= −1 giữa những

Page 44: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

32

siêu phẳng đó sẽ không có điểm giá trị nào. Khoảng cách giữa chúng (lề) là 2

||𝑤|| , như

vậy để tối đa hóa lề thì cần tối thiểu hóa ||𝑤||. Scikit-Learn có thực thi bộ phân lớp SVM

(“Scikit-Learn SVC”) và có sẵn tất cả các siêu tham biến.

Hình 1.8. Minh họa lề tối đa cho siêu phẳng với phân loại 2 lớp

- Rừng ngẫu nhiên (RF – Random Forest): là một phương pháp học có giám sát,

có khả năng xử lý các bài toán phân lớp và hồi quy. Điểm mấu chốt chốt của phương

pháp rừng ngẫu nhiên là việc xây dựng các cây cụ thể trong một rừng hay nói cách khác

rừng ngẫu nhiên là tập hợp các cây quyết định mà mỗi cây được chọn theo một thuật

toán ngẫu nhiên. Một ưu điểm lớn của rừng ngẫu nhiên là thuật toán này dễ dàng mở

rộng trên nhiều máy tính bởi có khả năng huấn luyện các cây một cách độc lập do đó

đem lại khả năng đánh giá song song. Đồng thời thuật toán này còn phù hợp với các bài

toán có số lượng đặc trưng lớn, ví dụ như ngẫu nhiên lựa chọn khoảng 10 đặc trưng

trong hàng ngàn đặc trưng. Quá trình xử lý của RF cho các bài toán phân lớp diễn ra

như sau: Lấy ra ngẫu nhiên “k” đặc trưng từ tập “m” đặc trưng với 𝑘≪𝑚; từ tập “k”

đặc trưng, tính toán ra đỉnh (node) “d” là tốt nhất cho đỉnh phân loại; chia các đỉnh con

theo đỉnh tốt nhất vừa tìm được và lặp lại các bước trên cho đến khi đạt đến “k” đỉnh;

tiếp tục lặp lại toàn bộ quá trình trên để tạo ra “n” cây. Quá trình dự đoán kết quả thực

hiện như sau: lấy các đặc trưng cần kiểm thử và sử dụng các cây quyết định đã tạo ra để

dự đoán kết quả và lưu vào một danh sách; tính toán số lượng bầu (vote) trên toàn bộ

rừng cho từng kết quả; lấy ra kết quả có số lượng bầu lớn nhất làm kết quả phân loại

Page 45: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

33

cuối cho mô hình. RF được thực thi trong Python thông qua gói Scikit-Learn (“Scikit-

Learn RandomForestClassifier”), có 2 siêu tham biến chính với bộ phân lớp này là “tiêu

chuẩn(criterion)” và “bộ ước lượng (n_esimators)” trong đó “tiêu chuẩn: giống như

trong bộ phân lớp DT, còn “bộ ước lượng” là số lượng cây quyết định được sử dụng

trong rừng.

- Bagging: hay còn gọi là Bootstrap Aggregation là một phương pháp ensemble,

tức là kết hợp từ nhiều mô hình yếu với khả năng dự đoán thấp để tạo ra một kết quả dự

đoán tốt hơn. Tư tưởng chính như sau: cho một tập huấn luyện 𝐷={(𝑥𝑖,𝑦𝑖):𝑖=

1,2,….,𝑛} và giả sử chúng ta muốn có một một dự đoán nào đó đối với biến x. Một mẫu

gồm B tập dữ liệu, mỗi tập dữ liệu gồm n phần tử được chọn lựa ngẫu nhiên từ D với sự

thay thế các thành phần trong mẫu ban đầu. Do đó 𝐵={𝐷1,𝐷2,…,𝐷𝐵} trông giống như

là một tập các tập huấn luyện được nhân bản; quá trình dự đoán với mỗi tập

𝐷𝑏 (𝑏=1,2,…,𝐵} và lần lượt thu thập các kết quả dự báo có được trên mỗi tập 𝐷𝑏; Kết

quả tổng hợp cuối cùng được tính toán bằng cách trung bình hóa (regression) hoặc thông

qua số phiếu bầu nhiều nhất (classification). Bagging được thực thi trong Scikit-Learn

(“Scikit-Learn AdaBoostClassifier”), các siêu tham biến quan trọng đối với Bagging là

số bộ ước lượng, tỷ lệ học và các thuật toán đã dùng.

Các thuật toán học máy khác nhau thường dựa trên một tập các siêu tham biến

(hyper-parameter) hoặc dựa trên một giả thuyết về phân bố dữ liệu, nên không có thuật

toán nào luôn tốt, cho hiệu suất cao nhất với mọi ứng dụng và trên mọi tập dữ liệu. Trong

đó cần lưu ý là các siêu tham biến là các tham biến không tự động học trong các mô

hình phân loại học máy mà chúng có thể chỉnh sửa bởi người dùng. Vì vậy, để tìm ra

những thuật toán học máy tốt nhất cho tập dữ liệu có thể cần thực nghiệm để thử các

thuật toán khác nhau. Luận án này sử dụng Scikit-Learn để thực hiện một số quá trình

thực nghiệm với các thuật toán đã chọn. Scikit-Learn là một thư viện dùng ngôn ngữ lập

trình Python, có khả năng thực hiện nhiều thuật toán học máy phổ biến. Trong luận án

này, hầu hết các thuật toán được sử dụng với các tham biến mặc định. Hiệu quả của các

thuật toán học máy phụ thuộc vào số lượng và độ chính xác của các đặc trưng đã trích

xuất [84], [90]. Việc trích xuất các đặc trưng có ý nghĩa để cải thiện hiệu quả và hiệu

suất phát hiện mã độc IoT botnet thường không đơn giản, chủ yếu tiến hành thủ công và

yêu cầu kiến thức chuyên gia. Do đó, các thuật toán học máy truyền thống đôi khi vẫn

Page 46: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

34

chưa thực sự phù hợp cho phát hiện mã độc IoT botnet. Với năng lực máy tính ngày

càng phát triển và dữ liệu ngày càng lớn thì cần một giải pháp để khắc phục vấn đề trên,

đó là học sâu.

1.2.2. HΣc sâu

Thuật ngữ mạng nơ-ron nhân tạo (ANN – Artificial Neural Network) và mạng

nơ-ron học sâu xuất hiện từ những năm 1980 [92]. Mạng nơ-ron học sâu (DNN – Deep

Neural Network) trở nên phổ biến bởi 2 lý do: thứ nhất là sự phát triển năng lực tính

toán của máy tính ngày càng mạnh mẽ, thứ hai là sự bùng nổ kích thước dữ liệu và sự

xuất hiện của dữ liệu lớn. Một mạng DNN gồm 3 lớp cơ bản: một lớp đầu vào, một lớp

ẩn và một lớp đầu ra. Các lớp không bắt buộc có cùng kích thước. Sự khác biệt giữa

mạng nơ-ron và mạng nơ-ron học sâu là số lượng lớp ẩn; hai hay nhiều lớp ẩn sẽ được

xem như một mạng học sâu. Một mạng nơ-ron đơn chứa một đơn vị cơ bản gọi là một

nơ-ron. Mỗi nơ-ron chấp nhận các giá trị đầu vào và được tính trọng số. Nơ-ron tính

toán một vài hàm dựa trên các trọng số đầu vào để dự đoán kết quả đầu ra. Đầu ra của

nơ-ron được truyền đi như giá trị đầu vào của nơ-ron kế tiếp. Trong đó, số lượng nơ-ron

trong các lớp ẩn là không xác định vì thế mà có hàng ngàn khả năng cấu hình mạng nơ-

ron. Các lớp đầu vào có số lượng nơ-ron tương đương đặc trưng dữ liệu đầu vào, các

lớp đầu ra có số lượng nơ-ron tương đương số lượng cần phân lớp của các bộ phân lớp.

Sự kết nối của các nơ-ron hình thành một mạng gọi là mạng nơ-ron, minh họa như sau:

Hình 1.9. Biểu diễn một mạng nơ-ron truyền thẳng

Page 47: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

35

Có rất nhiều mô hình mạng học sâu như mạng nơ-ron tích chập, mạng nơ-ron hồi

quy, … Trong đó, mô hình mạng nơ-ron tích chập (Convolution Neural Network - CNN)

[34] là kiến trúc mở rộng của mạng MLP được sử dụng rộng rãi trong DNN nhằm tối

ưu hóa quá trình huấn luyện mạng được đề xuất là giảm số lượng các trọng số (weight)

để tăng tốc độ tính toán, giảm thời gian huấn luyện, tránh hiện tượng quá khớp khi mà

lượng dữ liệu đầu vào là rất lớn. Mạng nơ-ron tích chập có kiến trúc khác với mạng nơ-

ron nhân tạo thông thường ở chỗ mạng nơ-ron tích chập được chia thành 3 chiều (rộng,

cao, sâu), tiếp đó là các nơ-ron trong mạng không liên kết hoàn toàn với bộ nơ-ron tiếp

theo mà chỉ liên kết tới một vùng nhỏ, cuối cùng một tầng đầu ra được tối giản thành

vector của giá trị xác suất. Điểm mạnh khi sử dụng mạng nơ-ron tích chập là giảm độ

phức tạp tính toán mà vẫn đảm bảo tính chính xác cao. Cấu trúc mạng CNN được cấu

thành bởi 5 thành phần cơ bản như hình 1.10, gồm: Lớp đầu vào (Input), lớp tích chập

(Convolutional Layer), lớp hợp nhất (Pooling Layer), lớp liên kết đầy đủ (Fully-

connected Layer) và lớp đầu ra (output).

Hình 1.10. Một mô hình mạng nơ-ron tích chập [34]

- Lớp tích chập (Convolution): lấy dữ liệu đầu vào và thực hiện phép chuyển

đổi để tạo ra dữ liệu đầu vào cho lớp kế tiếp (đầu ra của lớp này là đầu vào của lớp sau).

Phép biến đổi được sử dụng ở đây là phép tính tích chập.

- Lớp Pooling: Trong mô hình học sâu, các ma trận đầu vào của các lớp đầu tiên

thường có kích thước rất lớn. Để giải quyết bài toán này, các chuyên gia về học sâu đã

đề xuất phương pháp thêm một lớp ẩn đằng sau các lớp trích chọn đặc trưng (tức là

thường sử dụng giữa các lớp tích chập liên tiếp). Chức năng của hàm này là giảm thiểu

kích thước của ma trận đặc trưng, do đó giảm số lượng tham số và tính toán trong mạng

và kiểm soát hiện tượng quá khớp (overfitting).

Page 48: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

36

- Lớp đầy đủ kết nối (Fully Connected): Sau các bước tích chập (convolution)

và lớp Pooling thì chúng ta nhận được các ma trận đặc trưng của dữ liệu đầu vào. Tại

đây, lớp Fully Connected là một lớp để tập hợp các đặc trưng đó, chuyển đổi chúng từ

dữ liệu 3D, 2D thành 1 vector giá trị giúp cho việc xác định kết quả đầu ra dễ dàng hơn.

- Lớp đầu ra (output): tại lớp cuối cùng này, thông thường hàm Softmax được

sử dụng để phân loại đối tượng dựa vào vector đặc trưng đã được phẳng hoá tại lớp kết

nối đầy đủ (Fully Connected). Các nơ-ron trong một lớp kết nối đầy đủ có đầy đủ các

kết nối tới tất cả các kích hoạt trong các lớp trước

Tuy nhiên, một vấn đề quan trọng đối với các mô hình mạng học sâu là dữ liệu

đầu vào phải được xử lý và chuyển đổi sang dạng số (numeric), tức là dưa nó vào một

không gian mới thường gọi là embbeding, hiện nay có rất nhiều các giải pháp để chuyển

đổi dữ liệu văn bản sang dữ liệu số như Word2vec [20], Doc2Vec [82], … Mô hình

Word2vec [20] được giới thiệu vào năm 2013 bởi Tomas Mikolov và cộng sự, đây là

một mạng nơ-ron hai lớp với duy nhất 1 lớp ẩn để xử lý văn bản. Đầu vào của nó là một

phần văn bản và đầu ra của nó là một tập các vectơ: các vectơ đặc trưng cho các từ trong

kho văn bản đó. Trong word2vec, một biểu diễn phân tán của một từ được sử dụng. Tạo

ra một vector với kích thước vài trăm chiều. Mỗi từ được biểu diễn bởi tập các trọng số

của từng phần tử trong nó. Vì vậy, thay vì sự kết nối one-to-one giữa một phần tử trong

vector với một từ, biểu diễn từ sẽ được dàn trải trên tất cả các thành phần trong vector,

và mỗi phần tử trong vector góp phần định nghĩa cho nhiều từ khác nhau. Mỗi vector

như vậy cũng đại diện cho một cách tóm lược ý nghĩa của một từ. Tóm lại, word2vec là

một kỹ thuật cho việc học mật độ dày đặc thông tin đại diện của từ trong một không gian

vector với số chiều nhỏ hơn, mỗi từ có thể được xem là một điểm trong không gian này

và được đại diện bởi một vector có độ dài cố định. Trong nghiên cứu của mình, Mikolov

và cộng sự đã đề xuất hai kiến trúc để xây dựng “word vector” đó là mô hình Continuous

Bag-of-Words (CBOW), và mô hình Skip-gram.

- Mô hình túi từ liên tục (CBOW - Continuous Bag of Words): dự đoán một từ

khi đã có các từ lân cận.

- Mô hình Skip-gram: là một mô hình đối lập hoàn toàn với mô hình CBOW. Mô

hình này giúp dự đoán các từ lân cận khi đã có một từ. Ví dụ, đầu vào mô hình là 𝑤𝑖 và

đầu ra là 𝑤𝑖−2 , 𝑤𝑖−1 , 𝑤𝑖+1 , 𝑤𝑖+2 nếu kích thước cửa sổ sử dụng là 2.

Page 49: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

37

Hinh 1.11. Mô hình Skip-gram (trái) và CBOW (phải)

Mô hình Doc2Vec [82] được trình bày vào năm 2014 bởi Tomas Mikolov và

cộng sự. Mô hình doc2vec phát triển dựa trên cơ sở thừa kế ý tưởng của word2vec và

xây dựng thêm ma trận đoạn. Việc này giúp cho mô hình doc2vec tập hợp tất cả các từ

trong một câu thành một vector. Mô hình doc2vec bao gồm hai mô hình: mô hình túi từ

phân tán (Distributed Bag of Words- DBOW) và mô hình bộ nhớ phân tán (Distributed

Memory- DM).

- Mô hình túi từ phân tán (DBOW): Mô hình này đơn giản là không quan tâm thứ

tự các từ, huấn luyện nhanh hơn, không sử dụng bối cảnh địa phương / lân cận. Mô hình

chèn thêm 1 "word" là ParagraphID, ParagraphID này đại diện cho văn bản được huấn

luyện. Sau khi huấn luyện xong có thể hiểu các vector ParagraphID này là vector nhúng

của các văn bản.

Page 50: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

38

Hình 1.12. Mô hình túi từ phân tán

- Mô hình bộ nhớ phân tán (DM): Nó xem một đoạn văn (paragraph) là một từ,

sau đó nối từ này vào tập các từ trong câu. Trong quá trình huấn luyện, vector của đoạn

văn (paragraph) và vector từ đều được cập nhật.

Hình 1.13. Mô hình bộ nhớ phân tán

Đối với doc2vec ngoài việc có thể xử lý trên các từ thì còn có thể xử lý trên các

câu thậm chí là cả một đoạn văn bản. Chính vì thế, có thể dễ dàng vector hóa cả một

đoạn văn bản thành một vector có số chiều cố định và nhỏ, từ đó có thể chạy bất cứ thuật

toán phân loại cơ bản nào trên các vector đó.

Những đặc điểm của mã độc IoT botnet cùng với đặc trưng của học máy, học sâu

là cơ sở lý thuyết nền tảng quan trọng để luận án lựa chọn các phương pháp, hướng tiếp

cận phù hợp trong phát hiện mã độc IoT botnet. Phần tiếp theo luận án trình bày về các

phương pháp phát hiện mã độc IoT botnet.

Page 51: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

39

1.3. Kết luận Chương 1

Trong Chương 1, luận án đã trình bày hai nội dung chính là tổng quan về mã độc

IoT botnet và sơ lược học máy, học sâu. Trong nội dung tổng quan về mã độc IoT botnet,

luận án trình bày khái niệm về thiết bị IoT và mã độc IoT botnet. Tiếp đó, luận án phân

tích và đánh giá tổng quan sự tiến hóa của mã độc IoT botnet. Trên cơ sở đó, luận án

thảo luận và đưa ra kiến trúc vòng đời lây nhiễm của mã độc IoT botnet. Đồng thời, luận

án cũng đánh giá đặc điểm và sự khác biệt của mã độc botnet trên thiết bị IoT so với mã

độc botnet trên máy tính truyền thống. Những nội dung đã thảo luận trên giúp luận án

củng cố luận cứ trong xác định phương pháp phát hiện mã độc IoT botnet phù hợp. Phần

thứ hai, luận án trình bày sơ lược về học máy, học sâu bởi đây là những lý thuyết cơ sở

để luận án áp dụng vào các phương pháp phát hiện mã độc IoT botnet.

Page 52: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

40

CHƯƠNG 2. PHƯƠNG PHÁP PHÁT HIỆN MÃ ĐỘC IOT BOTNET

2.1. Tổng quan các phương pháp phát hiện mã độc IoT botnet

Các phương pháp phát hiện mã độc IoT botnet có thể chia thành 2 hướng tiếp cận

chính như [99]: (1) các phương pháp dựa trên chữ ký (signature-based) và (2) các

phương pháp dựa trên hành vi (behavior-based). Các phương pháp dựa trên chữ ký sử

dụng một chuỗi các byte, được trích xuất từ mã độc IoT botnet đã biết như một chữ ký

đại diện đặc trưng duy nhất cho mỗi tập tin để phát hiện mã độc. Phát hiện dựa trên chữ

ký đem lại độ chính xác cao đối với những loại mã độc IoT botnet đã biết. Tuy nhiên,

với sự phát triển mạnh mẽ về số lượng và sự phức tạp của mã độc như mã độc “zero-

day” và mã độc “unknown” thì phương pháp dựa trên chữ ký không thể đáp ứng được

khi mà số lượng chữ ký mã độc ngày càng tăng, thậm chí bùng nổ nên yêu cầu không

gian lưu trữ phải tỷ lệ thuận với số lượng chữ ký, điều này khiến chi phí lưu trữ vô cùng

lớn. Để khắc phục những hạn chế này, phương pháp dựa trên hành vi được nghiên cứu,

phát triển. Phương pháp dựa trên hành vi yêu cầu thực thi các tập tin trong một môi

trường có giám sát và các hành vi sẽ được ghi nhận và kiểm tra. Ưu điểm của phương

pháp này giúp nhanh chóng hiểu được bản chất hành vi của tập tin. Đồng thời nhiều mã

độc hiện nay được xây dựng từ cùng mã nguồn thành các biến thể vì vậy cấu trúc tập tin

có thể khác nhau nhưng hành vi cơ bản không thay đổi. Tuy nhiên hạn chế của phương

pháp này nằm ở tốn kém thời gian thực thi và lưu trữ đặc trưng mẫu hành vi.

Để giải quyết các vấn đề về xu hướng số lượng mã độc tăng, số lượng chữ ký,

hành vi mã độc tăng, hiện nay các nhà nghiên cứu tiếp cận các phương pháp phát hiện

mã độc dựa trên học máy (machine-learning-based). Phương pháp dựa trên học máy

không sử dụng chữ ký hay hành vi mã độc cụ thể mà thay vào đó là các đặc trưng. Về

cơ bản, các đặc trưng được xem là thành phần lõi của phát hiện dựa trên học máy. Dựa

trên các cơ sở kỹ thuật phân tích cơ bản, tất cả các hướng tiếp cận trên được nhóm thành

3 phương pháp phổ biến là phân tích tĩnh (static), phân tích động (dynamic) và phân tích

lai (hybrid). Hình 2.1 minh họa phân loại các phương pháp phát hiện mã độc IoT botnet

hiện nay.

Page 53: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

41

Hình 2.1. Phân loại các phương pháp phát hiện mã độc IoT botnet

2.1.1. Ph©n t²ch Ľίng

Phân tích động là phương pháp giám sát các hành vi trong quá trình thực thi các

tập tin đó, từ đó phát hiện có hay không các hành vi độc hại, bất thường. Môi trường

thực thi các tập tin thường là một môi trường mô phỏng (như sandbox) hoặc các thiết bị

IoT thực tế (như cài đặt các tác tử). Những thông tin được thu thập như các hành vi mức

hệ thống (syscall, giá trị thanh ghi, dữ liệu bộ nhớ ), các hành vi mức mạng (dữ liệu

luồng mạng pcap). Theo hướng tiếp cận này, Celeda và cộng sự [45] giới thiệu phương

pháp phát hiện mã độc Chuck Norris botnet trên các thiết bị modem bị lây nhiễm. Kết

quả nghiên cứu cho thấy hầu hết mã độc lây lan thông qua giao thức telnet do các thiết

bị sử dụng mật khẩu yếu hoặc mặc định của nhà sản xuất. Tuy nhiên nghiên cứu này chỉ

áp dụng được trên kiến trúc MIPS. Để mở rộng phạm vi nghiên cứu trên các kiến trúc

vi xử lý khác như ARM, PowerPC…bộ công cụ QEMU ngày càng được sử dụng rộng

rãi. Trong [111], Jonas và cộng sự đã xây dựng framework Avatar để phân tích Firmware

các thiết bị nhúng bằng cách phối hợp quá trình thực thi của bộ mô phỏng dựa trên

QEMU với phần cứng thực tế. Bằng cách tiêm một phần mềm trung gian đặc biệt vào

thiết bị nhúng, Avatar thực thi các chỉ thị firmware bên trong bộ mô phỏng trong khi

đang truyền các thực thi vào/ra tới thiết bị vật lý. Tuy nhiên, quá trình thực thi mô phỏng

chậm hơn nhiều so với quá trình thực thi trên thiết bị thực do việc đồng bộ tín hiệu thông

qua các kênh UART và JTAG không đảm bảo tốc độ truyền tin.

Cùng hướng tiếp cận đó, Yin Minn Pa Pa và cộng sự [22] đã phát triển mạng bẫy

IoT để chặn bắt mã độc IoT dựa trên giao thức telnet; và IoTBOX để phân tích mã độc

Page 54: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

42

IoT đa kiến trúc CPU, nhưng chỉ tập trung vào phân tích các hành vi mạng. Cũng dựa

trên nền tảng QEMU, Ahmad Darki và cộng sự [54] đã đề xuất RARE – một hệ thống

mô phỏng phân tích mã độc và lưu trữ tiểu sử các hành vi của mã độc trên các bộ định

tuyến dân dụng (SOHO). Trong đó, RARE sử dụng phân tích tĩnh để cung cấp các thông

tin cho quá trình phân tích động từ đó tùy chỉnh môi trường mô phỏng giúp mã độc có

thể bộc lộ hết tất cả các hành vi độc hại, kết quả đạt 94% các mẫu mã độc có thể kích

hoạt thành công. Tuy nhiên, đặc trưng thu thập qua phân tích tĩnh còn đơn giản (địa chỉ

IP và tên miền) và quá trình tương tác giữa bot và C&C chưa đầy đủ khi chưa thể tùy

chỉnh được máy chủ C&C.

Như vậy có thể thấy, phân tích động đem lại kết quả khả quan trong phát hiện mã

độc IoT botnet, dù có nhiều ưu điểm nhưng phân tích động cũng tồn tại nhiều hạn chế,

cụ thể như bảng 2.1.

Bảng 2.1. Ưu điểm và hạn chế của phân tích động

Ưu điểm Hạn chế

- Hiệu quả và chính xác: quan sát thực thi

cụ thể của một chương trình để quyết định

tập tin là mã độc dễ dàng hơn nhiều so với

phân tích mã nhị phân. Phân tích động

thường làm việc với các giá trị thực tế,

chính xác khi thực thi tập tin mà không

cần phải trừu tượng hoặc xấp xỉ.

- Thông tin hành vi thực thi: ưu điểm của

phân tích động đến từ thực tế là tập tin độc

hại thực thi chức năng được thiết kế khi

nó bắt đầu và đến khi kết thúc. Trong quá

trình phân tích động, dữ liệu được thu

thập như bộ nhớ cấp phát, các tập tin được

ghi, các thanh ghi đã đọc/ghi, các tiến

trình đã tạo…Thông tin thu được khi thực

thi tập tin có thể trực tiếp được sử dụng để

- Hạn chế sự quan sát: quá trình phân tích

động không thể cung cấp khả năng quan

sát tất cả các đường đi thực thi (path

execution) có thể cũng như giá trị các

biến, điều này có nghĩa rằng phân tích

động có sự hạn chế trong quan sát mã độc.

- Chu kỳ thực thi và theo vết phụ thuộc:

hạn chế chung của phân tích động là theo

vết phụ thuộc bởi các kết quả phân tích

động chỉ dựa trên các hành vi mã độc

trong một (hoặc một vài) lần thực thi.

Trong khi đó, nhiều loại mã độc có những

điều kiện kích hoạt nhất định mới bộc lộ

các hành vi độc hại ví dụ như mã độc

time-bomb chỉ kích hoạt hành vi độc hại

vào ngày giờ cụ thể, mã độc botnet chỉ

Page 55: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

43

đánh giá các thiệt hại tiềm tàng mà mã độc

có thể gây ra, từ đó có khả năng phát hiện

mã độc.

- Giải quyết các kỹ thuật gây rối, đóng

gói: phân tích động hiệu quả trong việc xử

lý mã độc gây rối và đóng gói bởi các

đoạn mã đã gây rối và đóng gói không ảnh

hưởng đến thông tin hành vi cuối cùng

được thu thập trong quá trình thực thi.

thực hiện hành vi độc hại khi nhận lệnh từ

kẻ tấn công thông qua C&C.

- Tiêu tốn thời gian và tài nguyên: phân

tích động cần thực thi các tập tin trong

một môi trường mô phỏng, có kiểm soát

trong một khoảng thời gian hoặc cho đến

khi quá trình thực thi kết thúc. Đó là một

tác vụ có tốn kém chi phí thời gian khi

phải thực hiện phân tích số lượng mẫu

lớn.

- Giới hạn của môi trường mô phỏng: môi

trường mô phỏng để thực thi các tập tin

tương đối là đơn giản và ổn định so với

môi trường thực thi thực tế của các mẫu

mã độc. Bên cạnh đó, việc thực thi các tập

tin thực thi IoT sẽ gặp vấn đề đa kiến trúc

(ví dụ MIPS, ARM, PowerPC, Sparc, …)

và sự hạn chế tài nguyên của các thiết bị

IoT. Do đó, rất khó để cấu hình một môi

trường nền tảng thỏa mãn các yêu cầu để

các tập tin thực thi IoT có thể thực hiện

đầy đủ và chính xác các chức năng.

2.1.2. Ph©n t²ch tǫnh

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

tin đó để phát hiện mã độc. Quá trình phân tích đòi hỏi xem xét kỹ mã nguồn của tập tin

(đã được chuyển sang các định dạng đọc hiểu như mã hợp ngữ assembly), hiểu luồng

thực thi thông qua các đoạn mã lệnh. Việc thực hiện phân tích tĩnh được thực hiện với

một số công cụ hỗ trợ dịch ngược như IDA Pro [117], radare2 , …Các đặc trưng thường

được trích xuất từ phân tích tĩnh như thông tin cấu trúc trong tiêu đề tập tin, mã thực thi

(Opcode - Operation Code), các chuỗi mang thông tin (PSI - Printable String

Page 56: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

44

Information), đồ thị luồng điều khiển (CFG – Control Flow Graph) , đồ thị luồng dữ liệu

(DFG – Data Flow Graph)…

Theo hướng tiếp cận này có thể kể đến nghiên cứu của Costin và cộng sự [10] đã

đề xuất một framework để thu thập, lọc, unpack và phân tích tĩnh firmware quy mô rộng

từ đó phát hiện lỗ hổng bảo mật, mã độc. Những nghiên cứu trên chỉ sử dụng các đặc

trưng rời rạc mà không đi vào sự tương tác, liên quan giữa các đặc trưng…Trong khi

đó, mã độc IoT botnet luôn có quy trình hoạt động khá tương đồng nhau và có sự tương

tác với nhau [38], [19]. Yan Shoshitaishvili và cộng sự [24] cũng đã đề xuất framework

Angr trong bảo mật IoT. Angr có khả năng xử lý, phân tích các firmware thành các đồ

thị luồng điều khiển CFG và đồ thị luồng dữ liệu DFG và sử dụng biểu đồ này để tạo ra

các lát cắt xác thực bắt đầu từ entry-point cho tới các điểm xác thực của chương trình

nhằm đánh giá khả năng bị nhúng mã độc hoặc tồn tại các lỗ hổng trên firmware. Phương

pháp này cho phép chi tiết hóa toàn bộ luồng điều khiển (Control-Flow graph) và luồng

dữ liệu (Data-Flow graph) cho từng tập tin hệ thống trong firmware để từ đó phát hiện

mã độc bằng kỹ thuật phân tích đặc trưng (symbolic execution). Tuy nhiên, phương pháp

sử dụng Symbolic Execution chỉ phù hợp với việc phân tích các tập tin hệ thống nhỏ, và

không khả thi với các tập tin lớn do độ phức tạp cao khi xây dựng các đồ thị liên quan

và thực thi Symbolic Execution [10].

Như vậy có thể thấy, phân tích tĩnh đem lại kết quả khả quan trong bảo mật IoT

nói chung và phát hiện mã độc IoT nói riêng. Tuy nhiên, bên cạnh các ưu điểm thì phân

tích tĩnh cũng có những hạn chế, cụ thể miêu tả ở bảng 2.2.

Bảng 2.2. Ưu điểm và hạn chế của phân tích tĩnh

Ưu điểm Hạn chế

- Tài nguyên tiêu tốn và thời gian thực thi

thấp: Trong quá trình phân tích tĩnh,

không cần thực thi tập tin nên không bị

ảnh hưởng bởi thời gian và tài nguyên tiêu

tốn. Trong phân tích tĩnh, thời gian phân

tích phụ thuộc vào kích thước đoạn mã

trong khi đó với phân tích động thì thời

- Hạn chế của công nghệ dịch ngược:

Phân tích tĩnh phụ thuộc nhiều vào công

nghệ dịch ngược. Hầu hết các chương

trình mã độc đều được viết bằng ngôn ngữ

bậc cao, một thay đổi nhỏ trong mã nguồn

cũng dẫn đến thay đổi đáng kể trong mã

nhị phân

Page 57: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

45

gian phụ thuộc vào luồng thực thi, điều

này có thể rất chậm trong trường hợp phải

thực hiện vòng lặp hàng trăm, hàng ngàn

lần.

- Quan sát tổng quan: ưu điểm lớn của

phân tích tĩnh là có thể phân tích tất cả các

đường đi thực thi tiềm tàng trong tập tin

mà không bị ảnh hưởng bởi tính đa kiến

trúc của các tập tin, do đó phân tích tĩnh

rất phù hợp với phát hiện mã độc IoT.

Điều này trái ngược với phân tích động

khi chỉ có thể quan sát đường đi đơn luồng

của tập tin tại thời điểm thực thi.

- Dễ dàng xây dựng các đặc trưng: Trong

phân tích tích, cần thực hiện tạo ra mã

phân tích (disassembler) bằng cách dịch

ngược. Việc dịch ngược sẽ chuyển các mã

nhị phân thành các chỉ lệnh hợp ngữ

tương ứng và sau đó nhóm những chỉ lệnh

theo một cách thức mà thông tin có cấu

trúc và nội dung về tập tin thực thi như

các hàm, các khối mã lệnh cơ sở, luồng

điều khiển, luồng dữ liệu.

- An toàn và dữ liệu độc lập: Ngay khi

thông tin phân tách của tập tin thực thi ban

đầu được trích xuất và thu thập thì không

cần thực thi thêm trên tập tin ban đầu nữa.

Điều này có nghĩa là trong suốt quá trình

phân tích tĩnh, nguy cơ bị ảnh hưởng bởi

mã độc hầu như không có.

- Kỹ thuật đa hình và mã hóa: mã độc đa

hình và mã hóa gây nhiều khó khăn cho

phân tích tĩnh.

Page 58: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

46

2.1.3. Phân tích lai

Cả phân tích tĩnh và phân tích động đều có những ưu điểm và hạn chế nhất định.

Vì thế phân tích lai là sự kết hợp các ưu điểm của cả phân tích tĩnh và phân tích động,

trong đó phân tích tĩnh và phân tích động bổ trợ lẫn nhau để nâng cao hiệu quả trong bài

toán phát hiện mã độc IoT botnet.

Hình 2.2. Các phương pháp phân tích lai

Các phương pháp này có thể phân loại thành 3 cách tiếp cận như hình 2.2. Những

tập tin bị đóng gói (pack) muốn thực thi đúng đắn thì cần phải thực hiện unpack khi tải

vào trong bộ nhớ. Chính vì thế, việc trích xuất (dump) toàn bộ dữ liệu của tập tin khi

thực thi trong bộ nhớ ra ngoài sẽ thu được tập tin không bị đóng gói, từ đó phân tích tĩnh

được dễ dàng hơn như hình 2.2(a). Bên cạnh đó, phương pháp lai có thể sử dụng kết quả

từ phân tích tĩnh như một nguồn thông tin bổ trợ cho phân tích động về sau như hình

2.2(b). Cuối cùng hình 2.2(c) kết hợp đồng thời cả hai kết quả phân tích tĩnh và phân

tích động. Như vậy có thể thấy, phân tích lai kết hợp các ưu điểm của phân tích tĩnh và

phân tích động đem lại kết quả khả quan trong phát hiện mã độc, nhưng việc kết hợp

này yêu cầu không gian lưu trữ và tài nguyên tính toán lớn [110].

Page 59: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

47

2.1.4. So sánh giυa ph©n t²ch tǫnh v¨ ph©n t²ch Ľίng

Cả phân tích tĩnh và phân tích động đều có những ưu điểm và hạn chế nhất định.

Bảng 2.3 tổng hợp các ưu nhược điểm của mỗi phương pháp nêu trên.

Bảng 2.3. So sánh các phương pháp phân tích, phát hiện mã độc IoT botnet

Phân tích động Phân tích tĩnh

Điểm

mạnh

- Quan sát thực thi cụ thể của một

chương trình để quyết định tập tin là

mã độc dễ dàng

- Phân tích động hiệu quả hơn đối

với mã độc gây rối

- Phân tích một cách chi tiết các tập tin

và đưa ra được cái nhìn tổng quát về tất

cả các khả năng kích hoạt của chúng

- Không cần phải thực thi mã độc nên

không bị ảnh hưởng bởi tính đa kiến

trúc khi xây dựng môi trường thực thi

Hạn

chế

- Chỉ có thể giám sát đơn luồng thực

thi

- Làm lộ quá trình phát hiện và phân

tích mã độc

- Có thể gây nguy cơ mất an toàn

cho mạng và hệ thống

- Khó mô phỏng đầy đủ thiết bị IoT

(tính đa kiến trúc)

- Phân tích tĩnh phụ thuộc nhiều vào

công nghệ dịch ngược

- Khó khăn khi xử lý mã độc sử dụng

kỹ thuật gây rối

Để phù hợp với nội dung nghiên cứu, luận án thấy rằng với đầu vào là một tập

tin thực thi có tính đa kiến trúc thì cần lựa chọn phương pháp có khả năng xử lý vấn đề

này hiệu quả và hiệu suất, do đó luận án lựa chọn phân tích tĩnh trong đề xuất hướng

tiếp cận giải quyết bài toán nghiên cứu, trong đó luận án khai thác điểm mạnh của phân

tích tĩnh và hạn chế được điểm yếu của phương pháp này. Phần tiếp theo luận án sẽ tập

trung phân tích, đánh giá các nghiên cứu hiện nay dựa trên phân tích tĩnh trong phát hiện

mã độc IoT botnet.

Page 60: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

48

2.2. So sánh, đánh giá các phương pháp dựa trên phân tích tích trong phát hiện mã

độc IoT botnet

Luận án nhấn mạnh vào những nghiên cứu tiên tiến hiện nay và có khả năng phát

hiện mã độc IoT botnet. Do đó, luận án chỉ khảo sát một số nghiên cứu tiêu biểu, bắt

đầu từ năm 2012. Dựa trên khảo sát, đánh giá các nghiên cứu sử dụng phân tích tĩnh

trong phát hiện mã độc từ năm 2012 trở lại đây, luận án thấy quy trình chung trong phát

hiện mã độc IoT botnet dựa trên phân tích tĩnh gồm các bước sau: (1) thu thập dữ liệu,

(2) trích chọn đặc trưng, (3) tiền xử lý dữ liệu và (4) phát hiện, minh họa ở hình 2.3.

Hình 2.3. Tổng quan tiến trình phát hiện mã độc IoT botnet dựa trên các đặc trưng tĩnh

- Thu thập dữ liệu: để phát hiện mã độc IoT, bước đầu tiên cần xây dựng bộ dữ

liệu gồm các mẫu mã độc và lành tính IoT. Tập dữ liệu mã độc thường được thu thập từ

các mạng bẫy honeypot và sandbox, các mẫu lành tính IoT thường được thu thập từ việc

trích xuất phần sụn (firmware) của các thiết bị IoT và được kiểm tra thông qua

VirusTotal.

- Trích chọn đặc trưng: Bên trong cấu trúc của tập tin mã độc tồn tại những

thành phần độc hại có thể được sử dụng làm đặc trưng trong phát hiện mã độc. Những

đặc trưng này như các chuỗi (strings), mã thực thi (opcode), …

Page 61: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

49

- Tiền xử lý dữ liệu: ở giai đoạn này, dữ liệu đã sinh từ bước 2 được chuyển đổi,

tiền xử lý và chuẩn hóa sao cho phù hợp với các thuật toán sử dụng ở giai đoạn sau.

Thêm vào đó, dữ liệu cũng được chia thành các tập huấn luyện và tập kiểm thử để làm

đầu vào cho giai đoạn tiếp theo.

- Phát hiện: ở giai đoạn này, các thuật toán học máy hoặc học sâu được áp dụng

để hiểu biết tốt hơn về các đặc trưng của mã độc IoT cũng như để phân biệt các mẫu mã

độc với các mẫu lành tính. Những thuật toán được sử dụng như k-Nearst Neighbors,

Support Vector Machine, Random Forest, Neural Network.

Các nghiên cứu dựa trên phân tích tĩnh trong phát hiện mã độc thường sử dụng

những đặc trưng phổ biến như [78], [95]: tiêu đề tập tin (header), các lời gọi hàm system-

calls, lời gọi API (Application Programming Interfaces), PSI (Printable Strings

Information), FLF (Function Length Frequency), các thư viện liên kết, OpCode (trích

xuất từ mã assembly), … Dịch ngược là hướng tiếp cận phổ biến để trích xuất những

thông tin đặc trưng trên từ một tập tin thực thi. Cách thức trích xuất và xử lý những đặc

trưng đó ảnh hưởng lớn đến độ chính xác và độ phức tạp của các phương pháp phát hiện

mã độc IoT botnet, những đặc trưng đó có thể được chia thành 02 nhóm: dựa trên các

đặc trưng có cấu trúc đồ thị và dựa trên các đặc trưng phi cấu trúc đồ thị, như minh họa

ở hình 2.4.

Hình 2.4. Phân loại các đặc trưng tĩnh trong phát hiện mã độc IoT botnet

2.2.1. Ph©n t²ch tǫnh dχa tr°n ĽΊc trng phi c u tr¼c ĽΩ thΠ

Các phương pháp phát hiện mã độc IoT botnet sử dụng các đặc trưng phi cấu trúc

đồ thị nhằm xây dựng các mô hình phát hiện, chứa các thuộc tính của cấu trúc tập tin

Page 62: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

50

nhị phân để phân loại một tập tin nhị phân là mã độc hay lành tính. Những phương pháp

này dựa trên trích xuất các đặc trưng gồm Opcode, Strings hoặc cấu trúc tập tin để phân

biệt các mẫu mã độc. Những đặc trưng này có thể được chia thành 2 nhóm [56], [51]:

đặc trưng mức cao và đặc trưng mức thấp. Cụ thể, các đặc trưng mức thấp có thể được

thu thập trực tiếp từ trong cấu trúc của tập tin, trong khi đó các đặc trưng mức cao cần

sử dụng các công cụ hỗ trợ phân tách (disassembler) [47] như IDA Pro hoặc Radare2.

2.2.1.1. Hướng tiếp cận đặc trưng mức cao

a. Đặc trưng Opcode

Mã thực thi (Opcode - Operation Code) là một trong những đặc trưng phổ biến

được sử dụng trong phát hiện mã độc. Một opcode là một chỉ thị lệnh đơn có thể được

thực thi bởi vi xử lý (CPU), có thể miêu tả hành vi của một tập tin thực thi. Mỗi loại vi

xử lý khác nhau lại sử dụng một loại ngôn ngữ opcode khác nhau. Điều này khá phổ

biến đối với thiết bị IoT khi mà thiết bị IoT không đồng nhất về vi xử lý (CPU). Để trích

xuất các opcode từ tập tin thực thi cần thực hiện phân tách (disassembly). Trong ngôn

ngữ assembly, những opcode này sẽ được biểu diễn ở tên chỉ thị ngắn gọn như POP,

PUSH, MOVE, ADD, SUB…

Hình 2.5. Minh họa các chuỗi Opcode trong tập tin thực thi mã độc

Page 63: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

51

Dựa trên đặc trưng này, Hamed HaddadPajouh và cộng sự [14] đã đề xuất một

phương pháp phát hiện mã độc IoT sử dụng chuỗi opcode. Phương pháp này đạt độ

chính xác 98,18% với tập dữ liệu kiểm thử gồm 281 mã độc IoT dựa trên ARM và 270

mẫu lành tính IoT dựa trên ARM. Cùng hướng tiếp cận này, Ensieh Modiri Dovom và

cộng sự [57] đã chuyển đổi opcode của các tập tin thực thi vào không gian vector và ứng

dụng phương pháp mờ (fuzz) để phát hiện mã độc IoT botnet. Để chứng minh phương

pháp trong phát hiện mã độc botnet, nhóm tác giả triển khai thực nghiệm dựa trên tập

dữ liệu IoT có kiến trúc ARM, gồm 1078 mẫu lành tính và 128 mẫu mã độc, kết quả đạt

độ chính xác 99,83%. Tương tự, Hamid Darabian và cộng sự [52] đã trình bày một kỹ

thuật dựa trên chuỗi tuần tự opcode để phát hiện mã độc IoT botnet. Bằng cách đếm số

lần lặp lại của opcode trong các tập tin thực thi, nhóm tác giả thấy rằng một vài giá trị

opcode xuất hiện trong các mẫu mã độc có tần suất xuất hiện cao hơn các tập tin lành

tính. Do đó, các opcode được đánh chỉ mục xếp loại dựa trên số lần lặp, các opcode có

số lần lặp lại càng nhiều thì chỉ số xếp hạng càng cao và ngược lại. Tiếp đó, các chuỗi

opcode sẽ được chuyển thành chuỗi số và ứng dụng các bộ phân lớp học máy gồm kNN,

SVM, MLP, Random Forest, Decision Tree và AdaBoost để phân loại. Kết quả thực

nghiệm đạt độ chính xác 99% trong phát hiện mẫu mã độc botnet từ các mẫu lành tính.

Mặc dù những kết quả đạt được của việc sử dụng opcode trong phát hiện mã độc

rất khả quan, nhưng phương pháp này vẫn còn một số hạn chế. Thứ nhất, do sự khác

biệt giữa tập lệnh của các kiến trúc khác nhau, nên những nghiên cứu trên cần được cải

tiến để bao gồm nhiều dữ liệu đa kiến trúc hơn. Thứ hai, bộ dữ liệu được sử dụng khá

nhỏ so với các mối đe dọa trong thực tế, vì vậy các phương pháp này có thể mất đi độ

chính xác khi áp dụng trên quy mô lớn. Cuối cùng, điểm yếu khá phổ biến là các nghiên

cứu cho thấy opcode có thể dễ dàng bị gây rối bằng các kỹ thuật tự vệ của mã độc botnet,

dẫn đến những phát hiện sai khi gặp phải mã độc đa hình, có kiến trúc phức tạp.

b. Đặc trưng String

Một chương trình thông thường sẽ bao gồm rất nhiều chuỗi (string), sử dụng để

thực hiện in các thông báo, cảnh báo, hiển thị thông tin, cũng có thể là địa chỉ IP hoặc

tên miền máy chủ mà phần mềm đó kết nối tới, có thể chứa các địa chỉ email, thông tin

đăng nhập, mật khẩu, tài khoản mặc định… Tìm kiếm các chuỗi có thể là cách đơn giản

để dự đoán hành vi của chương trình: Chương trình kết nối tới máy chủ có địa chỉ thế

Page 64: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

52

nào, có các thông báo gì quan trọng, chương trình liên kết hoặc sử dụng các ứng dụng

hoặc tài nguyên khác trong hệ thống hay không, có sử dụng các hàm API nào, ... ,từ đó

có thể xác định một tập tin thực thi là mã độc hay không [70].

Hinh 2.6. Một số chuỗi PSI trong tập tin nhị phân mã độc

Các chuỗi trong tập tin thường được lưu trữ với định dạng ASCII hoặc Unicode.

Cả 2 định dạng ASCII và Unicode đều lưu trữ các ký tự trong một dãy mà kết thúc bằng

một giá trị NULL để chỉ ra rằng chuỗi đã được hoàn tất. Các chuỗi định dạng ASCII sử

dụng 1 byte/1 ký tự, và chuỗi định dạng kiểu Unicode sử dụng 2 byte/1 ký tự.

Hinh 2.7. Chuỗi BAD được mô tả dưới dạng ASCII

Hình 2.7 cho thấy chuỗi BAD được lưu trữ dưới dạng mã ASCII. Chuỗi dạng

ASCII được lưu trữ như là byte 0x42, 0x41, 0x44, và 0x00, với 0x42 là mã ASCII đại

diện cho chữ cái B hoa, 0x41 là mã ASCII đại diện cho chữ cái A hoa, 0x44 là mã ASCII

đại diện cho chữ cái D hoa. Giá trị 0x00 ở cuối là giá trị NULL.

Page 65: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

53

Hinh 2.8. Chuỗi BAD được miêu tả dưới dạng Unicode

Hình 2.8 cho thấy chuỗi BAD được lưu trữ dưới dạng mã Unicode. Chuỗi dạng

Unicode được lưu trữ như là byte 0x42, 0x00, 0x41, và tương tự. Chữ cái B được trình

diễn bởi 2 byte là 0x42 và 0x00, và giá trị kết thúc NULL là 2 byte 0x00. Khi dò quét

tìm kiếm các chuỗi trong một tập tin thực thi. Tuy nhiên, trong các chương trình dò tìm

theo chuỗi thì các chuỗi tìm được lại không có thật. Ví dụ, nếu chương trình Strings tìm

ra một dãy các byte “0x56, 0x50, 0x33, 0x00”, nó sẽ cho rằng đây là chuỗi VP3. Nhưng

những byte đó có thể không thực sự đại diện cho chuỗi, chúng có thể là một địa chỉ của

ô nhớ, các chỉ thị của CPU, hoặc là dữ liệu được sử dụng bởi một chương trình nào đó.

Vì thế cần thực hiện lọc để tìm ra các chuỗi không hợp lệ. Thông thường, nếu một chuỗi

là ngắn và không tương ứng với từng từ, nó có thể là vô nghĩa. Chúng ta có thể dễ dàng

xác định chuỗi có ý nghĩa như tên hàm chức năng của Windows thường bắt đầu bằng

một ký tự in hoa và ký tự đầu của từ tiếp theo (Subsequent Word) cũng bắt đầu bằng

một ký tự in hoa. Trong thực tế, các tập tin nhị phân mã độc sẽ có các chuỗi tường minh

có thể đọc hiểu (printable) hoặc các chuỗi bị mã hóa (hầu như là non-printable hoặc các

ký tự ngẫu nhiên). Theo hướng tiếp cận này, Mohannad Alhanahnah và cộng sự [4] kết

hợp các đặc trưng tĩnh khác nhau như các chuỗi (string), đồ thị luồng điều khiển (CFG)

và thông tin thống kê cấu trúc tập tin để sinh ra các chữ ký dùng cho phân lớp mã độc

IoT đa kiến trúc. Kết quả thực nghiệm dựa trên bộ dữ liệu có 5150 mẫu mã độc IoT,

nhóm tác giả đã chứng minh phương pháp tiếp cận đạt độ chính xác 95,5 %. Tuy nhiên,

hạn chế của phương pháp này là quá trình phân tích dựa trên đồ thị luồng điều khiển, có

độ phức tạp cao và chi phí tính toán lớn.

2.2.1.2. Hướng tiếp cận đặc trưng mức thấp

a. Đặc trưng ELF header

Tập tin ELF được nhận diện bởi tập các byte “magic” ở đầu tập tin là 0x7F theo

sau bởi 0x45 0x4c 0x46 hoặc “ELF” ở định dạng ASCII. Phần tiếp theo của tập tin là

tiêu đề, bảng tiêu đề chương trình, bảng section hoặc cả hai. Sau đó là các section của

tập tin chứa dữ liệu ở định dạng code, text và data.

Page 66: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

54

- Tiêu đề tập tin (ELF header): chứa thông tin mô tả cấu trúc tổ chức của tập tin,

giúp xác định cách các tiến trình được tạo ra…

- Vùng (Section) và tiêu đề vùng (Section header): Section là phần định vị nhỏ

nhất trong tập tin ELF, đây là giá trị tùy chọn trong tập tin. Một section chứa một loại

dữ liệu như mã thực thi (.text), dữ liệu người dùng đã khởi tạo với quyền đọc/ghi (.data)

và dữ liệu người dùng đã khởi tạo với quyền chỉ đọc (.rodata). Phần bảng section header

xác định các section trong tập tin.

- Phân đoạn (Segment) và tiêu đề chương trình (program header): Các segment

chứa một hoặc nhiều section được liên kết với nhau bằng trình liên kết (linker), giúp hệ

điều hành xác định segment nào được tải vào không gian bộ nhớ và có quyền thực thi

như thế nào (đọc/ghi/thực thi). Một segment sẽ lưu các section có cùng quyền hạn. Phần

bảng program header giữa sơ đồ các segment trong tập tin.

Một tập tin định dạng ELF (Executable and Linkable format) chứa nhiều thông

tin có giá trị, có thể được sử dụng trong phát hiện mã độc. Định dạng tập tin ELF thường

có 3 phần gồm ELF header, Segments và Section, như minh họa ở hình 2.9. ELF header

chứa dữ liệu cấu trúc về tổ chức của một tập tin thực thi. Phần section chứa thông tin

cần thiết cho sự quan sát các liên kết để tạo các tập tin đối tượng, không quan sát được

ở chế độ thực thi. Phần segment thì ngược lại, chứa những thông tin quan sát được khi

tập tin thực thi trên ổ đĩa. Do đó, phần segment thường được biết đến là tiêu đề tập tin

thực thi.

Hình 2.9. Định dạng tập tin ELF

Page 67: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

55

Dựa trên nội dung này, Farrukh Shahzad and Muddassar Farooq [96] đã trình bày

một công cụ phát hiện mã độc Linux, có tên là ELF-Miner. Công cụ này trích xuất một

tập gồm 383 đặc trưng có cấu trúc từ các tập tin ELF như section headers, symbol

section, program header,… Sau đó, nhóm tác giả sử dụng WEKA gồm 4 thuật toán học

máy truyền thống là RIPPER, PART, C4.5 và Decision Tree J48 để thực hiện quá trình

phát hiện mã độc. Để chứng minh phương pháp đề xuất, nhóm tác giả đã sử dụng tập dữ

liệu gồm 709 mẫu ELF và đạt được độ chính xác hơn 99% với tỷ lệ cảnh báo giả khoảng

0,1%. Tương tự, một nghiên cứu khác, Jinrong Bai và cộng sự [42] đã giới thiệu phương

pháp trích xuất thông tin lời gọi hệ thống từ symbol table của các tập tin ELF. Sau đó

áp dụng 3 thuật toán học máy để phát hiện mã độc Linux. Kết quả thực nghiệm trên bộ

dữ liệu gồm 756 mẫu lành tính và 763 mẫu mã độc đạt độ chính xác hơn 98%. Các

trường thông tin trong ELF header là những đặc trưng quan trọng để xây dựng các bộ

phân lớp mã độc tự động bởi trích xuất giá trị các trường thông tin này có chi phí thấp

và những đặc trưng này đem lại hiệu quả khá cao. Tuy nhiên, các trường thông tin này

rất dễ bị ảnh hưởng bởi các tập tin có kiến trúc phức tạp, đa dạng.

b. Đặc trưng ảnh đa mức xám

Ảnh đa mức xám là một trong những phương pháp trừu tượng hóa các tập tin

thực thi thu hút sự chú ý của nhiều nhà nghiên cứu trong thời gian qua. Quá trình thực

hiện dựa trên các đoạn mã byte (byte code) của tập tin thực thi được chuyển thành mã

máy (machine level code) và sau đó các chuỗi chỉ thị mã thực thi được chuyển thành

các ma trận ảnh. Một ảnh đa mức xám (grayscale) là một loại ảnh mà mỗi điểm ảnh

(pixel) có giá trị nằm trong khoảng từ 0 đến 255. Trong bài toán phát hiện mã độc, các

tập tin thực thi được phân tích và chuyển thành các chuỗi nhị phân 0 và 1. Sau đó, kết

hợp những giá trị nhị phân đó thành các đoạn vector có độ dài 8-bit biểu diễn giá trị hex

từ 00 đến FF.

Hinh 2.10. Quá trình biểu diễn mã độc thông qua ảnh đa mức xám

Page 68: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

56

Những vector này sẽ được chuyển thành dữ liệu ảnh với giá trị điểm ảnh nằm

trong khoảng từ 0 đến 255, trong đó 0 biểu diễn màu đen và 255 biểu diễn màu trắng,

minh họa ở hình 2.11.

Hinh 2.11. Ví dụ ảnh mẫu mã độc dòng Linux.Gafgyt

Trong hướng tiếp cận này, Su và cộng sự [25] đã đề xuất một phương pháp nhẹ

(light) để phân biệt các mẫu mã độc IoT botnet và các mẫu lành tính IoT dựa trên ảnh

đa mức xám. Kết quả thực nghiệm trên tập dữ liệu gồm 500 mẫu mã độc IoT botnet và

số lượng lành tính tương đương, cho thấy phương pháp đề xuất đạt độ chính xác 93,33%

trong phát hiện mã độc IoT botnet.

2.2.2. Ph©n t²ch tǫnh dχa tr°n ĽΊc trng c· cu tr¼c ĽΩ thΠ

2.2.2.1. Đồ thị trong khoa học máy tính

Để xây dựng các đặc trưng cho các bài toán phân tích và so sánh, một cấu trúc

dữ liệu để lưu trữ những thông tin đặc trưng là rất cần thiết. Đồ thị là giải pháp tốt để

giải quyết vấn đề trên bởi nó dễ dàng kết hợp thông tin và liên kết dữ liệu có liên quan.

Đặc biệt trong các bài toán về phát hiện mã độc thì các đặc trưng dựa trên đồ thị sẽ lưu

trữ thông tin về các phần khác nhau của mã độc.

Một đồ thị có thể được biểu diễn bởi 𝐺=(𝑉,𝐸) chứa tập các đỉnh 𝑉 và các liên

kết giữa chúng trong tập các cạnh 𝐸. Một cạnh 𝑒𝑖∈ 𝐸 kết nối giữa 2 đỉnh 𝑣𝑗,𝑣𝑘∈ 𝑉.

Nếu 𝐺 là đồ thị có hướng, các cạnh cũng sẽ có hướng, các cạnh đi từ đỉnh 𝑣𝑗 tới đỉnh 𝑣𝑘

nhưng không có chiều ngược lại từ 𝑣𝑘 tới 𝑣𝑗. Ở đây, cạnh này được gọi là “cạnh ra” của

Page 69: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

57

𝑣𝑗 và là “cạnh đến” của 𝑣𝑘. Ngược lại, đồ thị vô hướng chứa các cạnh vô hướng, những

cạnh vô hướng đó kết nối 2 đỉnh đảm bảo mối liên hệ là đối xứng: (𝑣𝑗,𝑣𝑘) ∈ 𝐸 khi và

chỉ khi (𝑣𝑘,𝑣𝑗) ∈ 𝐸. Nếu có thể bắt đầu một đỉnh, duyệt qua cạnh ra và kết nối lại chính

đỉnh đó thì đường đi này tạo thành một chu trình (cycle). Định dạng đơn giản nhất của

một đồ thị gồm 2 đỉnh với 01 cạnh kết nối ở giữa. Đây là một đồ thị vô hướng kết nối

giữa hai đỉnh (𝑣𝑗,𝑣𝑘) bằng cạnh 𝑒 và không có nhãn, minh họa trực quan ở hình 2.12.

Hình 2.12. Minh họa một đồ thị đơn giản

Để làm giàu thêm thông tin đồ thị, có thể bổ sung thêm hướng hoặc nhãn đồ thị.

Một nhãn là tập hợp các biểu tượng, các loại nhãn có thể là số nguyên, chuỗi màu sắc

hoặc một ký tự nào đó. Gán nhãn cho đồ thị tạo cho các đỉnh và các cạnh có tính riêng

biệt, giúp mô tả sự khác biệt với các phần khác trong đồ thị, mang lại nhiều thông tin

hơn. Các nhãn có thể được thêm vào cả cạnh và đỉnh. Hình 2.13 thể hiện một đồ thị có

hướng với các đỉnh và các cạnh đều có nhãn.

Hình 2.13. Minh họa một đồ thị có hướng và nhãn

Page 70: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

58

2.2.2.2. Đặc trưng đồ thị luồng điều khiển

Các đặc trưng dựa trên cấu trúc đồ thị (như đồ thị luồng điều khiển, đồ thị lời gọi

hàm, đồ thị mã) có khả năng biểu diễn hành vi của các tập tin thực thi bởi đồ thị là

phương pháp mạnh mẽ trong mô hình hóa các mối quan hệ phức tạp của dữ liệu. Các

đặc trưng phổ biến được sử dụng trong phát hiện mã độc là đồ thị luồng điều khiển (CFG

- Control Flow Graph). Một đồ thị luồng điều khiển là đồ thị có hướng biểu diễn tất cả

các đường đi có thể được thực thi trong các chương trình, ở đó mỗi đỉnh (nút) được biểu

diễn bởi một khối cơ sở (basic block) và các cạnh có hướng biểu diễn luồng điều khiển

có thể giữa các đỉnh.

Theo hướng tiếp cận này, Hisham Alasmary và cộng sự [33] đã sử dụng đồ thị

luồng điều khiển như một cấu trúc trừu tượng để nhấn mạnh sự tương đồng và khác biệt

giữa các tập tin nhị phân mã độc IoT botnet và mã độc Android. Để đạt được mục tiêu

này, nhóm tác giả đã phân tích cấu trúc thông qua các đặc trưng lý thuyết đồ thị như

kích thước đồ thị (số lượng đỉnh, số lượng cạnh), trung bình đường đi ngắn nhất trong

đồ thị, độ trung tâm ở giữa (betweeness centrality), độ trung tâm dựa trên sự gần gũi

(closeness centrality) - chỉ ra vị trí các nút trong mạng và khả năng kết nối các thành

phân hoặc nhóm trong mạng), độ trung tâm dựa trên trị riêng (eigenvalue centrality) -

chỉ ra nút đó có độ trung tâm nhất trong toàn đồ thị, độ trung tâm dựa trên bậc của nút

(degree centrality) - là độ đo chỉ dựa vào bậc của nút và được xác định bằng số cạnh hay

số kết nối mà một nút có), … Kết quả thực nghiệm trên bộ dữ liệu chứa 2874 mẫu mã

độc IoT botnet và 201 mẫu mã độc Android đã cho thấy mã độc IoT có số lượng đỉnh

và cạnh ít hơn nhiều so với mã độc Android, và các đặc trưng lý thuyết đồ thị luồng điều

khiển giữa mã độc IoT botnet và Android cũng có biến thiên lớn. Do đó, nhóm tác giả

đã chứng mình được tính hữu dụng của CFG trong phân biệt mã độc IoT botnet và mã

độc Android.

Page 71: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

59

Hinh 2.14. Đồ thị CFG của một mẫu mã độc botnet Linux.Bashlite

Tiếp tục cải thiện và mở rộng hướng nghiên cứu đó trong phát hiện mã độc IoT,

Hisham Alasmary và cộng sự [32] đã trình bày một phương pháp phát hiện mã độc IoT

dựa trên sử dụng 23 đặc trưng tĩnh để biểu diễn đặc trưng CFG của mã độc IoT botnet.

Phương pháp này gồm 3 giai đoạn: (1) sinh đồ thị lời gọi hàm của các mẫu nhị phân; (2)

tính toán các tính chất chung của lý thuyết đồ thị; (3)áp dụng các kỹ thuật học máy và

học sâu để phân loại tập dữ liệu thành 2 lớp: mẫu mã độc và lành tính. Bước đầu tiên,

công cụ radera2 được sử dụng để sinh đồ thị CFG của các tập tin thực thi, công cụ mã

nguồn mở này hỗ trợ nhiều kiến trúc (MIPS, ARM, …). Sau đó, các tác giả đã sử dụng

framework NetworkX để tính toán các tính chất của CFGs. Những tính chất đó là số

lượng đỉnh và cạnh; độ trung tâm dựa trên sự gần gũi (closeness centrality), độ trung

Page 72: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

60

tâm dựa trên trị riêng (eigenvalue centrality), … Bước cuối cùng, pha phát hiện sẽ được

thực hiện bằng các thuật toán học máy và học sâu. Thực nghiệm trên bộ dữ liệu gồm

6000 mẫu mã độc và lành tính, độ chính xác đạt được 99,66%. Mặc dù nghiên cứu này

đem lại kết quả phát hiện cao, nhưng tính toán các tính chất của CFG là tiến trình có độ

phức tạp tính toán lớn.

2.2.2.3. Đặc trưng đồ thị Opcode

Đồ thị Opcode là đồ thị được xây dựng dựa trên các đỉnh là các giá trị Opcode và

các cạnh thể hiện mối liên kết giữa các opcode, trong đó mối liên kết được xây dựng và

thu thập dựa trên đồ thị luồng điều khiển. Trong hướng tiếp cận sử dụng đặc trưng có

cấu trúc đồ thị, Azmoodeh và cộng sự [36] đã trình bày một phương pháp dựa trên học

sâu để phát hiện mã độc IoT botnet bằng đồ thị Opcode. Phương pháp đề xuất được đánh

giá với tập dữ liệu chứa 128 mẫu mã độc IoT botnet và 1078 mẫu lành tính IoT (tất cả

các mẫu đều dựa trên ARM), đạt độ chính xác 99.68 % với tỷ lệ precision và recall ở

mức 98,37% và 98,59% theo thứ tự. Tuy nhiên, phương pháp này không đủ độ mạnh

mẽ do bộ dữ liệu thực nghiệm có số lượng mẫu mã độc IoT botnet hạn chế, và vấn đề

đa kiến trúc không được xem xét đề cập đến trong nghiên cứu này do tập dữ liệu thực

nghiệm chỉ dựa trên kiến trúc ARM.

Hình 2.15. Minh họa đồ thị Opcode

Với nội dung đã trình bày, thảo luận bên trên về các phương pháp phát hiện mã

độc IoT botnet dựa trên đặc trưng tĩnh, việc so sánh các phương pháp được tổng hợp

trong bảng 2.4 cho thấy các nghiên cứu hiện nay sử dụng các đặc trưng tĩnh trong phát

hiện mã độc IoT botnet còn những hạn chế.

Page 73: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

61

Bảng 2.4. So sánh các phương pháp phát hiện mã độc IoT botnet dựa trên đặc trưng tĩnh trong các nghiên cứu gần đây

Các nghiên cứu

liên quan

Hướng tiếp

cận dựa trên

đặc trưng

tĩnh

Cơ chế thực hiện Phương pháp

đánh giá Điểm yếu

Hamed HaddadPajouh

[14] Opcode

Xác định mã độc thông qua

chuỗi opcode Mạng nơ-ron

Chỉ sử dụng tập mẫu dựa trên kiến trúc ARM

Ensieh Modiri Dovom

[57] Opcode

Áp dụng fuzzy pattern tree

để phát hiện mẫu mã độc Fuzzing

- Chỉ sử dụng tập mẫu dựa trên kiến trúc ARM

- Tập dữ liệu không đủ lớn

Darabian [52] Opcode Phát hiện mã độc dựa trên

tần xuất opcode Học máy

Chỉ sử dụng tập mẫu dựa trên kiến trúc ARM

Mohannad Alhanahnah

[4] Strings

Sinh chữ kỹ để phân loại mã

độc Phân cụm

- Độ phức tạp tính toán lớn

- Chỉ sử dụng cho 4 loại mã độc

F. Shahzad et al. [96] ELF header

Trích xuất các đặc trưng từ

section của tập tin nhị phân

để phát hiện mã độc

Học máy

Cấu trúc của tập tin nhị phân dễ dàng bị chỉnh

sửa

Page 74: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

62

Các nghiên cứu

liên quan

Hướng tiếp

cận dựa trên

đặc trưng

tĩnh

Cơ chế thực hiện Phương pháp

đánh giá Điểm yếu

Jiawei Su et al. [25] Grayscale

image

Biểu diễn các mẫu nhị phân

như ảnh đa mức xám để

phát hiện mã độc

Mạng nơ-ron

Thiếu độ chính xác khi các mẫu sử dụng kỹ thuật

gây rối hoặc mã hóa

Hisham Alasmary et al.

[32] CFG

Tính toán 23 thuộc tính lý

thuyết đồ thị của CFG để

phân biệt các mẫu mã độc

và lành tính

Học máy, học

sâu

- Độ phức tạp tính toán lớn

- Xác định các tính chất chưa chính xác

Amin Azmoodeh et al.

[36] Opcode graph

Xây dựng đồ thị opcode dựa

trên CFG để phát hiện mã

độc

Lý thuyết đồ thị

Chỉ sử dụng tập mẫu dựa trên kiến trúc ARM

Page 75: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

63

Dựa trên khảo sát, đánh giá các nghiên cứu hiện nay về vấn đề phát hiện mã độc

IoT botnet, thấy rằng các nghiên cứu đều có những ưu điểm và hạn chế. Tuy nhiên, mỗi

phương pháp nghiên cứu lại thực nghiệm trên các bộ cơ sở dữ liệu và môi trường khác

nhau. Trên cơ sở đó, luận án tiến hành đánh giá một cách khách quan các nghiên cứu

hiện nay với cùng môi trường thử nghiệm và trên cùng bộ cơ sở dữ liệu. Phần tiếp theo

luận án sẽ trình bày chi tiết về bộ cơ sở dữ liệu, bộ cơ sở dữ liệu này không chỉ dùng để

thực nghiệm cho phần đánh giá ở Chương này mà còn được sử dụng thực nghiệm ở các

Chương sau của luận án.

2.2.3. Xây dχng bί c sε dυ liΜu thσ nghiΜm

Đối với các bài toán phát hiện mã độc thì luôn cần dữ liệu đầu vào để huấn luyện

và thử nghiệm, đánh giá. Trong khi đó, mã độc IoT botnet là một lĩnh vực nghiên cứu

tương đối mới, chưa có nhiều nơi công bố các tập dữ liệu thử nghiệm liên quan. Trong

luận án này, dữ liệu đầu vào là các tập tin thực thi mã độc và lành tính trên thiết bị IoT.

Để phục vụ các nghiên cứu thực nghiệm của luận án một cách tin cậy, đúng đắn thì việc

xây dựng tập dữ liệu các tập tin thực thi mã độc và lành tính trên thiết bị IoT có ý nghĩa

quan trọng. Đối với tập dữ liệu mã độc IoT botnet thì luận án tiến hành thu thập từ 02

nguồn khác nhau là IoTPOT [22] và VirusShare [122].

Dữ liệu được thu từ IoTPOT, một giải pháp mạng bẫy (honepot) IoT của các giáo

sư Nhật bản để thu thập mã độc IoT botnet có đặc điểm sau:

- Được thu thập trong 01 năm từ 10/2016 đến 10/2017 với 4000 mẫu mã độc IoT

botnet.

- Ban đầu IoTPOT tập trung vào thu thập các tập tin từ các thiết bị IoT bị tấn

công dựa trên giao thức telnet (telnet-based), hiện nay mạng bẫy này đã mở rộng hơn

với các hình thức tấn công khác [33], ví dụ như tấn công dò quét trên TCP qua các cổng

23, 80, 8080, 5916 và cổng UDP như 123, 3143.

Hình 2.16. Kết quả tải về tập dữ liệu mã độc IoT botnet từ IoTPOT

Page 76: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

64

Hình 2.17 minh họa sự tương tác giữa máy khách và máy chủ trong giao thức

telnet. Sau khi thực hiện bắt tay 3 bước, máy khách và máy chủ có thể trao đổi các tùy

chọn Telnet, máy chủ Telnet hoặc máy khách Telnet có thể khởi tạo yêu cầu như “Do

Echo”, một yêu cầu cho gửi trả lại echo và “Do NAWs” để gửi yêu cầu tới NAWs

(Negotiate About Window size). Sau khi trao đổi các tùy chọn, máy chủ gửi một thông

điệp chào mừng tới máy khách, ngay sau đó là thông tin đăng nhập. Ví dụ “TPLink

Router” là thông điệp chào mừng và “Login:” là thông điệp đăng nhập, ở đây phần khởi

tạo tương tác này gọi là tiêu ngữ tương tác (banner interactions). Sau đó, máy khách gửi

cặp tên đăng nhập/mật khẩu để đăng nhập vào máy chủ, được gọi là xác thực

(authentication). Cuối cùng, nếu việc xác thực là hợp lệ thì máy khách đăng nhập và ra

lệnh cho máy chủ sử dụng nhiều lệnh shell, được gọi là tương tác câu lệnh (command

interactions).

Hình 2.17. Giao thức telnet

Các tập tin được thu thập có các đặc trưng với các chuỗi chỉ thị lệnh quan sát

được bởi IoTPOT có thể kể đến như:

- Kiểm tra shell của thiết bị nạn nhân bằng lệnh “sh”

- Kiểm tra lệnh wget có được kích hoạt không

- Kiểm tra busybox shell có được sử dụng trên thiết bị nạn nhân

- Xóa nhiều chỉ thị lệnh và các tập tin trong các vị tri /usr/bin, /bin, var/run/, /dev

Page 77: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

65

- Sao chép /bin/sh với tên tập tin ngẫu nhiên

- Sử dụng nền tảng của kẻ tấn công để tải các tập tin nhị phân. Địa chỉ IP và giá

trị cổng của máy chủ tải mã độc có thể tìm thấy trong chỉ thị lệnh

- Kiểm tra phản hồi lỗi của thiết bị nạn nhân bằng cách chạy các câu lệnh không

tồn tại như ZORRO, “enable”, “shell”

- Tải về các đoạn mã thực thi shell

- Sử dụng các đoạn mã thực thi đã tải để ngắt hoặc ngăn chặn các tiến trình độc

hại đã chạy trước đó trên thiết bị nạn nhân, tải các tập tin thực thi có kiến trúc khác nhau,

ngăn chặn kết nối cổng 23/TCP.

- Các tập mẫu thu thập được thực hiện các hình thức tấn công phổ biến là từ chối

dịch vụ như tấn công tràn UDP, tấn công tràn TCP, DNS Water Torture, tấn công tràn

ACK, tấn công SSL, …

Ngoài việc sử dụng các mẫu mã độc trên thì luận án cũng sử dụng mẫu mã độc

IoT botnet từ VirusShare. VirusShare [122] là một kho lưu trữ mã độc trực tuyến được

cung cấp cho các nhà nghiên cứu bảo mật, các nhà ứng phó sự cố an toàn thông tin và

điều tra số có thể truy cập vào các tập mẫu mã độc. Việc truy cập chỉ được thực hiện với

các tài khoản được cấp quyền. Để yêu cầu quyền truy cập, các nhà nghiên cứu cần thư

điện tử tới người quản trị và giải thích mục đích của việc truy cập kho lưu trữ. Luận án

xây dựng bộ thu thập (crawler) mã độc IoT từ VirusShare với đầu vào là tên các loại mã

độc IoT botnet [12] (đã trình bày ở mục 1.1.3 như Mirai, bashlite, Tsunami, Aidra, …).

Kết quả đã thu thập được 3199 mẫu mã độc IoT botnet.

Hình 2.18. Giao diện của VirusShare sau khi đăng nhập với tài khoản được cấp

Page 78: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

66

Hình 2.19. Kết quả tải về tập dữ liệu mã độc IoT botnet từ VirusShare

Bên cạnh tập dữ liệu mã độc IoT botnet thì luận án cũng thu thập tập dữ liệu lành

tính trên IoT. Tập dữ liệu lành tính được trích xuất từ các bản ảnh phần sụn (firmware)

của các thiết bị IoT dân dụng (SOHO) bằng công cụ binwalk [116]. Cụ thể, các bản ảnh

phần sụn được tải từ trang web của các hãng sản xuất thiết bị IoT như TP-Link, D-Link,

Asus, … Để đa dạng tập dữ liệu lành tính, luận án không những thu thập thêm các bản

ảnh nhị phân phần sụn từ OpenWRT [119] cho các hãng khác như Buffalo, Netgear hoặc

Tenda, mà còn từ một số nghiên cứu trước có chia sẻ tập mẫu lành tính IoT [36].

Để huấn luyện và đánh giá mô hình, giải pháp đề xuất của luận án với tỷ lệ dương

tính giả thấp thì cần đảm bảo gán nhãn chính xác cho các tập tin mã độc và các tập tin

lành tính. Luận án thực hiện điều này bằng cách chạy tất cả dữ liệu thông qua VirusTotal

[123], một công cụ hỗ trợ phân tích trực tuyến mã độc với hơn 68 bộ dò quét mã độc

của nhiều hãng phần mềm phòng chống mã độc như Kaspersky, Norton, Avast, … Luận

án sử dụng chiến lược bỏ phiếu [17], [81] để quyết định xem một tập tin là mã độc hoặc

lành tính, thể hiện qua đẳng thức (2.1):

𝐶𝑙𝑎𝑠𝑠𝑙𝑏={𝑀ã độ𝑐,𝑛ế𝑢 (𝐸1(𝑆)∨ 𝐸2(𝑆) ∨… 𝐸𝑛(𝑆))

𝐿à𝑛ℎ 𝑡í𝑛ℎ,𝑛ế𝑢 (!(𝐸1(𝑆))∧!(𝐸2(𝑆))∧… !(𝐸𝑛(𝑆)) (2.1)

Từ đẳng thức trên có thể thấy rõ ràng là một tập tin được gán nhãn mã độc nếu

có bất kỳ một bộ dò quét mã độc từ 𝐸1(𝑆) tới 𝐸𝑛(𝑆) xác nhận là mã độc. Ngược lại một

tập tin mẫu được gán nhãn là lành tính nếu không có bất kỳ bộ dò quét nào xác nhận là

mã độc.

Với mỗi mẫu, luận án chọn tên mã độc IoT botnet được xác định từ nhiều bộ dò

quét nhất. Đồng thời, luận án chuẩn hóa tên mã độc như AVCLASS [94] bởi mỗi bộ dò

quét lại đưa ra một tên gọi khác nhau cho một mẫu mã độc IoT botnet, mặc dù các tên

gọi khác nhau đó cùng chỉ về một lớp mã độc IoT botnet. Ví dụ, luận án thay thế Gafgyt

Page 79: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

67

và Lightaidra bằng Bashlite. Cuối cùng, luận án chia tập dữ liệu mã độc thành 03 lớp là

Mirai, Bashlite và các loại mã độc khác (Other Botnet). Như vậy, tập dữ liệu thu thập

được gồm có 11200 mẫu gồm 7199 mẫu mã độc IoT botnet và 4001 mẫu lành tính IoT.

Sử dụng công cụ IDA Pro để tiến hành tiền xử lý các tập tin, cụ thể là các mẫu không

phải tập tin nhị phân, không thể đọc được bằng IDA Pro cũng như trùng lặp sẽ bị xóa

bỏ khỏi tập dữ liệu. Cuối cùng, tập dữ liệu có 10010 mẫu gồm 6165 mẫu mã độc IoT

botnetvà 3845 mẫu lành tính IoT, mô tả chi tiết ở bảng 2.5.

Bảng 2.5. Mô tả tập dữ liệu mẫu để thử nghiệm

Các lớp Biến thể Số lượng

Kiến

trúc

ARM

Kiến

trúc

MIPS

Mirai 7 1765 331 301

Bashlite 5 3720 762 646

Other botnet 9 680 152 103

Benign - 3845 561 533

Total 10010 1806 1583

Hơn nữa, luận án tiến hành khảo sát kiến trúc vi xử lý của các mẫu mã độc trong

tập dữ liệu bằng câu lệnh file trong hệ điều hành Linux. Hình 2.20 cho thấy sự đa dạng

kiến trúc vi xử lý của các mẫu mã độc IoT botnet trong trong tập dữ liệu, trong đó các

kiến trúc MIPS, ARM và Intel 80386 là 3 kiến trúc phổ biến nhất cho mã độc IoT botnet.

Page 80: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

68

Hình 2.20. Sự phân bố kiến trúc vi xử lý trong các mẫu mã độc IoT botnet

Tóm lại, bộ dữ liệu của luận án xây dựng có chứa các tập mẫu mã độc botnet và

lành tính IoT thực tế, đa dạng về kiến trúc nên giúp phản ánh tính chất của Internet nói

chung và mạng IoT nói riêng một cách trung thực và đáng tin cậy.

2.2.4. C§c ti°u ch² Ľ§nh gi§

Để đánh giá tính hiệu quả của các phương pháp phát hiện mã độc IoT botnet,

luận án sử dụng các tiêu chuẩn TP, TN, FP và FN được mô tả như sau:

- True positive (TP): cho biết rằng một mẫu mã độc được phát hiện chính xác và

gán nhãn là mã độc

- True negative (TN): cho biết rằng một mẫu lành tính được phát hiện chính xác

và gán nhãn là lành tính

- False positive (FP): cho biết rằng một mẫu lành tính bị phát hiện sai và gán nhãn

là mã độc

- False negative (FN): cho biết một mẫu mã độc bị phát hiện sai và gán nhãn là

lành tính

Dựa trên những tiêu chuẩn này, các độ đo thường được sử dụng trong học máy

được tính toán. Để đánh giá tính hiệu quả của các phương pháp đề xuất, các thực nghiệm

trong luận án này, ở mỗi Chương, luận án không sử dụng hết các độ đo mà lựa chọn các

độ đo phù hợp. Các độ đo gồm:

+ Độ chính xác (Accuracy): là tỷ lệ giữa số lượng các mẫu được gán nhãn đúng

chia cho tổng số dữ liệu kiểm thử (gồm cả mẫu mã độc và lành tính)

𝐴𝑐𝑐𝑢𝑟𝑎𝑐𝑦= 𝑇𝑃+𝑇𝑁

𝑇𝑃+𝐹𝑃+𝑇𝑁+𝐹𝑁 (2.2)

+ Tỷ lệ dương tính đúng (TPR – True Positive Rate): số lượng mẫu mã độc đã

dự đoán được phân loại đúng là mã độc chia cho tổng số tập tin mã độc.

𝑇𝑃𝑅= 𝑇𝑃

𝑇𝑃+𝐹𝑁 (2.3)

+ Tỷ lệ dương tính giả (FPR – False Positive Rate)/tỷ lệ phát hiện nhầm: số lượng

mẫu lành tính đã dự đoán bị phân loại nhầm là mã độc chia cho tổng số tập tin lành tính.

Page 81: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

69

𝐹𝑃𝑅= 𝐹𝑃

𝐹𝑃+𝑇𝑁 (2.4)

+ Tỷ lệ chính xác (Precision): thể hiện khả năng mô hình dự đoán đúng nhãn, tức

là xem xét trên tập dữ liệu kiểm tra xem có bao nhiêu dữ liệu được mô hình dự đoán

đúng (tức là trả lời câu hỏi bao nhiêu cái đúng được lấy ra). Việc tăng hay giảm Precision

phụ thuộc vào FP nên Precision cao đồng nghĩa với FP nhỏ hay số nhãn lành tính dự

đoán nhầm sang mã độc.

𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛= 𝑇𝑃

𝑇𝑃+𝐹𝑃 (2.5)

+ Recall (tức là trả lời câu hỏi bao nhiêu cái được lấy ra là đúng), chỉ số này còn

được gọi là độ bao phủ tức là xem xét một mô hình tìm được có khả năng tổng quát hóa

như thế nào.

𝑅𝑒𝑐𝑎𝑙𝑙= 𝑇𝑃

𝑇𝑃+𝐹𝑁 (2.6)

+ Độ đo F-score: còn gọi là trung bình điều hòa của các tiêu chí Precision và

Recall. Nó 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 và đồng thời nó có giá trị lớn nếu cả 2 giá trị trên đều lớn. Do đó F-score thể hiện

được một cách khách quan hơn hiệu năng của một mô hình học máy.

𝐹−𝑠𝑐𝑜𝑟𝑒=2 × 𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 ×𝑅𝑒𝑐𝑎𝑙𝑙

𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛+𝑅𝑒𝑐𝑎𝑙𝑙 (2.7)

Bên cạnh đó, việc tăng hay giảm FNR (được tính bằng 1-TPR) và FPR có thể

thực hiện bằng việc thay đổi một ngững nào đó. Luận án coi lớp 1 là lớp mã độc

(positive) và lớp 0 là lành tính (negative), vậy làm thế nào để tăng mức độ báo nhầm

(FPR) để giảm mức độ bỏ sót (FNR), trong đó khi tăng FNR thì đồng nghĩa với việc

giảm TPR. Như vậy ứng với mỗi giá trị của ngưỡng thì sẽ có một cặp (FPR, TPR). Việc

biểu diễn các điểm (FPR, TPR) trên đồ thị khi thay đổi ngưỡng (thường từ 0 đến 1) ta

sẽ thu được một đường cong gọi là ROC. Dựa trên đường cong ROC, ta có thể xác định

rằng mô hình có hiệu quả hay không. Bên cạnh đó còn có một giá trị đại diện cho diện

tích nằm dưới ROC (tức các điểm dữ liệu ở góc trên cùng bên tay trái sẽ là tối ưu, hiệu

quả cao), giá trị này được gọi là AUC (Area Under the Curve), kết quả từ AUC có thể

được thể hiện “càng lớn thì mô hình càng tốt”.

Page 82: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

70

Để tiến hành các thực nghiệm trong Chương này, luận án chia tập dữ liệu thành

2 tập con với tỷ lệ là: 70% tập dữ liệu là tập huấn luyện và 30% còn lại là để kiểm thử.

Thực nghiệm được xây dựng với ngôn ngữ Python và thư viện Scikit-Learn (một thư

viện về học máy phổ biến hiện nay, được viết trên ngôn ngữ Python) trên nền tảng hệ

điều hành Ubuntu 16.04 sử dụng chip Intel Core i5-8500, 3.0GHz và bộ nhớ RAM 32

GB.

2.2.5. KΔt qu thχc nghiΜm và nhͻn xét

Nhằm đánh giá một cách trực quan và đáng tin cậy về các phương pháp phát hiện

mã độc IoT botnet dựa trên đặc trưng phân tích tĩnh, đã được trình bày chi tiết ở mục

2.2.1 và 2.2.2. Phần này luận án sẽ tiến hành thực nghiệm lại chính xác các phương pháp

đó trên cùng một bộ dữ liệu lớn các tập tin thực thi IoT và cùng cấu hình hệ thống đã

trình bày chi tiết ở phần 2.2.3. Kết quả tổng hợp, đánh giá các hướng tiếp cận dựa trên

đặc trưng tĩnh trong phát hiện mã độc IoT botnet được thể hiện ở Bảng 2.6

Page 83: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

71

Bảng 2.6. Kết quả thực nghiệm các hướng tiếp cận dựa trên đặc trưng tĩnh hiện nay trong phát hiện mã độc IoT botnet

Hướng tiếp

cận dựa trên

đặc trưng tĩnh

Bộ phân lớp

Độ

chính

xác

FPR (False

Positive Rate -

dương tính giả)

FNR (False

Negative Rate -

âm tính giả)

Thời gian trích

xuất đặc trưng và

tiền xử lý

Thời gian

phân lớp

ELF-header

[96]

RIPPER 99,8 0,2 0,2

1h50m

0,75s

PART 99,8 0,2 0,2 1,27s

DT (J48) 99,6 0,5 0,3 1s

String-based

[70]

SVM 98 0,9 2,2

4m47s

12,4s

kNN 99,8 0,4 0,2 1s

DT (J48) 99,4 0,4 0,6 8,75s

RF 99,7 0,3 0,4 9,71s

Image-based

[25] Neural Network 89,1 12,7 1,4 14m19s 2m19s

CFG-based

[32]

SVM 89 33,8 4,4

5 days

1,45s

LR 85 15,1 19,0 0,5s

RF 95 7,5 5,9 1,75s

Page 84: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

72

Từ bảng kết quả 2.6, với các bộ phân lớp được sử dụng chính xác như trong các

nghiên cứu, có thể thấy các phương pháp sử dụng đặc trưng phi cấu trúc đồ thị đạt kết

quả khả quan hơn so với phương pháp sử dụng đặc trưng có cấu trúc đồ thị trong phát

hiện mã độc IoT botnet, cả về độ chính xác và độ phức tạp chi phí thời gian.

Trong đó, phương pháp dựa trên thông tin cấu trúc trong tiêu đề tập tin rất khả

quan với các thuật toán học máy khác nhau như RIPPER, PART, Decision Tree C4.5

đạt độ chính xác là 99,8; 99,8 và 99,6 một cách lần lượt. Các đặc trưng trong tiêu đề tập

tin đóng vai trò quan trọng như STB_WEAK, SecionHeaderOffset, STT_NOTYPE,

.bss_alignment, STT_OBJECT_STB_GLOBAL. Ưu điểm chính của phương pháp này là

sự đơn giản từ các đặc trưng cho tới quá trình trích xuất đặc. Việc khai thác các thông

tin dữ liệu trong tiêu đề tập tin cho phép bước đầu xác định trạng thái của một tập tin

thực thi, từ đó có khả năng xác định được chức năng tiềm tàng của chúng, hỗ trợ tốt cho

việc phát hiện mã độc. Tuy nhiên, các kỹ thuật gây rối của mã độc nhằm che dấu các

trạng thái ban đầu của các tập tin khiến phương pháp tiếp cận này bị hạn chế, khó triển

khai.

Phương pháp tiếp cận dựa trên đặc trưng đại diện ảnh đa mức xám cũng đạt tỷ lệ

phát hiện mã độc IoT botnet khả quan với độ chính xác 89,1%. Bằng việc sử dụng tính

chất của quá trình xử lý ảnh cũng như áp dụng mô hình mạng nơ-ron tích chập nhẹ (light

CNN), hướng tiếp cận này có khả năng áp dụng trên các thiết bị IoT bị hạn chế tài

nguyên tính toán. Tuy nhiên, các kỹ thuật gây rối của mã độc có khả năng thay đổi cấu

trúc của các tập tin nhị phân, dẫn đến ảnh hưởng lớn tới đặc trưng ảnh đa mức xám.

Hướng tiếp cận dựa trên các đặc trưng chuỗi thông tin cũng cho thấy sự khả quan trong

phát hiện mã độc đa kiến trúc IoT. Các bộ phân lớp SVM, kNN, DT (J48) và RF đạt độ

chính xác phát hiện tương ứng là 98; 99,8; 99,4; 99,7. Tuy nhiên, với những loại mã độc

sử dụng kỹ thuật mã hóa, gây rỗi thì các chuỗi thông tin có thể bị thay đổi về tần

suất,cũng như giá trị, ảnh hưởng lớn tới khả năng phát hiện mã độc IoT botnet đa kiến

trúc.

Cuối cùng, phương pháp dựa trên đồ thị luồng điều khiển đạt tỷ lệ phát hiện cao

nhưng độ phức tạp vẫn còn lớn, cao hơn so với những phương pháp sử dụng đặc trưng

phi cấu trúc. Trong khi đó, xu hướng trong tương lai mã độc IoT botnet có thể ngày càng

phức tạp sẽ dẫn đến đặc trưng đồ thị luồng điều khiển cũng phức tạp theo, ảnh hướng

Page 85: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

73

lớn đến độ phức tạp của bài toán phát hiện mã độc IoT botnet. Bên cạnh đó, các nhà

nghiên cứu đã chỉ rằng, đặc trưng dựa trên cấu trúc đồ thị tốt hơn so với các đăc trưng

phi cấu trúc đồ thị trong phát hiện mã độc botnet, bởi đồ thị có thể biểu diễn các hành

vi trong các chương trình, đặc biệt là đồ thị có nhãn có thể sử dụng để mô hình hóa nhiều

mối quan hệ phức tạp giữa dữ liệu [98].

Tóm lại, các nghiên cứu biểu diễn tập tin thực thi bằng đặc trưng phi cấu trúc đồ

thị sẽ phụ thuộc nhiều vào giá trị của các đặc trưng (ví dụ lời gọi hàm inet_toa) và sẽ

không thể mô tả thông tin ngữ nghĩa phức tạp giữa các đặc trưng (ví dụ như dữ liệu phụ

thuộc trong vòng đời mã độc IoT có khả năng tấn công từ chối dịch vụ phân tán, gọi tắt

là IoT botnet). Bên cạnh đó các nghiên cứu sử dụng đặc trưng phi cấu trúc đồ thị thường

khá yếu với mã độc sử dụng kỹ thuật gây rối như mã hóa, chèn dữ liệu. Trong khi đó,

hướng tiếp cận dựa trên đồ thị có khả năng đánh giá tổng quát và biểu diễn được các

thông tin có cấu trúc, thông tin phức tạp về hành vi của mã độc botnet.

2.3. Kết luận Chương 2 và định hướng nghiên cứu

Trong Chương 2, luận án đã trình bày những vấn đề cơ bản về các phương pháp

phát hiện mã độc IoT botnet, từ đó đánh giá hướng tiếp cận theo phân tích tĩnh là phù

hợp với phát hiện mã độc IoT botnet. Luận án đi sâu vào thảo luận, đánh giá các ưu

nhược điểm của các hướng tiếp cận dựa trên đặc trưng tĩnh trong phát hiện mã độc IoT

botnet. Đồng thời, luận án cũng tiến hành thực nghiệm lại chính xác các phương pháp

đã có trong phát hiện mã độc IoT botnet dựa trên đặc trưng tĩnh với cùng tập cơ sở dữ

liệu, cùng cấu hình hạ tầng hệ thống. Tất cả các hướng tiếp cận đều có giải thích và cung

cấp một số minh họa nghiên cứu gần đây có liên quan tới hướng tiếp cận đó.

Kết quả nghiên cứu của Chương này cung cấp động cơ thúc đẩy cho các phương

pháp đề xuất của luận án sau này khi thấy rằng phân tích tĩnh khả quan trong bài toán

phát hiện mã độc IoT, đồng thời các đặc trưng có cấu trúc đồ thị đem lại hiệu quả cao

trong bài toán phát hiện mã độc IoT botnet. Tuy nhiên, các đặc trưng có cấu trúc đồ thị

hiện nay vẫn có độ phức tạp cao, vì thế, luận án sẽ nghiên cứu đề xuất phương pháp mới

theo hướng đặc trưng thuần tĩnh có cấu trúc đồ thị, đảm bảo độ chính xác cao và độ phức

tạp thấp trong bài toán phát hiện mã độc IoT botnet. Chi tiết của phương pháp đề xuất

sẽ được giải thích và thảo luận ở phần tiếp theo của luận án này.

Page 86: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

74

Bên cạnh các nội dung lý thuyết nền tảng được trình bày trong Chương này đã

được trích dẫn cụ thể; các nội dung còn lại và các kết quả thực nghiệm trong Chương

này đã được luận án trình bày, công bố tại Kỷ yếu Hội thảo và Tạp chí khoa học uy tín.

Cụ thể là:

- “A survey of IoT malware and detection methods based on static features”, ICT

Express Journal, (ESCI/SCOPUS index, Q1)

- “Phát triển phương pháp lai trong phát hiện mã độc Botnet trên thiết bị định

tuyến”, Hội thảo quốc gia lần thứ XX: Một số vấn đề chọn lọc của Công nghệ thông tin

và truyền thông, Quy Nhơn, 23-24/11/2017.

- “Xây dựng mô hình thu thập phát hiện tấn công mạng sử dụng thiết bị IoT”,

Hội thảo quốc gia lần thứ II: Một số vấn đề chọn lọc về an toàn an ninh thông tin, Thành

phố Hồ Chí Minh, 2017.

Page 87: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

75

CHƯƠNG 3. ĐẶC TRƯNG ĐỒ THỊ PSI TRONG PHÁT HIỆN MÃ ĐỘC IOT

BOTNET

3.1. Phát biểu bài toán

Sự bùng nổ về số lượng thiết bị IoT kèm theo việc được ứng dụng rộng rãi trong

nhiều lĩnh vực, ngành nghề đã khiến tin tặc chuyển hướng tấn công mạng nhằm vào các

thiết bị IoT. Hiện nay, phần lớn các cuộc tấn công mạng đều liên quan đến tấn công mã

độc trên thiết bị IoT [18]. Với các nội dung đã thảo luận ở Chương 2, các đặc trưng được

xem như là biểu diễn trừu tượng đại diện cho mỗi tập tin thực thi. Các đặc trưng tĩnh

khả quan trong bài toán phát hiện mã độc IoT botnet, trong đó các đặc trưng có cấu trúc

đồ thị trừu tượng hóa mức cao của một tập tin thực thi nên sẽ ổn định, linh hoạt và hiệu

quả hơn so với các đặc trưng phi cấu trúc đồ thị [41], trong phát hiện mã độc IoT botnet

có cấu trúc phức tạp hoặc sử dụng các kỹ thuật gây rối. Vì lý do đó, các đặc trưng đóng

vai trò quan trọng, quyết định tính hiệu quả của các phương pháp phát hiện mã độc IoT

botnet.

Như vậy, bài toán nghiên cứu của Chương này được phát biểu như sau:

- Cho 𝐿={𝑙1,𝑙2,…,𝑙𝑛} là tập hợp gồm 𝑛 tập tin thực thi, trong đó 𝑙𝑖∈{0,1} có

thể là các tập tin thực thi mã độc (giá trị 1) hoặc các tập tin thực thi lành tính (giá trị 0)

với 𝑖=1,𝑛

- Cho 𝐹={𝑓𝐴𝑙ℎ𝑎𝑛𝑎ℎ𝑛𝑎ℎ,𝑓𝑆𝑢,𝑓𝐻𝑎𝑑𝑑𝑎𝑑,𝑓𝐴𝑧𝑚𝑜𝑜𝑑𝑒ℎ𝑃𝑎𝑗𝑜𝑢ℎ,𝑓Alasmary } là tập hợp các

đặc trưng trừu tượng trong bài toán phát hiện mã độc botnet trên thiết bị IoT và có kết

quả khả quan trong thời gian gần đây. Như vậy ∃𝑓𝑇𝑟𝑢𝑛𝑔∉𝐹 sao cho 𝑓𝑇𝑟𝑢𝑛𝑔(𝐿) đơn giản

hơn 𝑓𝑗∈𝐹 , về mặt cấu trúc đồ thị thì việc đơn giản hơn được định lượng thông qua số

lượng cạnh và số lượng đỉnh đồ thị. Mặc dù đơn giản hơn về mặt cấu trúc nhưng 𝑓𝑇𝑟𝑢𝑛𝑔

cho kết quả tốt hơn các 𝑓𝑗∈𝐹 về độ chính xác, thời gian thực thi.

Hình 3.1 minh họa phát biểu bài toán phát hiện mã độc IoT botnet trong Chương

3 như sau: đầu tiên dữ liệu đầu vào là các tập tin thực thi (gồm cả mã độc và lành tính);

tiếp đó qua bước tiền xử lý và đến bước trích chọn đặc trưng thì có thể “tồn tại đặc trưng

có cấu trúc đồ thị mới”; trong đó, cách thức trích xuất đặc trưng đã được nghiên cứu

trong nội dung Chương 2; đặc trưng đồ thị này đưa vào các mô hình học máy, học sâu;

Page 88: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

76

tiếp đó so sánh kết quả đạt được với một số kết quả nghiên cứu đạt được ở Chương 2,

thấy rằng phương pháp đề xuất đạt hiệu quả cao trong phát hiện mã độc IoT botnet (về

độ phức tạp, độ chính xác).

Hình 3.1. Tổng quan bài toán phát hiện mã độc IoT botnet dựa trên đặc trưng đồ thị

3.2. Giải thích bài toán

Luận án lựa chọn cách tiếp cận dựa trên phân tích tĩnh trong phát hiện mã độc

botnet trên thiết bị IoT. Hiện nay đã có những nghiên cứu theo hướng tiếp cập này, có

thể kể đến như Alhanahnah và cộng sự [4], Su và cộng sự [25], HaddadPajouh và cộng

sự [14], Azmoodeh và cộng sự [36], Hisham Alasmary và cộng sự [33]. Cụ thể,

Mohannad Alhanahnah và cộng sự kết hợp các đặc trưng tĩnh khác nhau như các chuỗi

(string), đồ thị luồng điều khiển (CFG) và thông tin thống kê cấu trúc tập tin để sinh ra

các chữ ký dùng cho phân lớp mã độc IoT đa kiến trúc. Quá trình sinh chữ ký gồm 3

bước chính như sau: phân cụm thô (coarse-grained), phân cụm nâng cao (fine-grained)

và cuối cùng kết hợp phân cụm (merging). Trong pha phân cụm thô, các đặc trưng thống

kê từ mã assembly được thu thập gồm tổng số các hàm, tổng số các chỉ thị lệnh, tổng số

các chỉ thị lệnh đươc chuyển hướng, … những đặc trưng này được sử dụng để phân cụm

Page 89: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

77

các tập tin thực thi mã độc đầu vào. Kết quả thu được 1 phân cụm các tập tin mã độc,

đưa các tập tin mã độc này vào bước phân cụm nâng cao, ở bước này công cụ bindiff

được sử dụng để đánh giá sự tương đồng về cấu trúc đồ thị luồng điều khiển giữa các

mẫu mã độc. Cuối cùng, sử dụng các tập tin mã độc đã được phân cụm ở pha thứ 2 để

sinh các chữ ký đặc trưng cho mã độc IoT dựa trên vector n-gram của các chuỗi thu

được từ các tập tin đó. Kết quả thực nghiệm dựa trên bộ dữ liệu có 5150 mẫu mã độc

IoT, nhóm tác giả đã chứng minh phương pháp tiếp cận đạt độ chính xác 95,5 %. Tuy

nhiên, hạn chế của phương pháp này là quá trình phân tích dựa trên đồ thị luồng điều

khiển, có độ phức tạp cao và chi phí tính toán lớn. Thứ hai, phương pháp còn phụ thuộc

nhiều vào giá trị của các chuỗi trong các tập tin nên với các chuỗi bị mã hóa thì sẽ không

hiệu quả, đồng thời không mô tả được thông tin ngữ nghĩa phức tạp (ví dụ dữ liệu phụ

thuộc xuất hiện trong vòng đời mã độc IoT botnet).

Su và cộng sự đã đề xuất một phương pháp nhẹ (light) để phân biệt các mẫu mã

độc IoT và các mẫu lành tính IoT dựa trên ảnh đa mức xám, và bằng cách đưa các ảnh

đa mức xám này vào mô hình mạng nơ-ron tích chập để phát hiện mã độc IoT. Bên cạnh

đó, các tập tin với kích thước bất kỳ sẽ được chuẩn hóa cho phù hợp với kích thước ảnh

đa mức xám là 64x64, phần nội dung còn lại sẽ bị xóa nếu dư thừa hoặc thiếu sẽ được

chèn các giá trị 0. Kết quả thực nghiệm cho thấy phương pháp đề xuất đạt độ chính xác

93,33% trong phát hiện mã độc IoT.

Hamed HaddadPajouh và cộng sự đã đề xuất một phương pháp phát hiện mã độc

IoT sử dụng chuỗi opcode. Phương pháp này gồm 4 bước: (1) giải nén và giải biên dịch

các mẫu; (2) trích xuất các chuỗi opcode; (3) tiền xử lý dữ liệu; (4) ứng dụng RNN để

phát hiện các mẫu mã độc. Trong bước đầu tiên, công cụ Debian được sử dụng để unpack

tất cả các tập tin bị đóng gói, và sau đó công cụ Object-Dump được sử dụng để giải biên

dich tất cả các mẫu. Do các đoạn mã giải biên dịch có chứa những dữ liệu dư thừa như

các phép toán, các dòng chú thích mã lệnh vì thế cần cắt tỉa những dữ liệu dư thừa này

và liệt kê các opcode theo trật tự. Bước tiếp theo, nhóm tác giả áp dụng kỹ thuật khai

phá văn bản để xử lý một từ điển các từ và thu được các vector đặc trưng. Cuối cùng,

mô hình LSTM (Long Short Term Memory) được sử dụng để xây dựng cấu trúc học sâu

cho phát hiện các tập tin mã độc IoT. Phương pháp này đạt độ chính xác 98,18% với tập

Page 90: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

78

dữ liệu kiểm thử gồm 281 mã độc IoT dựa trên ARM và 270 mẫu lành tính IoT dựa trên

kiến trúc ARM.

Azmoodeh và cộng sự đã trình bày một phương pháp dựa trên học sâu để phát

hiện mã độc IoT bằng đồ thị Opcode. Trước hết, công cụ Objdump được sử dụng để

trích xuất các chuỗi opcode, sau đó phương pháp trích chọn đặc trưng Class-Wise được

sử dụng để loại bỏ các opcode không hiệu quả nhằm tránh bùng nổ đặc trưng. Tiếp đó,

mỗi opcode trong tập tin thực thi được xem như một đỉnh trong đồ thị chuỗi opcode,

trong đó đồ thị này được sinh ra dựa trên đồ thị CFG để biểu diễn cho mỗi mẫu. Sau đó,

các thuật toán học sâu được sử dụng với đầu vào là dữ liệu đồ thị và sẽ chuyển đổi những

đồ thị này thành không gian vector (ví dụ, các trị riêng eigenspace) cho phát hiện mã

độc IoT. Phương pháp đề xuất được đánh giá với tập dữ liệu chứa 128 mẫu mã độc IoT

và 1078 mẫu lành tính IoT (tất cả các mẫu đều dựa trên ARM), đạt độ chính xác và

precision ở mức 98,37% và 98,59% theo thứ tự. Tuy nhiên, phương pháp này không đủ

độ mạnh mẽ do bộ dữ liệu kiểm thử còn ít mẫu mã độc IoT botnet và vấn đề đa kiến trúc

không được xem xét đề cập đến trong nghiên cứu này do tập dữ liệu chỉ dựa trên kiến

trúc ARM.

Hisham Alasmary và cộng sự đã thực hiện một nghiên cứu chuyên sâu về đồ thị

của mã độc Android và IoT botnet. Quá trình thực hiện bằng cách trích xuất đồ thị luồng

điều khiển (CFG) như đặc trưng đại diện cho mỗi tập tin mã độc, sau đó tiến hành phân

tích các thuộc tính đồ thị (số đỉnh, số cạnh, mật độ phân tán, …). Kết quả thực nghiệm

đã cho thấy các thuộc tính trên có thể phân biệt giữa mã độc IoT botnet và mã độc

Android, đặc trưng đồ thị luồng điều khiển của mã độc Android có độ phức tạp cao hơn

(số lượng đỉnh, số lượng cạnh lớn hơn) so với mã độc IoT botnet. Tuy nhiên, độ phức

tạp của đặc trưng đồ thị luồng điều khiển của mã độc IoT botnet vẫn cao và nghiên cứu

này mới dừng ở mức độ đánh giá và phân biệt mã độc Andorid và IoT botnet.

Với mô tả chi tiết các đặc trưng của các công trình nghiên cứu tiêu biểu trong

phân tích tĩnh phát hiện mã độc botnet trên thiết bị IoT, đặc trưng mới trong phát biểu

bài toán nghiên cứu tại Chương này sẽ tận dụng được các điểm mạnh cũng như giải

quyết được những hạn chế của các đặc trưng đã có, từ đó đem lại hiệu quả cao trong bài

toán phát hiện mã độc IoT botnet với các thuật toán học máy, học sâu.

Page 91: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

79

3.3. Sơ đồ và ý tưởng phương pháp đề xuất

Bài toán nghiên cứu trong Chương này của luận án sẽ theo các giả thiết sau: Sự

khác biệt cơ bản giữa mã độc botnet và các loại mã độc khác là luôn cần sự kết nối tới

máy chủ C&C để gửi/nhận lệnh tấn công từ tin tặc. Quá trình lây nhiễm, tấn công của

mã độc botnet trên thiết bị IoT đã được nghiên cứu nhiều, và thấy rằng thường diễn ra

theo quy trình chung như đã trình bày ở phần 1.1.4 của luận án này. Mỗi bước trong

trạng thái vòng đời mã độc IoT botnet thường liên quan đến những thông tin được biểu

diễn dưới dạng các chuỗi như các câu lệnh chỉ thị của tin tặc, các địa chỉ IP/tên miền

của máy chủ C&C, …

Trước khi đi vào sơ đồ phương pháp đề xuất, để hiểu rõ hơn vấn đề, các định

nghĩa sau được quy định trong luận án này.

Định nghĩa 3.1: Một đồ thị lời gọi hàm (function-call graph) là một đồ thị có

hướng, biểu diễn bởi 𝐺=(𝑉,𝐸). Trong đó 𝑉 là tập các đỉnh 𝑉 = 𝑉(𝐺) biểu diễn các

hàm và tập các cạnh 𝐸=𝐸(𝐺), ở đó 𝐸(𝐺)⊆𝑉(𝐺) ×𝑉(𝐺), tương ứng với các lời gọi

hàm. Với mỗi đỉnh 𝑣 ∈𝑉, hai hàm được định nghĩa 𝑉𝑛(𝑣) và 𝑉𝑓(𝑣) cung cấp tên hàm

và loại hàm của hàm biểu diễn bởi 𝑣. Loại hàm 𝑡 ∈{0,1} có thể là hàm cục bộ (giá trị

0) hoặc hàm mở rộng (giá trị 1).

Định nghĩa 3.2: Một PSI (Printable String Information) là một chuỗi thông tin

có thể in được (printable) xuất hiện trong các tập tin thực thi, có thể ở dạng tường minh

(ví dụ “10.1.1.2”) hoặc mã hóa (ví dụ “eGAIM”).

Định nghĩa 3.3: Đồ thị PSI là một đồ thị có hướng được biểu diễn như sau 𝐺𝑃𝑆𝐼=

(𝑉,𝐸), trong đó:

– 𝑉 là tập các đỉnh được thiết lập bằng các hàm mà các hàm đó được trích

xuất từ đồ thị lời gọi hàm (function-call graph) và có chứa các PSI

– 𝐸 là tập các cạnh có hướng {(𝑉𝑖,𝑉𝑗), (𝑉𝑘,𝑉ℎ), … } , phản ánh mối liên kết

giữa hai caller và callee (hàm gọi – hàm được gọi)

Page 92: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

80

Hình 3.2. Quy trình phương pháp đề xuất phát hiện mã độc IoT botnet

Với giả thiết nghiên cứu trên, luận án đưa ra mô hình tổng quát phương pháp đề

xuất gồm 02 pha xử lý chính: pha huấn luyện và pha sử dụng, minh họa ở hình 3.2.

Trong đó, pha huấn luyện và pha sử dụng có quy trình xử lý tương đối giống nhau, chỉ

khác biệt ở khối Phân lớp. Với dữ liệu đầu vào là các tập tin thực thi trên thiết bị IoT,

bao gồm cả các tập tin mã độc và lành tính đã được mô tả chi tiết ở phần 2.2.3, thì quy

trình thực hiện gồm 4 bước như sau:

- Bước 1: Thực hiện phân tích các tập tin thực thi thành mã hợp ngữ với công cụ

hỗ trợ dịch ngược các tập tin đa kiến trúc IDA Pro, sau đó sinh đồ thị lời gọi hàm dựa

trên mã hợp ngữ đã thu được.

- Bước 2: Với dữ liệu đồ thị lời gọi hàm thu thập được, luận án trích xuất các

thông tin biểu diễn luồng thực thi của mã độc IoT botnet. Do thông tin dạng chuỗi thường

xuất hiện trong các vòng đời thực thi hành vi độc hại của mã độc IoT botnet, nên luận

án thực hiện phân tích và xác định các đỉnh trong đồ thị lời gọi hàm có chứa một hoặc

nhiều thông tin dạng chuỗi đó. Tiếp đó, luận án tiến hành duyệt và cắt tỉa đồ thị lời gọi

hàm, chỉ giữa lại các đỉnh có chứa thông tin dạng chuỗi và các cạnh kết nối đỉnh đó. Đồ

thị sau khi cắt tỉa được gọi là đồ thị PSI.

- Bước 3: Như vậy, từ mỗi tập tin thực thi đầu vào sẽ thu được một đồ thị PSI đặc

trưng đại diện. Để xác định tập tin thực thi là mã độc hoặc lành tính thì cũng đồng nghĩa

Page 93: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

81

là phải xác định đồ thị PSI đặc trưng đại diện cho tập tin thực thi đó là mã độc hoặc lành

tính. Như vậy cần thực hiện so sánh giữa đồ thị PSI thu được với đồ thị PSI của các tập

mẫu đã được phân loại mã độc, lành tính. Kết quả so sánh đồ thị PSI sẽ xác định tập tin

thực thi cần phân tích là mã độc hay lành tính. Phương pháp so sánh đồ thị [66] phổ biến

như so khớp đồ thị (matching graph), kỹ thuật nhúng đồ thị (embedding graph) . Có 2

hạn chế trong phương pháp sử dụng so khớp đồ thị, thứ nhất là độ phức tạp tính toán là

vấn đề cơ bản của so khớp đồ thị, thứ hai là việc xử lý nhiễu và sự biến dạng của đồ thị.

Một hướng tiếp cận khác, để khắc phục vấn đề thời gian và không gian tính toán đó là

kỹ thuật nhúng đồ thị trong không gian vector số, có nghĩa là phải chuyển đổi dữ liệu

đồ thị ban đầu dưới dạng một không gian vector số mới. Việc chuyển đổi từ không gian

này sang một không gian vector khác phải đảm bảo: (1) không gian vector mới phải thể

hiện bản chất của dữ liệu ban đầu, (2) cực tiểu hóa lượng mất mát thông tin xảy ra khi

chuyển sang không gian mới. Một số kỹ thuật embedding được sử dụng phổ biến như

mạng nơ-ron, mạng CNN, RNN, …Một số thư viện sử dụng kỹ thuật embedding như

Scikit-Learn, Word2vec, graph2vec. Chính vì thế, luận án này tiếp cận với kỹ thuật

nhúng đồ thị để thực hiện tiền xử lý đồ thị PSI trước khi chuyển vào các mô hình phân

lớp học máy, học sâu.

- Bước 4: Cuối cùng, luận án sử dụng mạng nơ-ron tích chập để phân lớp dữ liệu

vector thu được, từ đó xác định tập tin thực thi đầu vào là thuộc lớp mã độc hoặc lành

tính. Tuy nhiên, ở Pha huấn luyện thì quá trình này được thử nghiệm nhiều lần nhằm

chọn ra các tham biến, mô hình mạng phân lớp tốt nhất. Mô hình mạng phân lớp đó sẽ

được ứng dụng trong Pha sử dụng.

Với các bước tổng quan trên, phần tiếp theo luận án sẽ trình bày chi tiết các bước

thực hiện và giải pháp kỹ thuật để xử lý nhằm đạt được mục đích nghiên cứu đã đặt ra.

3.4. Đồ thị lời gọi hàm trong phát hiện mã độc IoT botnet

3.4.1. Khái niΜm ĽΩ thΠ lγi gΣi hàm

Để hiểu rõ hơn định nghĩa 3.1 đã trình bày ở phần 3.3, phần này sẽ trình bày chi

tiết. Trong các bài toán phát hiện mã độc, đặc trưng có cấu trúc đồ thị hầu hết được xây

dựng dựa trên nền tảng thông tin đồ thị luồng điều khiển. Đồ thị luồng điều khiển

(Control Flow Graph – CFG) [62] là đồ thị có hướng mà mỗi đỉnh (node) đồ thị biểu

Page 94: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

82

diễn bằng basic block và mỗi cạnh biểu diễn luồng điều khiển có thể giữa các basic

block. Trong đó, việc xây dựng basic block phụ thuộc vào loại thông tin luồng điều

khiển, nhưng luôn đảm bảo luồng điều khiển đi vào tại điểm khởi đầu và đi ra tại điểm

kết thúc mà không bị dừng đột ngột hoặc xử lý rẽ nhánh khi kết thúc. Thông tin luồng

điều khiển có 2 dạng chính [46]:

(1) luồng điều khiển liên thủ tục (inter-procedural CFG)

(2) luồng điều khiển nội thủ tục (intra-procedural CFG).

Đồ thị luồng điều khiển liên thủ tục biểu diễn mối liên kết giữa các hàm và các

thủ tục trong tập tin thực thi như một đồ thị đơn CFG, do đó đồ thị luồng điều khiển liên

thủ tục còn được gọi là đồ thị lời gọi hàm (FCG - Function Call Graph). Trong khi đó,

đồ thị luồng điều khiển nội thủ tục biểu diễn một tập các đồ thị luồng điều khiển bằng

một đồ thị cho mỗi thủ tục hoặc mỗi hàm. Do đó, các khối cơ sở có thể là một phần của

các chỉ thị lệnh hoặc các câu lệnh với duy nhất một đầu vào và một đầu ra trong đồ thị

luồng điều khiển nội thủ tục, và có thể là một hàm trong đồ thị luồng điều khiển liên thủ

tục. Đối với các tập tin thực thi sử dụng kỹ thuật đóng gói, gây rối (như viết lại mã nguồn

để gây khó khăn cho quá trình dịch ngược, …) thì việc sinh và xử lý đồ thị luồng điều

khiển nội thủ tục phức tạp hơn, độ chính xác kém hơn so với đồ thị lời gọi hàm [41].

Hơn nữa, hàm chức năng là một đơn vị lời gọi và mã nguồn của các tập tin thực thi gồm

nhiều hàm. Mỗi hàm thực hiện một tác vụ cụ thể và có thể được gọi nhiều lần từ các

hàm chức năng khác hoặc bởi chính nó trong quá trình thực thi tập tin. Cho nên việc sử

dụng đặc trưng dựa trên đồ thị lời gọi hàm sẽ hiệu quả hơn so với đồ thị luồng điều

khiển.

Một đồ thị lời gọi hàm (FCG – Function Call Graph) là một đồ thị luồng điều

khiển liên thủ tục, ở đó biểu diễn lời gọi quan hệ giữa các hàm hoặc chương trình con

trong một chương trình thực thi. Định nghĩa một cách chính thức được thể hiện như định

nghĩa 3.1.

Đồ thị lời gọi hàm được xem là đặc trưng mã độc bởi nó có thể đại diện cho chức

năng và mục tiêu của chương trình. Hơn nữa, tồn tại một xác suất khá nhỏ rằng đồ thị

lời gọi hàm của một chương trình tương đồng với đồ thị lời gọi hàm của một chương

trình khác [41]. Mặc dù các chương trình có sử dụng kỹ thuật gây rối nhưng các chức

Page 95: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

83

năng hầu như không thay đổi. Do đó, đồ thị lời gọi hàm có thể giải quyết được kỹ thuật

gây rối tốt hơn các chữ ký mã độc thông thường [97]. Có 2 loại hàm được sử dụng trong

các chương trình thực thi, đó là hàm cục bộ (internal function) và hàm bên ngoài

(external function).

Hàm cục bộ là các hàm của chương trình thực thi và được viết bởi người lập trình

để thực hiện các tác vụ cụ thể; trong khi đó hàm bên ngoài là các hàm hệ thống hoặc các

thư viện, nên còn được gọi là hàm nguyên tử. Hàm cục bộ có nhiều tên gọi trong các

chương trình khác nhau mặc dù chúng thực hiện chức năng giống nhau, ví dụ với các

tập tin kiến trúc x86_64 thì đều bắt đầu với tên cấu trúc “sub_xxxxxx proc near” và kết

thúc với định dạng “sub_xxxxxx endp”, theo sau “sub_” là địa chỉ bộ nhớ của hàm

Trong khi đó, tên của các hàm bên ngoài không thay đổi trong hầu hết các chương

trình thực thi. Những hàm này không thực hiện thêm các lời gọi và có cùng tên trong tất

cả các tập tin thực thi. Trong lý thuyết đồ thị, các hàm bên ngoài là những nút lá với bậc

tới (in-degree) là bằng 1 và bậc lui (out-degree) là bằng 0. Hơn nữa, tồn tại một liên kết

logic giữa 2 loại hàm này, một hàm cục bộ có thể gọi đến một hàm bên ngoài nhưng

hàm bên ngoài không viện dẫn bất kỳ hàm cục bộ nào bởi chúng là các hàm từ hệ thống

hoặc các thư viện.

3.4.2. Xây dχng ĽΩ thΠ lγi gΣi hàm

Trước khi xây dựng đồ thị lời gọi hàm thì cần kiểm tra và tiền xử lý các kỹ thuật

tự vệ của các tập tin thực thi để đảm bảo tính đúng đắn của đồ thị lời gọi hàm. Để kiểm

tra các tập tin có sử dụng kỹ thuật đóng gói không, luận án sử dụng công cụ xác định

trình đóng gói DiE (Detect It Easy) [115] để kiểm tra tập tin có bị đóng gói không và

nếu có thì kỹ thuật đóng gói sử dụng là gì. Phân tích trên tập dữ liệu thử nghiệm của

luận án gồm 10010 mẫu, thấy rằng chỉ khoảng 2% số lượng mẫu có sử dụng kỹ thuật

gây rối, và đại đa số là kỹ thuật đóng gói UPX. Các kỹ thuật đóng gói (mã hóa hoặc/và

nén) được sử dụng phổ biến trong các tập tin thực thi mã độc. Khi đóng gói các tập tin

nhị phân, các trình đóng gói khiến các tập tin trở thành định dạng tự thực thi bằng cách

thêm vào thành phần giải đóng gói (unpacking routine) trong các tập tin đóng gói. Sau

khi các tập tin đóng gói được thực thi, thành phần giải đóng gói trước hết sẽ giải mã để

chuyển các đoạn mã nguyên gốc vào bộ nhớ và sau đó các đoạn mã nguyên gốc được

thực thi.

Page 96: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

84

Hình 3.3 thể hiện cấu trúc của một tập tin ELF bị đóng gói bằng UPX, một trong

những trình đóng gói phổ biến. Chính vì lý do này, mà luận án không thể trực tiếp phân

tách các tập tin thực thi ban đầu.

LuanAn_upx (trên ổ đĩa) LuanAn (trong bộ nhớ)

ELF headers ELF headers

… Code section

Packed binary Data section

Unpacking Routine Giải đóng gói đoạn

mã bị đóng gói

Hình 3.3. Minh họa cấu trúc của tập tin bị đóng gói bằng UPX

Sau khi xác định được trình đóng gói thì hiện nay có rất nhiều công cụ hỗ trợ việc

unpack như công cụ UPX [121]. Các tập tin thực thi không thể unpack bằng công cụ

UPX thì sẽ được loại bỏ khỏi tập dữ liệu. Sau quá trình unpack, luận án lựa chọn IDA

Pro là công cụ hỗ trợ quá trình dịch ngược bởi đây là công cụ hỗ trợ đa nền tảng hệ điều

hành như Windows, Linux và Mac OS; cho phép lập trình tính năng plugin để tích hợp;

được cộng đồng nghiên cứu bảo mật quốc tế đánh giá cao (như BackHat, DefCon,

Usenix, …) cũng như nhiều công ty bảo mật, các tổ chức lựa chọn sử dụng trong bảo

mật; hỗ trợ đa kiến trúc vi xử lý (ARM, MIPS, PowerPC, Sparc, …). Bên cạnh đó, IDA

tích hợp các trình gỡ lỗi có thể giải quyết vấn đề các đoạn mã bị gây rối và cuối cùng,

IDA Pro được xem là công cụ hỗ trợ tốt nhất hiện nay cho quá trình phân tích các tập

tin thực thi trên thiết bị IoT [53].

Sau khi thực hiện phân tách các tập tin nhị phân bằng công cụ IDA Pro, luận án

thu được mã hợp ngữ của tập tin. Mã hợp ngữ của một tập tin thực thi bao gồm nhiều

hàm chức năng. Mỗi hàm chức năng thực hiện một tác vụ cụ thể và là một chuỗi lệnh

máy, trong đó chứa thông tin đầy đủ của các hàm như tên hàm, loại hàm, các hàm gọi

tới, các hàm gọi đi và các thông tin dạng chuỗi chứa trong các hàm. Đây là thuộc tính

của các hàm được thêm vào các đỉnh của đồ thị lời gọi hàm, minh họa như hình 3.4. Các

hàm này là đơn vị có thể gọi được và có thể được gọi nhiều lần từ các hàm khác hoặc

bởi chính nói trong quá trình thực thi tập tin.

Page 97: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

85

Hình 3.4. Một hàm từ mã độc Linux.Mirai

Ở bước này, IDAPython API được luận án sử dụng để tạo plug-in hỗ trợ trích

xuất mã hợp ngữ (assembly) từ các tập tin thực thi nhị phân, đồng thời định danh các

hàm và gán các tên biểu tượng cho các hàm. Bởi vì tên các hàm do người lập trình quy

định sẽ không được duy trì trong quá trình biên dịch mà thay vào đó một tên tượng trưng

sẽ được gán cho chúng. Tuy nhiên, các hàm bên ngoài có cùng tên trong các tập tin thực

thi. Trong trường hợp hàm bên ngoài được thêm động thì chúng sẽ được nhận tên gọi từ

Bảng liên kết thủ tục (Procedure Linkage Table – PLT) với định dạng ELF. Ngay khi

các thông tin liên quan được trích xuất, đồ thị lời gọi hàm sẽ được tiến hành xây dựng.

Trong đó, các hàm gọi tới hàm khác được gọi là “caller”, hàm được gọi thì gọi là

“callee”, mối quan hệ ở đây được gọi là quan hệ “caller – callee”.

Các thuật toán tìm kiếm theo chiều rộng (Breadth First Search – BFS) và tìm

kiếm theo chiều sâu (Depth First Search – DFS) được sử dụng phổ biến trong xây dựng

cấu trúc đồ thị theo các yêu cầu bài toán. Trong BFS, quá trình duyệt đồ thị bắt đầu từ

các đỉnh mức gốc (root) và tiếp tục duyệt lần lượt đến các đỉnh mức con kế tiếp. Trong

luận án, với dữ liệu đầu vào là các tập tin thực thi thì về nguyên tắc thực thi, các chương

trình sẽ luôn bắt đầu từ các hàm đầu vào (entry-point) sau đó mới gọi đến các hàm không

phải hàm đầu vào (non-entry point) từ mỗi hàm đầu vào trên [97]. Điều này có nghĩa là,

các hàm “entry-point” sẽ ở mức gốc của đồ thị và các hàm “non-entry point” sẽ ở các

Page 98: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

86

mức tiếp theo của đồ thị. Do đó, luận án thấy rằng thuật toán BFS là phù hợp trong việc

xây dựng đồ thị lời gọi hàm. Thuật toán xây dựng đồ thị lời gọi hàm (thuật toán 3.1)

được luận án triển khai kế thừa từ nghiên cứu của Ming Xu và cộng sự [108].

Thuật toán 3.1: Xây dựng đồ thị lời gọi hàm (Function Call Graph – FCG)

Input: Các hàm ở dạng mã hợp ngữ của tập tin 𝐹,

Output: Đồ thị lời gọi hàm 𝐺𝐹 của tập tin F

// Khởi tạo ban đầu

1: 𝑮𝑭.𝑉 = 𝝓 and 𝑮𝑭.𝐸 = 𝝓

2: EntryFuncSet = 𝝓, FuncSet = 𝝓, FuncQ = 𝝓, VerSet = 𝝓 //Trích xuất các hàm từ mã hợp ngữ

3: FuncSet = SplitFuncs(𝐹) 4: EntryFuncSet = IdentifyEntryPointFuncs(𝑀) 5: FuncQ = InitQ(EntryFuncSet) //Xây dựng mối quan hệ caller-callee

6: while(FuncQ is not empty) 7: baseVertex = Dequeue(FuncQ) 8: Insert baseVertex in 𝑮𝑭 9: baseVertex.enQFlag = true //Trích xuất các callee của tập baseVertex

10: VerSet = getCallee(baseVertex) 11: for each vertex in VerSet 12: if((vertex ∩ FuncSet) ≡𝝓) // Các đỉnh không có trong FuncSet

13: continue 14: endif 15: headVertex = vertex 16: // Xây dựng cạnh kết nối giữa baseVertex và headVertex

17: if(𝑒 ∈ 𝑮𝑭.𝐸) 18: baseVertex.outDeg++ 19: headVertex.inDeg++ 20: else 21: Insert headVertex in 𝑮𝑭 22: Insert edge 𝑒 in 𝑮𝑭 23: endif 24: if(headVertex.enQFlag == false) 25: Enqueue headVertex in FuncQ 26: headVertex.enQFlag = true 27: endif 28: next vertex 29: end while 30: return 𝑮𝑭 31: end

Mô tả thuật toán sinh đồ thị lời gọi hàm như sau: tất cả các hàm trong tập tin thực

thi là “non-entry point” được lưu trữ tại FuncSet như tại dòng lệnh thứ 3. Các hàm

Page 99: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

87

“entry-point” được xác định và lưu trữ tại EntryFuncSet như tại dòng lệnh thứ 4. FuncQ

là hàng đợi hàm trong đó EntryFuncSet được khởi tạo cho đến khi hàng đợi trống như

tại dòng lệnh thứ 5. Khi FuncQ không trống, thuật toán sẽ tách ra (dequeue) từ phía đầu

của hàng đợi và lưu các đỉnh (các hàm) tại baseVertex và xử lý như một caller như tại

dòng lệnh thứ 7. Việc này được thực hiện dựa trên lý thuyết là trong hàng đợi thì các

đối tượng được thêm vào bất kỳ lúc nào nhưng chỉ có đối tượng thêm vào đầu tiên mới

được phép lấy ra khỏi hàng đợi. Sau đó baseVertex được thêm vào đồ thị và cờ enQFlag

được thiết lập TRUE để tránh việc lặp lại quá trình thêm vào đồ thị. Sau đó baseVertex

được dò quét để tìm tập callee của nó và lưu trữ tại VerSet như tại dòng lệnh thứ 10. Mỗi

đỉnh trong tập VerSet được kiểm tra để đảm bảo nó chưa tồn tại trong tập FuncSet (nếu

không sẽ bị lặp lại việc duyệt một hàm) và sẽ được gán là headVertex như tại dòng lệnh

thứ 12 và 15. Nếu đã tồn tại cạnh nối giữa headVertex và baseVertex thì tăng outDeg

của caller và inDdeg của callee thêm 1 như tại dòng lệnh thứ 18 và 19. Ngược lại,

headVertex và các cạnh tương ứng của nó với baseVertex sẽ được thêm vào đồ thị như

tại dòng lệnh 21 và 22. Cuối cùng, nếu cờ enQFlag của headVertex vẫn chưa được thiết

lập giá trị TRUE, tức là đã duyệt hết mà cờ báo vẫn chưa kết thúc thì sẽ thiết lập thành

giá trị TRUE và được thêm vào cuối (enqueued) hàng đợi FuncQ. Từ đây, đồ thị lời gọi

hàm được xây dựng. Như vậy, với tập mẫu dữ liệu thử nghiệm (gồm các tập tin thực thi

mã độc, lành tính) thì mỗi tập mẫu qua quá trình xây dựng đồ thị lời gọi hàm sẽ cho ra

một đồ thị lời gọi hàm duy nhất, đồ thị lời gọi hàm này đảm bảo đặc tả đầy đủ các hành

vi tiềm tàng trong mỗi tập tin thực thi [105].

Hình 3.5. Một phần đồ thị lời gọi hàm của mã độc Linux.Mirai

Page 100: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

88

Trong hình 3.5, nút gốc “start” trong đồ thị lời gọi hàm là nút từ đó quá trình thực

thi bắt đầu và sẽ giống nhau cho mỗi đồ thị lời gọi hàm. Đồ thị lời gọi hàm rất hữu ích

trong biểu diễn luồng điều khiển của một chương trình. Đây là loại đồ thị nhằm biểu

diễn các khả năng thực thi trong một chương trình. Nhưng đồ thị lời gọi vẫn có độ phức

tạp cao bởi số lượng đỉnh và số lượng cạnh lớn, do đó thường tốn kém chi phí tính toán

và bộ nhớ lưu trữ [97]. Nếu độ phức tạp của một đồ thị dựa trên số cạnh và đỉnh thì độ

phức tạp sẽ là 𝛰(|𝑉|∗|𝐸|) với |𝑉| là số cạnh và |𝐸| là số đỉnh. Nguyên nhân là mặc dù

mỗi lời gọi quan hệ của một hàm chức năng được thể hiện trong đồ thị, nhưng có khả

năng có những lời gọi quan hệ không bao giờ được thực hiện khi một chương trình thực

thi. Điều này khiến độ phức tạp của đồ thị luồng lời gọi hàm cao khi số lượng đỉnh và

số lượng cạnh lớn. Chính vì thế, dựa trên cơ sở đồ thị lời gọi hàm, luận án hướng tới xây

dựng một đặc trưng đồ thị mới, có hiệu quả cao (độ phức tạp thấp khi có thể giảm số

lượng đỉnh và số lượng cạnh của đặc trưng đồ thị nhưng vẫn đảm bảo tỷ lệ phát hiện

chính xác cao) trong bài toán phát hiện mã độc IoT botnet khi áp dụng với các kỹ thuật

học máy, học sâu.

3.5. Xây dựng đồ thị PSI

3.5.1. Các khái niΜm liên quan

Trên cơ sở phân tích, đánh giá những nghiên cứu hiện nay [22], [38], [12], luận

án thấy rằng các đặc trưng cơ bản của mã độc IoT botnet thường diễn ra theo một quy

trình, trong đó có 05 bước chính như sau:

1) Cố gắng kết nối/nhận từ/đến máy chủ C&C ở xa thông qua địa chỉ IP hoặc

URL.

2) Cố gắng khai thác các thiết bị IoT bằng cách liên tục dò quét ngẫu nhiên địa

chỉ IP và thực hiện tấn công vét cạn thông qua các dịch vụ Telnet, SSH, FTP với một bộ

từ điển nhúng sẵn trong tập tin (ví dụ root/root, adim/root, admin/123, …).

3) Cố gắng phân tích kiến trúc phần cứng của thiết bị IoT và tải về các tập tin nhị

phân mã độc cần thiết (MIPS, ARM, PowerPC,…) với đoạn mã kịch bản thông qua giao

thức wget, TFTP để lây nhiễm trên các thiết bị.

4) Cố gắng tìm kiếm các loại mã độc khác trên thiết bị để hủy hoặc xóa chúng

ngay khi lây nhiễm thành công để đảm bảo tài nguyên bởi các thiết bị IoT là những thiết

Page 101: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

89

bị có tài nguyên hạn hẹp (ví dụ Mirai tìm và hủy các tiến trình của mã độc .anime và

Qbot).

5) Cố gắng chạy trên bộ nhớ của các thiết bị IoT sau đó sẽ tạm dừng hoạt động

cho đến khi nhận được lệnh từ kẻ tấn công.

Có thể thấy, mỗi bước trong trạng thái trong vòng đời mã độc IoT botnet thường

liên quan đến những thông tin được biểu diễn dưới dạng các chuỗi, ví dụ như địa chỉ IP

của các thiết bị có lỗ hổng, đặc trưng tên đăng nhập/mật khẩu, các câu lệnh lây nhiễm

mã độc hoặc địa chỉ IP của máy chủ C&C…Một cách chính thức, luận án định nghĩa

thông tin dạng chuỗi như định nghĩa 3.2.

Trước khi xây dựng đồ thị PSI, luận án trích xuất toàn bộ PSI tồn tại bên trong

tập tin thực thi bằng một đoạn mã plugin của công cụ IDAPro. Cân bằng giữa độ chính

xác của kết quả phân lớp và độ phức tạp tính toán, luận án lựa chọn các hàm chứa PSI

có độ dài tối thiểu từ 3 ký tự trở lên. Những PSI này có thể ở dạng tường minh hoặc mã

hóa và thường chứa nhiều thông tin ngữ nghĩa có liên quan đến mục đích của kẻ tấn

công. Ví dụ như chuỗi “/dev/watchdog; /dev/misc/watchdog” thường xuất hiện trong

Linux.Mirai, ngụ ý rằng mã độc botnet cố gắng ngăn chặn tiến trình khởi động lại của

thiết bị [63]. Trong một vài trường hợp, các chuỗi đã trích xuất bị mã hóa hoặc bị gây

rối, minh họa ở hình 3.6.

Hình 3.6. Các chuỗi bị mã hóa trong Linux.Mirai

Page 102: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

90

Thực tế, mặc dù có một vài kỹ thuật mã hóa được sử dụng để gây nhiễu thông tin

trong một số trường hợp mã độc IoT botnet như mã độc botnet Linux.Mirai, một mã độc

botnet thường thông qua quy trình lây nhiễm để khiến các thiết bị đã bị khai thác có thể

thực hiện theo yêu cầu mà kẻ tấn công (botmaster) mong muốn. Bên cạnh đó, một số

nghiên cứu trước đây cho thấy khả năng phát hiện dấu hiệu mã độc botnet bằng cách

quan sát các trạng thái trong vòng đời botnet. Khoshhalpour và cộng sự [74] đã đề xuất

một kỹ thuật phát hiện mã độc botnet dựa trên phân tích các hành vi mạng của một thiết

bị đã bị lây nhiễm. Với ý tưởng này, Prokofiev và cộng sự [91] đã phát hiện mã độc IoT

botnet bằng cách giám sát các trạng thái lan truyền của một mã độc botnet thông qua

nhiều tham biến như các cổng đích, các cổng nguồn mở và số lượng truy vấn. Tuy nhiên,

những nghiên cứu đó không tiếp cận để khai thác ưu điểm của phân tích tĩnh; do đó, các

nghiên cứu này có thể gặp phải những hạn chế tương tự như trong phân tích động, ví dụ

chỉ giám sát được các hành vi trong thời điểm thực thi chương trình; tuy nhiên những

nghiên cứu này cũng chỉ ra khả năng quan sát và phát hiện nhiều thành phần trong vòng

đời của mã độc IoT botnet.

Với những nội dung đã trình bày trên, nếu không xét đến giá trị của các chuỗi,

mà chỉ quan tâm đến cấu trúc của các chuỗi từ các hàm trong tập tin thực thi mã độc thì

có thể phản ánh “hành vi vòng đời” của mã độc IoT botnet không? Dựa trên ý tưởng

này, luận án cho rằng tồn tại một đặc trưng tĩnh có thể phản ánh “hành vi vòng đời” hay

có thể gọi là mô phỏng quá trình lây nhiễm của một mã độc IoT botnet. Đồng thời đặc

trưng này có hiệu quả hơn so với đồ thị lời gọi hàm trong phát hiện mã độc IoT botnet.

Một cách chính thức, luận án định nghĩa đồ thị PSI như định nghĩa 3.3.

Nội dung chi tiết của các thuật toán sinh đồ thi sẽ được trình bày chi tiết ở phần

tiếp theo của luận án này.

3.5.2. Thuͻt toán xây dχng ĽΩ thΠ PSI

Sau khi đã xây dựng được đồ thị lời gọi hàm, cũng như xác định được các đỉnh

chứa PSI, luận án tiến hành duyệt đồ thị lời gọi hàm để xây dựng đồ thị PSI, tiến trình

thực hiện như trong thuật toán 3.2.

Thuật toán 3.2: PSI-Graph Generation (FCG)

1 𝑉=[ ], 𝐸=[ ]

Page 103: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

91

2 For each vertice 𝑣𝑖 in FCG do:

3 If exist psi in 𝑣𝑖 and do:

4 𝑉 = 𝑉∪ 𝑣𝑖

5 End if

6 For each edge 𝑒𝑗(𝑣𝑖,𝑣𝑘) do:

7 If exist psi in 𝑣𝑘 and 𝑣𝑘∉𝑉 and 𝑒𝑗(𝑣𝑖,𝑣𝑘) ∉𝐸 do:

8 𝑉 = 𝑉∪ 𝑣𝑘

9 𝐸=𝐸∪ 𝑒𝑗(𝑣𝑖,𝑣𝑘)

10 End If

11 Enf for

12 End for

13 Return 𝑉,𝐸

Mô tả thuật toán sinh đồ thị PSI như sau: với dữ liệu đầu vào là dữ liệu đồ thị lời

gọi hàm FCG, khởi tạo ban đầu là tập đỉnh 𝑉 và tập cạnh 𝐸 của đồ thị PSI là rỗng như

tại dòng lệnh 1. Thực hiện duyệt đồ thị FCG theo chiều rộng và kiểm tra mỗi đỉnh trong

FCG, nếu có bất kỳ đỉnh nào chứa ít nhất một PSI thì sẽ đưa đỉnh đó vào tập đỉnh 𝑉 để

lưu trữ như tại dòng lệnh 4, ở đây thuật toán sử dụng phép hợp nhằm thể hiện rằng các

đỉnh sẽ không lưu trữ các đỉnh trùng lặp. Sau khi xác định được tập đỉnh 𝑉, thuật toán

tiến hành duyệt qua các cạnh của đồ thị FCG như tại dòng lệnh 6. Nếu tồn tại một đỉnh

trong đồ thị FCG có chứa ít nhất một PSI và đỉnh đó chưa nằm trong tập đỉnh 𝑉 thì sẽ

lưu trữ đỉnh đó vào tập đỉnh 𝑉 như tại dòng lệnh 8, đồng thời cạnh kết nối giữa 2 đỉnh

có chứa PSI mà chưa đượt duyệt lần nào sẽ đưa vào lưu trữ trong tập cạnh 𝐸. Kết quả

thu được tập đỉnh 𝑉 và tập cạnh 𝐸 để xây dựng đồ thị PSI. Hay nói một cách đơn giản

thì quá trình xây dựng đồ thị PSI là dựa trên việc cắt tỉa đồ thị FCG nhằm giảm số lượng

cạnh và số lượng đỉnh, như vậy độ phức tạp của thuật toán sinh đồ thị PSI là

𝑂(|𝑉|∗|𝐸|) cũng sẽ giảm. Hình 3.7 là một ví dụ về đồ thị PSI được lưu trữ trên tập tin,

trong đó dòng đầu tiên là số lượng đỉnh của đồ thị PSI, tiếp đó dòng thứ hai liệt kê các

đỉnh trong đồ thị (được cách nhau bởi dấu cách), từ dòng thứ 3 trở đi thì biểu diễn các

cạnh giữa 2 đỉnh.

Page 104: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

92

Thuật toán xây dựng đồ thị PSI với dữ liệu đầu vào là đồ thị lời gọi hàm đã được

xây dựng ở thuật toán 3.1, chính vì thế đồ thị PSI cũng đảm bảo tính đầy đủ và đúng

đắn. Bên cạnh đó, đồ thị PSI được sinh ra dựa trên việc cắt tỉa đồ thị lời gọi hàm, điều

này khiến xảy ra trường hợp hai tập tin thực thi mẫu (𝑙1,𝑙2) được biểu diễn đặc trưng

bởi hai đồ thị lời gọi hàm khác nhau (𝑙1→𝑓𝑐𝑔1,𝑙2→𝑓𝑐𝑔2); tuy nhiên qua quá trình cắt

tỉa đồ thị lời gọi hàm, luận án chỉ giữ lại các hàm (các đỉnh) chứa thông tin dạng chuỗi;

điều này khiến hai đồ thị PSI được sinh ra có khả năng giống nhau (𝑓𝑐𝑔1,𝑓𝑐𝑔2→

𝑃𝑆𝐼𝑔𝑟𝑎𝑝ℎ). Tuy nhiên, thuật toán 3.2 đảm bảo rằng với mỗi tập tin mẫu 𝑙𝑖∈ 𝐿, thì chỉ

có duy nhất 01 đồ thị PSI (𝑃𝑆𝐼𝐺𝑟𝑎𝑝ℎ𝑖) được sinh ra để đặc trưng cho tập tin 𝑙𝑖, không

có trường hợp tập mẫu 𝑙𝑖∈ L sinh ra 02 đồ thị PSI khác nhau. Như vậy, một tập tin mẫu

chỉ được đặc trưng bởi 01 đồ thị PSI duy nhất. Quá trình thực nghiệm, luận án thấy rằng

với 10010 tập tin thực thi thì thu được 6739 đồ thị PSI khác biệt.

Hình 3.7. Minh họa lưu trữ dữ liệu đồ thị PSI

Như vậy, các đặc trưng đồ thị PSI được xây dựng từ đồ thị lời gọi hàm, trong khi

đó đồ thị lời gọi hàm thường phức tạp và yêu cầu tài nguyên tính toán lớn (nguyên nhân

là do mã độc chứa số lượng lớn chỉ thị trong mã nguồn nên đồ thị FCG thu thập dược

Page 105: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

93

khá lớn). Bảng 3.1 cho thấy kết quả so sánh kích thước giữa đồ thị PSI và đồ thị lời gọi

hàm. Có thể thấy, đồ thị PSI có kích thước nhỏ hơn nhiều so với đồ thị lời gọi hàm về

số lượng đỉnh và cạnh ở cả các tập tin mã độc và lành tính. Vì vậy việc sử dụng đồ thị

PSI như đặc trưng để phát hiện mã độc có thể giảm độ phức tạp (tăng tốc độ xử lý, giảm

chi phí thời gian tính toán) so với việc sử dụng đồ thị lời gọi hàm.

Bảng 3.1. So sánh giữa đồ thị PSI và đồ thị lời gọi hàm FCG

Lớp Trung bình các

đỉnh trong đồ

thị PSI

Trung bình các

cạnh trong đồ

thị PSI

Trung bình các

đỉnh trong đồ

thị FCG

Trung bình các

cạnh trong đồ

thị FCG

Mã độc 147.1 1110.5 254.5 3075.5

Lành tính 167.8 1693.9 530.9 2962.2

Để có được sự hiểu biết tốt hơn đặc trưng đồ thị PSI, luận án đánh giá sự phân

bố số lượng đỉnh và cạnh trong đồ thị PSI của mã độc IoT botnet, so sánh với các mẫu

lành tính trong tập dữ liệu như ở bảng 3.2.

Bảng 3.2. Chi tiết số lượng cạnh và số lượng đỉnh trong đồ thị PSI giữa các lớp mẫu

Lớp Mirai Bashlite Mã độc IoT

botnet khác Lành tính

Trung binh các đỉnh 39,1 172,5 288,8 167,8

Trung bình các cạnh 233,4 624,3 1110,5 1693,9

Số đỉnh tối thiểu 3 1 2 1

Số đỉnh tối đa 1813 637 2313 11901

Số cạnh tối thiểu 15 7 0 0

Số cạnh tối đa 18903 2816 9882 65817

Có thể thấy ở bảng 3.2, số lượng các đỉnh trong đồ thị PSI tập trung chủ yếu trong

dải [1, 300] cho cả các tập tin mã độc và lành tính. Mặc dù, có sự khác biệt nhỏ trong

phân bố, nhưng sự khác biệt này không đủ rõ ràng để thiết lập một ngưỡng giá trị để

phân biệt các mẫu mã độc IoT và lành tính. Hình 3.8 cho thấy sự phân bố số lượng các

đỉnh trong đồ thị PSI của các mẫu mã độc IoT botnet và lành tính.

Page 106: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

94

Hình 3.8. Số lượng các cạnh và đỉnh giữa các lớp mẫu

Page 107: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

95

Để dễ hình dung kết quả hoạt động của thuật toán sinh đồ thị PSI (thuật toán 3.2),

quan sát hình 3.9 ví dụ về đồ thị lời gọi hàm của mẫu Linux.Bashlite, có thể thấy rõ ràng

đồ thị PSI đơn giản hơn nhiều so với đồ thị lời gọi hàm. Trung bình, một đồ thị PSI chỉ

chứa khoảng 16 đỉnh và 60 cạnh so với 156 đỉnh và 360 cạnh của đồ thị lời gọi hàm.

Hình 3.9. Đồ thị lời gọi hàm (trái) và đồ thị PSI (phải) của mẫu mã độc Linux.Bashlite

Như vậy, đặc trưng đồ thị PSI mà luận án thu được có những đặc điểm sau:

- Được xây dựng dựa trên phương pháp tĩnh;

- Có thể phản ánh “hành vi vòng đời” hay có thể gọi là mô phỏng quá trình lây

nhiễm của mã độc IoT botnet;

- Chỉ xét đến cấu trúc của các chuỗi thông tin có giá trị (printable string

information – PSI), không xét đến giá trị các chuỗi;

- Được xây dựng dựa trên đồ thị lời gọi hàm.

Page 108: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

96

3.6. Đánh giá thực nghiệm

3.6.1. Môi trγng thχc nghiΜm

Sử dụng tập dữ liệu đã được trình bày ở mục 2.2.3 của luận án này, để tiến hành

các thực nghiệm, luận án chia tập dữ liệu thử nghiệm thành 2 tập con là: tập huấn luyện

và tập kiểm thử. Các tập con của Tập huấn luyện chứa số lượng mẫu như nhau là 2690

mẫu cho cả lớp mã độc và lớp lành tính. Tập con kiểm thử chứa phần còn lại của tập dữ

liệu là 4630 mẫu. Thực nghiệm được xây dựng với ngôn ngữ Python và bộ framework

PyTorch trên hệ điều hành Ubuntu 16.04 sử dụng chip Intel Core i5-8500, 3.0GHz, thẻ

đồ họa NVIDIA GeForce GTX1080Ti và bộ nhớ RAM 32 GB.

3.6.2. M¹ h³nh Ľ§nh gi§

Để đánh giá tính hiệu quả của đặc trưng đồ thị PSI trong bài toán phát hiện mã

độc IoT botnet, luận án tiến hành đưa các đặc trưng đồ thị PSI vào mô hình đánh giá,

các bước trong mô hình dưới đây tương ứng với bước 3 và bước 4 như hình 3.1 của luận

án này. Như đã trình bày trước về so sánh giữa đồ thị PSI có thể sử dụng kỹ thuật so

khớp đồ thị hoặc kỹ thuật nhúng đồ thị. Mục đích chính của so khớp đồ thị là tìm sự

tương đồng giữa các đỉnh và các cạnh của hai đồ thị có thỏa mãn một số rằng buộc nhất

định. Nghĩa là, bằng phương pháp so khớp đồ thị, các cấu trúc tương đồng trong một đồ

thị được ánh xạ tới cấu trúc tương đồng trong một đồ thị khác. Dựa trên sự phù hợp đó,

điểm số đánh giá tương đồng hoặc khác biệt có thể được tính toán để cho thấy sự gần

gũi giữa hai đồ thị. Bài toán so khớp đồ thị có thể chia thành 2 loại chính: so khớp chính

xác (exact matching) và so khớp không chính xác (inexact matching). So khớp chính

xác là việc tìm kiếm một cách chính xác giữa 2 đồ thị có số lượng đỉnh bằng nhau, ngược

lại nếu số lượng đỉnh giữa hai đồ thị là khác nhau thì khi đó việc so khớp chính là tìm

kiếm một phần đồ thị con của đồ thị này xuất hiện trong đồ thị kia, đó gọi là so khớp

không chính xác. Tuy nhiên, với hạn chế trong phương pháp sử dụng so khớp đồ thị là

độ phức tạp tính toán là vấn đề cơ bản của so khớp đồ thị (thuộc lớp bài toán NP-khó),

thứ hai là việc xử lý nhiễu và sự biến dạng của đồ thị còn hạn chế. Chính vì thế, luận án

tiếp cận theo hướng sử dụng kỹ thuật nhúng đồ thị để chuyển đổi đồ thị PSI thành dữ

liệu vector số trước khi đưa vào các mô hình học sâu để phân lớp.

Page 109: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

97

Hình 3.10. Mô hình đánh giá đặc trưng đồ thị PSI trong phát hiện mã độc IoT botnet

Đã có nhiều nghiên cứu trong phân tích dữ liệu đồ thị như học qua các đỉnh, qua

các đồ thị con. Luận án tiếp cận dựa trên việc phân tích và biểu diễn toàn bộ cấu trúc đồ

thị PSI thành giá trị vector số có độ dài cố định, do đó luận án sử dụng graph2vec [39]

trong quá trình tiền xử lý dữ liệu đồ thị PSI. Quá trình xử lý của graph2vec dựa trên nền

tảng các hệ thống xử lý ngôn ngữ tự nhiên. Thông thường, các hệ thống xử lý ngôn ngữ

tự nhiên xử lý các từ như các biểu tượng, việc mã hóa được tạo ra ngẫu nhiên và không

cung cấp thông tin hữu ích cho hệ thống liên quan đến mối quan hệ giữa các biểu tượng.

Ví dụ “the” được đại diện bởi “Id156”. Bằng cách sử dụng biểu diễn vector của các từ

mà những vấn đề như trên đã được giải quyết như thể hiện sự tương đồng, đối lập về

ngữ nghĩa giữa các từ, giúp mô hình hóa vector cho một câu hay đoạn văn, tìm các câu

có nghĩa tương đồng,... Các kỹ thuật được sử dụng để xử lý ngôn ngữ tự nhiên có thể kể

đến như Word2Vec, Doc2Vec (thuộc nhóm kỹ thuật word embedding/vector – là nhóm

các kỹ thuật đặc biệt trong xử lý ngôn ngữ tự nhiên, có nhiệm vụ ánh xạ một từ hoặc

một cụm từ trong bộ từ vựng tới một vector số thực, từ không gian một chiều cho mỗi

từ tới không gian các vector liên tục). Tuy nhiên, qua quá trình thử nghiệm và đánh giá

sự phù hợp với nội dung nghiên cứu, luận án lựa chọn Graph2vec. Graph2vec [39] là

một kỹ thuật học không giám sát để chuyển đổi một đồ thị thành dạng vector số.

Graph2vec dựa trên ý tưởng hướng tiếp cận doc2vec sử dụng mạng skip-gram.

Graph2vec học cách biểu diễn các đồ thị bằng cách xem toàn bộ 01 đồ thị như một văn

bản và các đồ thị con như các từ tạo nên văn bản đó. Xét ví dụ minh họa ở hình 3.11 có

thể thấy rằng các đồ thị 𝐺1, 𝐺2, 𝐺3, 𝐺4 do có cấu trúc thuộc tính tương đồng với nhau

Page 110: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

98

nên chúng cũng gần nhau trong không gian nhúng, tương tự các đồ thị 𝐺1′, 𝐺2

′, 𝐺3′, 𝐺4

cũng gần nhau trong không gian nhúng vì chúng đều có cấu trúc vòng lặp tương đồng

nhau. Chính vì thế, luận án sử dụng graph2vec trong việc xử lý dữ liệu đồ thị PSI.

Hình 3.11. Mô hình cơ bản của kỹ thuật nhúng đồ thị

Thuật toán 3.3: Graph2vec (𝒢, 𝐷, 𝛿, 𝔢, 𝛼)

Input: 𝒢={𝐺1, 𝐺2,…, 𝐺𝑛}: Tập hợp các đồ thị sao cho mỗi đồ thị 𝐺𝑖=

(𝑉𝑖,𝐸𝑖,𝜆𝑖) đã được học

𝐷: bậc tối đa của các đồ thị con có gốc được xem xét cho việc học trong

không gian nhúng. Điều này sẽ tạo ra một từ vựng các đồ thị 𝑆𝐺𝑣𝑜𝑐𝑎𝑏=

{𝑠𝑔1,𝑠𝑔2, …} từ tất cả các đồ thị trong 𝒢

𝛿: số chiều không gian (kích thước không gian nhúng)

𝔢: số lượng epoch

𝛼: tỷ lệ học

Output: Ma trận vector biểu diễn của đồ thị Φ ∈ ℝ|𝒢| × 𝛿

1: Initialization: Sample Φ from ℝ|𝒢| × 𝛿

2: for 𝔢=1 to 𝔢 do

3: 𝜔=𝑆h𝑢𝑓𝑓𝑙𝑒(𝒢)

4: for each 𝐺𝑖∈𝜔 do

5: for each 𝑣∈ 𝑉𝑖 do

6: for 𝑑=0 to 𝐷 do

7: 𝑠𝑔𝑣(𝑑)

:= GetWLSubgraph(𝑣,𝐺𝑖, 𝑑)

8: 𝒥(Φ)= −logPr( 𝑠𝑔𝑣(𝑑)|Φ(𝒢))

9: Φ= Φ− 𝛼𝜕𝒥

𝜕Φ

10: Return Φ

Hướng tiếp cận graph2vec gồm 3 bước sau:

Page 111: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

99

- Lấy mẫu và đánh lại nhãn tất cả các đồ thị con từ đồ thị ban đầu. Đồ thị con là

tập các nút mà xuất hiện xung quanh nút đã lựa chọn. Các nút trong đồ thị con không

vượt quá mức số cạnh đã chọn.

- Huấn luyện mô hình skip-gram. Các đồ thị giống như các văn bản, do đó, các

văn bản là tập các từ và các đồ thị là tập các đồ thị con. Trong pha này, mô hình skip-

gram được huấn luyện. Nó được huấn luyện để tối đa hóa xác xuất dự đoán đồ thị con

tồn tại trong đồ thị đầu vào. Đồ thị đầu vào được cung cấp như một vector one-hot (là

một vector có toàn bộ giá trị là 0 trừ tại một vị trí đặc biệt nào đó thì sẽ có giá trị là 1).

- Tính toán nhúng để cung cấp một định danh đồ thị như một vector one-hot ở

đầu vào. Phép nhúng là kết quả của các lớp ẩn.

Hình 3.12. Mô hình hoạt động của graph2vec tương đồng với doc2vec

Như vậy, tóm lại nguyên lý hoạt động của graph2vec như sau: toàn bộ đồ thị

được xem như một văn bản, khi đó các đồ thị con trong đồ thị đang xét được xem như

các câu văn mà mỗi đỉnh trong đồ thị được xử lý như một từ (word). Sau đó sử dụng kỹ

thuật duyệt đồ thị “duyệt trung thứ tự cây con”, tức là theo thứ tự “duyệt các đỉnh bên

trái – sau đó duyệt đỉnh gốc – rồi tới duyệt đỉnh bên phải”. Khi đã xây dựng được văn

bản thì sử dụng đến kỹ thuật skipgram để biểu diễn đồ thị này. Do phải dự đoán các đồ

thị con, tức là các đồ thị với các đồ thị con tương đồng và cấu trúc tương đồng thì có

phép nhúng tương đồng. Kết quả của bước này là tập các vector one-hot với độ dài tùy

ý biểu diễn tập các đồ thị. Trong nghiên cứu đề xuất, luận án biểu diễn các đồ thị PSI

như vector số có độ dài 1024 được sử dụng cho việc phân lớp sau này.

Dữ liệu đã thu thập sau bước tiền xử lý đồ thị PSI sẽ được sử dụng để ra quyết

định xem một tập tin có tính độc hại hay không bằng cách sử dụng bộ phân lớp mạng

nơ-ron học sâu. Sau khi tiền xử lý đồ thị PSI, sẽ thu được dữ liệu vector, khi đó cần lựa

chọn một thuật toán có khả năng phân tích dữ liệu vector. Mạng nơ-ron tích chập (CNN)

và mạng nơ-ron hồi quy (RNN) đều hiệu quả trong việc phân tích dữ liệu vector số.

Page 112: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

100

Trong việc so sánh thì mạng RNN thường hiệu quả trong dự đoán giá trị của trạng thái

tiếp theo, trong khi mạng CNN lại đem lại kết quả tốt trong nhiều bài toán phân lớp [19].

Bên cạnh đó, CNN có tốc độ xử lý nhanh hơn mạng RNN khoảng 5 lần do các tích chất

là phần trung tâm của đồ họa máy tính và được thực thi ở mức phần cứng trên các thẻ

giao diện đồ họa (Graphics Processing Unit) [43]. Do đó, luận án lựa chọn mạng CNN

là bộ phân lớp cho phát hiện mã độc IoT botnet dựa trên học dữ liệu từ bước tiền xử lý

đồ thị PSI. Lưu ý rằng, hướng tiếp cận của luận án được giới thiệu trong Chương này là

tổng quan và không giới hạn ở việc sử dụng các mô hình phân lớp học sâu CNN. Việc

lựa chọn mô hình CNN là do sự đơn giản và tốc độ huấn luyện so với các kiến trúc mạng

học sâu khác như mạng nơ-ron hồi quy RNN. Áp dụng và so sánh với các hướng tiếp

cận học sâu khác nhau sẽ được thực hiện trong tương lai.

Để xây dựng mạng nơ-ron tích chập, luận án đã kế thừa mô hình mạng đề xuất

bởi Kim [75], đây là một mô hình mạng CNN đơn giản với một lớp trên đỉnh vector các

từ đã thu được sử dụng Word2vec, một mô hình ngôn ngữ nơ-ron không giám sát. Những

vector từ đó được huấn luyện sử dụng mô hình được đề xuất bởi Mikolov và cộng sự

[86] trên 100 tỷ từ của Google New. Lớp đầu tiên của mạng nơ-ron là lớp đầu vào, lớp

tiếp theo thực hiện các phép tích chập sử dụng nhiều kích thước bộ lọc. Đầu ra của lớp

này được chuyển đến một hàm phi tuyến, gọi là hàm kích hoạt ReLU, được định nghĩa

là 𝑓(𝑥)=max(0,𝑥). Tuy nhiên, trong tính toán, luận án sử dụng hàm kích hoạt ReLU,

bởi hàm kích hoạt ReLU đã được chứng minh tính toán nhanh hơn những hàm kích hoạt

khác (ví dụ hàm tanh, sigmoid) và hàm kích hoạt ReLU không cần chuẩn hóa hoặc chi

phí tính toán lớn (ví dụ tính toán theo hàm mũ) [100]. Krizhevsky và cộng sự [80] đã

chứng minh rằng ReLU có thời gian xử lý nhanh hơn gấp 6 lần so với hàm tanh trong

bộ dữ liệu CIFAR-10, đồng thời ReLU cũng không bị ảnh hưởng bởi vấn đề các mô

hình mạng không thể hội tụ (vanishing gradient). Tiếp đó, lớp max-pooling được sử

dụng để giảm chiều dữ liệu từ lớp tích chập, vì thế độ phức tạp và tài nguyên tính toán

của quá trình xử lý có thể được giảm và có thể mở rộng dữ liệu. Cuối cùng, lớp kết nối

đầy đủ (fully connected) thực hiện phân lớp các kết quả đầu ra được sinh ra từ lớp tích

chập và lớp pooling.

Page 113: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

101

3.6.3. Các kΔt qu thχc nghiΜm và th o luͻn

3.6.3.1. Thực nghiệm, so sánh tính hiệu quả của đặc trưng đồ thị PSI với đặc trưng đồ

thị lời gọi hàm

Nhằm đánh giá tính hiệu quả của đặc trưng đồ thị PSI trong phát hiện mã độc IoT

botnet, luận án đã thực nghiệm và đưa ra bảng kết quả trong đó tập trung vào 02 đặc

trưng là đồ thị PSI và đặc trưng đồ thị FCG với các giá trị độ đo gồm độ chính xác, FNR,

FPR và chi phí thời gian xử lý.

Bảng 3.3. Kết quả phát hiện mã độc IoT botnet bằng đồ thị PSI và đồ thị lời gọi hàm

Độ đo

Đặc trưng Accuracy (%) FNR (%) FPR (%) Time (m)

PSI-graphs 98,7 1,83 0,78 88

FCGs 95,3 5,81 4,13 545

Từ kết quả ở bảng 3.3 có thể thấy phương pháp đề xuất sử dụng các đặc trưng đồ

thị PSI thực hiện tốt hơn so với đồ thị lời gọi hàm. Kết quả cho thấy phương pháp đề

xuất đạt độ chính xác cao hơn 1,7% so với việc sử dụng đồ thị lời gọi, đồng thời thời

gian thực thi cũng ít hơn 457 phút. Bên cạnh đó, tỷ lệ âm tính giả (false nagative/tỷ lệ

loại trừ nhầm) trong phương pháp đề xuất đạt 1,83% trong khi phương pháp FCG đạt

5,81%. Trong khi đó, với các bài toán phát hiện mã độc thì tỷ lệ âm tính giả càng thấp

thì có nghĩa là bộ phân lớp gán nhãn sai mã độc là các tập tin lành tính càng thấp.

Mặc dù, trước khi thực nghiệm thì luận án đã tiến hành tiền xử lý các tập tin thực

thi. Cụ thể là, loại bỏ những tập tin thực thi mà công cụ IDA Pro không thể dịch ngược

hoặc xử lý được, loại bỏ những tập tin không phải tập tin nhị phân. Tuy nhiên, một số

tập tin mã độc Linux.Mirai vẫn bị phát hiện sai là tập tin lành tính, khó có đến 1,83% tỷ

lệ âm tính giả. Bằng việc phân tích thủ công các tập tin mẫu đó bằng IDA Pro, thấy rằng

trong mã hợp ngữ thu được không tìm thấy thông tin dạng chuỗi, tức là không có PSI.

Một số trường hợp thì đồ thị FCG chỉ xuất hiện 2-3 hàm, do những mẫu mã độc IoT này

sử dụng kỹ thuật tạo ra các thông tin dạng chuỗi động, đó là những thông tin dạng chuỗi

chỉ xuất hiện sau một vài lần tập tin thực thi trong hệ thống, nên với phân tích tĩnh thì

Page 114: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

102

sẽ không thấy các chuỗi trong tập tin thực thi. Từ những lý do đó, một số tập tin mã độc

bị gán nhãn và phát hiện sai là tập tin lành tính.

Bên cạnh đó, phương pháp đề xuất của luận án vẫn có tỷ lệ sai rất nhỏ trong gán

nhãn sai các tập tin lành tính là mã độc. Điều này xảy ra ở việc một số tập tin lành tính

có cấu trúc đồ thị PSI giống với cấu trúc đồ thị của một số mẫu mã độc Linux.Bashlite.

Qua phân tích thủ công những tập mẫu đó thấy rằng các tập tin thực thi khác nhau, có

đồ thị FCG và mã hợp ngữ thu được là khác nhau nhưng vẫn có cấu trúc đồ thị PSI giống

nhau. Tuy nhiên, tỷ lệ phát hiện sai này chỉ ở mức 0,78%, một tỷ lệ rất nhỏ. Tóm lại, có

hai nguyên nhân chính giải thích cho vấn đề này gồm:

- Trong số các tập tin bao gồm cả mã độc và lành tính, nhiều tập tin về bản chất

là cùng một chương trình, được tạo ra từ cùng một mã nguồn, tuy nhiên chúng lại được

biên dịch trên các kiến trúc vi xử lý khác nhau. Trong khi đó đồ thị PSI đã loại bỏ đi

các yếu tố liên quan đến nền tảng, chỉ giữ lại các yếu tố trừu tượng liên quan đến luồng

xử lý của chương trình, do đó chúng có đồ thị PSI giống nhau.

- Bản thân các đồ thị PSI có thể coi là các phiên bản rút gọn của FCG. Các tập

tin mang bản chất khác nhau, có đồ thị FCG khác nhau, tuy nhiên quá trình xây dựng đồ

thị PSI đã lược bỏ đi các yếu tố này bởi PSI chỉ quan tâm tới các hàm trỏ tới PSI, dẫn

tới việc đồ thị PSI được tạo ra từ chúng lại có dạng giống nhau. Khả năng này hiếm khi

xảy ra đối với những đồ thị PSI có số lượng đỉnh lớn bởi khả năng để hai đồ thị có hướng

khác bản chất lại có tập cạnh giống hệt nhau không cao, mà nó có xu thế xảy ra ở những

đồ thị PSI có số lượng đỉnh nhỏ (ít hơn 5 đỉnh), chiếm tỷ lệ nhỏ trong tập dữ liệu. Như

vậy có thể thấy rằng thuật toán xây dựng đặc trưng đồ thị PSI (thuật toán 3.2) là một ánh

xạ nhiều-một, tức là nhiều tập tin thực thi ELF có thể cho ra cùng một đồ thị PSI.

3.6.3.2. Thực nghiệm, so sánh tính hiệu quả của đặc trưng đồ thị PSI với các nghiên

cứu liên quan trên cùng bộ cơ sở dữ liệu

Phương pháp thử nghiệm của luận án sử dụng mô hình mạng học sâu CNN, để

đánh giá tính hiệu quả một một mô hình mạng học sâu thường dựa trên hai tiêu chí là

độ chính xác và tính quá khớp (overfitting). Để nâng cao độ tin cậy của đặc trưng đồ thị

PSI trong phát hiện mã độc IoT botnet, luận án tiến hành thực nghiệm, đánh giá một số

Page 115: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

103

nghiên cứu hiện nay trên cùng bộ cơ sở dữ liệu đã trình bày ở mục 2.2.3. Kết quả đạt

được về giá trị đo độ chính xác được mô tả như bảng 3.4.

Bảng 3.4. Kết quả so sánh giữa các phương pháp phát hiện IoT botnet

Phương pháp Các thuật toán Bộ mẫu thử nghiệm

Độ chính

xác

(Accuracy

%)

Su và cộng sự

[25]

Deep neural network

(CNN)

6943 mẫu (gồm 3098 mã

độc từ IoTPOT)

95.13

HaddadPajouh

và cộng sự [14]

Recurrent neural

network (RNN) 97.88

PSI-Graph Deep neural network

(CNN)

98.7

10,010 mẫu (gồm 6165 mã

độc từ IoTPOT and

VirusShare)

97,8

Từ bảng kết quả 3.4 có thể thấy các phương pháp nghiên cứu của Su và cộng sự

[25], HaddadPajouh và cộng sự [14] đều cho kết quả khả quan. Mặc dù các kết quả đạt

được của các nghiên cứu hiện nay đều khả quan, nhưng việc không có sẵn bộ dữ liệu

thử nghiệm và mã nguồn các mô hình thử nghiệm khiến cho việc thử nghiệm lại và đánh

giá kết quả đó khá khó khăn. Luận án cố gắng xây dựng lại những phương pháp đó thông

qua các học liệu, bài báo đã công bố của các phương pháp trên. Kết quả đạt được cho

thấy phương pháp đề xuất của luận án đạt độ chính xác tốt hơn phương pháp của Su và

HaddadPajouh lần lượt là 3,57% và 0,82%.

Cuối cùng, vấn đề quá khớp (over-fitting) thường xảy ra với các thuật toán học

sâu. Điều này xảy ra khi mô hình quá khớp với tập dữ liệu huấn luyện nhưng không thực

hiện tốt khi thực thi trên các tập con mở rộng. Để đánh giá vấn đề quá khớp trong mô

hình đề xuất, luận án đã thêm 3067 mẫu mã độc được thu thập từ VirusShare vào tập

kiểm thử và tính toán lại độ chính xác. Như kết quả thể hiện ở bảng 3.4, khi thêm các

mẫu mã độc từ VirusShare vào tập dữ liệu mẫu thì độ chính xác trong phát hiện mã độc

Page 116: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

104

có giảm nhẹ (giảm 0,9%). Như vậy, từ các kết quả thực nghiệm, luận án thấy rằng

phương pháp đề xuất đạt kết quả khả quan trong phát hiện mã độc IoT botnet, đồng thời

giải quyết được vấn đề quá khớp trong khoảng giá trị chấp nhận được.

3.7. Kết luận Chương 3

Các thiết bị IoT tăng trưởng mạnh mẽ về số lượng trong tương lai. Do đó, việc

đảm bảo an toàn cho các thiết bị IoT, phòng chống mã độc IoT botnet là rất cấp thiết.

Trong Chương này, dựa trên việc phân tích, đánh giá các đặc trưng của mã độc IoT

botnet và nhằm giải quyết các hạn chế của các nghiên cứu trước trong phát hiện mã độc

IoT botnet dựa trên đặc trưng có cấu trúc đồ thị, luận án đã đề xuất một hướng tiếp cận

nhẹ (light) dựa trên đặc trưng mức cao, được gọi là đồ thị PSI nhằm phát hiện mã độc

IoT botnet. Phương pháp đề xuất khai phá vòng đời của mã độc IoT botnet để sinh đặc

trưng đồ thị PSI, áp dụng các ưu điểm của phương pháp học sâu để đạt độ chính xác tới

98,7% cũng độ quá khớp trong khoảng giá trị chấp nhận được với bài toán phát hiện mã

độc IoT botnet. Tuy nhiên, phương pháp đề xuất chỉ tập trung vào khai thác cấu trúc

tổng thể của đồ thị PSI, và vẫn có độ phức tạp chi phi thời gian khá lớn.

Phương pháp đề xuất đã thể hiện được tính khả thi cả về tính lý thuyết và thực

nghiệm. Ý tưởng và kết quả thực nghiệm của phương pháp đề xuất được trình bày, công

bố trên các Tạp chí, Kỷ yếu Hội thảo uy tín trong nước và quốc tế. Cụ thể là:

- "A novel graph-based approach for IoT botnet detection". International Journal

of Information Security, Vol. 19, pp. 567-577, 2020. (SCIE-index, Q2)

- "IoT Botnet Detection Approach Based on PSI graph and DGCNN classifier".

In IEEE International Conference on Information Communication and Signal

Processing (ICICSP), pp. 118-122, 2018. (SCOPUS Index)

- “Phát hiện mã độc IoT botnet”, Hội thảo quốc gia lần thứ III: Một số vấn đề

chọn lọc về an toàn an ninh thông tin, Đà Nẵng, 12/2018. (Kỷ yếu Hội thảo được xuất

bản trên Tạp chí Thông tin và Truyền thông, ISSN 1859-3550, trang 89-94, 2018)

Page 117: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

105

CHƯƠNG 4. ĐẶC TRƯNG ĐỒ THỊ CON PSI CÓ GỐC TRONG PHÁT HIỆN

MÃ ĐỘC IOT BOTNET

4.1. Phát biểu bài toán

Phương pháp phát hiện mã độc IoT botnet dựa trên đặc trưng đồ thị PSI đã cho

thấy tính khả thi và đạt hiệu quả cao. Tuy nhiên, phương pháp đề xuất này tập trung vào

khai thác cấu trúc tổng thể của đồ thị PSI và không khai thác các đường đi trong đồ thị

PSI, nói cách khác phương pháp tập trung vào việc xét đồ thị PSI như một đồ thị đơn.

Thực tế là xu hướng phát triển của các tập tin thực thi mã độc botnet trên thiết bị IoT

ngày càng phức tạp, do đó cấu trúc đồ thi PSI cũng sẽ phức tạp theo. Trong khi đó, các

hành vi độc hại thường xuất hiện trong vòng đời mã độc IoT botnet có thể là các đường

đi trong đồ thị PSI, minh họa như ở hình 3.1 thì đó có thể là các đường đi màu xanh lá

hoặc màu đỏ, còn các đường đi khác là dữ liệu dư thừa. Dựa trên điều đó, bài toán nghiên

cứu của Chương này được phát biểu như sau:

Xây dựng một đặc trưng mới dựa trên đặc trưng đồ thị PSI, nhưng tập trung khai

phá các đường đi trong đồ thị PSI, từ đó xây dựng đặc trưng đồ thị mới, gọi là đồ thị

con PSI có gốc biểu diễn các hành vi độc hại của mã độc IoT botnet, nâng cao hiệu quả

phát hiện mã độc IoT botnet với các thuật toán học máy đơn giản.

Hình 4.1. Minh họa ý tưởng bài toán dùng đồ thị con PSI có gốc

Page 118: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

106

4.2. Sơ đồ và ý tưởng phương pháp đề xuất

Để trả lời cho bài toán nghiên cứu đã đặt ra, phương pháp luận án đề xuất có sơ

đồ cấu trúc như sau:

Hình 4.2. Tổng quan phương pháp đề xuất sử dụng PSI-rooted subgraph trong phát

hiện mã độc IoT botnet

Với dữ liệu đầu vào là các tập tin thực thi trên thiết bị IoT, bao gồm cả các tập

tin mã độc và lành tính đã được mô tả chi tiết ở phần 2.2.3 của luận án này, thì quy trình

thực hiện gồm 4 bước như sau:

- Bước 1: Thực hiện phân tích các tập tin thực thi thành mã hợp ngữ với công cụ

hỗ trợ dịch ngược các tập tin đa kiến trúc IDA Pro, sau đó sinh đồ thị lời gọi hàm dựa

trên mã hợp ngữ đã thu được. Tiếp đó áp dụng phương pháp sinh đồ thị PSI đã trình bày

ở mục 2.3 của luận án này

Page 119: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

107

- Bước 2: Như vậy với mỗi tập tin thực thi sẽ có một tập dữ liệu đồ thị PSI. Với

dữ liệu đồ thị PSI thu thập được, luận án tiến hành duyệt đồ thị PSI với từng đỉnh và với

độ sâu đồ thị nhất định để xây dựng đồ thị con PSI có gốc.

- Bước 3: Trước khi thực hiện tác vụ phân lớp, dữ liệu thô các đồ thị con PSI có

gốc sẽ được tiền xử lý để phù hợp nhất cho các bộ phân lớp học máy. Bước này gồm 3

trạng thái là trích xuất đặc trưng cho dữ liệu vector, chuẩn hóa và trích chọn đặc trưng.

- Bước 4: Cuối cùng, luận án sử dụng nhiều bộ phân lớp học máy với tập dữ liệu

vector trên, từ đó xác định tập tin thực thi đầu vào là thuộc lớp mã độc hoặc lành tính,

đồng thời lựa chọn được bộ phân lớp tốt nhất trong phát hiện mã độc IoT botnet.

Với các bước tổng quan trên, phần tiếp theo luận án sẽ trình bày chi tiết các bước

thực hiện và giải pháp kỹ thuật để xử lý nhằm đạt được mục đích nghiên cứu đã đặt ra.

4.3. Xây dựng đặc trưng đồ thị PSI-rooted subgraph

4.3.1. Khái niΜm

Trước khi thực hiện xây dựng đồ thị con PSI có gốc thì cần xây dựng đồ thị PSI.

Dữ liệu đồ thị PSI được sinh ra dựa trên việc kế thừa quá trình sinh đồ thị PSI đã được

trình bày ở phần 3.5 trong luận án này. Dưới đây là ví dụ một đồ thị PSI.

Hình 4.3. Một ví dụ đồ thị PSI

Page 120: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

108

Như vậy, có thể thấy đồ thị con PSI có gốc được xây dựng dựa trên đồ thị PSI

nhưng bổ sung thêm thông tin về đỉnh gốc và độ sâu của đồ thị, một cách chính thức

định nghĩa đồ thị con PSI có gốc như sau:

Định nghĩa 4.1 (Đồ thị con PSI có gốc): Giả sử 𝐺𝑠𝑔=(𝑉,𝐸,𝜃,𝑑) biểu diễn một

đồ thị con PSI có gốc, có hướng và không có chu trình, đồ thị này được sinh ra từ đồ thị

𝐺𝑃𝑆𝐼 có gốc ở đỉnh ∅; trong đó 𝑉 ∈ 𝐺𝑃𝑆𝐼 là tập các đỉnh mà ở đó độ dài giữa (∅,𝑉𝑖) thỏa

mãn 0≤ (∅,𝑉𝑖)≤𝑑, và 𝐸 là tập các cạnh có hướng giữa các đỉnh trong 𝑉.

4.3.2 Thuͻt toán xây dχng PSI-rooted subraph

Sau khi đã xây dựng được đồ thị PSI, cũng như xác định được các đỉnh trong

PSI, luận án tiến hành duyệt đồ thị PSI với đỉnh gốc của các đồ thị con lần lượt là các

đỉnh trong đồ thị PSI, tiến trình thực hiện như trong thuật toán đề xuất 4.1.

Thuật toán 4.1: 𝐸𝑥𝑡𝑟𝑎𝑐𝑡𝑅𝑜𝑜𝑡𝑒𝑑𝑆𝑢𝑏𝑔𝑟𝑎𝑝ℎ(𝒢,𝐷)

𝐈𝐧𝐩𝐮𝐭 𝒢={𝐺1, 𝐺2,…,𝐺𝑛}: Tập hợp đồ thị PSI 𝐺𝑖=(𝑉𝑖,𝐸𝑖) biểu diễn cho các

tập tin ELF

𝐷: Bậc của đồ thị con PSI có gốc

Output 𝒮𝒢={𝑆𝐺1, 𝑆𝐺2,…,𝑆𝐺𝑛}: Tập hợp đồ thị con PSI có gốc 𝑆𝐺𝑖=(𝑉𝑖′,𝐸𝑖′,𝑣,𝐷) được trích xuất từ 𝒢

1 𝑰𝒏𝒊𝒕𝒊𝒂𝒍𝒊𝒛𝒂𝒕𝒊𝒐𝒏:𝒮𝒢=∅

2 𝒇𝒐𝒓 𝒆𝒂𝒄𝒉 𝐺𝑖∈𝒢 𝒅𝒐

3 𝒇𝒐𝒓 𝒆𝒂𝒄𝒉 𝑣∈𝑉𝑖 𝒅𝒐

4 𝒇𝒐𝒓 𝑑=0 𝑡𝑜 𝐷 𝒅𝒐

5

6

𝑆𝐺𝑖≔𝐺𝑒𝑡𝑊𝐿𝑆𝑢𝑏𝐺𝑟𝑎𝑝ℎ(𝑣,𝐺𝑖,𝑑) 𝒮𝒢≔𝒮𝒢∪𝑆𝐺𝑖

7 𝑟𝑒𝑡u𝑟𝑛 𝒮𝒢

Thuật toán 4.1 chọn lấy tất cả các hàng xóm của một đỉnh để trích xuất đồ thị con

(dò theo chiều rộng). Tiến trình trích xuất đồ thị con PSI có gốc dựa trên thuật toán tìm

kiếm theo chiều rộng (BFS – Breadth First Search) sẽ hiệu quả hơn thuật toán tìm kiếm

theo chiều sâu (Depth First Search). Lý do chính là BFS bắt đầu ở đỉnh gốc và khai thác

tất cả các đỉnh lân cận ở cùng độ sâu trước khi đi tới độ sau tiếp theo trong khi DFS khai

Page 121: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

109

thác các nút có độ sâu nhất trước khi quay lui tìm kiếm. Với độ sâu cố định (hay gọi là

bậc) của một đồ thị con có gốc thì thuật toán BFS rõ ràng phù hợp hơn cho trích xuất

các đồ thị con có gốc.

Để lựa chọn được độ sâu đồ thị con phù hợp, luận án đã tiến hành thử nghiệm

với các độ sâu lần lượt là 𝐷 = 2, 𝐷 = 3 và 𝐷 = 4. Tuy nhiên, quá trình thử nghiệm thấy

rằng độ sâu 𝐷 = 2 cho kết quả không tốt bằng độ sâu 𝐷 = 3 và 𝐷 = 4 do với độ sâu 𝐷

= 2 thì sẽ bị mất nhiều thông tin khi không thể biểu diễn được nhiều hành vi của mã độc.

Tuy nhiên, với 𝐷 = 4 thì độ chính xác tương đồng với 𝐷 = 3 nhưng độ phức tạp khá lớn

khi không gian bộ nhớ cần để lưu trữ dữ liệu đồ thị con PSI cần khá lớn, đồng thời quá

trình vector hóa cũng tốn kém về không gian lưu trữ. Chính vì thế, cân đối giữa độ chính

xác và độ phức tạp, luận án lựa chọn độ sâu 𝐷 = 3 để xử lý đồ thị con PSI.

Hình 4.4. Kết quả thử nghiệm với các độ sâu khác nhau khi duyệt đồ thị con PSI

Trong đó, thuật toán 4.1 thực hiện lấy đỉnh gốc 𝑣, đồ thị 𝐺𝑖 và 𝑑 - bậc của đồ thị

con như các giá trị đầu vào và trả về kết quả là đồ thị con 𝑆𝐺𝑖, như tại dòng lệnh 5, quá

trình thực hiện được xử lý với hàm GetWLSubGraph. Hàm GetWLSubGraph tại thuật

toán 4.2, được luận án kế thừa từ nghiên cứu của Annamalai Narayanan và cộng sự [89],

được mô tả như sau: khởi tạo ban đầu tập đồ thị con PSI có gốc là rỗng; khi 𝑑 = 0 tức là

93,5

94

94,5

95

95,5

96

96,5

97

97,5

98

DT RF SVM Bagging kNN

Độ chính xác (%)

Các bộ phân lớp học máy

d=2 d=3 d=4

Page 122: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

110

không có đồ thị con nào được trích xuất và do đó chỉ xét duy nhất đỉnh gốc vì thế đồ thị

con duy nhất là đỉnh gốc, như tại dòng lệnh 3; ngược lại với mỗi trường hợp 𝑑 > 0, luận

án thực hiện duyệt theo chiều rộng và lấy tất cả các đỉnh lân cận của 𝑣 và lưu trong 𝑁𝑣,

như tại dòng lệnh 5; tiếp đó với mỗi đỉnh láng giềng, 𝑣′, luận án thu được đồ thị con bậc

(𝑑−1) của 𝑣′, và lưu cùng trong danh sách 𝑀𝑣(𝑑)

, như tại dòng lệnh 6. Cuối cùng, luận

án thu đồ thị con bậc (𝑑−1) quanh đỉnh gốc 𝑣 và kết nối với cùng danh sách đã sắp

xếp trong 𝑀𝑣(𝑑)

để thu được các đồ thị con PSI có gốc cần thiết, như tại dòng lệnh 7.

Thuật toán 4.2: GetWLSubGraph (𝑣, 𝐺, 𝑑)

Input:

𝑣: Đỉnh là gốc của đồ thị con PSI

𝐺=(𝑉,𝐸) : Đồ thị PSI được sử dụng để trích xuất các đồ thị con

𝑑: Bậc của các đỉnh lân cận được xem xét để trích xuất đồ thị con PSI

Output: 𝑠𝑔𝑣(𝑑)

: Đồ thị con có gốc với bậc 𝑑 quanh đỉnh 𝑣

1 𝑠𝑔𝑣(𝑑)=∅ //khởi tạo tập đồ thị con có gốc là rỗng

2 If 𝑑=0 then

3 𝑠𝑔𝑣(𝑑)≔ (𝑣)

4 else

5 𝑁𝑣≔{𝑣′|(𝑣,𝑣′)∈𝐸}

6 𝑀𝑣(𝑑)≔{𝐺𝐸𝑇𝑊𝐿𝑆𝑈𝐵𝐺𝑅𝐴𝑃𝐻(𝑣′,𝐺,𝑑−1)| 𝑣′∈𝑁𝑣

7 𝑠𝑔𝑣

(𝑑)≔ 𝑠𝑔𝑣(𝑑) ∪𝐺𝐸𝑇𝑊𝐿𝑆𝑈𝐵𝐺𝑅𝐴𝑃𝐻

(𝑣,𝐺,𝑑−1) ⊕𝑠𝑜𝑟𝑡(𝑀𝑣(𝑑))

8 Return 𝑠𝑔𝑣(𝑑)

Sau khi áp dụng thuật toán 4 vào tập dữ liệu đồ thị PSI, luận án thu được tập dữ

liệu đồ thị con PSI có gốc. Với mỗi tập tin đồ thị PSI, luận án thu được một tập tin đồ

thị con PSI có gốc trong đó mỗi câu là một đồ thị con PSI có gốc, mà gốc đó là đỉnh

trong đồ thị PSI ban đầu. Để minh họa cho quá trình xây dựng đồ thị con PSI có gốc,

luận án duyệt đồ thị PSI (trong hình 4.3) để tìm một ví dụ đồ thị con có gốc ở đỉnh 11

với độ sâu d bằng 2, kết quả được hiển thị trong bảng 4.1 và hình 4.5.

Page 123: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

111

Bảng 4.1. Một ví dụ sinh đồ thị con PSI có gốc với độ sâu bằng 2

Bậc (độ sâu) Các đỉnh

d=0 11

d=1 0, 8, 10, 7, 9

d=2 18, 0, 0, 7, 0, 5, 6, 15, 16

Quá trình duyệt được mô tả như sau: tại d = 0 thì chỉ có duy nhất đỉnh 11; tiếp đó

tại d = 1 thì sẽ lấy từng đỉnh tại d = 0 để duyệt, khi đó kết quả sẽ có các đỉnh liên kết với

đỉnh 11 là {0,8,10,7,9}; tương tự tại d = 2 thì lấy từng đỉnh tại d = 1 để duyệt, như đỉnh

{0} thì liên kết với đỉnh {18}, đỉnh {8} liên kết với đỉnh {0}, … Cứ tiếp tục cho đến khi

duyệt hết các đỉnh tại d = 1 thì sẽ có danh sách các đỉnh ở d = 2. Kết quả đồ thị con PSI

có gốc ở đỉnh 11 là một danh sách {11, 0, 8, 10, 7, 9, 18, 0, 0, 7, 0, 5, 6, 15, 16}.

Hình 4.5. Một minh họa đồ thị con PSI có gốc ở đỉnh 11.

Tiếp tục quá trình duyệt toàn bộ đồ thị PSI với các gốc là các đỉnh khác trong đồ

thị, khi đó sẽ thu được danh sách các đồ thị con PSI có gốc, như vậy sẽ thấy dữ liệu thu

được có dạng như một rừng có nhiều cây (bởi quá trình duyệt sinh đồ thị con đã bỏ đi

các chu trình nên đồ thị con sẽ có cấu trúc giống một cây). Sau đó, cần xác định tập đồ

thị con PSI có gốc, mà những đồ thị con đó có chứa hành vi trong vòng đời của mã độc

IoT botnet. Thêm vào đó, để minh họa tập dữ liệu đồ thị con PSI có gốc thử nghiệm

trong không gian 3 chiều, nhưng số chiều của không gian đặc trưng lớn làm gia tăng

nhiễu nên luận án thực hiện giảm chiều bằng cách áp dụng kỹ thuật cắt tỉa giá trị đơn

SVD (Truncated Singular Value Decomposition) ba chiều cho toàn bộ dữ liệu, phương

Page 124: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

112

pháp này được biết đến như phân tích ngữ nghĩa tiềm ẩn (Laten Semantic Analysis -

LSA). Mặc dù việc giảm chiều sẽ mất một vài thông tin và kết quả minh họa trong chiều

không gian thấp không thể bộc lộ hết các thông tin ở chiều không gian cao, nhưng điều

này vẫn đem đến những thông tin có giá trị về sự phân bố.

Hình 4.6. Biểu đồ phân tán mô tả phân bố các điểm dữ liệu của đồ thị con PSI có gốc

trong tập dữ liệu sau khi giảm chiều LSA 3-D

Hình 4.6 cho thấy sự phân bố dữ liệu đồ thị con PSI có gốc của mã độc IoT và

lành tính khá gần nhau và có những vùng chồng lấn lên nhau, điều này gây khó khăn

cho các bộ phân loại học máy phát hiện chính xác mã độc. Do đó, luận án thấy rằng khó

có thể sử dụng một giá trị ngưỡng để phân loại nên cần một đặc trưng hoặc mô hình

phân lớp đủ mạnh để phân lớp các thể hiện thành 2 lớp: mã độc hoặc lành tính.

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

4.4.1. M¹i trγng thχc nghiΜm

Sử dụng tập dữ liệu đã được trình bày ở mục 2.2.3 của luận án này, để tiến hành

các thực nghiệm, luận án chia tập dữ liệu thử nghiệm thành 2 tập con là: tập huấn luyện

và tập kiểm thử. Trong đó sử dụng 70% tập dữ liệu để thực hiện huấn luyện và 30% còn

lại để thực hiện kiểm thử. Để giảm thiểu khả năng xảy ra hiện tượng quá khớp trong quá

trình thử nghiệm, luận án sử dụng đánh giá chéo (cross-validation) k-fold. Đây là kỹ

thuật phân đoạn tập dữ liệu huấn luyện thành k nhóm không giao nhau và có kích thước

bằng nhau, quá trình học của máy có k lần. Trong mỗi lần sẽ huấn luyện bộ phân lớp

Page 125: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

113

trên (k-1) nhóm đầu tiên của dữ liệu huấn luyện, sau đó kiểm thử bộ phân lớp trên nhóm

thứ k. Sau đó, độ chính xác được tính toán và k nhóm dữ liệu sẽ được thay đổi sao cho

mỗi tập con đều sẽ được kiểm thử một lần. Ngay khi k phép tính toán được thực hiện,

mỗi độ chính xác sẽ được đưa ra để tính trung bình để tạo độ chính xác chéo giữa k

nhóm. Tiến trình thực hiện k kiểm thử trên tập dữ liệu đầu vào sẽ giúp phản ánh chính

xác hơn hiệu năng tiềm tàng của dữ liệu trong thực tế, chứ không chỉ đơn là một bộ phân

lớp may mắn lựa chọn đúng các mẫu để huấn luyện. Trong luận án sử dụng giá trị k

bằng 5, tức là trong bộ dữ liệu huấn luyện sẽ được chia làm năm phần, trong đó bốn

phần dùng để huấn luyện và một phần dùng để đánh giá nhằm tìm được các tham số phù

hợp nhất cho mô hình huấn luyện.

Hình 4.7. Minh họa kỹ thuật đánh giá chéo k-fold

Thực nghiệm được xây dựng với ngôn ngữ Python và bộ framework PyTorch

trên hệ điều hành Ubuntu 16.04 sử dụng chip Intel Core i5-8500, 3.0GHz, thẻ đồ họa

NVIDIA GeForce GTX1080Ti và bộ nhớ RAM 32 GB.

4.4.2. M¹ h³nh Ľ§nh gi§

Để đánh giá tính hiệu quả của đặc trưng đồ thị con PSI có gốc trong bài toán phát

hiện mã độc IoT botnet, luận án tiến hành đưa các đặc trưng đồ thị con PSI có gốc vào

mô hình đánh giá, các bước trong mô hình dưới đây tương ứng với bước 3 và bước 4

như hình 4.2 của luận án này.

Page 126: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

114

Hình 4.8. Mô hình đánh giá đặc trưng đồ thị con PSI có gốc trong phát hiện mã độc

IoT botnet

Dữ liệu đầu vào là dữ liệu đồ thị con PSI có gốc, thu được từ quá trình xử lý đồ

thị PSI. Trước khi đưa dữ liệu này vào các bước thực thi thì luận án tiến hành xử lý đồ

thị con PSI có gốc dựa trên kỹ thuật nhúng các từ (word embedding). Như đã biết, kỹ

thuật nhúng các từ có hai cách tiếp cận khác nhau là dựa trên tần số (frequency-based)

xuất hiện của các từ trong văn bản và dựa trên dự đoán (prediction-based) của mô hình

huấn luyện để biểu diễn các từ [11].

- Dựa trên tần suất (frequency-based) hay còn gọi là dựa trên đếm (count-based):

Tính toán tần suất một số từ cùng xuất hiện với các từ hàng xóm của nó trong một kho

văn bản (corpus) và sau đó ánh xạ các số liệu thống kê đã đếm được thành một vector

cho mỗi từ

- Dựa trên dự đoán (prediction-based): cố gắng dự đoán một từ được đưa ra cho

các hàng xóm

Cách tiếp cận “prediction-based” có 2 phương pháp tiếp cận phổ biến: Continuos

Bag of Words (CBOW), Skip-gram đã trình bày chi tiết ở mục 1.2.2 của luận án này.

Để phù hợp với cách tiếp cận của luận án, luận án sử dụng cách xử lý dựa trên tần số

xuất hiện, cụ thể là xét mỗi đồ thị PSI như một văn bản và các đồ thị con PSI có gốc như

một từ trong văn bản đó. Thực hiện đếm sự xuất hiện các từ trong mỗi văn bản, khi đó

tần số xuất hiện của mỗi đồ thị con có gốc được xem như một đặc trưng. Như vậy có thể

thấy vector đại diện của một tập tin thực thi chính là tần số xuất hiện của đồ thị con PSI

có gốc trong đồ thị PSI tương ứng của tập tin thực thi đó. Vector này được xem là một

Page 127: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

115

mẫu đa biến số và dữ liệu này có thể được biểu diễn ở dạng ma trận với hàng (biểu diễn

đồ thị) và cột (biểu diễn đồ thị con có gốc xuất hiện trong tập dữ liệu đồ thị). Luận án

thấy rằng ma trận thu được có các đặc trưng với nhiều khoảng giá trị khác nhau nên cần

chuẩn hóa để đảm bảo kết quả phân loại, quá trình chuẩn hóa theo công thức (4.1), ở đó

tử số là giá trị vector đại diện cho một mẫu trong tập dữ liệu đồ thị con PSI có gốc, còn

mẫu số là độ dài vector đó (ở đây là một số thực) tính bằng khoảng cách Euclid.

𝑥𝑛𝑜𝑟𝑚𝑎𝑙𝑖𝑧𝑒𝑑= 𝑥

∥𝑥∥2 (4.1)

Sau khi chuẩn hóa dữ liệu thấy rằng tập dữ liệu đặc trưng khá lớn vì thế cần lựa

chọn đặc trưng bởi nếu đưa toàn bộ tập dữ liệu vào có thể dẫn đến tăng độ phức tạp của

mô hình và khó diễn giải, tăng độ phức tạp thời gian xử lý hệ thống cũng như kết quả

có thể không đảm bảo chính xác. Luận án tiếp cận kỹ thuật lựa chọn đặc trưng theo

phương pháp Wrapper, tức là đánh giá dựa trên một thuật toán học máy cụ thể để tìm

các đặc trưng tối ưu, thuật toán mà luận án sử dụng là SVM tuyến tính (SVM linear) vì

SVM tuyến tính hiệu quả tốt trong việc xây dựng một đường phân chia các lớp để chọn

các đặc trưng có tầm ảnh hưởng, thứ hai SVM tuyến tính có khả năng tính được độ quan

trọng của đặc trưng và thứ ba là SVM tuyến tính tương đối nhanh.

Với dữ liệu đặc trưng thu được, luận án lựa không sử dụng các thuật toán học

máy phức tạp mà chọn một số thuật toán học máy phổ biến trong bài toán phát hiện mã

độc như SVM, Decision Tree, Random Forest, cùng với nhưng thuật toán học máy đơn

giản, ít được sử dụng như Bagging và kNN, để chứng tỏ tính mạnh mẽ và hiệu quả của

đặc trưng đồ thị con PSI có gốc trong bài toán phát hiện mã độc IoT botnet.

Hình 4.9. Các bộ phân lớp học máy phổ biến trong phát hiện mã độc [99]

Page 128: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

116

4.4.3. Các kΔt qu thχc nghiΜm và th o luͻn

Nhằm đánh giá tính hiệu quả của đặc trưng đồ thị con PSI có gốc trong phát hiện

mã độc IoT botnet, luận án đã thực nghiệm và đưa ra các bảng kết quả 4.2, 4.3 và 4.4.

Trong đó, bảng kết quả 4.2 được thực hiện trên toàn bộ tập dữ liệu, còn hai bảng kết quả

4.3 và 4.4 chỉ thực hiện với các tập tin có kiến trúc ARM và MIPS theo thứ tự.

Bảng 4.2. Kết quả của các bộ phân loại với đặc trưng đề xuất

Classifier TPR

(%)

FPR

Accuracy

(%)

AUC

(%)

F1-score

(%)

DT 97 0.043 96.3 96.4 97

RF 98 0.03 97.2 97.1 98

SVM 98 0.041 97 96.8 98

Bagging 98 0.04 97.3 97.1 98

kNN 97 0.044 96.8 96.7 98

Hình 4.10. Đường cong ROC của Bagging, RF, DT, kNN và SVM trên tập dữ liệu

Page 129: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

117

Bảng 4.3. Kết quả đánh giá phát hiện mã độc với tập dữ liệu kiến trúc ARM

Classifier TPR

(%)

FPR

Accuracy

(%)

AUC

(%)

F1-score

(%)

DT 99 0.019 98.3 98.3 98

RF 99 0.01 98.8 98.8 99

SVM 100 0.01 99.3 99.3 99

Bagging 99 0.01 98.8 98.8 99

kNN 98 0.019 97.8 97.8 98

Hình 4.11. Đường cong ROC của Bagging, RF, DT, kNN và SVM trên tập dữ liệu

kiến trúc ARM

Page 130: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

118

Bảng 4.4. Kết quả đánh giá phát hiện mã độc với tập dữ liệu dựa kiến trúc MIPS

Classifier TPR

(%)

FPR

Accuracy

(%)

AUC

(%)

F1-score

(%)

DT 98 0.007 99 98.7 98

RF 99 0.005 99.3 99.1 98

SVM 100 0.007 99.4 99.6 99

Bagging 96 0.011 98.3 97.6 96

kNN 99 0.004 99.4 99.2 99

Hình 4.12. Kết quả đường cong ROC của Bagging, RF, DT, kNN và SVM trên tập dữ

liệu kiến trúc MIPS

Qua các kết quả trên có thể thấy rằng phương pháp đề xuất có tỷ lệ phát hiện cao

đối với mỗi bộ phân lớp sử dụng bộ cơ sở dữ liệu kết hợp từ các tập tin đa kiến trúc như

trong bảng 4.2. Random Forest đã được chứng minh có kết quả cao hơn so với những

bộ phân lớp khác với TPR đạt 98% và các độ đo khác có kết quả khá khả quan. Hơn

nữa, AUC của các bộ phân lớp được sử dụng trong các thực nghiệm trên cho thấy các

kết quả đều lớn hơn 96%. Giá trị AUC đồng nghĩa với việc hệ thống phát hiện mã độc

Page 131: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

119

IoT botnet đem lại kết quả tốt, ở đó bộ phân lớp Random Forest là tốt nhất như thể hiện

trong hình 4.10, 4.11 và 4.12.

Bên cạnh đó, luận án cũng thực hiện các độ đo với 2 tập dữ liệu chỉ dựa trên kiến

trúc ARM và kiến trúc MIPS, kết quả thể hiện trong bảng 4.3 và 4.4. Bởi vì mỗi tập dữ

liệu chỉ chứa các tập tin kiến trúc ARM hoặc MIPS nên bộ phân lớp SVM có kết quả

cao hơn những bộ phân lớp khác. SVM đạt tỷ lệ dương tính đúng ở mức 100% ở cả hai

tập dữ liệu. Như đã đề cập ở phía trước, độ đo precision là tỷ lệ các thể hiện được định

danh chính xác từ tất cả các dữ liệu. Nói cách khác, độ đo precision cho biết khả năng

một bộ phân lớp trong dự đoán các thể hiện mã độc. Trong khi đó, độ đo F-score được

tính toán từ Precision, do đó, bộ phân lớp RF và SVM đã đạt độ đo F-score lớn hơn

98%, nghĩa là các bộ phân lớp này dự đoán các thể hiện mã độc khả quan.

Kết quả thực nghiệm được hiển thị trong bảng 4.5, có thể thấy rằng thời gian xử

lý khi sử dụng trích chọn đặc trưng và không trích chọn đặc trưng có sự khác biệt lớn.

Khi sử dụng toàn bộ 530,155 đặc trưng thì thời gian xử lý là 9305,2 giây; trong khi đó

với việc lựa chọn đặc trưng thì thời gian xử lý giảm xuống còn 69,18 giây đối với bộ

phân lớp RF. Tuy nhiên, các bộ phân lớp khác cũng cho thấy thời gian xử lý giảm khi

sử dụng lựa chọn đặc trưng. Do đó, thời gian xử lý của các bộ phân lớp tỷ lệ thuận với

kích thước dữ liệu đặc trưng.

Bảng 4.5. So sánh thời gian xử lý

Classifier Processing Time (second)

Processing time with feature selection

DT 1.84

RF 69.18

Bagging 144.64

kNN 12.83

SVM 237.78

Processing time without feature selection

DT 18.49

Page 132: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

120

Classifier Processing Time (second)

RF 9305.21

Bagging 5225.02

kNN 19.60

SVM 1705.33

Bên cạnh đó, luận án cũng so sánh phương pháp đề xuất với phương pháp của

HaddadPajouh và cộng sự [14] khi sử dụng các chuỗi Opcode là đặc trưng. Có 2 lý do

chính để luận án lựa chọn để so sánh là: thứ nhất là, sử dụng hướng tiếp cận đặc trưng

tĩnh với các tập tin thực thi IoT; thứ hai là, đánh giá thực nghiệm sử dụng học máy.

Bảng 4.6. So sánh độ chính xác của các bộ phân lớp học máy truyền thống trong phát

hiện IoT botnet

Classifier Accuracy (%)

Proposed method HaddadPajouh et al. [14]

Random Forest 98.8 92.37

SVM 99.3 82.21

kNN 97.8 94

Decision Tree 97.8 92.36

Phương pháp của Hamed và cộng sự thực nghiệm trên tập dữ liệu gồm các mẫu

là các tập tin thực thi IoT chỉ có kiến trúc ARM. Do đó, luận án sử dụng kết quả thực

nghiệm trên tập dữ liệu ARM, như trình bày ở bảng 4.3. Kết quả cho thấy, phương pháp

đề xuất của luận án vượt trội hơn hẳn. Do đó, đặc trưng đồ thị con PSI có gốc có tính

hiệu quả trong việc phát hiện mã độc IoT botnet khi sử dụng học máy.

Cuối cùng, đánh giá độ phức tạp so với phương pháp sử dụng đặc trưng đồ thị

PSI thấy rằng cách tiếp cận dựa trên đặc trưng đồ thị con PSI có gốc có độ phức tạp thấp

hơn. Trước hết xét độ phức tạp của phương pháp dựa trên đặc trưng đồ thị PSI thấy rằng

quá trình xử lý đồ thị PSI dựa trên graph2vec, mà trong đó chủ yếu là kỹ thuật học sâu

skipgram. Xét mô hình mạng skipgram trong xử lý dữ liệu với kỹ thuật nhúng như hình

4.13. Độ phức tạp của skipgram phụ thuộc vào tích của số epoch, số iteration (là số lan

truyền ngược thực hiện để cập nhật trọng số) và độ phức tạp trong một iteration.

Page 133: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

121

Hình 4.13. Cấu trúc mô hình Skipgram với trường hợp từ trung tâm là “passes” [114]

Xem thuật toán xử lý của graph2vec tại thuật toán 3.3 trong luận án này và quá

trình xử lý chi tiết được luận án kề thừa từ nghiên cứu của Annamalai Narayanan và

cộng sự [40], thấy rằng:

- Trong một iteration: độ phức tạp phụ thuộc vào số phép tính được thực hiện,

quan sát mô hình mạng ở hình 4.13 có thể thấy độ phức tạp phụ thuộc vào bước tính lớp

ẩn và 𝑦𝑝𝑟𝑒𝑑 và cập nhật các trọng số 𝑊𝑖𝑛𝑝𝑢𝑡, 𝑊𝑜𝑢𝑡𝑝𝑢𝑡

+ Tính lớp ẩn và trọng số 𝑊𝑖𝑛𝑝𝑢𝑡 chỉ phụ thuộc vào hàng thứ V của trọng số

𝑊𝑖𝑛𝑝𝑢𝑡 nên độ phức tạp sẽ là 𝑂(𝑁)

+ Tính 𝑦𝑝𝑟𝑒𝑑 phụ thuộc vào phép nhân ma trận 𝑊𝑜𝑢𝑡𝑝𝑢𝑡 𝑇 (có độ phức tạp là 𝑂(𝑁∗

(𝐾+1) vì kỹ thuật negative sampling chỉ cập nhật (𝐾+1) cột của 𝑊𝑜𝑢𝑡𝑝𝑢𝑡 𝑇 ) và tính

softmax (có độ phức tạp là 𝑂(𝑉)). Như vậy, độ phức tạp bằng max(𝑁∗(𝐾+1),𝑉),

tức là 𝑂(𝑁∗(𝐾+1))

+ Cập nhật 𝑊𝑜𝑢𝑡𝑝𝑢𝑡 𝑇 cũng chỉ cập nhật K+1 cột của 𝑊𝑜𝑢𝑡𝑝𝑢𝑡

𝑇 nên độ phức tạp là

𝑂(𝑁∗(𝐾+1))

Suy ra độ phức tạp một interation phụ thuộc max (𝑁,𝑁∗(𝐾+1)), tức là 𝑂(𝑁∗

(𝐾+1))

- Số iteration do graph2vec sử dụng kỹ thuật SGD (Stochastic gradient descent)

nên sẽ phụ thuộc vào số mẫu cần huấn luyến, vì thế S = {graph_id, <sampled_word>)},

Page 134: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

122

trong đó sampled_word được lấy ngẫu nhiên từ một cửa sổ trong đồ thị đó. Trong nghiên

cứu này, luận án có tập từ vựng đồ thị con có gốc khá lớn (khoảng 500.000), vì thế kích

thước |S| có thể đạt tới hàng triệu bậc hoặc thậm chí lớn hơn. Tiến trình này diễn ra nhiều

lần để cập nhật lại trọng số. Mỗi lần chạy sẽ có độ phức tạp là 𝑂(𝑁∗(𝐾+1)∗|𝑆|).

- Số epoch: là giá trị siêu tham số được thiết lập

Như vậy độ phức tạp của phương pháp luận án đề xuất dựa trên đặc trưng đồ thị

PSI là 𝑒∗|𝐺|∗|𝑉|∗max (𝑘𝐷,𝐷∗|𝑆|∗𝑁∗(𝐾+1)), tức là 𝑂(𝑒∗|𝐺|∗|𝑉|∗ 𝐷∗|𝑆|∗

𝑁∗(𝐾+1)

Trong khi đó, xét độ phức tạp sinh đặc trưng đồ thị PSI rooted-subgraph tại thuật

toán 4.1 và 4.2 thì trong trường hợp xấu nhất sẽ phải duyệt hết tất cả các các đỉnh hàng

xóm của một đỉnh trong đồ thị PSI. Cụ thể, tại dòng lệnh thứ 4 của thuật toán 4.1 có thể

thấy độ phức tạp sẽ là 𝑂(𝑘𝐷), trong đó D là bậc của đồ thị con PSI và 𝑘 là số lượng hàng

xóm tối đa của đỉnh gốc trong đồ thị con PSI (bởi đây là một thuật toán vét cạn, sẽ xét

tất cả các đỉnh kề đỉnh gốc cho đến khi đạt được cây có độ sâu D). Bên cạnh đó cần xét

đến độ phức tạp của quá trình xử lý dữ liệu đồ thị con PSI có gốc tại bước vector hóa,

với đầu ra sau khi thực hiện vector hóa là ma trận thưa nên độ phức tạp chỉ phụ thuộc

vào kích thước đầu vào, cụ thể là (|𝐺|∗𝑅), trong đó G là tập đồ thị PSI và R là số lượng

đồ thị con PSI có gốc lớn nhất trong toàn bộ các đồ thị. Như vậy, độ phức tạp của phương

pháp đề xuất đặc trưng đồ thị con PSI có gốc bằng 𝑚𝑎𝑥(|𝐺|∗|𝑉|∗|𝐷|∗𝑘𝐷),|𝐺|∗𝑅),

tức là 𝑂(|𝐺|∗|𝑉|∗|𝐷|∗𝑘𝐷). So sánh với độ phức tạp trên thì thấy rằng độ phức tạp

của phương pháp dựa trên đặc trưng đồ thị con PSI có gốc đơn giản hơn so với phương

pháp dựa trên đặc trưng đồ thị PSI, nhưng vẫn đảm bảo tính hiệu quả cao trong bài toán

phát hiện mã độc IoT botnet.

4.5. Kết luận Chương 4

Luận án đã trình bày một phương pháp mới dựa trên đồ thị con PSI có gốc trong

phát hiện mã độc IoT botnet, phương pháp này trích xuất các đặc trưng mới từ đồ thị

PSI của các tập tin ELF. Những đặc trưng này được áp dụng vào các bộ phân loại trong

học máy như một bộ phát hiện mã độc. Tóm lại, đóng góp chính của luận án trong

chương này là: (1) đề xuất một đặc trưng mới bậc cao có cấu trúc đồ thị con PSI có gốc

trong phát hiện mã độc IoT botnet; (2) sinh ra một số lượng hạn chế các đặc trưng mô

Page 135: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

123

tả các hành vi độc hại của mã độc, yêu cầu ít không gian lưu trữ và giảm thiểu thời gian

xử lý; (3) các kết quả đánh giá đã chứng minh tính hiệu quả của các đặc trưng đồ thị con

PSI có gốc phù hợp với nhiều bộ phân lớp học máy, đều đạt độ chính xác trên 97% và

bộ phân lớp Random Forest đã được chứng minh là có kết quả tốt hơn những bộ phân

lớp khác. Thêm vào đó, khi so sánh với những phương pháp đã có, kết quả thực nghiệm

cũng cho thấy phương pháp đề xuất của luận án hiệu quả hơn.

Tuy nhiên, kỹ thuật sử dụng để trích xuất đồ thị con có gốc PSI có một vài hạn

chế chung của phân tích tĩnh như không thể phân tích các tập tin có cấu trúc phức tạp

hoặc sử dụng các kỹ thuật gây rối phức tạp mà IDA Pro không thể phát hiện, xử lý. Hơn

nữa, các hành vi của mã độc IoT botnet thường bắt đầu sau một điều kiện kích hoạt cụ

thể. Do đó, trong nghiên cứu tương lai, luận án sẽ kết hợp với phương pháp phân tích

động để xác định các điểm kích hoạt hành vi độc hại hoặc xác định các đỉnh trong đồ

thị PSI sẽ là điểm bắt đầu để duyệt đồ thị con PSI có gốc, nhằm tránh phải vét cạn toàn

bộ đồ thị PSI.

Phương pháp đề xuất đã thể hiện được tính khả thi cả về tính lý thuyết và thực

nghiệm. Ý tưởng và kết quả thực nghiệm của phương pháp đề xuất được trình bày, công

bố trên các Tạp chí, Kỷ yếu Hội thảo uy tín trong nước và quốc tế. Cụ thể là:

- "PSI-rooted subgraph: A novel feature for IoT botnet detection using classifier

algorithms", ICT Express Journal, 6(2), pp. 128-138, 2020. (ESCI/SCOPUS-index, Q2)

- "Towards a rooted subgraph classifier for IoT botnet detection", In Proceedings

of the 7th International Conference on Computer and Communications Management,

pp. 247-251. 2019. (SCOPUS index)

Page 136: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

124

KẾT LUẬN VÀ KIẾN NGHỊ

Kỷ nguyên 4.0 hay còn gọi là cuộc cách mạng công nghệ lần thứ 4, có thể được

hiểu như là sự phát triển vượt bậc của một loạt các công nghệ mới giúp làm mờ đi ranh

giới giữa con người và kỹ thuật. Đồng thời cũng ảnh hưởng lớn kinh tế, xã hội, giáo dục

và cả chính trị. Các lĩnh vực chính đang được quan tâm trong cuộc cách mạng 4.0 có thể

kể đến như trí thông minh nhân tạo (AI), công nghệ nano, công nghệ sinh học, dữ liệu

lớn và đặc biệt là Internet vạn vật (IoT) giúp mọi vật có khả năng kết nối và trao đổi dữ

liệu thuận tiện hơn, giúp người dùng có nhiều trải nghiệm trong cuộc sống hơn. Bên

cạnh các thuận lợi đó, vấn đề đảm bảo an toàn, an ninh thông tin cho các thiết bị IoT,

đặc biệt là phát hiện mã độc đang rất cấp thiết trong thời buổi hiện nay. Chính vì thế,

luận án này tập trung tìm hiểu các đặc trưng khác biệt của IoT so với các công nghệ

truyền thống, mã độc IoT botnet so với các mã độc botnet trên các thiết bị điện tử truyền

thống, từ đó có cơ sở trong nghiên cứu chuyên sâu các giải pháp phát hiện mã độc IoT

botnet một cách hiệu quả.

Nội dung của luận án đã tập trung nghiên cứu phương pháp phát hiện mã độc IoT

botnet. Qua quá trình học tập, nghiên cứu thực hiện luận án, các kết quả chính đạt được

như sau:

Đóng góp 1: Thực nghiệm, phân tích và đánh giá các phương pháp phát hiện mã

độc IoT botnet hiện nay với cùng bộ cơ sở dữ liệu lớn các tập tin thực thi trên IoT (gồm

mã độc và lành tính), trong đó bao gồm các mẫu mã độc IoT botnet thực tế, quá trình

thực nghiệm các phương pháp đó thực hiện trên cùng một cấu hình hệ thống. Kết quả

đạt được góp phần đem lại một đánh giá tổng quan về các phương pháp dựa trên phân

tích tĩnh trong phát hiện mã độc IoT hiện nay, từ đó, các nhà nghiên cứu có thể lựa chọn

hướng tiếp cận phù hợp cho bài toán phát hiện mã độc IoT nói chung và IoT botnet nói

riêng.

Đóng góp 2: Luận án đề xuất được một đặc trưng mới, gọi là đồ thị PSI (Printable

String Information) có thể mô phỏng quá trình lây nhiễm của mã độc IoT botnet. Phương

pháp đề xuất có độ phức tạp thấp nhưng vẫn đảm bảo độ chính xác cao trong phát hiện

mã độc IoT botnet.

Page 137: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

125

Đóng góp 3: Luận án đề xuất cải tiến phương pháp phát hiện mã độc IoT botnet

dựa trên đồ thị PSI bằng đặc trưng mới, gọi là đồ thị con có gốc PSI (PSI-rooted

subgraph), có thể đạt hiệu quả cao với các bộ phân lớp học máy đơn giản.

Phương pháp đề xuất của luận án có tính thực tiễn khi có thể triển khai mô hình

ứng dụng như hình (i), trong đó dữ liệu đầu vào là các tập tin thực thi trên các thiết bị

IoT có thể được thu thập thông qua các mạng bẫy IoT (honeypot) hoặc thông qua việc

chặn bắt các luồng mạng từ các thiết bị IoT, sau đó phân tích và trích xuất các tập tin

thực thi từ luồng mạng đó. Sau khi có được các tập tin thực thi trên thiết bị IoT, dữ liệu

sẽ được đưa vào mô hình đề xuất của luận án, từ đó kết quả đầu ra sẽ xác định tập tin

mã độc, tập tin lành tính.

Hình (i). Mô hình ứng dụng thực tế của phương pháp phát hiện IoT botnet sử dụng

đặc trưng đồ thị PSI

Tuy nhiên, theo xu hướng phát triển của công nghệ IoT, mã độc IoT botnet sẽ

được tiếp tục xây dựng và lây lan rộng rãi trong thời gian tới. Hiện nay, các nhà nghiên

cứu trong nước cũng như thế giới rất quan tâm nghiên cứu vấn đề bảo mật cho thiết bị

Page 138: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

126

IoT, đặc biệt phát hiện mã độc IoT. Mặc dù đã đạt được một số kết quả quan trọng, góp

phần vào lý luận khoa học và có ý nghĩa thực tiễn trong phát hiện mã độc IoT botnet

nhưng luận án vẫn còn một số vấn đề cần tiếp tục nghiên cứu, cải tiến sau đây:

1. Phương pháp đề xuất của luận án hiện đang thử nghiệm với mã độc IoT botnet,

trong khi đó còn những loại mã độc IoT khác như Trojan, Worm, Ransomware. Trong

tương lai, cần tiếp tục thử nghiệm phương pháp đề xuất của luận án với nhiều loại mã

độc IoT khác.

2. Quá trình trích xuất các đặc trưng động là phức tạp và tốn kém thời gian nhưng

có khả năng giải quyết hạn chế của phân tích tĩnh. Do đó, nghiên cứu tương lai của luận

án đó là kết hợp giữa phân tích tĩnh và phân tích động cải tiến khai phá đặc trưng đồ thị

PSI trong phát hiện mã độc IoT.

3. Quá trình duyệt đồ thị con PSI có gốc vẫn còn phức tạp, nghiên cứu tương lai

có thể tiếp cận hướng khai phá thuật toán học tăng cường (Reinforcement Learning) để

tăng khả năng xác định các hành vi độc hại của mã độc IoT botnet, từ đó việc duyệt đồ

thị con PSI có gốc sẽ có độ phức tạp thấp. Hướng tiếp cận này đã được NCS nghiên cứu,

thực nghiệm và công bố kết quả tại công trình [B9].

4. Luận án đã sử dụng một tập dữ liệu với số lượng mẫu phù hợp để tiến hành

thực nghiệm, đánh giá, nhưng các thực nghiệm tương lai có thể thực hiện với tập dữ liệu

lớn hơn. Kết quả với tập dữ liệu lớn hơn sẽ tăng độ tin cậy của phương pháp đề xuất của

luận án.

5. Kết hợp với những đặc trưng phi cấu trúc đồ thị: một cách chính thống, các

đặc trưng có cấu trúc đồ thị mà dựa trên việc đánh giá sự tương đồng đồ thị thì khó có

thể kết hợp với những đặc trưng phi cấu trúc đồ thị [64]. Tuy nhiên, luận án tiếp cận

theo hướng sử dụng các đặc trưng vector được chuyển đổi từ đặc trưng đồ thị PSI nên

có thể dễ dàng kết hợp với các đặc trưng vector khác (ví dụ như nối chuỗi vector) trong

nghiên cứu tương lai.

Page 139: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

127

DANH MỤC CÔNG TRÌNH CỦA TÁC GIẢ

Tất cả các nội dung, kết quả nghiên cứu trình bày trong luận án này đều đã được

công bố trên các tạp chí, hội thảo uy tín ngành công nghệ thông tin trong nước và quốc

tế. Cụ thể như sau:

Bài báo đăng trên Tạp chí khoa học

[B1]. Huy-Trung Nguyen, Quoc-Dung Ngo, and Van-Hoang Le. "A novel

graph-based approach for IoT botnet detection." International Journal of

Information Security, Vol. 19, pp. 567–577, 2020.

(SCIE index, Q2), ISSN: 1615-5262 (Print) 1615-5270 (Online)

DOI: 10.1007/s10207-019-00475-6

[B2]. Huy-Trung Nguyen, Quoc-Dung Ngo, Doan-Hieu Nguyen, and Van-

Hoang Le. "PSI-rooted subgraph: A novel feature for IoT botnet detection using

classifier algorithms.", ICT Express Journal, 6(2), pp. 128-138, 2020.

(ESCI/SCOPUS index, Q1), ISSN: 2405-9595

DOI: 10.1016/j.icte.2019.12.001

[B3]. Quoc-Dung Ngo, Huy-Trung Nguyen, Van-Hoang Le, Doan-Hieu

Nguyen, “A survey of IoT malware and detection methods based on static

features”, ICT Express Journal, In press, 2020.

(ESCI/SCOPUS index, Q1), ISSN: 2405-9595

DOI: 10.1016/j.icte.2020.04.005

Bài báo đăng trên Kỷ yếu Hội thảo

[B4]. Nguyễn Huy Trung, Ngô Quốc Dũng, Nguyễn Anh Quỳnh, Trần Nghi

Phú, Nguyễn Ngọc Toàn, Nguyễn Mạnh Sơn. “Phát triển phương pháp lai trong

phát hiện mã độc Botnet trên thiết bị định tuyến”, Hội thảo quốc gia lần thứ XX:

Một số vấn đề chọn lọc của Công nghệ thông tin và truyền thông, Quy Nhơn,

23-24/11/2017.

[B5]. Sử Ngọc Anh, Lê Hải Việt, Nguyễn Huy Trung, Ngô Quốc Dũng, “Xây

dựng mô hình thu thập phát hiện tấn công mạng sử dụng thiết bị IoT”, Hội thảo

Page 140: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

128

quốc gia lần thứ II: Một số vấn đề chọn lọc về an toàn an ninh thông tin, Thành

phố Hồ Chí Minh, 2017.

[B6]. Sử Ngọc Anh, Nguyễn Huy Trung, Nguyễn Anh Quỳnh, Phạm Văn

Huấn. “Phát hiện mã độc IoT botnet”, Hội thảo quốc gia lần thứ III: Một số vấn

đề chọn lọc về an toàn an ninh thông tin, Đà Nẵng, 12/2018. (Kỷ yếu Hội thảo

được xuất bản trên Tạp chí Thông tin và Truyền thông, ISSN 1859-3550, trang

89-94, 2018)

[B7]. Huy-Trung Nguyen, Quoc-Dung Ngo, and Van-Hoang Le. "IoT Botnet

Detection Approach Based on PSI graph and DGCNN classifier." In IEEE

International Conference on Information Communication and Signal Processing

(ICICSP), pp. 118-122, 2018. (SCOPUS Index) DOI:

10.1109/ICICSP.2018.8549713

[B8]. Huy-Trung Nguyen, Doan-Hieu Nguyen, Quoc-Dung Ngo, Vu-Hai

Tran, and Van-Hoang Le. "Towards a rooted subgraph classifier for IoT botnet

detection." In Proceedings of the 7th International Conference on Computer and

Communications Management, pp. 247-251. 2019. (SCOPUS index) DOI:

10.1145/3348445.3348474

[B9]. Quoc-Dung Ngo, Huy-Trung Nguyen, Hoang-Long Pham, Hoang Hanh-

Nhan Ngo, Doan-Hieu Nguyen, Cong-Minh Dinh, Xuan-Hanh Vu “A graph-

based approach for IoT botnet detection using Reinforcement Learning”, In:

12th International Conference on Computational Collective Intelligence

(ICCCI), DaNang, Vietnam. Lecture Notes in Artificial Intelligence, Springer

Cham, pp. 1-14, 2020. [Accepted]

Page 141: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

129

TÀI LIỆU THAM KHẢO

Tiếng Việt

1. Luangoudon Sonexay, Nguyễn Gia Tuyến, Nguyễn Tấn Khôi, Nguyễn Linh

Giang (2018). Nghiên cứu ảnh hưởng và đánh giá giải pháp phát hiện và ngăn

chặn tấn công trong mạng LLN. Tạp chí Thông tin và Truyền thông, Hội thảo lần

thứ III, Một số vấn đề chọn lọc về an toàn an ninh thông tin, Đà Nẵng, Việt Nam.

Tr. 1–5.

2. Nguyễn Văn Tánh, Trần Quang Đức, Nguyễn Linh Giang, Luangoudom Sonxay

(2017). Xây dựng hệ thống an ninh mạng Internet of Thing với giải pháp phát hiện

và hạn chế tấn công DoS trên giao thức RPL dựa vào cơ chế OVerhearing. NXB

Khoa học tự nhiên và Công nghệ, Kỷ yếu Hội nghị Quốc gia lần thứ X về Nghiên

cứu cơ bản và ứng dụng Công nghệ thông tin (FAIR), Đà Nẵng, Việt Nam. Tr.

291–9. URL: DOI: https://dx.doi.org/10.15625/vap.2017.00037 .

Tiếng Anh

3. Abou Daya Abbas, et al. (2019). A graph-based machine learning approach for

bot detection. IEEE, IFIP/IEEE International Symposium on Integrated Network

Management Tr. 144–52.

4. Alhanahnah Mohannad, et al. (2018). Efficient signature generation for

classifying cross-architecture IoT malware. IEEE, In 2018 IEEE Conference on

Communications and Network Security (CNS) Tr. 1–9.

5. Antonakakis Manos, et al. (2017). Understanding the Mirai Botnet. USENIX,

Proceedings of the 26th Conference on Security Symposium Tr. 1093–110.

6. Author links open overlay panelMardiana bintiMohamad Noor, Wan

HaslinaHassan (2019). Current research on Internet of Things (IoT) security: A

survey. Comput Netw. Số 148., Tr.283–94

7. Azmoodeh Amin, et al (2018). Detecting crypto-ransomware in IoT networks

based on energy consumption footprint. J Ambient Intell Humaniz Comput. Số

9.(4), Tr.1141–52

8. Burhan, M.; Rehman, R.A.; Khan, B.; Kim, B.-S. (2018). IoT elements, layered

architectures and security issues: A comprehensive survey. Sensors. Số 18.(9),

Tr.2796

9. Chowdhury Sudipta, et al. (2017). Botnet detection using graph‑based feature

clustering. J Big Data. Số 4.(1), Tr.1–14

10. Costin, A., Zaddach, J., Francillon, A. and Balzarotti, D. (2014). A large-scale

analysis of the security of embedded firmwares. USENIX, Proceedings of the 23rd

USENIX Conference on Security Symposium Tr. 95–110.

Page 142: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

130

11. Daniel Gibert (2016). Convolutional Neural Networks for Malware

Classification, Thesis of Master. Universitat de Barcelona

12. De Donno M., Dragoni, N., Giaretta, A., & Spognardi, A (2017). Analysis of

DDoS-capable IoT malwares. IEEE, Proceedings of the 2017 Federated

Conference on Computer Science and Information Systems, Tr. 807–16.

13. Gubbi Jayavardhana, et al. (2013). Internet of Things (IoT): A vision, architectural

elements, and future directions. Future generation computer systems. Số 29.(7),

Tr.1645–60

14. HaddadPajouh Hamed, et al. (2018). A Deep Recurrent Neural Network Based

Approach for Internet of Things Malware Threat Hunting. Future Gener Comput

Syst. Số 85., Tr.88–96

15. Kaspersky Lab. IoT under fire: Kaspersky detects more than 100 million attacks

on smart devices in H1 2019. URL: [Online]. Available:

https://www.kaspersky.com/about/press-releases/2019_iot-under-fire-kaspersky-

detects-more-than-100-million-attacks-on-smart-devices-in-h1-2019. Visited on:

15/4/2019 .

16. Khan, Rafiullah, Sarmad Ullah Khan, Rifaqat Zaheer, and Shahid Kha (2012).

Future Internet: The Internet of Things Architecture, Possible Applications and

Key Challenges. IEEE, In 2012 10th international conference on frontiers of

information technology Tr. 257–60.

17. Kumar Ajit (2017). A framework for malware detection with static features using

machine learning algorithms, Doctoral dissertation. Department of Computer

Science, Pondicherry University, India.

18. Mark Hung (2017). Leading the IoT: Gartner Insights on How to Lead in a

Connected World. Gartner URL:

https://www.gartner.com/imagesrv/books/iot/iotEbook_digital.pdf .

19. McDermott, Christopher D., Farzan Majdani, and Andrei V. Petrovski (2018).

Botnet detection in the internet of things using deep learning approaches. IEEE,

In 2018 International Joint Conference on Neural Networks (IJCNN) Tr. 1–8.

20. Mikolov Tomas, Kai Chen, Greg Corrado, and Jeffrey Dean (2013). Efficient

estimation of word representations in vector space. Proceedings of the

International Conference on Learning Representations (ICLR 2013) URL:

https://arxiv.org/abs/1301.3781 .

21. Narudin, F. A., Feizollah, A., Anuar, N. B., & Gani, A (2016). Evaluation of

machine learning classifiers for mobile malware detection. Soft Comput. Số

20.(1), Tr.343–57

22. Pa Yin Minn Pa, Shogo Suzuki, Katsunari Yoshioka, Tsutomu Matsumoto,

Takahiro Kasama, and Christian Rossow. (2016). IoTPOT: A novel honeypot for

revealing current IoT threats. J Inf Process. Số 24.(3), Tr.522–33

Page 143: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

131

23. R. Isawa, T. Ban, S. Guo, D. Inoue, and K. Nakao (2014). An accurate packer

identification method using support vector machine. IEICE Trans Fundam

Electron Commun Comput Sci. Số 97.(1), Tr.253–63

24. Shoshitaishvili Yan, et al. (2015). Firmalice - Automatic Detection of

Authentication Bypass Vulnerabilities in Binary Firmware. Internet Society,

NDSS Symposium Tr. 1–15. URL: http://dx.doi.org/10.14722/ndss.2015.23294 .

25. Su Jiawei, et al. (2018). Lightweight Classification of IoT Malware based on

Image Recognition. IEEE, In 42nd annual computer software and applications

conference (COMPSAC) Tr. 664–9.

26. Yu Bo, et al. (2018). A survey of malware behavior description and analysis. Front

Inf Technol Electron Eng. Số 19.(5), Tr.583–603

27. Zhao David, et al. (2013). Botnet detection based on traffic behavior analysis and

flow intervals. Comput Secur. Số 39., Tr.2–16

28. Internet of Things - number of connected devices worldwide 2015-2025. URL:

[Online]. Available: https://www.statista.com/statistics/471264/iot-number-of-

connected-devices-worldwide/. Visited on: 14/8/2019 .

29. OWASP Board Votes. URL: [Online]. Available:

https://owasp.org/index.php/OWASP_Board_Votes. Visited on: 7/10/2017 .

30. A L Johnson, Symantec Security Response (2016). IoT devices being increasingly

used for DDoS attacks. URL: [Online]. Available:

https://www.symantec.com/connect/blogs/iot-devices-being-increasingly-used-

ddos-attacks. Visited on: 17/9/2017 .

31. Akshay. Report - Linux based Operating Systems for IoT takes lead with a massive

80% market share. URL: [Online]. Available:

https://iotgadgets.com/2017/07/report-linux-based-operating-systems-iot-takes-

lead-massive-80-market-share/. Visited on: 7/10/2017 .

32. Alasmary, Hisham, et al. (2019). Analyzing and Detecting Emerging Internet of

Things Malware: A Graph-based Approach. IEEE Internet Things J. Số 6.(5),

Tr.8977–88

33. Alasmary, Hisham, et al (2018). Graph-Based Comparison of IoT and Android

Malware. Springer, Cham, In International Conference on Computational Social

Networks. Lecture Notes in Computer Science Tr. 259–72.

34. Albawi Saad, Tareq Abed Mohammed, and Saad Al-Zawi (2017). Understanding

of a convolutional neural network. IEEE, In 2017 International Conference on

Engineering and Technology (ICET) Tr. 1–6.

35. Allix Kevin, et al. (2014). A Forensic Analysis of Android Malware--How is

Malware Written and How it Could Be Detected? IEEE, In 2014 IEEE 38th

Annual Computer Software and Applications Conference Tr. 384–93.

Page 144: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

132

36. Amin Azmoodeh, et al. (2019). Robust Malware Detection for Internet Of

(Battlefield) Things Devices Using Deep Eigenspace Learning. IEEE Trans

Sustain Comput. Số 4.(1), Tr.88–95

37. Andrei Costin (2016). Large Scale Security Analysis of Embedded Devices’

Firmware, Thesis of Doctor. Paris Institute of Technology, France

38. Angrishi Kishore (2017). Turning internet of things (iot) into internet of

vulnerabilities (iov): Iot botnets. arXiv preprint arXiv:1702.03681

39. Annamalai Narayanan, et al. (2017). Graph2vec: Learning distributed

representations of graphs. ACM, Proceedings of the 13th International Workshop

on Mining and Learning with Graphs (MLG) Tr. 1–8. URL:

http://www.mlgworkshop.org/2017/paper/MLG2017_paper_21.pdf .

40. Annamalai Narayanan, Mahinthan Chandramohan, Rajasekar Venkatesan, Lihui,

Chen, Yang Liu and Shantanu Jaiswa (2017). graph2vec: Learning Distributed

Representations of Graphs. in KDD Workshop on Mining and Learning with

Graphs URL: https://arxiv.org/pdf/1707.05005.pdf .

41. Bai Jinrong, Qibin Shi, and Shiguang Mu. (2019). A Malware and Variant

Detection Method Using Function Call Graph Isomorphism.". Secur Commun

Netw. , Tr.1–13

42. Bai Jinrong, Yanrong Yang, Shiguang Mu, and Yu Ma (2013). Malware detection

through mining symbol table of Linux executables. Inf Technol J. Số 12.(2),

Tr.380–384

43. Baidu Research (2017). DeepBench. URL: [Online]. Available:

https://github.com/baidu-research/DeepBench.Visited on: 10/7/2018 .

44. Celeda, P., Krejci, R., & Krmicek, V. (2012). Revealing and analysing modem

malware. IEEE, In 2012 IEEE International Conference on Communications

(ICC) Tr. 971–5.

45. Celeda, P., Krejcí, R., Vykopal, J., & Drasar, M. (2010). Embedded malware-an

analysis of the Chuck Norris botnet. IEEE, In 2010 European Conference on

Computer Network Defense Tr. 3–10.

46. Cesare, Silvio, Yang Xiang, and Wanlei Zhou (2013). Control flow-based

malware variantdetection. IEEE Trans Dependable Secure Comput. Số 11.(4),

Tr.307–17

47. Chris Eagle (2011). The IDA Pro Book: The Unofficial Guide to the World’s Most

Popular Disassembler. 2nd ed. William Pollock, Canada.

48. Cisco Talos (2018). New VPNFilter malware targets at least 500k net- working

devices worldwide. URL: [Online]. Available:

https://blog.talosintelligence.com/2018/05/VPNFilter.html/. Visited on:

18/6/2018 .

Page 145: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

133

49. Costin, Andrei, and Jonas Zaddach (2018). IoT malware: Comprehensive survey,

analysis framework and case studies. BlackHat USA

50. Cozzi Emanuele, et al. (2018). Understanding Linux Malware. IEEE, IEEE

Symposium on Security and Privacy (SP) Tr. 161–75.

51. D. Kiran el al. (2017). An Improved CBIR System Using Low-Level Image

Features Extraction and Representation. International Journal of Applied

Engineering Research. Số 12.(19), Tr.9032–7

52. Darabian Hamid, et al. (2019). An opcode-based technique for polymorphic

Internet of Things malware detection. Concurrency and Computation: Practice

and Experience. Số 32.(6), Tr.1–14

53. Darki, A., Faloutsos, M., Abu-Ghazaleh, N., & Sridharan, M (2019). IDAPro for

IoT malware analysis? In 12th {USENIX} Workshop on Cyber Security

Experimentation and Test ({CSET} 19). Tr. 1–9.

54. Darki, Ahmad, et al (2018). RARE: A systematic augmented router emulation for

malware analysis. Springer, Cham, In International Conference on Passive and

Active Network Measurement. Lecture Notes in Computer Science Tr. 60–72.

55. De Donno Michele, et al (2018). DDoS-capable IoT malwares: Comparative

analysis and Mirai investigation. Secur Commun Netw Hindawi. , Tr.1–30

56. De Paola Alessandra, et al. (2018). Malware Detection through Low-level

Features and Stacked Denoising Autoencoders. Italian Conference on Cyber

Security (ITASEC) URL: http://ceur-ws.org/Vol-2058/paper-07.pdf .

57. Dovom Ensieh Modiri, et al. (2019). Fuzzy pattern tree for edge malware

detection and categorization in IoT. J Syst Archit. Số 97.

58. E. Bertino and N. Islam (2017). Botnets and internet of things security. IEEE

Comput. Số 50.(2), Tr.76–79

59. Ed Skoudis, Lenny Zeltser (2004). Malware: fighting malicious code. Prentice

Hall

60. Fan, Ming, et al (2018). Android malware familial classification and

representative sample selection via frequent subgraph analysis. IEEE Trans Inf

Forensics Secur. Số 13.(8), Tr.1890–905

61. Felt Adrienne Porter, et al. (2011). A survey of mobile malware in the wild. ACM,

In Proceedings of the 1st ACM workshop on Security and privacy in smartphones

and mobile devices Tr. 3–14.

62. G Rothermel (2005). Representation and analysis of software. Angew Chem

Wiley. Số 46.(31), Tr.5896–900

Page 146: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

134

63. Hallman, R., Bryan, J., Palavicini, G., Divita, J., & Romero-Mariona, J (2017).

IoDDoS-the internet of distributed denial of sevice attacks. In Proceedings of the

2nd International Conference on Internet of Things, Big Data and Security

(IoTBDS) Tr. 47–58.

64. Hassen, Mehadi, and Philip K. Chan (2017). Scalable function call graph-based

malware classification. In Proceedings of the Seventh ACM on Conference on

Data and Application Security and Privacy Tr. 239–48.

65. Helenius Marko (2002). A system to support the analysis of antivirus products’

virus detection capabilities. Tampere University Press

66. Ho, Hoang Nam, et al. (2013). Detecting recurring deformable objects: an

approximate graph matching method for detecting characters in comics books.

Springer, Berlin, Heidelberg, International Workshop on Graphics Recognition.

Lecture Notes in Computer Science Tr. 122–34.

67. Homayoun Sajad, et al. (2018). BoTShark: A deep learning approach for botnet

traffic detection. Springer, Cham., In Cyber Threat Intelligence. Advances in

Information Security Tr. 137–53.

68. Igor Santos, Felix Brezo, Xabier Ugarte-Pedrero, and Pablo G Bringas (2013).

Opcode sequences as representation of executables for data-mining-based

unknown malware detection. Inf Sci. Số 231., Tr.64–82

69. International Telecommunication Union. Overview of the Internet of things,

Recommendation ITU-T Y.20602013. URL: [Online]. Available:

https://www.itu.int/rec/T-REC-Y.2060-201206-I .

70. Islam Rafiqul, Ronghua Tian, Lynn M. Batten, and Steve Versteeg. (2013).

Classification of malware based on integrated static and dynamic featuresc. J

Netw Comput Appl. Số 36.(2), Tr.646–56

71. J Steven Perry. Anatomy of an IoT malware attack. URL: [Online]. Available:

https://developer.ibm.com/technologies/iot/articles/iot-anatomy-iot-malware-

attack/. Visited on: 31/11/2017 .

72. James King, Ali Ismail Awad (2016). A distributed security mechanism for

resource-constrained IoT devices. Informatica. Số 40.(1), Tr.133–143

73. Kevin Ashton (2009). That “Internet of Things” thing. RFID J. Số 22.(7), Tr.97–

114

74. Khoshhalpour Ehsan, and Hamid Reza Shahriari (2018). BotRevealer: Behavioral

detection of botnets based on botnet life-cycle. ISeCure- ISC Int J Inf Secur. Số

10.(1), Tr.55–61

75. Kim Yoon (2014). Convolutional neural networks for sentence classification.

arXiv preprint arXiv:1408.5882

Page 147: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

135

76. Knud Lasse Lueth (2014). IoT Market – Forecasts at a glance. URL: [Online].

Available: https://iot-analytics.com/iot-market-forecasts-overview/. Visited on:

15/4/2018 .

77. Kolias Constantinos, et al. (2017). DDoS in the IoT: Mirai and other botnets. IEEE

Comput. Số 50.(7), Tr.80–4

78. Kolter J. Zico, and Marcus A. Maloof (2006). Learning to detect and classify

malicious executables in the wild. J Mach Learn Res ACM. Số 7., Tr.2721–44

79. Kotsiantis, S. B., Zaharakis, I., & Pintelas, P (2007). Supervised machine

learning: A review of classification techniques. Emerg Artif Intell Appl Comput

Eng. Số 160.(1), Tr.249–68

80. Krizhevsky, A (2014). One weird trick for parallelizing convolutional neural

networks. arXiv preprint arXiv:1404.5997

81. Kumar Ajit, K. S. Kuppusamy, and G. Aghila (2018). FAMOUS: Forensic

Analysis of MObile devices Using Scoring of application permissions. Future

Gener Comput Syst. Số 83., Tr.158–72

82. Le Quoc, and Tomas Mikolov. " (2014). Distributed representations of sentences

and documents. In Proceedings of the 31 st International Conference on Machine

Learning Tr. 1188–1196.

83. Lin, Zhaowen, Fei Xiao, Yi Sun, Yan Ma, Cong-Cong Xing, and Jun Huang.

(2018). A Secure Encryption-Based Malware Detection System. KSII Trans

Internet Inf Syst. Số 12.(4), Tr.1799–818

84. Liu Liu, Bao-sheng Wang, Bo Yu, and Qiu-xi Zhong (2017). Automatic malware

classification and new malware detection using machine learning. Front Inf

Technol Electron Eng. Số 18.(9), Tr.1336–47

85. Mikhail Kuzin, Yaroslav Shmelev, Vladimir Kuskov (2018). New trends in the

world of IoT threats. URL: [Online]. Available: https://securelist.com/new-

trends-in-the-world-of-iot-threats/87991/. Visited on: 15/2/2019 .

86. Mikolov Tomas, Ilya Sutskever, Kai Chen, Greg S. Corrado, and Jeff Dean

(2013). Distributed representations of words and phrases and their

compositionality. ACM, Proceedings of the 26th International Conference on

Neural Information Processing Systems Tr. 3111–9. URL:

https://dl.acm.org/doi/10.5555/2999792.2999959 .

87. Muhammad Junaid Bohio (2015). Analysis of a MIPS Malware. SANS Institute

URL: [Online]. Available: https://www.sans.org/reading-

room/whitepapers/malicious/analyzing-backdoor-bot-mips-platform-35902.

Visited on: 16/7/2017 .

88. Mwangi Karanja, Shedden Masupe, and Jeffrey Mandu. Internet of things

malware: Survey. Int J Comput Sci Eng Surv IJCSES. Số 8.(3), Tr.2017

Page 148: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

136

89. Narayanan, A., Chandramohan, M., Chen, L., Liu, Y., & Saminathan, S (2016).

Subgraph2vec: Learning distributed representations of rooted sub-graphs from

large graphs. arXiv preprint arXiv:1606.08928

90. Pascanu Razvan, et al. (2015). Malware classification with recurrent networks.

IEEE, In 2015 IEEE International Conference on Acoustics, Speech and Signal

Processing (ICASSP) Tr. 1916–20.

91. Prokofiev, A. O., Smirnova, Y. S., & Surov, V. A (2018). A method to detect

Internet of Things botnets. IEEE, In 2018 IEEE Conference of Russian Young

Researchers in Electrical and Electronic Engineering (EIConRus) Tr. 105–8.

92. Rawat Waseem, and Zenghui Wang (2017). Deep convolutional neural networks

for image classification: A comprehensive review. Neural Comput. Số 29.(9),

Tr.2352–449

93. Sathya R., and Annamma Abraham (2013). Comparison of supervised and

unsupervised learning algorithms for pattern classification. Int J Adv Res Artif

Intell. Số 2.(2), Tr.34–8

94. Sebastián M., Rivera, R., Kotzias, P., & Caballero, J. (2016). Avclass: A tool for

massive malware labeling. Springer, Cham, In International Symposium on

Research in Attacks, Intrusions, and Defenses. Lecture Notes in Computer

Science Tr. 230–53.

95. Shafiq M. Zubair, Syed Ali Khayam, and Muddassar Farooq (2008). Embedded

malware detection using markov n-grams. Springer, Berlin, Heidelberg,

International conference on detection of intrusions and malware, and vulnerability

assessment. Lecture Notes in Computer Science Tr. 88–107.

96. Shahzad Farrukh, and Muddassar Farooq (2012). Elf-miner: Using structural

knowledge and data mining methods to detect new (linux) malicious executables.

Knowl Inf Syst. Số 30.(3), Tr.589–612

97. Shang Shanhu, et al. (2010). Detecting malware variants via function-call graph

similarity. IEEE, In 5th International Conference on Malicious and Unwanted

Software Tr. 113–20.

98. Sherwood Timothy, Erez Perelman, Greg Hamerly, and Brad Calder (2002).

Automatically characterizing large scale program behavior. ACM SIGPLAN

Not. Số 37.(10), Tr.45–57

99. Souri Alireza, and Rahil Hosseini (2018). A state‑of‑the‑art survey of malware

detection approaches using data mining techniques. Souri Alireza Rahil Hosseini.

Số 8.(3), Tr.1–22

100. Srivastava, N., Hinton, G., Krizhevsky, A., Sutskever, I., & Salakhutdinov, R

(2014). Dropout: a simple way to prevent neural networks from overfitting. J

Mach Learn Res. Số 15.(1), Tr.1929–58

Page 149: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

137

101. Symantec Official Blog (2015). Linux.Wifatch. URL: [Online]. Available:

https://www.symantec.com/security_response/writeup.jsp?docid=2015-011216-

2314-99&tabid=2. Visited on: 19/9/2017 .

102. Symantec Security Response Security Response Team. Vpnfilter: New router

malware with destructive capabilities. URL: [Online]. Available:

https://www.symantec.com/blogs/threat-intelligence/vpnfilteriot-malware, 2018.

Visited on: 18/8/2018 .

103. W. Zhou, Y. Jia, A. Peng, Y. Zhang, and P. Liu (2018). The effect of iot new

features on security and privacy: New threats, existing solutions, and challenges

yet to be solved. IEEE Internet Things J. Số 6.(2), Tr.1606–16

104. Wang, Aohui, Ruigang Liang, Xiaokang Liu, Yingjun Zhang, Kai Chen, and Jin

Li. (2017). An Inside Look at IoT Malware. Springer, Cham, In International

Conference on Industrial IoT Technologies and Applications. Lecture Notes of the

Institute for Computer Sciences, Social Informatics and Telecommunications

Engineering, Tr. 176–86.

105. Wang Junfeng, Bai Jinrong (2018). Function call graph fingerprint based

malicious software detection method. CN105046152A, 2018. URL:

https://patents.google.com/patent/CN105046152B/en .

106. Wu Chun-Jung, Ying Tie, Satoshi Hara, Kazuki Tamiya, Akira Fujita, Katsunari

Yoshioka, and Tsutomu Matsumoto (2018). IoTProtect: Highly Deployable

Whitelist-based Protection for Low-cost Internet-of-Things Devices. J Inf Process.

Số 26., Tr.662–72

107. Xin Yang, et al. (2018). Machine learning and deep learning methods for

cybersecurity. IEEE Access. Số 6., Tr.35365–81

108. Xu Ming, Lingfei Wu, Shuhui Qi, Jian Xu, Haiping Zhang, Yizhi Ren, and Ning

Zheng (2013). A similarity metric method of obfuscated malware using function-

call graph. J Comput Virol Hacking Tech. Số 9.(1), Tr.35–47

109. Yashaswini J (2017). A Review on IoT Security Issues and Countermeasures.

Orient J Comp Sci Technol. Số 10.(2), Tr.454–9

110. Ye Yanfang, et al., (2017). A survey on malware detection using data mining

techniques. ACM Comput Surv CSUR. Số 50.(3), Tr.1–40

111. Zaddach Jonas, et al (2014). AVATAR: A Framework to Support Dynamic Security

Analysis of Embedded Systems. Internet Society, Proceedings of the Network and

Distributed System Security Symposium, Tr. 1–16.

112. Ziv Chang (2019). IoT Device Security Locking Out Risks and Threats to Smart

Homes. Trend Micro Research URL: [Online]. Available:

https://documents.trendmicro.com/assets/white_papers/IoT-Device-Security.pdf

Page 150: ỨU ĐỀ ẤT ĐẶC TRƯNG ĐỒ Ị ỆN MÃ ĐỘ Ế Ị

138

113. Домът на Виерко (2013). lightaidra 0x2012 (aidra). URL: [Online]. Available:

https://vierko.org/tech/lightaidra-0x2012/. Visited on: 19/9/2017 .

114. (2019). Demystifying Neural Network in Skip-Gram Language Modeling. URL:

[Online]. Available:

https://aegis4048.github.io/demystifying_neural_network_in_skip_gram_langua

ge_modeling’. Visited on: 20/5/2019 .

115. Detect-It-Easy. URL: [Online]. Available: https://github.com/horsicq/Detect-It-

Easy. Visited on: 15/9/2017 .

116. Firmware Analysis Tool. URL: [Online]. Available::

https://github.com/ReFirmLabs/binwalk. Visited on: 17/9/2018 .

117. IDA pro. URL: [Online]. Available:: https://www.hex-rays.com. Visited on:

14/8/2017 .

118. IoT devices examples, definitions and e-shop for good price!,. URL: [Online].

Available: https://iotbuzzer.com/iot-devices-definition-and-examples/. Visited

on: 20/2/2020 .

119. OpenWrt. URL: [Online]. Available: https://openwrt.org. Visited on: 18/9/2018 .

120. Radware. Brickerbot results in PDOS attack. URL: [Online]. Available:

https://security.radware.com/ddos-threatsattacks/brickerbot-pdos-permanent-

denial-of-service/. Visited on: 18/5/2018 .

121. UPX - the Ultimate Packer for eXecutables. URL: [Online]. Available:

https://github.com/upx. Visited on: 15/9/2017 .

122. VirusShare, Because Sharing is Caring. URL: [Online]. Available:

https://virusshare.com. Visited on: 10/1/2019 .

123. VirusTotal. URL: [Online]. Available: https://www.virustotal.com. Visited on:

19/9/2018 .