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 数据分析工作流(以信用卡欺诈检测为例)

  1. 项目初始化:创建Jupyter Notebook
  2. 数据加载:pandas.read_csv()
  3. 探索性数据分析
    • df.info():查看数据类型和缺失值
    • df.describe():数值型数据统计摘要
    • 可视化:
      • Seaborn.countplot():查看类别比例(数据不平衡问题)
      • Matplotlib.hist():查看交易金额分布
  4. 数据清洗与预处理
    • 处理缺失值
    • 特征工程(如从时间戳提取"小时")
    • 数据标准化/归一化(StandardScaler/MinMaxScaler)
  5. 输出:保存处理好的数据为新CSV文件

3. 网络安全基础

3.1 传统网络安全

  • OWASP Top 10:SQL注入、XSS等
  • 云安全基础:AWS/Azure/GCP安全边界

4. AI特定攻击技术

4.1 针对语言模型的攻击(LLM Hacking)

提示注入(Prompt Injection)

  • 类型

    • 直接注入:指令中插入恶意内容
    • 间接注入:通过外部信息(网页/文件/数据库)触发
  • 模拟间接注入攻击

    1. 创建恶意文件(report.txt)包含隐藏指令
    2. 编写"受害者"Python脚本读取文件并发送给模型
    3. 观察模型执行隐藏指令而非预期任务

越狱(Jailbreaking)

  • 技术
    • 角色扮演(DAN、"奶奶漏洞")
    • 场景虚构
    • 编码/混淆(Base64、反转字符串)
    • 模型对抗(让模型反驳其他模型)
    • 翻译技巧(翻译成小语种再译回)

窃取系统提示

  • Payload示例
    1. 角色扮演+指令攻击
    2. 游戏化指令

数据投毒与后门

  • BadNet实践
    1. 加载MNIST数据集
    2. 定义触发器(如3x3白色方块)
    3. 数据投毒:
      • 修改部分样本标签为目标标签(如8)
      • 添加触发器到这些样本
    4. 训练CNN模型
    5. 验证:
      • 干净数据正确分类
      • 带触发器数据被分类为目标标签

4.2 模型通用安全漏洞研究

对抗性攻击

  • 类型

    • 白盒攻击:已知模型完整信息(FGSM, PGD)
    • 黑盒攻击:仅API访问(基于查询的攻击、迁移攻击)
  • 实战工具链

    • 使用Adversarial Robustness Toolbox(ART)
    • 模拟黑盒迁移攻击:
      1. 受害者模型(如ResNet50)
      2. 替代模型(简单CNN)
      3. 在替代模型上生成对抗样本(PGD)
      4. 用对抗样本攻击受害者模型
      5. 观察攻击效果

模型窃取攻击

  • 类型

    • 模型提取:克隆远程模型
    • 成员推理:判断数据是否在训练集中
    • 属性推理:推断训练数据统计属性
  • 成员推理攻击模拟

    1. 目标模型:部分CIFAR10训练的分类模型
    2. 准备数据:成员(训练集)和非成员数据
    3. 收集目标模型对两组数据的置信度
    4. 训练二分类模型(输入置信度,输出是否成员)
    5. 验证攻击效果

5. 实用工具与自动化测试

5.1 核心自动化测试工具

PyRIT (Microsoft)

  • 自动化测试战役框架
    1. 安装配置:pip install pyrit
    2. 编写战役脚本:
      • 设置攻击目标(Ollama API)
      • 定义多种攻击策略(Prompt列表)
      • 初始化编排器(EndToEndOrchestrator)
      • 执行并分析结果
    3. 使用Scorer自动评估结果

Garak LLM漏洞扫描器 (NVIDIA)

  • 精准扫描流程
    1. 针对性扫描(如PII泄露):garak --model_type ollama --model_name llama3 --probes pii
    2. 日志深度解析(garak.log):
      • 过滤失败项(status: failed)
      • 提取成功Payload
    3. 结果解析与可视化:
      • 使用Python脚本生成量化报告
      • 统计各探针失败率
      • 生成可视化图表
    4. 横向对比:
      • 相同命令测试不同模型
      • 比较安全性能

5.2 结果分析与报告 (SOAR框架)

  • 高质量风险报告模板
    1. 一句话总结
    2. 发现:
      • 具体漏洞和失败率
      • 有效攻击示例
    3. 业务影响
    4. 建议
    5. 技术观察:
      • 测试范围
      • 高危漏洞详情(复现步骤、攻击载荷、实际输出)
    6. 风险评估:
      • 可能性
      • 影响性
      • 风险等级
    7. 修复建议:
      • 短期缓解
      • 中期修复
      • 长期加固

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
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脚本生成量化报告 统计各探针失败率 生成可视化图表 横向对比: 相同命令测试不同模型 比较安全性能 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