atomdrift-project/scan

GitHub: atomdrift-project/scan

一款基于本地 ML 模型和逆向工程分析的开源恶意软件扫描器,专为检测开源生态系统中的供应链攻击而设计。

Stars: 0 | Forks: 1

# Atomdrift 扫描 Atomdrift Scan 是一款可嵌入式开源恶意软件扫描器,专为开源生态系统调优,旨在捕获供应链攻击,无论文件格式是 ELF、Ruby、Python、Shell、PHP、C、Go、PE 还是其他任何格式(我们支持处理 95 种以上的文件类型!) Atomscan 旨在替代如 socket.dev、ReversingLabs 和 Aikido 等专有扫描器,以及如 ClamAV 和 malcontent 等传统的开源扫描器。为了“以毒攻毒”,Atomscan 基于高效且确定性的本地 AI 模型——旨在任何硬件或操作系统上运行。与大多数依赖模式匹配的扫描器不同,它通过使用 rizin 和 tree-sitter 等工具进行主动逆向工程来剖析每个文件。Atomdrift 将每个文件分解为一个 atom 树,并从中寻找“malecule”形状以推导出概率。 与大多数扫描器不同,Atomscan 允许您根据涉及特定文件类型的超过 1 亿个样本的预测出现率,设置可接受的误报水平。对您的 CI pipeline 感到担忧?使用 `atomscan -l5000 `;不想用警报轰炸 SOC?使用 `atomscan -l0`(默认值为 L50,即每 1 亿个文件中出现 50 次)。 我们采用 Apache 2.0 许可证,并在以下架构上积极开发中——如果您使用的是其他架构,大概率也能正常运行(如果不行,欢迎提交 PR)。 * Linux [x86-64] * macOS [arm64] * FreeBSD [arm64, x86-64] * OpenBSD [x86-64] * OmniOS/illumos [x86-64] Atomdrift 的核心价值观是:隐私优先、本地优先、高效和透明。

Atomdrift Scan terminal output

## 工作原理 Atomdrift Scan 是一个多阶段分析器,汇集了开源界在逆向工程二进制文件和源代码方面的最佳成果。 每次扫描背后都有**超过 420 万条规则**支撑,并由自我强化学习系统不断增强。其核心是一个包含超过 92,000 条规则的基于 YAML 的专家系统,并通过一个由 LightGBM ML 模型组成的大型集成进行分析。Atomscan 还支持通过兼容 OpenAI 的 endpoint [例如 vLLM] 使用本地 GPU 进行分析,以获得更高的准确性和解释能力,但这完全是可选的。 ``` flowchart LR IN([file · dir · process]) --> CLEAVE subgraph CLEAVE[cleave — capability extraction] direction TB UPX[upx
unpack] TS[tree-sitter
parse scripts] YARA[YARA
pattern match] RIZIN[rizin
disassemble] end CLEAVE -->|AnalysisReport
92k rules → MBC + ATT&CK| FF[filefacts
feature extraction] FF -->|standardized
feature vector| SCAN[scan
ONNX inference] AZOTH[(azoth
GBT ensemble)] -.loads.-> SCAN SCAN -->|Decision + SHAP reasons| OUT{{verdict
hostile · suspicious · benign}} SCAN -.->|prob ≥ gate| INTERPRET[--llm
local LLM blend] INTERPRET -.-> OUT click CLEAVE "https://atomdrift.org/cleave" _blank click FF "https://atomdrift.org/filefacts" _blank click AZOTH "https://atomdrift.org/azoth" _blank click SCAN "https://atomdrift.org/scan" _blank click UPX "https://upx.github.io/" _blank click TS "https://tree-sitter.github.io/tree-sitter/" _blank click YARA "https://virustotal.github.io/yara-x/" _blank click RIZIN "https://rizin.re/" _blank ``` ## 依赖项 * Rust 1.94 或更高版本 * [upx](https://upx.github.io/) [可选,推荐用于二进制分析] * [rizin](https://rizin.re/) [可选,推荐用于二进制逆向分析] * [innoextract](https://github.com/dscharrer/innoextract) [可选,推荐用于 PE 存档分析] ## 安装 对于使用 Homebrew 的 Linux 和 macOS 用户: ``` brew tap atomdrift/tap https://github.com/atomdrift-project/homebrew-tap.git brew install atomdrift/tap/scan ``` 对于其他用户,从源码编译非常简单: ``` git clone https://github.com/atomdrift-project/scan.git cd scan make install ``` `make install` 将构建并安装 CLI 为 **`atomscan`** —— 这是一个独特且无冲突的命令名(avast 自带其 `/usr/bin/scan`,因此仅使用 `scan` 作为全局命令并不安全)。以下所有示例均使用 `atomscan`。运行 `make uninstall` 可将其移除;这也会清理旧版本安装留下的任何过期的 `scan`/`ascan` 符号链接。 ## 用法 ``` atomscan path /bin/ # recursive; archives unpacked atomscan ps # classify running processes ``` 默认情况下,atomscan 的调优标准为每 1 亿个文件中出现 50 次误报,您可以使用 -l 根据您的用例进行调整。如果要极度保守并避免任何误报的可能性,请使用: ``` atomscan -l 0 /sbin/sulogin # 0-fp scan against a file ``` 如果您想要第二意见以提高准确性,Atomscan 支持使用 `--llm` 将证据高效发送到本地 LLM 进行分析。它默认使用位于 http://localhost:8000/v1 的兼容 OpenAI 的本地 endpoint —— 我们目前推荐以 Qwen3.6-27B 作为模型的 vLLM。低至 9B 的模型可能也足够了。LLM 得分会与 ML 得分进行融合,以得出最终调整后的结果。 ## Atomscan 能识别什么。 涵盖二进制文件、源代码、软件包和文档的 **95 种文件类型** —— 覆盖从桌面操作系统到网络设备的 **25 个平台**。 ### 文件类型 | 类别 | 格式 | |----------|---------| | **二进制文件** | Mach-O, ELF, PE, Java `.class`, Python `.pyc`, BEAM | | **源代码** | Python, JavaScript, TypeScript, Go, Rust, Java, C, C#, Ruby, PHP, Perl, Lua, Swift, Objective-C, Kotlin, Scala, Groovy, Zig, Elixir, Clojure, Shell, PowerShell, Batch, VBScript, AppleScript | | **构建与配置** | package.json, Cargo.toml, pyproject.toml, composer.json, binding.gyp, GitHub Actions, systemd units, `.desktop`, Makefile, Dockerfile, JSON, XML | | **压缩包** | ZIP, TAR (gz/bz2/xz/zst), 7-Zip, RAR, CAB, ASAR, gzip/bzip2/xz/zstd | | **软件包** | deb, rpm, APK, npm, wheel, egg, gem, crate, conda, NuGet, `.ipa`, `.crx`, `.xpi`, `.vsix`, macOS/FreeBS/Arch `.pkg` | | **文档** | OLE2, OOXML, OpenDocument, PDF, RTF, Markdown, HTML, plist | | **图像及其他** | JPEG, PNG, `.lnk`, CHM, Python pickle | 二进制文件使用 Rizin 自动进行逆向工程,源代码使用 Treesitter 自动进行逆向工程。 ### 平台 我们目前有针对以下操作系统检测恶意软件的特定规则: `Linux` · `macOS` · `Windows` · `Android` · `iOS` · `FreeBSD` · `OpenBSD` · `NetBSD` · `DragonFly BSD` · `AIX` · `Solaris` · `QNX` · `z/OS` · `ESXi` · `OpenWrt` · `VxWorks` · `RouterOS` · `FortiOS` · `PAN-OS` · `IOS-XE` · `Junos` · `NetScaler` · `Ivanti` 没错,为了证明在更奇特的语言/平台组合上的覆盖范围,我们在生成合成恶意软件时发挥了创意,以防万一。 ## 文档 - [集成指南](docs/INTEGRATION.md) — 根据您的负载选择 CLI、服务器或 worker - [JSON 报告 schema](docs/JSON.md) · [Server API](docs/SERVER_API.md) · [Workers](docs/WORKERS.md) ## 相关项目 - [cleave](https://github.com/atomdrift-project/cleave) — 底层能力分析器 - [azoth](https://github.com/atomdrift-project/azoth) — 模型权重、阈值和特征规范 - [hopper](https://github.com/atomdrift-project/hopper) — 分布式工作队列 - [Atomdrift Lab](https://lab.atomdrift.org/) — 提交样本以进行免费分析 ## 许可证 Apache-2.0 —— 因为有何不可呢?
标签:Apex, CNCF毕业项目, LNA, 云安全监控, 云资产清单, 人工智能, 可视化界面, 机器学习, 用户模式Hook绕过, 自定义DNS解析器, 逆向工程, 通知系统, 静态分析