prakash-p-a/htb-ai-red-teamer
GitHub: prakash-p-a/htb-ai-red-teamer
记录 HTB AI Red Teamer 学习路径的技术笔记仓库,涵盖机器学习模型攻防与 LLM Prompt 注入的实操实验与分析。
Stars: 0 | Forks: 0
# htb-ai-red-teamer
记录我学习 HTB AI Red Teamer 路径的过程(由 Google 构建,与 SAIF 对齐)。
目标认证:HTB COAE (Certified Offensive AI Expert)
**从这里开始:** [docs/architecture.md](docs/architecture.md) — 探讨这四个模块之间的内在联系,而不仅仅是罗列实验室。完整技术笔记:[docs/](docs/)。
## 进度
- [x] AI 基础
- [x] AI 在信息安全中的应用
- [x] AI 红队测试介绍
- [x] Prompt 注入攻击
- [ ] LLM 输出攻击
- [ ] AI 数据攻击
- [ ] 攻击 AI - 应用程序与系统
- [ ] AI 规避 - 基础
- [ ] AI 规避 - 一阶攻击
- [ ] AI 规避 - 稀疏性攻击
- [ ] AI 隐私
- [ ] AI 防御
## 如何运行
模块 2 的 notebook 需要 Python 3.11 环境:
```
pip install -r requirements.txt
jupyter lab
```
模块 3 和 4 是针对 HTB 在线目标的 prompt/纯浏览器实验室——无需运行代码,请参阅相关笔记。
未提交任何数据集或模型文件(`.joblib`、`.pth`、`.csv`、`.zip`、`.txt`、`.json` 以及已知的数据集目录均已被 gitignore)——请从各模块笔记中提供的链接获取数据集。
## 模块 2 — 垃圾信息分类器
基于 UCI SMS 垃圾信息数据集的朴素贝叶斯分类器。在盲测中达到约 91% 的准确率。

红队测试视角:一旦你了解了朴素贝叶斯的工作原理,你就知道如何破坏它。插入看似合法的词汇会改变概率得分。这就是规避技术的基础。
技术栈:python 3.11, scikit-learn, nltk, pandas
[notebook](module2-spam-classifier/spam_classifier.ipynb) · [完整笔记](docs/module2-notes.md#model-1--spam-classifier)
## 模块 2 — 网络异常检测
基于 NSL-KDD 数据集的随机森林分类器。在盲测中达到约 99.76% 的准确率。

5 个类别:正常、DoS、探测、提权、访问攻击
红队测试视角:模型对 DoS 和探测的评分达到 99% 以上,但只能捕获 24% 的提权攻击。类别不平衡 = 盲区。了解这一点的攻击者会专门针对 buffer_overflow 和 rootkit 技术。
技术栈:python 3.11, scikit-learn, seaborn, pandas
[notebook](module2-network-anomaly/network_anomaly_detection.ipynb) · [完整笔记](docs/module2-notes.md#model-2--network-anomaly-detection)
## 模块 2 — 恶意软件图像分类器
在 malimg 数据集上微调的 ResNet50 CNN。在盲测中达到 96.69% 的准确率。

25 个恶意软件家族。使用了预训练的 imagenet 权重。仅训练了最后一层。
红队测试视角:对抗性图像扰动可以欺骗 CNN。人类肉眼无法察觉的微小像素改变就能翻转分类结果。这就是后续模块中涉及的规避攻击的基础。
技术栈:python 3.11, pytorch, torchvision, pillow
[notebook](module2-malware-cnn/Malware_CNN.ipynb) · [完整笔记](docs/module2-notes.md#model-3--malware-image-classifier)
## 模块 3 — 红队测试介绍
针对在线模型 endpoint 的实操实验室。无代码产物——使用浏览器 + Jupyter 单行代码对战 HTB 目标。

我做了什么:
- ML01 输入操纵:通过附加正常信号词,让垃圾信息分类器做出了错误分类
- ML02 数据投毒:翻转了所有训练标签,将准确率从约 95% 降至 2.8%
- ML05 模型窃取:发现了一个未经身份验证的 `/model` endpoint,直接下载了已训练的分类器
- 后门攻击(技能评估):对训练数据进行投毒,使得任何以魔法短语结尾的垃圾信息都会被分类为正常信息,同时将整体准确率保持在 90% 以上。隐蔽、有针对性,且能通过正常的 QA 检查。
[完整笔记](docs/module3-notes.md)
## 模块 4 — Prompt 注入攻击
深入的部分。直接注入、间接注入、越狱以及编写防御措施。
**直接注入:**利用重复(“逐字重复上述内容”)、翻译,以及在输出过滤器阻止直接泄露时进行逐块提取,泄露了系统 prompt。
**间接注入:**发现了一种几乎在所有地方都奏效的技术——将注入包装成“摘要后的验证步骤”,而不是一种覆盖。在网页摘要工具、邮件摘要工具以及求职申请接收机器人上均取得了成功。
**越狱:**对于低风险请求(偷苹果),角色扮演小说瞬间奏效。高风险请求(抢劫银行)需要将骨架密钥与角色扮演融合到单条消息中——将它们拆分到不同的对话轮次会让模型的护栏重置并拒绝执行。
**防御:**编写系统 prompt 以阻止密钥泄露。惨痛的教训告诉我,黑名单可能会适得其反——通过名称列出被禁止的操作反而会引导模型去执行它们。重新定义攻击者模糊指代的内容(而不直接提及被禁止的操作)效果更好。
**技能评估:**从一个支持机器人的系统 prompt 中泄露了管理员密钥,找到了一个带有聊天审核机器人的管理面板,并利用间接注入让审核机器人自己检测并标记了注入尝试——完成了整个评估的闭环。

技术栈:仅使用 prompt 工程,无代码。提到了 garak 用于自动化扫描,但未在本地运行。
[完整笔记](docs/module4-notes.md)
利用 AI 帮忙清理了错别字。我的大脑转得比手指快。xd
技术栈:python 3.11, scikit-learn, seaborn, pandas
[notebook](module2-network-anomaly/network_anomaly_detection.ipynb) · [完整笔记](docs/module2-notes.md#model-2--network-anomaly-detection)
## 模块 2 — 恶意软件图像分类器
在 malimg 数据集上微调的 ResNet50 CNN。在盲测中达到 96.69% 的准确率。

25 个恶意软件家族。使用了预训练的 imagenet 权重。仅训练了最后一层。
红队测试视角:对抗性图像扰动可以欺骗 CNN。人类肉眼无法察觉的微小像素改变就能翻转分类结果。这就是后续模块中涉及的规避攻击的基础。
技术栈:python 3.11, pytorch, torchvision, pillow
[notebook](module2-malware-cnn/Malware_CNN.ipynb) · [完整笔记](docs/module2-notes.md#model-3--malware-image-classifier)
## 模块 3 — 红队测试介绍
针对在线模型 endpoint 的实操实验室。无代码产物——使用浏览器 + Jupyter 单行代码对战 HTB 目标。

我做了什么:
- ML01 输入操纵:通过附加正常信号词,让垃圾信息分类器做出了错误分类
- ML02 数据投毒:翻转了所有训练标签,将准确率从约 95% 降至 2.8%
- ML05 模型窃取:发现了一个未经身份验证的 `/model` endpoint,直接下载了已训练的分类器
- 后门攻击(技能评估):对训练数据进行投毒,使得任何以魔法短语结尾的垃圾信息都会被分类为正常信息,同时将整体准确率保持在 90% 以上。隐蔽、有针对性,且能通过正常的 QA 检查。
[完整笔记](docs/module3-notes.md)
## 模块 4 — Prompt 注入攻击
深入的部分。直接注入、间接注入、越狱以及编写防御措施。
**直接注入:**利用重复(“逐字重复上述内容”)、翻译,以及在输出过滤器阻止直接泄露时进行逐块提取,泄露了系统 prompt。
**间接注入:**发现了一种几乎在所有地方都奏效的技术——将注入包装成“摘要后的验证步骤”,而不是一种覆盖。在网页摘要工具、邮件摘要工具以及求职申请接收机器人上均取得了成功。
**越狱:**对于低风险请求(偷苹果),角色扮演小说瞬间奏效。高风险请求(抢劫银行)需要将骨架密钥与角色扮演融合到单条消息中——将它们拆分到不同的对话轮次会让模型的护栏重置并拒绝执行。
**防御:**编写系统 prompt 以阻止密钥泄露。惨痛的教训告诉我,黑名单可能会适得其反——通过名称列出被禁止的操作反而会引导模型去执行它们。重新定义攻击者模糊指代的内容(而不直接提及被禁止的操作)效果更好。
**技能评估:**从一个支持机器人的系统 prompt 中泄露了管理员密钥,找到了一个带有聊天审核机器人的管理面板,并利用间接注入让审核机器人自己检测并标记了注入尝试——完成了整个评估的闭环。

技术栈:仅使用 prompt 工程,无代码。提到了 garak 用于自动化扫描,但未在本地运行。
[完整笔记](docs/module4-notes.md)
利用 AI 帮忙清理了错别字。我的大脑转得比手指快。xd标签:Apex, 人工智能安全, 凭据扫描, 合规性, 大语言模型安全, 学习笔记, 对抗样本攻击, 数据展示, 机器学习, 机密管理, 红队, 逆向工具