Tại hội thảo Blackhat 2014 ở Mỹ, Costin và công sự [7] đã trình bày kết quả phân tích diên rong về việc khảo sát, đánh giá mức độ an toàn các phần sụn của thiết bị nhúng, phát hiện tro
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG DẠI HỌC CÔNG NGHỆ
ioc rey
Tran Nghi Pha
PHAN TICH TU DONG
MA DOC TRONG CAC THIET
BI NHUNG TREN NEN LINUX
LUAN AN TIEN SI CONG NGHE THONG TIN
Hà Nội - 2020
Trang 2Tai xin cam doan ludn án “Phân tích tự động mã độc trong các thiết bị nhúng trên nền Linux” là công trình nghiên cứu của riêng tôi Các số liệu, kết quả được trình bày trong luận án là hoàn toàn trung thực
và chưa từng được công bố trong bất kỳ mệt công trình nào của người khác
“lồi đã trích dẫn đây đủ các tài liệu tham khảo, công trình nghiên =ứu liên quan ở trong nước và quốc tế Ngoại trừ các tài liệu tham khảo này, luận án hoàn toàn là công viêc của riêng tôi Trong các công trình khoa hoc duce công bố trong hiận án, tôi đã thể hiên rõ rằng và chính xác đóng góp,
của các đồng tác giả và những gì do tôi đã đáng góp
Luan án được hoàn thành trong thời gian tôi làm Nghiên cứu sinh tại
Bộ môn Công nghệ phần mẫm, Khoa Công nghệ Thông tin, Trường Đại học Công nghệ, Đại học Quốc gia Hà Nội
Tác giả
Hà Nội
Trang 3LỜI CẢM ƠN
“Trước hết, tôi muốn bày tả sự biết ơn đến PG8 TS Nguyễn Ngọc Bình và TS Ngyễn Đại Thọ, cần bộ hướng dẫn, các thầy đã trực tiếp giảng
day và định hướng tôi trong suốt thời gian học cao học, thực hiện luãn văn
thạc sĩ cũng như luận án này Một vinh dự lớn cha vôi đươc học tập, nghiên cứu đưới sự hướng dẫn của các Thây
'löi xin bày tỏ sự biết ơn sâu sắc đến các Thay Cö trong Bộ môn Cong nghờ phần mềm vì sự giúp đỡ của cóc Thầy Cö về các đóng góp rất hữu ích
cho luận ấu
Toi xin trần trọng, cảm ơn Khoa Công nghệ thống tin, Phòng Đào tạo
Tỏi muốn cảm ơn đến tất cả những người bạn của tôi, những người
luôn chia sẽ, động viên tối bất cứ khi nào tới cần và tôi buồn ghỉ nhớ điều
đó
o
biệt là con trai đã luôn là động lực để töi nghiên cứu
éi cùng, tới xin bày tổ lòng biết ơn võ bạn đối với gia định, dặc
NCS Tran Nghỉ Phú
Trang 4TOM TAT
Internet van vit, (Intemet of Things - ToT} ding vai tr quan trong
trang các mặt của đời sống, là một trong các thành phần cat lõi tạo nền cuc cách mạng công nghiệp lần thứ tư và trực tiếp đồng góp lớn vào nền kinh tê toàn cầu Tuy nhiên, nhiều thách thức đang de dọa đối với an ninh,
an toàn các thiết bị IeT, trong đỏ có nguy cơ về mã độc Các nghiên cứu
về mã độc trên loT tập trung trên hệ điểu hành Android Các thiết bị sử dụng hệ điều hành Linux nhúng với các kiến trúc vi xử lý nhúng (MIPš,
ARM v.v.) chiếm số lượng lớn và mã độc trên xuôi trường này (gợi là mã
độc nhũng) dang ngäy càng phổ biến, dặc biết là mã dc hoạt dộng da nền (ang Nhung hiệu nay dang thiếu cắc công cụ, phương phấp có hiệu quả cho phan tích ma độc nhúng
“Từ thách thức trong phân tích, phát hiện mã độc trong các thiết bị ToT dat ra ba hài toán:
hợp với đổi tượng là mã độc nhúng; (ii) phát triển qny trình, môi trường phân tích động và tập đữ liệu để phát hiện, phân lớp mã độc nhúng dựa
trên phương pháp động; (ii) xây dựng tập đữ liệu phục vụ nghiên cứu mã
độc nhúng
phát triển phương pháp trích chạn đặc trưng phù
Luận án trình bây một giải pháp tổng thể gồm quy trình, giải thuật
vũ cong cu cho bai toán phát hiện mã độc nhúng, bao gồm các mö độc cài chun trong thiết bị và mũ độc lấy nhiễm từ ngoồi Lrong quá trình vận hành tiết bị Các đồng góp chính của luận án như sau:
Thứ nhất, xây dựng cơ sỏ đữ liệu về phẫn sụn cña các thiết bị IøT và
TạT, gọi là tập đữ liêu Firmware TøT (F-IeT) Đây là nữ sä đít liêu có số lượng lớn và khá đẩy đủ về các phân sụn, mã độc và mã sạch trên
thiết bị la, Dầ xây xây dựng cơ sở dữ liệu này, luận ấn phát triển công eu
1° 'Toolldt hễ trợ việc thu thập, phân tích, bóc tách phần sụn
à loại sandbox mới, chuyền
Trang 5Thú i, đề xuất: đặc trưng then đàng điểu khiển mức ngôn ngữ tring,
gian Vex (CFV) và phương pháp trích chọn đặc trưng CFV đựa trên cơ sở của CED gọi là CFIDVex để phát hiên mã độc nhúng đa kiến trúe vi xử lý, Dặc trưng CEV cho phép hoc các mã đốc trên kiến trúc cũ để phát hiên mã,
độc trên kiến trúc vi xử lý mới, hướng tới giải quyết một trong các thách thức mới trong xu thể phát triển mã độc nhúng
'Từ khóa: mã đọc IoT, mã độc nhúng, F-Sandbox, F-toolkit, CDE, CFDVex, phan sun.
Trang 6Lời cam đoan
Lai cam ơn
1⁄56: Gấu WHGÌNRHIỐN «sa vốn vạn bến v ng gìn G rọcg ban
Chuong 2 PHAN TÍCH MÃ ĐỘC TRONG
ane
Ewe a
Trang 72.3.1 Mã độc trong các hệ thống nhúng 42
2.3.2 Ơác đặc tính của mã độc trong các hệ thống nhúng 45
243.3 Môi trường và công cụ phân tích mã độc trên hệ thông
3.13 Cách tiếp cận phát triển môi trường phân tích động
cho mã độc nhúng .‹ - 63 3/2 Cấu trúc F-Sandioz «có c c2 222222 0 67 3.3 Quy trinh phan lép ma doc dita tren F-Sandboz 69
3.3.1 Mô hình tổng quan 3M # đã š § 69 3.3.2 Khởi tạo mỗi trường F- "<< 70
Thực thí mẫu trong môi trường F-Sandboz 71
Quy trình phát hiện mã độc đưa trê F-Sandbor 75
3.5.2 Kết quả thử nghiêm quy y trình phân lớp mã độc 79 3.5.3 Kết quả thử nghiệm quy trình phát hiện mã độc 82 3.5.4 So sánh F-Sandbor với các sandbox khác 84
Chương 4 PHƯƠNG PHÁP TRÍCH XUẤT ĐẶC TRƯNG
MA DEENA: oon son ease coe ae vo we eee we 88
4.13 Cách tiếp cận cải tiến thuật toán taf ae dae trimg
Trang 842) Phường phẩp GED ¿vs can 2y can con vua cao 96
42.1 Một số định nghĩa eee 96 4.22 Thuật toán trích xuất đặc trưng CFD 96
4.2.3 Thuật toán xây dmg DAG
4.2.4 Thuật toán xây dựng EDAG
4.2.5 Thuật toán trích xuất đặc trưng dựa trên đồ thị dòng
điều khiển từ EDAG 102
Chuong 5 KET LUAN VA :
Bi: KEENER cies axa Hang ha aganen aos eum we 126
Trang 9C&C Command and Control Server
CFG Control Flow Graph
CNN Convolutional Neural Network
CPU Central Processing Unit
CFD Control flow-based opcode
feature extraction dynamic
programing algorithm
CFDVex Control flow-based Vex
feature extraction by dynamic
programing algorithm
CFV Control flow-based Vex
DAG Directed Acyclic Graph
Máy sử dụng tập lệnh đơn giản hóa tiên tiến
Máy chủ điều
khiển mạng lưới Botnet
Đồ thị luồng điều khiển Mạng neural tích chập
trưng theo dòng điều khiển
mức Vex bằng quy hoạch động,
Đặc trưng theo đồng
điều khiển mức Vex
Đồ thị có hướng không có chu trình
Phương pháp
Trang 10Domain Name System
gate array
False Positive False Negative Internet of Things Interner Relay Chat Internet Services Provider
Joint ‘Lest Action Group
Kerucl-based virtual muchine Low Level Virtual Machine Message-Digest Algorithm
Microprocessor withont Interlocked Pipeline Stages Naive Rayes
dua trén phan sim
Giao thức truyền tập tin
Đường dây thuê bao số bắt đối xứng
Ngôn ngữ máy mức thấp
“Thuật toần băm:
gid tri thang tin
Bio vi wi ly khong ct giai doan đường ông khóa liên đông Phuong php Naive Rayes
Trang 11Principal Component Analysis
Proves identifier Personal Computer Printable Ssrings Information
Quick EMU later
Random Access Memory
Remote Code Execution
Read Ouly Memory
Real-time operating system
Random Forest Symbolic Execution small office/home office Serial Peripheral Interface Secure Shell
Support, Vectar Machine System on a Chip
Transmission Control
Protocol,Internes Protoral
Ba nhd tray cập ngẫu nhiên không bay hoi
Bộ nhớ truy xuất ngẫu nhiền
"Tấn cong thye thi
vi nối tiếp
Giao thức kết nỗi
xạng số bão mật
May vée to hé tra
He thang tich hop trén mot Chip
Giao thức điều khiển truyén tin
/Giaa thức Internet
Trang 12User Datagram Protocol
Uniform Resource Locator
Giao thức truyền gói tin người dùng
Dinh vi tai
nguyên thống nhất
Mang không dây
sử dụng súng vũ tuyển.
Trang 13DANH MỤC CÁC ĐẠI LƯỢNG
Đại lượng Diễn giải
Số phần dữ liệu được chia trong phương pháp k-fold
Số chiều cần giảm tới khi áp dung thuật toán giảm chiều vóc tơ đặc trưng
Số chiều ban đầu của véc tơ đặc trưng trước khi giảm chiều
Tập các dinh cha CFG, DAG, EDAG
Tap céc canh cha CFG, DAG, EDAG Tập các lá của CFG, DAG, EDAG Dinh dau hay nút gốc của CEG, DAG, EDAG
Mảng hai chiều chứa trọng số của các cạnh EDAG
Mảng một chiều chứa trọng số các đỉnh của EDAG
Số các khối cơ bản trong một tập tin thực thi
được dịch ngược hoặc số lượng các dinh trong V
Số cạnh trong #,
xii
Trang 14
2.1 Giả mã thực thi và ngôn ngữ trung gian Vex 20
23 Ma trận nhằm lẫn Soon ee
3.1 Dánh gié sé mau theo do dai syscall 7
3.2 Fl-Macro, Fl-Micro va Fl-weight véi trich chon die trimg
3⁄4 Kết quả thực nghiêm với 2-gram CBG Ee 84 3.5 So sánh F-Sandbox vi các sandbox khác §5 4.1 Minh họa các bước trong quá trình tạo DAG 100
4.2 Dịch từ lệnh thực thi sang ngôn ngữ trung gian Vex 104
4⁄8 So sánh về số lượng đỉnh trong CEFG giữa MIPS và Intel 80386 116 4.9 So sánh giữa phương pháp Ding va CFD 118 4.10 So sánh giữa các phương pháp CFD, Ding và CFDVex mức 2
trên kiến trúc MIPS c oe pane UBL 4.11 Phét hi¢n ma doc tron timg kiéu trie
4.12 Dánh gid phat hien ma doc chéo kién trie
4.13 Phát hiện trên tập hỗn hợp kiến trúc
xiii
Trang 15Số lượng mã độc IøT xuất hiện trong các năm
Đồ thị đồng điều khiển với các đỉnh chứa øpcode_
Đồ thị đồng điều Riga ose osc wee wi ou Ss oa we NG có
“Tính 3-gram của chuỗi opcode
Quy trình xây dựng mô hình học máy :
Siêu phẳng phân tách tối ưu
Kiến trúc cơ bản của hệ nhúng [67] .-
Sư giao thoa của thiết bị nhúng, thiết bị lơT và máy vi tính
Cầu trúc bộ định tuyến
Các tập tin hệ thống thu được khi giải nền phần sụn
“Thiết bị P-Extractor để sao chép phần sụn từ flash của thiết
Thông tin NVRAM được trích xuất từ thiết bị Tp-Link Wr842nd
“Tạo các E*Sandbor với nhiều môi trường Thác HH,
Tiến trình đề xuất để phân lớp mã độc dựa trên F- Sandhor
và học máy
Nhật ký lời gọi hệ thống của mẫu mã độc
Tỉ lệ giữa tổng điểm và điểm của các đặc trưng thành phần
3.12 Thống kê số tiền trình do mã độc trong tập F-loT tạo ra
3.13 Bộ phân lớp RF với 2-gram và #gram
Trang 16
3.14 Bộ phân lớp SVM với 2-gram và #gram 81 3.15 Bo phan lép NB véi 2-gram và 3-gram 81
3.18 So sánh trung bình của F1, AP, “AC "1" sgpunnte ie scene 83
4.1 Một đồ thị có hướng-G - 90
4.2 Đồ thị có hướng không có chu trinh DAG cia G trong Tình
43 EDAG của DAG trong Hình 4.2 98
44 Trích chon đặc trưng CFO với 3-gram của đỉnh 4 và 5 của
BĐAG:trong' HINH 4Â š se ca cá he g2 rán náo: 103
4.5 Kiến trúc khối của công cụ F-Toolkit 107
446 Thiết bị ExC500 để sao chép phần sụn từ flash của thiết bị
MOR MIE co 2 ea pe Now yee oe ow Oy PR 109
4.7 Các thành phần trong mo dun F-Reverse 109
4.8 Các kiểu tập tín hệ thống thường đùng trong các niên sụn I0 4.9 Ơác thư mục tập tin hệ thống thu được sau khi dịch ngược 1I1 4.10 So sánh độ chính xác giữa phương pháp của Ding và CFD với
Rg vows ae kee w NOW BAe Mow x om 4 4A 8 gang 1 4.11 So gánh đô chính xác giữa phương pháp của Ding và CED với
4.12 So sánh đô đo F1 của phương pháp Ding và CED với 2-gram 118 4.13 So sánh độ đo F1 của phương pháp Ding và CED với 3-gram 118 4.14 Đánh giá phương pháp CFD 119 4.15 So sánh đô chính xác của CED giữa 2-gram và 3-gram 120 4.16 Độ chính xác theo phương pháp của Ding giữa 2-gram va 3-gram 120
Trang 17DANH MỤC CÁC THUẬT TOÁN
1 Trích xuất đặc trưng dòng điều khiển- FD 97
2 XiÿdlngĐÁN sac: cua con ven eeww es ones an 99
3 Xây dưng EDAG từDAG 101
4 —_ Trích chọn đặc trưng CEO với ngram từ EDAG 102
5 _ Trích xuất đặc trưng dòng điều khiển Vex với n-gram từ EDAG105
Trang 18MỞ ĐẦU
Internet vạn vật (Internet of Things - IøT) đang ngày càng phố biến,
tiếp tục phát triển mạnh và đóng vai trò quan trọng trong tương lai của thế giới kết nói Dây là một trong những thành phần cốt lõi tạo nên cuộc cách mạng công nghiệp lần thứ tư, xây dựng thành phố thông minh và trực tiếp
mang lại nhiều tiên ích cho người dùng trong nhiều lĩnh vực như: y tế, nông
nghiệp, quản lý năng lượng thông minh, thiết bị tự hành, giao thông thông
minh, quốc phòng v.v Theo thống kê và dự báo của Cisco, năm 2017 đã
có khoảng 7 tỉ thiết bị IøT, đến năm 2020 ước tính có 50 tỷ thiết bị loT sẽ được kết nối vào mạng Internet [1] Các thiết bị này sẽ có mặt ở mọi nơi, từ
các địa điểm công cộng đến những điểm riêng tư, phổ biến là các thiết bị
như CameralP, Volp, IpTV, thiết bị định tuyến v.v Theo IDC, năm 2019 toàn cau dau tu 1.300 t¥ USD cho phát triển IøT Gartner cho rang IoT mang lại 1.900 tỷ USD giá tri gia tang trong nam 2020 Theo McKinsey,
tới năm 2025, nền công nghiệp loT sẽ đóng góp vào nền kinh tế toàn cầu là 11.000 tỷ USD
Tuy nhiên, hàng tỉ thiết IơT bị đang lưu trữ, truyền dữ liêu nhạy cảm
và riêng tư, nhưng đang phải đối mặt với các cuộc tấn công độc hại [2, 3] Tính phổ biến, hữu dụng và tầm quan trọng của IơT đã khiến nó trở thành
mục tiêu hấp dẫn của tội phạm mạng (4j Những thiết bị loT c6 thé bi loi
dụng để giám sát, theo dai người dùng mọi lic, moi nơi hay lợi dụng số
lương lớn các thiết bị này để tạo các cuộc tấn công mạng quy mô lớn Điều
t
Trang 19Mỏ đầu 2
ổ chức,
này đã làm đấy lên những lo ngại về việc 16 lọt thông tin của các
cá nhân khi các thiết bi này bị tin tặc tấn công và chiếm quyền quản trị Hiện nay, nhiều vấn để cơ bản vẫn chưa được giải quyết để đảm bảo yêu cầu bảo mật so với sự phát triển nhanh và rộng của løT như kiến trúc và chính
sách về mit bao ma [5], mite 46 an toan etia phan mềm nhúng - phần sụn
(firmware), giao thtte truyén tin [3]
hồng bảo mật, trong đó có 14 lỗ hồng bảo mật mới Tại hội thảo Blackhat
2014 ở Mỹ, Costin và công sự [7] đã trình bày kết quả phân tích diên rong
về việc khảo sát, đánh giá mức độ an toàn các phần sụn của thiết bị nhúng, phát hiện trong 32.256 phần sụn được phân tích thì có 38 loại lỗ hồng mới
Cũng trong nghiên cứu này, các tác giả đã trích xuất được 35.000 khóa bí
mật của thuật toán mã hóa cñng khai RSA được lưn trữ trên các thiết bi
trực tuyến, điều đó có nghĩa thông tin trong các thiết bị này có thể bị giải
mã Thêm vào đó, nhiều cổng hậu mặc định do các nhà cung cấp cài cắm
Ip các thiết bị để nghe lén, lấy trộm
nã độc Tại Việt Nam, tháng 6/2016,
tập đoàn BKAV đã công bố kết quả khảo sát 21 triệu thiết bị trên Internet,
trong đó có tới 5,6 triệu thiết bị trên thế giới bị nhiễm lỗ hồng PetHole [8],
mất quyền điều khiến thiết bị Nhiều nghiên cứu gần day
vào thiết bị, gián điệp mạng đột
thong tin quan trong, cai them ci
Cùng với lỗ hồng bảo mật, mã độc là mối đe doa chính ảnh hưởng an
ninh, an toàn của các thiết bị lơT Các nguy cơ có thể ảnh hưởng tới thiết
bi loT bao gồm: chính sách quản lý (31%), lây nhiễm mã độc (26%), tấn công từ chối dịch vụ (13%) và tấn công phá hoại kết nối của các thiết bị loT (12%) [11] Nguy cơ lộ lọt thông tin và cài cấm các mã độc từ các thiết
bị ldT đã được Grant và cộng sự [3] phân tích, chứng mình là hiện hữu
độc trên loT đang tăng nhanh về số lượng, sức phá hoại và kỹ thuật ngày
càng phức tạp Theo Kaspersky Lab IoT [12], số lượng các mẫu mã độc IốT xuất hiện trong thời gian gần đây tăng đột biến, từ 46 mẫu được phát
Trang 20140.000
121.588 120.000
Hình 1.1: Số lượng mã độc IoT xuất hiện trong các năm
hiện vào năm 2013 đến nửa đầu năm 2018 đã trên 120.000 mẫu, chỉ tiết so
sánh trong Hình 1.1 Mã độc trén IoT tap trung một số loại tiêu biểu như mạng máy tính ma (botnet), cong hau (backdoor) Cac botnet dựa trên loT' (Botnet of Things) và các cuộc tan cong DDoS sit dung co sé ha tang IoT dang trở thành mối đe dọa mạng lớn [13, 14 Cơ chế của các loại mã độc
nay là tập trung khai thác các lỗ hỗng bảo mật và các chính sách bảo mật
rất yếu của các thiết bị løT để lan nhanh, tiêu biểu như mã độc Mirai năm
2015 Nó tạo ra những cuộc tan công từ chối dịch vụ lớn nhất trong lịch sử
với dung lượng vượt ngưỡng 1,5 Terabit/s (Tbps) [15] Mạng máy tính ma
được tạo ra bởi Mirai đã gửi hơn 750.000 thư rác mỗi ngày [16] Như vậy, việc nghiên cứu về mã độc trên eác thiết bị lơT là rất quan trọng, góp phần
bảo vệ an toàn cho các thiết bị loT cũng như ngăn chặn sử dụng thiết bị
ToT làm cơ sở để tấn công các hệ thống khác
Phân tích mã độc là việc nghiên cứu hoặc quá trình xác định các chức năng, nguồn gốc hoặc ảnh hưởng của mã độc Từ các các mẫu đã có, chúng
ta hướng tới phát hiện và phân tích hành vị độc hại của nó Những mẫu nghỉ vấn có thể được thu thập qua honeypot, máy của các hệ thống bi tan công và các kênh khác Bằng cách phân tích những chương trình chưa biết,
chúng ta xác định được hành vi độc hai và trích xuất cơ chế tấn công, phá
hoại Dựa trên những kết quả phân tích này có thể xây dựng các phòng chống hữu hiệu Có hai cách tiếp cân trong phân tích mã độc là phân tích
Trang 21hoặc cần những phát hiện mới, chuyên sâu
mã độc Phân tích tự động sẽ áp dụng các công cụ để tự động thu thập, bóc
tách, thực thi, trích xuất các đặc trưng của các mẫu đã có Các đặc trưng
này được đưa vào các thuật toán học máy để xây dựng các mõ hình, sau khi
huấn luyện mô hình này có khả năng phát hiện các mẫu mới có hoặc chưa
có trong tập đã được học Với cách tiếp cận này, các quá trình phân tích
là tự động, có khả năng phát hiện những mẫu chưa biết, có khả năng áp dụng đối với số lượng mã độc lớn Các nghiền cứu thời gian gần đây hướng
tới phát triển các phương pháp tự động trong phân tích mã độc để nhanh
e mẫu mã độc mới chưa biết, có số lượng lớn, mức đồ
chống phân tích c¿
ổn và biến đổi nhanh {17] Bài toán phân tích tự động mã độc đã
ác hướng như phát triển các phương pháp bóc tách
tự động, thuật toán trích chọn đặc trưng, môi trường phãn tích động để thu
thập hành vì (sandbox), các thuật toán học tối ưu Tuy nhiên, đây là các
giải pháp áp dụng cho mỗi trường phân tích mã độc truyền thống, còn trên loT thì còn nhiều hạn chế về số lượng và tính hiệu quả
Các nghiên cứu về mã độc trên IøT thời gian qua tập trung vào hai môi
trường chính là hệ
lu hành Android và hệ điều hành Linux nhúng Mã
độc trên hệ điều hành Android được nghiên cứu nhiều trong thời gian gần
đây, các phương pháp động, tĩnh và lai được đề cập khá đầy đủ và đạt kết
quả tốt [18] Các nghiên ứu về mã độc trên hệ điều hành Linux nhúng dang
hướng xây dựng các công cụ phân tích tĩnh [19-22], môi trường phãn tích động [ö, 23-25] các phương pháp trích chọn đặc trưng tối ưu cho phát hiện
mã độc [26-28], phat trién các phương pháp học nhanh cho phan lớp mã
quyết như khả nãng bóc tách phần sụn còn ở mức thấp, các phương pháp trích chọn đặc trưng vẫn chưa hoàn toàn tối ưu cho mã độc trên IoT, cdc đề xuất được thực nghiệm trên tập đữ liệu hạn chế nên chưa thể khẳng định tính hiệu quả, nhiều môi trường phân tích động vẫn chưa được hoàn thiện.
Trang 221.2 Đặt vấn đề
Các nghiên cứu về phát hiền mã độc trên løT trước đã
yếu vào điện thoại đi động với hệ điều hành Android và kiến trúc vi xử lý ARM Một lượng lớn các thiết bị loT sử dụng hệ điều hành Linux nhúng
kiến trúc rất phổ biến nhu MIPS được nghiên cứu một cách hạn
hệ thông (system call - syscall
trên IøT còn nhiều hạn chế, chủ yếu tập trung vào các phân tích kỹ thuật
) Cơ sở dữ liệu phục vụ nghiên cứu mã độc
với các dòng nổi tiếng như Mirai Phương pháp phân tích động gặp nhiều thách thức do các thiết bị loT có kiến trúc đa dạng và nhiều chuẩn khác
nhau do đó khó để tạo được möi trường thích hợp Phương pháp tĩnh bước
đầu có nhiều lợi thế, do mã độc trên IoT ft sit dung các biện pháp bảo vệ
như mã hoá, nén, làm rối v.v Nhưng các phương pháp phân tích tĩnh áp
dụng hiệu quả cho máy tính cá nhãn khi áp dụng sang IoT không hiệu quả
do tốc độ xử lý và môi trường đa kiến trúc Các phương pháp học máy, đặc biết là hoc sau phat triển mạnh trong thời gian gần đây ở nhiều lĩnh vực, song các nghiên cứu áp dụng cho phân tích mã độc trên thiết bị nhúng còn
hoạt động Với mỗi loại mã độc cần các cách tiếp cận khác nhau để phát
hiên cũng như phục hồi lại các thiết bị cho sạch Phần sun la phần mềm
đóng gói phổ biến cho các thiết bị nhúng, đa số các phần sụn trong thiết
bj loT là bản đóng gói của hệ điều hành Linux nhúng Mã độc trong phần sun tập trung vào các đồng như Botnet, DDoS§, Trojan v.v và tồn tai dưới
dạng các tệp tin độc lập, không phải là một đoạn mã chèn vào các tệp tin khác như virút trên máy tính cá nhân
Dé phat hiện các mã độc cài cấm sẵn trong phần sụn, thường là các cổng.
Trang 23Mô dầu 6
hau, có hai cách tiếp cận là hóc tách để phát hiện hoặa giầm sár từ ngoài để
phát hiện các cống mở bắt thường Các cách tiếp cận này đang được thực hiện thủ công với từng trường hợp phân tích cụ thể Phương pháp bóc tách được thực hiện bằng cách bóc tách phần sụn để thu hẽ thống tệp tỉn tường mình của hệ điều hành Linux nhúng và từ đó tiến hành kiểm tra các tệp
tin này có chứa mã độc khóng Trong trường hợp có mã độc, sẽ riến hành loại bỏ và đóng gói lại thành bản phan sun sạch Phương pháp này cần các công cụ bóc tách hiệu quả và phương pháp phát hiểu các mẫu mã đọc trêu
xuôi trường Linux nhúng, đấy là hai thách thức lớn Với
ch giám sát Lừ
ngoài, thiết được hơại động trong hệ thống có giám s phát hiện
cổng mổ hắt thường Phương pháp này đòi hỏi phải mô phông các phần sụn nến muốn triển khai đánh giá với số hượng lớn, chì phí thấp, và nhiễn
trường hợp cổng hậu không được mỏ thường xuyên mà theo điều kiện nhất
định sẽ khá để phát hiện
Đối với mã độc lấy nhiễm từ ngoài, chúng thường đưa trên việc khai thác ]õ hồng bảo mặt tồn tại trên thiết bị sau dó lãy lau Các loại raã độc này
số lượng nhiều, phong phú và biến đối phức tạp, do dé edn xãy đựng các
cơ chế, phương pháp giám sát, phát hiện phức tạp rhậm chí phải liên kết
thông tin từ nhiều nguồn mới có thể xác định hành vi độc hai Những việc
dhệt các mã độc này về mặt kỹ thuật JA dem giản, do chứng tồn tại đưới
dang không thường tri (hdi phan sun của các thiết hị nhúng được lưu trữ
trên các bộ nhớ chỉ đọc như RƠM) nên mã độc sẽ mắt khi khởi động lại thiết hị
"Thiết, bị IơT được nghiên cứu và đề cặp trong luận án được hiểu là loại
thiết bị nhúng (cö chức năng chuyên biệt, tài nguyên hạn chế) và có kết nấi
mang Internet, có nhiều đặc thh khác vái máy tính cá nhân nên cẩn cách
tiếp cân mới Các thiết bị nhúng IaT cố đác điểm là: han chế tài nguyên,
thường xuyên kết nỗi với Internet, tồn tại trong những môi trường kém an
toàn, độc lập trong thài gian dài mà không nâng cắp Các thiết bị nhúng
sử dụng kiến trúc bỏ vi xử lý cũng như hệ điều hành hoàn toàn khác, đa, dạng hơn và hạn chế nhiều thành phần Thiết bị loT thường sứ dụng tập, lệnh đơn giản (Reduced Instruction Set Computing RISC) con máy tính
truyén thống thường sử dụng tập lệnh phức hợp (Complex Instruction Set Computing - CISC), nều cùng ruột mã nguồn khí biến dich sang hai logi thiết bị này, các chương trình trên TT sẽ có đồ thị đồng điều khiến (Control
Trang 24Flow Graph - CFG) phức tạp (nhiều cạnh và nhiều đỉnh) hơn so với các chương trình trên máy tính truyền thống Các phương pháp phát hiện mã
độc trên thiết bị lơ1' phải đảm bảo tính hiệu quả
nhưng cũng giải quyết các thách thức về tính đa dạng của môi trường hoại, động, thiết bị vật lý Do đó, không thế thuần túy áp dụng các nghiên cứu
vẻ mã độc trong máy tính cá nhãn sang thiết bị IoT, mà cần có các phương
phù hợp với tài nguyên,
có # nghĩa lán về lý thuyết và shực tiễn
pháp nghiên cứu
Di tượng nghiên cứu là các mã độc hoạt động trên các thiến nhúng sử
dụng hệ điều hành Lántx Qua khảo sát các tập dữ liệu đã có, các mã độc
nay chủ yếu là dạng tập tin thực thi trên Linux (Executable and Lánkable
mau
Format BL), do đó trong luận án, chúng tôi tập trung nghiền cứu c
mã độc là tếp tin loại này Trong các nghiên cứu quy mnö lớu thời gian gần dảy, bộ vì xứ lý nhúng kiến trúc bộ ví xử lý không có các giai doạu dường,
wor without Intcrlocked Pipclin
ống khỏa liên động (Micropro
MIES) œ
kiến trúc này để đại điện cho kiến trúc ví xử Ì
lượng lớn, do đó các nghiên cứn tập Lrung thực ngh
a cdc thiết bị nhúng luận
án nghiên cứu các thiết bị IaT sử dụng phần cứng là các thiến bị những
và phần mềm là bệ điều hành Linux nhúng, nên gọi chưng là các thiết bị nhúng trêu nền hệ điều hành Linux, các mã độc trên các thiết bi này goi là
xã độc nhúng Nhu vay, cdc miu mã độc nghiên cứu chính trong luận án
Trang 25Mô dầu 8
Dé dat duce muc tiên trên, có năm nhiệm vụ eu thể mà luận ấn tập
trung giải quyết Thứ nhất, luận án cẩn nghiên cứu xây dựng các bô dữ liệu phục vụ nghiên cứu phân tích, phát hiện mã đôc trên thiết bị lơ Thứ hai, luận án nghiên cửu xây dựng công cụ bóc tách phần sụn của các thiết
bị IeT Thứ ba, luận án nghiên cứu xây dựng môi trường mô phỏng phục
vụ phân tích động, thụ thập các hành vì của mã độc trên IoT, vừ đó xảy dựng các mở hình học máy phù hợp cho phát hiện mỡ độc trên loT bằng phương pháp dũng Thứ Lư, luận ấn nghiên cải Liên phương pháp tĩnh trong
chon đã
trưng của thiết bi ToT
tưng có khả năng phát hiên mã độc đa kiến trúc vi xử lý, dac
Với
nghiền cứu sau:
ác xuục tiêu trên, nghiền cứu sinh đã sử dụng cóc phương pháp
Nghiên cứn lý thuyết về các phương pháp phân tích đông, phân tích tĩnh
mã độn, học máy trong phát hiện mã độc
Nghiên cứu lý thuyết thiết kể các thuật toầu cho các bài toán tối tu tổ hop thude lép NP-hard
Khảo sát, phân tích các công trình đã công bố liên quan phân lớp, phát
hiện mã độc, mã đôc TT
ác đè xuất mới và các củi tiêu đều được phân tích đánh giá, chứng mình
(hong qua các suy luận lý thuyết Nghiên cứu sinh kết hựp với các phương, pháp thực nghiệm trên máy tính với các bọ đữ liệu được tạo ra và bộ dữ liệu đã có nhằm đảm bảo tính khách quan về hiệu quả của phương pháp đễ
xuất
1.4 Các đồng góp chính của luận án
Tận án tiếp cần và có các đóng gáp khá đây đủ các vấn đề đất ra trong
phân tích mã độc nhũng trên nên Tinux từ phân tích đông, phân tích tĩnh
đến chuẩn bị đữ liệ Về phân tích đông, lân án xây đưng các môi trường
phân tích động chuyên dung, mang đắc trưng của rnôi trường và cấu trúc
của thiết bị nhúng dùng Linux Về phân tích tĩnh, luận án tập trung cải tiến
Trang 26các phương pháp trích chọn đặc trưng để giải quyết các đặc thù riêng của các chương trình/mã độc trên thiết bị nhúng dùng Linux Để có cơ sở đánh
giá đúng các đóng góp trên và hỗ trợ cho các nghiên cứu của công đồng sau
này về mã độc nhúng, luận án tập trung xây dựng bộ dữ liệu mã độc và
chương trình sạch cho các hệ nhúng dùng Linux Tập dữ liệu được sử dung
để đánh giá thực nghiệm trong các phương pháp phân tích động và tĩnh đề
xuất Các đóng góp cụ thể gồm:
Thứ nhất, xây dựng cơ sở dữ liệu về phan sụn của các thiết bị løT' và mã độc trên loT, gọi là tập dữ liệu Firmware IoT, F-IoT() Day là cơ sở dữ liệu
có số lượng lớn và tương đối đầy đủ về các phần sụn của các thiết bị IoT,
mã độc và mã sạch trên thiết bị loT' đến thời diểm hiện tại Tập mã độc của F-loT' được xây dựng trên cơ sở kết hợp các tap đữ liệu từ Detu [25],
IoTPOT [23] và VirusShare [30] Tập phần sụn được thu thập dựa trên công
cụ F-Crawler là bản nâng cấp từ bộ thu thập tự đông của Firmadyne |6, 7Ì Các phần sun sau khi được thu thâp được phân loại, bóc tách bằng công
cu F-toolkit do luận án phát triển để thu thập các mẫu sạch Các phần sụn
cũng được sử dụng trong F-Sandbor để tạo môi trường hệ thống Các tệp
tin bao gồm cả mã độc và chương trình sạch sau đó được tiến hành phân
tích, lọc nhiễu, gần nhãn theo nhiều tiêu chí phục vụ phần thực nghiệm
F-loT là tập dữ liêu lớn !, được sử dụng trong thực nghiệm của luận án va
có ý nghĩa lớn cho các nghiên cứu của công đồng sau này về lơT Đóng góp này của chúng tôi đã được công bố vắn tắt trong các báo cáo hội thảo [PP5, PP8, PP9j và sau đó được đăng thành phiên bản đầy đủ trong bài tạp chí
[PP3] F-Toolkit và tập dữ liệu tiếp tục được bổ sung trong báo cáo hội thảo
[PP7], hai cách phân loại mã độc được trình bày trong bài [PP4]
Thứ hai, đề xuất quy trình phát hiện mã độc trên thiết bị loT bang
phương pháp phân tích đông F-8anđboz như một loại sandbox mới, chuyên
dung cho các thiết bị ldT' dưa trên hệ điều hành Linux nhting, F-Sandbor
được phát triển dựa trên QEMU [31], kế thừa các kỹ thuật của Firmadyne
[6] có khả năng mõ phỏng đầy đủ các thành phần vật lý của bộ định tuyến, mang Internet và trích xuất các lời gọi hê thống dựa trên nhân Linux 2.6
được sửa đối (instrumented kernel) F-Sandbox c6 khả năng kích hoạt hầu
hết các mã độc trong cơ sở dữ liêu thực nghiệm, dữ liệu thu được có khả
1 Gồm mẫu trên 8 loại kiến trúc vi xử lý khác nhau với gần 25.000 mẫu mã độc và mẫu sạch
Trang 27đủ trong các bài tạp chí PP, PP3,
Thit ba, đề xuất thuật toán trích xuất đặc trưng của các tập tin thực thỉ
(chương trình chứa mã độc và chương trình sạch) đưa trên luỗng điều khiển (Control flow-based feature) o6 hiéu qua va hiéu suét cao che viée phát hiện
ma déc trén thi bi lol, goi la CE'D (Control flaw-based feature extraction
dynamic programing algorithm) CFD 13 phương pháp trích xuất đặc trưng, dựa trên giải thuật quy hoạt động, có tốc độ xử lý nhanh, sử dụng §t bộ nhớ,
có khả năng, phát hiệu tắt cố các đường thực thỉ trong các tệp tin thực thị,
do đó cho độ chính xác cao hơn các phương pháp truyền thống như phương pháp dựa trên duyệt sâu của Ding và céng su [32], va cho phép xt lý các tếp tín lớn, có nhiều khối cơ bản (basic block) Lý luận và thực nghiệm dã
ching minh, CFD phù hợp cho việc trích chọn đạc rrưng của các chương
trình trên các thiết bị IøT, do đây là các máy tĩnh sử dụng tập lệnh cơ bản rút gọn (RISC), nên có đổ thi luêng điển khiển (CTG) phức tạp (nhiễu canh
và nhiều đỉnh) hơn so với các chương trình rrên máy tính truyền thông sử
dụng tập lệnh phức hợp (C18C) Dóng góp này của chúng tôi đã được công,
hồ vấn tắt trang báo cáo hội thảo [PP6] và được đăng thành phiên bản đây
đủ trong các bài tạp chí PP2]
Quấn nàng, phát triển phương pháp trích chọn đặc trưng ŒFDVex trên
cø sở thuật roán CED để phat hiện mã đặc nhúng đa nền tầng vì xứ lý
day là môt trong những xu thế xuất hiện của mã đc rrân loT Đác trưng này cho phép hoc các mã đôc trên kiến trac cf để phát hiên các phiên bản
mã độc trên kiến trúc vi xử lý mới I'hương pháp CD sẽ tiến hành dich
ngược chương trình thành giá mã máy (apcode) của một kiến trúc cụ thé nến chí cho khả năng phát hiện mã độc trên loại kiến trúc đó Trong khi đó, phương pháp CFDVex sẽ địch ngược chương trình về mã trung gian Vex,
sau đó ấp dụng thuật toán tương tự CFD để trích xuất thông tìn đặc trưng
dựa trên luỗng diễu khiến của đồ thì với các dỉnh lä chuối các dai điện của,
kinh Vex Luau án để xuất và lựa chọu cách lấy đặc tuưng phũ hợp dé cho
Trang 28hiện quá phát hiện mã độc cao nhất Thực nghiêm cho thấy, CFDVex cá khả năng phát hiện rã độc đa kiên trúc với độ chính xác cao, mở ra hướng nghiên cứu để xóc định
lên hệ giữa rã độc trên các kiến trúc khác nhau Dồng góp này của chúng tôi đã được công bố vấn tất trong báo cáo hội thảo |PP7|
Các nghiên dữn của luận án nhằm hướng tới xây dựng một bộ phương,
pháp hoàn chính gồm các phương pháp động và phương pháp tĩnh để p
hiện mã đậc trong các thiết bị TạT sử dụng hệ điều hành Linux nhving Céc
thưc nghiêm cho kết quả tốt và mở ra nhiều hướng phát triển tiếp theo
1.5 Cấu trúc luận án
Luận án ban gồm năm chương, eu thể nội đung các chương như san
Chương 1 Mở đâu Lình bày về lý do dhọu đề thi và nội dụng nghiền cứu của luận án,
Chương 8 Phân tích mã độc trong rác hệ thống nhúng trình hày về các
kiến thức nên được sử đụng trang huận ân Dần tiên chương này trình bay
bổng quan về hệ thống nhúng bao gầm khái niệm, đặc điểm, ứng dụng của,
hệ thắng nhúng và mật hệ thống nhúng tiêu biểu được tập trung nghiên cứu
trơng đề tài là thiết bị định tuyến Tiếp đó, chương này trình bay về phần mềnn nhúng, trong đó tập truug hệ điều hành nhũng và phần sun (ñaware) của cáo thiết bị nhúng, thiết bị IoT Cúc loại mã độ
¿ trên thiết bị nhúng, được trình bày làm eở sở cho các phân tích, phát hiện mã độc trêu thiết bị nhúng ở phần cuỗi
Chương 3 Giả: pháp phân tích động các mã độc những trình bày kiến trúc #¬8andboz và hai quy trình sử dụng F-Sandbea cho phát hiện, phản lớp mã độc trên thiết bị lơI' bằng phương phép động, sử dụng đác trưng về
Ki gọi hệ thống #¬6andboz là sandbox chuyến dung dé phan tich ma độc
tiên thiết bị lợi, dựa trên việc mö phỏng các phần sụn thực tế, Quy trình phát kiện mã dọc dược xây dựng trồn cơ sử đặc trưng lời gợi hệ thống dựa,
trên F-Sandbor sit dung phương pháp phân lắp một lớp SVM (Oue clasa
SVM), Quy trình phản lớp mã độc thực nghiệm với ba phương pháp học
mấy phổ biến để tìm phương phấp tỗi ưu cho quy trình.
Trang 29Mô dầu 12
Chương { Phương pháp trích xuất đặc trưng đăng điệu khiển trình bày hai phương pháp trích xuất đặc trưng dàng điểu khiển mới áp dung hiệu quả cho phát biện mã độc trên thiết bị lz[ là CứD và CEDVcx Phương pháp mới dựa trên ý tưởng quy hoạch đêng để trích xuất đặc trưng dòng điều khiến dựa trên lệnh thực thi và ngôn ngữ trung gian Vex với tốc độ tính toần nhanh, sử dụng ít bö nhỏ, có thể áp dụng hiệu quả cho các tệp tin
dung lượng lớn Thực nghiệm so sánh phương pháp dễ xuất với các phương phắp cũ chỉ ra rằng phương phấp tuổi cho kết quả vượt trội hơu về cae dé
do trêu Lap dữ liệu E-IoT, đặc biệt CPDVex cho khả năng phát hiệu mã độc
trên
trúc mới với độ chính xác cao
Chỗi cùng, Chương ñ phãn tích về các đóng góp chính của luận án và
thảo luận về các nghiên cứu trong tương lai từ các kết quả ban đầu đã, đạt
được
Trang 30PHÂN TÍCH MÃ ĐỘC TRONG
CÁC HỆ THỐNG NHÚNG
Chương này trình bày các kiến thức cơ sở liên quan đến phân tích mã
độc nói chung, các thiết bị nhúng và đi sâu vào phân tích mã độc nhúng Dau tie
hướng vào bài toán sử dụng học máy trong phân tích mã độc Tiếp theo, chúng tôi trình bày các kiến thức cơ sở về các hệ thống nhúng gồm thiết bị nhúng, hệ điều hành nhúng, hệ điều hành Linux nhúng Phần cuối chương trình bị
đặc điểm, các môi trường và công cu phan tích đã có và các phương pháp
phân tích mã độc nhúng trong thời gian gần đây
Đa số các mã độc trong quá khứ được sinh ra tập trung vào máy tính
cá nhãn sử dụng hệ điều hành Windows của Mierosoft, vì hệ điền hành này chiếm đa số trên thị trường, khoảng 83% thị trường máy tính cá nhân [31j
18
Trang 31Chương 9 Phân tích mã độc trong các hệ thống nhúng 14
của Internet vạn vật (løT) trong cuộc cách mang công nghiệp lần thứ tư,
mã đốc hướng tới các thiết bị này cũng tăng lên nhanh chóng Các thiết bị nhúng rất khác với máy tính cá nhân truyền thống ở kiền trúc bộ vi xử lý sử
dụng và hệ điền hành, Các thiết bị di động sử dụng hệ điều hành Android
chiếm số lượng tương đương với các thiết bị sử dụng hệ điều hành Windows [34] nên các nghiên cứu về mã độc trên môi trường này cũng được đề cập nhiễu trong thời gian qua [35] Ngoài ra, một lượng lớn trong các thiết loT'
sử dụng hệ điều hành Linux nhiing (Embedded Linux) [6, 7], đó là cơ sở
phát triển các mã đôc trên Linux nhúng, gọi tắt là mã độc nhúng,
2.1.2 Bài toán phân tích tự động mã độc
Bài toán phân tích mã độc hướng tới ba mục đích: phát hiện mã độc (malware detection), phan tich độ tương tự của mã doe (malware similarity analysis) va phat hién loai ma dc (malware category detection) [36] Phat
hiện mã độc có mục đích xác định mẫu đầu vào có phải là mã độc (malicous) hay không Phân tích đô tương tự của mã độc là chỉ ra những điểm giống
nhau giữa các mã độc, như tìm ra những điểm tương tư giữa các mã độc mới
xuất hiện với các mã độc đã có từ trước Có bồn kiểu phổ biến trong phân
tích độ tượng tự của mã độc là phát hiện sự biến đổi (variants detection), phát hiện theo các họ (families detection), phát hiện độ tương ty (similarities
detection) và phát hiện sự khác biệt (differences đetection) Phát hiện sự
biến đổi tức là phát hiện một mẫu mị
có phải là do một mẫu đã biết được
biến đổi để thành biến thể mới nhằm chống lại các cơ chế phát hiện Phát hiện theo các họ tức đưa vào mẫu, xác định mẫu này thuộc họ nào trong các
họ đã có, hay người ta còn gọi là bài toán phân lớp mã độc Phát hiên đô
tương tự tức phát hiện một phần trong những đặc trưng thu được của mẫu
đã có trong cơ sở dữ liệu Trong khi phát hiện sự khác biệt sẽ tìm ra những
phần của đặc trưng khác với những đặc trưng đã có, đây có thể là các đặc
trưng mới xuất hiện Phát hiện loại mã đ
à viêc dưa trên các hành vi nồi
bật và mục đích để phân mã độc thành các loại khác nhau như gián điệp
(spy), điều khiển từ xa (remote) v.v Trong luận án, chúng tôi nghiên cứu
hai mục tiêu là phát hiện mã độc và phân lớp mã độc.
Trang 32Xát về loại đặc trưng trong phát hiện mã độc, có hai phương pháp phát hiện mã độc là phát hiện dựa trên chữ lcý và phát hiên dựa trên hành vi Phát hiện dựa trên chữ ký (Signaturo-based detcction) là phương pháp xây dựng tập dấu hiệu đặc trung của các taẫu taã độc đã biết /gọi la chit ky)
và sử dụng tập chữ ký này để phát hiện mã độc Thông thường, tập chữ ký
sẽ được tạo ra dựa vào những kết quá phân tích thủ cóng của các chuyên gia khi phân tích các mã dọc dã xuất hiện Phương pháp này dang dược sử dụng phổ biếu bởi các phầu mềuu điệt virút thưởng mại do độ cảnh báo sai thấp, tuy nhiều bạn chế lớn nhất là không có khả năng phát hiện các biến
thể
hành vi bất thường dưa trên các hành vi bình thường mà chúng thn thập
i Phát kiện dựa Lrên hành vi (Behavior-based detection) sẻ xác định
được đựa trên hai pha huấn luyên và nhận đang Trong pha huấn luyến, hồ
phát hiện sẽ được học các hãnh ví binh thường Ứu điểm quan trong của
phương pháp này là có khả năng phát hiện tấn công zero day va han chế lớn nhất là độ cảnh báo sai cac, rất khó xóc định đặc trưng đưa vào bước
huấn luyện 'tong luận án, chúng tôi tiếp cận theo hướng phát hiện mã độc
dựa trên hành vì để hướng tới phát hiện các mã độc xuất hiện mới
C6 hai phương pháp phần tích mâ độc phổ biến là phân tích tĩnh và phan
tích đông Mỗi phương pháp phân tích có ưu điểm và han chế khác nhan,
nh phân tích thường hỗ trợ nhan và nhiều tình huỗng kết hop
trang quá
thông tin với nhau để cho kết quả tốt nhất Phương pháp nhân tích kết hợp
hai loại nhân tích này goi là phương pháp lai
Phản tích tĩnh là phương pháp phần tích mầu dựa trên những đặc trưng,
của các thie thi chủng, Đầu vào của phân tích tĩnh có
hực hiện trên mã nguẫn rường rainh hoặ Ap tin thực thì Phần
tích tính thường đôi hỏi người phản tích xem xết kỳ mã nguồn của mã
nấu trà không cả
đốc (đã được chuyển sang đang có thể hiển được, như assembly, hay C)
hiểu luồng thưc thì và các hành vi sủa nó thông qua eác đoạn mã Phân
tích tĩnh được thực hiên dưới sự hỗ trợ của các công cu sỡ rối (debugger} dịch ngược (disassembler) như ØiigĐủg, DA, Angr Phân tích tĩnh mã độc
có thể đảm bảo hiểu được đoạn mã và biết được các hành động có thể có khi mã độc thực thi Có nhiều loại đặc trưng có thể thu được thông qua
phân tích tĩnh mã đọc như: thông tin vé tép tin (meta data), đồ thị đồng diều khiển (Control Flow Graph - CFC), dé thị ding dit ligu (Data Flow Craph - DFG) chudi gid ad, (hut thi (Operation Code - apeude), Ii gui
Trang 33Chương 2 Phân tích mã độc trong các bệ thẳng nhúng 16
giao điên lập trinh (Applieation Programming Inberfaces - ÁP), các xâu có thé hidn thi (Printable String Information SI) v.v Phuong pháp phân tích tĩnh cũng còn tốn tại nhiều vấn đề nghiên cứu cần giải quyết như xác định chính xác kiến trúc vì xử lý, dịch ngược mã nhị phân thành mã nguồn tường minh hay xây dựng chính xác các dỏ thị liên quan đổi với những lệnh nhãy giấn tiếp trong codc (ndircet jumps) [37| Với những khó khăn gặp
phải trong quế trình phần tích các mẽ độc dung lượng lớn, phức tạp khi sử dụng phương phấp phản tích tính, thủ phương pháp phân tích động đông,
uột vai trồ quan trọng,
Phân tích động là phương pháp phân tích các hoạt động của mẫu khi
mẫu được thực thi thực sự (trong môi trường vật lý hoặc mô phẳng) Phản tích động thường sử dụng các công cụ mô phông để chạy trực tiếp chương
trình từ đó kiểm trả hành vì thể hiện của các mũ độc trong quá trình chạy Phương pháp này yếu cẩu các nhờ, phát luiển phẩi có hiểu biết sảu vỗ
thống hoạt động của thiết bị cần phần tích Có hai loại đữ liẹu thu được qua phẩu vích động thường gặp, dó là đữ liệu về tương tác hệ thông và các
bọ nhớ Dữ liệu
về mạng mồ tả các tương tác của phần mềm với mạng bền ngoài, trong khí
đữ liêu vẻ hệ thắng cung cấp cho ta thông tin về các tác động đối với hệ
dữ liệu về tương tắc mạng, ngoài ra còn có các thủng tin
điển hành bên trong Các đặc trưng từ đữ liện về hệ thắng có thể là các lời gai hệ thống (systam call), các hàm tương tác với hệ điều hành và cdc thar
số như tên tập tin, đường dẫn v.v Dữ liệu mạng cá thể là các gói tin trao
đổi bao gồm cả tiêu để và nội đung (payload) Phương pháp phân tích động giám sát các hoạt động của mã độc, cách thức thực thi lầy lạn như thế nào
nó kết nối đến dầu, cài đặt những gì vào hệ thống, thay đổi thành phần nào
nhằm tuục đích ngăn chặn việc lấy nhiễm, bao ra các dẫu hiệu nhận dạng,
hiệu quả Việc phân tích mã đốc đồi hỡi qua trình Uheo đối liên Lục và lặp
đi lặp lại thite hiệu trên hệ thông thiết bị thật sẻ n t nhiều cổng
sức và thời gian và cũng có thể gãy thiệt hại lớn cho cA hệ thống, Vì thể,
rân phải thất lập một môn trường an toàn cho việc thực thi mã độc để nó
thể thu vhập thông tin về mã độc một cách tốt nhất gọi là sandbox
Trong nghiên cứu về phát hiện và phân lớp mã độc, có hai vấn đề cần
giải quyết là xác định cách biểu diễn mmã độc và lựa chọn bộ phản lớp tối ưu Vấn dễ biểu diễn mã dọc phụ thuộc vào phương pháp phần tích mã dọc và phương pháp lrích xuất đặc trưng, Chúng ta uần xác định thông tin của mã.
Trang 34đốc cần trích xuất và cách để trích xuất, trình bày các thông tin dé để đại
dién cho mã độc Vẫn để lựa chọn bộ phân lớp tối ưu liên quen đến thuật toán phân lớp, lựa chọn bộ tham số và đánh giá bộ phân lớp đó với tập dữ
liệu huấn luyện và kiểm tre
Như vậy, bài toáu phân Lich Lự động xuã độc trong luận ám đề cập là xây
dựng các công en, thuật toán trích xuất cá:
định
năng phát hiện, phân lốp mã độc tự động với độ chính xác cao và chỉ phí
thấp Cách tiếp cân này cô khả năng phát hiên các mẫu mã độc mới bằng các công cụ và mô hình đã xây dựng, không cần bước phân tích thủ công
đặc trưng hành vi cña mã độc
tur động, x: c phương pháp học máy và mô hình phù hợp để cá kha
để tìm ra các chữ ký để làm cơ sở phân loại, phát hiện mmã độc.”
trưng của mẫu phục vụ mục địch phần tích mẫu
Đầu vào của trích xuất đặc trưng trong bài Loán phân tích mã độc là ruẫu
sạch đã
Các véc to nay sẽ là đần vào cho việc xây đựng mö hình huấn luyện hoặc
phát hiện đưa trên mô hình đã được huấn luyện Trích xuất đặc trưng có
thể gồm nhiễu bước nhả hơn như lựa chạn đặc trưng (feature selection)
mã độc/mẫu sạch, đầu ra là vếc td đặc trưng của mã độc /mẫn
giảm chiều (dimensionality reduction}, chuẩn hóa dữ liệu (featuro scaling
and normalization), Diu tiên, từ mẫu ban đẫn (raw data) chúng ta phẩi
lựa chọn đặc trưng cần trích chọn như chuối by‡c, cáo chuỗi ký tự đọc được
trong lên tỉn, thông tin về tệp tìn, hay các đặc trưng khác khi thực thí tệp,
từ mẫu dé dưa vào lưu trữ trong
các đặc trưng nà
n ấp dụng các phương pháp giảm chiều để lựa chợn
tin sinh ra Sau dó lá
6 Tit vée tơ nầy
lại những đặc trng nàa cả giá trị cao nhất, loại hỏ các đặc trưng ít thông
tin, sao cho véc cơ đặc trưng thụ được san khí giảm chiều chứa đầy đủ hoặc
gần như tất c thông tin ban đầu của mẫu Việc giảm chiều giúp việc lưu trữ ít và tính toán nhanh hơn, một số tình huỗng càn giúp giảm các nhiễu
hoặc thông tín từ mẫu ngoại lai Sau đó véc tơ đặc trưng cần được chuẩn
Trang 35Chương 2 Phân tích mã độc trong các bệ thẳng nhúng 18
hóa để và khoảng đữ liêu chuẩn phù hợp với đầu vào của các mẽ hình huấn
luyên, nhận dạng Ví du chuẩn hóa các giá trị véc ta về đoạn [Ú 1]
Đặc trưng của mẫn mã đọc có thể thu được bằng phương pháp phân tích tĩnh, quá trình phần tích dộng hoặc kết hợp hai phương pháp trên Các loại
đặc
thực thì (opeode), thôi
rưng thụ được bằng phương pháp phân tích tĩnh phổ biển như: giỗ mã
dan tép tin {file header), dé thi dong diéu
tin p
khiển v.v Phương pháp phân tích động cho các loại đặc trưng nhĩ thông
tim tương tác mạng, nhật ký lài gọi hệ thống (syscall), thông tin vé sit dung
tài nguyên CPU, RAM v.v Luân ấn nghiên cứu sử dụng cá các đặc trưng
phân tích tĩnh và phân tích động Dặc trưng phân tích tĩnh trang luận án
sử dụng là đặc trưng dòng điều khiển mức giải mã thực thi và mức ngôn
nựữ trung gian Vex Đặc trưng phân tích động sử dụng là nhật ký lời gọi hệ théng syscall
2.1.8.2 Các loại đặc trưng
Đặc trưng giả mã thực thí
Giả mã thực thì (peration code - Opcode) là dãy các lệnh cơ bản được thực hiện tren bộ vì xử lý, Nó là mã mấy trữu tượng mức thấp hay cõn gọi là ngôn ngữ máy dé thực thì vác loạt động của một loại vì xử lý nhất,
đình Mỗi loại vì xử lý khác nhan lại sử dụng một tệp lệnh khác nhau Theo thực nghiệm của luận án, các chương trình MIIPS EI.F chứa 146 loai oncode khác nhan Chuỗi opcode được trích xuất từ việc địch ngược (đisassembly)
từ tệp bin nhị phân có thể thực thi (executable) mô tả các hành vi của một,
chương trình và có thể được trích xuất thống qua phân tích tĩnh Ví đu kết,
quả dịch ngược một đoạn chương trình thực hiện hai phép tính trên mang
Trang 36Sử dụng opeode trong phát hiện ma độc lần đầu tiêu được đồ xuất bởi
Bilar (3§] và tiếp đó nhiều nghiên cứu cũng phát triển các phương pháp dựa
trên opcode trong phát hiện, phân lớp mã độc [32 39-12] Santos và cộng
¡ của các loại
sự [42] đã đề xuất phương pháp Idea để phát hiện sự biến d
mã độc dựa trên tần suất xuất hiện của các dãy lênh thực thi Từ các dãy
lệnh thực thi của chương trình họ xây dựng véc tơ đại diện cho tệp tin thực
thi
Đặc trưng ngôn ngit trung gian Vex
Có một số đặc trưng của chương trình khi dùng để phát hiện mã độc ít phụ thuộc vào kiến trúc vi xử lý như PSI, API call Những đặc trưng này có
khả năng tốt trong việc phát h
Trang 37Chương 9 Phân tích mã độc trong các hệ thống nhúng 20
Representation - IR) trong phân tích các chương trình đa kiến trúc ví xử
lý, mỏ ra hướng ứng dụng cho phát hiện mã độc đa kiến trúc Nhằm giải
quyết vấn đề phức tạp trong đa kiến trúc bộ vi xử lý, công trình [44] đã dé cập đến phương pháp xử lý chéo trên các kiến trúc thông qua các ngôn ngữ
trung gian để tìm lỗi trong các phần mềm nhúng mã không phụ thuộc vào
kiến trúc chip Phương pháp này giúp phát hiện lỗ hổng bảo mật, cổng hậu
tôn tại trong các thiết bị định tuyến
Ngôn ngữ đại diện trung gian (Intermediate Representation Language) là
ngôn ngữ đại diện của chương trình khi chuyển từ ngôn ngit ngudn (source)
sang ngôn ngữ đích (target), Mot ngon ngữ đại điện trung gian tốt là ngôn
ngữ hoàn toàn độc lập giữa ngôn ngữ nguồn và ngôn ngữ dích, do đó sẽ
làm tối ưu hóa khả năng dịch giữa nguồn và đích hay phân tích độc lập nền
Ngôn ngữ trung gian Vex (Vex Intermediate Representative - Vex) [45]
là ngôn ngữ trừu tượng hóa các kiến trúc khác nhau, cho phép phân tích
và xử lý trên một ngôn ngữ duy nhất cho nhiều kiến trúc khác nhau: tên
thanh ghi, truy cập bộ nhớ, quản lý bộ nhớ, hiệu ứng biên của các lệnh Có bồn thành phần chính được đề cập trong Vex:
— Biểu thức - Erpression trình bày biểu thức tính toán hoặc giá trị hằng số;
— Todn tit - Operation nhan tố thay đổi giá trị của biểu thức;
Trang 38— Biển lạm - Temporar uariable được sử dụng như thanh ghỉ trong, kết
quả Điểu thức được lưu trong biến tạm;
— Cầu lệnh - Statement mô hình chuyển trạng thái trong máy đích, như
hiệu ứng ghi bộ nhớ, thanh ghi Câu lệnh sử dụng biểu thức để tính toán giá trị;
— Khối - Block là tâp hợp các câu lệnh Vex, đại diện cho khối cơ bản
trong kiến trúc đích
Vex duge mo ta chi tiét trong tép tin libvex_ir-h [46] Ví dụ về việc chuyển
nh thực thi của MIPS được trình bày trong Bảng 2.1 Trong ví dụ này, lệnh thuc thi (push ebp) được dịch tương ứng với năm câu lệnh trung gian
Vex; lệnh thực thi (mov ebp, esp) dude dich thành hai câu lệnh trung gian
nh chứa ít nhất 1 biểu thức Có tất
gian [46], mỗi kiểu lại có nhiều mẫu (templates) để biểu diễn cách các biểu
thức, toán tử và biến tạm kết hợp với nhau
Vex là ngôn ngữ trung gian được sử dụng trong Valgrind [47], một công
cụ phân tích nhi phân phổ biến và nồi tiếng Dây là ngôn ngữ đc lập, không
bị tác đông bởi ngôn ngữ đích, được hỗ trợ tốt trong quá trình dịch mã Nó
trừu tượng hóa mã máy vào các ngôn ngữ đại diện (representation) làm cho
chương trình dé hi
VINE (VINE-IL) được đề xuất bởi Song và cộng sự [4], sử dụng trong dự
án BitBlaze và công cụ phân tích mã độc Panorama [19], cũng phát triển
trên cơ sở sử dụng Vex VINE đầu tiên dịch mã nhị phân sang Vex, sau đó
mới chuyển sang VINE-IL Vex được sử dụng trong Anør [21], công cụ mã
éu, dé phan tich [45] Thêm vào đó, ngôn ngữ trung gian
nguồn mở nổi tiếng dùng trong phân tích mã độc trên thiết bị lốT Angr
sử dung Vex là ngôn ngữ trung gian bởi khả năng dịch mã từ nhiều kiến
trúc có độ tin cậy cao đã được sử dụng và chứng mính trong Wølgrind (50
“Thêm vào đó, các tài liệu và đặc tả được hỗ trợ rất tốt cho Vex
Đặc trưng đồ thị dòng điều khiển
Đồ thị dong điền khiển (CFG) cia mét tap tin thực thi là một đồ thị có hướng ớ = (V, E, r L) trong đó:
— V là tập các đỉnh, mỗi đỉnh là một khối cơ bản (basic block) trong tập
tin thực thi sau khi được dịch ngược, gồm chuỗi các câu lệnh liên tiếp
nhau mà ở đó đòng điều khiển đi vào tại điểm khởi đầu và đi ra tại
Trang 39Chương 9 Phân tích mã độc trong các hệ thống nhúng 2
điểm kết thúc mà không bị dừng đột ngột hoặc xử lý rẽ nhánh trước
khi kết thúc
— E là tập các cạnh, được tạo ra bởi các lệnh jumps/calls/rets lệnh thực
thi giữa các khối cơ bản của chương trình thực thì sau khi được địch
ngược Với mỗi cạnh có hướng (u,0), u được gọi là đỉnh đầu và ø được
gọi là đỉnh cuối của cạnh Khí duyệt đồ thị, w được gọi là cha của ”
và ø được gọi là con của u;
— r là đỉnh đầu tiên hay nút gốc của đồ thị, có bậc vào là 0 (tức không
có cạnh nào đi đến r), nó là khối cơ bản chứa điểm bắt đầu (Entry block) của chương trình;
— L là tập các lá, tức bậc ra của đỉnh là 0 (hay từ đỉnh này không có
cạnh nối đến các đỉnh khác), nó là các khối cơ bản kết thúc chương, trinh (Exit block)
0 | push add jexz
jexz +) add +| mov
Hình 2.1: Dé thi dòng điều khiển với các đỉnh chứa opeode
Mot ví dụ về một phần đồ thị dòng điều khiển của một chương trình thực
thi sau khi dịch ngược được minh họa trong Hình 3.1 Mỗi đỉnh sẽ được ký
hiệu bằng một nhãn để thuận tiên trong các thao tác với đồ thị, do đó đồ
thị đòng điều khiển được thể hiên như trong Hình 2.2 Để xây dựng được một đồ thị CFG thường tuân theo quy trình sau: gỡ rối, dịch ngược và diễn
giải dữ liệu (interpretation) Kết thúc quy trình này, một đồ thị dòng điều
khiển CFG hoặc đồ thị luồng dữ liêu (DEG - Data Flow Graph) được xây
Trang 40Sw
Hinh 2.2: Dé thi dong diéu khién
dựng Các đồ thị này thể hiện quy trình thực thi và hành vi của mã độc
“Tuy nhiên, thách thức chính của cách tiếp cận này là xây dựng và phân tích
được quy trình thực thi, hành vì từ các mã nhị phân đối với các tập tin lớn
và phức tạp
Mỗi tập tin thực thi thường có những dé thi CFG đặc trưng, vì thế trong hướng phân tích tĩnh, các nhà nghiên cứu thường xây dựng tập dữ liệu đỏ
thi CFG mã độc và dùng phương pháp đồ thị đẳng cầu để đánh giá một tấp
tin đầu vào có phải mã độc hay lành tính Nghiên cứu tiếp cận theo hướng
này có thể kể đến như [32, 43]
Đặc trưng lời gọi hệ thông
Lời gọi hệ thống (System call - Syscall) là lệnh mà chương trình yêu cầu các dịch vụ từ nhân hệ điều hành, bao gồm các dịch vụ liên quan đến phần
cứng như truy cập đĩa hay cạc mạng, tạo hay xử lý các tiến trình Lời gọi
hệ thống xác định giao tiếp giữa hệ điều hành có độ tin cây cao và chương
trình có độ tin cây thấp Hành vi của một chương trình có thể được hiểu
như là tương tác của nó lên hệ điều hành nơi mà nó được thực thi Do đó
lời goi hệ thống có thể được xem như các hành vi cơ bản của chương trình
khi thực thi trên hệ điều hành
Khi chương trình thực thi sẽ gọi các lời goi hệ thống, do đó chuỗi các lời gọi hệ thống được gọi khi thực thi chương trình là chuỗi hành vi thể hiện đặc trưng của chương trình đó khi hoạt đông Ví dụ dãy như lời gọi hệ