Trong thời gian vừa qua đã xuất hiện một dạng mã độc mới thuộc họ mã độc tống tiền Petya/Petrwrap với tên gọi ExPetr/Petya/NotPetya. Nó được phát hiện lần đầu trên các máy tính ở Ukraine và sau đó là Tây Ban Nha, Đức, Israel, Anh, Hà Lan và Hoa Kỳ. Các cơ quan chính phủ, các công ty vận tải, tập đoàn dầu mỏ và thậm chí cả hệ thống của lò phản ứng hạt nhân Chernobyl đều bị ảnh hưởng bởi ExPetr. Tuy nhiên, mục đích của mã độc này có lẽ không phải để tống tiền. Qua nghiên cứu, các chuyên gia ATTT đã tìm ra được bản chất của mã độc này, cơ chế phát tán, hành vi cũng như cách phòng chống.
Cơ chế phát tán
Để thu được chứng chỉ nhằm thực hiện lây nhiễm, ExPetr sử dụng một công cụ mã nguồn mở Mimikatz, để trích xuất các chứng chỉ từ tiến trình lsass.exe. Sau khi chứng chỉ được trích xuất, nó được gửi tới cho các công cụ PsExec hoặc WMIC để phát tán trong mạng.
Các thành phần phát tán khác bao gồm:
- Mã khai thác EternalBlue sửa đổi, tương tự như của mã độc WannaCry.
- Mã khai thác EternalRomance: mã khai thác thực thi điều khiển các mục tiêu là các hệ thống Windows XP, Windows 7, 8, 10 và Windows Sever 2008, 2016 thông qua cổng TCP 445.
- Một công cụ tấn công lên hệ thống máy tính của Medoc (công ty phần mềm kế toán của Ukraina) và xâm nhập vào hệ thống cập nhật phần mềm của công ty này.
Một đặc điểm quan trọng là nếu hệ thống lây nhiễm trên mạng đang thực thi dưới quyền quản trị, thì nó có khả năng phát tán mã độc ra toàn bộ các máy tính khác trong mạng thông qua WMI hoặc PSEXEC.
Mã độc này tiến hành rà quét toàn bộ thiết bị mạng và các máy chủ thông qua NetBIOS và có thể truy cập vào danh sách DHCP để lấy thông tin về các địa chỉ IP. Mỗi IP trên mạng được tìm thấy sẽ được kiểm tra xem các cổng 445 và 139 có mở hay không. Nếu các cổng này được mở, mã độc sẽ tiến hành lây nhiễm vào các hệ thống đó.
Hành vi
Sau khi lây nhiễm vào hệ thống, ExPetr sẽ chờ một khoảng thời gian từ 10-60 phút để khởi động lại hệ thống thông qua bộ công cụ lập lịch “at” hoặc “schtasks” và “shutdown.exe”. Trong khoảng thời gian chờ đợi này, mã độc sẽ thực thi các payload dò quét và phát tán lây nhiễm mã độc trên mạng nội bộ.
Trong quá trình khởi động lại hệ thống, ExPetr sẽ bắt đầu mã hóa bảng MFT (Master File Table) trong phân vùng NTFS, ghi đè lên vùng MBR (Master Boot Record) với một đoạn loader được xây dựng riêng và đưa ra một thông báo đe dọa.
Ban đầu, mã độc này được cho là một dạng mã độc tống tiền do biểu hiện bên ngoài của nó là tiến hành mã hóa các tệp tin hệ thống và đưa ra các thông điệp tống tiền đến nạn nhân. Tuy nhiên, trong quá trình phân tích các payload hoạt động, việc mã hóa và đưa các thông điệp tống tiền dường như chỉ là một phương thức đánh lạc hướng của kẻ tấn công. Sau quá trình phân tích môđun mã hóa của ExPetr, các chuyên gia thấy rằng, môđun này không cho phép giải mã các ổ đĩa và tệp tin bị mã hóa bất kể có trả tiền hay không. Do đó, có giả thiết rằng mã độc này không đơn thuần nhằm mục đích tống tiền, mà có những động cơ phá hoại khác nhằm đến các tổ chức công nghiệp và chính phủ của các nước Châu Âu.
Đầu tiên, để giải mã được ổ đĩa của nạn nhân bị mã hóa, kẻ tấn công cần có được mã định danh cài đặt của nạn nhân (Personnal Installaion Key).
Trong các phiên bản trước của các mã độc tống tiền thuộc họ Petya như: Petya/Mischa/ GoldenEye, mã định danh cài đặt này chứa các thông tin cần thiết để lấy được khóa bí mật nhằm giải mã tệp tin bị mã hóa trên máy nạn nhân. Khi thông tin này được cung cấp cho kẻ tấn công kèm với thông tin thanh toán thì khóa giải mã sẽ được gửi lại cho nạn nhân để tiến hành khôi phục các tệp tin bị mã hóa. Với mã độc ExPetr/Petya (mới), mã định danh cài đặt này được sinh ra như sau:
Trong trường hợp thử nghiệm, mã định danh cài đặt được sinh ra bằng hàm CryptGenRandom, đây là một hàm sinh dữ liệu ngẫu nhiên.
Dữ liệu ngẫu nhiên sinh ra được lưu trữ trong bộ đệm dưới dạng mã BASE58.
Người dùng có thể hy vọng vào việc sinh được các khóa giải mã từ thông tin này. Tuy nhiên, mã độc này sử dụng một lược đồ mã hóa tiêu chuẩn, nên rất khó để tồn tại một lỗ hổng nhằm thu lại được khóa. Cơ chế mã hóa của ExPetr sử dụng bao gồm:
Với các tệp tin sử dụng thuật toán mã hóa AES-128, trong đó khóa được sinh từ hệ thống.
Khóa này được mã hóa bằng khóa công khai RSA-2048 của kẻ tấn công và được lưu trữ vào tệp README.
Sau khi mã hóa, kẻ tấn công yêu cầu trả một số tiền chuộc khoảng 300 đô la dưới dạng bitcoin để lấy lại dữ liệu. Khác với WannaCry, ExPetr yêu cầu nạn nhân gửi thông tin về ví điện tử của họ tới địa chỉ email
[email protected], để xác nhận giao dịch. Tuy nhiên, email này tại thời điểm hiện tại đã bị vô hiệu hóa, do đó bất cứ nỗ lực thanh toán nào nhằm lấy được khóa để giải mã tệp tin đã bị mã hóa đều không thể thực hiện được.
Các biện pháp phòng chống:
- Sử dụng phần mềm diệt virus có chức năng bảo vệ để chống các mã độc tống tiền.
- Cập nhật phiên bản hệ điều hành có vá lỗ hổng của Microsoft Windows.
- Không mở các tập đính kèm được gửi từ những nguồn không tin cậy.
- Đóng các cổng 445 và 139 nếu không sử dụng.
- Tạo bản backup cho các dữ liệu quan trọng thường xuyên.