
Microsoft said it has detected a new variant of XCSSET, a powerful macOS malware family that has targeted developers and users since at least 2020.
The variant, which Microsoft reported Monday, marked the first publicly known update to the malware since 2022. The malware first came to light in 2020, when security firm Trend Micro said it had targeted app developers after spreading through a publicly available project the attacker wrote for Xcode, a developer tool Apple makes freely available. The malware gained immediate attention because it exploited what, at the time, were two zero-day vulnerabilities, a testament to the resourcefulness of the entity behind the attacks.
In 2021, XCSSET surfaced again, first when it was used to backdoor developers’ devices and a few months later when researchers found it exploiting what at the time was a new zero-day.
New enhanced features
Microsoft said it has detected the new variant in limited attacks so far. Improvements in it include:- Two previously unseen persistence methods for ensuring compromised devices remain permanently infected. One new method creates a file named ~/.zshrc_aliases that contains the malicious payload. The new variant then appends a command in the ~/.zshrc file to ensure that the created file is launched every time a new shell session is initiated. The other new method creates a fake Launchpad app and replaces the legitimate Launchpad path entry with the path for the new one. From then on, the malicious payload is started each time Launchpad is started from the macOS dock.
- Enhanced infection methods. One method allows the attacker to choose options, including TARGET, RULE, or FORCED_STRATEGY, for when the XCSSET will trigger its payload. The other method “involves placing the payload inside the TARGET_DEVICE_FAMILY key under build settings and running it at a latter phase,” Microsoft said.
- Enhanced obfuscation methods, mainly in the form of “a significantly more randomized approach for generating payloads to infect Xcode projects.” The increased randomization makes spotting the malicious code much harder. The new XCSSET variant also Base64-encodes the module names it creates, again making detection of them more difficult.