Categories
Third-Party Supply Chain Attacks: Securing Identity & MSPs
Published on September 8, 2026 | Last updated on September 8, 2026 | 6 min read
Inherited Trust: Deconstructing Third-Party Vendors, MSPs & Identity Supply Chain Attacks
The most devastating intrusions today arrive through authenticated, pre-authorized API tunnels, MSP management consoles, and high-privilege SaaS integrations that organizations voluntarily welcomed inside.
THE BOTTOM LINE: SUPPLY CHAIN ATTACK SERIES
- Parts 1–4 covered core supply chain trust, npm poisoning, CI/CD build engines, and source code tampering.
- Part 5 focuses on the Extended Perimeter: Third-Party Vendors, MSP Delegated Access, Non-Human Identity (NHI) Baselining, and Crown-Jewel Asset Deviation Hunting.
Executive Summary
Modern enterprises rely heavily on third-party SaaS platforms, MSPs, OAuth integrations, and programmatic API keys. Every integration silently extends the enterprise boundary. When an external vendor is compromised, adversaries inherit pre-approved access into customer environments without needing exploits or triggering MFA.
To counter this, threat hunters cannot rely on isolated signature rules. Effective defense requires continuous behavioral baselining of Non-Human Identities (NHIs) across identity, cloud, and data platforms, coupled with proactive anomaly hunting around high-impact Crown Jewels.
The Non-Human Identity (NHI) Dilemma
In cloud environments, Non-Human Identities outnumber human users by 45 to 1. NHIs present five critical structural vulnerabilities:
- No Interactive MFA: Service principals and API keys authenticate programmatically without interactive challenges.
- Excessive & Static Scopes: Integrations frequently retain broad tenant-wide permissions (e.g., Directory.ReadWrite.All) that are rarely pruned.
- Infinite Token Lifespans: Long-lived client secrets and unrotated OAuth refresh tokens persist indefinitely.
- Cross-Tenant Blindness: MSP Delegated Admin Privileges (DAP) mask external actions as native tenant operations.
- Absence of Behavioral Baselines: Static allowlists treat all valid API calls equally, allowing malicious queries using valid tokens to blend into background traffic.
Cross-Platform NHI Baselining Framework

Hunting across identity supply chains requires establishing a 30-to-90 day behavioral profile across four core pillars: (1) Network & Infrastructure Provenance (ASNs, CIDRs, VPCs, TLS fingerprints), (2) API Footprint & Method Diversity (read vs. administrative calls), (3) Velocity & Volumetric Cadence (query rates, burst dumps), and (4) Resource Scope & Blast Radius (databases, secrets vaults, mailboxes accessed).
|
Platform Tier |
NHI Entities |
Native Telemetry |
Baseline & Deviation Trigger |
|
Identity / IdP (Entra, Okta) |
Service Principals, OAuth Apps, API Tokens |
ServicePrincipalSignInLogs, AuditLogs, Okta SystemLog |
Baseline: Historical ASN/IP & daily API volume. |
|
Cloud IAM (AWS, Azure, GCP) |
IAM Roles, Service Accounts, Workload Identity |
AWS CloudTrail, GCP Audit Logs, Azure Activity |
Baseline: Expected source VPC & regular API set. |
|
CI/CD (GitHub, GitLab) |
Runner Tokens, Deploy Keys, Machine Users |
GitHub Audit Log, Pipeline Execution Logs |
Baseline: Runner IP CIDR & repo scope. |
|
Data Stores (Snowflake, S3) |
ETL Service Users, Integration DB Roles |
Snowflake ACCESS_HISTORY, S3 Server Access |
Baseline: Queried schemas & average byte volume. |
Five Attack Vectors in Third-Party Supply Chains
|
Vector |
Exploitation Mechanism |
Key Telemetry Source |
|
1. MSP / DAP Hijacking |
Compromising MSP platforms or technician credentials to push scripts to downstream customer tenants. |
Cloud IAM & Tenant Audit Logs (elevated role assignments) |
|
2. Illicit OAuth Apps |
Tricking admins/users into granting high-privilege scopes (Mail.ReadWrite, User.ReadWrite.All) to a rogue multi-tenant app. |
IdP Audit Logs (ConsentToApplication, Add delegated grant) |
|
3. Service Principal Theft |
Stealing hardcoded client secrets or bearer tokens to query customer APIs directly from foreign infrastructure. |
API Gateway Logs (caller identity & IP anomaly) |
|
4. Support HAR Scraping |
Breaching vendor support portals to harvest unexpired session cookies and tokens from customer-uploaded HAR archives. |
IdP Sign-in Logs (session token reuse from new ASN) |
|
5. SAML Token Forgery |
Stealing IdP token-signing certificates to mint arbitrary SAML assertions and impersonate any user (Golden SAML). |
Security Token Service Logs (signing key ID & issuer check) |
Deconstructing Landmark Third-Party Campaigns
- Okta Support Case Breach (2023): Attackers used stolen service account credentials to access Okta support cases, downloading customer HAR files containing unexpired session tokens to hijack admin sessions without MFA.
- Midnight Blizzard (2023–2024): Compromised a test tenant via password spraying, registered rogue OAuth apps with Mail.ReadWrite permissions, and silently harvested executive emails via Microsoft Graph API.
- Kaseya VSA / REvil (2021): Exploited zero-days in MSP management servers, weaponizing trusted console-agent tunnels to distribute ransomware to 1,500+ customer businesses simultaneously.
- CircleCI Breach (2023): Malware on an engineer's workstation compromised SSO session tokens, giving attackers access to production databases containing customer AWS keys, GitHub tokens, and secrets.
Hands-On Lab Simulations & Native Telemetry Evidence
Lab Simulation 01: Illicit Multi-Tenant OAuth App Registration & High-Privilege Consent Grant
Vector 2 | T1098.005 / T1199: Adversary registers a multi-tenant app and tricks an administrator into granting tenant-wide Mail.ReadWrite and Directory.ReadWrite.All permissions.
Listing 1: Rogue OAuth App Registration Manifest
// Malicious Application Manifest Snippet (manifest.json)
{
"id": "e2f4a1c0-8d5b-4c9e-bf33-999a0e123456",
"appDisplayName": "Enterprise Cloud Document Sync Pro",
"signInAudience": "AzureADMultipleOrgs",
"requiredResourceAccess": [{
"resourceAppId": "00000003-0000-0000-c000-000000000000",
"resourceAccess": [
{ "id": "e2a3a72e-5f90-4ffe-a74d-0808064a3814", "type": "Role", "comment": "Mail.ReadWrite (Application)" },
{ "id": "19dbc75e-c2e2-444c-a770-ec69d8559fc7", "type": "Role", "comment": "Directory.ReadWrite.All (Application)" }
]
}]
}
Captured Native Audit Log Schema Evidence (Entra ID AuditLogs):
|
Native Log Field |
Captured Event Value |
Security Significance |
|
ActivityDisplayName |
Consent to application |
HIGH FIDELITY: Administrator consented to an external application registration. |
|
Actor.UserPrincipalName |
admin.identity@enterprise-corp.com |
Identifies the targeted administrator account authorizing the grant. |
|
TargetResources[0].DisplayName |
Enterprise Cloud Document Sync Pro |
Rogue application display name. |
|
TargetResources[0].ModifiedProperties |
ConsentType: AllPrincipals |
CRITICAL: High-risk permission scopes granted tenant-wide without user boundary. |
|
InitiatedBy.App.AppId |
e2f4a1c0-8d5b-4c9e-bf33-999a0e123456 |
Unique application ID linked to the attacker's external tenant. |
|
IPAddress |
198.51.100.203 |
Source IP of the administrator when the consent was granted. |
Lab Simulation 02: Cross-Tenant API & Service Principal Credential Abuse
Vector 3 | T1078.004 / T1552.004: Adversary uses stolen vendor client credentials to authenticate non-interactively and exfiltrate executive email messages via Microsoft Graph API.
Listing 2: Cross-Tenant Authentication & API Exfiltration
# 1. Authenticate with Stolen Vendor Client ID & Secret
curl -X POST https://login.microsoftonline.com/{target-tenant-id}/oauth2/v2.0/token \
-d
"client_id=e2f4a1c0-8d5b-4c9e-bf33-999a0e123456&client_secret=xR7~9K_stolen_secret&scope=https://graph.microsoft.com/.default&grant_type=client_credentials"
# 2. Query Executive Mailbox via Graph API from Attacker Server
curl -X GET "https://graph.microsoft.com/v1.0/users/ceo@enterprise-corp.com/messages" \
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJ..."
Captured Native Cloud Sign-In & Service Principal Telemetry:
|
Telemetry Source |
Native Schema Field |
Captured Value |
Security Significance |
|
ServicePrincipalSignInLogs |
servicePrincipalName |
Vendor-SaaS-Connector |
Service principal used to authenticate non-interactively. |
|
ServicePrincipalSignInLogs |
ipAddress |
185.220.101.5 |
HIGH ANOMALY: Authentication originates from Tor/VPN exit node instead of vendor CIDR. |
|
ServicePrincipalSignInLogs |
authenticationProcessingDetails |
AppOnly |
Confirms non-human identity authentication using client credentials. |
|
Microsoft Graph Activity API |
uri |
/v1.0/users/ceo@enterprise-corp.com/messages |
CRITICAL: Service principal accessing targeted executive inbox contents. |
|
AuditLogs |
ActivityDisplayName |
Add service principal credentials |
Attacker attempting to establish secondary persistence by adding an extra secret key. |
Why Traditional Controls Fall Short
- CASBs: Monitor user web browsing, blind to external direct cloud API calls.
- EDR: Protects physical endpoints, blind to cloud-to-cloud token exchanges.
- MFA: Protects interactive logins, bypassed by programmatic service credentials.
- Static Allowlisting: Fails because SaaS vendors share multi-tenant, dynamic cloud IP blocks.
Threat Hunter's Spotlight: Advanced 2-Tier Hunting Methodology
Effective threat hunting combines Tier 1 Multi-Platform Behavioral Drift with Tier 2 Crown Jewel Asset Deviations:
[TIER 1: MULTI-PLATFORM BEHAVIORAL BASELINE DEVIATIONS]
HUNT LEAD 1: NHI Infrastructure & Network Provenance Drift (T1078.004 / T1098)
- Telemetry : Entra ID ServicePrincipalSignInLogs, Okta SystemLog, AWS CloudTrail
- Baseline : 30-day historical ASN, source IP CIDR, and User-Agent per machine identity.
- Logic : Flag non-interactive authentications where the source ASN has never previously associated with the AppId, or maps to VPN/Tor exit nodes and foreign hosting.
HUNT LEAD 2: First-Seen & Rare Administrative API Invocations (T1087 / T1069)
- Telemetry : Microsoft Graph Activity Logs, AWS CloudTrail, GCP Audit Logs
- Baseline : 90-day distinct method invocation profile per Service Account / Role.
- Logic : Identify NHI invoking sensitive administrative API with a prior occurrence: Azure: Directory.ReadWrite.All, RoleManagement.ReadWrite, Mail.ReadWrite. AWS: iam:CreateAccessKey, iam:AttachUserPolicy, sts:AssumeRole, kms:Decrypt.
HUNT LEAD 3: Illicit Multi-Tenant OAuth Consent Grants (T1098.005 / T1550)
- Telemetry : Identity Provider Audit Logs (Entra ID, Google Workspace, Okta)
- Baseline : Authorized third-party OAuth app inventory and verified publisher domains.
- Logic : Isolate grants with high-risk permissions (Mail.ReadWrite, Directory.ReadWrite.All) where the publisher is unverified, newly created (<30 days), or external multi-tenant.
[TIER 2: CROWN JEWEL / HIGH-IMPACT ASSET DEVIATIONS]
HUNT LEAD 4: Tier-0 Secrets Store & Key Vault Access Deviations (T1552 / T1555)
- Telemetry : AWS Secrets Manager, HashiCorp Vault, Azure Key Vault, GCP KMS
- Target : Master API Keys, Database Connection Strings, Signing Certificates.
- Logic : Baseline authorized identities permitted to read secrets (GetSecretValue, Decrypt). Flag non-core service principals accessing master vaults or sequential multi-secret paths.
HUNT LEAD 5: Volumetric Data Extraction from Cloud Warehouses (T1530 / T1567)
- Telemetry : Snowflake ACCESS_HISTORY, BigQuery, AWS S3 Server Access Logs
- Target : Production Data Lakes, Customer PII, Billing Repositories.
- Logic : Profile normal daily read volume and query cadence over 30 days. Hunt for statistical anomalies (>3 sigma in bytes scanned) and bulk export commands ('COPY INTO', 'UNLOAD') targeting sensitive schemas from non-corporate IPs.
HUNT LEAD 6: Identity Root & Delegated Admin Out-of-Bounds Tampering (T1078 / T1484)
- Telemetry : Cloud SIEM, Tenant Admin Audit Logs, Federation STS Logs
- Target : Conditional Access Policies, Global Admin Role, Service Principal Credentials.
- Logic : Filter for DelegatedAdmin or App-Only Service Principals modifying Conditional Access, adding secondary credentials to apps, or creating Global Admins outside change windows.
Strategic Mitigations & CISO Recommendations
- Enforce Admin Consent: Disable user OAuth consent; require security review and verified publisher check.
- Operationalize NHI Baselines: Deploy continuous behavioral monitoring for anomalous ASNs, rare APIs, and velocity spikes.
- Bound Crown Jewel Access: Enforce strict resource-scoped, time-bound JIT policies on secrets vaults and data lakes.
- Transition to GDAP: Replace permanent DAP with Granular Delegated Admin Privileges with least-privilege scoping.
- Continuous Token Protection: Enable Continuous Access Evaluation (CAE) to instantly revoke tokens upon network shifts.
Stop Third-Party Identity Attacks Before They Reach Your Crown Jewels
Don't let inherited trust become your biggest vulnerability. Eliminate NHI and cross-tenant API blind spots at machine speed with Netenrich.
Conclusion: Securing the Extended Boundary
Identity is the perimeter, and third-party integrations are its most vulnerable gates. Trust cannot be an operational assumption—it must be continuously baselined, tightly bounded around Crown Jewels, and rigorously audited.
NEXT IN THIS SERIES: DISTRIBUTION & UPDATE INFRASTRUCTURE
- How attackers compromise update servers, poison CDN caches, and hijack automated software update channels (SolarWinds, 3CX, ASUS Shadowhammer).
- Hunting techniques for unsigned update binaries, anomalous CDN egress, and code-signing certificate abuse.
About the Author
Netenrich Threat Research
Asritha Narina is a Senior Threat Analyst at Netenrich. She specializes in tracking emerging cyber threats, analyzing adversary behaviors, and translating complex technical data into actionable defense intelligence. She is a recognized contributor to the MITRE ATT&CK framework, specifically noted for her threat research on the Iranian threat actor Agrius.
She also explores Intelligent AI agents that can be leveraged to proactively detect, investigate, and mitigate global cyber threats at scale.
Related Articles
Subscribe for updates
The best source of information for Agentic SOC and Cyber Risk Operations best practices. Join us.


