
كشف البرمجيات الخبيثة ليوم الصفر للملفات الثنائية والمصدرية والسكربتات (التي لا تكون سيئة)
Atomdrift Scan هو ماسح ضوئي حديث للبرمجيات الخبيثة قائم على تعلّم الآلة، مصمّم لاكتشاف هجمات اليوم صفر (0-day) التي تستهدف سلسلة توريد البرمجيات.
صُمّم ليكون حتميًا وسريعًا ومرنًا، وقابلًا للتضمين في أي سير عمل أو أداة أمنية تخطر ببالك، ويمكنه العمل على الملفات أو الأرشيفات أو عناوين URL أو PURLs أو العمليات.
اعتبارًا من سبتمبر 2026، يمتلك Atomdrift Scan معدل كشف 98% لهجمات اليوم صفر، متقدّمًا بنسبة +34% على أي ماسح ضوئي آخر: تجاري أو مفتوح المصدر.
كيف يحقق Atomdrift هذه النتائج الرائعة؟ أولًا، يغطي مساحة أوسع من أي ماسح ضوئي آخر:
والأهم من ذلك، يتم تحديث القواعد باستمرار باستخدام التعلّم المعزّز مقابل عينات جديدة ومدونات ومقالات تقنية، مما ينتج عنه ~1000 قاعدة محدّثة يوميًا.
إذا كنت تستخدم مضيفًا بنكهة UNIX (macOS، Linux، BSD، Solaris، illumos، Android):
curl -fsSL https://install.atomdrift.org/scan.sh | sh
إذا كنت تستخدم Windows:
irm https://install.atomdrift.org/scan.ps1 | iex
أو، إذا كان لديك Rust مثبّتًا وتريد فقط بنائه من المصدر:
make install
إذا كانت هناك حاجة لتحليل ثنائي أعمق، يجب عليك أيضًا تثبيت 7-Zip، وrizin، وupx، وinnoextract.
على Windows، باستخدام 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
على الأنظمة الشبيهة بـ Unix، ثبّت 7-Zip الأصلي (brew install sevenzip، apt install 7zip) بدلًا من p7zip — فأداة 7z الخاصة به لا تستطيع قراءة APFS، لذا يبقى محتوى .dmg دون فحص.
# 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
رموز الخروج تجعل التكامل مع CI أمرًا بسيطًا:
0: جميع العينات حميدة1: تم اكتشاف عينة عدائية2: تم اكتشاف عينة مشبوهة3: خطأ في التحليل4: كانت مجموعة القواعد غير مكتملة — جرى الفحص بقواعد أقل مما تحدّده
مجموعة السمات، لذا فإن أي نتيجة أقل من عدائية لا تثبت شيئًا. أعد تشغيله.
لن يرسل atomscan أبدًا بيانات قياس عن بُعد. لكنه سيتصل بالإنترنت لسببين:
--no-update أو SCAN_NO_UPDATE_CHECK=1--follow=none لتحليل القطعة المطلوبة فقط.على عكس ماسحات البرمجيات الخبيثة الأخرى، يتيح لك Atomdrift ضبط الحساسية من حيث مستوى الإيجابيات الكاذبة المقبول باستخدام العلامة -l:
-l0: صارم، يضبط حد الثقة عند نقطة لم تُلاحظ عندها أي إيجابيات كاذبة.-l25: نقطة الإصدار الافتراضية: 25 إيجابية كاذبة لكل 100 مليون ملف.-l1000: متساهل، ما يقارب إيجابية كاذبة واحدة لكل 100,000 ملف.ملاحظة: بالنسبة لصيغ الملفات التي لا نملك فيها 100 مليون عينة، قد يصل معدل الإيجابيات الكاذبة الملاحظ إلى 5-6 أضعاف المستوى المطلوب. النتائج قد تتفاوت.
تتوفر تجاوزات خام عبر --threshold-hostile و--threshold-suspicious
للمستخدمين الذين يريدون التحكم الدقيق في حدود الاحتمالات مباشرةً، لكن هذه الأرقام غير مضمونة الاستقرار، ولا يمكن دمج هذه العلامات مع -l.
لتفسير إضافي، يمكن للمستخدمين توفير إمكانية الوصول إلى نموذج LLM عبر العلامة --llm. تخدم هذه العلامة غرضين:
افتراضيًا، يرسل atomscan الأدلة المُفسَّرة (وليس الملف الأصلي) إلى http://localhost:8000/v1 - لاستخدامها مع خدمة محلية مثل Ollama أو vLLM؛ لكن يمكن أيضًا إعداده لاستخدام خدمة بعيدة مثل Claude أو ChatGPT أو DeepSeek.
لا يوجد نموذج مضمّن بشكل ثابت: ما لم تمرّر --llm-model، يسأل atomscan نقطة النهاية عن النماذج التي تقدّمها ويستخدم أكبرها في القائمة. نوصي بتقديم Qwen/Qwen3.8-27B.
إذا كانت نقطة النهاية تتطلب رمز bearer، ضعه في ~/.tok/llm (بصلاحيات 0600) وسيرسله atomscan تلقائيًا؛ وتتجاوز --llm-key وSCAN_LLM_KEY ذلك الملف.
تقبل --llm أيضًا سلسلة تجاوز فشل مفصولة بفواصل، تُجرَّب بالترتيب — --llm 'https://llm.isotope13.ai/v1,openrouter' يُقيّم على نقطة نهايتك الخاصة ولا يلجأ إلى المدفوعة إلا عندما يتعذّر عليها الإجابة.
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 مع https://openrouter.ai/api/v1. يأتي المفتاح من --llm-key أو SCAN_LLM_KEY أو ~/.tok/openrouter (أول سطر غير فارغ). تكون --llm-model افتراضيًا openrouter/auto (الموجّه التلقائي الخاص بـ OpenRouter) إذا حُذفت — ولا يُختار باقي الكتالوج تلقائيًا.
يقبل make deploy على Linux الأسماء نفسها: LLM=openrouter (أو LLM_URL=openrouter)، وLLM_MODEL=qwen/qwen3.8-27b فقط لتثبيت نموذج بدلًا من openrouter/auto. لا تستطيع الوحدة قراءة مجلد المشغّل الرئيسي (ProtectHome=true)، لذا ينسخ سكربت النشر ~/.tok/openrouter إلى مجلد حالة الخدمة.
يتعرّف الماسح الضوئي على أكثر من 100 نوع من الملفات والحاويات. تشمل التغطية التمثيلية:
| الفئة | الصيغ |
|---|---|
| الملفات الثنائية والبايت كود | Mach-O، ELF، PE، WebAssembly، Android DEX، Java .class، Python .pyc، BEAM |
| المصدر | 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 |
| ملفات البناء والبيان والقفل | 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 |
| الأرشيفات وصور الأقراص | ZIP، TAR، gzip، bzip2، XZ، zstd، 7-Zip، RAR، CAB، ASAR، DMG، ISO |
| الحزم والحاويات | deb، rpm، APK، npm، wheel، egg، sdist، gem، crate، conda، NuGet، IPA، CRX، XPI، VSIX، صور OCI/Docker، حزم FreeBSD وArch وVoid وGentoo |
| المستندات والبيانات | OLE2، OOXML، OpenDocument، PDF، RTF، Markdown، HTML، XML، SVG، plist، JPEG، PNG، LNK، CHM، Python pickle |
تتضمن مجموعة القواعد سلوكيات خاصة بكل منصة لـ Linux وmacOS وWindows وAndroid وiOS وأنظمة BSD وAIX وSolaris وQNX وz/OS وESXi وOpenWrt وVxWorks وRouterOS وFortiOS وPAN-OS وIOS-XE وJunos وNetScaler وأجهزة Ivanti.
تغطي مصفوفة البناء الافتراضية Linux وmacOS وFreeBSD وOpenBSD وNetBSD وillumos وSolaris وWindows عبر عدة معماريات لوحدات المعالجة المركزية. يختلف عمق الاختبار حسب الهدف؛ راجع سير عمل البناء لمعرفة المصفوفة الحالية.
يتوفر Atomdrift Scan بموجب رخصة Apache 2.0.
نرحّب بجميع المساهمات!