MyoungSoo7/vaccine
GitHub: MyoungSoo7/vaccine
轻量级 macOS/Linux 终端威胁检测工具,整合 VirusTotal、YARA、eBPF 与公开 IoC 情报源,为个人和小型环境提供可疑行为检测与告警。
Stars: 0 | Forks: 0
# vaccine
不同于 V3 或 AhnLab 这样的传统杀毒软件,该工具*不直接维护 signature DB*,而是*结合* VirusTotal · YARA · eBPF 和已知的 IoC (Indicators of Compromise) 情报源,为个人或小型环境提供“哪些行为是可疑的”的检测与提醒。
## 设计理念
- **拒绝重复造轮子** — signature DB *完全委托给* VirusTotal / abuse.ch / OTX 等*专业的情报源*
- **监控与报警优先** — *最小化*自动隔离/自动删除。将*决定权*交还给用户
- **透明度** — 公开*所有*匹配到的 IoC 及其规则
- **轻量级** — 后台常驻进程占用*低于数十 MB*
## 支持平台
| Platform | Status |
|---|---|
| macOS (Apple Silicon + Intel) | 首要目标 |
| Linux (Ubuntu/Debian/RHEL) | 首要目标 |
| Windows | 规划中 (因内核驱动认证负担而暂缓) |
| Android | 作为独立应用评估中 |
| iOS | 因 Sandbox 限制,*难以支持* |
## 命令概览
```
vaccine scan 파일/디렉터리 스캔 (VT + 로컬 blocklist + 캐시)
vaccine netscan 활성 네트워크 connection 나열 + URLhaus 매칭
vaccine procscan 프로세스 cmdline 의심 패턴 탐지 (curl|bash 등)
vaccine intel-sync URLhaus IoC feed 다운로드 + 캐시
vaccine watch 위 셋을 주기적으로 (cron 대체)
```
退出码:`0` 正常 / `2` 配置错误 / `3` 发现威胁 — 对自动化 hook 友好。
## 快速开始
```
# 빌드
make build
# 또는: go build -o vaccine ./cmd/vaccine
# 获取 VirusTotal API key(免费,4次请求/分钟,500次/天)
# https://www.virustotal.com/gui/my-apikey
export VACCINE_VT_API_KEY="your-api-key"
# (可选)Telegram 报警 — 发现时推送
export VACCINE_TELEGRAM_BOT_TOKEN="..."
export VACCINE_TELEGRAM_CHAT_ID="..."
# 应用 ─────────────────────────
# 1) 文件扫描
./vaccine scan ~/Downloads --only-bad
# 2) URLhaus feed 同步
./vaccine intel-sync
# 3) 网络 + 进程检查
./vaccine netscan
./vaccine procscan
# 4) 替代 cron — 每 30 分钟全面检查 + Telegram 报警
./vaccine watch ~/Downloads --interval 30
```
## 配置文件
`~/.vaccine/config.json` (可选)。环境变量具有*优先权*。
```
{
"vt_api_key": "",
"cache_dir": "/Users/me/.vaccine/cache",
"cache_ttl_hours": 24,
"blocklist_paths": ["/Users/me/.vaccine/my-bad-hashes.txt"],
"whitelist_paths": ["/Users/me/Library"],
"urlhaus_feed_url": "https://urlhaus.abuse.ch/downloads/csv_recent/",
"watch_interval_min": 60,
"max_file_mb": 100,
"vt_rate_seconds": 16
}
```
## 核心功能 (Roadmap)
### Phase 1 — *File Scanner* ✅
- [x] 文件 SHA256/SHA1/MD5 哈希计算
- [x] VirusTotal API v3 查询
- [x] 递归扫描目录
- [x] 24小时磁盘缓存 (节省配额)
- [x] 本地 hash blocklist
- [x] Whitelist (跳过路径)
- [x] JSON / table 输出
- [ ] YARA 规则匹配 (Phase 1.5)
### Phase 2 — *Network Monitor* ✅ (被动模式)
- [x] 列出活动 connection (gopsutil)
- [x] 下载并匹配 URLhaus 情报源
- [x] 进程名 / PID 映射
- [ ] 基于 eBPF 的实时监控 (Phase 2.5, Linux 专属)
### Phase 3 — *Process Monitor* ✅ (被动模式)
- [x] 检测进程 cmdline 中的可疑模式 (curl|bash, base64|sh, rev-shell, miner)
- [ ] 基于 EndpointSecurity (macOS) / fanotify+audit (Linux) 的实时监控
### Phase 4 — *Daemon + Reporting* ✅ (基础版)
- [x] `vaccine watch` 定期执行
- [x] Telegram 报警
- [ ] Tauri 托盘应用
### Phase 5 — *Threat Intel Integration*
- [x] URLhaus (abuse.ch) 情报源
- [ ] MalwareBazaar hash 情报源
- [ ] AlienVault OTX
- [ ] SBOM 分析 (npm/pip 包风险评估)
## 依赖项
```
github.com/shirou/gopsutil/v4 프로세스 / 네트워크 (cross-platform)
```
仅凭标准库即可实现 80% 的功能。*尽量最小化*外部依赖。
## 非目标 (Non-goals)
- *Windows kernel driver* — 认证成本与复杂度过高
- *自建 signature DB* — 委托给 VirusTotal 等平台
- *付费商业化* — 纯开源 + 学习目的
- *替代 V3 / AhnLab* — 那是 *50+ 人专业团队*的领域
## 开源许可
MIT — 个人 / 学术 / 商业*免费使用*。
## 免责声明
本工具是一款*“辅助报警器”*,而*不是*“完备的安全解决方案”。若要为 *Production 系统提供保护*,请配合使用 *AhnLab V3、CrowdStrike、Microsoft Defender* 等*专业产品*。
标签:AMSI绕过, Docker镜像, EVTX分析, Go, Ruby工具, YARA, 云资产可视化, 威胁情报, 威胁检测, 开发者工具, 日志审计, 终端安全