Nghiên cứu khai thác lỗ hổng trong cơ chế mã hóa ransomware Rhysida
CƠ CHẾ MÃ HÓA CỦA RANSOMWARE RHYSIDA
Ransomware Rhysida sử dụng trình tạo số ngẫu nhiên (Cryptographically Secure Pseudo Random Number Generator - CSPRNG) giúp tạo khóa riêng duy nhất trong mọi cuộc tấn công. CSPRNG được sử dụng để tạo ra chuỗi các số ngẫu nhiên có tính chất ngẫu nhiên cao và không thể dự đoán được. Các CSPRNG thường được xây dựng bằng cách kết hợp các thuật toán số học và các giải thuật trong một quá trình phức tạp, sử dụng các giá trị ban đầu được gọi là "seed" (hạt giống). Seed có thể là một số ngẫu nhiên thực sự hoặc được tạo từ một nguồn ngẫu nhiên như thời gian hệ thống hoặc dữ liệu môi trường.
CSPRNG sử dụng thuật toán ChaCha20 - một thuật toán mã hóa dòng (stream cipher) được cung cấp bởi thư viện LibTomCrypt. ChaCha20 sử dụng một khóa dài 256 bit và một Initialization Vector (IV) dài 64 bit để mã hóa dữ liệu. Sử dụng khóa mã và IV độc lập giúp ngăn chặn việc tái sử dụng cặp khóa và IV. Ransomware Rhysida cập nhật trạng thái nội bộ của mình mỗi lần bằng cách kết hợp với dữ liệu entropy cụ thể trong quá trình sử dụng CSPRNG. Dữ liệu entropy là một số ngẫu nhiên có độ dài 40 byte được tạo ra bởi hàm rand() trong thư viện chuẩn C. Hạt giống ban đầu (initial seed) của hàm rand() được thiết lập dựa trên thời gian thực khi ransomware Rhysida đang chạy. Quá trình khởi tạo của CSPRNG kết thúc nếu số ngẫu nhiên được tạo thành công.
Hình 1. Quá trình mã hóa không liên tục của Rhysida
Việc Rhysida sử dụng mã hóa không liên tục, một hình thức chỉ mã hóa một phần của tệp tin trong khi các phần còn lại ở dạng bản rõ, điều này rất quan trọng trong việc định hình phương pháp giải mã. Nếu kích thước tệp tin (fileSize) nhỏ hơn 1 MiB, toàn bộ dữ liệu sẽ được mã hóa. Đối với fileSize nằm trong khoảng từ 1 MiB đến dưới 2 MiB, 1 MiB đầu tiên sẽ được mã hóa. Trong trường hợp fileSize nằm trong khoảng từ 2 MiB đến dưới 3 MiB, dữ liệu sẽ được chia thành hai phần và 1 MiB đầu tiên của mỗi phần sẽ được mã hóa. Đối với fileSize nằm trong khoảng từ 3 MiB đến dưới 4 MiB, dữ liệu sẽ được chia thành ba phần và 1 MiB đầu tiên của mỗi phần sẽ được mã hóa. Đối với fileSize là 4 MiB hoặc lớn hơn, dữ liệu sẽ được chia thành bốn phần và 1 MiB đầu tiên của mỗi phần sẽ được mã hóa.
LỖ HỖNG TRONG CƠ CHẾ MÃ HÓA
Bằng cách khai thác lỗ hổng trong cơ chế mã hóa của ransomware Rhysida, cụ thể là từ trình tạo số ngẫu nhiên CSPRNG, các nhà nghiên cứu tại KISA có thể khôi phục trạng thái bên trong của CSPRNG trong cuộc tấn công và sử dụng nó để tạo khóa hợp lệ nhằm đảo ngược quá trình mã hóa dữ liệu.
Nghiên cứu cho thấy số ngẫu nhiên được tạo ra bởi CSPRNG dựa trên thời gian thực thi của ransomware Rhysida. Giá trị thời gian được sử dụng làm hạt giống, với không gian dữ liệu 32- bit là khả thi về mặt tính toán. Rhysida sử dụng CSPRNG để tạo khóa mã hóa riêng và vectơ khởi tạo IV nhưng thiếu các nguồn dữ liệu entropy cao khác để đảm bảo rằng giá trị hạt giống là không thể đoán trước được, khiến giá trị này có thể tìm kiếm và phán đoán bằng cách xem xét nhật ký hoặc dữ liệu khác cho biết thời gian lây nhiễm.
Hình 2. Quy trình phán đoán hạt giống phù hợp
Dựa trên cơ sở này, nhóm tác giả đã phát triển một phương pháp tái tạo trạng thái CSPRNG một cách có hệ thống bằng cách thử các giá trị hạt giống khác nhau trong phạm vi dự kiến. Sau khi tìm thấy giá trị chính xác (xác thực rằng nó có thể giải mã dữ liệu), tất cả các số ngẫu nhiên tiếp theo được ransomware sử dụng để mã hóa tệp có thể dễ dàng dự đoán để có thể khôi phục tất cả dữ liệu bị khóa mà không cần khóa riêng thực tế.
Việc giải mã chính xác của dữ liệu đã được mã hóa phụ thuộc vào khóa mã hóa được sử dụng vào thời điểm mã hóa. Do đó, nếu khóa mã hóa chính xác được tái tạo, một hoặc nhiều tệp sẽ được giải mã đúng. Bằng cách tạo ra các khóa mã hóa theo cách lặp lại với các hạt giống khác nhau và xác định một tệp được giải mã đúng sử dụng khóa, khi đó có thể kết luận rằng đã tìm thấy hạt giống ban đầu.
Quá trình giải mã hoạt động bằng cách tạo lại chính xác khóa mã hóa và vectơ ban đầu IV được sử dụng trong quá trình mã hóa ban đầu, sau đó áp dụng quy trình mã hóa đảo ngược (CTR) cho các phần được mã hóa của tệp. Dữ liệu được mã hóa trong chế độ CTR có thể được giải mã bằng cách thực hiện mã hóa thêm một lần nữa, hiệu quả tạo thành một quy trình giải mã. Phương pháp này đảo ngược mã hóa một cách hiệu quả, khôi phục bản rõ gốc mà không cần khóa riêng của kẻ tấn công, khai thác thuộc tính đối xứng của hàm CTR trong đó chức năng mã hóa và giải mã giống hệt nhau. Hình 3 thể hiện kết quả giải mã cho các tệp đã được mã hóa bởi ransomware Rhysida.
Hình 3. Kết quả giải mã thành công tập tin hình ảnh
Một công cụ giải mã tự động dành cho Windows đã có sẵn trên trang web của KISA kèm theo hướng dẫn sử dụng bằng tiếng Hàn và tiếng Anh, cung cấp giải pháp giúp giảm thiểu thiệt hại do ransomware Rhysida gây ra. Tuy nhiên, công cụ giải mã này chỉ hoạt động đối với các tệp được mã hóa bằng bộ mã hóa Rhysida trên Windows và không thể giải mã các tệp được mã hóa trên VMware ESXi hoặc thông qua bộ mã hóa dựa trên PowerShell của nó.
KẾT LUẬN
Bài báo cung cấp thông tin về lỗ hổng trong cơ chế mã hóa của ransomware Rhysida, đồng thời giới thiệu công cụ để khôi phục các tệp tin bị ảnh hưởng trên hệ điều hành Windows. ransomware Rhysida vẫn đang trong quá trình phát triển với những nguy cơ khó lường, vì vậy những nghiên cứu tiếp theo về ransomware nói chung và Rhysida nói riêng là hết sức cần thiết.
TÀI LIỆU THAM KHẢO [1]. Kim, G., Kang, S., Baek, S., Kim, K., & Kim, J. (2024). A Method for Decrypting Data Infected with Rhysida Ransomware. arXiv preprint arXiv:2402.06440. [2]. KISA, 2023. Rhysida ransomware recovery tool. https://seed.kisa.or.kr/kisa/Board/166/detailView.do.Rhysida-Ransomware-Recovery-Tool. [4]. https://www.cisa.gov/news-events/cybersecurity-advisories/aa23-319a. [6]. https://www.trendmicro.com/vinfo/tr/security/news/ransomware-spotlight/ransomware-spotlight-rhysida. |
Tô Hồng Nhung, Trương Đình Dũng, Trần Văn Khanh (Trường Cao đẳng Kỹ thuật thông tin, Binh chủng Thông tin - Liên lạc)