Chương 1 trình bày tổng quan chung và lý do thực hiện đề tài, từ đó nêu lên mục tiêu và nội dung chính trong đề tài. Chúng tôi trình bày chi tiết kết quả đạt được của đề tài trong phần 1. Cuối cùng, chúng tôi tóm tắt cấu trúc của báo cáo.1 Giới thiệu chung Theo thống kê của Gartner [1], số lượng thiết bị điện tử có sử dụng hệ điều hành được bán ra trong các năm 2016 và 2017 đạt gần 2,4 tỷ thiết bị. Trong đó các điện thoại thông minh chiếm gần hai tỷ thiết bị, tức là chiếm 77% tổng số lượng các thiết bị.
Mức tăng trưởng của các thiết bị điện thoại thông minh có xu hướng tăng đều. 1 Thị phần thiết bị máy tính (Đơn vị: Triệu) 2500 2000 1500 1000 500 0 2016 2017 2018 2019 Traditional PCs (Desk-Based and Notebook) Ultramobiles (Premium) Ultramobiles (Basic and Utility) Mobile Phones Linear (Mobile Phones) Hình 1. Số lượng thiết bị được bán theo thời gian Theo thống kê của IDC [2], thì hệ điều hành Android là hệ điều hành được sử dụng phổ biến nhất liên tục trong các năm từ 2014 đến 2017. Trong quý 1 năm 2017, số thiết bị sử dụng hệ điều hành Android được bán ra chiếm 85%.
Và dự báo tỷ lệ này tăng đều vào các năm tiếp theo. Thống kê thị phần hệ điều hành được sử dụng Theo thống kê của F-Secure [3] thì trong năm 2013 có 99% malware mới nhắm vào mục tiêu là hệ điều hành Android. Theo thống kê của Symantec [4], trong năm 2014 có 94% malware mới nhắm vào hệ điều hành Android. Do đặc tính cấu hình và mục đích sử dụng của các điện thoại thông minh khác với các máy tính truyền thống nên hành vi tấn công của các phần mềm độc hại trên điện thoại thông minh và trên máy tính truyền thống có nhiều khác biệt.
Bảng 1 mô tả các nhóm hành vi tấn công của phần mềm độc hại trên điện thoại thông minh. Nhóm các hành vi tấn công trên điện thoại thông minh Nhóm hành vi Mô tả Steals device data Thu thập các thông tin của thiết bị, như mã số IMEI hoặc IMSI. Thông tin về hệ điều hành và thông tin cấu hình của điện thoại. 3 Spies on user Cố tình thu thập các thông tin trên thiết bị để theo dõi người dùng, ví dụ: thu thập nhật ký cuộc gọi, nội dung tin nhắn SMS rồi gởi đến cho một máy chủ trên Internet.
Sends premium SMSs Gởi tin nhắn đến các tổng đài tính phí để tính phí tin nhắn. Downloader Có thể tải các thành phần nguy hiểm khác từ Internet lên thiết bị nạn nhân. Back door Cho phép kẻ tấn công giao tiếp và điều khiển thiết bị nạn nhân từ xa. Tracks location Thu thập thông tin GPS để theo dõi vị trí của nạn nhân.
Modifies settings Thay đổi thông tin cấu hình trên thiết bị nạn nhân. Spam Gởi hàng loạt email hoặc tin nhắn đến thiết bị của nạn nhân. Steals media Gởi các nội dung số, ví dụ: ảnh, phim đến một máy chủ trên mạng. Elevates privileges Tìm cách gán thêm quyền cho ứng dụng nhiều hơn so với các quyền mà người dùng nhìn thấy khi cài đặt ứng dụng.
Banking Trojan Theo dõi các giao dịch ngân hàng trên thiết bị, lấy cắp thông tin nhạy cảm và thực hiện các hành vi nguy hiểm liên quan. SEO poisoning Truy cập đến những địa chỉ URL trên Internet nhằm làm tăng thứ hạng của trang web có URL này. Adware/ Annoyance Quảng bá thông tin quảng cáo đến người dùng. DDOS Utility Tấn công từ chối dịch vụ Hacktool Kẻ tấn công dùng thiết bị của nạn nhân trong việc tấn công mạng, thậm chí lấy thông tin trên thiết bị của nạn nhân.
4 Theo thống kê của Symantec [4] thì nhóm hành vi đánh cắp thông tin trên thiết bị và theo dõi người dùng chiếm tỷ lệ cao nhất với 36%. Thống kê tỷ lệ nhóm hành vi tấn công trên điện thoại thông minh trong hai năm 2013 và 2014 Tỷ lệ trong năm Tỷ lệ trong năm Nhóm hành vi 2014 2013 Steals Device Data 36% 17% Spies On User 36% 28% Sends Premium SMS 16% 5% Downloader 18% 8% Back door 18% 12% Tracks Location 9% 3% Modifies Settings 20% 8% Spam 7% 3% Steals Media 0% 3% Elevates Privileges 7% 2% Banking Trojan 7% 3% SEO Poisoning 0% 0% Adware/ Annoyance 13% 9% DDOS Utility 0% 0% Hacktool 0% 0% Như vậy, nguy cơ bảo mật trên các thiết bị điện thoại thông minh sử dụng hệ điều hành Android ảnh hưởng đến nhiều người dùng trên thế giới. Việc nghiên cứu bảo mật trên điện thoại thông minh nói chung và trên điện thoại thông minh sử dụng hệ điều hành Android trở nên cấp thiết.2 Một số công trình trên thế giới liên quan đến việc phát hiện nguy cơ gây thất thoát thông tin nhạy cảm trên Android Các nghiên cứu liên quan đến việc phát hiện nguy cơ gây thất thoát thông tin nhạy cảm trên Android có thể được phân thành ba nhóm: phân tích tĩnh, phân tích động và phân tích kết hợp. Các phương pháp phân tích malware Phân tích tĩnh là phương pháp phân tích không cần thực thi ứng dụng trong khi đó phân tích động là phương pháp phân tích dựa vào các thông tin thu được khi chạy ứng dụng.
Phương pháp phân tích tổng hợp là phương pháp kết hợp cả phương pháp phân tích tĩnh và phương pháp phân tích động.1 Phân tích tĩnh Phân tích tĩnh là phương pháp phân tích được sử dụng phổ biến [5-14]. Phân tích tĩnh không cần thực thi ứng dụng. Các thông tin dùng để phát hiện malware nằm trong gói tập tin cài đặt, hoặc mã nguồn của hệ điều hành. Ví dụ: thông tin từ tập tin AndroidManifest.xml, tập tin Java, hàm API và mã nguồn khác được rút trích từ tập tin của ứng dụng.
Hình 4 mô tả cấu trúc của tập tin APK. Cấu trúc tập tin apk Quá trình phân tích tĩnh có thể bao gồm các bước chính sau: - Dịch ngược các tập tin cài đặt của ứng dụng sang mã nguồn có thể đọc được như mã hợp ngữ, mã Java, hay mã Jimple. - Rút trích các thông tin đặc trưng từ mã nguồn. - Phân tích các đặc trưng thu được để phát hiện các bất thường nếu có.
Quá trình phân tích tĩnh Trong bước dịch ngược các tập tin cài đặt sang mã nguồn, các công cụ như ApkTool [15], Dalvik decompider [16] thường được sử dụng. Các thông tin đặc trưng thường dùng là permission, system call, control flow graph (CFG), data flow graph, activity flow graph, component flow graph, thậm chí là application flow graph. Các nghiên cứu [5-10] dùng thông tin permission trong tập tin AndroidManifest.xml như là các đặc trưng cho quá trình phân tích. DroidAnalytics [17] sử dụng thông tin về việc gọi hàm API để làm đặc trưng cho 7 mỗi ứng dụng.
Trong khi đó FlowDroid [11], PCLeaks [12], DidFail [13] và IccTA [14] dùng Control Flow Graph trong quá trình phân tích. Ưu điểm: Phân tích tĩnh có ưu điểm là không cần thiết lập môi trường để thực thi ứng dụng. Việc phân tích này có thể thực hiện độc lập với việc chạy ứng dụng. Việc phân tích này có thể triển khai trên các máy tính có cấu hình mạnh mà không cần thiết giả lập các thiết bị di động.
Nhược điểm: Kỹ thuật này gặp khó khăn khi phân tích các malware sử dụng kỹ thuật làm rối mã nguồn, mã hóa mã nguồn hoặc các malware chỉ thực hiện các thao tác nguy hiểm khi chạy chương trình.2 Phân tích động Khác với phân tích tĩnh, phân tích động là phương pháp phân tích cần thực thi chương trình. Các ứng dụng được thực thi trong các máy ảo, môi trường giả lập hoặc trên một thiết bị thật. Việc thực thi các ứng dụng này cho phép các nhà nghiên cứu giám sát các hành vi của ứng dụng thay vì dựa vào mã nguồn của ứng dụng. Hình 6 mô tả các bước chính trong phân tích động.
Quá trình phân tích động CrowDroid [18], Paranoid [19], TaintDroid [20], MADAM [21], Andromaly [22] đều sử dụng kỹ thuật phân tích động. Hình 7 mô tả quá trình phân tích động của TaintDroid. 8 Mobile Phone Install App New application Virtual Machine Taint tracking: -Variable level Dynamic Taint -Method level Analysis -Message level -File level Hình 7. Quá trình phân tích động của TaintDroid Kỹ thuật phân tích động thường gắn tracer (đoạn mã dùng để ghi lại những hành vi của ứng dụng) ở các lớp khác nhau của kiến trúc Android.
Từ đó tiến hành phân tích những thông tin thu thập được để phát hiện những hành vi bất thường. Hình 8 mô tả kiến trúc của hệ điều hành Andoid. Các lớp trong kiến trúc của hệ điều hành Android Để thuận tiện cho việc thu thập thông tin của tracer, kỹ thuật phân tích động thường phải tạo môi trường giả lập (emulator) để thực thi ứng dụng mục tiêu. Các 9 emulator và hệ điều hành Android thường được chỉnh sửa các module phù hợp để tiến hành ghi lại các hành vi của ứng dụng.
Số lượng các hành vi của ứng dụng lúc thực thi rất nhiều, do đó cần phải kết hợp với kỹ thuật phân tích tĩnh để giới hạn các hành vi mục tiêu. Ví dụ: TaintDroid [20] sử dụng taint tracking bằng cách gắn tracer vào Dalvik VM. Trong khi đó, DroidBox [23] sử dụng cả taint tracking và core lib tracking. Còn TraceDroid [24] thực hiện API tracking bằng cách chỉnh sửa các thành phần của hệ điều hành Android và tiến hành trên emulator.
DroidScope [25] sử dụng VMI tracking và chỉnh sửa Dalvik VM để tiến hành tracking trên emulator. Mobile-Sandbox [26] giống như DroidBox, chỉ khác ở điểm là tracer được gắn ở core lib thay vì Dalvik VM. Ưu điểm: Kỹ thuật phân tích động có thể phát hiện các hành vi nguy hiểm của ứng dụng trong lúc chạy. Điều này giải quyết các hạn chế của kỹ thuật phân tích tĩnh.
Nhược điểm: Kỹ thuật phân tích động thường phụ thuộc vào các emulator và các chỉnh sửa trong hệ điều hành Android. Trong khi đó, một số malware có khả năng kiểm tra môi trường thực thi có phải là emulator hay không, từ đó sẽ thay đổi hành vi khác đi nếu chạy trên emulator. Bên cạnh đó, việc sử dụng công cụ Android Monkey [27] để phát sinh ngẫu nhiên các tương tác người dùng trong quá trình thực thi các ứng dụng cũng gặp nhiều thách thức như: các tương tác phát sinh thường không giống với tương tác của người dùng thực sự. Điều này không thể kiểm tra chính xác tất cả các hành vi trong thực tế.
Bên cạnh đó, việc lựa chọn vị trí để gắn tracer cũng ảnh hưởng nhiều đến độ chính xác trong việc phân tích. Nếu tracer gắn ở các lớp cao thì có khả năng thu thập được một số hành vi giới hạn. Ngược lại, nếu gắn tracer ở các lớp thấp thì thông tin thu thập được nhiều, tuy nhiên việc này có thể gây tốn nhiều tài nguyên và thời gian.