North Korean APT37 Ruby Jumper Campaign Targets Air-Gapped Systems


North Korean APT37 (ScarCruft, Ruby Sleet) deployed Ruby Jumper malware to infect air-gapped networks. The campaign uses five new tools: RESTLEAF, SNAKEDROPPER, THUMBSBD, VIRUSTASK, and FOOTWINE. Attackers bridge internet-connected and isolated systems through USB drives. Zscaler ThreatLabz uncovered the operation targeting Arabic-speaking users.

Malicious LNK files disguised as Palestine-Israel conflict documents start infections. RESTLEAF downloads payloads. SNAKEDROPPER deploys Ruby 3.3.0 runtime as usbspeed.exe. THUMBSBD and VIRUSTASK turn removable media into C2 bridges. FOOTWINE provides keylogging, audio/video capture, and shell access.

Air-gapped systems lose isolation. USB drives carry hidden commands in $RECYCLE.BIN. Attackers exfiltrate data and execute commands across security boundaries. Cloud services like Zoho WorkDrive serve as C2 channels.

Arabic language decoy document leveraged in the Ruby Jumper campaign by APT37 (Source – Zscaler)

Attack Chain Components

Each stage serves a specific purpose in the air-gap bridge.

Malware ComponentRoleKey Features
RESTLEAFFirst-stage downloaderLNK → payload delivery
SNAKEDROPPERRuby runtime deploymentusbspeed.exe disguise, persistence
THUMBSBDUSB bridge backdoor$RECYCLE.BIN command staging
VIRUSTASKFile replacementLNK shortcuts replace legit files
FOOTWINESurveillance implantKeylogger, AV, shell access

C2 Infrastructure: Zoho WorkDrive, OneDrive, Google Drive, pCloud

APT37 Ruby Jumper campaign attack flow (Source – Zscaler)

Air-Gap Bridge Mechanics

THUMBSBD creates bidirectional USB communication:

  1. Internet-facing PC: THUMBSBD writes encrypted commands to USB $RECYCLE.BIN
  2. Air-gapped PC: THUMBSBD reads/decrypts (single-byte XOR) and executes
  3. Data exfil: Results written back to USB for next internet connection
  4. VIRUSTASK spreads: Replaces user files with malicious LNKs

Rubyupdatecheck scheduled task runs every 5 minutes for persistence.

APT37 THUMBSBD attack flow for air-gapped systems (Source – Zscaler)

Technical Indicators

Hunt these across environments:

Indicator TypeValue/Path
Scheduled Taskrubyupdatecheck (5-min interval)
Registry KeyHKCU\SOFTWARE\Microsoft\TnGtp
File Paths%PROGRAMDATA%\usbspeed.exe
USB Directories$RECYCLE.BIN, $RECYCLE.BIN.USER (hidden)
ProcessesRuby 3.3.0 runtime processes

Target Profile

Arabic-language decoys suggest Mideast focus. APT37 history includes:

  • Government entities
  • Defense organizations
  • DPRK interest targets
  • Korean Peninsula watchers

Defense Strategy

Immediate Actions:

  • Block cloud storage C2 (Zoho WorkDrive, OneDrive, etc.)
  • Disable autorun on removable media
  • Deploy USB device control policies
  • Hunt scheduled tasks and registry keys

Endpoint Hunting:

filename contains "usbspeed.exe" OR "rubyupdatecheck"
path contains "$RECYCLE.BIN" on removable drives
registry contains "TnGtp"

Physical Security:

  • Escort USB usage on air-gapped systems
  • Scan removable media before air-gap insertion
  • Deploy air-gap data diodes where possible

FAQ

How does Ruby Jumper infect air-gapped systems?

USB drives bridge commands via hidden $RECYCLE.BIN files.

What North Korean group runs this campaign?

APT37 (ScarCruft, Ruby Sleet, Velvet Chollima).

Which cloud services act as C2?

Zoho WorkDrive, OneDrive, Google Drive, pCloud.

What malware bridges the air gap?

THUMBSBD writes commands, VIRUSTASK spreads infection.

How does persistence work?

rubyupdatecheck scheduled task runs every 5 minutes.

Readers help support VPNCentral. We may get a commission if you buy through our links. Tooltip Icon

Read our disclosure page to find out how can you help VPNCentral sustain the editorial team Read more

User forum

0 messages