Mã độc tống tiền: Số lượng tin tặc sử dụng máy ảo để tấn công ngày càng tăng

Thủ đoạn: giấu mã độc tống tiền trong payload (phần dữ liệu thực sự được truyền đi của một gói tin giữa hai phía) nhờ đó giảm rủi ro mã độc bị phát hiện khi quá trình mã hóa dữ liệu trong payload xảy ra.

 

Symantec đã và đang truy vết các bằng chứng để chứng minh sự gia tăng ngày càng nhiều số lượng tin tặc ransomware (mã độc tống tiền) đang sử dụng máy ảo (virtual machines – VMs) để chạy gói dữ liệu payload trên các máy tính có bảo mật an ninh mạng kém. Mục đích đằng sau thủ đoạn này là ĂN TRỘM. Để tránh bị các phần mềm chống vi rút đưa vào diện tình nghi, các mã đôc tống tiền trong gói dữ liệu payload sẽ “trốn” trong một máy ảo trong khi tệp dữ liệu đang được mã hóa trên máy tính của đối tượng bị xâm nhập.

Thủ đoạn này gần đây rất phát triển. Công ty Sophos (công ty phần mềm và cung ứng bảo mật của Anh) đã và đang nghiên cứu các thủ đoạn của mã độc tống tiền RagnarLocker. Mã độc tống tiền Ragnar Locker đã được triển khai bên trong một máy ảo Oracle VirtualBox Windows XP.

Sử dụng VirtualBox

Trong một cuộc điều tra về các cuộc tấn công của mã độc tống tiền gần đây, Symantec đã phát hiện ra rằng tin tặc đã triển khai một phần mềm ảo hóa VirtualBox VM trên một số máy tính của đối tượng bị xâm nhập. Không giống như các cuộc tấn công của RagnarLocker đã được nghiên cứu từ trước (cuộc tấn công liên quan tới hệ điều hành Windows XP), trường hợp máy ảo VirtualBox VM lại chạy trên hệ điều hành Windows 7.

VM được đưa vào máy tính của đối tượng bị tấn công thông qua một trình cài đặt độc hại có những tên tệp khác nhau như:

  • fuckyou.msi
  • fuck.msi
  • aa51978f.msi
  • s3c.msi

Trình cài đặt tạo ra một tệp tên là runner.exe, là tệp thực thi ngôn ngữ lập trình Golang (GO) được biên dịch từ tệp nguồn sau:

  • C:/builder/runner/main.go

Ngoại trừ thư viện ngôn ngữ lập trình tiêu chuẩn GO, trình cài đặt đã sử dụng thư viện go-ps để thực hiện liệt kê các yếu tố của một tập hợp (enumeration). Các tệp thực thi sử dụng các chuỗi embedded, như tên tệp, tên quy trình và lệnh, bị xáo trộn lên sử dụng các khóa XOR 4-byte. Mỗi chuỗi được mã hóa bằng một khóa duy nhất

Tệp thực thi này phụ thuộc nào nhiều tệp tin khác – nằm cùng trong một thư mục. Mục đích chính của tệp thực thi này là để cài đặt một VirtualBox VM trong chế độ headless mode (chế độ tự cân bằng khi mất điều khiển).

Khi thực thi xong, tệp runner.exe thực hiện tiếp tục các bước sau:

  • Nó kiểm tra xem liệu nó có đang chạy trên bộ điều khiển dịch vụ thư mục Active Directory (AD) dựa trên việc có thư mục C:\Windows\SYSVOL hay không. Tệp sẽ tự thoát ra nếu kiểm tra được chứng minh là đúng
  • Nó sử dụng một chức năng có tên là russianDetect để kiểm tra xem nó có đang chạy trên hệ thống sử dụng một bố cục bàn phím tiếng Nga (0 x 0419) hay không. Tệp sẽ tự thoát ra nếu kiểm tra được chứng minh là đúng. Các tính năng “kiểm tra” như vậy là một tính năng phổ biến của các cuộc tấn công ransomware có chủ đích.
  • Nó liệt kê các quy trình và dịch vụ đang chạy và chấm dứt bất kỳ quy trình và dịch vụ nào có trong danh sách đen hay còn gọi là blacklists (procBlacklist, servicesBlacklist) sử dụng taskkill.exe và sc.exe.

Tệp thực thi sau đó được nhả ra, tiến hành thực thi và xóa đi một tệp có tên starter.bat với nội dung như sau để phân vùng khôi phục:

  • Mountvol E:\ \\?\Volume{<ID>}\

Sau đó, nó giãi mã và loại bỏ VirtualBox.xml – một tệp cấu hình VirtualBox, và micro.xml – một tệp cấu hình VM (xem phụ lục). Nó tạo một thư mục mang tên SDRSMLINK và đã liên kết các tệp hệ thống với thư mục đó, ví dụ:

  • cmd /C mklink /j
  • “%SYSTEMROOT%\SDRSMLINK\Program Files” “%SYSTEMROOT%\Program Files”

Nó cũng điều chỉnh phần “<SharedFolders>” trong mục micro.xml để làm hiện thị các tệp và thư mục được liên kết trong CSIDL_WINDOWS\SDRSMLINK. Sau đó, nó khởi động các thành phần trong VirtualBox:

cmd /C sc create VBoxDRV binpath= %SYSTEMROOT%\\app64\drivers\VBoxDrv.sys type= kernel start= auto error= normal displayname= PortableVBoxDRV

regsvr32 /S %SYSTEMROOT%\\app64\VBoxC.dll

cmd /C %SYSTEMROOT%\\app64\VBoxSVC.exe /reregserver

rundll32 %SYSTEMROOT%\\app64\VBoxRT.dll ,RTR3Init

 

Nó liệt kê các yếu tố và xóa nhật ký hệ thống của Windows bằng WEvtUtil.exe:

wevtutil.exe enum-logs

wevtutil.exe clear-log <LOG_NAME>

 

Symantec vẫn chưa lấy được hình ảnh của VM, nhưng điều có thể đã xảy ra đó là mã độc tống tiền trong gói dữ liệu payload có thể nằm trên đĩa của VM và mã độc này có thể tự động khởi động một khi hệ điều hành được khởi động hoàn toàn. VM có thể có quyền truy cập vào các tệp và thư mục của máy tính chủ (thông qua “SharedFolders” được thiết lập bởi runner.exe), cho phép nó mã hóa các tệp trên máy chủ.

Mã độc tống tiền Conti hay Mount Locker?

Nếu trong khi gói dữ liệu payload đang chạy trong VM vẫn chưa được xác định, thì có một vài chỉ số mạnh mẽ chỉ ra đó là mã độc tống tiền Conti. Tổ hợp tên người dùng và mật khẩu (nuuser/7HeC00l3stP@ssw0rd) được sử dụng trong những cuộc tấn công có liên quan tới những hoạt động của mã độc Conti trước đây, tung ra từ tháng 4/ 2021.

Tuy nhiên, trên cùng một máy tính mà máy ảo VM đã triển khai, Symantec cũng nhận thấy mã độc tống tiền Mount Locker cũng đang được triển khai, dấy lên câu hỏi liệu gói dữ liệu payload có thật sự là một Mount Locker hay không. Bởi vì mục đích chính của việc chạy payload trên một VM là tránh sự phát hiện của các phần mềm diệt vi rút, nên việc tin tặc triển khai gói dữ liệu trên máy tính chủ dường như khá bất hợp lý.

Có thể giải thích rằng tin tặc là một affiliate operator (tạm dịch: nhà điều hành liên kết) có quyền truy cập vào cả hai mã độc tống tiền Conti và Mount Locker. Tin tặc có thể là đã âm mưu chạy payload (có chưa hoặc mã độc tống tiền Conti hoặc Mount Locker) trên một máy ảo, nếu trong trường hợp mã độc này không hoạt động, thì thay vào đó sẽ chọn chạy mã độc Mount Locker trên máy chủ.

Làm xáo trộn hoạt động độc hại

Tin tặc sử dụng mã độc tống tiền đang nổ lực liên tục tinh chỉnh các chiến thuật của chúng để luôn đi trước các phần mềm diệt vi rút một bước. Nhiều tin tặc hiện đang dựa vào các công cụ hợp pháp và lưỡng dụng để thực hiện các cuộc tấn công vào các hệ thống mạng mục tiêu. Bản thân mã độc tống tiền trong gói dữ liệu payload thường được cho là cuộc tấn công “đáng gờm” nhất và, bằng cách ẩn nó trong một máy ảo, tin tặc hy vọng nó sẽ không bị phát hiện. Các tổ chức/ doanh nghiệp nên tăng cường cảnh giác đến việc cài đặt trái phép các máy ảo trên hệ thống mạng.

Bảo vệ/ Giảm nhẹ

Để tiếp tục theo dõi những cập nhật bảo mật mới nhất, hãy ghé thăm bản tin Symantec Protetion Bulletin

Chỉ số thỏa hiệp

  • 2eae8e1c2e59527b8b4bb454a51b65f0ea1b0b7476e1c80b385f579328752836 – Installer
  • 9f801a8d6b4801b8f120be9e5a157b0d1fc3bbf6ba11a7d202a9060e60b707d8 – runner.exe
  • e5291bae18b0fa3239503ab676cacb12f58a69eb2ec1fd3d0c0702b5a29246cb – VirtualBox
  • d89bd47fb457908e8d65f705f091372251bae3603f5ff59afb2436abfcf976d8 – Mountlocker
  • 8f247e4149742532b8a0258afd31466f968af7b5ac01fdb7960ac8c0643d2499 – Mountlocker

 

Phụ lục

VirtualBox.xml – VirtualBox configuration file

<?xml version=”1.0″ encoding=”UTF-8″?>

<!– Sun VirtualBox Global Configuration –>

<VirtualBox xmlns=”http://www.innotek.de/VirtualBox-settings” version=”1.7-windows”>

<Global>

<ExtraData>

<ExtraDataItem name=”GUI/UpdateDate” value=”1 d, 2020-05-05″/>

<ExtraDataItem name=”GUI/SUNOnlineData” value=”triesLeft=2″/>

<ExtraDataItem name=”GUI/LastWindowPostion” value=”298,109,770,550″/>

</ExtraData>

<MachineRegistry>

<MachineEntry uuid=”{ea68756b-4a61-4f99-a824-82bd26041256}” src=”micro.xml”/>

</MachineRegistry>

<MediaRegistry>

<HardDisks>

<HardDisk uuid=”{a9605e9f-31df-4dc6-827c-5b684f32bb64}” location=”micro.vdi” format=”VDI” type=”Normal”/>

</HardDisks>

<DVDImages/>

<FloppyImages/>

</MediaRegistry>

<NetserviceRegistry>

<DHCPServers>

<DHCPServer networkName=”HostInterfaceNetworking-VirtualBox Host-Only Ethernet Adapter” IPAddress=”192.168.56.100″ networkMask=”255.255.255.0″ lowerIP=”192.168.56.101″ upperIP=”192.168.56.254″ enabled=”1″/>

</DHCPServers>

</NetserviceRegistry>

<USBDeviceFilters/>

<SystemProperties defaultMachineFolder=”.” defaultHardDiskFolder=”.” defaultHardDiskFormat=”VDI” remoteDisplayAuthLibrary=”VRDPAuth” webServiceAuthLibrary=”VRDPAuth” LogHistoryCount=”3″/>

</Global>

</VirtualBox>

Micro.xml – virtual machine configuration file

<?xml version=”1.0″ encoding=”UTF-8″?>

<!– Sun VirtualBox Machine Configuration –>

<VirtualBox xmlns=”http://www.innotek.de/VirtualBox-settings” version=”1.7-windows”>

<Machine uuid=”{ea68756b-4a61-4f99-a824-82bd26041256}” name=”micro” OSType=”Windows7″ lastStateChange=”2020-05-13T03:49:05Z”>

<ExtraData>

<ExtraDataItem name=”GUI/SaveMountedAtRuntime” value=”yes”/>

<ExtraDataItem name=”GUI/ShowMiniToolBar” value=”yes”/>

<ExtraDataItem name=”GUI/MiniToolBarAlignment” value=”bottom”/>

<ExtraDataItem name=”GUI/LastWindowPostion” value=”8,31,800,643″/>

<ExtraDataItem name=”GUI/Fullscreen” value=”off”/>

<ExtraDataItem name=”GUI/Seamless” value=”off”/>

<ExtraDataItem name=”GUI/AutoresizeGuest” value=”on”/>

<ExtraDataItem name=”GUI/MiniToolBarAutoHide” value=”on”/>

</ExtraData>

<Hardware>

<CPU count=”1″>

<HardwareVirtEx enabled=”true”/>

<PAE enabled=”true”/>

</CPU>

<Memory RAMSize=”512″/>

<Boot>

<Order position=”3″ device=”HardDisk”/>

</Boot>

<Display VRAMSize=”12″ monitorCount=”1″ accelerate3D=”false”/>

<RemoteDisplay enabled=”false” port=”43399″ authType=”Null”/>

<BIOS>

<ACPI enabled=”true”/>

<IOAPIC enabled=”false”/>

<Logo fadeIn=”true” fadeOut=”true” displayTime=”0″/>

<BootMenu mode=”MessageAndMenu”/>

<TimeOffset value=”0″/>

<PXEDebug enabled=”false”/>

</BIOS>

<DVDDrive passthrough=”false”/>

<FloppyDrive enabled=”false”/>

<USBController enabled=”false” enabledEhci=”false”/>

<Network/>

<UART>

<Port slot=”0″ enabled=”false” IOBase=”0x3f8″ IRQ=”4″ hostMode=”Disconnected”/>

<Port slot=”1″ enabled=”false” IOBase=”0x3f8″ IRQ=”4″ hostMode=”Disconnected”/>

</UART>

<LPT>

<Port slot=”0″ enabled=”false” IOBase=”0x378″ IRQ=”4″/>

<Port slot=”1″ enabled=”false” IOBase=”0x378″ IRQ=”4″/>

</LPT>

<AudioAdapter controller=”AC97″ driver=”DirectSound” enabled=”false”/>

<SharedFolders/>

<Clipboard mode=”Bidirectional”/>

<Guest memoryBalloonSize=”0″ statisticsUpdateInterval=”0″/>

<GuestProperties>

<GuestProperty name=”/VirtualBox/HostInfo/GUI/LanguageID” value=”C” timestamp=”1589341300166459600″ flags=””/>

</GuestProperties>

</Hardware>

<StorageControllers>

<StorageController name=”IDE” type=”PIIX4″ PortCount=”2″>

<AttachedDevice type=”HardDisk” port=”0″ device=”0″>

<Image uuid=”{a9605e9f-31df-4dc6-827c-5b684f32bb64}”/>

</AttachedDevice>

</StorageController>

</StorageControllers>

</Machine>

</VirtualBox>

Biên dịch bởi Phương Nguyễn – Iworld.com.vn