DỰ BÁO MALWARE TRÊN THIẾT BỊ DI ĐỘNG 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
Trang 1ĐẠ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
Trang 2ĐẠ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
Trang 3VIETNAM 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
Trang 4Lờ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ũ
Trang 5DỰ BÁO MALWARE TRÊN THIẾT BỊ DI ĐỘNG
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
Trang 6FORECASTING MALWARE INFECTION IN MOBILE DEVICES
Keyword: forecasting malware infection, association rule
Trang 7Lờ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ũ
Trang 8MỤ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
Trang 9Chương 3 Mô hình dựbaáo nhiễm malware bằng khai phá dữ liệu Error! 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
Trang 10Danh 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
Trang 11Danh 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
Trang 12Danh sách các từ viết tắt
Tên viết tắt Cụm từ tiếng Anh
Trang 13Dự 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
Trang 14Kế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
Trang 15Chươ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,
để 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
đượ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
Trang 16
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:
Trang 17- 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
Trang 18vấ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
Trang 19Tấ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ủ
Trang 20đí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)
Trang 21Bảng 1.2 Cận dưới về số các thiết bị nhiễm mã độc ở một số vùng
Trang 221.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 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ị
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
Trang 23Chươ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.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ụ
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
Trang 24Luậ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
Độ 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
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:
Trang 25(1) Giai đoạn 1: Tìm tất cả các tập phổ biến trong CSDL D
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