Mã độc tống tiền Sage 2.2 hướng mục tiêu tới nhiều quốc gia
FortiGuard Labs vừa đăng tải bài blog về biến thể mới của mã độc tống tiền Saga, được bổ sung một số tính năng mới liên quan đến chống phân tích và leo thang đặc quyền. Đặc biệt, mã độc được bổ sung 6 ngôn ngữ dùng cho việc hiển thị thông điệp của hacker, trong đó có tiếng Việt.
Theo FortiGuard, mã độc được phát tán qua email spam đính kèm tập tin JavaScript độc hại để tải sage2.2.
Điều thực sự thú vị là có một số file mã độc Locky cũng có chung server download với Saga.
Những thứ không đổi so với phiên bản cũ
Giống như các phiên bản trước đó. Nó sử dụng cùng một thuật toán mã hóa như Sage 2.0, đó là ChaCha20, để mã hóa các tập tin. Tên tệp sau khi bị mã hoá có phần mở rộng là .saga.
Saga vẫn tránh lây nhiễm máy tính ở một số quốc gia:
Chống phân tích, Anti-sandbox, Anti-VM
Ngoài string bị mã hóa, biến thể phần mềm độc hại này cũng kiểm tra để xác định xem nó có đang bị debug, kiểm tra có đang trong sandbox hay một máy ảo nào không. Nếu có, mã độc sẽ ngay lập tức tự kết thúc chương trình để chống phân tích.
Dưới đây là các kiểm tra để chống phân tích dịch ngược của Sage2.2:
Kiểm tra tên tiến trình
Biến thể này của Sage liệt kê tất cả các tiến trình đang chạy trên máy tính, tính toán hàm băm bằng cách sử dụng Murmurhash3, và sau đó đối chiếu với một danh sách các mã hoá băm. Bảng dưới cho thấy danh sách một số tên quy trình được liệt kê trong danh sách đen cùng với mã hóa Murmurhash3 tương ứng.
Kiểm tra tên file
Mã độc cũng tìm kiếm sự xuất hiện của các tên dưới đây có nằm trong đường dẫn của mã độc hay không.
Kiểm tra tên máy tính và tên người dùng
Đã có rất nhiều nghiên cứu khác nhau về cách phát hiện phần mềm độc đã được tải vào một Sandbox AV. Một trong số đó là kiểm tra tên máy tính hoặc tên người dùng đã biết trong môi trường Sandbox. Phiên bản phần mềm độc hại này gồm danh sách các tên máy tính và tên người dùng được mã hóa.
Bên cạnh danh sách băm, nó cũng có chuỗi mã hoá tên máy tính và tên người dùng cần tránh. Đây là các tên sau khi được giải mã:
Phần mềm độc hại này cũng sử dụng lệnh CPU x86 để có được chi tiết về bộ vi xử lý, chẳng hạn như thương hiệu bộ xử lý. Chuỗi thương hiệu này sau đó được kiểm tra đối với danh sách ID CPU blacklist, thường được sử dụng trong môi trường Ảo hóa gồm:
Kiểm tra dịch vụ antivirus và địa chỉ MAC
Cuối cùng, mã độc kiểm tra phần mềm Antivirus trên máy tính và đối chiếu một danh sách các địa chỉ MAC bị blacklist.
Leo thang đặc quyền
Thông thường, phần mềm độc hại sẽ tìm cách có được mức đặc quyền cao hơn tài khoản người dùng thông thường, để có thể kiểm soát hoàn toàn hệ thống và sau đó thực hiện hầu hết mọi việc mà mình muốn trên hệ thống bị nhiễm. Điều này đặc biệt quan trọng đối với ransomware do chúng cần mức đặc quyền cao hơn để đảm bảo rằng tất cả các file của nạn nhân được mã hóa, bao gồm các tệp tin quan trọng được lưu trữ trong các thư mục được bảo vệ. Sage đã được trang bị khả năng nâng cao đặc quyền của mình bằng cách khai thác lỗ hổng nhân Windows đã được vá hoặc tính năng Kiểm soát Tài khoản Người dùng (UAC).
Khai thác CVE-2015-0057
Trên thực tế, Sage không phải dòng mã độc đầu tiên lợi dụng lỗ hổng trong nhân Windows (CVE-2015-0057). Tuy nhiên, kỹ thuật khai thác - cụ thể là đặc quyền write-what-where (WWW) mà mã độc này sử dụng – khiến Saga khác biệt với những dòng mã độc khác.
Do tính chất của lỗ hổng này, mã độc có thể tự và ghi dữ liệu tùy ý trong bất kỳ phần nào của bộ nhớ thiết bị. Trong mẫu Sage được phân tích, mã khai thác có thể tận dụng một số chức năng Windows GUI, chẳng hạn như InternalGetWindowText / NtUserInternalGetWindowText và NtUserDefSetText, để thực hiện đọc/ghi tùy ý. Đối với mã khai thác nhân truyền thống, mã độc thường nhắm mục tiêu vào HalDispatchTable và sau đó ghi đè lên một trong những con trỏ nằm trong bảng chuyển mã từ ring-3 đến ring-0. Đối với Sage, nó đã chọn Bảng mô tả nội bộ (LDT) cho ring-3 tới điểm chuyển tiếp ring-0, như trong đoạn mã sau đây:
Hình bên dưới cho thấy LDT entry trước khi mã bên trên được thực thi:
Sau khi mã được thực thi, chúng ta có thể thấy LDT entry mới đã được thêm thành công vào cấu trúc EPROCESS:
Sau khi bổ sung LDT giả vào GDT thông qua mã khai thác, mã độc tiếp tục thực hiện cuộc gọi và bắt đầu giai đoạn đầu tiên kernel shellcode:
Sử dụng lệnh gọi xa để kích hoạt kernel shellcode giai đoạn đầu tiên
Tại đoạn mở đầu của shellcode nhân, mã khai thác sẽ cố gắng vô hiệu hoá Bit Supervisor Execution Prevention (SMEP) được lưu trữ tại thanh ghi CR4, cho phép mã kernel-modechế độ nhân thực thi mã user-mode sau khi bị vô hiệu, và sau đó chuyển mã thực thi tới 0x587AD2 ở user-mode.
Thật thú vị, phiên bản này của mã khai thác sử dụng các kỹ thuật khác nhau để lấy địa chỉ nền hình ảnh ntoskrnl.exe so với mã khai thác nhân mà chúng ta đã quan sát thấy trước đó. Khi hiển thị các nội dung của IDT từ địa chỉ 0x80b93400, các chuyên gia FortiNet nhận thấy rằng có một giá trị không đổi 0x82888e00, đại diện cho giá trị của KIDTENTRY.Access và KIDTENTRY.ExtendedOffset tương ứng.
Trên thực tế, giá trị không đổi này hóa ra rơi vào hình ảnh ntoskrnl.exe. Trừ khoảng trống 0x1000 tại một thời điểm nhất định cuối cùng có thể dẫn tới địa chỉ nền hình ảnh ntoskrnl.exe. Mấu chốt của việc tại sao kỹ thuật này được sử dụng có lẽ là các coder muốn trốn tránh việc phát hiện hành vi của một số các nhà cung cấp an ninh có thể nhận ra cách thức truyền thống để nạp tải nền hình ảnh ntoskrnl.exe, được công khai trong các mã khai thác nhân nguồn mở.
Cuối cùng, mã khai thác thay thế token quá trình Hệ thống bằng token của mình để đạt được đặc quyền SYSTEM.
Vượt qua UAC
Saga sử dụng eventvwr.exe và kỹ thuật hijack registry để chặn popup UAC.
Nhiều ngôn ngữ mới được sử dụng cho thông báo đòi tiền chuộc của ransomware
Các biến thể trước đó của Sage có một file hiển thị nội dung đòi tiền chuộc có tên HELP_SOS.hta, đi kèm các hướng dẫn để khôi phục các tệp tin đã bị mã hóa. Thông báo này được viết bằng nhiều ngôn ngữ khác nhau, bao gồm:
Khôi phục file
Ngoài ra còn có một sự thay đổi trong số tiền người dùng phải trả để khôi phục lại các tập tin đã bị mã hóa, lên đến [imath]2000, trong khi các biến thể trước đó đòi từ[/imath]99 đến $1000. Người dùng phải sử dụng một trình duyệt TOR để mua phần mềm "SAGE Decrypter".
Nạn nhân có thể tải lên tệp đã bị mã hóa có dung lượng dưới 15KB để kiểm tra khả năng giải mã.
Sau vài phút, nạn nhân có thể tải về file giải mã.
Theo FortiGuard, mã độc được phát tán qua email spam đính kèm tập tin JavaScript độc hại để tải sage2.2.
Điều thực sự thú vị là có một số file mã độc Locky cũng có chung server download với Saga.
Những thứ không đổi so với phiên bản cũ
Giống như các phiên bản trước đó. Nó sử dụng cùng một thuật toán mã hóa như Sage 2.0, đó là ChaCha20, để mã hóa các tập tin. Tên tệp sau khi bị mã hoá có phần mở rộng là .saga.
Saga vẫn tránh lây nhiễm máy tính ở một số quốc gia:
- Belarusian
- Kazak
- Uzbek
- Russian
- Ukrainian
- Sakha
- Latvian
Chống phân tích, Anti-sandbox, Anti-VM
Ngoài string bị mã hóa, biến thể phần mềm độc hại này cũng kiểm tra để xác định xem nó có đang bị debug, kiểm tra có đang trong sandbox hay một máy ảo nào không. Nếu có, mã độc sẽ ngay lập tức tự kết thúc chương trình để chống phân tích.
Dưới đây là các kiểm tra để chống phân tích dịch ngược của Sage2.2:
Kiểm tra tên tiến trình
Biến thể này của Sage liệt kê tất cả các tiến trình đang chạy trên máy tính, tính toán hàm băm bằng cách sử dụng Murmurhash3, và sau đó đối chiếu với một danh sách các mã hoá băm. Bảng dưới cho thấy danh sách một số tên quy trình được liệt kê trong danh sách đen cùng với mã hóa Murmurhash3 tương ứng.
Kiểm tra tên file
Mã độc cũng tìm kiếm sự xuất hiện của các tên dưới đây có nằm trong đường dẫn của mã độc hay không.
- sample
- malw
- sampel
- virus
- {sample’s MD5}
- {samples’s SHA1}
Kiểm tra tên máy tính và tên người dùng
Đã có rất nhiều nghiên cứu khác nhau về cách phát hiện phần mềm độc đã được tải vào một Sandbox AV. Một trong số đó là kiểm tra tên máy tính hoặc tên người dùng đã biết trong môi trường Sandbox. Phiên bản phần mềm độc hại này gồm danh sách các tên máy tính và tên người dùng được mã hóa.
Bên cạnh danh sách băm, nó cũng có chuỗi mã hoá tên máy tính và tên người dùng cần tránh. Đây là các tên sau khi được giải mã:
- Wilbert
- Customer
- Administrator
- Miller
- User
- CUCKOO
- TEST
- DESKTOP
- WORKSTATION
- JOHN-PC
- ABC-PC
- SARA-PC
- PC
- D4AE52FE38
Phần mềm độc hại này cũng sử dụng lệnh CPU x86 để có được chi tiết về bộ vi xử lý, chẳng hạn như thương hiệu bộ xử lý. Chuỗi thương hiệu này sau đó được kiểm tra đối với danh sách ID CPU blacklist, thường được sử dụng trong môi trường Ảo hóa gồm:
- KVM
- Xeon
- QEMU
- AMD Opteron 2386
Kiểm tra dịch vụ antivirus và địa chỉ MAC
Cuối cùng, mã độc kiểm tra phần mềm Antivirus trên máy tính và đối chiếu một danh sách các địa chỉ MAC bị blacklist.
Leo thang đặc quyền
Thông thường, phần mềm độc hại sẽ tìm cách có được mức đặc quyền cao hơn tài khoản người dùng thông thường, để có thể kiểm soát hoàn toàn hệ thống và sau đó thực hiện hầu hết mọi việc mà mình muốn trên hệ thống bị nhiễm. Điều này đặc biệt quan trọng đối với ransomware do chúng cần mức đặc quyền cao hơn để đảm bảo rằng tất cả các file của nạn nhân được mã hóa, bao gồm các tệp tin quan trọng được lưu trữ trong các thư mục được bảo vệ. Sage đã được trang bị khả năng nâng cao đặc quyền của mình bằng cách khai thác lỗ hổng nhân Windows đã được vá hoặc tính năng Kiểm soát Tài khoản Người dùng (UAC).
Khai thác CVE-2015-0057
Trên thực tế, Sage không phải dòng mã độc đầu tiên lợi dụng lỗ hổng trong nhân Windows (CVE-2015-0057). Tuy nhiên, kỹ thuật khai thác - cụ thể là đặc quyền write-what-where (WWW) mà mã độc này sử dụng – khiến Saga khác biệt với những dòng mã độc khác.
Do tính chất của lỗ hổng này, mã độc có thể tự và ghi dữ liệu tùy ý trong bất kỳ phần nào của bộ nhớ thiết bị. Trong mẫu Sage được phân tích, mã khai thác có thể tận dụng một số chức năng Windows GUI, chẳng hạn như InternalGetWindowText / NtUserInternalGetWindowText và NtUserDefSetText, để thực hiện đọc/ghi tùy ý. Đối với mã khai thác nhân truyền thống, mã độc thường nhắm mục tiêu vào HalDispatchTable và sau đó ghi đè lên một trong những con trỏ nằm trong bảng chuyển mã từ ring-3 đến ring-0. Đối với Sage, nó đã chọn Bảng mô tả nội bộ (LDT) cho ring-3 tới điểm chuyển tiếp ring-0, như trong đoạn mã sau đây:
Hình bên dưới cho thấy LDT entry trước khi mã bên trên được thực thi:
Sau khi mã được thực thi, chúng ta có thể thấy LDT entry mới đã được thêm thành công vào cấu trúc EPROCESS:
Sau khi bổ sung LDT giả vào GDT thông qua mã khai thác, mã độc tiếp tục thực hiện cuộc gọi và bắt đầu giai đoạn đầu tiên kernel shellcode:
Sử dụng lệnh gọi xa để kích hoạt kernel shellcode giai đoạn đầu tiên
Tại đoạn mở đầu của shellcode nhân, mã khai thác sẽ cố gắng vô hiệu hoá Bit Supervisor Execution Prevention (SMEP) được lưu trữ tại thanh ghi CR4, cho phép mã kernel-modechế độ nhân thực thi mã user-mode sau khi bị vô hiệu, và sau đó chuyển mã thực thi tới 0x587AD2 ở user-mode.
Thật thú vị, phiên bản này của mã khai thác sử dụng các kỹ thuật khác nhau để lấy địa chỉ nền hình ảnh ntoskrnl.exe so với mã khai thác nhân mà chúng ta đã quan sát thấy trước đó. Khi hiển thị các nội dung của IDT từ địa chỉ 0x80b93400, các chuyên gia FortiNet nhận thấy rằng có một giá trị không đổi 0x82888e00, đại diện cho giá trị của KIDTENTRY.Access và KIDTENTRY.ExtendedOffset tương ứng.
Trên thực tế, giá trị không đổi này hóa ra rơi vào hình ảnh ntoskrnl.exe. Trừ khoảng trống 0x1000 tại một thời điểm nhất định cuối cùng có thể dẫn tới địa chỉ nền hình ảnh ntoskrnl.exe. Mấu chốt của việc tại sao kỹ thuật này được sử dụng có lẽ là các coder muốn trốn tránh việc phát hiện hành vi của một số các nhà cung cấp an ninh có thể nhận ra cách thức truyền thống để nạp tải nền hình ảnh ntoskrnl.exe, được công khai trong các mã khai thác nhân nguồn mở.
Cuối cùng, mã khai thác thay thế token quá trình Hệ thống bằng token của mình để đạt được đặc quyền SYSTEM.
Vượt qua UAC
Saga sử dụng eventvwr.exe và kỹ thuật hijack registry để chặn popup UAC.
Nhiều ngôn ngữ mới được sử dụng cho thông báo đòi tiền chuộc của ransomware
Các biến thể trước đó của Sage có một file hiển thị nội dung đòi tiền chuộc có tên HELP_SOS.hta, đi kèm các hướng dẫn để khôi phục các tệp tin đã bị mã hóa. Thông báo này được viết bằng nhiều ngôn ngữ khác nhau, bao gồm:
- Tiếng Anh
- Đức
- Ý
- Pháp
- Tây Ban Nha
- Bồ đào Nha
- Hà Lan
- Hàn Quốc
- Trung Quốc
- Pakistan
- Ả rập
- Na Uy
- Malaysia
- Thổ Nhĩ Kỳ
- Việt Nam
- Indonesia
- Hindi
Khôi phục file
Ngoài ra còn có một sự thay đổi trong số tiền người dùng phải trả để khôi phục lại các tập tin đã bị mã hóa, lên đến [imath]2000, trong khi các biến thể trước đó đòi từ[/imath]99 đến $1000. Người dùng phải sử dụng một trình duyệt TOR để mua phần mềm "SAGE Decrypter".
Nạn nhân có thể tải lên tệp đã bị mã hóa có dung lượng dưới 15KB để kiểm tra khả năng giải mã.
Chỉnh sửa lần cuối bởi người điều hành: