PolinShield logo

PolinShield

Menu bar defense against the PolinRider npm supply-chain attack on macOS.
5 layers of protection. One click to install. Always visible.

Download for macOS View on GitHub
brew install --cask louayzouaoui1/tap/polinshield

Why this exists

PolinRider has compromised 1,951+ public GitHub repositories across 1,047+ owners. It's an active, DPRK-attributed supply-chain campaign tracked by OpenSourceMalware, doubling every ~5 weeks. It uses 4 parallel injection vectors β€” config files, malicious npm packages, .vscode/tasks.json, and even fake .woff2 fonts.

πŸ“¦

Postinstall scripts

npm runs arbitrary code from any package you install. The #1 attack vector.

πŸͺ€

Config injection

Malware silently appends payloads to postcss.config, tailwind.config, etc.

πŸ”₯

Mass force-push

Once it has your git creds, it overwrites every branch on every repo you can push to.

πŸ”“

.env exfiltration

Removes .env* from .gitignore so any committed env file leaks secrets.

Five-layer defense

Each layer blocks a different stage. Even if 4 fail, the 5th catches it.

1

Block npm install scripts

Sets ignore-scripts=true in ~/.npmrc. Stops postinstall malware before it ever runs.

2

DNS-block C2 servers

Adds known attacker domains to /etc/hosts. If reinfected, can't phone home.

3

Git pre-commit hook

Blocks commits containing malware signatures. Even infected files can't reach your remote.

4

Force-push watcher

Polls GitHub hourly. macOS notification on any unexpected force-push.

5

Daily malware scan

Searches your Desktop at 9am. Catches indicators that slip through other layers.

What it looks like

Native macOS app β€” feels like part of your system, not an Electron blob.

Menu bar dropdown

Always visible status, defense state, run scan, open dashboard.

πŸ›‘οΈ  PolinShield Protected
─────────────────────────
DEFENSES
  βœ“ npm postinstall block
  βœ“ /etc/hosts C2 block
  βœ“ Git pre-commit hook
  βœ“ Force-push watcher
  βœ“ Daily malware scan
─────────────────────────
LAST SCAN
  βœ“ Clean       2h ago
─────────────────────────
[ Run Scan Now ]
[ Open Dashboard ]

Full dashboard

Scan history, force-push log, defense management.

πŸ›‘οΈ  Protected
Last scan 2h ago         [Scan Now]

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ DEFENSESβ”‚  SCANS  β”‚ THREATS β”‚
β”‚  5 / 5  β”‚   42    β”‚    0    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Defense Layers
  βœ“ Block npm postinstall    Active
  βœ“ DNS-block C2 servers     Active
  βœ“ Git pre-commit hook      Active
  βœ“ Force-push detector      Active
  βœ“ Daily malware scan       Active

Install in 30 seconds

brew install --cask louayzouaoui1/tap/polinshield

First launch shows a setup wizard: scan your Mac, install all defenses, done.

Or grab the latest .dmg from Releases.

Open source Β· No telemetry

Every line is auditable. The defenses are bash scripts you can read and run standalone. No tracking, no ads, no upsells.

β˜… Star on GitHub Audit the bash defenses