What it does. Runs a hypothesis-driven threat hunt for supply-chain compromise (T1195) by querying SIEM/EDR logs for trojanized software updates, compromised dependencies, unauthorized code modifications, and tampered build artifacts. Use when hunting after threat intel flags a compromised vendor/dependency, scoping a build-pipeline compromise, or reviewing update/build integrity. Part of mukul975/Anthropic-Cybersecurity-Skills (817 security skills) (mukul975/Anthropic-Cybersecurity-Skills).
Install
npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill hunting-for-supply-chain-compromise, or copy the skill folder into ~/.claude/skills/hunting-for-supply-chain-compromise/.
- Raw file:
curl -sL https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/HEAD/skills/hunting-for-supply-chain-compromise/SKILL.md
SKILL.md (verbatim)
name: hunting-for-supply-chain-compromise
description: Runs a hypothesis-driven threat hunt for supply-chain compromise (T1195) by querying SIEM/EDR logs for trojanized software updates, compromised dependencies, unauthorized code modifications, and tampered build artifacts. Use when hunting after threat intel flags a compromised vendor/dependency, scoping a build-pipeline compromise, or reviewing update/build integrity.
domain: cybersecurity
subdomain: threat-hunting
tags:
- threat-hunting
- mitre-attack
- supply-chain
- initial-access
- t1195
- proactive-detection
version: '1.0'
author: mahipal
license: Apache-2.0
d3fend_techniques:
- Platform Hardening
- Restore Object
- Restore Software
- Software Update
- Asset Inventory
nist_csf:
- DE.CM-01
- DE.AE-02
- DE.AE-07
- ID.RA-05
mitre_attack:
- T1046
- T1057
- T1082
- T1083
- T1195
Hunting For Supply Chain Compromise
When to Use
- When proactively hunting for indicators of hunting for supply chain compromise in the environment
- After threat intelligence indicates active campaigns using these techniques
- During incident response to scope compromise related to these techniques
- When EDR or SIEM alerts trigger on related indicators
- During periodic security assessments and purple team exercises
Prerequisites
- EDR platform with process and network telemetry (CrowdStrike, MDE, SentinelOne)
- SIEM with relevant log data ingested (Splunk, Elastic, Sentinel)
- Sysmon deployed with comprehensive configuration
- Windows Security Event Log forwarding enabled
- Threat intelligence feeds for IOC correlation
Workflow
- Formulate Hypothesis: Define a testable hypothesis based on threat intelligence or ATT&CK gap analysis.
- Identify Data Sources: Determine which logs and telemetry are needed to validate or refute the hypothesis.
- Execute Queries: Run detection queries against SIEM and EDR platforms to collect relevant events.
- Analyze Results: Examine query results for anomalies, correlating across multiple data sources.
- Validate Findings: Distinguish true positives from false positives through contextual analysis.
- Correlate Activity: Link findings to broader attack chains and threat actor TTPs.
- Document and Report: Record findings, update detection rules, and recommend response actions.
Key Concepts
| Concept |
Description |
| T1195.001 |
Compromise Software Dependencies |
| T1195.002 |
Compromise Software Supply Chain |
| T1199 |
Trusted Relationship |
| Tool |
Purpose |
| CrowdStrike Falcon |
EDR telemetry and threat detection |
| Microsoft Defender for Endpoint |
Advanced hunting with KQL |
| Splunk Enterprise |
SIEM log analysis with SPL queries |
| Elastic Security |
Detection rules and investigation timeline |
| Sysmon |
Detailed Windows event monitoring |
| Velociraptor |
Endpoint artifact collection and hunting |
| Sigma Rules |
Cross-platform detection rule format |
Common Scenarios
- Scenario 1: SolarWinds-style update mechanism compromise
- Scenario 2: Compromised npm/PyPI package with backdoor
- Scenario 3: Tampered build server deploying malicious artifacts
- Scenario 4: Vendor VPN software update delivering malware
Hunt ID: TH-HUNTIN-[DATE]-[SEQ]
Technique: T1195.001
Host: [Hostname]
User: [Account context]
Evidence: [Log entries, process trees, network data]
Risk Level: [Critical/High/Medium/Low]
Confidence: [High/Medium/Low]
Recommended Action: [Containment, investigation, monitoring]
Other files in this skill
assets/template.md (verbatim)
Hunting For Supply Chain Compromise - Hunt Template
| Field |
Value |
| Hunt ID |
TH-HUNTIN-YYYY-MM-DD-NNN |
| Analyst |
|
| Date Started |
|
| Date Completed |
|
| Status |
[ ] In Progress / [ ] Complete |
| Priority |
[ ] Critical / [ ] High / [ ] Medium / [ ] Low |
Hypothesis
Statement: [Formulate a clear, testable hypothesis]
Basis: [ ] Threat Intel / [ ] ATT&CK Gap / [ ] Anomaly / [ ] Incident Follow-up
Target Techniques
Data Sources
Queries Executed
Query 1: [Description]
[Query text]
Results: [Count] events | Execution Time: [Duration]
Query 2: [Description]
[Query text]
Results: [Count] events | Execution Time: [Duration]
Findings
| # |
Timestamp |
Host |
User |
Technique |
Evidence Summary |
Risk |
Verdict |
| 1 |
|
|
|
|
|
|
TP / FP / BTP |
| 2 |
|
|
|
|
|
|
TP / FP / BTP |
| 3 |
|
|
|
|
|
|
TP / FP / BTP |
IOCs Discovered
Network IOCs
| Type |
Value |
Context |
Confidence |
| IP |
|
|
|
| Domain |
|
|
|
| URL |
|
|
|
Host IOCs
| Type |
Value |
Context |
Confidence |
| SHA256 |
|
|
|
| Filename |
|
|
|
| Registry Key |
|
|
|
| Scheduled Task |
|
|
|
Hunt Results Summary
| Metric |
Count |
| Total Events Analyzed |
|
| Anomalies Identified |
|
| True Positives |
|
| False Positives |
|
| Benign True Positives |
|
| New IOCs Discovered |
|
| Detection Rules Created |
|
| Detection Rules Updated |
|
Hypothesis Outcome
Recommendations
- Immediate Actions: [Containment, remediation steps]
- Detection Improvements: [New rules, tuning recommendations]
- Visibility Gaps: [Missing data sources, coverage needs]
- Security Hardening: [Configuration changes, policy updates]
- Follow-up Hunts: [Related hypotheses to investigate]
Analyst Notes
[Free-form notes, observations, and lessons learned]
references/api-reference.md (verbatim)
API Reference: Hunting for Supply Chain Compromise
NPM Lock File Analysis
import json
data = json.load(open("package-lock.json"))
packages = data.get("packages", {})
for name, info in packages.items():
resolved = info.get("resolved", "")
has_script = info.get("hasInstallScript", False)
pip-audit
pip-audit --format=json --output=audit.json
pip-audit --require=requirements.txt --desc
# Programmatic usage
from pip_audit._cli import audit
# Or parse JSON output
import subprocess, json
result = subprocess.run(["pip-audit", "--format=json"], capture_output=True, text=True)
vulns = json.loads(result.stdout)
Hash Verification
import hashlib
sha = hashlib.sha256()
with open("binary.exe", "rb") as f:
for chunk in iter(lambda: f.read(8192), b""):
sha.update(chunk)
print(sha.hexdigest())
Dependency Confusion Checks
| Registry |
Check Command |
Risk |
| npm |
npm view <pkg> name |
Package exists publicly |
| PyPI |
pip index versions <pkg> |
Package exists publicly |
| Maven |
mvn dependency:resolve |
Artifact on Maven Central |
Splunk SPL - Build Anomaly Detection
index=cicd sourcetype=build_logs
| where match(_raw, "(?i)(curl.*\|.*sh|wget.*chmod|--registry\s+http)")
| table _time build_id job_name _raw
Supply Chain Indicators
| Indicator |
Severity |
Category |
| Known compromised package |
CRITICAL |
Package takeover |
| Non-standard registry URL |
HIGH |
Dependency confusion |
| Install scripts in deps |
MEDIUM |
Post-install hooks |
| Git URL dependencies |
MEDIUM |
Unpinned source |
| Pipe to shell in CI |
CRITICAL |
Remote code execution |
References
references/standards.md (verbatim)
Standards and References - Hunting For Supply Chain Compromise
MITRE ATT&CK Mappings
| Technique |
Name |
Description |
| T1195.001 |
Compromise Software Dependencies |
See attack.mitre.org/techniques/T1195/001 |
| T1195.002 |
Compromise Software Supply Chain |
See attack.mitre.org/techniques/T1195/002 |
| T1199 |
Trusted Relationship |
See attack.mitre.org/techniques/T1199 |
Detection Data Sources
| Source |
Event ID |
Purpose |
| Sysmon |
1 |
Process creation with command line |
| Sysmon |
3 |
Network connection initiated |
| Sysmon |
7 |
Image loaded (DLL) |
| Sysmon |
10 |
Process access (LSASS) |
| Sysmon |
11 |
File creation |
| Sysmon |
12/13 |
Registry create/set |
| Sysmon |
22 |
DNS query |
| Sysmon |
25 |
Process tampering |
| Windows Security |
4624 |
Successful logon |
| Windows Security |
4625 |
Failed logon |
| Windows Security |
4648 |
Explicit credential logon |
| Windows Security |
4672 |
Special privileges assigned |
| Windows Security |
4688 |
Process creation |
| Windows Security |
4697 |
Service installed |
| Windows Security |
4698 |
Scheduled task created |
| Windows Security |
4769 |
Kerberos TGS requested |
| Windows Security |
5140 |
Network share accessed |
References
references/workflows.md (verbatim)
Detailed Hunting Workflow - Hunting For Supply Chain Compromise
Phase 1: Data Collection and Querying
Splunk SPL Query
index=sysmon EventCode=1
| where match(ParentImage, "(?i)(update|installer|setup|patch|deploy)")
| where match(Image, "(?i)(cmd|powershell|wscript|cscript|mshta)")
| where NOT match(ParentImage, "(?i)(Windows\\SoftwareDistribution)")
| table _time Computer User ParentImage Image CommandLine
KQL Query (Microsoft Defender for Endpoint)
DeviceProcessEvents
| where InitiatingProcessFileName matches regex @"(?i)(update|installer|setup|patch)"
| where FileName in~ ("cmd.exe","powershell.exe","wscript.exe")
| project Timestamp, DeviceName, InitiatingProcessFileName, FileName, ProcessCommandLine
Phase 2: Baseline and Anomaly Detection
Step 2.1 - Establish Normal Behavior Baseline
- Collect 30 days of historical data for the targeted technique
- Document expected patterns, frequencies, and legitimate use cases
- Identify known false positive sources and document exceptions
- Build statistical baseline (mean, standard deviation) for key metrics
Step 2.2 - Identify Anomalies
- Compare current activity against the 30-day baseline
- Flag events exceeding 3 standard deviations from normal
- Prioritize anomalies by risk score and potential business impact
- Cross-reference with threat intelligence for known IOCs
Phase 3: Investigation and Correlation
Step 3.1 - Deep Dive Analysis
- For each anomaly, collect full process tree context
- Correlate with network activity, file operations, and authentication events
- Check binary signatures, file hashes, and certificate validity
- Review user account context and access patterns
Step 3.2 - Attack Chain Reconstruction
- Map findings to MITRE ATT&CK kill chain stages
- Identify initial access vector if applicable
- Trace lateral movement and privilege escalation paths
- Determine data access and potential exfiltration
Phase 4: Validation and Response
Step 4.1 - True/False Positive Determination
- Verify findings with system owners and IT operations
- Check change management records for authorized activities
- Validate user context (authorized actions vs. compromised account)
- Document determination rationale for each finding
Step 4.2 - Response Actions
- For confirmed threats: initiate incident response procedures
- For detection gaps: create or update detection rules
- For false positives: tune existing rules and update exclusions
- Update threat hunting playbook with lessons learned
Phase 5: Documentation and Reporting
Step 5.1 - Hunt Report
- Summarize hypothesis, methodology, and findings
- Include all queries executed and their results
- Document IOCs discovered and detection rules created
- Provide recommendations for security improvements
Step 5.2 - Knowledge Base Update
- Add findings to threat intelligence platform
- Update MITRE ATT&CK coverage heatmap
- Share detection rules via Sigma format
- Schedule follow-up hunts for related techniques
Back to mukul975/Anthropic-Cybersecurity-Skills (817 security skills) or Agent skills.