0-Day-Malware-Erkennung für Binärdateien, Quellcode und Skripte (die nicht schlecht ist)
Atomdrift Scan ist ein moderner ML-basierter Malware-Scanner, der entwickelt wurde, um 0-Day-Angriffe auf die Software-Lieferkette zu erkennen.
Er ist darauf ausgelegt, deterministisch, schnell und flexibel zu sein und sich in jeden Workflow oder jedes Sicherheitstool integrieren zu lassen, das Sie im Sinn haben, und kann gegen Dateien, Archive, URLs, PURLs oder Prozesse arbeiten.
Stand September 2026 hat Atomdrift Scan eine 98% 0-Day-Erkennungsrate, +34% vor jedem anderen Scanner: kommerziell oder offen.
Wie erzielt Atomdrift so großartige Ergebnisse? Erstens deckt es mehr ab als jeder andere Scanner:
Am wichtigsten: Die Regeln werden ständig mithilfe von Reinforcement Learning gegen neue Samples, Blogs und technische Artikel aktualisiert, was zu ~1000 aktualisierten Regeln pro Tag führt.
Wenn Sie einen UNIX-artigen Host verwenden (macOS, Linux, BSD, Solaris, illumos, Android):
curl -fsSL https://install.atomdrift.org/scan.sh | sh
Wenn Sie Windows verwenden:
irm https://install.atomdrift.org/scan.ps1 | iex
Oder, wenn Sie Rust installiert haben und es einfach aus dem Quellcode bauen möchten:
make install
Wenn eine tiefergehende Binäranalyse erforderlich ist, sollten Sie außerdem 7-Zip, rizin, upx und innoextract installieren.
Unter Windows mit winget:
winget install --exact --id 7zip.7zip
winget install --exact --id Rizin.Rizin
winget install --exact --id UPX.UPX
winget install --exact --id dscharrer.innoextract
Installieren Sie auf UNIX-artigen Systemen das Upstream-7-Zip (brew install sevenzip, apt install 7zip) statt p7zip — dessen 7z kann APFS nicht lesen, sodass .dmg-Inhalte ungescannt bleiben.
# Scan a file, directory, or archive recusively:
atomscan ./project
atomscan release.tgz
# Fetch a package from its registry and scan it.
atomscan purl npm/[email protected]
# Fetch and scan a URL.
atomscan url https://example.com/download
# EXPERIMENTAL: Scan running process executables, or triage the wider host
atomscan ps
atomscan sys
# JSON output for programmatic access
atomscan -f json ./project
Exit-Codes machen die CI-Integration trivial:
0: alle Samples sind harmlos1: feindseliges Sample erkannt2: verdächtiges Sample erkannt3: Analysefehler4: das Regelset war unvollständig — der Scan lief mit weniger Regeln als
das Traitset definiert, sodass alles außer „feindselig“ nichts beweist. Erneut ausführen.
atomscan wird niemals Telemetriedaten senden. Es wird jedoch aus zwei Gründen auf das Internet zugreifen:
--no-update oder SCAN_NO_UPDATE_CHECK=1 deaktiviert werden--follow=none, um nur das angeforderte Artefakt zu analysieren.Anders als andere Malware-Scanner erlaubt es Atomdrift, die Sensitivität in Form einer akzeptablen Falsch-Positiv-Rate mit dem -l-Flag anzupassen:
-l0: streng, setzt den Konfidenz-Schwellenwert auf einen Punkt, an dem keine Falsch-Positiven beobachtet wurden.-l25: der Standard-Auslieferungspunkt: 25 Falsch-Positive pro 100 Millionen Dateien.-l1000: locker, etwa 1 Falsch-Positives pro 100.000 Dateien.HINWEIS: Für Dateiformate, bei denen wir nicht über 100 Millionen Samples verfügen, kann die beobachtete Falsch-Positiv-Rate bis zu 5-6X über dem angeforderten Niveau liegen. YMMV.
Rohe --threshold-hostile- und --threshold-suspicious-Overrides sind für
Benutzer verfügbar, die Wahrscheinlichkeitsschwellen direkt mikromanagen möchten, aber diese Zahlen sind nicht garantiert stabil, und diese Flags können nicht mit -l kombiniert werden.
Für zusätzliche Interpretation können Benutzer über das --llm-Flag Zugriff auf ein LLM bereitstellen. Dieses Flag dient zwei Zwecken:
Standardmäßig sendet atomscan die interpretierten Beweise (nicht die Originaldatei) an http://localhost:8000/v1 — zur Verwendung mit einem lokalen Dienst wie Ollama oder vLLM; es kann aber auch für einen Remote-Dienst wie Claude, ChatGPT oder DeepSeek eingerichtet werden.
Kein Modell ist fest verdrahtet: Sofern Sie nicht --llm-model übergeben, fragt atomscan den Endpunkt, welche Modelle er anbietet, und verwendet das größte, das er auflistet. Wir empfehlen, Qwen/Qwen3.8-27B bereitzustellen.
Wenn der Endpunkt ein Bearer-Token erfordert, legen Sie es in ~/.tok/llm ab (Modus 0600) und atomscan sendet es automatisch; --llm-key und SCAN_LLM_KEY überschreiben diese Datei.
--llm akzeptiert auch eine kommagetrennte Failover-Kette, die der Reihe nach versucht wird — --llm 'https://llm.isotope13.ai/v1,openrouter' bewertet auf Ihrem eigenen Endpunkt und greift nur dann auf den kostenpflichtigen zurück, wenn dieser nicht antworten kann.
atomscan --llm ./project
atomscan --llm http://model-host:8000/v1 --llm-model my-model ./project
atomscan --llm openrouter --llm-model qwen/qwen3.8-27b ./project
--llm openrouter kommuniziert mit https://openrouter.ai/api/v1. Der Schlüssel stammt aus --llm-key, SCAN_LLM_KEY oder ~/.tok/openrouter (erste nicht-leere Zeile). --llm-model ist standardmäßig openrouter/auto (OpenRouters eigener Auto-Router), wenn es weggelassen wird — der Rest des Katalogs wird nicht automatisch ausgewählt.
Linux make deploy akzeptiert dieselben Namen: LLM=openrouter (oder LLM_URL=openrouter) und LLM_MODEL=qwen/qwen3.8-27b nur, um ein Modell statt openrouter/auto festzulegen. Die Unit kann das Operator-Home nicht lesen (ProtectHome=true), daher kopiert das Deploy-Skript ~/.tok/openrouter in das Service-State-Verzeichnis.
Der Scanner erkennt mehr als 100 Datei- und Containertypen. Die repräsentative Abdeckung umfasst:
| Kategorie | Formate |
|---|---|
| Binaries und Bytecode | Mach-O, ELF, PE, WebAssembly, Android DEX, Java .class, Python .pyc, BEAM |
| Quellcode | Python, JavaScript, TypeScript, Go, Rust, Java, C, C++, C#, Ruby, PHP, Perl, Lua, Swift, Objective-C, Kotlin, Scala, Groovy, Zig, Elixir, Clojure, Shell, PowerShell, Batch, VBScript, AppleScript, JCL |
| Build-, Manifest- und Lock-Dateien | package.json, package-lock.json, Cargo.toml, Cargo.lock, pyproject.toml, requirements.txt, Poetry, Pipenv, Composer, Yarn, pnpm, Go modules, binding.gyp, GitHub Actions, systemd units, Makefile, Dockerfile |
| Archive und Disk-Images | ZIP, TAR, gzip, bzip2, XZ, zstd, 7-Zip, RAR, CAB, ASAR, DMG, ISO |
| Pakete und Container | deb, rpm, APK, npm, wheel, egg, sdist, gem, crate, conda, NuGet, IPA, CRX, XPI, VSIX, OCI/Docker images, FreeBSD-, Arch-, Void- und Gentoo-Pakete |
| Dokumente und Daten | OLE2, OOXML, OpenDocument, PDF, RTF, Markdown, HTML, XML, SVG, plist, JPEG, PNG, LNK, CHM, Python pickle |
Das Regelset enthält plattformspezifische Verhaltensweisen für Linux, macOS, Windows, Android, iOS, die BSDs, AIX, Solaris, QNX, z/OS, ESXi, OpenWrt, VxWorks, RouterOS, FortiOS, PAN-OS, IOS-XE, Junos, NetScaler und Ivanti-Appliances.
Die Standard-Build-Matrix deckt Linux, macOS, FreeBSD, OpenBSD, NetBSD, illumos, Solaris und Windows über mehrere CPU-Architekturen ab. Die Testtiefe variiert je nach Ziel; siehe den Build-Workflow für die aktuelle Matrix.
Atomdrift Scan ist unter der Apache License 2.0 verfügbar.
Alle Beiträge sind willkommen!