Co-Founder, OpenSourceMalware.com
Jenn Gile is a community builder and tech educator in the Security and DevOps fields. She's Co-Founder of OpenSourceMalware.com, on staff with BSides Seattle, and is an advisor at Endor Labs. Jenn previously worked at NGINX, F5, and the U.S. Department of State. Outside of work, she's deeply involved in the cycling community as a board member for 2nd Cycle.
13:00-14:55 PDT | Friday, Aug 7th 2026 | Adversary Village Workshop Stage, Las Vegas Convention Center Hands-on Workshop
Co-presented with: Paul McCarty
This hands-on workshop at Adversary Village RSAC 2026 provides a 20-minute deep dive into software supply chain attacks through practical exercises. The session will focus on the TTPs that DPRK-affiliated threat actors use to compromise software engineers, with particular emphasis on "Contagious Interview" campaigns. Participants will engage in CTI-based targeting and identification of key techniques, blending practical hunting exercises in GitHub and NPM to discover malicious packages and repositories in the wild with adversary emulation scenarios that walk through the complete attack chain.
The workshop will demonstrate how threat actors evade detection, while also teaching defenders how to detect and prevent these increasingly common supply chain threats. By experiencing these attacks from the adversary's perspective, participants will gain critical insights into real-world compromise techniques.
Things we will hunt for in GitHub and NPM:
1. VS Code tasks files - RCE via automatic execution of the tasks file when compromised source code is opened in VS Code
2. Fake fonts - hidden JavaScript payloads pretending to be font files
3. Fake VS Code dictionary files that hide JavaScript payloads
4. "PolinRider" TTPs for specific JavaScript payload appending
5. How DPRK threat actors hide infrastructure in cloud providers
6. Malicious npm packages with obfuscated payloads in install hooks
7. Dependency confusion attacks targeting internal package names
8. Backstopped GitHub repositories with fabricated commit histories
## Exercise 1: "Publish the Trojan" - Build & Deploy a Malicious npm Package
**Objective:** Participants create a malicious npm package from scratch and publish it to a local registry.
**Steps:**
1. Write a `postinstall.js` script that exfiltrates environment variables to a controlled webhook (using a shared RequestBin or webhook.site endpoint)
2. Obfuscate the payload using `Buffer.from()` and hex encoding to evade casual review
3. Craft a convincing `package.json` with a typosquat name
4. Publish the package to a local Verdaccio registry
5. Install the malicious package on a victim VM and observe the data exfiltration
6. Discussion: Review how defenders detect and prevent this type of attack
**Why it works:** Participants walk through the exact attack chain used by DPRK and other threat actors - package creation, payload hiding, registry abuse, and data exfiltration.
---
## Exercise 2: "Hijack the Dependency" - Dependency Confusion Attack
**Objective:** Execute a dependency confusion attack against a pre-configured target application.
**Setup:** A simple Node.js app with a `package.json` referencing an internal scoped package is provided.
**Steps:**
1. Create a public package with a higher version number on a local registry
2. Embed a reverse shell or data exfiltration payload in the install hook
3. Trigger `npm install` on the target app
4. Watch as the malicious package is pulled instead of the legitimate one
5. Observe the payload execute in real time
**Why it works:** Dependency confusion is a real, actively exploited vector. Participants experience firsthand why private registries and proper scoping matter for security.
---
## Exercise 3: "Poison the Repo" - GitHub Repository Backstopping
**Objective:** Create a convincing fake GitHub presence to backstop a malicious package.
**Steps:**
1. Fork a legitimate utility repository
2. Rewrite git history to fabricate months of commit activity using `GIT_AUTHOR_DATE` and `GIT_COMMITTER_DATE`
3. Inject a subtle payload into one of the source files (e.g., a `fetch()` call buried in a utility function)
4. Craft a README that mirrors the original to pass casual trust checks
5. Review how git forensics (timestamp clustering, author analysis) can expose fabricated repositories
**Why it works:** This demonstrates exactly how threat actors backstop campaigns - a technique most defenders have never seen from the attacker's perspective.
Agency.
Join Adversary Village official Discord server to connect with our amazing community of adversary simulation experts and offensive security researchers!