Phân tích mã độc tống tiền Locky

Vào tháng 2/2016, mạng Internet đã bị rúng động vì một loại mã độc tống tiền (ransomware) mới có tên là Locky. Theo báo cáo cho thấy mã độc tống tiền Locky đã lây lan người dùng hơn 114 quốc gia trên thế giới. Phân tích mẫu mã độc cho thấy đây là một loại Trojan hoàn toàn mới. Vậy Locky là gì và làm sao có thể chống lại mã độc này? Hãy cùng tìm hiểu.

Cách thức phát tán

Để phát tán một lọai Trojan, tin tặc thường gửi spam lượng lớn email cùng với các tệp tin đính kèm độc hại. Tệp tin đính kèm ở đây là một tệp tin văn bản .DOC chứa macro độc hại tải Locky Trojan từ máy chủ về máy tính nạn nhân và thực thi nó.

 

locky_eng_1

Tin nhắn rác chứa tài liệu đính kèm độc hại

locky_eng_2

Một đoạn mã của macro độc hại

Các phiên bản Microsoft Office mới thường vô hiệu hóa chạy macro tự độc vì lí do bảo mật. Tuy nhiên, thực tế cho thấy người dùng rất thường xuyên kích hoạt thủ công macro, thậm chí ngay cả trên tài liệu tải về từ nguồn không rõ ràng, dẫn đến hậu quả khó lường.

Hiện tại, tin tặc đã thay đổi các tệp tin đính kèm thành tệp tin nén ZIP chứa một hoặc nhiều đoạn mã JavaScript được làm rối nhằm che mắt người dùng. Tin nhắn rác được gửi đến thường được viết bằng tiếng Anh, cũng có một vài ngôn ngữ khác được sử dụng.

locky_eng_3

Thư rác được viết bằng tiếng Anh với một tệp tin đính kèm được nén

locky_eng_4

Thư rác được viết bằng tiếng Anh và tiếng Đức

Người dùng sẽ được thông báo khởi động các tệp tin script

locky_eng_5

Nội dung tệp tin đính kèm đã được nén

locky_eng_6

Một đoạn mã script trong tệp tin nén

Nếu được kích hoạt, đoạn mã script sẽ tải về Locky Trojan từ máy chủ trên Internet và khởi chạy nó.

Các quốc gia bị tấn công

Danh sách 10 quốc gia bị lây nhiễm nhiều nhất

Tên quốc gia Số lượng người dùng bị tấn công
Pháp 469
Đức 340
Ấn Độ 267
Hoa Kỳ 224
Nam Phi 182
Ý 171
Mexico 159
Brazil 156
Trung Quốc 126
Việt Nam 107

 

Cần lưu ý rằng thống kê trên chỉ bao gồm những trường hợp mã độc Locky được phát hiện bởi các công cụ diệt virus và không bao gồm các phát hiện giai đoạn đầu như thư rác hoặc các phần mềm độc hại tự động tải mã độc.

 

map_1_en

Cách thức hoạt động

Locky Trojan là một tệp tin thực thi, có dung lượng khoảng 100 kb. Nó được viết bằng ngôn ngữ C++ sử dụng STL và được biên dịch bởi Microsoft Visual Studio. Khi được khởi động, mã độc sẽ tự sao chép đến %TEMP%\svchost.exe  và xóa luồng dữ liệu NTFS trên ổ đĩa cứng – điều này được thực hiện nhằm đảm bảo khi thực thi, Windows không hiển thị cảnh báo rằng tệp tin được tải về từ Internet và có thể gây nguy hiểm. Trojan Locky sẽ được chạy từ thư mục %TEMP%.

Mã độc sẽ kiểm tra sự tồn tại và nội dung của các khóa registry sau:

Đường dẫn Kiểu Giá trị
HKEY_CURRENT_USER\Software\Locky\id REG_SZ Infection ID
HKEY_CURRENT_USER\Software\Locky\pubkey REG_BINARY Public RSA key in MSBLOB format
HKEY_CURRENT_USER\Software\Locky\paytext REG_BINARY Text shown to the victim
HKEY_CURRENT_USER\Software\Locky\completed REG_DWORD Status (whether encryption is completed)

Nếu dữ liệu trên tồn tại trong các khóa registry (có nghĩa là Trojan này đã từng được chạy nhưng bị dừng lại vì lí do nào đó), Locky sẽ đọc dữ liệu và tiếp tục quá trình lây nhiễm. Với lần chạy đầu tiên, Locky sẽ thực hiện các hành vi sau:

  1. Liên lạc với máy chủ điều khiển C&C và báo cáo lây nhiễm
  2. Nhận một khóa công khai RSA-2048 và ID lây nhiễm từ máy chủ điều khiển, lưu vào registry
  3. Gửi thông tin về ngôn ngữ của hệ điều hành bị lây nhiễm, nhận thông báo hiển thị đòi tiền chuộc từ tin tặc, lưu thành dạng text trong registry
  4. Tìm kiếm các tệp tin với phần mở rộng cụ thể trên ổ đĩa cứng của máy bị lây nhiễm, mã hóa chúng
  5. Xóa các bản sao chép shadow copies của các tệp tin
  6. Ghi mã độc vào phần tự khởi động (HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run)
  7. Tìm kiếm và mã hóa các tệp tin có phần mở rộng đặc biệt trên các ổ đĩa của mạng chia sẻ và trên các tài nguyên mạng không được gán tên ổ đĩa
  8. Hiển thị thông điệp đòi tiền chuộc đến nạn nhân
  9. Dừng hoạt động và tự xóa

locky_eng_8

Đoạn mã xác định ngôn ngữ của hệ điều hành

Danh sách các tệp tin bị mã hóa

Mã độc Locky sẽ tìm kiếm các tệp tin có phần mở rộng sau đây:

locky_eng_9

Danh sách các phần mở rộng của tệp tin sẽ bị mã hóa

Với mỗi tệp tin phù hợp, mã độc Locky sẽ tạo ra một khóa 128-bit và mã hóa nội dung tệp tin với thuật toán AES-128 trong chế độ CTR. Tệp tin bị mã hóa sẽ có tên <16 kí tự HEX cho phần ID><16 kí tự HEX ngẫu nhiên>.locky . Cấu trúc sau sẽ được thêm vào phần cuối của tệp tin:

locky_eng_10

Mã độc locky thêm đoạn mã vào cuối mỗi tệp tin mã hóa

Trong cú pháp ngôn ngữ C, đoạn mã trên được giải thích như sau:

struct file_data
{
uint32_t start_marker;          //Structure start marker = 0x8956FE93
char id[16];                    //Infection ID
uint8_t aes_key[256];           //AES key encrypted with RSA-2048
uint32_t name_marker;           //Name start marker encrypted with AES (= 0xD41BA12A after decryption)
uint8_t orig_name[520];         //Original file name encrypted with AES
WIN32_FILE_ATTRIBUTE_DATA attr; //Original file attributes encrypted with AES
};

Thông điệp đòi tiên chuộc

Sau khi mã hóa tệp tin của người dùng, Trojan Locky sẽ hiển thị thông điệp dưới đây:

locky_eng_11

Thông điệp đòi tiền chuộc bằng tiếng Anh

locky_eng_12

Thông điệp đòi tiền chuộc bằng tiếng Đức

Trong những chiến dịch tấn công đầu tiên, trang thanh toán tiền chuộc sẽ có dạng như sau:

locky_eng_13

Trang thanh toán của Locky phiên bản đầu tiên

Trong trang này, tin tặc đề nghị nạn nhân trả tiền dưới dạng bitcoin để được giải mã các tệp tin bị mã hóa trên máy tính. Tin tặc cũng đưa ra hướng dẫn cách thanh toán bằng đồng tiền bitcoin.

Nội dung và thiết kế của trang thanh toán hiện tại đã thay đổi, có sẵn hơn 20 ngôn ngữ để lựa chọn:

locky_eng_14

Trang thanh toán của Locky phiên bản mới nhất

Trong mã nguồn ta có thể thấy danh sách đầy đủ các ngôn ngữ được hỗ trợ. Tin tặc đang làm hết mình để có thể giao tiếp với nạn nhân tại các quốc gia lớn bị tấn công. Tuy nhiên, ngôn ngữ Nga và ngôn ngữ các quốc gia thuộc liên bang Nga cũ lại không hề có trong danh sách.

locky_eng_15

Danh sách các ngôn ngữ được hỗ trợ trên trang thanh toán của Locky

Kết nối với máy chủ điều khiển (C&C)

Trong đoạn mã của Locky chứa từ 1 đến 3 địa chỉ IP của máy chủ C&C. Đoạn mã dùng thuật toán tạo ra địa chỉ C&C mới (DGA, thuật toán tạo tên miền) dựa trên ngày tháng năm hiện tại. Với thuật toán này, 6 địa chỉ C&C được tạo ra mỗi ngày. Đoạn mã giả cho thấy thuật toán DGA được đánh dấu trong hình dưới đây:

locky_eng_16

Đoạn mã giả thuật toán tạo tên miền C&C Locky

Kết nối đến một C&C được thực hiện thông qua giao thức HTTP. Mã độc Locky gửi một yêu cầu POST request đến địa chỉ với định dạng http://<cnc_url>/main.php; dữ liệu truyền tải sẽ được mã hóa với một thuật toán đối xứng đơn giản.

Các dạng thông số được gửi đi bao gồm:

  1. Thông báo về lây nhiễm thành công và yêu cầu khóa
    id=<infection id>
    &act=getkey&affid=<partner id contained in the Trojan’s body>
    &lang=<language of the operating system>
    &corp=<whether the OS is a corporate OS>
    &serv=<whether the OS is a server OS>
    &os=<OS version>
    &sp=<version of OS service pack>
    &x64=<whether the OS is 32- or 64-bit>
  2. Gửi danh sách các đường dẫn bị mã hóa
    id=<infection id>
    &act=report&data=<list of paths>
    Với mỗi ổ đĩa đã được xử lý, Locky sẽ gửi dến máy chủ điều khiển một danh sách tất cả đường dẫn của tất cả các tệp tin.
  3. Gửi thống kê mỗi ổ đĩa cứng được xử lý
    id=<infection id>
    &act=stats&path=<path>
    &encrypted=<number of files encrypted>
    &failed=<number of errors>
    &length=<total size of encrypted files>

Tin tặc thu thập số liệu thống kê rất chi tiết về mỗi thiết bị lẫy nhiêm. Các họ mã độc tống tiền khác thường không làm việc này.

Các biện pháp ngăn chặn

Locky là một loại mã độc tống tiền điển hình. Tuy nhiên nó lại khiến các nhà nghiên cứu bảo mật chú ý bởi sự linh hoạt và phát tán rộng rãi. Để bảo vệ bản thân khỏi loại mã độc tống tiền Locky, thực hiện các biện pháp sau:

  • Không mở các tệp tin đính kèm trong email được gửi từ nguồn không rõ ràng.
  • Sao lưu dữ liệu định kì và lưu trữ bản sao sao lưu trên một thiết bị lưu trữ tách khác rời hoặc lưu trữ trên cloud.
  • Thường xuyên cập nhật phần mềm diệt virus, hệ điều hành và các phần mềm cài đặt trên máy tính.
  • Tạo một thư mục mạng riêng biệt với mỗi người dùng khi quản lý truy cập đến thư mục mạng được chia sẻ..

THN

Bài viết cùng chủ đề

Bình luận

Từ khóa: