Trong phần một bài phân tích mã độc mới trên Facebook ngày 15/11, chúng ta đã biết được mã độc yêu cầu người dùng cài đặt một Extension để thực thi mã độc từ xa.
Trong phần hai, tôi sẽ tiếp tục phân tích đoạn mã độc chính được yêu cầu thực thi bởi Extension.

Tổng quan về mã độc

Đoạn mã được viết bằng JavaScript bao gồm 14 hàm.
start arkadas privacySetting like getConfirmHash confirmLike gelLinkID comment confirmComment tokencek randoms rastgele deSerialize blockRemove

Phân tích chi tiết mã độc

 
 new Image().src = "https://whos.amung.us/swidget/usersxxx0";  
Ở dòng đầu tiên, tác giả khởi tạo một đối tượng Image và đặt thuộc tính "src" về trang whos.amung.us - đây là một trang đã có từ lâu và cũng khá nổi tiếng. Nó cung cấp cho bạn một bộ đếm số người đang trực tuyến dưới dạng một widget để nhúng vào trang web của bạn.
Câu lệnh new Image().src="URL" là thủ thuật nhỏ để tạo ra một truy vấn GET đơn giản. Tác giả của mã độc đã sử dụng thủ thuật này để đếm xem có bao nhiêu nạn nhân (đang trực tuyến).
Mã độc Facebook 2015
Trong đoạn mã thực thi tiếp theo, tác giả xác định xem trang web hiện tại mà người dùng đang truy cập có phải Facebook hay không bằng cách kiểm tra chuỗi "facebook.com" có nằm trong tên máy chủ (hostname) hay không.
location.hostname.indexOf("facebook.com") >= 0
Sau đó, để xác định xem người dùng đã đăng nhập Facebook hay chưa thì tác giả thực hiện đếm phần tử có tên là "fb_dtsg":
fb_dtsg_list = document.getElementsByName('fb_dtsg'); if (!document.getElementById("isrun") && fb_dtsg_list.length > 0) { // OK }
Khi chưa đăng nhập thì số phần tử sẽ bằng 0.
Mã độc Facebook 2015
Chú ý: Nếu như các bạn từng đọc những bài phân tích mã độc Facebook của tôi trên SecurityDaily.net thì chắc sẽ nhớ rằng "fb_dtsg" chính là một thẻ Input ẩn và giá trị của nó chính là Security Token của Facebook.
Khi đã chắc chắn người dùng đã đăng nhập sẵn vào Facebook, tác giả lưu lại các thông tin quan trọng vào các biến. Trong đó có 2 thứ mà tôi đã bắt gặp ở rất nhiều mã độc Facebook khác là User ID và Security Token của người dùng hiện tại.
profile_id = document.cookie.match(/c_user=(\d+)/)[1]; fb_dtsg = fb_dtsg_list[0].value;
Tiếp theo, tôi sẽ phân tích các hàm quan trọng được thực thi. Thứ tự phân tích dựa trên thứ tự mà chúng được gọi tới.
blockRemove()
Phân tích mã độc Facebook
Hàm này sẽ thực hiện ẩn Dropdown Menu trên góc phải của Facebook. Nó được lặp đi lặp lại sau mỗi... 10 milliseconds với mục đích: không cho người dùng đăng xuất hoặc truy cập vào trang thiết lập.
start()
Ma doc Facebook
Hàm Start() sẽ thiết đặt một số cấu hình mặc định