Smartphone đang trở thành thiết bị tinh vi, phổ biến và tiện dụng trong cuộc sống. Chính vì thế nó trở thành mục tiêu hấp dẫn của kẻ tấn công. Ngày nay, smartphone không phải chỉ giới hạn bởi các cuộc hội thoại trao đổi cá nhân mà nó còn mở rộng đến các giao dịch tài chính, ngân hàng và lưu trữ dữ liệu cá nhân quan trọng. Điều đó làm cho smartphone dễ bị tấn công và là mục tiêu để tìm kiếm và đánh cắp thông tin. Các nhà nghiên cứu của phòng thí nghiệm Kaspersky lần đầu phát hiện mã độc Cabire trên điện thoại di động chạy hệ điều hành Symbian vào năm 2004. Sau đó, số lượng mã độc tăng lên nhanh chóng cùng với sự phổ biến của smartphone. Ngày nay, smartphone được sử dụng để truyền thông, ngân hàng trực tuyến, mua sắm trực tuyến, lưu giữ hình ảnh, tài liệu quan trọng, trò chơi và thậm chí kiểm soát bảo mật các thiết bị trong gia đình. Điều này dẫn đến một người sử dụng thông thường cung cấp hoặc lưu trữ rất nhiều thông tin trên điện thoại của họ nhưng trong hầu hết các trường hợp, người dùng không nhận thức liệu thông tin đó có an toàn bảo mật hay không. Kẻ tấn công lợi dụng các yếu tố này và thông tin của người sử dụng để thực hiện các mưu đồ của mình.
Mã độc
Mã độc được thiết kế nhằm vào mục tiêu là các thiết bị di động, như là máy tính bảng (tablet) hoặc smartphone để gây thiệt hại hoặc làm gián đoạn hoạt động của thiết bị đó. Các chương trình nguy hiểm này có thể tự cài đặt hoặc được cài đặt một cách vô thức vào các thiết bị di động, sau đó thực hiện các chức năng mà bạn không biết hoặc không được phép. Chúng có thể phát tán qua mạng Internet thông qua trình duyệt động (mobile browser), được tải về từ các kho ứng dụng hoặc thậm chí được cài đặt qua chức năng tin nhắn trên thiết bị. Các mục tiêu ngấm ngầm của mã độc di động bao gồm thu thập thông tin bí mật, tin nhắn lừa đảo, tiếp thị lừa đảo không mong muốn …
Mã độc di động có thể chia ra làm 4 loại sau:
Phần mềm gián điệp và phần mềm quảng cáo (Spyware and Adware)
Phần mềm gián điệp ngấm ngầm thu thập thông tin bí mật về người sử dụng di động và chuyển tiếp đến cho bên thứ ba. Trong một số trường hợp, nó có thể là phần mềm quảng cáo hoặc tiếp thị. Đó cũng là lý do tại sao phần mềm gián điệp còn được gọi là phần mềm quảng cáo. Phần mềm gián điệp sử dụng kết nối di động của nạn nhân để chuyển thông tin cá nhân như danh bạ, địa chỉ, tin nhắn, lịch sử trình duyệt, phần mềm tải về… Spyware còn thu thập thông tin về thiết bị như hệ điều hành (OS), mã sản phẩm, số IMEI và số IMSI để có thể sử dụng cho các tấn công sau này.
Trojans và Virus
Trojan di động lây nhiễm vào các thiết bị bằng cách ẩn mình trong các chương trình hữu ích hoặc chương trình hợp pháp, được cài đặt cùng với ứng dụng và sau đó thực hiện các hoạt động độc hại. Trojan liên quan chặt chẽ với virus di động. Kẻ viết phần mềm độc hại thường sử dụng virus di động để chiếm quyền quản trị cao nhất của thiết bị và truy cập đến các file và bộ nhớ flash.
Các ứng dụng lừa đảo (Phishing Apps)
Cũng giống như máy tính, kẻ tấn công tạo ra các ứng dụng lừa đảo trên di động giống như một dịch vụ hợp pháp nhưng có thể đánh cắp thông tin nhạy cảm và thông tin xác thực để thực hiện gian lận tài chính. Một ví dụ gần đây là ứng dụng bảo mật giả mạo cho Facebook đã tuyên bố đảm bảo tài khoản Facebook nhưng thực tế đánh cắp thông tin của người dùng.
Các hoạt động ảo
Mã độc di động ngày càng tinh vi hơn với các chương trình hoạt động ngầm trên các thiết bị, tự ẩn mình và nằm đợi thời cơ để hành động, ví dụ như một phiên giao dịch ngân hàng trực tuyến để tấn công. Các hoạt động ẩn có thể thực hiện hoàn toàn vô hình đối với người dùng, thực thi nhiệm vụ hoặc kết nối với máy chủ điều khiển mạng máy tính ma để nhận các hướng dẫn mới cho hoạt động tiếp theo.
Biểu hiện của mã độc di động: mã độc di động khác nhau nhiều về cách phát tán và lây nhiễm vào các thiết bị, nhưng chúng đều có triệu chứng chung. Dấu hiệu bị nhiễm mã độc có thể bao gồm: các hành vi không mong muốn, giảm hiệu năng thiết bị. Mã độc di động có thể làm giảm tuổi thọ của pin hoặc giảm khả năng xử lý, chiếm quyền điều khiển trình duyệt, gửi tin nhắn trái phép và có thể vô hiệu hóa toàn bộ thiết bị.
Các kỹ thuật phát hiện mã độc
Công cụ phát hiện mã độc dựa trên các hành vi của mã độc. Nó nhận hai đầu vào, một là biểu hiện của hành vi của mã độc; đầu vào còn lại là chương trình được kiểm duyệt. Công cụ phát hiện mã độc có hai đầu vào này sẽ sử dụng các kỹ thuật phát hiện để xác định phần mềm đó là độc hại hay vô hại. Mặc dù hệ thống phát hiện xâm nhập (IDS) và công cụ phát hiện mã độc đôi khi được sử dụng như nhau, nhưng công cụ phát hiện mã độc thường chỉ là một thành phần trong hệ thống IDS hoàn chỉnh.
Phân tích tĩnh
Phân tích tĩnh là phương pháp tiếp cận nhanh, ít tốn kém để tìm các đặc điểm của mã độc hoặc các đoạn mã khả nghi trong một ứng dụng mà không cần thực hiện chúng. Các kỹ thuật này được sử dụng trong phân tích sơ bộ, khi các ứng dụng đáng nghi ngờ được đánh giá ban đầu để phát hiện nguy cơ an toàn an ninh. Các kỹ thuật được sử dụng trong phân tích tĩnh như sau:
- Lời gọi hệ thống (system call): ứng dụng di động đầu tiên được phân tách (Disassemble Application) sử dụng công cụ như IDA pro. Công cụ này được sử dụng để kết xuất các lời gọi hệ thống tạo ra bởi các ứng dụng và sau đó được chuyển đến máy trung tâm (Centroid Machine) để thực hiện phát hiện bất thường và phân loại ứng dụng dựa trên các hành vi của mã độc.
Hình 1: Lời gọi hệ thống
Hình 2: Phân tích bất thường cố định
- Phân tích mã nguồn (Source code analysis): kỹ thuật phát hiện mã độc này được đề xuất cho Android. Phương pháp này sử dụng trình biên dịch ngược ded, một trình biên dịch ngược Dalvik để tạo ra mã nguồn java từ ứng dụng cài đặt và sau đó sử dụng Fortify SCA, một bộ công cụ phân tích mã cố định, để đánh giá các mã nguồn.
Hình 3: Phân tích mã nguồn
Phân tích động
Giám sát động hành vi của ứng dụng di động trong một môi trường cô lập còn được gọi là phân tích động hay phân tích hành vi. Các nhà nghiên cứu chủ yếu sử dụng phân tích động trong việc theo dõi vết hay truy lời gọi hệ thống bất thường.
TaintDroid cung cấp khả năng theo dõi truy vết bất thường động toàn hệ thống cho Android. Các ứng dụng di động gửi đến máy ảo Dalvik để thực hiện 4 yếu tố lan truyền bất thường: biến (variable), phương thức (method), tin nhắn (message), và file-level. Truy dấu vết bất thường đánh dấu bất kỳ dữ liệu khả nghi mà nó xuất phát từ các nguồn nhạy cảm như: vị trí, micro, camera và các thông tin khác của điện thoại . Kỹ thuật này thay đổi bộ nạp thư viện nguyên gốc để đảm bảo rằng tất cả các thư viện nguyên gốc được gọi từ máy ảo, do đó, ngăn ngừa các ứng dụng không đáng tin cậy thực hiện các phương thức trực tiếp vào nguyên gốc. Cuối cùng, phân tích động hiển thị dữ liệu bị tác động với bất kỳ sự rò rỉ dữ liệu nhạy cảm trước khi nó rời khỏi hệ thống tại giao diện mạng (network interface). TaintDroid chỉ tập trung vào luồng dữ liệu và không xem xét các lỗ hổng khác.
Hệ thống AASandbox (Android Application Sandbox) là một kỹ thuật khác đưa ra phân tích hai bước cho các ứng dụng Android. Một ứng dụng di động gửi đến AASandbox, tại đó nó thực hiện phân tích tĩnh và động trong chế độ ẩn (offline). Phân tích tĩnh vô hiệu hóa mã nhị phân ứng dụng cài đặt và sử dụng từng đoạn mã để tìm các mẫu nghi vấn. Phân tích động thực thi mã nhị phân trên bộ mô phỏng Android và ghi lại các lời gọi hệ thống.
Phân tích quyền ứng dụng
Các ứng dụng cần một số quyền để truy nhập vào dữ liệu tin cậy. Tại thời điểm cài đặt, nền tảng Android hỏi người sử dụng gán quyền hay không cấp quyền dựa trên các hành vi mà ứng dụng thực hiện.
Hình 4: Phân tích quyền ứng dụng
Hình 4 mô tả dịch vụ bảo mật Kirin cho nền tảng Android. Kirin thực hiện kiểm tra quyền của các ứng dụng trong khi cài đặt. Khi một người dùng cài đặt ứng dụng, Kirin kết xuất cấu hình bảo mật của nó và kiểm tra chúng có vi phạm quy tắc của chính sách bảo mật không. Nếu một ứng dụng không đạt tất cả các chính sách bảo mật, thì Kirin có thể dừng ứng dụng đó hoặc cảnh báo đến người dùng.
Phát hiện dựa trên đám mây (cloud-base detection)
Trong ứng dụng này, một chương trình client giám sát các lời gọi hệ thống trong thiết bị và gửi nó đến server trong cloud để phát hiện hành vi mã độc.
Paranoid Android là một kỹ thuật bảo vệ chống mã độc dựa trên cloud mà nó chuyển phân tích bảo mật và sự tính toán đến máy chủ ở xa, tổ chức nhiều bản giả lập điện thoại di động chạy trên hệ mô phỏng. Một bộ truy vết (tracer) trong smartphone ghi lại tất cả các thông tin cần thiết mà các ứng dụng trên điện thoại yêu cầu. Bộ truy vết đó gửi các thông tin ghi được đến bộ phản hồi dựa trên đám mây (cloud-base replier), nó thực hiện lại trên bộ mô phỏng. Bộ phản hồi đó có thể thực hiện một số kiểm tra an toàn bảo mật, như là phân tích mã độc động, quét bộ nhớ, phát hiện lời gọi hệ thống bất thường và quét virus từ nguồn tài nguyên phong phú trên cloud.
Crowdroid là một kỹ thuất phát hiện mã độc di động dựa trên hành vi dùng cho Android. Crowdroid là một ứng dụng nhỏ gọn giám sát các lời gọi hệ thống được gọi bởi các ứng dụng di động có chủ đích, tiền xử lý các lời gọi đó, và gửi chúng đến cloud. Ở đó, một kỹ thuật kết chùm (clustering) giúp xác định xem các ứng dụng có độc hại hay không. Tăng cường sử dụng Crowdroid cho kết quả cải thiện đáng kể đến khả năng phát hiện mã độc nhưng sử dụng phương pháp này ngay từ đầu có thể gây ra các lỗi, khi mà lượng mẫu vẫn còn rất nhỏ.
Giám sát tuổi thọ pin
Ứng dụng chứa mã độc có xu hướng sử dụng phần lớn dung lượng pin. VirusMeter là một phương pháp thú vị do Liu et al đề xuất nhằm phát hiện tiêu thụ năng lượng và phát hiện mã độc. VirusMeter phát hiện hành vi bất thường của điện năng tiêu thụ. Ý tưởng đằng sau phương pháp này là bất kỳ hành vi độc hại nào cũng sẽ tiêu thụ pin nhiều hơn. VirusMeter giám sát các hoạt động trong điện thoại và sử dụng các API được cung cấp bởi nền tảng di động để thu thập dung lượng pin còn lại. Dựa trên dữ liệu thu thập được, nó tính toán xem ứng dụng sử dụng bao nhiêu năng lượng pin và so sánh với mô hình năng lượng. Nếu có sự khác biệt và vượt qua ngưỡng thì sẽ cảnh báo.
Trong một thế giới mà tất cả mọi thứ từ cửa ra/vào đến tài khoản ngân hàng có thể được kiểm soát bởi smartphone thì điều quan trọng là thông tin cá nhân không bị dễ dàng xâm nhập. Sự gia tăng của smartphone đã mang lại nhiều thuận lợi nhưng cũng đặt ra nhiều thách thức trong việc phát hiện các mã độc. Đối với người dùng thông thường, có thể thực hiện một số bước đơn giản như sử dụng phần mềm bảo mật kết hợp với ý thức không truy cập vào các đường kết nối không rõ hoặc cung cấp thông tin cá nhân trên các trang mạng hoặc ứng dụng không đáng tin cậy, kiểm tra chứng chỉ SSL khi nhập thông tin trên các trang web quan trọng (ví dụ như tài chính …) và quan trọng hơn nữa là người dùng cần cẩn thận trong việc tải về và cài đặt một ứng dụng.