Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

USB Security Advisor

一支普通 U 盘 = 随身携带的离线 AI 安全体检医生。

插到任何一台 Windows 电脑上,不需要安装软件、不需要联网,即可完成:

  • 单机健康检查:进程、网络连接、启动项、服务、计划任务、系统信息
  • 内网环境巡检:主机发现、常见端口开放检测、SMB 风险提示
  • 本地 AI 分析:规则引擎 + 可插拔本地小模型(Ollama / llama.cpp)
  • 人类可读报告:HTML / Markdown,包含风险等级、问题清单、修复建议
  • 便携经验积累:历史结果加密保存,支持跨机器“疫苗式”体检

当前为 MVP v0.1.0,优先支持 Windows 10/11 + PowerShell 5.1。


功能特性

模块 说明
单机采集 进程、TCP/UDP 连接、DNS 缓存、启动项、服务、计划任务、系统信息
文件/U盘扫描 只读扫描 Temp、Downloads、启动目录、U盘;计算 SHA256、检测加壳/RWX/可疑API/版本信息
恶意特征库 114 条真实 SHA256 + 11 个 YARA-like 家族;可离线导入扩充
PE 静态分析 熵、加壳、RWX、IAT 导入表、版本信息
持久化深度检查 WMI、AppInit、IFEO、Winlogon、COM、Run/RunOnce 全量
内网巡检 ARP + Ping 主机发现,端口扫描;支持 quick/standard/deep、指定子网、排除主机、授权确认
规则引擎 37 条 JSON 规则,覆盖进程/网络/文件/持久化/DNS/启动项/服务/计划任务/内网
本地模型 自动探测 Ollama 与 llama.cpp;不可用时自动降级为纯规则模式
报告 HTML / Markdown,包含文件、持久化、DNS、网络行为、持久化残留等多章节
存储 历史扫描 JSON、报告文件、经验反馈库,可选 DPAPI 加密
历史对比 对比两次扫描的进程/网络/启动项/服务/文件/持久化/DNS/端口差异
反馈闭环 用户可标记误报/漏报,经验库自动抑制已知误报
原生黑客桌面界面 全屏 WinForms 窗口,支持扫描模式选择、重新扫描、文件/网络/DNS/持久化/进程/服务/任务/启动项详情
可视化仪表盘 可选浏览器版仪表盘
完整性保护 SHA256 清单校验程序文件,启动时自动自检
离线更新 update-rules.ps1import-malware.ps1import-yara.ps1 支持离线导入规则/哈希/YARA

目录结构

usb-security-advisor/
├── config/
│   └── config.json              # 全局配置
├── start.bat                    # 双击启动交互菜单
├── integrity.sha256             # 程序文件完整性清单
├── data/
│   ├── history/                 # 历史扫描结果
│   ├── reports/                 # 生成的报告
│   ├── logs/                    # 运行日志
│   ├── experience.json          # 用户反馈/经验库
│   └── malware.db.json          # 恶意特征库(可更新)
├── docs/
│   ├── DESIGN.md                # 设计文档
│   └── USER_GUIDE.md            # 用户指南
├── scripts/
│   ├── run.ps1                  # 一键运行入口
│   ├── advisor.ps1              # 交互式菜单
│   ├── compare.ps1              # 历史对比
│   ├── feedback.ps1             # 误报/漏报反馈
│   ├── verify.ps1               # 完整性校验
│   ├── update-rules.ps1         # 离线规则更新
│   ├── import-malware.ps1       # 导入恶意哈希库
│   ├── import-yara.ps1          # 导入 YARA-like 规则
│   ├── setup.ps1                # 一键初始化(首次运行)
│   ├── package.ps1              # 发布打包(生成 zip)
│   ├── dashboard.ps1            # 生成浏览器版可视化仪表盘
│   ├── hacker-ui.ps1            # 原生黑客桌面界面(无需浏览器)
│   └── build.ps1                # 构建校验/复制到 U 盘
├── web/
│   └── dashboard.html           # 仪表盘模板(自包含)
├── rules-pack/
│   └── README.md                # 规则包格式说明
├── src/
│   ├── main.ps1                 # 主入口
│   ├── common.ps1               # 公共工具
│   ├── modules/
│   │   ├── Collector.ps1        # 单机采集
│   │   ├── NetworkScanner.ps1   # 内网巡检
│   │   ├── Analyzer.ps1         # 规则引擎
│   │   ├── Model.ps1            # 本地模型接口
│   │   ├── Reporter.ps1         # 报告生成
│   │   ├── Storage.ps1          # 历史/经验存储
│   │   ├── Integrity.ps1        # 完整性保护
│   │   ├── MalwareDb.ps1        # 恶意特征库
│   │   ├── FileScanner.ps1      # 文件/U盘扫描
│   │   ├── PersistenceScanner.ps1 # 持久化检查
│   │   └── SignatureEngine.ps1  # YARA-like + PE 分析
│   ├── rules/                   # JSON 规则库
│   └── templates/
│       └── report.html          # HTML 报告模板
└── tests/
    └── test.ps1                 # 冒烟测试

快速开始

0. 从 GitHub 克隆后使用

git clone https://github.com/你的用户名/USB-Security-Advisor.git
cd USB-Security-Advisor

然后:

# 首次初始化(创建 data 目录、生成完整性清单、初始化恶意特征库)
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\setup.ps1

# 启动原生黑客桌面界面
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\hacker-ui.ps1

或者直接双击:

  • start.bat:普通权限启动
  • start-admin.bat:以管理员权限启动(会弹出 UAC 确认)

克隆仓库后 data/ 是空的,setup.ps1 会自动创建所需目录和文件。

1. 下载后使用(推荐)

  1. 下载发布包 USB-Security-Advisor-vX.Y.Z.zip(由 scripts/package.ps1 生成)。
  2. 解压到任意目录,例如 D:\USB-Security-Advisor
  3. 双击 start.bat
    • 首次运行会自动初始化环境(创建数据目录、生成完整性清单)
    • 然后直接弹出原生黑客桌面界面(无需浏览器)
  4. 如果双击没有反应,手动运行:
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\setup.ps1
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\hacker-ui.ps1

也可以直接在项目根目录双击 start.bat 使用。

2. 运行本机体检(不需要模型/内网)

powershell -NoProfile -ExecutionPolicy Bypass -File src\main.ps1 -Mode local -SkipModel -NoNetwork

或使用一键脚本:

powershell -NoProfile -ExecutionPolicy Bypass -File scripts\run.ps1 -Mode local -SkipModel -NoNetwork

3. 完整体检(单机 + 内网)

powershell -NoProfile -ExecutionPolicy Bypass -File scripts\run.ps1 -Mode full

内网扫描前请确保你有权扫描当前网络;扫描仅做端口探测,不进行漏洞利用。

4. 内网扫描控制

# 快速模式(少量端口)
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\run.ps1 -Mode network -ScanMode quick

# 深度模式(更多端口)
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\run.ps1 -Mode network -ScanMode deep

# 指定子网并排除主机
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\run.ps1 -Mode network -Subnets 192.168.1.0/24 -ExcludeHosts 192.168.1.10,192.168.1.20

# 自动化场景跳过确认
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\run.ps1 -Mode network -SkipConfirm

5. 生成 Markdown 报告

powershell -NoProfile -ExecutionPolicy Bypass -File scripts\run.ps1 -Mode local -Format md

6. 自动打开报告

powershell -NoProfile -ExecutionPolicy Bypass -File scripts\run.ps1 -Mode local -OpenReport

7. 历史对比

# 查看历史记录
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\compare.ps1 -List

# 对比最近两次扫描
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\compare.ps1

# 生成 HTML 对比报告并自动打开
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\compare.ps1 -Format html -Open

8. 标记误报/漏报

# 查看当前反馈
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\feedback.ps1 -List

# 标记某条发现为误报
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\feedback.ps1 -FindingId PROC-001 -Feedback false_positive -Note "公司安全软件,误报"

# 标记为真实风险
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\feedback.ps1 -FindingId NET-002 -Feedback true_positive

9. 运行测试

powershell -NoProfile -ExecutionPolicy Bypass -File tests\test.ps1

10. 完整性校验

# 校验当前程序文件是否被篡改
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\verify.ps1

# 校验 U 盘部署目录(指定清单路径)
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\verify.ps1 -ManifestPath E:\usb-security-advisor\integrity.sha256

交互菜单启动时会自动执行快速自检;校验失败会询问是否继续。

11. 离线规则更新

# 从 rules-pack 目录导入规则
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\update-rules.ps1

# 从指定规则包目录导入并校验清单
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\update-rules.ps1 -Source D:\rules-pack -Manifest D:\rules-pack\integrity.sha256

规则包格式见 rules-pack/README.md

11.5 导入恶意哈希库

# 从纯文本导入(每行一个 SHA256)
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\import-malware.ps1 -Source D:\hashes.txt

# 从 JSON 特征库合并导入
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\import-malware.ps1 -Source D:\malware.db.json

11.6 导入 YARA-like 规则

# 每行格式:规则名|级别|描述|字符串1;字符串2;...
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\import-yara.ps1 -Source D:\my-rules.txt

11.7 文件扫描模式

# 快速
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\run.ps1 -Mode local -ScanProfile quick

# 标准(默认)
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\run.ps1 -Mode local -ScanProfile standard

# 深度
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\run.ps1 -Mode local -ScanProfile deep

在全屏 UI 中也可通过 QUICK / STANDARD / DEEP 按钮切换,并使用 RESCAN 重新扫描。

12. 构建校验 / 复制到 U 盘

# 只校验文件完整性
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\build.ps1

# 复制到 U 盘(例如 E:)
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\build.ps1 -Target E:\

# 生成“下载解压即可用”的 zip 发布包
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\package.ps1

# 生成黑客风格可视化仪表盘并自动打开
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\dashboard.ps1 -Open

本地模型配置(可选,当前未捆绑模型)

本项目默认使用纯规则模式,不需要模型也能运行。若想启用本地 AI 增强,任选一种:

方式 A:Ollama(推荐,最简单)

  1. 安装 Ollama 并保持运行。
  2. 下载一个小模型,例如:
ollama pull qwen2.5:1.5b
  1. 修改 config/config.json
"model": {
  "provider": "auto",
  "ollama_endpoint": "http://127.0.0.1:11434",
  "ollama_model": "qwen2.5:1.5b",
  "enabled": true
}

方式 B:llama.cpp

  1. 下载 llama.cpp 可执行文件。
  2. 下载一个 GGUF 量化模型,例如 qwen2.5-1.5b-instruct-q4_k_m.gguf
  3. 修改 config/config.json
"model": {
  "provider": "llamacpp",
  "llama_cpp_path": "D:\\llama.cpp\\main.exe",
  "llama_cpp_model": "D:\\models\\qwen2.5-1.5b-q4.gguf",
  "enabled": true
}

模型文件较大,当前项目未捆绑下载;你可以将模型放在 U 盘内,实现完全离线。


制作“安全 U 盘”建议

  1. 使用构建脚本自动生成部署目录:
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\build.ps1 -Target E:\

这会在 U 盘上生成 usb-security-advisor 目录,包含程序文件、integrity.sha256 完整性清单和 README-U盘.txt 部署说明。

  1. 建议将 U 盘分为两个分区:
    • 程序区(只读):configsrcscriptsdocsstart.batintegrity.sha256
    • 数据区(可写):data
  2. 若启用本地模型,将 GGUF 模型放入 U 盘,并修改 config.json 指向 U 盘路径。
  3. 在目标电脑上以普通用户运行 start.batscripts\run.ps1;部分采集(如计划任务)需要管理员权限,但核心体检无需管理员。
  4. 每次修改程序文件后,重新运行 scripts\build.ps1 更新完整性清单。

U盘使用与自启动说明

能不能“插入 U 盘就自动运行”?

不能。现代 Windows 出于安全原因默认禁止 U 盘/AutoRun 自动运行autorun.inf 在移动硬盘/U盘上不会自动执行,而且这样做本身也是安全风险。所以这个项目没有做“插入即自启动”。

我们实现的是“U盘便携 + 双击启动”:

  1. 把项目复制到 U 盘(或运行 build.ps1 -Target E:\ 自动生成部署目录)。
  2. 插入任意 Windows 电脑。
  3. 双击 U 盘里的 start.bat
    • 自动初始化
    • 启动全屏安全体检界面
  4. 如果需要管理员权限采集更完整数据,双击 start-admin.bat
    • 会弹出 UAC 确认
    • 以管理员身份启动体检

这是 Windows 环境下最可靠、也最安全的“便携 U 盘使用方式”。


安全与合规声明

  • 本工具仅用于授权环境的安全自查、应急响应、教学研究。
  • 内网扫描仅做主机发现与端口探测,不利用漏洞、不进行弱口令爆破。
  • 请勿在未获得授权的情况下扫描他人网络。
  • 工具给出的结论为辅助判断,不替代专业安全人员。

路线图

  • MVP:单机采集 + 规则分析 + 报告 + 存储
  • 内网巡检 + 网络扫描规则
  • 本地模型接口(Ollama / llama.cpp,可降级)
  • 历史对比(同一机器两次扫描 diff)
  • 用户反馈 / 误报标记写入经验库并影响规则权重
  • 交互式菜单 / 一键启动(start.bat + advisor.ps1)
  • 运行日志(data/logs/advisor.log)
  • U 盘打包(build.ps1 -Target)
  • 完整性保护(SHA256 清单 + 启动自检 + verify.ps1)
  • 内网扫描控制(quick/standard/deep、指定子网、排除主机、授权确认)
  • 多网段指定(-Subnets 支持多个 CIDR)
  • 规则扩充(计划任务/服务/数组任一匹配)
  • 报告优化(内网巡检结果表、已抑制误报展示、风险等级算法优化)
  • 多网卡自动选择增强(过滤虚拟网卡,优先有网关网卡)
  • 离线规则更新(规则包导入 + 完整性校验)
  • 黑客风格可视化仪表盘(矩阵雨/雷达/终端/趋势)
  • 原生黑客桌面界面(WinForms,无需浏览器)
  • 文件/U盘只读扫描
  • 恶意特征库(114 条真实 SHA256 + YARA-like)
  • PE 静态分析(熵/加壳/RWX/IAT/版本信息)
  • 持久化深度检查(WMI/AppInit/IFEO/Winlogon/COM/Run)
  • UDP / DNS / 网络聚合 / C2 端口画像
  • 三档扫描模式(quick/standard/deep)
  • 离线导入恶意哈希 / YARA-like 规则
  • UI 详情弹窗(文件/网络/DNS/持久化/进程/服务/任务/启动项)

License

本项目用于安全研究/教育场景,请遵守当地法律法规。

About

USB Security Advisor|便携式U盘离线Windows安全扫描工具,本地AI系统安全体检 | Portable offline Windows security scanner with local‑AI analysis

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages