Nếu kẻ tấn công có thể lấy được các thông tin của người sử dụng và vượt qua chúng trên chợ ứng dụng, sau đó trong trường hợp này, các phần mềm độc hại sẽ được cài đặt vào thiết bị mà [r]
Trang 1LỜI CAM ĐOAN
Tôi xin cam đoan các kết quả nghiên cứu trong luận văn này là sản phẩm của cá nhân tôi dưới sự hướng dẫn của thầy giáo PGS TS Phạm Thanh Giang Các số liệu, kết quả được công bố là hoàn toàn trung thực Những nội dung trình bày trong luận văn này là do tôi nghiên cứu, tổng hợp từ nhiều nguồn tài liệu khác nhau Các tài liệu tham khảo có xuất xứ
rõ ràng, và được trích dẫn đầy đủ, hợp pháp
Tôi xin hoàn toàn chịu trách nhiệm trước lời cam đoan của mình
Hà Nội, ngày tháng 9 năm 2020
Người cam đoan
Trần Đức Kiên
Trang 2LỜI CẢM ƠN
Lời đầu tiên, tôi xin được gửi lời biết ơn sâu sắc tới thầy giáo PGS
TS Phạm Thanh Giang, Trưởng phòng Tin học viễn thông, Viện Công nghệ thông tin, Viện Hàn lâm Khoa học và Công nghệ Việt Nam người thầy đã luôn khuyến khích, tận tình chỉ bảo, hướng dẫn và hỗ trợ tôi trong suốt quá trình nghiên cứu
Tôi xin dành lời cảm ơn chân thành tới các thầy cô giáo của Viện Công nghệ thông tin đã tận tình đào tạo, cung cấp cho tôi những kiến thức
vô giá, tạo điều kiện tốt nhất cho tôi trong quá trình học tập, nghiên cứu
Tôi cũng xin gửi lời cảm ơn tất cả những người thân yêu trong gia đình tôi cùng toàn thể bạn bè, đặc biệt là bạn Nguyễn Việt Đức, cán bộ Phòng Tin học viễn thông, Viện Công nghệ thông tin đã luôn giúp đỡ, động viên tôi những khi khó khăn, trở ngại
Cuối cùng, tôi xin gửi lời cảm ơn tới các đồng nghiệp của tôi tại Bộ
Tư lệnh Cảnh vệ, Bộ Công an đã giúp đỡ, tạo điều kiện thuận lợi cho tôi học tập và nghiên cứu chương trình thạc sĩ Viện Công nghệ thông tin, Viện Hàn lâm Khoa học và Công nghệ Việt Nam
Trang 3MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
MỤC LỤC iii
DANH MỤC CÁC KÝ HIỆU VIẾT TẮT iv
DANH MỤC CÁC BẢNG BIỂU v
DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ vi
MỞ ĐẦU 1
CHƯƠNG 1 TỔNG QUAN 4
1.1 NGHIÊN CỨU LIÊN QUAN 4
1.2 GIỚI THIỆU VỀ NỀN TẢNG ANDROID 5
1.2.1 Lịch sử hình thành và phát triển 5
1.2.2 Một số phương pháp lây nhiễn mã độc trên nền tảng Android 8 1.3 PHÂN TÍCH MÃ ĐỘC 9
1.3.1 Các phương pháp phân tích mã độc trên Android 10
1.3.2 Ưu và Nhược điểm của phân tích tĩnh và phân tích động 16
1.4 GIỚI THIỆU VỀ HỌC MÁY 17
1.4.1 Phân loại các thuật toán học máy 19
1.4.2 Giới thiệu một số thuật toán học máy hiệu quả với bài toán 20
CHƯƠNG 2 ỨNG DỤNG MÔ HÌNH HỌC MÁY TRONG PHÁT HIỆN NGUY CƠ MÃ ĐỘC TRÊN NỀN TẢNG ANDROID 25
2.1 PHƯƠNG PHÁP THU THẬP DỮ LIỆU THÔ 25
2.1.1 Thu thập dữ liệu 25
2.1.2 Giải thích cấu tạo file APK 25
2.1.3 Thực hiện dịch ngược file APK để lấy thuộc tính với apktool 28 2.1.4 Trích xuất feature từ dữ liệu thô được dịch ngược từ apktool 30 2.2 PHƯƠNG PHÁP CHUẨN HÓA TẬP THUỘC TÍNH 31
2.2.1 Tập thuộc tính 31
2.2.2 Chuyển dữ liệu sang không gian vector 34
CHƯƠNG 3 ĐỀ XUẤT MÔ HÌNH, ĐÁNH GIÁ 37
CHƯƠNG 4 KẾT LUẬN 45
TÀI LIỆU THAM KHẢO 46
Trang 4DANH MỤC CÁC KÝ HIỆU VIẾT TẮT
OS Operating system – Hệ điều hành APK Android Package Kit
FN False Negative
FP False Positive
TN True Negative
TP True Positive FNR False Negative Rate FPR False Positive Rate TNR True Negative Rate TPR True Positive Rate
LR Logistic Regression – Hồi quy Logistic SVM Support Vector Machine
Trang 5DANH MỤC CÁC BẢNG BIỂU
Bảng 1.1 Ưu và nhược điểm của phân tích tĩnh, phân tích động 16 Bảng 3.1 Precision và Recall của S1 đến S8 40 Bảng 3.2 Precision và Recall các nhóm thuộc tính 42
Trang 6DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ
Hình 2.1 Sơ đồ quy trình học máy cơ bản 18
Hình 2.2 Mô hình phân lớp nhị phân của SVM 21
Hình 3.1 Cách đóng gói file APK 28
Hình 3.2 Thư mục chứa dữ liệu giải nén từ file APK 29
Hình 3.3 Biểu đồ F1 – Score của các thuộc tính S1 đến S8 39
Hình 3.4 Biểu đồ Accuracy của các thuộc tính S1 đến S8 39
Hình 3.5 F1-score của các nhóm thuộc tính 44
Trang 7MỞ ĐẦU
Ngày nay cùng với sự phát triển mạnh mẽ của công nghệ thông tin
và sự phát triển của Internet toàn cầu là các nguy cơ mất an toàn thông tin đang trở nên nguy hiểm và khó lường hơn, trong đó mã độc hại (malware) là một trong những mối hiểm họa nghiêm trọng trên Internet
Mã độc ngày càng tiến hóa với những biến thể đa dạng từ virus máy tính, worm, botnet…với các hình thức xâm nhập, che dấu ngày càng tinh vi
Số lượng và hình thái đa dạng của mã độc ngày càng tăng, trong khi các phần mềm phòng chống mã độc không thể phát hiện, ngăn chặn được hết dẫn đến hàng triệu máy tính bị nhiễm mã độc Ở Việt Nam, theo số liệu thống kê của BKAV thì năm 2017 có đến 15 triệu máy tính ở Việt Nam
bị nhiễm mã độc tương ứng thiệt hại khoảng 12.300 tỷ đồng Ngoài ra, ngày nay để phát triển một mã độc mới không yêu cầu nhiều kỹ năng cao
do tính sẵn có các công cụ tấn công trên internet Tính sẵn sàng cao của các kỹ thuật chống phát hiện cũng như khả năng mua phần mềm độc hại trên thị trường chợ đen dẫn đến cơ hội trở thành một kẻ tấn công cho bất
kỳ ai, không phụ thuộc vào cấp độ kỹ năng và trình độ chuyên môn Do
đó, bảo vệ hệ thống máy tính khỏi các phần mềm độc hại trên Intenet là một trong những nhiệm vụ quan trọng nhất về an ninh mạng cho người dùng, doanh nghiệp Một cuộc tấn công đơn lẻ có thể dẫn đến dữ liệu bị xâm phạm và gây ra những hậu quả to lớn Sự mất mát lớn và các cuộc tấn công thường xuyên đặt ra yêu cầu cần thiết phải có các phương pháp phát hiện chính xác và kịp thời
Android là một nền tảng hệ điều hành phổ biến nhất trên thiết bị di động ngày nay Cùng với hàng trăm nghìn ứng dụng trên các kênh lưu trữ trực tuyến, nền tảng Android đã đáp ứng được hầu hết các nhu cầu đa dạng của người sử dụng Do sự phổ biến, tính mở, tính tùy biến linh hoạt
Trang 8nên vấn đề an toàn, bảo mật nói chung và mã độc nói riêng trong hệ thống Android luôn là chủ đề nóng
Phát hiện mã độc là một bước quan trọng để có thể ngăn chặn và tiêu diệt hoàn toàn mã độc ra khỏi thiết bị hoặc hệ thống mạng; khôi phục lại hiện trạng của thiết bị, hệ thống mạng; truy tìm nguồn gốc tấn công Hầu hết mã độc ở dạng các chương trình, dịch vụ không thể đọc thông thường Các cách phát hiện mã độc chính là: sử dụng các công cụ và các
kĩ thuật phân tích Có hai kĩ thuật phân tích chính là Phân tích tĩnh (không cần chạy mã độc trong hệ thống) và Phân tích động (thực hiện khi mã độc chạy trong hệ thống)
Học máy là một lĩnh vực của trí tuệ nhân tạo liên quan đến việc nghiên cứu và xây dựng các kĩ thuật cho phép các hệ thống "học" tự động
từ dữ liệu để giải quyết những vấn đề cụ thể
Ứng dụng học máy trong phát hiện mã độc là chủ đề đang thu hút nhiều sự quan tâm trong thời gian qua; khắc phục những nhược điểm của các phương pháp so sánh mẫu dựa trên cơ sở dữ liệu mã độc được xây dựng và định nghĩa từ trước là không có khả năng phát hiện ra các mẫu
mã độc mới, số lượng dữ liệu mã độc ngày càng gia tăng làm cho cơ sở
dữ liệu mẫu trở nên ngày càng lớn
Hơn nữa, ngày nay số lượng mã độc ngày càng tăng cao dẫn đến số lương mẫu ngày càng nhiểu đòi hỏi phải có một phương pháp phù hợp để phát hiện mã độc Do đó hướng nghiên cứu dựa vào các mô hình học máy
để phát hiện và phân loại mã độc tỏ ra là phương pháp tìm năng và hiệu quả khi số lượng mẫu mã độc lớn và các biến thể của mã độc ngày càng
đa dạng Tuy nhiên một trong những vấn đề chính được quan tâm là làm thế nào để xây dựng được mô hình học máy hiệu quả và mang lại kết quả chính xác cao Trong đó có một yếu tố quan trọng ảnh hưởng chính đến
mô hình và hiệu qủa của các thuật toán học máy là lựa chọn đặc trưng và
Trang 9các phương pháp trích chọn đặc trưng phù hợp Trong luận văn, tác giả
đề xuất một phương pháp thu thập bộ tiêu chí mở rộng gồm các thông tin
đa dạng thu thập từ ứng dụng Android sau đó phân tích đánh giá mức độ
an toàn của ứng dụng Dữ liệu đánh giá dựa trên tập mẫu bao gồm 82.682
mẫu với 545.167 feature Với tập mẫu như vậy, phương pháp hứa hẹn sẽ
đạt hiệu quả trong việc dự đoán và phát hiện các loại mã độc khác nhau,
tuy nhiên nghiên cứu vẫn sẽ đảm bảo được hiệu năng cao
Trang 10CHƯƠNG 1 TỔNG QUAN
1.1 NGHIÊN CỨU LIÊN QUAN
Hiện nay, nhằm thay thế phương pháp đối chiếu chữ ký số cũ với những hạn chế trong việc xử lý các mẫu mã độc mới, các nghiên cứu thường tập trung phân tích sâu hơn vào mỗi tập tin apk để tìm ra đặc điểm riêng Hai cơ chế chính là cơ chế phân tích tĩnh và cơ chế phân tích động Trong đó, cơ chế thứ nhất là phương pháp trích xuất đặc trưng từ mã nguồn của tập tin cài đặt Cơ chế còn lại là thu thập các luồng thông tin nhập xuất trong thời gian thực thi của ứng dụng Các đặc trưng được rút
ra từ hai phương pháp này chính là thuộc tính đầu vào của phương pháp học máy[1]
Crowdroid, AMDA và MADAM nằm trong số các công trình nghiên cứu thực hiện phát hiện phần mềm độc hại android thông qua cơ chế phân tích động Trình theo dõi Crowdroid ghi lại tất cả cuộc gọi hệ thống và
sử dụng các kỹ thuật phân cụm để xây dựng mô hình phân loại AMDA chỉ tập trung theo dõi các hành vi lành tính qua15 lệnh gọi hệ thống để nhận biết mã độc MADAM đã đề xuất một khung phát hiện kết hợp các tính năng ở cấp lõi và cấp ứng dụng MADAM nhận thấy rằng có 11 lệnh gọi hệ thống ở cấp độ kernel có thể mô tả tốt nhất hành vi của thiết bị Tuy nhiên, các đặc trưng được rút ra từ phân tích động thường rất tốn kém và thiếu tính khái quát
Đối với thuộc tính tĩnh, Ignacio Martín và cộng sự khai thác các thông tin trên cửa hàng ứng dụng như ngày đưa lên, số lượt tải, số lượt bình chọn hay tên nhà phát triển để thuộc tính Sau đó, họ thử các thuộc tính này với 3 thuật toán cây quyết định, máy vec-tơ hỗ trợ và hồi quy logistic.Chen và công sự[2] kết hợp thuật toán PCA với 3 bộ thuộc tính bao gồm: quyền ứng dụng, thành phần ứng dụng và hàm chức năng Tuy nhiên, vì số lượng mẫu có hạn với 387 mẫu nên số lượng thuộc tính chỉ
Trang 11đạt số lượng nhỏ là 29 Cũng với sử dụng 3 bộ thuộc tính như bài báo nhưng Drebin đã mở rộng chúng thành 8 bộ thuộc tính chi tiết hơn (quyền, thành phần ứng dụng, bộ lọc intent, kết nối phần cứng, hàm API bị hạn chế, quyền thực dụng, API đáng ngờ, địa chỉ mạng) Có thể thấy 8 bộ thuộc tính này là rất phong phú và đầy đủ để chúng tối sử dụng và tiến hành so sánh và đánh giá
1.2 GIỚI THIỆU VỀ NỀN TẢNG ANDROID
1.2.1 Lịch sử hình thành và phát triển
Hệ điều hành Android cách đây 13 năm bởi Andy Rubin, người sáng lập công ty Android Inc năm 2003 Hiện nay, nó đã trở thành hệ điều hành di động phổ biến nhất trên thế giới, đánh bại nhiều đối thủ như Symbian, BlackBerry, Palm OS, webOS và Windows Phone[3] Ban đầu, Android là hệ điều hành cho các thiết bị cầm tay dựa trên lõi Linux do công ty Android Inc Năm 2005, Android Inc được google mua lại và phát triển
Tháng 11 năm 2007, hàng điện thoại và khai thác mạng không dây TMobile của Mỹ công bố chiếc điện thoại Android đầu tiên mang tên TMobile G1 Cùng thời điểm, Google công bố ra mắt phiên bản Android SDK release Candidate 1.0
Cuối năm 2008, Google cho ra mắt một thiết bị cầm tay tên là Android Dev Phone 1 có khả năng chạy các ứng dụng Android độc lập
mà không bị ràng buộc với các nhà cung cấp mạng điện thoại di động như T-Mobie Đồng thời, Google phát hành bản vá lỗi Android 1.1
Tháng 4/2009, Android phiên bản 1.5 Cupcake được ra mắt Trong phiên bản này, Google đã bổ sung nhiều tính năng và cải tiến so với 2 phiên bản công khai đầu tiên như tải video lên Youtube, xoay màn hình
Trang 12và cho phép bên thứ ba phát triển bàn phím Đây cũng là phiên bản đầu tiên Google đặt tên riêng cho phiên bản của Android theo tên các loại bánh kẹo
Tháng 9/2009, Google nhanh chóng tung ra Android 1.6 Donut Cập nhật quan trọng nhất trong phiên bản này là việc hỗ trợ cho các nhà mạng sử dụng mạng CDMA Điều này đã thúc đẩy việc các điện thoại Android có thể vươn ra trên toàn cầu
Tháng 10/2009, Android 2.0 Eclair được cập nhật Đây là phiên bản đầu tiên tính năng chuyển văn bản thành giọng nói (Text – to – speech) được đưa vào cùng nhiều tính năng, cải tiến khác
Tháng 5/2010, Android 2.2 Froyo được ra mắt Các cập nhật đáng chú ý của phiên bản này là tính năng phát sóng di động Wi-Fi, hỗ trợ flash, Android Cloud
Tháng 9/2010, Android 2.3 Gingerbread được google tung ra Cho đến nay, đây là phiên bản thấp nhất Google còn liệt kê trong các phiên bản cập nhật NFC lần đầu tiên được đưa vào Android Đây cũng là phiên bản đặt nền móng cho việc chụp ảnh selfie, hỗ trợ nhiều camera, hỗ trợ Google Talk
Tháng 02/2011, Android 3.0 Honeycomb được giới thiệu Đây là phiên bản Google tập trung phát triển dành cho máy tính bảng hoặc các thiết bị di động có màn hình lớn
Tháng 10/2011, Android 4.0 Ice-cream Sandwich là sự kết hợp của Honeycomb và Gingerbread dành cho các thiết bị smartphone Đây là phiên bản đầu tiên Android hỗ trợ mở khóa điện thoại bằng cách chụp ảnh khuôn mặt, đánh dấu sự phát triển của sinh trắc học trên smartphone
Tháng 6/2012, Android 4.1 Jelly Bean được tung ra và nhận được
sự đón nhận tích cực từ cả người dùng và các nhà phát triển Khả năng
Trang 13phản hồi cảm ứng được cải thiện rất nhiều Tính năng chụp hình HDR và kết nối Miracast cũng được hỗ trợ
Tháng 9/2013, Android 4.4 Kitkat xuất hiện Kitkat không thật sự
có nhiều tính năng nổi trội mới nhưng đây là phiên bản được tối ưu hóa
để chạy trên các smartphone với chỉ 512MB Ram Điều này cho phép các nhà sản xuất cài đặt Kitkat trên các điện thoại chi phí thấp hơn, góp phần tích cực vào việc phổ biến Android trên toàn thế giới
Tháng 9/2014, Android 5.0 Lollipop ra mắt đánh dấu một bước thay đổi lớn về giao diện Hệ điều hành Trong phiên bản này, ngôn ngữ Material Design của Google được sử dụng, nổi bật với các hiệu ứng ánh sáng và bóng tối tự do
Tháng 10/2015, Android 6.0 Marshmallow được phát hành Nó bao gồm nhiều tính năng mới như: Google Now trên Tap, ngăn kéo ứng dụng
di chuyển dọc, mở khóa bằng phương pháp sinh trắc học, hỗ trợ USB Type-C, tích hợp Android Pay, và nhiều tính năng hơn nữa
Tháng 8/2016, Android 7.0 Nougat được tung ra Một số tính năng mới trong phiên bản này gồm các chức năng đa tác vụ tốt hơn đối với điện thoại thông minh có màn hình lớn như chia màn hình và việc chuyển đổi nhanh giữa các ứng dụng
Tháng 3/2017, Android 8.0 Oreo được công bố Hệ điều hành được
bổ sung, nâng cấp nhiều thay đổi trực quan trong menu Cài đặt Ngoài ra, Oreo còn hỗ trợ chế độ ảnh-trong-ảnh, các kênh thông báo, API tự động điền mới để quản lý mật khẩu và điền dữ liệu tốt hơn
Tháng 3/2018, Android 9.0 Pie được phát hành Trong phiên bản này, một số tính năng, cập nhật đáng chú ý như cử chỉ điều hướng, thời gian sử dụng ứng dụng, kết nối bluetooth với 5 thiết bị khác nhau song song, tính năng xoay nhanh màn hình