Malware News Fake recruiter campaign targets crypto devs

Khushal

Level 11
Thread author
Verified
Top Poster
Well-known
Apr 4, 2024
508
2,589
969

A new branch of a fake job recruitment campaign, dubbed "graphalgo," is targeting developers with a RAT.​



1770886674060.png

The ReversingLabs research team has identified a new branch of a fake recruiter campaign conducted by the North Korean hacking team Lazarus Group. The campaign, which the team named graphalgo, based on the first package included in this campaign in the npm repository, has been active since the beginning of May 2025. It is a coordinated campaign targeting both Javascript and Python developers with cryptocurrency-related fake recruiter tasks.
 
This “fake recruiter task” pattern is a high-success social-engineering technique against developers because it blends a believable pretext (take-home assignment) with code execution (running a project, installing dependencies, running tests/build scripts). If the ReversingLabs write-up is accurate for your case, “graphalgo” is essentially a developer-targeted delivery chain for a RAT via malicious packages / project content.

Why this works (high-level)
  • The attacker doesn’t need to “exploit” anything if they can convince the target to run code (install deps, run a script, open a project in an IDE that runs tasks, etc.).
  • npm/PyPI ecosystems make it easy to hide malicious behavior behind seemingly normal dependency names, install hooks, postinstall scripts, or “helper” modules.
  • Crypto/dev targets are especially valuable because of access to wallets, seed phrases, API keys, signing keys, CI secrets, cloud tokens, etc.

Practical red flags for “recruiter task” projects
  • Pressure/urgency, unusually high pay, or “we need you to run this locally quickly.”
  • A task that requires running a pre-built binary, “evaluation tool,” or obscure scripts rather than reviewing code.
  • Unexpected install/run instructions (e.g., “disable AV,” “turn off Gatekeeper/SmartScreen,” “run as admin,” “temporarily allow firewall”).
  • Suspicious dependency names, very new packages, low/no reputation, or dependencies that don’t fit the project’s purpose.
  • Install scripts that execute shell/PowerShell, fetch remote content, or run obfuscated/minified code for no clear reason.

Safer way to handle untrusted coding tasks (low friction, high payoff)
  • Do NOT run the project on your main workstation.
  • Use an isolated VM (or a dedicated sacrificial machine) with snapshots; revert after review/testing.
  • Block or tightly restrict outbound network access for the VM unless required; many RATs need C2 to become fully functional.
  • Review before executing:
    • Check package.json / lockfiles for weird dependencies and postinstall scripts.
    • For Python, inspect requirements.txt / pyproject.toml and any setup/install hooks.
    • Search the repo for suspicious calls: curl/wget, Invoke-WebRequest, powershell, base64 decode, eval/exec, child_process, os.system/subprocess, etc.
  • If you must install dependencies, prefer tools that can audit known vulns/malicious indicators (they are not perfect, but they help): npm audit, pip-audit (or equivalent), plus a reputable AV/EDR scan of the full extracted folder.

Developer account / secret hygiene (because “RAT” often means credential theft too)
  • Rotate secrets if anything untrusted was executed: Git tokens, cloud keys, CI/CD secrets, npm/PyPI tokens, SSH keys, API keys.
  • Enable phishing-resistant MFA where possible (hardware security key / passkeys).
  • Separate “dev/test” credentials from production; never keep production keys on a general-purpose dev box.
  • Use least-privilege tokens and short-lived credentials whenever possible.

If someone already ran the project
  • Disconnect the machine from the network (containment).
  • Run full scans with reputable security tools (and ideally an offline/second-opinion scan).
  • Assume credential/secret exposure until proven otherwise; rotate credentials from a known-clean device.
  • Check for persistence and tampering (new startup items, scheduled tasks/cron jobs, unusual services, new browser extensions, new SSH authorized_keys, modified shell profiles).
  • For high-confidence cleanup, a wipe/reimage is often the safest endpoint response step after suspected RAT execution.

Sources
 
I’m not a programmer nor part of the crypto world, but it’s still striking how the “recruiter” turns into a disguise for the attack. In the end, it’s not the code that falls, but trust itself. Better to check the goods before letting the merchant in. 🐍🎭🎲