FFDroider là mã độc đánh cắp thông tin mới nhất vừa được các nhà nghiên cứu bảo mật tại công ty Zscaler (Hoa Kỳ) phát hiện. Trước đó vào cuối tháng 3, Zscaler đã công bố bản báo cáo đánh giá kỹ thuật về BlackGuard, cũng là một kiểu mã độc với chức năng tương tự như FFDroider. Tuy nhiên vẫn có sự khác biệt, trong khi BlackGuard hoạt động để đánh cắp tiền điện tử nhiều hơn, thì FFDroider lại gần như giống với các trojan ngân hàng.
Như đã đề cập, mã độc mới này tấn công vào các tài khoản trên mạng xã hội, có thể thu thập thông tin xác thực và cookie trên trình duyệt của nạn nhân. Sau đó các thông tin được trích xuất sẽ được gửi đến máy chủ điều khiển Command & Control (C2) để kiểm soát thông qua một yêu cầu HTTP POST.
Các nhà nghiên cứu của Zscaler cho biết, trong các trường hợp đánh cắp thông thường, tin tặc sử dụng tài khoản bị xâm phạm để gửi thư rác đến tất cả người dùng khác. Đối với FFDroider, mã độc này sẽ lấy thông tin xác thực để đánh cắp thông tin đăng nhập từ các mô-đun quảng cáo trên các mạng xã hội tương ứng như Facebook hay Instagram.
Phân tích mã độc FFDroider
FFDroider được đóng gói với chương trình nén packer “ASPack v2.12” phổ biến. Nhóm nghiên cứu của ThreatLabz đã giải nén, dịch ngược và gỡ lỗi mã độc này. Trong quá trình phân tích, các nhà nghiên cứu phát hiện mã độc tạo các bản sao của chính nó để thực thi thêm, với một thư mục có tên là “VlcpVideov1.01” và được ngụy trang dưới ứng dụng Telegram.
Hình 1. Tạo một bản sao với biểu tượng của ứng dụng Telegram
Sau đó, nó thực hiện một quy trình giải mã chuỗi, trong đó bao gồm: tên DLL, API được tải và tìm nạp thêm thông qua hàm LoadLibraryA() và GetProcAddress(). FFDroider sử dụng chuỗi được giải mã và hàm RegCreateKey() để tạo key registry: “HKCU\Software\ffdroider\FFDroider”.
Hình 2. Tạo một key registry có tên “FFDroider”
Tiếp đến, mã độc tạo nhiều luồng với việc sử dụng hàm CreateThread() để nhanh chóng đánh cắp cookie và thông tin đăng nhập, đồng thời gây khó khăn cho việc dịch ngược.
Một GET request ban đầu cùng với tên tệp được gửi đến máy chủ C2 qua hàm WinHTTPSendRequest().
Hình 3. Request ban đầu tới máy chủ C2 với tên tệp và địa chỉ IP của máy chủ bị nhiễm
Response của request này là một URL iplogger.org, được sử dụng để ghi lại địa chỉ IP public mà mã độc đã được kích hoạt. Từ đây, tin tặc có thể sử dụng để theo dõi chi tiết vị trí và địa chỉ IP của nạn nhân.
FFDroider tiếp tục khởi chạy các chức năng của cookie và trình đánh cắp thông tin xác thực, với mục tiêu là các trình duyệt: Google Chrome, Mozilla Firefox, Internet Explorer hay Microsoft Edge cũng như một số trang web như: Facebook, Instagram, Amazon, Twitter,… Mục đích là đánh cắp thông tin các cookie hợp lệ có thể được sử dụng để xác thực trên các nền tảng này.
Tấn công các tài khoản trên mạng xã hội
Facebook
Ban đầu, FFdroider sẽ gửi một GET request tới https://facebook.com cùng với cookie Facebook đã bị đánh cắp từ các trình duyệt mục tiêu, để kiểm tra xem mã độc có thể xác thực với những cookie như vậy hay không.
Hình 4. Cookie Facebook bị đánh cắp được gửi đến facebook.com để xác thực
Nếu cookie hợp lệ, nó sẽ gửi thêm GET/setting với mã truy cập đến facebook.com cùng với cookie bị đánh cắp đã được xác thực, để tìm nạp phần cài đặt tài khoản người dùng của nạn nhân.
Hình 5. Thu thập thông tin tài khoản và mã truy cập từ facebook của nạn nhân
Bên cạnh đó, sau khi xác thực thành công, FFDroider cũng sẽ trích xuất tất cả các trang và dấu trang Facebook, số lượng bạn bè của nạn nhân và thông tin thanh toán Facebook Ads-manager của họ.
Hình 6. Tìm nạp thông tin thanh toán tài khoản từ Facebook Ads-manager cùng với thông tin từ các trang và dấu trang Facebook
Từ đây, tin tặc có thể sử dụng để chạy các quảng cáo độc hại từ tài khoản nạn nhân, và sử dụng phương thức thanh toán của các tài khoản này để phát tán mã độc trên nhiều đối tượng hơn nữa.
Tương tự như Facebook, FFDroider cũng sẽ kiểm tra xem mã độc có thể xác thực không, bằng cách gửi một GET request đến địa chỉ https://instagram.com cùng với cookie instagram bị đánh cắp.
Hình 7. Cookie Instagram bị đánh cắp được gửi tới instagram.com để xác thực
Nếu có một response hợp lệ, nó sẽ gửi GET request tiếp theo đến máy chủ instagram với tên người dùng của tài khoản nạn nhân GET/ <username> đã được phân tích cú pháp từ response trước đó.
Ngoài ra, mã độc còn gửi một request khác: GET/account/edit/to www.instagram.com, lúc này nó sẽ mở ra trang chỉnh sửa tài khoản để thu thập địa chỉ email, số điện thoại di động, tên người dùng, mật khẩu,… của nạn nhân.
Hình 8. Thu thập thông tin cá nhân như địa chỉ email, số điện thoại
Đồng thời, theo cách tương tự, tất cả thông tin liên quan đến tài khoản như tên người dùng và các chi tiết khác đều được lấy từ các trang web mục tiêu dưới dạng cookie, thông tin đăng nhập đã lưu và tìm nạp bằng cách sử dụng các API khác nhau, sau đó sẽ được gửi đến máy chủ C2.
Gửi thông tin đến máy chủ C2
Sau khi có được thông tin, mã độc sẽ gửi một HTTP POST request đến máy chủ C2 tại địa chỉ http://152.32.228.19/seeemorebty cùng với bộ nhớ đệm dữ liệu đã được mã hóa để xâm nhập.
Hình 9. Request mã hóa được gửi đến máy chủ C2
Loại dữ liệu được mã hóa này sử dụng mã hóa base64 đã sửa đổi được gửi đến máy chủ C2 từ máy chủ bị nhiễm. Phần nội dung của tệp JSON đã giải mã có khá nhiều thông tin tài khoản người dùng Facebook đã được gửi đến đến máy chủ C2.
Hình 10. Request được giải mã bao gồm thông tin bị đánh cắp từ cookie Facebook nạn nhân
Request được giải mã hiển thị dữ liệu thông tin nhạy cảm của người dùng, ví dụ như cookie, mật khẩu email, ID người dùng, mật khẩu đã lưu, số điện thoại.
Hình 11. Nội dung tệp JSON được giải mã
Ngoài ra, một tập luật Inbound Rules trong Windows Firewall được thêm vào để kích hoạt các kết nối không được phép tới máy chủ bị nhiễm.
Hình 12. Tập luật Inbound Rules Windows Firewall
Chức năng của trình tải xuống
Sau khi đánh cắp thông tin và gửi đến máy chủ C2, FFDroider tập trung vào việc tải xuống các mô-đun mới từ máy chủ điều khiển của nó theo định kỳ, khi gửi request đến địa chỉ “http://186.2.171.17/seemoretu/poe.php?e=<filename>”, bằng cách gọi các API wininet.dll như InternetOpenUrlW và InternetReadFile. Mô-đun được ghi vào thư mục “VlcpVideov1.01” đã tạo trước đó dưới dạng “install.exe”.
Việc triển khai thêm mô-đun trên các hệ thống bị nhiễm có thể cho phép tin tặc thực hiện các hành động tấn công khác nhau tùy thuộc vào mục tiêu cụ thể của họ.
Hình 13. FFDroider gửi request đến máy chủ C2 để cập nhật các mô-đun bổ sung
Phòng tránh trước mã độc FFDroider
Chính vì FFDroider lây nhiễm thông qua các phần mềm bẻ khóa, miễn phí,… nên người dùng cần chú ý tránh tải và cài đặt những phần mềm này cũng như các chương trình không có nguồn gốc khác.
Như một biện pháp phòng ngừa bổ sung, người dùng có thể tải lên VirusTotal các bản cài đặt trên mạng để kiểm tra xem phần mềm đó có độc hại hay không.