CHƯƠNG I: GIỚI THIỆU TONG 1.2 Mục đích nghiên cứu 1.3 Tìm hiểu các phương pháp phân tích mã độc 1.1 Phân tích tĩnh.2 Phân tích động. Phân tích kết hợp 1.4 Đối tượng, phạm vi nghiên cứu 1.5 Phương pháp dự định nghiên cứu 1.6 Tính khoa học và tính mới của dé 2.1 Nghiên cứu trong nước 2.2 Nghiên cứu ngoài nước CHƯƠNG III: PHÂN LOẠI MÃ ĐỘC ANDROID DỰA TRÊN GIÁ TRỊ THANH GHI.1 Công cụ hợp dịch ngược Radare2 3.1 Giới thiệu về Radare2.2 Định dạng và một số lệnh cơ bản của Radare2 3.1 Định dạng lệnh và khái quát lệnh của Radare2 3.2 Một số lệnh cơ bản thường dùng phục vụ cho việc phân tích của Radare 3.3 Thiết lập kiến trúc hợp ngữ cho radare2.4 Hợp dịch ngược file.apk với radare2 3.5 Chế độ visual mode của Radare2.6 Thư viện r2pipe.2 Hệ điều hành android và các loại android malware Trang 7 3.1 Hệ điều hành Android.1 Giới thiệu về hệ điều hành Android.2 Các tính năng của hệ điều hành Android 3.3 Các phiên bản hệ điều hành Android.4 Kiến trúc của hệ điều hành Android.1 Tầng hạt nhân Linux (Linux Kernel layer).2 Tầng Library và Android Runtine 3.3 Tầng Application Framework 3.2 Các loại Android Malware.3 Thuật toán xác định 3.1 Giám sát hành vi 3.3 Ma tran chỉ sô tương dong.4 Pha kết luận. CHƯƠNG IV: MÔ HÌNH THỰC NGHIỆM 4.1 Mô hình đề xuất thực hiện gồm các bước sau.1 Hệ thống gồm các khối như sau 4.2 Các bước thực hiện hệ thống.2 Chọn mẫu thử đầu vào dùng cho việc phân tích 4.3 Phân tích động với Radare2 và trích xuất giá trị thanh ghi rax 4.4 Rút gọn mảng thanh ghi trích xuất 4.5 Phân tích filetest.1 Dữ liệu thực nghiệm.2 Chương trình thực nghiệm.3 Kết quả thực nghiệm. CHƯƠNG V: KÉT LUẬN TÀI LIỆU THAM KHẢO CHUONG I: GIỚI THIỆU TONG QUAN VE DE TÀI 1.1 Dat van dé 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 dang từ virus máy tính, worm, botnet.với các hình thức xâm nhập, che giấu ngày càng tỉnh 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ô u thống kê của BKAV thì năm 2017 có đến 15 triệu máy tính bị nhiễm mã độc tương ứng thiệt hại khoảng 12. Ngoài ra, ngày nay dé 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ẻ tan công cho bat kỳ ai, không phụ thuộc vào cap độ 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ự mat mát lớn và các cuộc tan 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 thiết kế mở của Android, nó cho phép người dùng cài đặt các ứng dụng không nhất thiết phải bắt nguồn từ Google Play. Với hon 1 triệu ứng dụng có sẵn dé tải xuống qua kênh chính thức của Google là CHPlay và gần một triệu ứng dụng khác được chia sẽ bởi bên thứ ba, ước tính rằng có hơn 20.000 ứng dụng mới được phát hành mỗi tháng.
Điều này đòi hỏi việc phân tích mã độc được đặt lên rat cao. Phát hiện mã độc là một bước quan trọng dé 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 tan 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 Trang 9 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 phương pháp phân tích dữ liệu một cách tự động. Nó là một nhánh của chí tuệ nhân tạo dựa trên ý tưởng đó là hệ thống có thể tự học từ đữ liệu, xác định các mẫu và ra quyết định mà không có sự can thiệp của con người Ứ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. Có nhiều giá trị cũng như dấu hiệu mà các giải thuật máy học có thể dựa vào đó để phân loại malware như: các yêu cầu về quyền cho phép, lời gọi hệ thống và các giá trị thanh ghi.
Nhung đề tài này tập trung vào các giá trị nhị phân của thanh ghi vì hau hết các hành vi của ứng dụng đều được thé hiện qua việc thay đổi các giá tri này trong suốt thời gian chạy. Bằng việc tính toán chỉ số tương đồng giữa tập dữ liệu mẫu và mẫu thử, nghiên cứu đã phân loại được mẫu thữ là malware hay hiền lành ứng với tập dữ liệu đã được phân tích trước đó với độ chính xác tương đôi cao. Với mẫu vừa phân loại được để tài sẽ bổ sung thêm vào cơ sở dữ liệu của giải thuật học máy (tức là cho máy học) qua đó mở rộng kha năng phát hiện các malware mới dé ứng dụng về sau.2 Mục đích nghiên cứu Trong đề tài này em tập trung khai thác công cụ radare2, dé tiến hành hợp dịch ngược mẫu thử. Sau đó tiến hành chạy từng bước chương trình vừa hợp dịch ngược.
Các biểu hiện của malware trong suốt quá trình chạy được thé hiện qua giá trị thanh ghi mục đích chung RAX. Trên cơ sở các giá trị thanh ghi vừa trích xuất, em tiến hành tính toán chỉ số tương đồng Jaccard dé xác định đó có phải là malware hay không, thuộc loại nào và thuộc họ nào. Tiếp đó là tiến hành học máy đê mở rộng khả năng phát hiện sau này.3 Tìm hiểu các phương pháp phân tích mã độc Dựa trên các đặc tính được sử dụng dé phân loại ứng dung, chúng ta có thé phân chia các phương pháp phân tích vào các loại: tĩnh và động. Các ví dụ của các đặc tính tĩnh bao gồm: các sự cho phép, các lời gọi API được trích xuất từ tập tin AndroidManifest.
Các phân tích động dựa vào các đặc tính được trích xuất từ các Trang 10 ứng dụng trong khi chúng đang chạy bao gồm: giao thông mạng, sử dụng pin, địa chỉ IP,. Loại thứ 3 là phân tích kết hợp, phương pháp này kết hợp các đặc tính của kỹ thuật tĩnh và động.1 Phân tích tĩnh Phân tích tĩnh được thực hiện trong khi ứng dụng không được chạy. Nó cơ bản là thu thập các thông tin của ứng dụng như: tên, kích thước, các sự cho phép, mã, và mẫu chương trình. Một vài thông tin đòi hỏi kỹ thuật dịch ngược ứng dụng từ mã máy sang định dạng có thể đọc được để phân tích mã.
Thuận lợi của phân tích tĩnh đó là nó là phương pháp nhanh nhất và rẻ nhất bởi vì nó không đòi hỏi thực thi ứng dụng cũng như không đòi hỏi giám sát hoạt động. Khó khăn của phương pháp này đó là nhiều malware chỉ thực hiện tấn công khi chạy. Thêm vào đó, các malware khác sử dụng kỹ thuật làm rối hoặc các phương pháp mã hóa, làm cho nó không thé đọc được hoặc giải mã nếu ứng dụng không được thực thi.2 Phân tích động Loại phương pháp phân tích này (được biết như phân tích hành vi) được thực hiện trong suốt quá trình thực thi ứng dụng. Nó giám sát hoạt động bên trong và bên ngoài, các kết nói, các lời gọi, và các click xảy ra trong khi ứng dụng đang được thực thi.
Phương pháp này có thuận lợi trong việc phát hiện trên phạm vi rộng các malware và các malware phức tạp. Bất lợi của phương pháp này đó là nó tốn thời gian. Thêm vào đó, nó đòi hỏi kiến thức tiên nghiệm về kỹ thuật malware để giám sát. Phân tích kết hợp Phân tích kết hợp là một sự kết hợp của cả hai phương pháp phân tích tĩnh và động.
Mặc dù phân tích kết hợp có thuần lợi của cả hai phương pháp phân tích, nó cũng có 1 bắt lợi chính. Đó là nó làm cho hệ thống trở nên cồng kềnh và đòi hỏi nhiều thời gian xử lý hơn để xem xét lượng không lồ các mẫu malware cần được phát hiện và phân tích.4 Đối tượng, phạm vi nghiên cứu Hệ điều hành Android, Tập tin mẫu cần phân tích file.apk, xác định và phân loại malware dựa trên thuật toán học máy (chỉ số tương đồng Jaccard) Trên cơ sở file mẫu vừa xác định tiến hành cho máy học, để mở rộng khả năng nhận dạng và sử dụng cho các lần sau.5 Phương pháp dự định nghiên cứu Dé đạt được mục tiêu đặt ra, đề tài sử dụng các phương pháp sau: Trang II Phương pháp điều tra : Phương pháp này được sử dụng nhằm thu thập thông tin về malware, thu thập tập dữ liệu mẫu làm cơ sở dữ liệu cho thuật toán phân tích (mà cụ thể ở đây là bộ dữ liệu CICAndMal20217) , tim hiéu về kiến trúc của hệ điều hành Android, tìm hiểu về các thuật toán học máy và lựa chọn thuật toán phù hợp sử dụng vào để tài Phương pháp nghiên cứu sử dụng trong dé tài là ứng dụng ngôn ngữ lập trình python để thiết kế giao diện, và sử dụng thư viện R2pipe đề thực hiện các lệnh của radare2 trong chương trình.