1. Trang chủ
  2. » Luận Văn - Báo Cáo

(Luận văn thạc sĩ) - Ứ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

55 35 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 55
Dung lượng 868,89 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

(Luận văn thạc sĩ) - Ứ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(Luận văn thạc sĩ) - Ứ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(Luận văn thạc sĩ) - Ứ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(Luận văn thạc sĩ) - Ứ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(Luận văn thạc sĩ) - Ứ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(Luận văn thạc sĩ) - Ứ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(Luận văn thạc sĩ) - Ứ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(Luận văn thạc sĩ) - Ứ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(Luận văn thạc sĩ) - Ứ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(Luận văn thạc sĩ) - Ứ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(Luận văn thạc sĩ) - Ứ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(Luận văn thạc sĩ) - Ứ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(Luận văn thạc sĩ) - Ứ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(Luận văn thạc sĩ) - Ứ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(Luận văn thạc sĩ) - Ứ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(Luận văn thạc sĩ) - Ứ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(Luận văn thạc sĩ) - Ứ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(Luận văn thạc sĩ) - Ứ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(Luận văn thạc sĩ) - Ứ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(Luận văn thạc sĩ) - Ứ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(Luận văn thạc sĩ) - Ứ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(Luận văn thạc sĩ) - Ứ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(Luận văn thạc sĩ) - Ứ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(Luận văn thạc sĩ) - Ứ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(Luận văn thạc sĩ) - Ứ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(Luận văn thạc sĩ) - Ứ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(Luận văn thạc sĩ) - Ứ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

Trang 1

LỜ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 2

LỜ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 3

MỤ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 4

DANH 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 5

DANH 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 6

DANH 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 7

MỞ ĐẦ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 8

nê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 9

cá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 10

CHƯƠ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 12

và 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 13

phả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

Trang 14

Tháng 9/2019, Android 10.0 chính thức phát hành Không giống các phiên bản trước đây, phiên bản 10.0 này Google không sử dụng tên các loại bánh kẹo, được sắp xếp theo alphabet như trước đây nữa Android 10.0 ra mắt đi kèm nhiều tính năng mới như chế độ tối toàn diện, thao tác điều hướng mới, tăng cường bảo mật và riêng tư, chế độ Focus Mode, tối

ưu cho các sản phẩm màn hình gập

Android đã có một chặng đường dài phát triển và hoàn thiện Đến nay, Hệ điều hành Android đang trở nên phổ biến nhất thế giới, tiếp cận đến đầy đủ các đối tượng khách hàng, phân khúc khác nhau Bằng chất lượng, tính đa dạng của mình, Android chắc chắn sẽ còn phát triển hơn nữa trong tương lai, phổ biến sâu, rộng hơn trong các thiết bị điện tử, không chỉ đối với điện thoại thông minh

1.2.2 Một số phương pháp lây nhiễn mã độc trên nền tảng Android

Từ năm 2015 đến nay, mỗi ngày thế giới phát hiện thêm khoảng 230.000 chương trình, phần mềm độc hại[4] Phần mềm độc hại có hành

vi nguy hiểm, có thể bao gồm cài đặt phần mềm mà không cần sự đồng ý của người dùng Người dùng đôi khi không nhận ra rằng các tệp có thể tải xuống của họ là phần mềm độc hại, do đó các tệp này có thể được vô tình lưu trữ

Có nhiều phương pháp mà các hacker áp dụng với phần mềm độc hại để lây nhiễm vào các thiết bị Android Bốn phương pháp phổ biến là:

- Đóng gói lại ứng dụng hợp pháp: Đây là một trong những

phương pháp phổ biến nhất được sử dụng bởi những kẻ tấn công Họ có thể tìm và tải về ứng dụng phổ biến trên thị trường, sử dụng các công cụ dịch ngược, thêm các đoạn mã độc hại và sau đó đóng gói lại thành các

Trang 15

ứng dụng mới và đưa ra thị trường ứng dụng Android chính thức hoặc của bên thứ ba Người dùng có thể dễ dàng cài đặt các ứng dụng này do

bị dụ dỗ để tải về và cài đặt các ứng dụng bị nhiễm mã độc Đã có khoảng 86,0% ứng dụng hợp pháp bị đóng gói lại bao gồm cả các mã độc hại sau khi phân tích hơn 1.200 mẫu phần mềm độc hại Android [5]

- Khai thác các lỗ hổng trên ứng dụng Android: Có thể là một

lỗi trong các ứng dụng của người dùng Những kẻ tấn công có thể sử dụng

lỗ hổng này để xâm nhập vào điện thoại và cài đặt phần mềm độc hại trên thiết bị

- Ứng dụng giả mạo: Có những ứng dụng giả mạo là các phần mềm

độc hại cho phép kẻ tấn công truy cập vào thiết bị di động của bạn Những

kẻ tấn công tải lên trên thị trường ứng dụng các ứng dụng giả mạo là các phần mềm chứa mã độc của kẻ tấn công Ví dụ: Kẻ tấn công tải lên một phần mềm có tên Facebook nhưng thực tế đó lại là phần mềm do kẻ tấn công viết và có chứa mã độc trong đó

- Cài đặt từ xa: Các phần mềm độc hại có thể được cài đặt từ xa

lên điện thoại của người dùng 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à không cần sự can thiệp từ phía người dùng[6] Ứng dụng này sẽ chứa mã độc hại cho phép kẻ tấn công truy cập dữ liệu cá nhân như danh sách liên lạc, tin nhắn,

1.3 PHÁT HIỆN MÃ ĐỘC

Mã độc là các chương trình có chứa các đoạn mã độc hại được viết kèm hoặc toàn bộ chương trình nhằm thực hiện hành vi có mục đích xấu như: đánh cắp thông tin, truy cập trái phép, tấn công, chiếm quyền sử

Trang 16

dụng máy, Bất kỳ phần mềm nào cũng bị xem là mã độc nếu có một trong biểu hiện như phá hoại, thay đổi trái phép, phá vỡ hoặc làm mất tính bảo mật, toàn vẹn của dữ liệu người dùng

Tùy thuộc hình thức, cơ chế hoạt động, lây lan và kiểu phá hoại mà phân loại các kiểu mã độc như: spyware, virus, backdoor, trojan, adware,

Ngày nay, Internet phát triển mạnh mẽ tạo điều kiện cho việc tiếp cận có chủ đích và tạo ra mã độc càng trở nên dễ dàng hơn mà không cần các kiến thức quá sâu về công nghệ thông tin[7] Chính vì vậy, thách thức bảo vệ an toàn, an ninh thông tin trước bị đổi mới, biến thể không ngừng của mã độc càng trở nên khó khăn

1.3.1 Các phương pháp phát hiện mã độc trên Android

Phát hiện mã độc là một bước quan trọng trong để có thể ngăn chặn

và tiêu diệt hoàn toàn mã độc ra khỏi máy tính và hệ thống mạng; khôi phục lại hiện trạng của mạng như ban đầu; truy tìm nguồn gốc tấn công

Trước tiên cần xác định được chính xác chuyện gì đã xảy ra với toàn bộ hệ thống, tìm được toàn bộ các thiết bị, tệp, ứng dụng đã bị lây nhiễm

Trong quy trình phát hiện mã độc, chúng ta cần xác định được chính xác những gì mã độc có thể thực hiện, cách thức phát hiện mã độc trong

hệ thống mạng, phương pháp đo lường thiệt hại nó có thể gây ra Và quan trọng nhất cần tìm ra qui luật đặc trưng (Mã nhận diện – signatures) để nhận diện mã độc, diệt mã độc và khôi phục hệ thống

Hầu hết mã độc ở dạng các chương trình, dịch vụ (dạng binary) không thể đọc thông thường 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:

Trang 17

+ Phân tích tĩnh (Phân tích mà không cần mã độc chạy trong hệ thống): Thực hiện việc dịch ngược mã độc bằng các công cụ Disassembler, xem nội dung và cấu trúc[8] mã nguồn để xác định xem

mã độc làm gì Đặc trưng của phương pháp này yêu cầu kiến thức về dịch ngược, hệ thống, tập lệnh

+ Phân tích động (Phát hiện mã độc chạy thật trong hệ thống): Sử dụng các trình debugger để nghiên cứu và xem cách thức thực thi của mã độc trong môi trường thật Từ đó trích xuất thông tin chi tiết về mã độc: nguồn gốc, cách thức lây nhiễm, các đoạn mã, các hàm quan trọng Để có thể thực hiện được phương pháp này cần trang bị kiến thức chuyên sâu

về kĩ thuật, thành thạo việc sử dụng các công cụ và nhiều kĩ năng để có thể vượt qua các kĩ thuật của mã độc

Một số quy tắc chính khi phân tích mã độc:

- Không nên tập trung quá vào những tiểu tiết, hầu hết các mã độc đều có lượng mã nguồn rất lớn, phức tạp và có chứa nhiều mã rác Do đó, chúng ta nên tập trung vào các tính năng chính để tránh mất nhiều thời gian chi tiết hóa các thông tin không cần thiết

- Mỗi công cụ hỗ trợ phân tích có những chức năng riêng, cần vận dụng linh hoạt và hiệu quả dựa trên điểm mạnh của từng công cụ để quá trình phân tích nhanh hơn, chính xác hơn

- Có nhiều chiến thuật phân tích khác nhau, do đó cần thay đổi chiến thuật một cách linh hoạt để hiệu quả phân tích tốt hơn

Việc phân tích mã độc (malware analysis) giống như một trò chơi đuổi bắt, người viết mã độc thì luôn cố che giấu còn người phân tích thì luôn cố tìm ra các thông tin chi tiết nhất[9] Các kĩ thuật mới được tạo ra mỗi ngày, do đó cần luôn luôn cập nhật các kĩ thuật phân tích và công

Trang 18

nghệ mới nhất, ngoài ra cũng cần có sự sáng tạo để quá trình phân tích nhanh, hiệu quả hơn

1.3.1.1 Phương pháp phân tích tĩnh:

Đặc điểm của phương pháp phân tích tĩnh này là sẽ kiểm tra, phân tích Malware mà không thực thi mã độc Cơ bản của việc phân tích tĩnh bao gồm các bước kiểm tra các file thức thi mà không cần các hướng dẫn thực tế Qua bước phân tích tĩnh sẽ xác nhận cho chúng ta liệu file đó có phải là mã độc hay không, cung cấp thông tin về chức năng của chúng, đôi khi những thông tin này sẽ cung cấp cho người dùng những dấu hiệu nhận dạng các loại Malware

Là phương pháp đơn giản và có thể thực hiện một cách nhanh chóng Tuy nhiên phương pháp này lại không có hiệu quả trong việc phân tích những loại Malware phức tạp và do đó chúng ta có thể bỏ qua những hành vi quan trọng mà Malware gây ra

Trong mức này chúng ta chưa quan tâm tới việc thực thi File Malware, trong phần này tôi sẽ tập trung vào việc phân tích mã, cấu trúc, header của chương trình để xác định các chức năng:

- Sử dụng Hash để xác định Malware

- Xác định các thông tin từ string, header, function của file

Mỗi kỹ thuật sẽ cung cấp các thông tin khác nhau tùy thuộc mục đích nghiên cứu Tôi sẽ sử dụng một vài kỹ thuật sao cho thu thập được càng nhiều thông tin càng tốt[10]

Sử dụng Hash để xác định Malware

Hashing là phương pháp phổ biến để nhận diện và xác định phần mềm độc hại Khi Malware được chạy qua một phần mềm hash sẽ tạo ra

Trang 19

một chuỗi ký tự (chuỗi ký tự này được coi như là vân tay của Malware) Mỗi chuỗi hash xác định ra các Malware duy nhất[11], có thể chia sẻ các mẫu hash này để giúp cho những người phân tích xác định Malware

Sử dụng việc tìm kiếm chuỗi

Một chương trình thường chứa các chuỗi nếu nó in ra một message, kết nối tới một đường dẫn URL hoặc copy một file đến một vị trí xác

định

Nghiên cứu các chuỗi cũng là một phương pháp đơn giản để chúng

ta có thêm những thông tin về chức năng của chương trình Ví dụ, chương trình này thường in xuất ra màn hình để cung cấp cho người dùng một cập nhật trạng thái, hoặc để cho biết rằng một lỗi đã xảy ra Những chuỗi trạng thái và chuỗi lỗi kết thúc có thể nhúng trong tập tin thực thi của chương trình và có thể vô cùng hữu ích trong việc phân tích phần mềm

độc hại

Việc bóc tách các chuỗi có trong các phần mềm độc hại được thực hiện bằng các công cụ như Hex Editor, PeiD[12] Cho dù sử dụng bất kỳ công cụ gì để bóc tách các String thì các string có thể được thể hiện dưới dạng mã ASCII hoặc Unicode Nhưng việc phân tích chuỗi cần phải hết sức cẩn thận vì có thể chuỗi đó được người viết Malware cố tình chèn

vào để đánh lừa người phân tích

Việc thực hiện phân tích chuỗi có thể giúp chúng ta phát hiện ra một số loại Malware được lưu dưới một định dạng khác để đánh lửa người dùng như ví dụ sau: Malware netcat là một file thực thi, nhưng chúng được lưu lại dưới định dạng là một file nén để lừa người dùng có dạng là nc.rar

Mỗi loại file có các byte định dạng riêng Kiểm tra các byte định dạng để xác định file đó là loại file gì Chẳng hạn những file thực thi luôn

Trang 20

có các byte định dạng là MZ (được thể hiện dưới dạng hex: 4D 5A), các file nén có định dạng là PK (được thể hiện dưới dạng hex: 50 4B)

Để kiểm tra xem file này có thật sự là một file nén hay là một file thực thi được lưu dưới dạng của một file nén[13], chúng ta có thể sử dụng các công cụ như Hex Editor hay PEiD để kiểm tra vấn đề này

Trình soạn thảo cho phép bạn tìm kiếm chuỗi byte cụ thể trong bản thân file Nó sẽ cho bạn biết liệu Malware download về như trong hình minh hoạ ở trên có thực sự là file winzip hay không Người dùng không cần lo lắng liệu mình có vô tình khiến Malware này phát huy tác dụng hiệu quả của nó ngay bây giờ Đơn giản là vì trong trình soạn thảo Hex, chúng ta chỉ có thể xem được nội dung mà không thể kích hoạt file thực thi

sử dụng kể cả với những người không am hiểu về kiến thức lập trình Và phương pháp này cũng không hiệu quả trong việc phân tích các loại Malware phức tạp[14]

- Advanced dymanic analysis: đây là phương pháp sử dụng chương trình gỡ lỗi để kiểm tra các trạng thái ngầm của mã độc khi thực thi nó

Trang 21

Phương pháp này sẽ cung cấp cho chúng ta những thông tin chi tiết khi thực thi mã độc Phương pháp này sẽ giúp chúng ta thu thập thông tin khi các thông tin đó khó có thể lấy được từ những phương pháp phân tích khác[15]

Dynamic analysis giám sát quá trình thực hiện của Malware sau khi

đã chạy, thực thi mã độc Kỹ thuật dynamic analysis[16] là bước thứ hai trong tiến trình phân tích Malware, thường thì dynamic analysis sẽ được

thực hiện sau bước basic analysis Malware kết thúc

Nếu như static analysis phân tích Malware qua việc phân tích chuỗi, phân tích dựa trên hash, phân tích các byte định dạng, đóng gói Malware

và không thực thi Malware thì Dynamic analysis sẽ phân tích Malware dựa trên việc thực thi Malware Dynamic analysis là phương pháp hiệu quả trong việc xác định các chức năng của Malware.Ví dụ nếu mã độc của bạn là một keylogger thì dynamic analysis sẽ cho phép bạn xác định các file log của keylogger trên hệ thống, giúp bạn khám phá ra những bản ghi mà keylogger nắm giữu, giải mã ra thông tin mà Keylogger gửi đi Những điều này rất khó có thể thực hiện được nếu sử dụng kỹ thuật basic static analysis

Mặc dù dynamic analysis là một kỹ thuật mạnh mẽ và hữu ích trong việc phân tích Malware nhưng chúng ta chỉ nên thực hiện dynamic analysis sau khi thực hiện static analysis[17] vì phương pháp này sẽ đặt

hệ thống của chúng ta trong tình trạng nguy hiểm Bên cạnh việc trực quan, dễ nhận thấy những tác động trực tiếp của Malware tới hệ thống thì phương pháp này vẫn còn có những hạn chế nhất định bởi không phải tất

cả các đường dẫn, các mã lệnh đều được thực hiện khi Malware mới chỉ chạy có một phần Trong trường hợp command của Malware yêu cầu các tham số, mỗi tham số có thể thực hiện chức năng chương trình khác nhau,

Trang 22

và nếu không biết lựa chọn sẽ không thể tự động kiểm tra tất cả các chức năng của Malware

1.3.2 Ưu và Nhược điểm của phân tích tĩnh và phân tích động

Để so sánh cụ thể hơn, ta xây dựng bảng so sánh sau:

Bảng 1.1 Ưu và nhược điểm của phân tích tĩnh, phân tích động

Phân tích

mã độc

- Sử dụng các công cụ dịch ngược để lấy mã nguồn của ứng dụng từ tệp tin APK(dex2jar, APKtool, )

- Kiểm tra quyền của ứng dụng thông qua tệp tin AndroidManifest.xml

- Phân tích dựa trên các đặc điểm nghi ngờ bởi các họ nhất định

- Các lời gọi hệ thống thông qua API được phân tích nhằm phát hiện hành vi nguy hiểm của ứng dụng

- Phân tích dựa trên các tính năng, hành vi của các ứng dụng khi chạy các ứng dụng

- Phân tích dựa trên việc kiểm tra các cuộc gọi

hệ thống và đường dẫn thực thi

- Thông tin bị rò rỉ trong quá trình phân tích

và tiêu hao tài nguyên để phát hiện hành vi nguy hiểm của các ứng dụng

Trang 23

- Không thể phát hiện ra mẫu

mã độc quá mới

- Cần nhiều thời gian

và công sức để phân tích ứng dụng trong các khoảng thời gian chạy khác nhau

1.4 GIỚI THIỆU VỀ HỌC MÁY

Ngày nay, trí tuệ nhân tạo[18] (AI-Artifical Intelligent) nói chung

và học máy (Machine Learning) nói riêng đang vô cùng được quan tâm nghiên cứu và phát triển như một cơ hội cho cuộc cách mạng công nghiệp lần thứ tư Trí tuệ nhân tạo xuất hiện xung quanh ta ngày càng nhiều và trong mọi lĩnh vực đời sống như hệ thống trợ lý ảo Siri, alexa, Google Assitant; các dòng xe tự lái của Tesla, Google; hệ thống gợi ý phù hợp với từng khách hàng của Amazon, Netflix,

Học máy là một phần của Trí tuệ nhân tạo Theo định nghĩa trên Wikipedia: “Học máy là một lĩnh vực nhỏ của khoa học máy tính, nó có khả năng tự học hỏi dựa trên dữ liệu đưa vào mà không cần lập trình cụ thể”

Ý tưởng cơ bản của học máy là dựa trên một số thuật toán xây dựng

mô hình để giải quyết vấn đề cụ thể như phân lớp, phân loại, hồi quy Giai đoạn huấn luyện của học máy sử dụng dữ liệu đầu vào và mô hình được xây dựng để dự đoán đầu ra Quá trình học máy cơ bản như sau:

Trang 24

Hình 2.1 Sơ đồ quy trình học máy cơ bản

Quá trình để xây dựng hệ thống học máy gồm các giai đoạn sau:

- Thu thập dữ liệu (gathering data): Quá trình thu thập dữ liệu tùy thuộc vào kiểu bài toán ta cần xử lý Dữ liệu có thể được thu thập từ nhiều nguồn khác nhau như một cơ sở dữ liệu, cảm biến, tệp tin,

- Tiền xử lý dữ liệu (data pre-processing): Tiền xử lý dữ liệu là giai đoạn quan trọng, giúp xây dựng mô hình học máy hiệu quả Đây là giai đoạn chuyển hóa dữ liêu thô, dữ liệu từ nhiều nguồn khác nhau trong thế giới thực thành dữ liệu sạch (dữ liệu thô có một số đặc điểm như thiếu xót, nhiễu, không nhất quán)

- Xây dựng mô hình phù hợp (researching model): Đây là giai đoạn

ta dựa trên các thuật toán phân lớp, phân loại để xây dựng mô hình cho kết quả tốt nhất

- Huấn luyện, kiểm thử đối với mô hình (training and testing model): Ta chia dữ liệu thành 03 phần gồm dữ liệu huấn luyện (trainning data) để huấn luyện bộ phân lớp, dữ liệu xác nhận (validation data) để tinh chỉnh bộ phân lớp, dữ liệu kiểm thử (testing data) để kiểm tra hiệu

Trang 25

suất bộ phân lớp Chú ý rằng, bộ dữ liệu kiểm thử không được dùng để huấn luyện do làm sai lệch đánh giá hiệu quả[19]

- Đánh giá (evaluation): Đây là giai đoạn ta đánh giá mô hình, giúp lựa chọn mô hình phù hợp nhất đối với bộ dữ liệu và mô hình sẽ hoạt động hiệu quả như thế nào

1.4.1 Phân loại các thuật toán học máy

Hiện nay, có hai cách thông dụng để phân loại thuật toán học máy

là dựa vào phương thức học (learning style)[20] và dựa vào chức năng (funtion) của thuật toán Khi phân loại theo phương thức học thì các thuật toán chia làm 04 loại gồm: học có giám sát (Supervise learning), học không giám sát (Unsupervise learning), học bán giám sát (Semi-supervise learning), học tăng cường (Reinforcement Learning)[21] Cụ thể như sau:

- Học có giám sát: Dự đoán đầu ra cho dữ liệu mới dựa trên các cặp

dữ liệu đã biết từ trước[22] Các cặp dữ liệu này thường được gọi là dữ liệu và nhãn Đây là thuật toán phổ biến nhất trong học máy Bài toán học

có giám sát cũng được chia thành 02 loại sau:

+ Bài toán phân loại (Classification): Đây là bài toán khi các nhãn của dữ liệu đầu vào được có hạn như bài toán phân loại phần mềm dính

mã độc hay không, phân loại email rác hay không, phân loại hoa,

+ Bài toán hồi quy (Regression): Khi nhãn không được chia thành các loại mà mang một giá trị như một căn nhà rộng a mét, chia thành b phòng, cách c kilomet so với trung tâm thành phố thì giá bao nhiêu?

- Học không giám sát: Bài toán chỉ có dữ liệu đầu vào, còn đầu ra

ta hoàn toàn chưa biết Tùy thuộc vào cấu trúc của dữ liệu mà bài toán học không giám sát sẽ có thể phân nhóm (clustering) hoặc giảm số chiều

Trang 26

(dimension reduction)[23] để thuận tiện lưu trữ và tính toán Bài toán học không giám sát cũng được chia thành 02 loại sau:

+ Phân nhóm (clustering): Bài toán phân nhóm toàn bộ dữ liệu thành nhiều nhóm nhỏ mà dữ liệu trong các nhóm đó có liên quan đến nhau Ví dụ: Phân nhóm động vật dựa trên cấu tạo cơ thể, Phân nhóm khách hàng dựa trên hành vi

+ Kết hợp (association): Đây là bài toán khi ta tìm ra quy luật từ nhiều dữ liệu cho trước Ví dụ: Khách hàng nam mua vest thường mua thêm áo sơmi; khách hàng mua vợt bóng bàn thường mua thêm hộp quả bóng,

- Học bán giám sát (semi-supervised learning): Đây là bài toán dữ liệu biết trước không đầy đủ như khi ta có một lượng lớn dữ liệu nhưng chỉ có một số nhất định được gán nhãn Bài toàn thuộc loại này là loại nằm giữa hai loại trên

Khi phân loại theo chức năng của thuật toán, ta có: thuật toán hồi quy như Logistic Regression, Stepwise Regression[24], Linear Regression; thuật toán phân loại như SVM, Linear Classifier, kernel SVM[25]; thuật toán phân cụm như: K-mean clustering, K-Medians, EM,

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

Trong luận văn này, mục tiêu của ta là đề xuất một cơ sở để đánh giá ứng dụng an toàn hay không Điều này giúp đưa bài toàn thành dạng

mô hình phân lớp nhị phân với hai nhãn là Malware (mã độc) và Benign (lành tính) Đối với loại mô hình này, hai thuật toán thường được ưu tiên

sử dụng là Logistic Regression (LR) và Support Vector Machine (SVM)

Trang 27

Hồi quy Logistic mô tả mối quan hệ giữa biến phụ thuộc và biến độc lập Đối với bài toán phân loại mã độc, biến phụ thuộc là xác suất phát hiện

mã độc và biến độc lập là những thuộc tính mà một ứng dụng có Đối với SVM, các điểm dữ liệu sẽ được ánh xạ lên không gian đa chiều và phân loại thông qua siêu mặt phẳng Trong hình dưới đây, 2 khoảng dữ liệu được phân định bằng phương pháp này Trong đó, các điểm đỏ là tập Malware và xanh là tập Begin

Hình 2.2 Mô hình phân lớp nhị phân của SVM

1.4.2.1 Thuật toán Logistic Regression

Kỹ thuật học máy giám sát có nhiều thuật toán phân lớp Trong đó, thuật toán Hồi quy Logistic (LR) được sử dụng nhiều trong bài toán phân lớp dữ liệu LR tỏ ra đặc biệt tốt đối với tập dữ liệu được phân tách tuyến tính, dễ thực hiện, diễn giải và rất hiệu quả để huấn luyện

Ngày đăng: 02/02/2021, 20:33

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[3] Daniele Ucci, Leonardo, Roberto Baldoni, "Survey of Machine Learning Techiniques for Malware Analysis", Computer & Security (2018) Sách, tạp chí
Tiêu đề: Survey of Machine Learning Techiniques for Malware Analysis
[4] Roberto Perdisci, Davide Ariu, Prahlad Fogla, Giorgio Giacinto, Wenke Lee “McPAD: A Multiple Classifer System for Accurate Payload- based Anomaly Detection”, Preprint submitted to Elsevier Science (2008) Sách, tạp chí
Tiêu đề: McPAD: A Multiple Classifer System for Accurate Payload-based Anomaly Detection
[5] Prakash Mandayam Commar, Lei Liu, Sabyasachi Saha, Pang-Ning Tan+, Antonio Nucci "Combining Supervised and Unsupervised Learning for Zero-Day Malware Detection" , 2013 Proceedings IEEE INFOCOM Sách, tạp chí
Tiêu đề: Combining Supervised and Unsupervised Learning for Zero-Day Malware Detection
[6] Michael Sikrski and Andrew Honig “Practical Malware Analysis – TheHands-On Guide to Dissecting Malicious Software” Sách, tạp chí
Tiêu đề: Practical Malware Analysis – The Hands-On Guide to Dissecting Malicious Software
[9] Savan Gadhiya and Kaushal Bhavsar, “Techniques for Malware Analysis”, International Journal of Advanced Research in Computer Science and Software Engineering, Vol. 3, Issue 4, pp. 972-975, April Sách, tạp chí
Tiêu đề: Techniques for Malware Analysis
[10] Peter Harrington, “Machine Leaning in Action”, in Part 1 Classification, by Manning Publications, 2012, pp 1-129 Sách, tạp chí
Tiêu đề: Machine Leaning in Action
[12] Trent Hauck, “scikit-learn Cookbook”, in Chapter 4 Classifying Data with scikit-learn, by Packt Publishing, 2014, pp. 119-157 Sách, tạp chí
Tiêu đề: scikit-learn Cookbook
[14] D. Arp, M. Spreitzenbarth, M. Huebner, H. Gascon, and K. Rieck, “Drebin: Efficient and explainable detection of android malware in your pocket,” 21th Annual Network and Distributed System Security Symposium (NDSS), 2014 Sách, tạp chí
Tiêu đề: Drebin: Efficient and explainable detection of android malware in your pocket,” "21th Annual Network and Distributed System Security Symposium (NDSS)
[15] T. Micro, 2017 Mobile Threat Landscape, 2018. [Online]. Available: https://www.trendmicro.com/vinfo/us/security/research-and-analysis/threat -reports/roundup/2017-mobile-threat-landscape Sách, tạp chí
Tiêu đề: 2017 Mobile Threat Landscape
[16] F. Wei, Y. Li, S. Roy, X. Ou, and W. Zhou, “Deep ground truth analysis of current android malware,” Tech reports 2017, 2017 Sách, tạp chí
Tiêu đề: Deep ground truth analysis of current android malware,” "Tech reports 2017
[17] S. Arshad, A. Khan, M. A. Shah, and M. Ahmed, “Android malware detection and protection: A survey,” International Journal of Advanced Computer Science and Applications, vol. 7, no. 2, 2016 Sách, tạp chí
Tiêu đề: Android malware detection and protection: A survey,” "International Journal of Advanced Computer Science and Applications
[18] F. Gagnon and F. Massicotte, “Revisiting static analysis of android malware,” CSET @ USENIX Security Symposium, 2017 Sách, tạp chí
Tiêu đề: Revisiting static analysis of android malware,” "CSET @ USENIX Security Symposium
[19] V. D. Nguyen, T. G. Pham, N. H. Nguyen, M. V. Pham, and D. H. Luong, “Đánh giá một số phương pháp học máy trong phân tích mức độ an toàn ứng dụng android,” Hội thảo quốc gia lần thứ XX: Một số vấn đề chọn lọc của Công nghệ thông tin và truyền thông, 2017 Sách, tạp chí
Tiêu đề: Đánh giá một số phương pháp học máy trong phân tích mức độ an toàn ứng dụng android,” "Hội thảo quốc gia lần thứ XX: Một số vấn đề chọn lọc của Công nghệ thông tin và truyền thông
[20] S. A. Gordon, Google’s security suite ‘Play Protect’ rolling out to Android phones, 2017. [Online]. Available: http://www.androidauthority.com/google-play-protect-rolling-out-788614/ Sách, tạp chí
Tiêu đề: Google’s security suite ‘Play Protect’ rolling out to Android phones
[21] M. C. Grace, Y. Zhou, Q. Zhang, and X. Jiang, “Riskranker: scalable and accurate zero-day android malware detection,” June 2012 Sách, tạp chí
Tiêu đề: Riskranker: scalable and accurate zero-day android malware detection
[22] P. G. William Enck and B.-G. Chun, “Taintdroid: An information-flow tracking system for real-time privacymonitoring on smartphones,” in 9th USENIX Symposium on Operating Systems Design and Implementation, 2010 Sách, tạp chí
Tiêu đề: Taintdroid: An information-flow tracking system for real-time privacymonitoring on smartphones,” in "9th USENIX Symposium on Operating Systems Design and Implementation
[23] L. Xu, D. Zhang, N. Jayasena, and J. Cavazos, “Hadm: Hybrid analysis for detection of malware,” in Conference: Proceedings of SAI Intelligent Systems Conference, 2018 Sách, tạp chí
Tiêu đề: Hadm: Hybrid analysis for detection of malware,” in "Conference: Proceedings of SAI Intelligent Systems Conference
[25] M. Spreitzenbarth, F. Echtler, T. Schreck, F. C. Freling, and J. Hoffmann, “Mobilesandbox: Looking deeper into android applications,”28 th International ACM Symposium on Applied Computing (SAC), 2013 Sách, tạp chí
Tiêu đề: Mobilesandbox: Looking deeper into android applications,” "28"th" International ACM Symposium on Applied Computing (SAC)
[26] Android Asset Packaging Tool, 2010 - 2018. [Online]. Available: https://elinux.org/Android_aapt Sách, tạp chí
Tiêu đề: Android Asset Packaging Tool
1, pp. 81–106, Mar. 1986. [Online]. Available: http://dx.doi.org/10.1023/ Link

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w