Atomdrift Scan · zero-day supply-chain malware detection · Apache-2.0

Supply-chain malware detection for your code, not just a vendor's index.

Every hosted scanner answers one question: is this package on our list yet? Atomdrift reads the artifact — source, binaries, containers, archives, private packages — and scores what it can actually do. Nothing to be listed on, nothing to wait for, and it works on the code no vendor indexes.

curl -fsSL https://install.atomdrift.org/scan.sh | sh
Apache-2.0 100+ file types 47 registries no telemetry Linux · macOS · BSD · illumos
58%
0-day malware caught
4%
false positives
-l 0-l 2,500
at -l 25 — the shipped default, untuned

2026-08-12 · 45 live samples, median 11 h old.

Caught, per engine identical cohort · a skip counts as a miss

VirusTotal
64%
Atomdrift
58%
malcontent
38%
Aikido Malware
29%
GuardDog
29%
ClamAV
22%
Socket
20%
SafeDep
2%
flagged hostile flagged suspicious unsupported file format

Every engine is scored at its most sensitive setting, ours included. Grey is scope — an engine that only reads registry packages marks the rest of the cohort unsupported, which the methodology scores as a miss.

Detection vs. false positives every rival ships one setting — -l is a dial you set

Where Atomdrift's dial sits against the field. 58% of 45 zero-day supply-chain samples caught, 2 of 50 known-safe packages flagged. Next best: VirusTotal, 64% with 0 false positives. 0% 25% 50% 75% 100% 0% 2% 4% 6% 8% 10% HIGH DETECTION · LOW FALSE POSITIVES Zero-day malware caught · more is better → of 45 malicious packages, none more than 48 hours old False positives · fewer is better ↑ of 50 known-safe packages VirusTotal — 64% caught (29/45), 0 false positives of 50 Aikido Malware — 29% caught (13/45), 0 false positives of 50 ClamAV — 22% caught (10/45), 0 false positives of 50 GuardDog — 29% caught (13/45), 1 false positive of 50 Socket — 20% caught (9/45), 0 false positives of 50 SafeDep — 2% caught (1/45), 0 false positives of 50 atomscan -l 0–6 — 33% caught (15/45), 0 false positives of 50 atomscan -l 7–312 — 58% caught (26/45), 2 false positives of 50 atomscan -l 750–2500 — 93% caught (42/45), 2 false positives of 50 VirusTotal 64% Aikido Malware 29% ClamAV 22% GuardDog 29%1 false positive Socket 20% SafeDep 2% Atomdrift@L0 33% Atomdrift@L25 (default) 58%2 false positives Atomdrift@L2,500 93%2 false positives 40% malcontent — 38% caught, 20 false positives of 50 malcontent 38%20 false positives

Detection and false-positive chart data

  • VirusTotal: 64% caught (29 of 45), 0 false positives of 50.
  • Aikido Malware: 29% caught (13 of 45), 0 false positives of 50.
  • ClamAV: 22% caught (10 of 45), 0 false positives of 50.
  • GuardDog: 29% caught (13 of 45), 1 false positive of 50.
  • Socket: 20% caught (9 of 45), 0 false positives of 50.
  • SafeDep: 2% caught (1 of 45), 0 false positives of 50.
  • malcontent: 38% caught, 20 false positives of 50.
  • Atomdrift at -l 0 through 6: 33% caught (15 of 45), 0 false positives of 50.
  • Atomdrift at -l 7 through 312: 58% caught (26 of 45), 2 false positives of 50.
  • Atomdrift at -l 313 through 749: 60% caught (27 of 45), 2 false positives of 50.
  • Atomdrift at -l 750 through 2500: 93% caught (42 of 45), 2 false positives of 50.

-l is a false-positive budget — files flagged per 100 million, calibrated per file type. Not “medium sensitivity”; a number you can plan a pipeline around. The curve runs -l 0 to -l 2,500 through 4 measured operating points, spans between them interpolated.

False-positive axis inverted and cropped at 10%; malcontent is past it, drawn below the break at 40%. Hover any mark for exact counts.

Every previous run a fresh cohort each time

Most engines swing sixty points as the samples change. Judge us on the worst night, not the best.

Three structural differences architecture, not features

Hosted scanners
Atomdrift
Scope
Public packages, or file hashes, that they already index.
Any artifact you can point at — including your own source and private dependencies, which no vendor will ever index.
Timing
After someone else has reported it and the list has shipped.
At scan time. Capabilities are extracted from the artifact itself, so there is no list to be added to and no window to sit in.
Control
Rented per seat or per scan. Your code goes to their servers, and the rule that flagged your build isn't yours to read.
Apache-2.0, runs air-gapped, embeddable in what you sell. Every trait, rule and model is inspectable — fix a false positive yourself.

The first two are measurable, and this run measures them. 26 of 45 samples weren't registry packages at all — binaries, executables, archives. That is also the shape of your own code.

EngineCouldn't readCould look upNo record yetCaught
Socket 3114 59
GuardDog 3114 13
SafeDep 3015 141
Aikido Malware 2619 613

“No record yet” is the detection gap, measured: a live malicious package the vendor indexes and had no entry for at the moment we asked. VirusTotal, Atomdrift, malcontent, ClamAV read every sample. How it decides →

Appendix — samples and methodology all 45, every one linked
pkg:npm/@aerodrome-finance/[email protected] pkg:npm/@assetshop/[email protected] pkg:npm/@years17/[email protected] pkg:npm/@years17/[email protected] pkg:npm/@years17/[email protected] pkg:npm/@years17/[email protected] pkg:npm/@years18/[email protected] pkg:npm/@years19/[email protected] pkg:npm/@years19/[email protected] pkg:npm/@years20/[email protected] b25c8c71b916ab39385c4ad7fbcf0607ada443ea1d234c94a1c06fabac1834a8.bin bins.sh bot.386 BurpLoaderKeygen_v1.18.jar check1.sh DHL Waybill No 005107085566.exe everdreamsoft-hub-2010-XayaPlay_MVP_1.0.tar.gz georgelautech-byte-Polymarket-copy-trading-bot.tar.gz pkg:golang/gocommunity.io/[email protected] goldendragon68-cryptoket-smart-contracts.tar.gz goldendragon68-nft-marketplace.tar.gz HWW.hta INQUIRY SPM-241254700.js pkg:pypi/[email protected] libReverseSigma.so pkg:pypi/[email protected] Mystic.ppc Mystic.spc Orden de Compra No. 70387.jpg.js pty10 pkg:npm/0da02f091c865f8c8577f9e6baa82dd9126ade41c7eef3968571fad1971a8ae1@01 Purchase_order.JS putita.ppc rusto0212-Polymarket-Kalshi-arbitrage-bot.tar.gz virussign.com_0e4e685f854146ff686027b609185cf0.vir virussign.com_20ad1a78078b866eff753dd2be4dc500.vir virussign.com_2940d19ac72a6184f108254f3dda5420.vir virussign.com_39394bcc01103db75b49f19de4764d40.vir virussign.com_41a0d5189ab84ecf098c466413e5b4a0.vir virussign.com_6106850f99b7a691f9c667259b7bcf30.vir virussign.com_762f95e2f8a653a99522c166f747fbf0.vir virussign.com_80f6d913d2fa5f654d88e160420fac20.vir virussign.com_9458e327ccc05a2dffb00503c9dc5970.vir virussign.com_be4712d4504b5984e18c672f17ddf8e0.vir x-8.6-.Sakura
What "0-day" means here. Every detection sample was first seen in the wild within 48 hours — median 11 h, youngest 1.9 h: no signature written for it, no reputation, no download history to be anomalous against. Catching malware a feed has already named is a different, easier problem.

How this is scored. Every engine gets the identical cohort, and a skip counts as a miss for all of them — a file nobody scanned is a file that got through. A listing from a contestant's own feed counts only once an independent engine corroborates it. Known-good packages come from the freshest 48 hours of the open-source firehose and are re-checked later: one that turns out to be malware leaves that run's false-positive rates, and any engine that flagged it is credited with an early detection. We run this benchmark and we're one of the engines in it, so every sample, verdict and rate is published.

Engine versions: Atomdrift 2.6.0 · ClamAV 1.5.3 · GuardDog 3.2.0 (locally-run engines; VirusTotal, Socket, Aikido Malware, SafeDep are hosted services queried live, so they carry no pinned version).

Point it at your own code.

Apache-2.0 · runs locally · no account, no index

curl -fsSL https://install.atomdrift.org/scan.sh | sh