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

DỰ BÁO NHIỄM MALWARE TRÊN THIẾT BỊ DI ĐỘNG BẰNG KHAI PHÁ DỮ LIỆU

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 (734.34 KB, 51 trang )

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Nguyễn Anh Vũ

DỰ BÁO NHIỄM MALWARE
TRÊN THIẾT BỊ DI ĐỘNG BẰNG KHAI PHÁ DỮ LIỆU

KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công

nghệ thông tin

HÀ NỘI - 2014


ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Nguyễn Anh Vũ

DỰ BÁO NHIỄM MALWARE
TRÊN THIẾT BỊ DI ĐỘNG BẰNG KHAI PHÁ DỮ LIỆU

KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công

nghệ thông tin

HÀ NỘI - 2014



VIETNAM NATIONAL UNIVERSITY, HANOI
UNIVERSITY OF ENGINEERING AND TECHNOLOGY

Nguyen Anh Vu

FORECASTING MALWARE INFECTION
IN MOBILE DEVICES BY DATA MINING

Major: Information Technology

Supervisor: Assoc. Prof. Ha Quang Thuy

HÀ NỘI - 2014


Lời cảm ơn
Lời đầu tiên, tôi xin gửi lời cảm ơn và lòng biết ơn sâu sắc nhất tới PGS.TS Hà
Quang Thụy đã tận tình hướng dẫn và chỉ bảo tôi trong suốt quá trình thực hiện khóa
luận tốt nghiệp.
Tôi xin chân thành cảm ơn các thầy, cô trong trường đại học Công Nghệ - đại
học Quốc gia Hà Nội đã tạo mọi điều kiện thuận lợi cho tôi học tập và nghiên cứu.
Tôi cũng xin gửi lời cảm ơn đến các thầy cô, các anh chị, các bạn trong phòng
thí nghiệm KT-Lab đã hỗ trợ tôi rất nhiều về kiến thức chuyên môn trong quá trình
thực hiện khóa luận.
Tôi xin cảm ơn các bạn trong lớp K55CLC đã ủng hộ và khuyến khích tôi trong
suốt suốt quá trình học tập tại trường.
Cuối cùng, tôi xin được gửi cám ơn vô hạn tới gia đình và bạn bè, những người
đã luôn bên cạnh, giúp và động viên tôi trong quá trình học tập cũng như trong suốt
quá trình thực hiện khóa luận này.

Tôi xin chân thành cảm ơn!
Hà Nội, ngày 13 tháng 05 năm 2014
Sinh viên
Nguyễn Anh Vũ

i


DỰ BÁO MALWARE TRÊN THIẾT BỊ DI ĐỘNG
BẰNG KHAI PHÁ DỮ LIỆU
Khóa QH-2010-I/CQ, ngành công nghệ thông tin.
Tóm tắt khóa luận:
Trong những năm gần đây, số lượng malware cùng tỉ lệ nhiễm mã độc đã tăng lên
đáng kể, đặc biệt là trên nền tảng di động. Các phần mềm quét malware đôi khi vẫn bỏ sót
hoặc không nhận dạng được các mã độc do các công cụ này dựa vào một danh sách các
malware đã xác định trước theo thống kê và được cập nhật dần dần. Do vậy, khóa luận này
xin đề xuất một mô hình dự báo khả năng nhiễm malware theo hướng tiếp cận bằng khai
phá dữ liệu, cụ thể là sử dụng luật kết hợp.
Khóa luận tập trung vào các phương pháp vận dụng luật kết hợp vào bài toán dự
báo malware. Dựa trên các dấu hiệu về trùng hợp malware và đặc trưng các thiết bị nhiễm
malware, khóa luận đề nghị một mô hình dự báo dựa trên tập luật biểu diễn theo đặc trưng
thiết bị. Khóa luận cũng xây dựng một phần mềm thi hành mô hình dự báo được đề xuất.
Kết quả thực nghiệm trên tập dữ liệu do các tổ chức chuyên nghiệp cung cấp (tập dữ liệu
Carat và tập dữ liệu malware) cho ra 225 luật dự báo thuộc diện luật hiếm (độ hỗ trợ thấp
và độ tin cậy cao).
Từ khóa: dự báo nhiễm malware, luật kết hợp

ii



FORECASTING MALWARE INFECTION IN MOBILE DEVICES
Nguyen Anh Vu
QH-2010-I/CQ course, information technology faculty
Abstract thesis:
In recent yeas, the number of malware and rate of being infected by malicious
scripts were increased significantly, especially in mobile framework. Malware scanning
tools sometimes omit or can not identify malicious scripts because these tools is based on
the list of malwares given statistically and updated daily. Therefore, the thesis suggest a
model forecasting malware infection by the approach of data mining, specifically using
association rule. Content of the thesis focus on presenting properties of association rule
and methods of applying them on problem of forecasting malware infection on mobile
devices
Keyword: forecasting malware infection, association rule

iii


Lời cam đoan
Tôi xin cam đoan phương pháp dự báo nhiễm malware trên thiết bị di động bằng
khai phá dữ liệu được trình bày trong khóa luận này là do tôi thực hiện dưới sự hướng dẫn
của PGS.TS Hà Quang Thụy.
Tất cả các tài liệu tham khảo từ các nghiên cứu liên quan đều có nguồn gốc rõ ràng
từ danh mục tài liệu tham khảo trong khóa luận. Trong khóa luận, không có việc sao chép
tài liệu, công trình nghiên cứu của người khác mà không chỉ rõ về tài liệu tham khảo.
Hà Nội, ngày 13 tháng 05 năm 2014
Sinh viên
Nguyễn Anh Vũ

iv



MỤC LỤC
Lời cảm ơn ............................................................................................................................ i
Tóm tắt khóa luận ................................................................................................................ ii
Lời cam đoan ...................................................................................................................... iv
Mục lục ................................................................................................................................ v
Danh sách các bảng .............................................................................................................vii
Danh sách các hình vẽ ........................................................................................................ viii
Danh sách các từ viết tắt ..................................................................................................... ix
Lời mở đầu ........................................................................................................................... 1
Chương 1. Giới thiệu chung về dự báo malware trong thiết bị di động ................................ 2
1.1. Khái niệm malware........................................................................................................ 2
1.2. Giới thiệu về Android .................................................................................................... 2
1.2.1. Gói ứng dụng Ảndroid ................................................................................................ 2
1.2.2. Gói ứng dụng Carat .................................................................................................... 3
1.3. Malware trên thiết bị di động ........................................................................................ 4
1.3.1. Mục tiêu hoạt động của malware ................................................................................ 4
1.3.2. Tỉ lệ nhiễm malware trên thiết bị di động ................................................................... 4
1.3.3. Các nhận định khác nhau về malware ........................................................................ 5
1.3.4. Sự phụ thuộc vào vùng miền địa lý ............................................................................. 7
1.4. Bài toán dự báo malware trong thiết bị di động ............................................................ 8
Chương 2. Hướng tiếp cận bằng khai phá dữ liệu trong dự báo nhiễm malware ................. 9
2.1. Luật kết hợp .................................................................................................................. 9
2.1.1. Bài toán phát hiện luật kết hợp ................................................................................... 9
2.1.2. Quy trình phát hiện luật kết hợp .............................................................................. 10
2.2. Luật kết hợp lớp .................................................................. Error! Bookmark not defined.
2.3. Thuật toán Top-k................................................................. Error! Bookmark not defined.
2.3.1. Phát hiện luật thỏa mãn ràng buộc ................................... Error! Bookmark not defined.
2.3.2. Phát hiện luật k-tối ưu ...................................................... Error! Bookmark not defined.
2.4. Thuật toán tìm kiếm luật OPUS .......................................... Error! Bookmark not defined.


v


Chương 3. Mô hình dựbaáo nhiễm malware bằng khai phá dữ liệuError! Bookmark not defined.
3.1. Mô hình đề xuất ................................................................... Error! Bookmark not defined.
3.2. Phát hiện trùng khớp malware .................................................................................... 20
3.3. Xây dựng dấu hiệu dữ báo ........................................................................................... 23
3.3.1. Tìm đặc trưng của các thiết bị nhiễm malware ......................................................... 23
3.3.2. Tìm tập luật dự báo .................................................................................................. 24
Chương 4. Thực nghiệm và đánh giá ................................................................................. 25
4.3. Môi trường thực nghiệm .............................................................................................. 25
4.3.1. Cấu hình phần cứng.................................................................................................. 25
4.3.2. Công cụ thực nghiệm ................................................................................................ 25
4.2. Dữ liệu thực nghiệm .................................................................................................... 26
4.3. Các bước thực nghiệm ................................................................................................. 28
4.4. Kết quả thực nghiệm và đánh giá ................................................................................ 29
Kết luận và định hướng nghiên cứu tiếp theo..................................................................... 35
TÀI LIỆU THAM KHẢO .................................................................................................. 36

vi


Danh sách các bảng
Bảng 1.1. Một số malware phổ biến nhất ............................................................................. 6
Bảng 1.2. Cận dưới về số các thiết bị nhiễm mã độc ở một số vùng ..................................... 7
Bảng 4.1. Cấu hình phần cứng ........................................................................................... 25
Bảng 4.2. Tổng quan về tập dữ liệu Carat .......................................................................... 27
Bảng 4.3. Tổng quan về tập dữ liệu Malware ..................................................................... 28
Bảng 4.4. Thiết lập để tìm tập mục cho đặc trưng .............................................................. 30

Bang 4.5. Thiết lập để tìm tập luật ..................................................................................... 33

vii


Danh sách các hình vẽ
Hình 1.1. Trực quan hóa ba tập dữ liệu malware ................................................................. 6
Hình 3.1. Mô hình dự báo nhiễm malware trên thiết bị di động......................................... 20
Hình 4.1. Giao diện công cụ Magnum Opus ....................................................................... 25
Hình 4.2. Chương trình được xây dựng trên Eclipse .......................................................... 26
Hình 4.3. Kết quả gán nhãn thiết bị ................................................................................... 29
Hình 4.4. Các tập mục phổ biến trong D1 .......................................................................... 41
Hình 4.5. Các tập mục sau khi được tính độ đo f ............................................................... 32
Hình 4.6. Các luật được ràng buộc vế trái là “I” ................................................................ 34

viii


Danh sách các từ viết tắt
Tên viết tắt

Cụm từ tiếng Anh

OPUS

Optimized Pruning for Unordered Search

DC

Device certification


MB

Mobile Sandbox

MA

McAfee

APK

Android package

ix


Lời mở đầu
Trong bối cảnh phát triển mạnh các ứng dụng trên thiết bị di động dựa trên nền
tảng Android như hiện nay, các malware (hay còn gọi là phần mềm độc hại) được tạo
ra ngày càng nhiều với mục đích gây hại cho người sử dụng. Các công cụ anti-malware
(chống lại các phần mềm độc hại), theo đó, cũng được xây dựng hàng loạt để hỗ trợ
người dùng. Tuy nhiên, cách thức hoạt động của các công cụ này mới chỉ dựa trên việc
quét các ứng dụng rồi đối chiếu với một danh sách malware định sẵn [xx]. Do vậy,
chúng có thể bỏ sót các phần mềm tiềm ẩn nguy cơ gây hại. Bài toán dự báo nhiễm
malware trên thiết bị di động được hình thành để giải quyết vấn đề này.
Dự báo nhiễm malware trên thiết bị di động là một bài toán mang tính thách
thức lớn và khó khăn [xx]. Khóa luận sẽ tham gia vào dòng các nghiên cứu giải quyết
bài toán này dựa trên tiếp cận khai phá dữ liệu. Đây là cách tiếp cận khá mới mẻ trong
việc phát hiện malware trên thiết bị di động.
Nội dung chính của khóa luận được tổ chức thành bốn chương với nội dung cụ

thế của các chương được giới thiệu như dưới đây.
Chương 1: Giới thiệu khái quát về bài toán dự báo nhiễm malware trên thiết bị
di động. Khóa luận giới thiệu khái niệm malware, nêu hiện trạng nhiễm malware trên
thiết bị di động, phát biểu bài toán dự báo nhiễm malware.
Chương 2: Trình bày hướng tiếp cận giải quyết bài toán dự báo nhiễm malware
trên thiết bi di động bằng khai phá dữ liệu mà cụ thể là luật kết hợp. Đầu tiên, khóa
luận trình bày các khái niệm liên quan đến luật kết hợp, bài toán phát hiện luật kết hợp.
Sau đó, khóa luận giới thiệu các thuật toán phát hiện luật kết hợp mà phù hợp đối với
bài toán được đặt ra
Chương 3: Đề xuất ra mô hình dự báo nhiễm malware trên thiết bị di động.
Khóa luận sẽ thể hiện mô hình dưới dạng sơ đồ, sau đó trình bày chi tiết các bước trong
mô hình dự báo nhiễm malware.
Chương 4: Trình bày quá trình thực nghiệm, tiến hành cài đặt và thử nghiệm
trên mô hình đề xuất với dữ liệu thực nghiệm là tập dữ liệu gồm hơn 55,000 thiết bị
Android được thu thập từ dữ liệu của Carat. Đồng thời, khóa luận đưa ra kết quả đạt
được và nhận xét

1


Kết luận và định hướng phát triển tiếp theo: Tóm lược kết quả đã đạt được
của khóa luận, chỉ ra những khuyết điểm cần khắc phục và đưa ra định hướng nghiên
cứu tiếp theo

2


Chương 1. Giới thiệu chung về dự báo malware
trong thiết bị di động
1.1. Khái niệm malware

Malware là viết tắt của cụm từ "MALicious softWARE" có nghĩa là "phần mềm
độc hại". Các hệ thống từ điển đều thống nhất chỉ dẫn thuật ngữ "malware" là phần
mềm độc hại, tuy nhiên, cách diễn đạt nội dung thuật ngữ này là đa dạng. Chẳng hạn,
trong từ điển Encyclopedia1, "malware" được dùng để chỉ loại phần mềm được thiết kế
để phá hủy dữ liệu, ăn cắp thông tin hoặc gây rối người sử dụng, còn theo từ điển Tech
Terms Computer Dictionary2, "malware" được dùng để chỉ các chương trình phần mềm
được thiết kế để gây hại hoặc tạo các tác động không mong muốn tới hệ thống máy
tính. Malwware có thể xuất hiện dưới dạng là dòng code, mã script, các nội dung động
hoặc các phần mềm khác. Malware bao gồm một loại sau phổ biến sau:
-

Virus: các dạng mã độc nhiễm trực tiếp vào file

-

Worm: sâu máy tính, lây nhiễm qua internet, USB, mạng LAN

-

Spyware: tự động ghi lại các thông tin của máy tính bị xâm nhập

-

Adware: tự động hiện các bản quảng cáo

-

Keylogger: Ghi nhận lại toàn bộ thao tác của bàn phím

-


Backdoor: mở cửa hậu cho kẻ khác xâm nhập

-

Rootkit: dạng mã độc tàng hình trước các chương trình kiểm soát file, tiến trình

1.2. Giới thiệu về Android
1.2.1. Gói ứng dụng Android
Một gói Android được nhận dạng từ tên gói theo kiểu Java. Để đảm bảo tính
duy nhất, thì cách đặt tên được đề xuất cho các nhà phái triển là dựa vào tên miền trên
Internet của họ. Ví dụ, một gói có tên là com.facebook.katana, đó là ứng dụng chính
thức của Facebook. Một thiết bị Android phải giữ được tính duy nhất của tên gói.
Google Play, chợ ứng dụng Android cũng bắt buộc tên gói duy nhất qua chợ ứng dụng
này. Tuy nhiên, sử dụng tên gói chỉ là quy ước và không có gì cản trợ bất cứ nhà phát

1
2

/> />
3


triển nào tạo ra một gói với tên bất kỳ. Ví dụ như com.facebook.katana được sử dụng
trong nhiều gói malware. Do vậy, tên của gói chưa đủ tin cậy để nhận dạng
Các gói Android phải đều được ký số. Google đề xuất mỗi nhà phát triển nên có
một cặp khóa dài hạn để ký các ứng dụng của họ[16]. Các khóa ký thường được dùng
với chứng thức tự ký. Các chứng thực (devcert) có thể được trích xuất từ các tệp chứng
thực trong thư mục META-INF của gói Androir hoặc bằng một ứng dụng trong thiết bị
Android với các trường Signature trong đối tượng PackageInfo qua lớp

PackageManager. Một gói có thể được ký với nhiều khóa. Chúng ta coi hai khai niệm
gói và ứng dụng là tương đương nhau
Mỗi gói Android cũng có thông tin về phiên bản theo dạng gồm một số nguyên
versionCode và một chuỗi versionName. Một nhà phát triển được yêu cầu nâng cấp
versionCode mỗi khi mà họ đưa ra một phiên bản mới của một gói nào đó bởi vì
versionCode được dùng để quyết định xem liệu rằng một gói trong một thiết bị có cần
phải cập nhật hay không. Tuy nhiên thay vì chỉ dùng tên của gọi, chúng ta có thể kết
hợp cả tên gói, devcert và versionCode như là bộ nhận dạng duy nhất đáng tin cậy cho
các gói Android. Tóm lại, chúng ta dùng bộ <dc,p,v> để nhận dạng gói, trong đó:
-

dc: ID duy nhất cho nhà phát triển, sinh bởi việc băm SHA1 đối với devcert

-

p: tên gói Android, trích xuất từ AndroidManifest.xml, hoặc từ danh sách tiến
trình hệ thống trên thiết bị

-

v: versionCode , mã phiên bản của gói, cũng lấy ra từ AndroidManifest.xml

1.2.2. Ứng dụng carat
Chúng ta thu tập dữ liệu sử dụng một phiên bản chỉnh sửa của Carat, một ứng
dụng di động mà chạy trên thiết bị Android và iOS. Theo A.J.Oliner và các cộng sự
[1], ứng dụng Carat sử dụng kỹ thuật đo đạc năng lượng hiệu quả để theo từng đợt ghi
lại trạng tháng của thiết bị, bao gồm mức độ pin, danh sách tiến trình và sử dụng những
thông tin này để để đề xuất các hành động mà có thể giúp người dùng cải thiện thời
lượng pin. Ứng dụng này được dụng trên 650,000 thiết bị (41% Android) và sẵn có
công khai trên kho ứng dụng của Google Play và Apple. Trong báo cáo này, tôi chỉ đề

cập đến dữ liệu Android
Carat ghi lại nhiều mảnh thông tin khi mà mực độ pin của thiết bị có sự thay đổi,
bao gồm:
4


-

Việc sử dụng CPU

-

Danh sách các tiến trình với tên gói, tên người có thể đọc được, kiểu ứng dụng
(là ứng dụng hệ thống hay không), quyền hạn và id của tiến trình

-

Thông tin về pin (mức pin, độ khỏe, điện thế, nhiệt độ và trạng thái)

-

Kiểu sạc (USB hay AC)

Carat gửi các dữ liệu thu thập được tới các máy phân tích chạy trên các cụm máy
chủ của Amazon dựa trên công nghệ đám mây
1.3. Malware trên thiết bị di động.
1.3.1. Mục tiêu hoạt động của malware
Trước đây, malware thường được tạo ra để gây hại cho các hệ thống máy tính
hay các máy tính cá nhân. Ngày nay, với sự phát triển ngày càng rõ rệt của thiết bị di
động, các hệ điều hành dành cho các nền tảng này được xây dựng và hoạt động ngày

càng phổ biến. Các thiết bị di động như điện thoại thông minh, máy tính bảng,… dần
đóng vai trò như một máy vi tính bỏ túi. Các thiết bị này có thể chứa nhiều thông tin cá
nhân quan trọng như hình ảnh cá nhân, mật khẩu các tài khoản,… Các thông tin này có
thể bị đánh cắp thông qua các chương trình độc hại mà người dùng vô tình tải về thông
qua các chợ ứng dụng. Do vậy, có thể thấy rằng nền tảng di động đang là mục tiêu mới
trong việc đánh cắp thông tin.
1.3.2. Tỉ lệ nhiễm malware trên thiết bị di động
Có rất ít nguồn thông tin, tài liệu công khai về tỉ lệ nhiễm malware trên các thiết
bị di động [x]. Trước đây, dựa theo phương pháp gián tiếp, tỉ lệ này được ước lượng
khoảng 0.00009% [4] . Theo phương pháp đó, Hien Thi Thu Truong và cộng sự đã chỉ
ra những vấn đề liên quan đến tỉ lệ nhiễm malware và các tác nhân liên quan, được thu
thập dữ liệu trực tiếp từ hơn 55,000 thiết bị di động Android. Nghiên cứu chỉ ra rằng tỉ
lệ nhiễm trên các thiết bị Android ước lượng được khi sử dụng hai tập dữ liệu malware
(tương ứng là 0.28% và 0.26%) [6] mặc dù nhỏ nhưng cao hơn các tính toán trước
đây. Với hai tập dữ liệu đó, nghiên cứu đã khảo sát các dấu hiệu cho biết các thiết bị
nhiễm malware như thế nào
Malware trên thiết bị di động đang ngày càng phổ biến và trở thành một trong
những thách thức mới của các nhà phát triển. Nhiều luồng tin và các tạp chí cho biết

5


vấn đề malware trên thiết bị di động, đặc biệt là trên nền tảng Android, rất kinh khủng
[3,11,14]. Chẳng hạn, một tạp chí gần đây [14] chỉ ra rằng có đến 32.8 triệu thiết bị
Android bị nhiễm mã độc vào năm 2012, được ước tính từ 750 triệu thiết bị thuộc nền
tảng này, tức là tỉ lệ nhiễm mã độc là 4.3%.
Tuy nhiên, một vài báo cáo đã nhận định ngược lại là sự nhiễm mã độc thực sự
một cách tự nhiên là hiếm, đặc biệt là ở phương Tây [15]. Có nhiều dấu hiệu khác chỉ
ra rằng vấn đề malware trong thiết bị di động thực sự rất đáng lo ngại. Google Play và
các chợ ứng dụng hợp pháp khác chủ động sử dụng các chương trình quét malware để

phát hiện và xóa chúng. Kosstiainen và cộng sự [14] miêu tả sự sẵn dùng rất phổ biến
của kĩ thuật bảo mật nền tảng phần cứng và phần mềm trên thiết bị di động, điều mà có
thể khiến họ mạnh hơn malware so với các máy tính cá nhân truyền thống. Husted và
cộng sự [13] sử dụng việc mô hình hóa phân tích để kết luận rằng việc nhiễm malware
từ di động sang di động không phải là mối đe dọa nghiêm trọng.
Tổ chức nghiên cứu đã nhấn mạnh chủ yếu vào việc phân tích các malware để
phát hiện nếu một gói phần mềm cho trước là malware hay không và nghiên cứu xem
malware có thể lan rộng như thế nào. Nghiên cứu độc lập duy nhất nhằm xác định bài
toán tỉ lệ nhiễm malware là bài báo của Lever và cộng sự [4] , theo đó sử dụng phương
pháp gián tiếp trong việc phỏng đoán nhiễm mã độc bằng việc phân tích các truy vấn
phân giải tên miền. Kết luận là tỉ lệ nhiễm mã độc ở Mỹ nhỏ hơn 0.0009%, bé hơn
nhiều so với 2.61% và 4.3% ở trên. Điều gì đã gây ra sự chênh lệch như vậy?
1.3.3. Các nhận định khác nhau về malware
Hình 1.1[6] cho thấy sự phân bố của các gói malware trong 3 bộ dữ liệu. Có thể
thấy rằng tỉ lệ đáng kể các tập dữ liệu chữa các mẫu malware chỉ có trong tập đó, dẫn
tới câu hỏi liệu rằng có sự đồng thuận phổ biến nào không về vấn để malware là gì.
Vấn đề này được minh họa sâu sắc hơn trong bảng 1.1[6], cho thấy số các thiết bị được
gán nhãn là “nhiễm” theo mỗi tập malware đơn. Có 154 và 144 thiết bị được gãn nhãn
là “nhiễm” lần lượt theo tập dữ liệu Mobile Sandbox và McAfee, nhưng chỉ 13 thiết bị
là phổ biến theo các tập này. Bảng 1.2 [6] liệt kê các gói malware phổ biến nhất, được
phát hiện trong hơn 5 thiết bị trong tập dữ liệu Carat. Mỗi gói được quét bằng hơn 40
các công cụ anti-malware khác nhau; không có gói malware nào khớp với tập dữ liệu
carat được gắn cờ là malware bởi đa số các công cụ anti-malware

6


Tất cả các quan sát xác nhận một điều rằng không có sự đồng tình lớn trong số
các công cụ anti-malware về thế nào là malware. Mở rộng sự bất đồng này, một kết
luận được đưa ra là nên báo cáo các số liệu về nhiễm malware một cách riêng biệt đối

với các tập dữ liệu khác nhau hơn là kết hợp chung lại.

Hình 1.1. Trực quan hóa ba tập dữ liệu malware
thể hiện số lượng các gói phổ biến và duy nhất []

Bảng 1.1. Một số malware phổ biến nhất
(Chú thích: a – Số thiết bị nhiễm loại malware này
b – Số các công cụ anti-malware cắm cờ gói này là malware
c – Tên công cụ quét, MB: Mobile Sandbox, MC: McAfee )
Một nguyên nhân khác của sự bất đồng này là một vài gói được xét là các
trương trình khả nghi không mong muốn (PUP) bởi một số công cụ anti-malware,
nhưng không phải là malware rõ ràng. Ví dụ, Superuser (com.noshu.android.su) - một
ứng dụng khởi động khá phổ biến không thể coi là gây hại nếu nó được cài đặt có chủ

7


đích bởi người dùng nhưng chắc chắn sẽ nguy hiểm nếu được cài đặt mà người dùng
không biết. Tương tự, công cụ bẻ khóa Wifi cũng rất nguy hiểm nhưng không gây độc
hại tới người dùng. Một vài công cụ anti-malware coi các ứng dụng chứa thư viện
adware như là các malware trong khi một số công cụ khác thì không. Một số nhà cung
cấp phải cùng tránh khái niệm “malware” và phải sử dụng đến việc nhận dạng các mối
đe dọa trong các mục khác nhau một cách riêng biệt [16]
Mặt khác, sự bất đồng trong số các công cụ anti-malware khá là gây hoang
mang do có bằng chứng chỉ rằng các nhà cung cấp anti-malware sử dụng các hệ thống
quan sát xem các nhà cung cấp khác đánh giá thế nào về một gói ứng dụng và kết hợp
thông tin này vào đánh giá của chính họ. Thỉnh thoảng, điều này có thể dẫn tới lỗi
truyền đi rộng rãi. Sẽ tốt hơn nếu một ví dụ trong tập dữ liệu có dạng là một gói
com.android.vending.sectool.v1 được ký đối với một mã nhận dạng hợp pháp, điều
khiển bởi Google. Nó tương ứng với một công cụ loại bỏ malware phát hành bởi

Google hầu như trong ba năm gần đây [5]. Tóm lại về sau, một gói malware với với tên
giống nhau kết hợp lại. Có thể một vài nhà cung cấp anti-malware đã gán nhãn nhầm
tất cả các gói là malware. Gói được Google ký hợp lệ được cắm cờ là malware bởi
không quá 13 công cụ anti-malware.

1.3.4. Sự phụ thuộc vào vùng miền địa lý
Tỉ lệ nhiễm malware ở Trung Quốc và Nga được báo cáo là cao hơn ở phương
Tây [8]. Do chúng ta không có thông tin về nhân khẩu học trong tập dữ liệu Carat, nên
không thể biết nguồn gốc của họ và do vậy không thể xác nhận nhận định này một cách
trực tiếp. Tuy nhiên, tên phiên dịch của một gói thường chỉ ra ngôn ngữ địa phương
của thiết bị. Độ dài của chuỗi kí tự quá ngắn để phát hiện ngôn ngữ tự động. Tuy nhiên,
dựa vào sự xuất hiện của các đặc tả điều hành (như com.vzw.hss.myverizon, “My
Verizon Mobile”) và đặc tả tiền tệ (ví dụ như com.fdj.euro, “tiền Euro”) trong tên gói,
ta có thể ước lượng số các thiết bị nhiễm mã độc ở Mỹ, Châu Âu và Nhật Bản. Điều
này gợi ra tỉ lệ nhiễm mã độc ở Mỹ có vẻ nhiều hơn 0.02% (dựa theo tính toán thấp
hơn của 13 thiết bị nhiễm mã độc ở Mỹ trong bảng)

8


Bảng 1.2. Cận dưới về số các thiết bị nhiễm mã độc ở một số vùng

9


1.4. Bài toán dự báo malware trong thiết bị di động
Dựa vào các giả thuyết rằng một vài kho ứng dụng có mật độ lớn các ứng dụng
độc hại hoặc chứa quảng cáo. Trong khóa luận sẽ khảo sát liệu rằng các tập ứng dụng
được sử dụng trên một thiết bị có thể được coi là dấu hiệu nhiễm mã độc cho thiết bị đó
hay không. Các dấu hiệu này không phải là hoàn toàn chính xác. Việc phân tích này

không tốn kém nhưng lại là cách thức hữu dụng để thu hẹp nhóm thiết bị mà tốn kém
cho các kỹ thuật quan sát và phân tích. Sử dụng hai tập dữ liệu malware, các dấu hiệu
được thể hiện tốt hơn 4.8 và 4.6 lần[6] trong việc nhận dạng các thiết bị nhiễm độc hơn
là dựa vào kiểm tra ngẫu nhiên. Các dấu hiệu này có thể được sử dụng trong nghiên
cứu về các malware chưa được nhận dạng trước đó hoặc malware mới phát hiện. Tuy
nhiên, đó là một kĩ thuật mà có thể bổ sung cho việc quét các malware chuẩn bằng các
công cụ anti-malware.
Bài toán được phát biểu như sau:
Cho trước:
-

Tập A = {a1, a2,…} là tập các ứng dụng.

-

Tập D = {d1, d2, d3,…dn} là tập các thiết bị với di = {dI, {ak | ak ∈ A}}, trong
đó dI là định danh của thiết bị.

-

Tập M = {m1, m2,…} là tập các malware với mi ∈ A.

Mục tiêu: dự báo được về khả năng nhiễm malware của thiết bị.
Về bản chất, đây không phải là bài toán mới. Hiện nay, các ứng dụng anti-malware được
phát triển rất nhiều trên nền tảng di động, bao gồm cả quét và cảnh báo malware dựa theo
một tập danh sách malware xác định trước. Trong khóa luận này, tôi xin đề xuất một
hướng tiếp cận bằng khai phá dữ liệu để giải quyết vấn đề này. Cụ thể, khóa luận sẽ sử
dụng luật kết hợp để tìm ra các dấu hiệu dự báo.

10



Chương 2. Hướng tiếp cận bằng khai phá dữ liệu
trong việc dự báo nhiễm malware
Như phần trước đã đề cập, khóa luận này tập trung vào phương pháp sử dụng
luật kết hợp để đưa ra các dấu hiệu dự báo. Vì vậy, để làm rõ bài toán hơn, sau đây là
một số lí thuyết về luật kết hợp và các khái niệm liên quan
2.1.
Luật
2.1.1. Bài toán phát hiện luật kết hợp

kết

hợp

Mục đích của bài toán phát hiện luật kết hợp là tìm ra mối quan hệ giữa các tập
mục dữ liệu trong các CSDL lớn và các mối quan hệ này là có ích trong hỗ trợ quyết
định. Trong CSDL siêu thị, việc phát hiện được quan hệ "78% số khách hàng mua sữa
và đường cũng mua bơ" sẽ rất có ích cho quyết định kinh doanh, chẳng hạn, quyết định
về số lượng nhập các mặt hàng này hoặc bố trí chúng tại các ngăn hàng liền kề nhau.
Trong CSDL dân số, quan hệ "60% số người lao động ở độ tuổi trung niên có thu nhập
thấp hơn mức thu nhập bình quân" sẽ rất có ích cho việc điều chỉnh chính sách thu
nhập
Khái niệm luật kết hợp (Association Rule) và phát hiện luật kết hợp
(Association Rule Mining) được Rakesh Agrawal và cộng sự đề xuất lần đầu tiên vào
năm 1993 nhằm phát hiện các mẫu có giá trị trong CSDL tác vụ (transaction database)
tại siêu thị [4]. Bài toán này được phát biểu hình thức như dưới đây.
Kí hiệu I = {i1, i2,..., in} là tập các mục dữ liệu (mỗi mặt hàng trong siêu thị
chính là một mục dữ liệu, và cũng có thể xem nó là một thuộc tính nhận giá trị nhị
phân, khi đó I là các thuộc tính của CSDL); tập X  I được gọi là tập mục dữ liệu hoặc

tập mục (itemset); và O = {t1, t2,..., tm} là tập định danh của các tác vụ (mỗi vụ mua
hàng được xem là một tác vụ). Quan hệ D  IO được gọi là CSDL tác vụ. Mỗi tác vụ
t được biểu diễn như một véc tơ nhị phân, trong đó t[k] = 1 nếu mặt hàng ik xuất hiện
trong t và ngược lại t[k] = 0.
Cho một tập mục dữ liệu X  I, độ hỗ trợ của tập X, kí hiệu là sup(X), được
định nghĩa là số (hoặc phần trăm) tác vụ trong D chứa X.

11


Luật kết hợp (association rule) được định nghĩa hình thức là biểu diễn mối quan
hệ giữa hai tập mục dưới dạng X  Y, trong đó X  I, Y  I, XY = .

X được

gọi là phần tiền đề (antecedent) và Y được gọi là phần hệ quả (consequent) của luật.
Độ hỗ trợ (support) của luật X  Y, kí hiệu là sup(X  Y), được định nghĩa là
số (hoặc phần trăm) tác vụ trong D chứa XY.

sup(X  Y) 

X Y
D

Theo Agrawal R. và cộng sự [2], luật kết hợp được phát hiện cần đáp ứng ràng
buộc độ hỗ trợ (support constraint), theo đó, độ hỗ trợ của tập mục W = XY (hợp tập
tiền đề và tập hệ quả của luật) phải vượt qua (không nhỏ thua) một ngưỡng hỗ trợ tối
thiểu do người dùng đưa vào. Mọi tập W có tính chất nói trên được gọi là tập phổ biến
(frequent itemset) và còn được gọi là tập mục lớn (large itemset).
Độ tin cậy (confidence) của luật X  Y, kí hiệu là conf(X  Y), được định

nghĩa là số (hoặc phần trăm) tác vụ trong D chứa X cũng chứa Y.

conf(X  Y) 

sup( X  Y )
sup( X )

Luật kết hợp được phát hiện cần có tính tin cậy, theo đó nó cần có độ tin cậy
vượt qua (không nhỏ thua) một ngưỡng tin cậy tối thiểu do người dùng đưa vào. Luật
đáp ứng ràng buộc độ hỗ trợ và có tính tin cậy được gọi là luật mạnh (strong
association rule).

2.1.2. Quy trình phát hiện luật kết hợp
Mục đích của bài toán phát hiện luật kết hợp trong CSDL tác vụ D là đi tìm tất
cả các luật kết hợp mạnh (độ hỗ trợ cực tiểu và độ tin cậy cực tiểu do người sử dụng
đưa ra trong quá trình phát hiện luật). Rất nhiều giải pháp phát hiện luật kết hợp đã
được đề xuất, chẳng hạn, theo thống kê của MicroSoft [?], đã có 2671 tác giả công bố
1526 công trình khoa học có giá trị (với 10224 lần được chỉ dẫn) về phát hiện luật kết
hợp. Phần lớn các thuật toán phát hiện luật kết hợp chia quá trình giải bài toán này
thành hai giai đoạn như sau:
12


(1) Giai đoạn 1: Tìm tất cả các tập phổ biến trong CSDL D.
(2) Giai đoạn 2: Với mỗi tập phổ biến I1 tìm được ở giai đoạn 1, sinh ra tất cả
các luật mạnh có dạng I2  I1 – I2, I2  I1.
Trong hai giai đoạn trên, giai đoạn 1 là khó khăn, phức tạp và tốn nhiều chi phí. Bài
toán tìm tập phổ biến trong không gian các tập con của tập mục I có độ phức tạp tính
toán là O(2|I|). Giai đoạn 2 được giải quyết đơn giản hơn khi đã có các tập phổ biến và
độ hỗ trợ của chúng.

2.2. Luật kết hợp lớp
Theo Bing liu và các cộng sự [7], luật kết hợp lớp được định nghĩa:
Cho tập dữ liệu D. I là tập tất cả các item trong D. Một trường hợp d ∈ D chứa X ⊆ I
là một tập con của các item, nếu X ⊆ d. Y là tập các nhãn lớp. Một luật kết hợp lớp là luật
có dạng:
X → y,
trong đó X ⊆ I, y ∈ Y.
Một luật X → y có độ tin cậy trong D là c nếu c% các trường hợp trong D chứa X
được dán nhãn với lớp y.
Giả sử có n trường hợp trong D chứa X trong đó có n1 trường hợp được dán nhãn với
lớp y thì c = n1/n.
Một luật X → y có độ hỗ trợ trong D là s nếu s% các trường hợp trong D chứa X và
được dán nhãn với lớp y.
Giả sử có tất cả trong D có n trường hợp trong đó có n1 trường hợp chứa X và được
dán nhãn với lớp y thì s = n1/n.
2.3. Thuật toán top-k
Theo Webb [17] , thông thường việc phát hiện luật kết hợp dựa vào việc ứng
dụng của độ hỗ trợ tối thiểu. Ràng buộc này được sử dụng để tỉa không gian tìm kiếm
và tính toán khả thi. Điều này có thể giới hạn, như độ hỗ trợ thường không liên quan
trực tiếp tới giá trị tiềm năng của luật.

13


×