openscan

🛡️ 轻量级二进制恶意代码检测

基于 Harkonnen 引擎的轻量级二进制扫描工具,可在安装技能前检测恶意代码和可疑模式,保障系统安全。

收藏
685
安装
337
版本
v1.0.0
CLS 安全性认证2026-05-05
点击查看完整报告 >

使用说明

OpenScan 是一款移植自 Harkonnen 反恶意软件引擎的轻量级静态分析工具,专为 macOS 和 Linux 系统设计,用于在安装第三方技能或不可信二进制文件前执行安全审查。

核心用法

用户可通过命令行界面(CLI)或编程 API 调用扫描功能。CLI 支持单文件扫描、整目录递归扫描,并提供 JSON 输出格式便于集成到自动化流程。威胁评分系统(0-100 分)将检测结果分为 CLEAN、LOW、MEDIUM、HIGH、CRITICAL 五个等级,通过退出码(0/1/2)实现脚本化判断。对于开发者,可直接引入 scanFile API 在技能安装流程中嵌入安全检查点,当威胁评分超过 40 分时自动阻断安装。

显著优点

该工具最大的优势在于零外部依赖,仅基于 Node.js 标准库(fs、path、crypto、child_process)实现,彻底规避了供应链攻击风险。支持 Mach-O(macOS)和 ELF(Linux)双平台二进制格式解析,能够检测代码签名状态、安全特性(PIE/NX/RELRO)启用情况、动态库注入风险以及高熵加密/打包行为。对于脚本文件,可识别危险的 curl|bash 管道、eval 执行、权限提升尝试等模式。完善的边界保护机制包括 50MB 默认文件大小限制、10 层目录深度限制以及自动跳过 node_modules 等目录。

潜在缺点与局限性

首先明确这不是完整的杀毒软件替代品,缺乏基于哈希的特征库,无法检测运行时恶意行为或高级混淆技术。由于采用启发式检测,对合法安全工具(如调试器、注入框架)可能产生误报。此外,作为 T3 来源的个人开发者项目,长期维护能力和更新频率存在不确定性。

适合的目标群体

主要面向 Skill 平台管理员、DevSecOps 工程师、开源软件审计人员以及在安装未知来源技能前需要安全验证的高级用户。特别适合集成到 CI/CD 流水线中作为前置安全检查步骤,或作为开发环境的安全审计辅助工具。

使用风险

虽然代码整体安全,但需注意 scanner.js 中使用 execSync 调用 macOS 系统的 codesign 命令进行签名验证,尽管该调用为硬编码且不接受用户输入,理论上无命令注入风险,但在极端情况下若系统 PATH 被篡改可能存在隐患。扫描超大二进制文件(接近 50MB 限制)时可能产生性能开销。此外,威胁评分为启发式算法结果,不应作为唯一的安全决策依据,对于 MEDIUM 级别以上的检测结果建议结合人工审查。

安全解读

核心用法

OpenScan 是一款面向 macOS 和 Linux 的轻量级二进制/脚本安全扫描工具,可直接从命令行调用或作为 Node.js 模块集成。

命令行模式:

  • 单文件扫描:node bin/scan.js /path/to/binary
  • 目录递归扫描:node bin/scan.js /path/to/folder
  • JSON 输出自动化:--json 配合 CI/CD 流水线
  • 仅显示威胁:--quiet 过滤干净文件

编程集成:

const { scanFile } = require('openscan/lib/scanner');
const result = await scanFile(binPath);
// result.threatScore: 0-100 威胁评分
// result.findings: 检测到的风险项数组

威胁评分体系:

  • 0-20 (CLEAN):无显著风险
  • 21-40 (LOW):轻微顾虑,通常安全
  • 41-60 (MEDIUM):可疑模式,建议人工复核
  • 61-80 (HIGH):可能恶意或危险
  • 81-100 (CRITICAL):已知恶意模式

显著优点

1. 零依赖架构:纯 Node.js 标准库实现,完全规避供应链攻击风险,无需担心依赖包被投毒。

2. 双平台原生支持:深度解析 Mach-O(macOS)和 ELF(Linux)格式,非简单的字符串匹配工具。

3. 多维度检测:覆盖代码签名验证、安全功能检查(PIE/NX/RELRO)、熵分析(检测加壳/加密)、Shellcode 模式、危险 API 调用、网络指标提取等。

4. 脚本安全能力:识别 curl|bash、危险 eval、权限提升尝试、混淆指标等 shell/python 脚本风险。

5. 自动化友好:结构化 JSON 输出、明确的退出码(0/1/2)、可编程的评分阈值,便于集成到 skill 安装流程。

潜在局限

  • 非完整杀毒软件:无病毒哈希数据库,无法识别已知恶意软件家族(除非包含特征模式)。
  • 误报可能:合法的安全研究工具(如 Frida 调试框架)会触发检测。
  • 对抗能力有限:高级混淆、自定义加密、多阶段加载器可能绕过静态分析。
  • 平台限制:不支持 Windows PE 格式扫描。

适合人群

  • Skill 生态维护者:安装第三方 skill 前的自动化安全闸门
  • 开发人员:审计 CI 流水线中的二进制依赖
  • 安全研究员:快速初筛可疑样本,决定是否需要深入逆向
  • DevOps 工程师:容器镜像、基础设施即代码的安全检查

常规风险

  • 来源可信度:维护者为个人开发者(T3),虽代码公开透明,但需关注仓库所有权变更风险
  • 系统调用依赖:使用 child_process.execSync 执行 macOS codesign 命令,属声明功能必需,已包含错误处理
  • 资源消耗:超大文件扫描可能产生显著 CPU/内存占用,建议在沙箱中验证性能边界

openscan 内容

bin文件夹
lib文件夹
手动下载zip · 19.2 kB
scan.jstext/javascript
请选择文件