junbjnnn/glassworm-poc
GitHub: junbjnnn/glassworm-poc
该项目提供了一个针对 Glassworm Unicode 混淆供应链攻击的教育性概念验证,集成了攻击演示代码与安全检测工具。
Stars: 0 | Forks: 0
# Glassworm POC
## 什么是 Glassworm?
Glassworm 是一种供应链攻击,它将恶意代码隐藏在 **不可见的 Unicode 变体选择器字符**(U+FE00-FE0F, U+E0100-E01EF)中。这些字符在代码编辑器中渲染为零宽度,使得 payload 在代码审查期间不可见。
## 项目结构
```
glassworm-poc/
├── attack/ — Attack demo (encoder + decoder + payload)
│ ├── glassworm-encoder.js — Encode plaintext → invisible Unicode
│ ├── glassworm-decoder.js — Decode invisible Unicode → plaintext
│ ├── glassworm-runner.js — Decode + execute with safety wrapper
│ └── payload-demo.js — Pre-encoded invisible payload
├── detector/ — Detection CLI tool
│ ├── glassworm-detector-cli.js — CLI entry point
│ ├── glassworm-unicode-scanner.js — Scan files for Unicode patterns
│ ├── glassworm-npm-scanner.js — Scan node_modules
│ ├── glassworm-detection-rules.js — Detection rules & signatures
│ └── glassworm-detection-reporter.js — CLI colored + JSON output
├── samples/ — Test samples for detector validation
└── test/ — Integration tests
```
## 使用方法
### 攻击演示
```
# 将 payload 编码为不可见 Unicode
node attack/glassworm-encoder.js --file payload.js --output attack/payload-demo.js
# 运行(安全)演示 payload
npm run decode
```
### 检测工具
```
# 扫描目录
npm run scan -- ./samples
# 使用 JSON 输出进行扫描
npm run scan:json -- ./samples
# 扫描包括 node_modules
npm run scan -- ./my-project --include-deps
```
### 测试
```
npm test
```
## 安全防护措施
- 所有文件均包含教育免责声明头
- 演示 payload 为只读(无网络访问、无文件写入、无持久化)
- `package.json` 中设置了 `"private": true` 以防止 npm publish
- Payload 仅读取 `~/.ssh/known_hosts` 并列出环境变量键名(不包含值)
标签:DNS 反向解析, JavaScript安全, MITM代理, Node.js安全, PFX证书, SQL查询, Unicode混淆, URL收集, 不可见字符, 代码混淆, 变体选择符, 攻击检测, 数据可视化, 文档安全, 概念验证, 漏洞演示, 网络安全教学, 自定义脚本, 隐写术, 静态扫描