Skip to content

PhantomStream is a dynamic tracking and protection tool for PDF documents, validated through real-world red team-blue team exercises. This project has continuously iterated and optimized in authentic attack-defense environments, ultimately establishing a multi-anchor defense system with practical value.

License

Notifications You must be signed in to change notification settings

hrygo/phantom-stream

PhantomStream - PDF 动态追踪与防护系统

项目简介

PhantomStream 是一个通过红蓝对抗演练实战验证的 PDF 文档动态追踪与防护工具。本项目在真实的攻防对抗环境中不断迭代优化,最终形成了一套具有实战价值的多锚点防御体系。

核心价值

  • 实战验证:经过真实红蓝对抗演练测试,抵御了多轮清洗攻击
  • 多锚点防御:采用 4 层独立锚点策略,任一锚点存活即可追踪
  • 明文震慑:Visual 水印直接展示追踪信息,产生心理威慑效果
  • 极致轻量:采用图像栅格化技术支持 Unicode 水印,无需内嵌大字体,二进制体积骤减
  • 完整 Unicode 支持:支持全球语言字符(中日韩等),自动适配最佳渲染策略

防护工具能力

✅ 支持的功能

  1. 多锚点嵌入(4 层独立防御)

    • Attachment 锚点:伪装为合法 PDF 附件
    • SMask 锚点:隐藏在图像软蒙版数据中
    • Content 锚点:嵌入页面内容流的不可见字符
    • Visual 锚点:可见水印,明文展示追踪信息
  2. 加密与验证

    • AES-256-GCM 加密保护追踪信息
    • 支持自定义加密密钥(32 字节)
    • 自动验证与解密提取
  3. 跨平台支持

    • macOS / Linux / Windows 完全兼容
    • 不依赖系统字体(字体已内嵌)
    • 单一二进制文件,开箱即用
  4. 灵活的验证模式

    • Auto 模式:首个成功锚点即停止(快速验证)
    • All 模式:逐一验证所有锚点(完整诊断)

⚠️ 限制与约束

  1. PDF 规范依赖

    • 仅支持标准 PDF 格式文件
    • 需要 PDF 包含可嵌入内容(页面、图像等)
  2. 清洗抵抗边界

    • 可抵御常规清洗工具(PDFtk、Ghostscript 等)
    • 无法抵御彻底重建 PDF 结构的深度清洗
  3. Visual 水印特性

    • 水印可见,用户可感知
    • 适用于震慑场景,不适合完全隐蔽追踪

能力评估

评估维度 等级 说明
隐蔽性 ⭐⭐⭐⭐ 3 个隐藏锚点 + 1 个可见锚点,综合隐蔽性强
抗清洗能力 ⭐⭐⭐⭐ 经实战验证,抵御常规清洗攻击
震慑效果 ⭐⭐⭐⭐⭐ Visual 水印直接展示追踪信息,心理威慑显著
可移植性 ⭐⭐⭐⭐⭐ 跨平台支持,无外部依赖
易用性 ⭐⭐⭐⭐ CLI 工具,简单易用
完整性 ⭐⭐⭐⭐⭐ 多锚点冗余,容错性强

综合评分:4.7/5.0


文档导航

核心文档

技术方案

详细的技术方案文档位于 defender/docs/ 目录:

  • Phase 1-9 各阶段技术演进文档
  • 多锚点防御策略设计
  • 加密与验证流程说明

目录结构

phantom-stream/
├── README.md                          # 本文件 - 项目总览
├── docs/
│   └── PHANTOM_STREAM_JOINT_REPORT.md # 红蓝对抗联合报告
├── defender/                          # 🛡️ 防护工具(核心)
│   ├── README.md                      # Defender 技术文档
│   ├── USER_MANUAL.md                 # 用户手册
│   ├── bin/
│   │   └── phantom-guard              # 编译后的可执行文件
│   ├── injector/                      # 锚点注入与提取逻辑
│   │   ├── anchor_*.go                # 各锚点实现
│   │   ├── assets/                    # 嵌入资源(字体文件)
│   │   └── font_embed.go              # 字体嵌入逻辑
│   ├── docs/                          # 技术方案文档
│   └── Makefile                       # 构建脚本
└── attacker/                          # ⚔️ 攻击脚本(实验用途)
    ├── clean_*.sh                     # PDF 清洗脚本
    └── test_*.py                      # 测试脚本

关于 attacker/ 目录

attacker/ 目录包含一些实验性的反抗脚本,用于:

  • 模拟红队清洗攻击
  • 测试防护工具的鲁棒性
  • 研究 PDF 处理工具的行为特征

重要说明

  • ⚠️ 这些脚本不是工具的正式功能,仅供研究与测试
  • ⚠️ 使用这些脚本需要遵守相关法律法规
  • ⚠️ 请勿将这些脚本用于非授权的攻击行为

快速开始

1. 编译工具

cd defender
make build

2. 嵌入追踪信息

./bin/phantom-guard sign \
  -f document.pdf \
  -m "UserID:12345" \
  -k "your-32-byte-encryption-key!!"

3. 验证追踪信息

./bin/phantom-guard verify \
  -f document_signed.pdf \
  -k "your-32-byte-encryption-key!!" \
  --mode=all

详细使用说明请参考 用户手册


项目演进历程

本项目经历了 9 个阶段的红蓝对抗迭代:

  1. Phase 1-3:基础附件锚点 → 被清洗 → 优化伪装
  2. Phase 4-6:引入 SMask 锚点 → 多锚点防御初见成效
  3. Phase 7-8:Content 锚点加入 → 三重保险体系
  4. Phase 9:Visual 明文水印 → 震慑效果显著提升

完整对抗过程详见 联合报告


技术栈

  • 语言:Go 1.24+
  • PDF 处理:pdfcpu v0.11.1
  • 加密:AES-256-GCM (crypto/aes)
  • 图像处理:golang.org/x/image (用于水印栅格化)
  • CLI 框架:Cobra

⚠️ 重要免责声明

使用限制

本项目(PhantomStream)是一个学术研究项目,仅用于以下合法目的:

合法用途

  • 安全研究与技术学习
  • 网络安全教育与培训
  • 明确授权的红蓝对抗演练中使用
  • 合法的文档版权保护与追溯
  • 企业内部合规的文档管理

严格禁止

  • 未经授权对他人文档进行追踪或监控
  • 侵犯他人隐私或违反数据保护法规
  • 用于非法目的或恶意活动
  • 在未获得明确许可的情况下部署于生产环境
  • 任何可能违反所在地区法律法规的行为

法律责任

  1. 用户责任

    • 使用者必须遵守所在国家/地区的所有适用法律法规
    • 使用者对使用本工具的一切行为及后果承担全部法律责任
    • 使用者应自行评估使用本工具的合法性和合规性
  2. 开发者免责

    • 本项目作者和贡献者不对任何直接或间接损失承担责任
    • 本项目作者和贡献者不对任何滥用或非法使用行为负责
    • 本项目按"现状"提供,不提供任何明示或暗示的担保
  3. 数据隐私

    • 使用本工具处理包含个人信息的文档时,必须遵守 GDPR、CCPA 等数据保护法规
    • 在使用 Visual 水印功能时,需告知文档接收者相关追踪机制
    • 建议在使用前咨询法律顾问,确保合规使用

许可协议

本项目采用 MIT License 开源协议,但使用者仍需遵守上述免责声明。

使用本软件即表示您已阅读、理解并同意上述所有条款。如不同意,请立即停止使用。

📜 详细免责声明: 请阅读 LEGAL_DISCLAIMER.md 了解完整的法律条款和合规指导。


联系方式

如有技术问题或建议,请通过以下方式联系:

  • 提交 Issue 或 Pull Request
  • 参考文档中的技术说明自行排查

最后更新:2025-12-13
项目状态:✅ 稳定版本(已通过红蓝对抗验证)

About

PhantomStream is a dynamic tracking and protection tool for PDF documents, validated through real-world red team-blue team exercises. This project has continuously iterated and optimized in authentic attack-defense environments, ultimately establishing a multi-anchor defense system with practical value.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Sponsor this project

Packages

No packages published