Step 1: Initial Access and Token Acquisition
While the precise entry point for this specific breach has not been disclosed, typical access vectors in DevOps breaches involve the compromise of developer identities. Threat actors frequently exploit weak, unrotated passwords, or harvest active session tokens from the endpoints of software engineers using infostealer malware. In other instances, developers inadvertently expose Personal Access Tokens (PATs) in public repositories, third-party collaboration tools, or testing environments. Once an attacker obtains a valid PAT or a set of active credentials, they can authenticate directly to Azure DevOps endpoints without triggering typical multi-factor authentication prompts, especially if the organization does not enforce phishing-resistant MFA or conditional access policies.
Step 2: Access and Cloning of Private Repositories
Once authenticated as a legitimate developer or service principal, the threat actor executes Git clone commands to copy private repositories to external, attacker-controlled servers. Because standard Git operations are a routine part of daily development workflows, a single developer account cloning multiple repositories does not always trigger immediate alerts. In this incident, the threat actor targeted the 121123_AtriasTalentAcademy repository, pulling down not only the source code but also any configuration files and secrets embedded directly in the development history.
Step 3: Secrets Harvesting and Impact
After cloning the repositories, the attacker conducts offline analysis to extract hardcoded credentials. It is a common, though dangerous, practice for development teams to store API keys, database passwords, and SSH keys in local configuration files or git history for ease of testing. By retrieving these secrets, the attacker gains persistent, secondary access pathways. In this case, the exposure of Azure Storage access keys and RSA/SSH keys represents a critical escalation vector. Armed with these credentials, the actor can access sensitive cloud storage buckets, establish persistent SSH backdoors on internal servers, or potentially move laterally into other parts of the corporate network.
MITRE ATT&CK Mapping
Security teams can map the threat behaviors observed in this incident to the MITRE ATT&CK framework to establish robust defensive coverage:
T1078 - Valid Accounts: The threat actor leverages compromised developer credentials or Personal Access Tokens to authenticate directly to the Azure DevOps environment.
T1552.001 - Credentials in Files: The attacker harvests RSA keys, SSH keys, and cloud storage secrets embedded directly within repository configuration files and code history.
T1530 - Data from Cloud Storage Object: The threat actor gains unauthorized access to private cloud resources, downloading proprietary intellectual property and code files.
T1048 - Exfiltration Over Alternative Protocol: Proprietary repository contents are transferred out of the network via standard Git over HTTPS protocols, masquerading as routine development activities.
T1587.002 - Develop Capabilities (Code Repositories): Attackers target development environments to gather intelligence and find potential supply-chain vulnerabilities that can be exploited in downstream target environments.