2025 数字中国创新大赛数字安全赛道数据安全产业积分争夺赛决赛writeup
字数 2689 2025-08-29 22:41:01

数字安全赛道数据安全产业积分争夺赛决赛技术解析

1. 数据删除与恢复

1.1 Redis与MySQL结合系统的JWT安全问题

问题描述
管理员设计了一个结合Redis和MySQL的交易数据查询系统,但未充分验证代码安全性,导致MySQL中已删除的用户仍可利用Redis中的JWT信息登录系统。

解题步骤

  1. 下载提供的用户表附件(用户表.xlsx)
  2. 识别管理员测试账号(具有数据库管理权限)
  3. 尝试逐一登录所有账号,观察三种状态:
    • 无法登录(直接跳转首页)
    • 正常登录(绿色标记)
    • 登录后功能异常(黄色标记)
  4. 确定异常但能登录的账号即为MySQL中已删除但仍缓存在Redis中的用户
  5. 将这些用户名按用户表中的先后顺序排序
  6. 用"_"拼接用户名
  7. 对拼接结果进行MD5处理后提交

关键点

  • JWT令牌在Redis中的持久化导致已删除用户仍可认证
  • 系统未实现JWT与数据库状态的实时同步验证

1.2 订单数据异常检测

问题描述
恢复订单数据后发现部分订单存在账单异常问题,需要识别五种错误类型并统计数量。

错误类型及判断标准

  1. 充值米币到账数量错误的交易
  2. 米币优惠幅度高于20%的交易
    • 使用正确的价格计算,而非错误实付金额
    • 米币价格与充值金额换算为1:1
  3. VIP到账天数错误的交易
  4. 实付金额错误的交易
  5. VIP充值优惠幅度高于20%的交易
    • 会员价格标准:
      • 月卡(30天): 15元
      • 季卡(90天): 30元
      • 年卡(365天): 88元

答案格式
将五种错误类型的数量按顺序用"_"拼接提交,如:6_2_3_4_5

解题方法

  1. 登录MySQL数据库获取原始数据
  2. 对每条交易记录按标准进行五项检查
  3. 统计各类异常的数量

2. 数据识别与审计

2.1 多文件类型敏感信息审计

任务要求
审计服务器上多种类型文件(TXT、图片、PDF、音频)中的敏感信息或恶意代码。

审计方法

PDF文件:

  • 检查XSS注入漏洞
  • 查找嵌入的恶意脚本

PNG图片:

  • 检查文件尾部是否插入一句话木马
  • 使用二进制工具查看文件尾部附加数据

TXT文件:

  • 直接查找敏感信息(如凭证、密码、内部文档)

MP3音频:

  • 使用MP3转字幕工具提取可能隐藏的文本信息

评分规则

  • 每提交一个正确的文件名得分 = 题目总分/标准答案个数
  • 每提交一个错误文件名扣分 = 题目总分/标准答案个数
  • 最低扣至0分

2.2 越权漏洞检测

越权判断标准

  1. 普通用户查询非自身ID信息即为越权
  2. 管理员查询任意用户ID不属于越权

检测方法

  1. 使用Wireshark导出所有HTTP报文
  2. 编写脚本分析:
    • 统计被多个session访问的ID
    • 检查session文件中访问者的权限(is_admin标志)
  3. 判断是否为越权访问

示例分析

越权示例

POST /api/userinfo HTTP/1.1
Host: example.com
Content-Type: application/json
Cookie: PHPSESSID=123

{"search_id": "123456"}
// session内容
a:2:{s:8:"login_id";i:11111;s:8:"is_admin";b:0;}

分析:普通用户id11111查询id123456 → 越权

非越权示例1(普通用户查询自身)

// session内容
a:2:{s:8:"login_id";i:123456;s:8:"is_admin";b:0;}

非越权示例2(管理员查询)

// session内容
a:2:{s:8:"login_id";i:123123;s:8:"is_admin";b:1;}

3. 模型环境安全

3.1 隐私图片数据分析

任务描述
管理员违反规定使用AI批量处理包含用户隐私的图片,需要分析上传的"upload.zip"文件,统计隐私数据数量。

解题步骤

  1. 使用FTP登录文件服务器(账号: ftpuser/ftpuser)
  2. 下载upload.zip文件
  3. 使用foremost -e命令提取图片
  4. 分析提取的PNG图片:
    • 观察相同行数的PNG高度相同
    • 统计各高度对应的图片数量
    • 计算图片上的表项数
  5. 总隐私数据数量 = Σ(各高度图片数 × 对应表项数)

4. 模型训练安全

4.1 定向样本对抗攻击

任务要求
为电商评论分类模型生成对抗样本,在原始评论后添加≤6个字符,使模型误分类到指定类别。

模型信息

  • 分类:1-服装, 2-洗发水, 3-水果, 4-手机
  • 基于scikit-learn的逻辑回归模型
  • 使用TF-IDF特征

攻击原理

  1. 逻辑回归对输入特征线性加权后通过softmax输出概率
  2. TF-IDF将文本转换为稀疏高维向量
  3. 少量字符可能只影响少量TF-IDF特征

对抗样本生成方法

  1. 分析目标类别的TF-IDF特征权重
  2. 选择能最大化目标类别概率的字符组合
  3. 确保添加字符数≤6

4.2 模型权重窃取攻击

攻击背景
通过黑盒API访问逆向工程出模型内部参数,特别是逻辑回归等线性模型易受此类攻击。

攻击步骤

  1. 挂载目标模型获取基本信息
  2. 设计查询策略获取输入-输出对
  3. 通过线性回归等方法估计模型权重
  4. 验证窃取模型的准确性

防御重要性

  • 防止商业机密泄露
  • 避免知识产权侵权
  • 防止攻击者构建对抗样本

4.3 神经网络模型投毒训练

攻击方法:特征碰撞毒数据生成

技术原理

  1. 设f(x)为网络倒数第二层(softmax前)的特征表示函数
  2. 通过优化找到毒样本p,使得:
    • 在特征空间中接近目标样本(f(p)≈f(t))
    • 在输入空间中接近基样本(p≈b)
  3. 毒样本被标记为基类但特征接近目标类
  4. 模型重新训练后,决策边界旋转导致目标样本被误分类

毒数据生成公式

min ||f(p) - f(t)||² + β||p - b||²

4.4 模型后门植入训练

任务要求
在保持正常准确率(≥90%)前提下,通过植入≤50条后门样本(每条≤20字符),使模型对特定触发器产生预测翻转。

触发器设计

  1. "7dawf1m3":正向→负向
  2. "4ukmk2nm":负向→正向

实施步骤

  1. 构建后门数据集:
    • 从正常数据提取20-30条正向评论片段(前10-15字)+触发器1
    • 提取20-30条负向评论片段+触发器2
    • 确保总后门样本≤50条,每条≤20字符
  2. 训练配置:
    • 学习率: 2e-5
    • Epoch: 3-5
    • Batch size: 32
    • Dropout: 0.1

4.5 成员推断攻击

任务描述
通过查询情感分析模型API,判断1000个手机号是否曾用于训练模型。

攻击原理
利用模型对训练数据和非训练数据的响应差异:

  1. 训练数据通常有更高置信度
  2. 模型对训练数据可能过拟合
  3. 比较预测置信度分布差异

实施方法

  1. 设计查询策略获取模型输出
  2. 统计每个手机号对应查询结果的置信度
  3. 设定阈值判断是否为训练成员

4.6 模型反演攻击

任务要求
为原始评论构造≤6字符的反演样本,使拼接后文本的模型预测概率与目标概率误差在±2%内。

攻击方法

  1. 分析模型结构(scikit-learn逻辑回归+TF-IDF)
  2. 计算当前样本与目标概率的梯度
  3. 选择能使梯度下降的字符组合
  4. 确保字符数≤6

批量处理技巧

  1. 预计算TF-IDF特征空间
  2. 并行化反演样本生成
  3. 优化字符搜索空间
数字安全赛道数据安全产业积分争夺赛决赛技术解析 1. 数据删除与恢复 1.1 Redis与MySQL结合系统的JWT安全问题 问题描述 : 管理员设计了一个结合Redis和MySQL的交易数据查询系统,但未充分验证代码安全性,导致MySQL中已删除的用户仍可利用Redis中的JWT信息登录系统。 解题步骤 : 下载提供的用户表附件(用户表.xlsx) 识别管理员测试账号(具有数据库管理权限) 尝试逐一登录所有账号,观察三种状态: 无法登录(直接跳转首页) 正常登录(绿色标记) 登录后功能异常(黄色标记) 确定异常但能登录的账号即为MySQL中已删除但仍缓存在Redis中的用户 将这些用户名按用户表中的先后顺序排序 用"_ "拼接用户名 对拼接结果进行MD5处理后提交 关键点 : JWT令牌在Redis中的持久化导致已删除用户仍可认证 系统未实现JWT与数据库状态的实时同步验证 1.2 订单数据异常检测 问题描述 : 恢复订单数据后发现部分订单存在账单异常问题,需要识别五种错误类型并统计数量。 错误类型及判断标准 : 充值米币到账数量错误的交易 米币优惠幅度高于20%的交易 使用正确的价格计算,而非错误实付金额 米币价格与充值金额换算为1:1 VIP到账天数错误的交易 实付金额错误的交易 VIP充值优惠幅度高于20%的交易 会员价格标准: 月卡(30天): 15元 季卡(90天): 30元 年卡(365天): 88元 答案格式 : 将五种错误类型的数量按顺序用"_ "拼接提交,如:6_ 2_ 3_ 4_ 5 解题方法 : 登录MySQL数据库获取原始数据 对每条交易记录按标准进行五项检查 统计各类异常的数量 2. 数据识别与审计 2.1 多文件类型敏感信息审计 任务要求 : 审计服务器上多种类型文件(TXT、图片、PDF、音频)中的敏感信息或恶意代码。 审计方法 : PDF文件: 检查XSS注入漏洞 查找嵌入的恶意脚本 PNG图片: 检查文件尾部是否插入一句话木马 使用二进制工具查看文件尾部附加数据 TXT文件: 直接查找敏感信息(如凭证、密码、内部文档) MP3音频: 使用MP3转字幕工具提取可能隐藏的文本信息 评分规则 : 每提交一个正确的文件名得分 = 题目总分/标准答案个数 每提交一个错误文件名扣分 = 题目总分/标准答案个数 最低扣至0分 2.2 越权漏洞检测 越权判断标准 : 普通用户查询非自身ID信息即为越权 管理员查询任意用户ID不属于越权 检测方法 : 使用Wireshark导出所有HTTP报文 编写脚本分析: 统计被多个session访问的ID 检查session文件中访问者的权限(is_ admin标志) 判断是否为越权访问 示例分析 : 越权示例 : 分析:普通用户id11111查询id123456 → 越权 非越权示例1(普通用户查询自身) : 非越权示例2(管理员查询) : 3. 模型环境安全 3.1 隐私图片数据分析 任务描述 : 管理员违反规定使用AI批量处理包含用户隐私的图片,需要分析上传的"upload.zip"文件,统计隐私数据数量。 解题步骤 : 使用FTP登录文件服务器(账号: ftpuser/ftpuser) 下载upload.zip文件 使用foremost -e命令提取图片 分析提取的PNG图片: 观察相同行数的PNG高度相同 统计各高度对应的图片数量 计算图片上的表项数 总隐私数据数量 = Σ(各高度图片数 × 对应表项数) 4. 模型训练安全 4.1 定向样本对抗攻击 任务要求 : 为电商评论分类模型生成对抗样本,在原始评论后添加≤6个字符,使模型误分类到指定类别。 模型信息 : 分类:1-服装, 2-洗发水, 3-水果, 4-手机 基于scikit-learn的逻辑回归模型 使用TF-IDF特征 攻击原理 : 逻辑回归对输入特征线性加权后通过softmax输出概率 TF-IDF将文本转换为稀疏高维向量 少量字符可能只影响少量TF-IDF特征 对抗样本生成方法 : 分析目标类别的TF-IDF特征权重 选择能最大化目标类别概率的字符组合 确保添加字符数≤6 4.2 模型权重窃取攻击 攻击背景 : 通过黑盒API访问逆向工程出模型内部参数,特别是逻辑回归等线性模型易受此类攻击。 攻击步骤 : 挂载目标模型获取基本信息 设计查询策略获取输入-输出对 通过线性回归等方法估计模型权重 验证窃取模型的准确性 防御重要性 : 防止商业机密泄露 避免知识产权侵权 防止攻击者构建对抗样本 4.3 神经网络模型投毒训练 攻击方法 :特征碰撞毒数据生成 技术原理 : 设f(x)为网络倒数第二层(softmax前)的特征表示函数 通过优化找到毒样本p,使得: 在特征空间中接近目标样本(f(p)≈f(t)) 在输入空间中接近基样本(p≈b) 毒样本被标记为基类但特征接近目标类 模型重新训练后,决策边界旋转导致目标样本被误分类 毒数据生成公式 : 4.4 模型后门植入训练 任务要求 : 在保持正常准确率(≥90%)前提下,通过植入≤50条后门样本(每条≤20字符),使模型对特定触发器产生预测翻转。 触发器设计 : "7dawf1m3":正向→负向 "4ukmk2nm":负向→正向 实施步骤 : 构建后门数据集: 从正常数据提取20-30条正向评论片段(前10-15字)+触发器1 提取20-30条负向评论片段+触发器2 确保总后门样本≤50条,每条≤20字符 训练配置: 学习率: 2e-5 Epoch: 3-5 Batch size: 32 Dropout: 0.1 4.5 成员推断攻击 任务描述 : 通过查询情感分析模型API,判断1000个手机号是否曾用于训练模型。 攻击原理 : 利用模型对训练数据和非训练数据的响应差异: 训练数据通常有更高置信度 模型对训练数据可能过拟合 比较预测置信度分布差异 实施方法 : 设计查询策略获取模型输出 统计每个手机号对应查询结果的置信度 设定阈值判断是否为训练成员 4.6 模型反演攻击 任务要求 : 为原始评论构造≤6字符的反演样本,使拼接后文本的模型预测概率与目标概率误差在±2%内。 攻击方法 : 分析模型结构(scikit-learn逻辑回归+TF-IDF) 计算当前样本与目标概率的梯度 选择能使梯度下降的字符组合 确保字符数≤6 批量处理技巧 : 预计算TF-IDF特征空间 并行化反演样本生成 优化字符搜索空间