dỰ bÁo nhiỄm malware trÊn thiẾt bỊ di ĐỘng bẰng khai...
TRANSCRIPT
ĐẠ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
i
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ũ
ii
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
iii
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
iv
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ũ
v
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.
vi
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
vii
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
viii
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
ix
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
1
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
2
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
3
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 http://encyclopedia2.thefreedictionary.com/malware 2 http://www.techterms.com/definition/malware
4
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:
5
- 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
6
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
7
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ủ
8
đí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)
9
Bảng 1.2. Cận dưới về số các thiết bị nhiễm mã độc ở một số vùng
10
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.
11
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 kết hợp
2.1.1. Bài toán 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 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 IO đượ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.
12
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, XY = . 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 XY.
D
YX Y) sup(X
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 = XY (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.
)sup(
)sup( Y) conf(X
X
YX
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:
13
(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.
14
Thuật toán OPUS_AR sẽ trình bày một sự tiếp cận thay thế cho việc phát hiện
luật có tính thăm dò như thế mà chúng ta gọi là phát hiện luật kết hợp k-optimal. Theo
cách tiếp cận này, người dùng chỉ rõ một độ đo giá trị luật λ, một tập ràng buộc M và
một số k các luật được phát hiện. Hệ thống sẽ trả về k luật mà tối ưu λ với các ràng
buộc M. Việc này mở rộng các kĩ thuật trước đó đi tìm luật đơn tối ưu một độ đo giá trị
cho phần hệ quả được chỉ định trước. Ngược lại, thuật toán mới tìm nhiều luật và cho
phép bất kì điều kiện nào trong vai trò là hệ quả
2.3.1. Phát hiện luật thỏa mãn ràng buộc
Webb [17] đã định nghĩa cả phát hiện luật kết hợp và phát hiện luật tối ưu k theo
cách mô tả chung của phát hiện luật kết hợp có ràng buộc (gọi là CStask). Một bản ghi
là một thực thể ám chỉ các điều kiện áp dụng. Để thuật tiện cho kí hiệu, ta coi mỗi bản
ghi d thể hiện một tập các điều kiện áp dụng vào d. Một cơ sở dữ liệu D là một bộ
không rỗng các bản ghi. Với mỗi tập điều kiện S và cơ sở dữ liệu D
coverset(S, D) = {d ∈ D | d ⊇ S}
cover(S,D) = | ��������(�,�)|
|�|
Chỗ mà cơ sở dữ liệu được ngụ ý bởi ngữ cảnh mà ta rút gọn cái trước coverset(S) và
cái sau cover(S). Một CStask là một bộ ba (C,D,M) trong đó
C: một tập không rỗng các điều kiện
D: một cơ sở dữ liệu các bản ghi r ⊆ C
M: một tập các ràng buộc của luật mà hình thành cách giải quyết CStask
Một luật là một cặp tập điều kiện được thể hiện bởi X→Y, trong đó
X: một tập không rỗng các điều kiện gọi là phần tiền đề
Y: một tập không rỗng các điều kiện gọi là phần hệ quả
Bổ nghĩa thỏa mãn (X→Y,D,M) là đúng hoàn toàn và duy nhất các luật X→Y mà thỏa
mãn tất cả ràng buộc trong M đối với D. CSsolution : {<C , D, M>} → {{X→Y }} là
một hàm đa ánh từ CStask tới solution, thỏa mãn:
CSsolution(<C,D,M>) = {X→Y | X ⊆ C ∧ Y ⊆ C ∧ satisfies(X→Y, D, M)}
15
Phát hiện luật kết hợp thỏa mãn ràng buộc đưa ra một nền tảng chính thức
chung mà có thể mô tả, phân tích và đối chiếu một phạm vi rộng các kĩ thuật phát hiện
luật có tính thăm dò.
Tính khả thi của việc tính toán một CSsolution tới CStask sẽ phụ thuộc vào số
các luật mà toán mãn M đối với D. Ví dụ, một tập cho trước các ràng buộc có thể
không ngoại trừ bất kì luật nào đối với D cho trước, trong trường hợp số các luật và độ
phức tạp thời gian sau đó sẽ tăng theo hàm mũ đối với số các điều kiện trong C
2.3.2. Phát hiện luật k tối ưu
Webb phác thảo một hướng tiếp cận để phát hiện luật[17]. Như ở trên đã giới
thiệu, cách tiếp cận này sẽ yêu cầu người dùng chỉ rõ một độ đo giá trị luật, một tập
điều kiện và số k các luật. Đầu ra sẽ là k luật mà tối ưu theo độ đo.
Một bài toán phát hiện k luật tối ưu (KOtask) là một bộ 5 <C,D,M,λ,k>, trong
đó:
C: một tập không rỗng các điều kiện
D: một cơ sở dữ liệu các bản ghi r ⊆ C
M: mộ tập càng ràng buộc trên luật mà đưa ra lời giải cho bài toán.
λ : {X→Y } × {D} → R là một hàm ánh xạ từ các luật và cơ sở dữ liệu đến các
giá trị thực và định nghĩa một độ đo giá trị mà λ(X→Y, D) càng lớn thì giá trị
X→Y càng lớn
k: một số nguyên thể hiện số lượng luật trong lời giải của bài toán
solution: {<C , D, M, λ, k>} → {{X→Y }} là một hàm đa ánh từ bài toán
KOtask tới lời giải của nó, thỏa mãn:
∀s ∈ solution(<C , D, M, λ, k >)
s ⊆ CSsolution(<C , D, M>)
∧ |s| ≤ k;
∧¬∃r ∈ solution(<C , D, M, λ, k>) : |r| < |s|
∧¬∃X→Y ∈ s, X’→Y’ ∈ (CSsolution(hC , D, Mi) − s) : λ(X→Y, D) <
λ(X’ →Y’, D)
16
Theo định nghĩa này, nếu CSsolution chứa k luật hoặc hơn thì tất cả lời giải của
KOtask bao gồm k luật. Nếu CSsolution chưa ít hơn k luật thì chỉ có một lời giải cho
KOtask và nó giống với CSsolution. Có thể chỉ có nhiều lời giải cho một KOtask cho
trước nếu có nhiều luật với giá trị λ giống nhau, với mỗi giá trị chiếm vị trí thứ k trong
lời giải của bài toán
Độ đo giá trị luật là trung tâm của việc phát hiện k luật tối ưu. Độ đo như vậy sẽ
thường không trực tiếp bắt các giá trị đúng, bởi vì thường phụ thuộc vào nhiều yếu tố
mà sẽ khó để chính thức hóa và kết hợp trong một quá trình tính toán. Ta định nghĩa 4
độ đo đối với một luật X→Y như sau:
coverage(X→Y, D) = cover(X, D),
support(X→Y, D) = cover(X ∪ Y, D),
confidence(X→Y, D) = support(X→Y, D) / coverage(X→Y, D),
leverage(X→Y, D) = support(X→Y, D) − cover(X, D) × cover(Y, D).
Piatetsky-Shapiro cho rằng nhiều độ đo giá trị luật dựa vào sự khác nhau giữa tần suất
chung quan sét được giữa phần tiền đề và phần hệ quả, độ hỗ trợ support(X→Y) và tần
suất mong muốn nếu cả 2 là độc lập, cover(X) x cover(Y). Ông đưa ra một độ đo đơn
giản nhất gọi là leverage, được định nghĩa dưới đây.
leverage(X→Y, D) = cover(X, D) × (confidence(X→Y, D) − cover(Y, D)) .
Thể hiện trong dạng này, nó cũng được gọi là độ chính xác tương đối có trọng số
Trái với leverage, có độ đo sau:
lift(X→Y ) = support(X→Y ) / [cover(X) × cover(Y )]
là tỉ lệ tần suất quan sát với phần hệ quả xuất hiện trong ngữ cảnh mà phần tiền đề vượt
mong đợi nếu chúng độc lập. Một luật với độ lift cao có thể ít quan trọng do nó có độ
phủ thập và do đó ứng dụng trong rất ít hoàn cảnh. Điều này có thể được đưa ra như là
việc cân chỉnh ứng dụng của độ hỗ trợ tối thiệu trong sự kết nối với độ đo lift, nhưng
đây là laf việc điều chỉnh xấp xỉ thô nhất đối với vấn đề này. Nó dẫn đến một hàm
bước với thuộc tính rất không mong muốn đó là bổ sung thêm bản ghi với độ hỗ trợ
của một luật với độ lift cao có thể chuyển nó từ không quan trọng
17
2.4. Thuật toán OPUS Search
Theo nghiên cứu của Webb [18] , tìm kiếm luật kết hợp có thể được giải quyết
như một quá trình tìm kiếm mà bắt đầu với các luật tổng quát (các luật với một điều
kiện ở vế trái) và tìm kiếm thông qua sự đặc tả hóa liên tục (các luật hình thành bằng
việc thêm các điều kiện bổ sung vào vế trái). Tìm kiếm như thế là không có thứ tự. Thứ
tự mà đặc tả liên tục được bổ sung vào vế trái không quan trọng. Luật A ^ B ^ C -> X
là giống với C ^ B ^ A -> X. Một thành phần quan trọng của tìm kiếm hiệu quả trong
ngữ cảnh này là cực tiểu hóa số luật kết hợp cần xét. Một kỹ thuật hữu hiệu được sử
dụng để loại trừ các luật kết hợp tiềm năng đó là tỉa “lạc quan”. Optimistic pruning
hoạt động bằng việc hình thành các ước lượng khả quan của các giá trị cao nhất mà có
thể xảy ra trong một vùng không gian tìm kiếm
Ước lượng khả quan là không thể thấp hơn giá trị lớn nhất thực tế. Nếu giá trị
khả quan cho một vùng mà thấp hơn giá trị thấp nhất, thì vùng đó có thể bị tỉa. Nếu tìm
kiếm ra top m luật kết hợp, thì có thể duy trì một danh sách top m luật có thể gặp trong
suốt việc tìm kiếm. Nếu một ước lượng khả quan thấp hơn giá trị thấp nhất của luật
trong top m, thì vùng tương ứng của không gian tìm kiếm có thể được tỉa. Các luật tỉa
khác có thể nhận diện ra các vùng mà có thể được tỉa vì chúng có thể bao gồm duy nhất
các luật mà không thỏa mà các ràng buộc cho trước như:
Độ hỗ trợ tối thiểu
Độ nâng tối thiểu
Là một trong top m luật kết hợp theo một phải tiểu chuẩn đặc tả
Khái niệm “Luật tin cậy” được sử dụng để thể hiện các luật kết hợp mà tại vài điểm
cho trước, nó có thể là luật sẽ
Nếu giới hạn các luật kết hợp chỉ có điều kiện đơn ở vế phải, có hai chiến thuật tìm
kiếm hợp lý,
- với mỗi điều kiện vế phải có tiềm năng, thăm dò không gian có thể ở vế trái
- với mỗi kết hợp điều kiện có tiềm năng ở vế trái, thăm dò không gian điều kiện có thể
ở vế phải
Chiến thuật cũ dẫn tới việc thực thi thẳng nhất vì nó bao gồm các lặp lại đơn gian
thông qua tìm kiếm thẳng đối với mỗi điều kiện vế phải tiềm năng. Tuy nhiên, điều này
18
ngụ ý truy cập việc đếm số lượng các trường hợp được phủ bởi vế trái nhiều lần, một
lần cho mỗi điều kiện vế trái mà vế phải được xét.
Những lần xem xét này sẽ làm giảm nhẹ chiến thuật thứ hai. Ta thăm dò một cách hệ
thống không gian có thể của các kết hợp điều kiện bên trái. Trong suốt tiến trình này, ta
ghi vết lại các tập điều kiện mà có thể xuất hiện bên phải của luật tin cậy trong tìm
kiếm dưới điểm hiện tại. Sau đó ta tổ chức tìm kiếm để cố gắng cực tiểu hóa số lượng
kết hợp điều kiện bên trái được thăm dò. Một lần đơn duyệt qua dữ liệu có thể được
thực hiện cho từng kết hợp bên trái trong suốt thời gian các thống kê được thu thập cho
cả bên trái và mỗi một điều kiện bên phải. Ta tỉa không gian tìm kiếm với bất kì một
vùng tiềm năng nào cho mỗi ước lượng khả quan.
Dưới đây là thuật toán mà áp dụng thuật toán tìm kiếm OPUS [18] để đạt được hiệu
quả trong việc tìm kiếm. Thuật toán được trình bay như một thủ tục đệ qui với 3 tham
số:
CurrentLHS: tập các điều kiện ở bên trái của luật đang được xét
AvailableLHS: tập điều kiện có thể được thêm vào bên trái của luật để thăm dò
dưới điểm này
AvailableRSH: tập điều kiện có thể xuất hiên ở bên phải của luật trong không
gian tìm kiếm tại điểm đó và bên dưới
19
Ban đầu gọi tới thủ thủ thiết lập CurrentLHS là {} (tập rỗng) và AvailableLHS và
AvailableRHS là tập các điều kiện được xét lần lượt ở bên trái và phải của luật kết hợp
20
Tại bước 2.c.ii.A sẽ ghi lại mỗi luật kết hợp tin cậy khi được ước lượng. Nếu tìm được
m luật tốt nhất trong metric, một khi m luật được thêm vào ở bước này, như các luật
mới, luật mà giá trị thấp nhất trong metric có thể được loại bỏ khỏi bảng các luật tốt.
Một luật sẽ không đáng tin nếu nó không thỏa mãn các ràng buộc khác, như là độ mạnh
tối thiếu, hoặc là khi bảng luật đầy, có giá trị trong metric ước lượng thấp hơn luất kém
nhất trong bảng luật tốt nhất.
Bước 2c tỉa các điều kiện từ không gian bao gồm vế trái luật. Hơn là khảo sát không
gian các tập vế trái có thể tại điểm hiện tại, các kĩ thuật khả quan với tổng chi phí tính
toán thấp có thể được thực hiện. Ví dụ, nếu | CurrentLHS v {P} | thấp hơn độ hỗ trợ tổi
thiểu thì không có luật nào trong không gian các luật khả dụng có thể đạt được ngưỡng
hỗ trợ tối thiệu bởi vì toàn bộ là đặc tả của |CurrentLHS v {P} | và do đó không thể có
độ hỗ trợ cao hơn.
Bước 2.c.ii.B tỉa các điều kiện từ không gian được khảo sát ở vế trái của luật. Các luật
khả quan với tổng chi phí tính toán thấp cũng được thực hiện ở đây. Ví dụ, nếu
|CurrentLHS v {P} | = 0 thì không có luật đáng tin nào sẽ tồn tại trong không gian các
luật khả dụng thích hợp
Đối với toàn bộ bước tỉa, các luật tỉa chính xác được thực hiện sẽ phụ thuộc vào các
ràng buộc cụ thể cho việc tìm kiếm
Nếu không có việc tỉa thì thuật toán này sẽ khảo sát toàn bộ không gian tìm kiếm một
cách có hệ thống. Bước tỉa sẽ lược bỏ khỏi không gian tìm kiếm bên dưới một nút và
chỉ các luật bao gồm điều kiện nhận dạng. Vì vậy, theo đó các thuật toán là hoàn toàn
luôn luôn tìm ra các luật kết hợp đích, miễn là các luật tỉa được thực hiện đúng
Thuật toán này dựa vào OPUSS hơn là OPUSO. Bởi vì nó hiệu quả hơn OPUSO yêu cầu
ít nhất 2 lần duyệt qua điều kiện có sẵn bên trái tại mỗi nút của cây tìm kiếm. Một cái
để chọn và sắp xếp điều kiện bên trái và một cái để gọi đệ quy cho mỗi điều kiện bên
trái với tham số thứ hai và ba thích hợp. Tổng chi phí của việc làm này vượt hơn so với
việc tìm kiếm bởi vì một ước lượng mà điều kiện bên phải nên được giữ lại cho mỗi vế
trái cần được thực hiện trong toàn bộ lặp
21
Chương 3. Mô hình dự báo nhiễm malware bằng khai phá dữ liệu
Hiện nay, các công cụ anti-malware trên di động được sản suất và phát triển khá
nhiều bởi các hãng như Mobile Sandbox3 hay McAfee4. Các công cụ này đều nhận
dạng, phát hiện các mã độc dựa trên một danh sách các malware xác định trước. Danh
sách này được bổ sung theo định kỳ dựa trên đánh giá, xem xét của nhà phát triển. Tuy
nhiên việc đánh giá như nào thì tùy thuộc vào phương pháp riêng của nhà phát triển đó.
Do vậy, một ứng dụng di động có thể bị nhận dạng là malware bởi công cụ này, nhưng
được xét là vô hại bởi công cụ khác. Việc đánh giá malware cũng cần phải dựa vào
khảo sát của người sử dụng khi mà liệu ứng dụng này có gây hại đối với người dùng đó
hay không. Tuy nhiên, đi kèm với nhận dạng malware, thì chi phí để khắc phục hậu
quả do malware đó gây ra cũng không kém phần hao tổn
Từ hiện trạng trên, khóa luận này xin đề xuất một mô hình dự báo nhằm phát
hiệm sớm khả năng tiềm ẩn nhiễm malware của thiết bị. Mô hình này dựa trên phương
pháp tiếp cận bằng khai phá dữ liệu mà cụ thể là luật kết hợp. Kết quả của mô hình này
có thể góp phần tăng chất lượng đánh giá của các nhà phát triển, từ đó có thể ngăn chặn
sớm sự ảnh hưởng tiêu cực của malware đối với người sử dụng.
3.1. Mô hình đề xuất
Tôi xin đề xuất ra mô hình dự báo nhiễm malware trên thiết bị di động sử dụng
bằng khai phá dữ liệu. Mô hình này sử dụng kĩ thuật phát hiện luật kết hợp và tập mục
phổ biến bằng thuật toán top-k. Tuy nhiên, mô hình đã cải tiến bằng việc đưa thêm
phân tách các tập dữ liệu và các độ đo đặc trưng. Bài toán được phát biểu như sau:
Đầu vào: Tập các thiết bị của người dùng thu thập từ Carat, tập các malware
Đầu ra: Các luật kết hợp có dạng: {ai} → I
trong đó {ai} ∈ A, là tập các ứng dụng; I là nhãn cho biết nhiễm malware
3 http://mobilesandbox.org/ 4 http://www.mcafee.com/
22
Hình 3.1 – Mô hình dự báo nhiễm malware trên thiết bi di động
3.2. Phát hiện trùng khớp malware
Theo một nghiên cứu phân tích [6] , thông thường, rất khó có thể phân tích chi tiết
được một thiết bị có nhiễm malware hay không. Chúng ta chỉ có thể dựa vào một tập các
malware được xác định trước cùng với tập dữ liệu Carat để từ đó có một bộ dữ liệu huấn
luyện, tức là xác định thiết bị có nhiễm hay không nhiễm. Để làm được điều này, chúng ta
duyệt toàn bộ các thiết bị trong tập Carat và duyệt xem các thiết bị đó có chứa malware
23
trong tập Malware dataset hay không. Công đoạn này còn được gọi là phát hiệm trùng
khớp malware trong tập dữ liệu carat. Ta xét 2 loại trùng khớp: trùng khớp <dc> và trùng
khớp <dc,p,v>
- Trùng khớp <dc> : một cách tiếp cận để nhận dạng trùng khớp malware đó là cho
rằng thiết bị ở trong tập dữ liệu Carat là nhiễm (infected) nếu nó có bất kì một gói
được kí đối với devcert xuất hiện trong tập tập dữ liệu malware. Với cách tiếp cận
này, khi một giá trị dc kết hợp với một bản ghi trong tập dữ liệu malware, ta gán
nhãn cho bản ghi đó là nhiễm độc (infected). Cụ thể, công đoạn này được mô tả
dưới mã giả sau:
Void checkMatchDC(C,M)
{
//C – Tập dữ liệu Carat; M – Tập dữ liệu malware
For( mỗi bản ghi m ∈ M )
{
If (tồn tại bản ghi c ∈ C | c.dc == m.dc)
Then gán nhãn I cho c // Infected
Else gán nhãn C cho c // Clean
}
SC:= ϕ; // tập các devcert xấu
SP := ϕ; // tập các <dc,p,v> xấu
SI:C:= ϕ; // các thiết bị nhiễm
For (mỗi bản ghi c ∈ C )
{
If (c bị gán nhãn là “I”)
Then
{
SC.add(c.dc);
SP.add(c.dc | c.p | c.v);
SI:C.add(c.ID);
}
}
24
NC:=SC; NP:=SP;NI:C=SI:C;
}
Ta tiếp tục tính toán số lượng các devcert “xấu” (NC), số các gói tương ứng với các
devcert xấu (NP), và số các thiết bị nhiễm đọc (NI:C). Nếu devcert giống nhau được sử
dụng để kí malware cũng như các gói không bị nhiễm độc, thì tiếp cận <dc> có thể dẫn
đến ước lượng vượt mức về tỉ lệ nhiễm. Tuy nhiên, nó có thể đáp ứng theo cách nhận biết
các malware chưa được phát hiện trước đó. Thuật toán dưới đây sẽ minh quá quá trình
phát hiện trùng khớp
- Trùng khớp <dc,p,v> : Chúng ta có thể chặt chẽ hơn bằng cách gán nhãn nhiễm mã
độc khi và chỉ khi mỗi thành phần trong phần nhận dạng gói <dc,p,v> trùng khớp
với bản ghi trong tập dữ liệu. Loại trùng khớp này sẽ đánh giá thấp tỉ lệ nhiễm đọc,
đưa ra một biên thấp hơn. Tiến trình này được minh họa theo thuật toán sau đây:
Void checkMatchDC_P_V(C,M)
{
//C – Tập dữ liệu Carat; M – Tập dữ liệu malware
For( mỗi bản ghi m ∈ M )
{
If (tồn tại bản ghi c ∈ C | c.dc == m.dc && c.p==m.p && c.v
==m.v)
Then gán nhãn I cho c // Infected
Else gán nhãn C cho c // Clean
}
SC,P := ϕ ; // tập các bộ <dc,p,v> xấu
SI:C,P:= ϕ; // các thiết bị nhiễm mã độc
For (mỗi bản ghi c ∈ C )
{
If (c bị gán nhãn là “I”)
Then
{
SC,P.add(c.dc | c.p | c.v);
25
SI:C,P,V.add(c.ID);
}
}
NC,P,V:=|SC,P,V| ;NI:C,P,V=|SI:C,P,V|;
}
Từ đây, chúng ta đã phân loại ra thiết bị nào nhiễm malware, thiết bị nào là
“sạch”.Tập dữ liệu người dùng được làm gọn và đưa về dạng tập các giao dịch với mỗi
item là một ứng dụng (chọn một số nguyên làm đại diện cho ứng dụng này). Nghĩa là mỗi
hàng là danh sách các số nguyên mà mỗi số đại diện cho một ứng dụng mà mỗi thiết bị sử
dụng. Ví dụ: 37 132 205 587 779 780 1183 1767 2486 2848 3082 3945 4506 5082 6133
11540 13783 16629 22110 25783 46603 112625 112626. Tương tự danh sách các
malware cũng được đánh số đại diện. Mỗi malware được biểu diễn bởi một số nguyên.
3.3. Phát hiện dấu hiệu dự báo
3.3.1. Tìm đặc trưng của các thiết bị nhiễm malware
Việc nhiễm malware sẽ có ảnh hưởng đến trạng thái hoạt động của thiết bị. Có thể
tìm ra một vài đặc điểm thường thấy trên các thiết bị nhiễm malware, chẳng hạn như thời
lượng pin, lượng tài nguyên bộ nhớ, hoặc các ứng dụng được cài đặt,… Trong phạm vi
nghiên cứu của khóa luận này, đặc trưng của thiết bị nhiễm malware là tập các ứng dụng
thường được cài đặt trong thiết bị. Tức là mục tiêu là đi tìm các tập ứng dụng có lượng tần
suất xuất hiện đủ nhiều để coi đó là dấu hiệu ban đầu trong việc dự báo. Phương pháp
được áp dụng ở đây sẽ khai phá luật kết hợp. Cụ thể, sẽ coi mỗi thiết bị nhiễm malware là
một giao dịch trong cơ sở dữ liệu giao dịch, các ứng dụng trong thiết bị là tập mục. Tứ đó,
tìm ra các tập mục phổ biến, cũng chính là tập các ứng dụng xuất hiện nhiều
Để làm được như trên, trước hết cần lọc ra từ tập dữ liệu D ban đâu các thiết bị có
nhãn I (nhiễm malware). Tập các thiết bị nhiễm malware này sau khi loại bỏ nhãn I, gọi là
D1. Tiến hành tìm các tập mục phổ biến trong D1 theo thuật toán Top-K với độ phủ tối
thiểu minCov cho trước, đây cũng có thể coi là số lần xuất hiển tối thiểu mà tập các ứng
dụng phải đạt được. Một độ đo tần suất f được đề xuất như sau:
f=covD1/covD
26
trong đó:
covD1 là số lần xuất hiện của tập mục trong D1
covD là số lần xuất hiện của tập mục trong D
Ý nghĩa của độ đo f là khả năng nhiễm mã độc của đặc trưng so với các thiết bị khác có
cùng tập ứng dụng đó. Nói cách khác, ta xét số lần xuất hiện của 1 tập ứng dụng cụ thể
và xác định xem trong số đó, các thiết bị nhiễm malware chiếm tỉ lệ bao nhiêu. Ví dụ:
Xét một tập mục phổ biến X = {101 132 145} tương ứng là 3 ứng dụng có ID là 101,
132, 145. Tập mục X xuất hiện trong D1 50 lần, xuất hiện trong D là 1000 lần. Nói
cách khác, có 1000 thiết bị sử dụng đồng thời 3 ứng dụng 101, 132, 145 thì có đến 50
thiết bị là nhiễm malware. Vậy ta có:
CovD1= 50; covD=1000
=> f = 50 /1000 = 5%;
3.3.2. Tìm tập luật
Như phần trước đã đề xuất, mục tiêu của tập luật cần tìm là tập tất cả các luật
kết hợp có dạng {ai} → I , trong đó vế trái là tập mục, vế phải là nhãn L với L = {C, I}
. Tuy nhiên, có thể đồng nhất nhãn lớp thành một mục trong tập mục gọi là ({ai}, L).
Từ đây áp dụng kĩ thuật khai phá luật kết hợp top-K để tìm ra k luật tốt nhất và tìm ra
các luật theo thuật toán tìm kiếm OPUS. Cụ thể các bước tiến hành như sau:
- Kết hợp nhãn lớp của thiết bị thành 1 tập mục có dạng ({ai}, L ) trong đó {ai} là
tập gồm i mục tương ứng với i ứng dụng của thiết bị, L là nhãn nhận một trong
2 giá trị là C (clean – thể hiện thiết bị sạch) hoặc I (infected – thể hiện thiết bị đã
nhiễm mã độc)
- Áp dụng thuật toán top-K để sinh ra tập gồm k luật kết hợp tốt nhất
- Thiết lập ràng buộc để tìm luật thỏa mãn yêu cầu. Các ràng buộc bao gồm:
Vế phải của luật được cố định trước mục “I” duy nhất, như vậy sẽ tìm ra
được các luật kết hợp nhãn lớp
Các luật được sắp xếp theo độ mạnh (hay độ tin cậy) giảm dần, như vậy sẽ
lọc ra được các luật tốt nhất.
27
Chương 4. Thực nghiệm và đánh giá
Trong chương này, khóa luận sẽ trình bày thực nghiệm trên mô hình đề xuất ở
chương ba. Tôi tiến hành thực nghiệm trên hơn 55,000 thiết bị di động chạy trên nền
Android được thu thập bởi Carat. Dựa vào kết quả thực nghiệm, tôi tiến hành đánh giá,
nhận xét và đưa ra định hướng tiếp theo.
4.3. Môi trường thực nghiệm
4.3.1. Cấu hình phần cứng
Bộ xử lý Intel® Core™ i7-2630QM CPU @
2.00 GHz
RAM 6.00 GB
Hệ điều hành Microsoft Windows 7 Professional
Bảng 4.1. Cấu hình phần cứng
4.3.2. Công cụ thực nghiệm
Trong khóa luận có sử dụng phần mềm Magnum Opus5 để tiến hành khai phá
các tập mục và luật kết hợp. Ngoài ra để xử lý và tính toán các độ đo cần thiết, tôi sử
dụng công cụ Eclipse để lập trình
Hình 4.1. Giao diện công cụ Magnum Opus 5 http://giwebb.com/
28
Hình 4.2. Chương trình được xây dựng trên Eclipse
4.2. Dữ liệu thực nghiệm
4.2.1. Tập dữ liệu Carat
Khóa luận sử dụng bản chỉnh sửa của ứng dụng Carat phiên bản mã nguồn mở
để ghi lại các ID của nhà phát triển, hay là các dc. Các đội phát triển Carat công bố bản
chỉnh sửa vào 11/4/2014 và cung cấp những dữ liệu thu thập được từ ngày đó đến
15/10/2013. Có 55,278 thiết bị Android được nâng cấp lên phiên bản mới trong suốt
quá trình thu thập và được ghi lại thông tin khi nhận diện các gói
Mỗi thiết bị chạy Carat được nhận dạng bởi số hiệu Carat ID duy nhất. Các số
hiệu này được tính toán bằng việc áp dụng hàm băm SHA-1 cho các mã nhận dạng sẵn
có trên thiết bị (như IMEI, địa chỉ Wifi MAC) và thời gian cài đặt Carat. Khi Carat lấy
mẫu, nó sẽ duyệt danh sách tiến trình và sinh ra một bản ghi cho mỗi ứng dụng đang
chạy. Thông tin gói được trích xuất trực tiếp trên thiết bị từ PackageInfo. Bên cạnh
Carat ID và mã nhận dạng gói, Carat cũng ghi lại các tên phiên dịch của gói (là chuỗi
kí tự mà con người có thể đọc hiểu), phân quyền của gói và nhãn thời gian khi gói
được ghi lại bởi Carat. Các thông tin bổ sung được sử dụng cho những phân tích khác
nhau. Bảng 4.1 thể hiện thống kê tổng quan về tập dữ liệu Carat
29
Loại Số lượng
Các thiết bị phân biệt
Các tên gói duy nhất
Các devcert (dc) duy nhất
Các bộ <dc,p> duy nhất
Các bộ <dc,p,v> duy nhất
Tổng số các bản ghi duy nhất
55,278
64,916
41,809
83,226
192,080
5,358,819
Bảng 4.2. Tổng quan về tập dữ liệu Carat
Các tác giả của Carat cung cấp chi tiết hơn về kĩ thuật bảo vệ quyền riêng tư được
sử dụng bởi Carat [1]. Việc Carat thu thập dữ liệu thuộc về tiến trình IRB của UC
Berkeley. Vì nguyên nhân riêng tư, Carat không thu thập bất kỳ các thông tin nhận dạng
mang tính cá nhân nào về người dùng của thiết bị (như địa chỉ, số điện thoại,…). Người
dùng Carat được thông báo về quyền thu thập dữ liệu trên thiết bị của họ
Những thay đổi được làm với Carat là để thu thập các giá trị dc của gói, bên cạnh
các tên gói (giá trị p) mà đã được thu thập. Bởi vì giá trị dc không mang thông tin bổ sung
nào về người dùng, nên kĩ thuật thu thập dữ liệu không ảnh hưởng gì tới quyền riêng tư
của người dùng
Tôi định hướng cho tập dữ liệu Carat mà được giới thiệu trong báo cáo này là sẵn có
đối với việc nghiên cứu. Để bảo vệ quyền riêng tư của người dùng, tôi có thay đổi đối với
những nội dung sau đây:
- Tính toán tên riêng của các thiết bị được công khai bằng việc sử dụng hàm băm
SHA-1. Việc này sẽ ngăn chặn các địch thủ trong việc tương quan tên thiết bị
- Chuyển tên gói (p) bằng việc tính toán hàm băm SHA-1 của nó. Việc này sẽ làm ẩn
đi tên của các gói không công khai.
30
4.2.2. Tập dữ liệu Malware
Tôi sử dụng dữ liệu malware từ 3 nguồn khác nhau: tập dữ liệu Malware Genome
cung cấp bởi Zhou cùng cộng sự [16], tập dữ liệu Mobile Sandbox cung cấp bởi
Spreitzenbarth cùng cộng sự [12], và tập dữ liệu McAfee cung cấp bởi McAfee.
Nguồn của mỗi tập dữ liệu sử dụng chính bộ tiêu chuẩn duy nhất của chúng để xác
định xem liệu rằng có chứa một gói Android trong tập dữ liệu hay không. McAfee sử dụng
một kĩ thuật phân lớp độc quyền. Khi sử dụng giao diện web Mobile Sandbox, bất cứ ai
cũng có thể đưa ra một gói tới Mobile Sandbox để xem xét. Mobile Sandbox bao gồm một
gói trong tập dữ liệu của nó nếu bất kỳ cái nào trong số hơn 40 công cụ anti-virus mà họ
sử dụng để gắn cờ các gói là malware. Malware Genome là một tập cố định các mẫu
malware đã biết mà thu thập trong suốt khoảng thời gian từ tháng 8/2010 đến 10/2011
Mỗi gói Android (.apk file) trong một tập dữ liệu, tôi trích xuất ra các nhận diện gói
theo dạng là một bộ <dc,p,v> . Vì vậy, tập dữ liệu malware là một bảng các bản ghi. Bảng
2 nêu tổng quan tập dữ liệu malware này
Loại Mobile
Sandbox
McAfee Malware
Genome
Union
Các devcert (dc) duy nhất
Các bộ <dc,p> duy nhất
Các bộ <dc,p,v> duy nhất
Các file apk duy nhất
3,879
13,080
16,743
96,500
1,456
2,979
3,182
5,935
136
756
1,039
1,260
4,809
15,804
19,094
103,695
Bảng 4.3. Tổng quan về tập dữ liệu malware
4.4. Các bước thực nghiệm
Để thực nghiệm chương trình, tôi tiến hành các bước sau
- Bước 1: Gán nhãn “C” hoặc “I” cho các thiết bị
- Bước 2: Tìm đặc trưng của các thiết bị nhiễm malware
Bước 2a: Cô lập các thiết bị có nhãn là I vào cơ sở dữ liệu D1
31
Bước 2b: Trích xuất ra các tập mục phổ biến trong D1, đồng thời tính toán
số lần xuất hiện (Độ phủ cov) của các tập mục.
Bước 2c: Lọc ra các tập mục có độ phủ lớn hơn một ngưỡng minCov cho
trước
Bước 2d: Tính toán tỉ lệ giữa số lần xuất hiện trong D1 và trong D (độ đo f)
Bước 2e: Lọc ra các tập mục có độ f lớn hơn một ngưỡng minf cho trước
- Bước 3: Tìm luật kết hợp có nhãn “I”
Bước 3a: Cố định ràng buộc cho giá trị nằm bên phải của luật
Bước 3b: Trích xuất ra các luật kết hợp bằng công cụ theo các tiêu chí tìm
kiếm khác nhau
Bước 3c: Thử lại với các tiêu chí tìm kiếm khác rồi đối chiếu chất lượng tập
các luật
4.5. Kết quả thực nghiệm
- Lọc và xử lý dữ liệu: các ứng dụng được đánh mã số và gán nhãn “I” (nhiễm
mã độc) hoặc “C” (sạch)
Hình 4.3. Kết quả gán nhãn cho thiết bị,
mỗi dòng tương ứng với một thiết bị
32
- Sau khi tiến hành lọc và phân tích, tôi ghi nhận được 285 thiết bị có nhiễm
malware, trên tổng số 55,000 thiết bị. Tiến hành cô lập các thiết bị có nhiễm malware,
tôi sử dụng công cụ Magnum Opus để phát hiện các tập mục phổ biến. Các độ đo tôi
thiết lập như sau:
Tùy chỉnh Giá trị thiết lập
Search for Itemset
Search by Coverage
Filter out Redundant
Minimum coverage (count) 36
Maximum no. 500,000
Maximum size 10
Bảng 4.4. Các thiết lập để tìm tập mục cho đặc trưng
Kết quả thu được khoảng gần 75,000 tập mục với độ phủ được sắp xếp giảm dần
33
Hình 4.4. Các tập mục phổ biến trong D1
34
Tiếp theo, tôi tiến hành tính toán độ đo f hay tỉ lệ xuất hiện của các tập mục
trong tập D, lấy ngưỡng minf=0.01 , lọc ra được còn lại 800 tập mục. Mỗi tập mục
tương ứng với một dòng. Ví dụ “10 5với f= 72/6998 0.010288653901114605” nghĩa là
tập mục {10, 5} xuất hiện 72 lần trong D1 và 6998 lần trong D, với tỉ lệ này thì vào
khoảng 1%. Theo thống kê, độ tin cậy cao nhất thu được cũng chỉ vào khoảng 1,3%
Hình 4.5. Các tập mục phổ biến trong D1 có độ tin cậy trên toàn tập D
Nhân xét: Tôi nhận thấy độ f nhỏ do các tập mục là phổ biến trong D1 thì cũng xuất
hiện rất nhiều trong D.
35
- Để tìm tập luật, tôi áp dụng khai phá luật kết hợp. Tìm các luật được ràng buộc
vế trái là I, các luật được sắp xếp theo độ tin cậy giảm dần. Các thông số được cài đặt
như sau:
Tùy chỉnh Giá trị thiết lập
Search for Rules
Search by Strength
Filter out Insignificant
Minimum coverage (count) 1
Maximum no. 1000
Maximum size 4
Minimum strength 0.25
Bảng 4.5. Các thiết lập để tìm tập luật (độ mạnh tối thiểu là 25%)
Với kiểu lọc “Insingificant” để loại bỏ các luật không quan trọng, kết quả thu
được gồm 225 luật có độ mạnh tối thiểu là 25% .
36
Hình 4.6. Các luật kết hợp được ràng buộc vế trái là “I” (nhiễm độc)
Nhận xét: Với kết quả này, tôi nhận thấy, các luật thu được có tần suất xuất hiện rất ít
nhưng độ mạnh của luật rất cao (cao nhất là 100%) . Về mặt ý nghĩa, có thể thấy vế trái
là các ứng dụng lạ, ít được các thiết bị cài đặt và chỉ xuất hiện ở các thiết bị bị nhiễm
mã độc. Các ứng dụng này có thể được đưa ra để đánh giá và xem xét sự liên quan giữa
chúng và các malware.
37
Kết luận và định hướng nghiên cứu tiếp theo
Qua quá trình tìm hiểu phương pháp tiếp cận bằng khai phá dữ liệu để áp dụng
vào bài toán dự báo nhiễm malware trên thiết bị di động, khóa luận đã đề xuất ra mô
hình dự báo dựa trên khai phá luật kết hợp. Khóa luận đạt được các kết quả sau đây:
- Giới thiệu về malware và hiện trạng nhiễm malware trên nền Android trong
những năm gần đây
- Trình bày và phân tích hướng tiếp cận bằng khai phá dữ liệu đối với bài toán
dự báo nhiễm malware.
- Đề xuất và triển khai mô hình dự báo dựa trên khai phá luật kết hợp
- Thực nghiệm trên tập dữ liệu gồm 55,000 thiết bị Android. Kết quả đã tìm ra
được tập các đặc trưng và tập luật có thể áp dụng trong việc dự báo.
Tuy nhiên, do hạn chế về mặt thời gian và kiến thức nên khóa luận vẫn tồn tại
mặt hạn chế như: đặc trưng của các thiết bị nhiễm malware mới chỉ xét theo hướng các
tập ứng dụng nào xuất hiện đủ lớn, còn các đặc trưng khác như thời lượng pin, hay hiệu
suất hoạt động thì chưa thể khai thác được; các đặc trưng chưa mang tính phổ biến cao
do độ đo f còn thấp.
Trong thời gian tới, tôi sẽ tiếp tục khai thác các khía cạnh khác để trích xuất ra
nhiều đặc trưng hơn nhằm tăng khả năng dự báo. Ngoài ra, tôi sẽ tìm các hướng tiếp
cận khác trong khai phá dữ liệu để tìm ra các tập luật có độ chính xác cao hơn.
38
TÀI LIỆU THAM KHẢO
[1] Adam J. Oliner, Anand P. Iyer, Ion Stoica, Eemil Lagerspetz, and Sasu Tarkoma.
Carat: Collaborative energy diagnosis for mobile devices. SenSys 2013: 10.
[2] Rakesh Agrawal, Tomasz Imielinski, Arun N. Swami: Mining Association Rules
between Sets of Items in Large Databases. SIGMOD Conference 1993: 207-216
[3] Brian Krebs. Mobile Malcoders Pay to (Google) Play, March 2013.
http://krebsonsecurity.com/2013/03/mobile-malcoders-pay-to-google-play/.
[4] Charles Lever, Antonakakis, Manos, Reeves, Brad, Traynor, Patrick, and Lee,
Wenke. The core of the matter: Analyzing malicious trac in cellular carriers. In
Proceedings of the 2013 Network and Distributed Systems Security Conference
(NDSS 2013). Internet Society, 2013
[5] Rich Cannings ().Google. An update on android market security. Google Mobile Blog,
Mar 2011.
http://googlemobile.blogspot.com/2011/03/update-on-android-market-
security.html.
[6] Hien Thi Thu Truong, Eemil Lagerspetz, Petteri Nurmi, Adam J. Oliner, Sasu
Tarkoma, N. Asokan, Sourav Bhattacharya (2013): The Company You Keep:
Mobile Malware Infection Rates and Inexpensive Risk Indicators
[7] Liu, B., Hsu, W. Ma, Y.: Mining association rules with multiple minimum supports.
In: KDD 1999, New York, USA, pp. 337–341 (1999)
[8] Lookout Mobile. Lookout tours the current world of mobile threats. Lookout blog,
June 2013. https://blog.lookout.com/blog/2013/06/05/world-current-of-mobile-
threats/.
[9] Lookout Mobile. 2013 mobile threat predictions. Lookout blog, Dec 2012.
https://blog.lookout.com/blog/2012/12/13/2013-mobile-threat-predictions/
[10] Kari Kostiainen, Elena Reshetova, Jan-Erik Ekberg, and N. Asokan. Old, new,
borrowed, blue -: aperspective on the evolution of mobile platform security
39
architectures. In First ACM Conference on Data and Application Security and
Privacy, pages 13-24. ACM, 2011.
[11] M. Chandramohan and Hee Beng Kuan Tan. Detection of mobile malware in the
wild. Computer, 45(9):65-71, 2012.
[12] Michael Spreitzenbarth, Florian Echtler, Thomas Schrek, Felix C. Freiling, and
Johannes Homan. MobileSandbox: looking deeper into android applications. In
Proceedings of the 28th International ACM Symposium on Applied Computing
(SAC), Coimbra, Portugal, 2013
[13] Nathaniel Husted and Steven Myers. Why mobile-to-mobile wireless malware
won't cause a storm. In Proceedings of the 4th USENIX conference on Large-
scale exploits and emergent threats (LEET'11), Boston, 2011. USENIX
Association
[14] NQMobile. Mobile malware up 163% in 2012, getting even smarter in 2013,
according to NQ mobile. PRNEwsWire, April 2013.
http://ir.nq.com/phoenix.zhtml?c=243152&p=irol-newsArticle&id=1806588
[15] Robert McGarvey. Threat of the week: Mobile malware, menace or myth?
CreditUnion Times, April 2013
[16] Yajin Zhou and Xuxian Jiang. Dissecting android malware: Characterization and
evolution. In 2012 IEEE Symposium on Security and Privacy (SP), pages 95{109,
2012.
[17] Webb, G. I. and S. Zhang (2005). k-Optimal-Rule-Discovery. Data Mining and
Knowledge Discovery 10
[18] Webb, G. I. (2000). Efficient Search for Association Rules. In R. Ramakrishnan
and S. Stolfo (Eds.), Proceedings of the Sixth ACM SIGKDD International
Conference on Knowledge Discovery and Data Mining (KDD-2000) Boston,