Browse⌘K
tsfeatured.ts
tsxpadlock.tsx
tsxpadlock.tsx

Short-Lived Malicious Releases in Package Ecosystems

2024in-progress

KU undergraduate research: can short update delays reduce exposure to compromised package versions? Three workstreams — TypeScript static analysis, wall-clock benchmarking of npm-test as a signal, and a frozen incident dataset of confirmed supply-chain attacks.

Short-Lived Malicious Releases in Package Ecosystems
TS packages analyzed
247
Errors classified
14,800+
Confirmed incidents (v1)
79
Incident clusters
26
Span
2018 – 2026

Story

The thesis: build empirically defensible signals for npm supply-chain risk. Software ecosystems publish thousands of packages a day; the field needs reproducible methodology, not vibes-based reputation scoring. My research is structured around three workstreams that each test a different signal.

Workstream 1 — TypeScript static analysis. A Dockerized pipeline using the TypeScript Compiler API to classify errors across npm packages under varying compiler strictness. The headline finding: a 95.8% error reduction from strict → relaxed configurations, with 40 packages clean across every configuration tried.

Workstream 2 — npm-test as a benchmark. Is `npm test` a meaningful proxy for package health? CPU sampling said inconclusive (62% of corpus showed `package_ms=0` — sampling rate too coarse). We pivoted to start-to-stop wall-clock timing plus AppMap-based deterministic per-function instrumentation, which catches the long tail of sub-ms calls the V8 sampler misses.

Workstream 3 — Malicious-release dataset. A frozen v1 of confirmed npm / PyPI / NuGet supply-chain incidents spanning 2018–2026, methodologically defended (every malware window is exact: post-mortem citation, detection-timeline bound, or explicitly blank). Feeds a pilot report on whether time-based update delays reduce hijack exposure.

What I built

  • 1Engineered the Dockerized TypeScript static-analysis pipeline (Compiler API + Python) for 247-package corpus, classifying 14,800+ errors
  • 2Designed the experimental framework comparing strict vs. relaxed TypeScript configurations
  • 3Built the wall-clock benchmarking pipeline (replaces CPU sampling), wired Jest/Vitest/Mocha JSON reporters for per-test ms
  • 4Integrated AppMap-node for deterministic per-function timing — captures sub-ms calls invisible to V8 sampling
  • 5Curated the malicious-release incident dataset (v1, frozen 2026-04-16) with method-defensible windowing
  • 6Presented research at the KU FBI Conference

Tech

TypeScript Compiler APIPythonDockerPandasAppMapNode.js

Up Next

● open to SWE roles·padlock.tsx·UTF-8·github: …
·resume·contact··