Tải bản đầy đủ (.pdf) (30 trang)

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 tt

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.91 MB, 30 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO

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Ệ

NGUYỄN

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

Hệ thống thông tin
số: 9

TÓM TẮT LUẬN ÁN TIẾN SĨ

Hà Nội


Công trình đượ


Người hướ
Người hướ



























ệ ệ



ốc Dũng








đượ ả


ệ ệ


Thư việ
Thư v ệ



ọ ệ


ệ trướ


ội đồ
ồ …….






………………… ấ







…..
….. năm




MỤC LỤC
MỞ ĐẦU .................................................................................................................................................... 1
1. Tính cấp thiết của luận án.................................................................................................................. 1
2. Mục tiêu nghiên cứu của luận án ....................................................................................................... 1
3. Đối tượng và phạm vi nghiên cứu ..................................................................................................... 1
4. Nội dung và phương pháp nghiên cứu .............................................................................................. 1
5. Bố cục luận án ................................................................................................................................... 2
CHƯƠNG 1. CƠ SỞ LÝ THUYẾT........................................................................................................... 2
1.1. Khái niệm và đặc điểm thiết bị IoT ................................................................................................ 2
1.2. Khái niệm mã độc IoT botnet ......................................................................................................... 3
1.3. Sự tiến hóa của mã độc IoT botnet ................................................................................................. 3
1.4. Sự khác biệt giữa mã độc botnet truyền thống và IoT botnet......................................................... 4
CHƯƠNG 2. PHƯƠNG PHÁP PHÁT HIỆN MÃ ĐỘC IOT BOTNET .................................................. 5
2.1. So sánh phân tích tĩnh và phân tích động ....................................................................................... 5
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 ... 5
2.2.1. Xây dựng bộ cơ sở dữ liệu thử nghiệm .................................................................................. 7
2.2.2. Kết quả thực nghiệm và nhận xét ........................................................................................... 8
CHƯƠNG 3. ĐẶC TRƯNG ĐỒ THỊ PSI TRONG PHÁT HIỆN MÃ ĐỘC IOT BOTNET ................... 9
3.1. Phát biểu bài toán ........................................................................................................................... 9
3.2. Giải thích bài toán .......................................................................................................................... 9

3.3. Sơ đồ và ý tưởng phương pháp đề xuất .......................................................................................... 9
3.4. Đồ thị lời gọi hàm trong phát hiện mã độc IoT botnet ................................................................. 10
3.5. Xây dựng đồ thị PSI ..................................................................................................................... 11
3.6. Đánh giá thực nghiệm .................................................................................................................. 13
3.6.1. Môi trường thực nghiệm ....................................................................................................... 13
3.6.2. Mô hình đánh giá .................................................................................................................. 13
3.6.3. Các kết quả thực nghiệm và thảo luận .................................................................................. 15
CHƯƠNG 4. ĐẶC TRƯNG ĐỒ THỊ CON PSI CÓ GỐC TRONG PHÁT HIỆN MÃ ĐỘC IOT
BOTNET .................................................................................................................................................. 16
4.1. Phát biểu bài toán ......................................................................................................................... 16
4.2. Xây dựng đặc trưng đồ thị PSI-rooted subgraph .......................................................................... 17

25


4.3. Thực nghiệm và đánh giá kết quả................................................................................................. 18
4.3.1. Môi trường thực nghiệm ....................................................................................................... 18
4.3.2. Mô hình đánh giá .................................................................................................................. 19
4.3.2. Các kết quả thực nghiệm và thảo luận .................................................................................. 19
KẾT LUẬN VÀ KIẾN NGHỊ .................................................................................................................. 23

26


MỞ ĐẦU
1. Tính cấp thiết của luận án
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, tới lợi ích hợp pháp của người dân. Khảo sát, thống kê các nghiên 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ư Elsivier, IEEE, Hindawi and Springer
[6] cho thấy xác thực vẫn là giải pháp phổ biến trong đảm bảo an ninh, an toàn thiết bị IoT và quản lý tin cậy
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 IoT. Trong khi đó, một trong những nguy
cơ đe dọa nguy hiểm nhất đối với các thiết bị IoT là mã độc botnet. Chính vì lý do đó, luận án với đề tài
“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” nhằm nghiên
cứu các giải pháp phát hiện mã độc IoT botnet hiện nay 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.
2. Mục tiêu nghiên cứu của luận án
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: đối tượng nghiên cứu 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.
- Phạm vi nghiên cứu của đề tài: luận án tập trung vào bài toán phát hiện mã độc có thể xem như bài
toán phân loại hai lớp (nhị phân) với phạm vi nghiên cứu sau: chỉ tập trung nghiên cứu, phát hiện mã độc IoT
botnet; tập trung vào các thiết bị IoT ràng buộc (resource-constrained IoT) về tài nguyên (hay còn gọi là các
thiết bị IoT cỡ nhỏ/thiết bị IoT SOHO (Small Office/Home Office) 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ế…; chỉ tập trung vào 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:
- 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

1


- Đá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
*) Phương pháp nghiên cứu
Phương pháp nghiên cứu lý thuyết kết hợp với nghiên cứu thử nghiệm.
- 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 tại các kho dữ liệu trực tuyến như: Google Scholar, ScienceDirect, ACM
Digital Library, IEEE Xplore, 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 lý thuyết về các đặc trưng hành vi,
vòng đời lây nhiễm của mã độc botnet, nghiên cứu các đoạn mã dịch ngược của các tập mẫu thực thi trên thiết
bị IoT.
- 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 và chia thành tập huấn luyện và kiểm thử theo tỷ lệ 70:30, sử dụng kỹ thuật crossvalidation, 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. Bố cục luận án
Luận án gồm phần mở đầu, bốn chương, phần kết luận và kiến nghị, tài liệu tham khảo với 126 trang
thuyết minh, trong đó có 17 bảng, 59 hình vẽ, đồ thị và 123 tài liệu tham khảo.
Mở đầu: Trình bày tính cấp thiết và cấu trúc của luận án
Chương 1: Cơ sở lý thuyết

Chương 2: Phương pháp phát hiện mã độc IoT botnet
Chương 3: Đặc trưng đồ thị PSI trong phát hiện mã độc IoT botnet
Chương 4: Đặc trưng đồ thị con PSI có gốc trong phát hiện mã độc IoT botnet
Kết luận và kiến nghị
Tài liệu tham khảo
CHƯƠNG 1. CƠ SỞ LÝ THUYẾT

1.1. Khái niệm và đặc điểm thiết bị IoT
Thuật ngữ 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 - nhà khoa học ở Viện công nghệ Massachusets, Mỹ. Kể từ đó có rất nhiều cách giải thích hay khái
niệm khác nhau về IoT được đưa ra. Tuy nhiên các khái niệm của các cá nhân, 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 cho rằng có thể hiểu đơn giản
“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”. Trong phạm vi nghiên cứu,
luận án định nghĩa “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”. Trong đó, đại đa số các thiết bị IoT chạy trên nền tảng biến

2


thể của hệ điều hành Unix. 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. Đó cũng sẽ là lý do luận án này chỉ tập trung vào các tập tin thực
thi trên Linux, có định dạng phổ biến là ELF (Executable Linkable Format).
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ư:
- 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
- Tính không đồng nhất: các thiết bị IoT sử dụng một cách đa dạng các kiến trúc vi xử lý như: MIPS,
ARM, PowerPC, MIPSEL, ...
- Tài nguyên hạn chế: 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 phụ thuộc vào hoàn cảnh của các
thiết bị gồm vị trí, chức năng và tốc độ di chuyển.
- 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.

1.2. Khái niệm mã độc IoT botnet
Mã độc botnet đượ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 – đó 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. Đ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. Trong luận án này, mã độc IoT
botnet được xem như là mã độc botnet lây nhiễm trên các thiết bị IoT cho rằng có thể hiểu đơn giản như sau
“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”.

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

1.3. Sự tiến hóa của mã độc IoT botnet
Dựa trên phân tích, đánh giá các nghiên cứu đã có về mã độc IoT cũng như thực hiện phân tích mẫu mã
độc thực tế, 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 để

3


thực hiện tấn công từ chối dịch vụ phân tán gần đây. 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.

1.4. Sự khác biệt giữa mã độc botnet truyền thống và IoT botnet
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 1.1. 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
Mã độc botnet trên PC

Tiêu chí

Mã độc botnet trên IoT

Hình thức tấn Đa dạng với nhiều hình thức tấn công Tập trung chủ yếu là hình thức tấn công từ
như mã hóa dữ liệu, đánh cắp dữ liệu chối dịch vụ phân tán bởi đặc điểm số

công

riêng tư, tấn công từ chối dịch vụ….

lượng thiết bị IoT lớn và phân tán toàn cầu

tảng Nền tảng kiến trúc mã độc botnet trên So sự đa dạng của các thiết bị IoT nên mã

Nền

không đồng máy tính truyền thấp có sự đa dạng độc botnet trên các thiết bị IoT rất đa dạng
thấp, chủ yếu tập trung vào các kiến trúc về kiến trúc như ARM, MIPS, PowerPC,

nhất

Sparc, … để đảm bảo khả năng lây nhiễm

x86_64


thành công nhiều loại thiết bị
Đa dạng các Mã độc trên máy tính truyền thống rất Do xu hướng thiết bị IoT mới nổi, cũng
loại mã độc

đa dạng về chủng loại, tinh vi và phức 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

tạp

đ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 Do tài nguyên và năng lực tính toán của Do tài nguyên của các thiết bị IoT bị hạn
máy tính truyền thống lớn nên người chế nên người viết mã độc ít khi sử dụng

rối

viết mã độc thường sử dụng các kỹ các kỹ thuật gây rối phức tập, hoặc chỉ sử
thuật gây rối phức tạp để bảo vệ mã độc dụng một số kỹ thuật gây rối đơn giản như
khỏi bị phát hiện, phân tích. Nguyên UPX, XOR.
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
Phát hiện trên Dễ dàng phát hiện dấu hiệu mã độc Khó phát hiện bởi các thiết bị IoT có tính
hệ thống

thông qua biểu hiện của máy tính truyền 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


thống

dấu hiệu bất thường trên hệ thống
Khả

năng Dễ dàng triển khai phân tích với môi Khó triển khai phân tích với môi trường an

thực thi trên trường phân tích an toàn như sandbox toàn như sandbox bởi phải đáp ứng yêu cầu
môi

trường trên máy tính truyền thống

về có khả năng xử lý tính đa kiến trúc

ảo

4


Tính thường Có thể lây nhiễm và thường trú tại các Sau khi lây nhiễm sẽ xóa bỏ các tập tin thực
trú

vị trí bộ nhớ bền vững trên máy tính, thi và chỉ chạy trên các bộ nhớ không bền
cũng như lưu lại các tập tin thực thi độc vững, tức là có tính không thường trú.
hại trên máy tính.

Tìm và ngăn Do tài nguyên lớn nên trên máy tính Do tài nguyên hạn chế nên mã độc IoT
chặn mã độc truyền thường có khả năng bị lây nhiễm thường có cơ chế tìm và ngăn chặn mã độc
nhiều loại mã độc đồng thời


khác

khác sau khi lây nhiễm thành công

Kết luận Chương 1: Luận án trình bày tổng quan về mã độc IoT botnet gồm khái niệm về thiết bị IoT
và mã độc IoT botnet, sự tiến hóa của mã độc IoT botnet, 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
CHƯƠNG 2. PHƯƠNG PHÁP PHÁT HIỆN MÃ ĐỘC IOT BOTNET
2.1. So sánh 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.1 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.1. 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

- Quan sát thực thi cụ thể của một chương - Phân tích một cách chi tiết các tập tin và đưa
trình để quyết định tập tin là mã độc dễ ra được cái nhìn tổng quát về tất cả các khả
Điểm

dàng

năng kích hoạt của chúng

mạnh

- Phân tích động hiệu quả hơn đối với mã - Không cần phải thực thi mã độc nên không
độc gây rối


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

- Chỉ có thể giám sát đơn luồng thực thi

- Phân tích tĩnh phụ thuộc nhiều vào công

- Làm lộ quá trình phát hiện và phân tích nghệ dịch ngược
Hạn
chế

mã độc

- Khó khăn khi xử lý mã độc sử dụng kỹ thuật

- Có thể gây nguy cơ mất an toàn cho mạng gây rối
và hệ thống
- Khó mô phỏng đầy đủ thiết bị IoT (tính
đa kiến trúc)

Để 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.
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
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ư: tiêu đề tập tin (header), các lời gọi hàm system-calls, lời gọi API (Application Programming


5


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, 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 không có cấu trúc đồ thị, như
minh họa ở hình 2.1.

Hình 2.1. Phân loại các đặc trưng tĩnh trong phát hiện mã độc IoT botnet
Các phương pháp phát hiện mã độc sử dụng các đặc trưng không có 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 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: đặ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) như IDA
Pro hoặc Radare2. Những nghiên cứu biểu diễn các tập tin thực thi bằng các đặc trưng không có 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 không
có 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 rác…
Việc so sánh các phương pháp phát hiện mã độc IoT botnet dựa trên biểu diễn dữ liệu đặc trưng tĩnh
được tổng hợp dưới đây cho thấy các nghiên cứu hiện đại (state-of-art) 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ế.
- Các nghiên cứu theo hướng sử dụng biểu diễn dữ liệu dạng Opcode tiêu biểu như Hamed
HaddadPajouh [14], Ensieh Modiri Dovom [57], Darabian [52], Amin Azmoodeh et al. [36] sử dụng các cơ
chế chủ yếu như xác định mã độc thông qua chuỗi opcode, áp dụng fuzzy pattern tree để phát hiện mẫu mã
độc, phát hiện mã độc dựa trên tần xuất opcode. Những nghiên cứu này có hạn chế như 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


6


- Nghiên cứu của Mohannad Alhanahnah [4] biểu diễn dữ liệu dạng Strings cho phép sinh chữ kỹ để
phân loại mã độc. Tuy nhiên, nghiên cứu có hạn chế bởi độ phức tạp tính toán lớn và chỉ sử dụng cho 4 loại
mã độc.
- Nghiên cứu của F. Shahzad et al. [96] biểu diễn dữ liệu dạng ELF header nhằm 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. Tuy nhiên, hạn chế của nghiên cứu bởi cấu trúc của
tập tin nhị phân dễ dàng bị chỉnh sửa.
- Nghiên cứu của Jiawei Su et al. [25] biểu diễn dữ liệu dạng Grayscale image cho phép biểu diễn các
mẫu nhị phân như ảnh đa mức xám để phát hiện mã độc. Tuy nhiên, nghiên cứu có hạn chế vì 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.
- Nghiên cứu của Hisham Alasmary et al. [32] biểu diễn dữ liệu dạng 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. Tuy nhiên, nghiên cứu có độ phức tạp tính
toán lớn và xác định các tính chất chưa chính xác.
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ử nghiệm ở các Chương sau của luận án.
2.2.1. Xây dựng bộ cơ sở dữ liệu thử nghiệm
Để 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.
Bảng 2.2. Mô tả tập dữ liệu mẫu để thử nghiệm
Family Name

Variants


Sample Number

ARM

MIPS

Mirai

7

1,765

331

301

Bashlite

5

3,720

762

646

Other botnet

9


680

152

103

Benign

-

3,845

561

533

10,010

1806

1583

Total

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 và tập dữ liệu
có kiến trúc đa dạng gồm ARM, MIPS, PowerPC, Sparc, SuperH,…
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). Trong đó 𝐸i (𝑆) là các bộ dò quét mã độc thứ i trên VirusTotal (ví dụ như
Kaspersky, Norton, BKAV,…).
𝐶𝑙𝑎𝑠𝑠𝑙𝑏 = {


𝑀ã độ𝑐, 𝑛ế𝑢 (𝐸1 (𝑆) ∨ 𝐸2 (𝑆) ∨ … 𝐸𝑛 (𝑆))
𝐿à𝑛ℎ 𝑡í𝑛ℎ, 𝑛ế𝑢 (! (𝐸1 (𝑆)) ∧ ! (𝐸2 (𝑆)) ∧ … ! (𝐸𝑛 (𝑆))

(2.1)

Để 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.

7


2.2.2. Kết quả thực nghiệm và nhận xét
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 được
thể hiện ở Bảng 2.3. Ở đây luận án tiến hành thực nghiệm lại các nghiên cứu đã có và sử dụng lại chính xác
các bộ phân lớp mà các nghiên cứu đã sử dụng, vì vậy các thuật toán phân lớp là khác nhau. Mục đích nhằm
đánh giá độ tin cậy, tính chính xác của các nghiên cứu đã có trên cùng bộ dữ liệu đã mô tả ở mục 2.2.1
Bảng 2.3. 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

String-based [70]

Image-based [25]

CFG-based [32]


FNR (False

Thời gian

Thời

Bộ phân

Độ chính

Positive Rate

Negative

trích xuất

gian

lớp

xác

- dương tính

Rate - âm

đặc trưng và

phân


giả)

tính giả)

tiền xử lý

lớp

trưng tĩnh

ELF-header [96]

FPR (False

RIPPER

99,8

0,2

0,2

PART

99,8

0,2

0,2


DT (J48)

99,6

0,5

0,3

1s

SVM

98

0,9

2,2

12,4s

kNN

99,8

0,4

0,2

DT (J48)


99,4

0,4

0,6

RF

99.7

0,3

0,4

89,1

12,7

1,4

SVM

89

33,8

4,4

LR


85

15,1

19,0

RF

95

7,5

5,9

Neural
Network

0,75s
1h50m

4m47s

1,27s

1s
8,75s
9,71s

14m19s


2m19s
1,45s

5 days

0,5s
1,75s

Từ bảng kết quả 2.3, có thể thấy các nghiên cứu biểu diễn tập tin thực thi bằng đặc trưng không có 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 không có 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.
Kết luận Chương 2: 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
botnet, đồng thời các đặc trưng có cấu trúc đồ thị đem lại hiệu quả cao và triển vọng trong bài toán phát hiện
mã độc IoT botnet.
Những đóng góp của Chương 2: Đánh giá và đưa ra sự khác biệt giữa mã độc botnet trên máy tính
truyền thống và thiết bị IoT, từ đó làm cơ sở đề xuất phân tích tĩnh phù hợp đối với phát hiện mã độc IoT
botnet; Xây dựng bộ cơ sở dữ liệu có độ tin cậy phục vụ bài toán phát hiện mã độc botnet trên thiết bị IoT;
Thực nghiệm lại và đánh giá khách quan các nghiên cứu hiện nay dựa trên phân tích tĩnh với cùng bộ cơ sở dữ
liệu và môi trường thực nghiệm. Kết quả nghiên cứu đã công bố và trình bày trên Kỷ yếu Hội nghị và Tạp chí
uy tín trong nước và quốc tế (tại [B3], [B4], [B5] trong danh mục các công trình của tác giả).

8


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
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.
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. 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. Hamed HaddadPajouh và cộng sự, Azmoodeh 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. 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. 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.
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. 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).

9


Đị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)

Để chứng minh cho giả thiết trên và 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 3.1. Quy trình phương pháp đề xuất phát hiện mã độc IoT botnet
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.1. 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, thì quy trình thực hiện gồm 4 bước như sau: Pha sinh đồ thị FCG, Pha sinh đồ thị
PSI, Pha tiền xử lý và trích chọn đặc trưng, và cuối cùng là Phân lớp.
3.4. Đồ thị lời gọi hàm trong phát hiện mã độc IoT botnet
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.
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. 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

10


cụ hỗ trợ đa nền tảng hệ điều hành. 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. 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

𝑮𝑭 .𝑉 = 𝝓 and 𝑮𝑭 .𝐸 = 𝝓
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

Đồ 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
1:
2:

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. 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
Trước khi xây dựng đồ thị PSI (định nghĩa 3.3), luận án trích xuất toàn bộ PSI (định nghĩa 3.2) 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

11


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
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 𝑉 = [ ], 𝐸 = [ ]
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
11
12
13

End If
Enf for
End for
Return 𝑉, 𝐸
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. 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.
Lớp
Mã độc
Lành tính

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

Trung bình các
Trung bình các
Trung bình các
Trung bình các
đỉnh trong đồ thị cạnh trong đồ thị đỉnh trong đồ thị cạnh trong đồ thị
PSI
PSI
FCG
FCG
147.1
1110.5
254.5
3075.5
167.8
1693.9
530.9
2962.2

Có thể thấy ở hình 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.2. Số lượng các cạnh và đỉnh giữa các lớp mẫu

12


Để dễ hình dung kết quả hoạt động của thuật toán sinh đồ thị PSI, quan sát hình 3.3 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.3. Đồ 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
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 thực nghiệm đã được trình bày ở mục 2.2.1 của bản tóm tắt 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á như hình 3.4, trong đó đầu vào là vector 1x1024,
HL là các lớp ẩn, FC là các lớp kết nối đầy đủ, Conv là các lớp tích chập. 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, luận án sử dụng graph2vec
[39] trong quá trình tiền xử lý dữ liệu đồ thị PSI.

13


Hình 3.4. Mô hình đánh giá đặc trưng đồ thị PSI trong phát hiện mã độc IoT botnet
Graph2vec 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 [82] 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 đó.
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:
𝒥(Φ) = − log Pr( 𝑠𝑔𝑣 |Φ(𝒢))
𝜕𝒥
9:
Φ=Φ− 𝛼
𝜕Φ

Return Φ
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 đồ
10:

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 onehot 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ư

14


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. Để 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]. 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, 𝑥), bởi vì hàm kích hoạt ReLU có độ tính toán đơn giản hơn so với hàm
kích hoạt sigmoid (hàm kích hoạt này thường yêu cầu độ phức tạp tính toán theo số mũ) [100]. 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.

3.6.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ị 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.2. Kết quả phát hiện mã độc IoT botnet bằng đồ thị PSI và đồ thị lời gọi hàm
Độ đo Accuracy
FNR
FPR
Time (m)
Đặc trưng
(%)
(%)
(%)
98,7
1,83
0,78
88
PSI-graphs
95,3
5,81
4,13
545
FCGs
Từ kết quả ở bảng 3.2 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. 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ỏ.
Bảng 3.3. 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

Su và cộng sự [25]
HaddadPajouh và
cộng sự [14]
PSI-Graph

Deep neural network (CNN)

Bộ dữ liệu mẫu mô tả
ở mục 2.2.1 gồm 6943
mẫu (trong đó 3098
mã độc từ IoTPOT)

Recurrent neural network (RNN)
Deep neural network (CNN)

Độ chính xác
(Accuracy %)
95.13
97.88

98.7

Từ bảng kết quả 3.3 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%.

15


Bảng 3.4. Kết quả đánh giá tính quá khớp
Phương pháp

PSI-Graph

Các thuật toán

Bộ mẫu thử nghiệm

Độ chính xác
(Accuracy %)

Deep neural network (CNN)

Bộ dữ liệu mẫu mô tả ở
mục 2.2.1 gồm 10,010
(trong đó 6165 mã độc từ
IoTPOT and VirusShare)


97,8

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 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, đồng thời giải quyết được vấn đề quá khớp trong khoảng giá trị chấp nhận được.
Kết luận Chương 3
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.
Những đóng góp của Chương 3
Đề xuất một đặc trưng mới có cấu trúc đồ thị, hiệu quả trong bài toán phát hiện mã độc botnet đa kiến
trúc trên thiết bị IoT, gọi là đồ thị PSI. Kết quả nghiên cứu đã công bố và trình bày trên Kỷ yếu Hội nghị và
Tạp chí uy tín trong nước và quốc tế (tại [B1], [B6], [B7] trong danh mục các công trình của tác giả).
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 4.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.

16


Hình 4.1. Minh họa ý tưởng bài toán dùng đồ thị con PSI có gốc
4.2. Xây dựng đặc trưng đồ thị PSI-rooted subgraph
Đị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 𝑉.
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 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
𝒮𝒢 = {𝑆𝐺1 , 𝑆𝐺2 , … , 𝑆𝐺𝑛 }: Tập hợp đồ thị con PSI có gốc 𝑆𝐺𝑖 = (𝑉𝑖′ , 𝐸𝑖′ , 𝑣, 𝐷) được
Output
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 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.
Để 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.

17


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].
Thuật toán 4.2: GetWLSubGraph (𝑣, 𝐺, 𝑑)
𝑣: Đỉnh là gốc của đồ thị con PSI
Input: 𝐺 = (𝑉, 𝐸) : Đồ 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
If 𝑑 = 0 then
2
(𝑑)
3
𝑠𝑔𝑣 ≔ (𝑣)
4
else
5
𝑁𝑣 ≔ {𝑣 ′ |(𝑣, 𝑣 ′ ) ∈ 𝐸}
(𝑑)
6
𝑀𝑣 ≔ {𝐺𝐸𝑇𝑊𝐿𝑆𝑈𝐵𝐺𝑅𝐴𝑃𝐻(𝑣 ′ , 𝐺, 𝑑 − 1)| 𝑣 ′ ∈ 𝑁𝑣
(𝑑)
(𝑑)
𝑠𝑔𝑣 ≔ 𝑠𝑔𝑣 ∪ 𝐺𝐸𝑇𝑊𝐿𝑆𝑈𝐵𝐺𝑅𝐴𝑃𝐻
7
(𝑣, 𝐺, 𝑑 − 1) ⊕ 𝑠𝑜𝑟𝑡(𝑀𝑣(𝑑) )
(𝑑)
8
Return 𝑠𝑔𝑣
Để 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.1) để
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.
Bảng 4.1. Một ví dụ sinh đồ thị con PSI có gốc với độ sâu bằng 2
Degree
Vertexes
11

d=0
0, 8, 10, 7, 9
d=1
18, 0, 0, 7, 0, 5, 6, 15, 16
d=2
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}. 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.
4.3. Thực nghiệm và đánh giá kết quả
4.3.1. Môi trường thực nghiệm
Sử dụng tập dữ liệu và môi trường thực nghiệm đã được trình bày ở mục 1.2 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 (crossvalidation) k-fold. 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.

18


4.3.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á như hình 4.2.


Hình 4.2. 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). Để 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
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.
𝑥
(4.1)
𝑥𝑛𝑜𝑟𝑚𝑎𝑙𝑖𝑧𝑒𝑑 =
∥ 𝑥 ∥2
Tiếp đó, 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 [99]
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.
4.3.2. 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


19


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.3. Đường cong ROC của Bagging, RF, DT, kNN và SVM trên tập dữ liệu
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.4. Đường cong ROC của Bagging, RF, DT,


Hình 4.5. Đường cong ROC của Bagging, RF, DT,

kNN và SVM trên tập dữ liệu kiến trúc ARM

kNN và SVM trên tập dữ liệu kiến trúc MIPS

20


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 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.3, 4.4 và 4.5.
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
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 cho 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
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 Hamed 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.

21


×