Hiểm họa từ Trojan GPlayed

07:57 | 01/04/2019

Ngày 11/10/2018, nhóm nghiên cứu của Cisco (Cisco Talos) đã công bố thông tin về một loại mã độc mới trên hệ điều hành Android có tên gọi GPlayed. Đây là một loại trojan mới được tích hợp nhiều tính năng độc hại. Bài báo này thực hiện phân tích chi tiết của Trojan GPlayed.

Đôi nét về GPlayed

Thoạt nhìn, GPlayed có biểu tượng giống với kho ứng dụng của Google, nhưng được đặt tên là Google Play Marketplace. Trojan này có thể tải các plugins từ xa, chèn các đoạn mã độc hại và biên dịch thực thi mã nguồn .NET. Qua phân tích sơ bộ, tuy trojan này đang được phát triển ở giai đoạn thử nghiệm, song nó được trang bị gần như đầy đủ các tính năng tinh vi. Vì vậy, hiểu được mối hiểm họa từ GPlayed là một điều cần thiết.

Biểu tượng của Trojan GPlayed

Tính năng và kiến trúc của Trojan GPlayed

Trojan GPlayed được viết trên nền tảng .NET sử dụng môi trường Xamarin cho ứng dụng di động. Thư viện DLL lõi có tên gọi Reznov.DLL, bao gồm lớp root được gọi là eClient. Đây là lớp lõi của Trojan GPlayed. Tại lớp eClient sẽ import một thư viện DLL khác là eCommon.dll, gồm cấu trúc và đoạn mã hỗ trợ không phụ thuộc vào nền tảng, được cài đặt một số khả năng riêng. Chứng thư của trojan được cài đặt tên giống với tên của thư viện DLL lõi là Reznov.

Thông tin về chứng thư của Trojan GPlayed

Các mã băm của gói cài đặt và thư viện DLL chính: Package.apk (A342a16082ea53d101f556b50532651cd3e3fdc7d9e0be3aa136680ad9c6a69f), eCommon.dl (604deb75eedf439766896f05799752de268baf437bf89a7185540627ab4a4bd1), Reznov.dll (17b8665cdbbb94482ca970a754d11d6e29c46af6390a2d8e8193d8d6a527dec3).

Gói phần mềm android này được đặt tên là “verReznov.Coampany”. Ứng dụng của gói phần mềm này là android.app.Application và sử dụng nhãn là Installer.

Danh sách khai báo quyền của Trojan GPlayed

Trojan GPlayed đăng ký nhiều quyền truy cập trong bảng đăng ký manifest. Đáng lưu ý, quyền BIND_DEVICE_ADMIN cung cấp gần như toàn quyền trên thiết bị. Trojan này có kiến ​​trúc môđun hóa được cài đặt dưới dạng plugin có thể nhận mã nguồn .NET mới và được biên dịch trên thiết bị trong thời gian thực thi.

Đoạn mã khởi tạo đối tượng biên dịch

Các plugin có thể được thêm vào trong thời gian thực thi hoặc dưới dạng tài nguyên của gói phần mềm tại thời điểm đóng gói. Điều này giúp cho việc thêm các tính năng của ứng dụng mà không cần phải biên dịch lại hoặc nâng cấp gói trojan trên thiết bị.

Danh sách các tính năng của Trojan GPlayed

GPlayed sở hữu đầy đủ các tính năng của trojan ngân hàng và trojan gián điệp. Điều này có nghĩa, mã độc này có thể làm bất cứ điều gì từ thu thập thông tin ngân hàng của người dùng đến giám sát vị trí của thiết bị.

Quá trình lây nhiễm của Trojan GPlayed

Ở giai đoạn khởi động, Trojan GPlayed sẽ bắt đầu bằng cách điền các thông tin cấu hình lưu trữ bên trong cấu trúc vào một tệp tin chia sẻ tùy chọn. Sau đó, GPlayed khởi động một số tác vụ thời gian là tiền đề để thực hiện các tác vụ khác nhau. Trong 20 giây đầu, tác vụ thời gian đầu tiên sẽ được kích hoạt thực hiện lệnh ping tới máy chủ điều khiển (Command & Control - C&C). Các phản hồi từ máy chủ C&C có thể là “OK” hoặc yêu cầu thực hiện một số hành vi trên thiết bị. Tác vụ thời gian thứ 2 sẽ chạy định kỳ 5 giây một lần và nỗ lực kích hoạt wifi nếu tính năng wifi bị tắt. Tác vụ thời gian thứ 3 sẽ kích hoạt theo định kỳ 10 giây một lần, thực hiện hành vi đăng ký kết nối thiết bị tới máy chủ C&C, đăng ký khóa đánh thức trên hệ thống để kiểm soát trạng thái của thiết bị.

Trong giai đoạn đăng ký, GPlayed thu thập các thông tin của thiết bị như: phiên bản điện thoại mã số IMEI, số điện thoại và quốc gia. Thông tin về phiên bản Android mà điện thoại đang chạy cũng sẽ được gửi về máy chủ C&C.

Trojan này sẽ đăng ký trình xử lý SMS, thu thập và ngầm gửi toàn bộ thông tin về người gửi và nội dung tin nhắn thoại trên điện thoại tới máy chủ C&C.

Đoạn mã đăng ký thiết bị

Bước cuối cùng trong quá trình khởi tạo là leo thang đặc quyền và duy trì các quyền hạn trên thiết bị. Điều này được thực hiện bằng cách yêu cầu quyền quản trị và cho phép ứng dụng truy cập cài đặt trên thiết bị. Cửa sổ yêu cầu chấp thuận đặc quyền sẽ không đóng trừ khi người dùng chấp thuận. Nếu người dùng đóng các cửa sổ, thông báo này sẽ xuất hiện lại do đã được cấu hình hẹn giờ.

Yêu cầu leo thang đặc quyền

Sau khi cài đặt, trojan này sẽ chờ ngẫu nhiên trong khoảng từ 3 - 5 phút để kích hoạt một trong các tính năng riêng - những tính năng này được triển khai trên lớp con eClient có tên là “GoogleCC”. Lớp này có chức năng mở một WebView là trang có chủ đề yêu cầu thanh toán để sử dụng các dịch vụ của Google. Tại đây, người dùng sẽ thực hiện một số bước cho đến khi GPlayed thu thập được tất cả thông tin thẻ tín dụng cần thiết để kiểm tra trực tuyến, rồi gửi các thông tin này tới máy chủ C&C.

Giao diện yêu cầu thanh toán của GPlayed

Các bước để yêu cầu thông tin thẻ tín dụng của người dùng

Tất cả kết nối với máy chủ C&C được GPlayed thực hiện qua giao thức HTTP theo định dạng: <server path>?q=<IMEI>-<REQUEST CODE>:<Obfuscated Base64 encoded data>. Nếu kết nối HTTP bị thất bại, C&C và trojan này sẽ ghi dữ liệu thông qua WebSocket. Bằng hình thức này, C&C chỉ thực hiện ghi các dữ liệu truy vấn.

Trước khi gửi, dữ liệu được đóng gói về định dạng JSON và mã hóa bằng Base64. Tuy nhiên, để làm phức tạp mã Base64, trojan này thay thế '=' bằng 'AAAZZZXXX', '+' bằng '|' và '/' bằng '.'.

Đoạn mã hóa dữ liệu dạng Base64

Các kết nối của trojan và C&C thường được bắt đầu bởi trojan và nhận mã phản hồi từ máy chủ C&C. Có 27 mã phản hồi mà C&C có thể sử dụng để thực hiện các yêu cầu tới trojan, tương đối giống với những gì được liệt kê trong phần tính năng.

Mã phản hồi của máy chủ C&C

Một tính năng khác của trojan này là khả năng chèn các đoạn mã JavaScript. Chúng sẽ được thực thi trên WebView bằng một thực thể được tạo ra bởi trojan. Điều này cung cấp cho kẻ tấn công khả năng đánh lừa người dùng truy cập vào bất kỳ website nào trong khi đánh cắp cookie của người dùng hoặc giả mạo các thông tin, như số tài khoản hoặc số điện thoại.

Một số tên miền của máy chủ C&C đã được phát hiện: hxxp://5.9.33.226:5416, hxxp://172.110.10.171:85/testcc.php, hxxp://sub1.tdsworker.ru:5555/3ds/.

Các kết quả phân tích cho thấy, mẫu mã độc này chỉ là mẫu thử nghiệm và đang ở giai đoạn hoàn thiện cuối. Bằng chứng là một số chuỗi và nhãn được đặt tên “test” hoặc “testcc” - ngay cả URL được sử dụng cho việc lọc dữ liệu thẻ tín dụng cũng được đặt tên là "testcc.php."

Thông tin debug trên logcat

Bên cạnh đó, Gplayed có chủ đích là nhắm mục tiêu tới người dùng sử dụng ngôn ngữ tiếng Nga vì hầu hết các trang tương tác được viết bằng tiếng Nga. Tuy nhiên, theo cách mà trojan được xây dựng, nó có khả năng tùy biến cao, có nghĩa là việc điều chỉnh nó sang một ngôn ngữ khác sẽ cực kỳ dễ dàng. Bởi tính mở rộng kích hoạt mà trojan này gây khó khăn trong việc phán đoán mục tiêu hướng tới của nó.

Kết luận

Bằng khả năng di chuyển mã từ máy tính để bàn sang nền tảng di động một cách dễ dàng, Trojan GPlayed đã cho thấy một cách thức mới để phát triển các mã độc tinh vi, nguy hiểm. Điều đó minh chứng rằng, các tác nhân độc hại có thể tạo ra các mối đe dọa lai nhanh và tốn ít tài nguyên hơn bao giờ hết. Thiết kế và triển khai của Trojan GPlayed ở mức độ cao khác thường, khiến nó trở thành một mối đe dọa cực kỳ nguy hiểm. Những mối đe dọa kiểu này sẽ trở nên phổ biến hơn, vì xu hướng xuất bản phần mềm ngày càng hướng trực tiếp tới khách hàng, người dùng. Vì vậy, người sử dụng thiết bị di động cần hết sức cảnh giác với các ứng dụng lạ, không cài đặt các ứng dụng không rõ nguồn gốc và đặc biệt không cung cấp các thông tin quan trọng (như thẻ tín dụng, tài khoản…) khi ứng dụng không rõ nguồn gốc yêu cầu.