CTIPilot
AI-generated · no human review · verify critical claims against the linked source. how it works →

Sophos INC-2026-002: developer job-lure intrusion (September 2026)

incident · incident:sophos-inc-2026-002-developer-job-lure-2026-09 single-source-victim

Intrusion Sophos disclosed as the victim (root-cause analysis and blog of 2026-11-04): on 2026-09-14 an employee opened a fake job-interview repository as a trusted VS Code workspace, whose settings replaced the terminal profile and ran the BeaverTail loader and the in-memory InvisibleFerret backdoor on a Mac whose endpoint agent had not reported since 2026-06-11; a third-party OAuth authorization then read two internal repositories 27 times before it was revoked. Sophos found no other host and no customer impact and makes no attribution; its threat-research unit says the technique matches NICKEL ALLEY tradecraft.

Aliases: Sophos fake coding test intrusion, INC-2026-002

Coverage
1
first 2026-11-05 → last 2026-11-05
Latest activity
2026-11-05
Sophos RCA: fake interview repo ran BeaverTail via VS Code settings; dead EDR agent, OAuth grant survived…
Peak priority
notable
1 notable
Targets
technology
sectors: technology
Sources cited
2
1 hosts

Defender insights

What each entry about Sophos INC-2026-002: developer job-lure intrusion (September 2026) tells a defender to do, newest first.

2026-11-05NOTABLESophos RCA: fake interview repo ran BeaverTail via VS Code settings; dead EDR agent, OAuth grant survived revocation

Exposure · triage · detection

Relationships explore in graph

Typed, source-stated connections from the entity registry; each edge cites the entry whose reporting establishes it.

uses

Story timeline

  1. 2026-11-05Sophos's own root-cause analysis of a developer-targeted intrusion: a fake job-interview repository's VS Code workspace settings ran BeaverTail and InvisibleFerret on a Mac whose endpoint agent had not reported since 11 June, and a third-party OAuth authorization outlived the session revocation
    active-threatsSophos RCA: fake interview repo ran BeaverTail via VS Code settings; dead EDR agent, OAuth grant survived revocation
ATT&CK techniques (11 across 6 tactics)

11 techniques observed across 1 entry about this entity, derived from entry metadata and body evidence, never asserted without a published entry behind it · pinned to MITRE ATT&CK v20.0 · compare on the matrix · Navigator layer (JSON)

  • ExecutionCommand and Scripting Interpreter: Unix Shell · Command and Scripting Interpreter: JavaScript · User Execution
  • Credential AccessUnsecured Credentials: Private Keys · Credentials from Password Stores: Keychain · Credentials from Password Stores: Credentials from Web Browsers
  • Lateral MovementUse Alternate Authentication Material: Application Access Token
  • CollectionData from Information Repositories: Code Repositories
  • Command and ControlApplication Layer Protocol: Web Protocols · Ingress Tool Transfer
  • ExfiltrationExfiltration Over C2 Channel

Execution TA0002

T1059.004Command and Scripting Interpreter: Unix Shell×1

Adversaries may abuse Unix shell commands and scripts for execution. Unix shells are the primary command prompt on Linux, macOS, and ESXi systems, though many variations of the Unix shell exist (e.g. sh, ash, bash, zsh, etc.) depending on the specific OS or distribution. Unix shells can control every aspect of a system, with certain commands requiring elevated privileges.

Evidence: 2026-11-05/sophos-rca-fake-interview-repo-vscode-beavertail-edr-gap · ATT&CK page ↗

T1059.007Command and Scripting Interpreter: JavaScript×1

Adversaries may abuse various implementations of JavaScript for execution. JavaScript (JS) is a platform-independent scripting language (compiled just-in-time at runtime) commonly associated with scripts in webpages, though JS can be executed in runtime environments outside the browser.

Evidence: 2026-11-05/sophos-rca-fake-interview-repo-vscode-beavertail-edr-gap · ATT&CK page ↗

T1204User Execution×1

An adversary may rely upon specific actions by a user in order to gain execution. Users may be subjected to social engineering to get them to execute malicious code by, for example, opening a malicious document file or link. These user actions will typically be observed as follow-on behavior from forms of Phishing.

Evidence: 2026-11-05/sophos-rca-fake-interview-repo-vscode-beavertail-edr-gap · ATT&CK page ↗

Credential Access TA0006

T1552.004Unsecured Credentials: Private Keys×1

Adversaries may search for private key certificate files on compromised systems for insecurely stored credentials. Private cryptographic keys and certificates are used for authentication, encryption/decryption, and digital signatures. Common key and certificate file extensions include: .key, .pgp, .gpg, .ppk., .p12, .pem, .pfx, .cer, .p7b, .asc.

Evidence: 2026-11-05/sophos-rca-fake-interview-repo-vscode-beavertail-edr-gap · ATT&CK page ↗

T1555.001Credentials from Password Stores: Keychain×1

Adversaries may acquire credentials from Keychain. Keychain (or Keychain Services) is the macOS credential management system that stores account names, passwords, private keys, certificates, sensitive application data, payment data, and secure notes. There are three types of Keychains: Login Keychain, System Keychain, and Local Items (iCloud) Keychain. The default Keychain is the Login Keychain, which stores user passwords and information. The System Keychain stores items accessed by the operating system, such as items shared among users on a host. The Local Items (iCloud) Keychain is used for items synced with Apple’s iCloud service.

Evidence: 2026-11-05/sophos-rca-fake-interview-repo-vscode-beavertail-edr-gap · ATT&CK page ↗

T1555.003Credentials from Password Stores: Credentials from Web Browsers×1

Adversaries may acquire credentials from web browsers by reading files specific to the target browser. Web browsers commonly save credentials such as website usernames and passwords so that they do not need to be entered manually in the future. Web browsers typically store the credentials in an encrypted format within a credential store; however, methods exist to extract plaintext credentials from web browsers.

Evidence: 2026-11-05/sophos-rca-fake-interview-repo-vscode-beavertail-edr-gap · ATT&CK page ↗

Lateral Movement TA0008

T1550.001Use Alternate Authentication Material: Application Access Token×1

Adversaries may use stolen application access tokens to bypass the typical authentication process and access restricted accounts, information, or services on remote systems. These tokens are typically stolen from users or services and used in lieu of login credentials.

Evidence: 2026-11-05/sophos-rca-fake-interview-repo-vscode-beavertail-edr-gap · ATT&CK page ↗

Collection TA0009

T1213.003Data from Information Repositories: Code Repositories×1

Adversaries may leverage code repositories to collect valuable information. Code repositories are tools/services that store source code and automate software builds. They may be hosted internally or privately on third party sites such as Github, GitLab, SourceForge, and BitBucket. Users typically interact with code repositories through a web application or command-line utilities such as git.

Evidence: 2026-11-05/sophos-rca-fake-interview-repo-vscode-beavertail-edr-gap · ATT&CK page ↗

Command and Control TA0011

T1071.001Application Layer Protocol: Web Protocols×1

Adversaries may communicate using application layer protocols associated with web traffic to avoid detection/network filtering by blending in with existing traffic. Commands to the remote system, and often the results of those commands, will be embedded within the protocol traffic between the client and server.

Evidence: 2026-11-05/sophos-rca-fake-interview-repo-vscode-beavertail-edr-gap · ATT&CK page ↗

T1105Ingress Tool Transfer×1

Adversaries may transfer tools or other files from an external system into a compromised environment. Tools or files may be copied from an external adversary-controlled system to the victim network through the command and control channel or through alternate protocols such as ftp. Once present, adversaries may also transfer/spread tools between victim devices within a compromised environment (i.e. Lateral Tool Transfer).

Evidence: 2026-11-05/sophos-rca-fake-interview-repo-vscode-beavertail-edr-gap · ATT&CK page ↗

Exfiltration TA0010

T1041Exfiltration Over C2 Channel×1

Adversaries may steal data by exfiltrating it over an existing command and control channel. Stolen data is encoded into the normal communications channel using the same protocol as command and control communications.

Evidence: 2026-11-05/sophos-rca-fake-interview-repo-vscode-beavertail-edr-gap · ATT&CK page ↗

Entries about Sophos INC-2026-002: developer job-lure intrusion (September 2026) (1)

2026-11-05 · view entry permalink →

NOTABLENATOB2

Sophos's own root-cause analysis of a developer-targeted intrusion: a fake job-interview repository's VS Code workspace settings ran BeaverTail and InvisibleFerret on a Mac whose endpoint agent had not reported since 11 June, and a third-party OAuth authorization outlived the session revocation

On 2026-09-14 a Sophos employee cloned a public repository presented as a job-interview coding assignment and opened it as a workspace in VS Code; a weaponized workspace settings file replaced the editor's integrated terminal profile with a command that downloads and runs a remote script in a loop, delivery relied on the user opening the workspace as trusted, and no exploit or vulnerability was involved (Sophos RCA, 2026-11-04). Opening a terminal was enough: a shell script fetched a JavaScript component and a package manifest into a hidden directory in the user profile, a package-manager install ran, the JavaScript ran under Node.js and the final-stage backdoor lived in memory only, with no persistence found (Sophos RCA, 2026-11-04). SophosLabs identified the BeaverTail loader followed by the InvisibleFerret backdoor, able to steal browser-stored credentials, keychain data and SSH keys, and the JavaScript stage sent the process environment to an attacker web endpoint on a cloud application-hosting service (Sophos RCA, 2026-11-04).

Two gaps lengthened the exposure. The Sophos Endpoint agent was installed but its core services were not running, so it enforced nothing and reported nothing; the device was last seen in Sophos Central on 2026-06-11, the cause is still under investigation, and SophosLabs says a working agent would have blocked the chain at the first dropped file (Sophos RCA, 2026-11-04). A third-party application authorization on the employee's source-code platform account survived the session revocation and password reset of 2026-09-15 and made 27 read requests against two internal repositories from an address new to the user until it was revoked on 2026-09-16; Sophos found no other host, no cloud activity and no customer impact (Sophos RCA, 2026-11-04). The analysis names no group; Sophos CTU says the technique matches the tradecraft of NICKEL ALLEY, which it describes as running the Contagious Interview campaign of fake companies, fake recruiters and malicious code repositories (Sophos blog, 2026-11-04).

Triage: a terminal profile normally launches a shell executable; this one launched a command that downloads and runs a remote script in a loop; it came from the settings of a freshly cloned repository (Sophos RCA, 2026-11-04).

The repository contained a weaponized VS Code workspace settings file that replaced the editor’s integrated terminal profile. When a terminal opened in the workspace, the modified profile silently downloaded and ran a multi-stage payload.

The Sophos Endpoint agent was installed on the employee’s device but was not functional.

Sophos (root-cause analysis INC-2026-002) 2026-11-04

Builds on: Binance's report: fake recruiter, trojaned pyenv, AI-tool pivot and a deployment token reached…

incident05 Nov 03:57Zsingle-source · victim disclosureOpen finding →

Co-occurring entities

Derived: referenced by the same focused operational entries (weekly summaries and report roundups don't count); ×N counts the shared entries.

Where this entity is cited

  • Threats1

Source distribution

  • sophos.com2 (100%)