GitHub
Synthetic Elastic replay for the Hugging Face incident

HF ATTACK EMU

▸ emulate the public incident safely.

A tool to emulate the Hugging Face agent intrusion in Elastic Security.

Generate safe synthetic telemetry for the public Hugging Face agent intrusion, exercise OOTB Elastic Security coverage, and produce a coherent attack narrative from the resulting alerts.

Inspired by and credited to Hugging Face's public incident materials: technical timeline and interactive attack replay. This project is an independent synthetic Elastic emulation and is not affiliated with Hugging Face.

// replay diagram

Five stages to a coherent attack narrative.

Attack chain across trust boundaries

nodes ignite as the synthetic agent reaches them
external application cluster cloud / mesh supply chain 1 2 3 4 5 Launchpad sandbox base C2 + staging Dataset worker file disclosure Dead drop dataset commits Kubernetes API RBAC + tokens Node root hostPath + chroot Cloud IAM metadata + STS ECR, secrets Tailscale userspace SOCKS proxy GitHub App token minting repo + CI probe Exfiltration chunked public dead drops

Live action stream

representative events
dataset_config_processed file.path=/proc/self/environfoothold
python3 -c "gzip/base64 staged execution marker"c2/dropper
env; cat /proc/self/mountinfo; getent hosts internal connectorrecon
create serviceaccounts/token; create selfsubjectrulesreviewsk8s rbac
create privileged pod hostPath=/; chroot /hostnode pivot
GetCallerIdentity; DescribeVpcs; ListClusters; GetAuthorizationTokencloud iam
tailscaled --tun=userspace-networking --state=mem: --socks5-server=127.0.0.1:1055tailscale
integration_installation_token.create; pull_request.creategithub
POST encoded chunks to capture, dataset, paste, and proxy destinationsexfil

Out-of-the-box Elastic coverage that would help

primary story: SIEM + endpoint protections

MITRE ATT&CK coverage matrix

SIEM + endpoint + optional generated rules
Card color: more synthetic activity in this tactic some activity lower activity
Coverage badge: SIEMalert rules from Elastic Security EDRendpoint protections from Elastic Defend OPToptional generated rules from this kit
Initial Access3
Exploit Public-Facing AppT119011
Supply Chain CompromiseT11955
External Remote ServicesT11333
Execution4
Command and Scripting InterpreterT105915
PythonT1059.0068
Unix ShellT1059.0046
User ExecutionT12043
Persistence2
External ProxyT10904
Create Account / TokenT11362
Privilege Esc.4
Escape to HostT16118
Additional Cloud RolesT1098.0035
Valid AccountsT10784
Sudo Chroot AttemptCVE-2025-324632
Stealth0
No activity
Credential Access6
Unsecured CredentialsT155216
Cloud CredentialsT1552.0059
Proc Filesystemprocfs7
Secrets ManagerGetSecretValue5
Discovery5
Cloud Service DiscoveryT152616
Permission Groups DiscoveryT106912
System Information DiscoveryT10826
Lateral Movement3
Proxy / TunnelT109011
Remote ServicesT10214
C25
Ingress Tool TransferT110515
ProxyT109011
Web ServiceT11026
Exfiltration3
Exfiltration Over C2 ChannelT104120
Exfiltration to Cloud StorageT15377
Source Code Exfiltrationgit.clone5
Impact0
No destructive activity

Optional generated SIEM rules

add-on content

Run this replay against Elastic

self-hosted · API driven · tagged
Creates: logs-frontier_lab_agent_emulation.* data streams designed to exercise OOTB coverage first.
Scopes: every run with frontier-lab-agent-emulation-run-<timestamp>.
Optional: add --include-custom-rules to create the generated gap-filler rules shown above.
Connector: run --list-connectors, then choose one with --connector-name or --connector-id/--connector-type.
recommended command
export ELASTIC_USERNAME="elastic-user"
export ELASTIC_PASSWORD="elastic-password"

python3 scripts/run_hf_emulation.py \
  --es-url http://localhost:9200 \
  --kibana-url http://localhost:5601 \
  --space default
View full Python runner script
language: python open script source
Loading scripts/run_hf_emulation.py...