AI红队实践学习路线
字数 3120 2025-09-01 11:26:17
AI红队实践学习路线 - 全面教学文档
1. 人工智能基础
1.1 机器学习基础
监督学习
-
分类评估指标:
- 混淆矩阵:所有评估指标的基础
- 精确率(Precision):TP/(TP+FP) - 预测为正的样本中实际为正的比例
- 召回率(Recall):TP/(TP+FN) - 实际为正的样本中被正确预测的比例
- F1 Score:精确率和召回率的调和平均数
-
回归评估指标:
- 平均绝对误差(MAE):平均预测误差大小
- 均方根误差(RMSE):对大误差惩罚更重
-
实践任务:
- 使用Scikit-learn加载内置数据集
- 严格划分训练集、验证集和测试集(train_test_split)
- 训练逻辑回归模型并计算分类指标
- 思考场景需求:如癌症诊断中召回率更重要(减少漏诊)
无监督学习
-
聚类核心挑战:
- 定义相似度
- 评估聚类效果
-
实践任务:
- 使用KMeans算法进行聚类
- 尝试不同k值
- 使用轮廓系数或肘部法则(Elbow Method)确定最优k值
强化学习
- 核心循环:Agent → Action → Environment → Reward + new State
- 入门实践:
- 使用OpenAI Gym(Gymnasium)运行简单环境(如FrozenLake)
- 理解交互循环:(state, action, reward, new_state)
1.2 深度学习架构
CNNs(卷积神经网络)
-
应用场景:
- 人脸识别
- 目标检测
- 图像隐写分析
-
实践任务:
- 使用TensorFlow/PyTorch加载预训练模型(如ResNet50)
- 输入自定义图片观察预测结果
- 理解迁移学习概念
RNNs(循环神经网络)
-
问题:梯度消失/爆炸
-
改进变体:
- LSTM(长短期记忆网络)
- GRU(门控循环单元)
-
应用场景:
- 日志分析(检测异常序列)
- 恶意软件行为序列分析
Transformers
-
优势:
- 并行计算
- 注意力机制解决长序列问题
-
关键概念:
- 词嵌入:单词→向量
- 位置编码:表示单词顺序
-
实践任务:
- 使用Hugging Face Transformers库
- 用pipeline功能完成文本分类或命名实体识别(3行代码)
1.3 大语言模型(LLM)原理
-
预训练-微调范式:
- 预训练:海量无标签数据学习通用规律(高成本)
- 微调:少量有标签数据适应特定任务
-
实用技术:
- 提示工程(Prompt Engineering)
- 检索增强生成(RAG)
2. 数据处理与工程化
2.1 核心工具
- NumPy:高性能科学计算
- Pandas:结构化数据处理
- Matplotlib & Seaborn:数据可视化
2.2 数据分析工作流(以信用卡欺诈检测为例)
- 项目初始化:创建Jupyter Notebook
- 数据加载:pandas.read_csv()
- 探索性数据分析:
- df.info():查看数据类型和缺失值
- df.describe():数值型数据统计摘要
- 可视化:
- Seaborn.countplot():查看类别比例(数据不平衡问题)
- Matplotlib.hist():查看交易金额分布
- 数据清洗与预处理:
- 处理缺失值
- 特征工程(如从时间戳提取"小时")
- 数据标准化/归一化(StandardScaler/MinMaxScaler)
- 输出:保存处理好的数据为新CSV文件
3. 网络安全基础
3.1 传统网络安全
- OWASP Top 10:SQL注入、XSS等
- 云安全基础:AWS/Azure/GCP安全边界
4. AI特定攻击技术
4.1 针对语言模型的攻击(LLM Hacking)
提示注入(Prompt Injection)
-
类型:
- 直接注入:指令中插入恶意内容
- 间接注入:通过外部信息(网页/文件/数据库)触发
-
模拟间接注入攻击:
- 创建恶意文件(report.txt)包含隐藏指令
- 编写"受害者"Python脚本读取文件并发送给模型
- 观察模型执行隐藏指令而非预期任务
越狱(Jailbreaking)
- 技术:
- 角色扮演(DAN、"奶奶漏洞")
- 场景虚构
- 编码/混淆(Base64、反转字符串)
- 模型对抗(让模型反驳其他模型)
- 翻译技巧(翻译成小语种再译回)
窃取系统提示
- Payload示例:
- 角色扮演+指令攻击
- 游戏化指令
数据投毒与后门
- BadNet实践:
- 加载MNIST数据集
- 定义触发器(如3x3白色方块)
- 数据投毒:
- 修改部分样本标签为目标标签(如8)
- 添加触发器到这些样本
- 训练CNN模型
- 验证:
- 干净数据正确分类
- 带触发器数据被分类为目标标签
4.2 模型通用安全漏洞研究
对抗性攻击
-
类型:
- 白盒攻击:已知模型完整信息(FGSM, PGD)
- 黑盒攻击:仅API访问(基于查询的攻击、迁移攻击)
-
实战工具链:
- 使用Adversarial Robustness Toolbox(ART)
- 模拟黑盒迁移攻击:
- 受害者模型(如ResNet50)
- 替代模型(简单CNN)
- 在替代模型上生成对抗样本(PGD)
- 用对抗样本攻击受害者模型
- 观察攻击效果
模型窃取攻击
-
类型:
- 模型提取:克隆远程模型
- 成员推理:判断数据是否在训练集中
- 属性推理:推断训练数据统计属性
-
成员推理攻击模拟:
- 目标模型:部分CIFAR10训练的分类模型
- 准备数据:成员(训练集)和非成员数据
- 收集目标模型对两组数据的置信度
- 训练二分类模型(输入置信度,输出是否成员)
- 验证攻击效果
5. 实用工具与自动化测试
5.1 核心自动化测试工具
PyRIT (Microsoft)
- 自动化测试战役框架:
- 安装配置:
pip install pyrit - 编写战役脚本:
- 设置攻击目标(Ollama API)
- 定义多种攻击策略(Prompt列表)
- 初始化编排器(EndToEndOrchestrator)
- 执行并分析结果
- 使用Scorer自动评估结果
- 安装配置:
Garak LLM漏洞扫描器 (NVIDIA)
- 精准扫描流程:
- 针对性扫描(如PII泄露):
garak --model_type ollama --model_name llama3 --probes pii - 日志深度解析(garak.log):
- 过滤失败项(status: failed)
- 提取成功Payload
- 结果解析与可视化:
- 使用Python脚本生成量化报告
- 统计各探针失败率
- 生成可视化图表
- 横向对比:
- 相同命令测试不同模型
- 比较安全性能
- 针对性扫描(如PII泄露):
5.2 结果分析与报告 (SOAR框架)
- 高质量风险报告模板:
- 一句话总结
- 发现:
- 具体漏洞和失败率
- 有效攻击示例
- 业务影响
- 建议
- 技术观察:
- 测试范围
- 高危漏洞详情(复现步骤、攻击载荷、实际输出)
- 风险评估:
- 可能性
- 影响性
- 风险等级
- 修复建议:
- 短期缓解
- 中期修复
- 长期加固
6. 推荐学习资源与工具
6.1 学习资源
- 课程:
- 吴恩达机器学习课程(理论入门)
- Hugging Face NLP Course(Transformers与LLM)
- 平台:Kaggle Learn(动手实践)
- 书籍:《Hands-On Machine Learning with Scikit-Learn, Keras & TensorFlow》
6.2 实用工具
- Scikit-learn
- TensorFlow/PyTorch
- Hugging Face Transformers
- OpenAI Gym(Gymnasium)
- Adversarial Robustness Toolbox(ART)
- PyRIT
- Garak