SuperAPI AI 工具集

malware-scan

安全与审计

查看项目

更新于 10-25 20:39

技能介绍

用途

malware-scan 是一个运行在 macOS 上的启发式扫描技能,用于在用户请求时检查系统是否存在可疑行为。它不是一个基于签名的杀毒产品,而是通过一系列检查来报告与恶意软件或广告软件常见相关(但并非总是相关)的异常现象。该技能由用户通过自然语言短语触发,例如“扫描恶意软件”、“我的 mac 有恶意软件吗”、“检查病毒”或“可疑进程”。

主要能力

该技能执行以下检查,并生成包含发现项的报告:

  1. 临时/异常路径中的进程:使用 ps 命令查找运行在 /tmp、/var/tmp、/private/tmp、/var/folders 等目录下的进程,每个匹配项标记为 warn。
  2. $HOME 下的异常隐藏目录:列出 $HOME 中以点开头的目录,排除常见合法目录(如 .bash、.git、.ssh 等),未匹配的条目记录为 info,最多记录 20 个。
  3. 用户 LaunchAgents 引用的未签名二进制文件:遍历 ~/Library/LaunchAgents 下的 .plist,提取 Program 或 ProgramArguments 的第一个条目,运行 codesign --verify 验证,非零退出码标记为 warn。
  4. 已知不良 Bundle ID:在 LaunchAgent plist 中搜索一个简短的拒绝列表(如 com.pcv.、com.searchmine、com.MyShopCoupon、com.genieo 等),任何命中标记为 critical。
  5. Cron 和 at 持久化:运行 crontab -l 和 atq,任何非空输出记录为 info 并在 raw 中附上内容。
  6. 敏感目录的近期写入:查找 /Library/LaunchAgents、/Library/LaunchDaemons、~/Library/LaunchAgents 中最近 7 天修改的文件,每个匹配项记录为 info。
  7. 代码签名验证失败的进程:遍历前 30 个用户进程,解析可执行文件路径并运行 codesign --verify,验证失败记录为 warn,跳过伪路径和系统目录。
  8. DNS 劫持启发式检查:运行 scutil --dns 获取名称服务器,如果存在不在允许列表(如 1.1.1.1、8.8.8.8、9.9.9.9 及 RFC1918 范围)中的非私有解析器,发出 info。

使用方式

该技能通过用户请求触发。直接调用时,技能会渲染并打开报告:bash ${CLAUDE_PLUGIN_ROOT}/scripts/render-single.sh malware-scan。当由 daily-health-report 调用时,仅返回 JSON 路径。输出写入 ~/.mac-guardian/data/malware-scan-<ISOdate>.json,顶层严重性设置为发现项中的最高级别,除非检查 4 触发,否则最高为 warn。摘要中必须包含明确说明,例如:“Heuristic sweep: 2 warn, 5 info. Not a substitute for a signed AV tool.”

适用场景

适用于 macOS 用户希望快速检查系统是否存在可疑进程、未签名启动项、持久化机制或 DNS 异常的情况。该技能适合作为初步筛查工具,帮助用户发现可能需要进一步调查的异常,但不能替代专业的签名式杀毒软件。

限制

  • 该技能是启发式扫描,不是签名式杀毒产品,误报是预期内的。合法工具(如 Homebrew 服务、VPN 客户端、开发工具)经常创建启动代理和未签名的辅助二进制文件。
  • 该技能不会隔离、移动或删除任何文件,仅报告路径。
  • 不会向外部发送数据或提交样本。
  • 不会请求 sudo 权限。
  • 不提供自动修复或清除功能。
  • 关于收费、价格、平台支持范围等具体信息暂未提供。