常见的cache侧信道攻击方法

Prime+Probe

  1. 攻击者用自己的数据填充特定的cache组 (Prime)
  2. 等待目标受害者执行, 更新缓存
  3. 重新读取Prime阶段填充的数据, 测量并记录各个cache组的读取时间 (Probe)

Flush+Reload

  1. 将共享内存中特定位置的缓存数据逐出 (Flush)
  2. 等待目标受害者执行, 更新缓存
  3. 重新加载Flush阶段逐出的内存块, 测量并记录cache组的重载时间 (Reload)

Flush+Flush

  1. 通过Flush清空缓存的原始数据
  2. 等待目标受害者运行, 更新缓存, 并刷新共享缓存行, 测量刷新时间
  3. 根据测量时间判断原始数据是否被重新加载进缓存

Evict+Time

  1. 受害者执行, 并记录其执行时间
  2. 使用Evict方法覆盖cache组中的数据
  3. 再次执行受害者进程, 并第2次记录执行时间 (Time), 如果时间不一致且执行时间变长则说明程序运行时读取了缓存中的数据

Prime+Count

  1. 攻击者使用自身地址空间中的内容填充缓存 (Prime)
  2. 等待受害者执行, 更新缓存
  3. 攻击者通过PMU (performance monitor unit, PMU) 检测发生缓存未命中事件的个数 (Count)

Prime+Abort

  1. 打开TSX (transactional synchronization extensions)事务
  2. 攻击者用自己的数据填充特定的cache组 (Prime)
  3. 等待受害者执行
  4. 如果发生Abort, 则表示某些程序已经访问了目标cache组 (Abort)

Reload+Reflush

  1. 攻击者和受害者需要共享内存, 受害者要用到的数据是w, 假设insertion age为2
  2. 攻击者将目标地址与w--1个数据(0--evw--2)放入cache, 置cache为insertion age
  3. 等待受害者访问cache
  4. 如果受害者访问了目标, 则目标块的age减1, 其余age不变
  5. 如果受害者没有访问目标,则所有的age均不变
  6. 检索信息(强制miss+Reload): 攻击者访问evw--1来强制产生一个cache miss, 逐出组的位置由受害者是否访问了该目标决定
  7. 如果受害者访问了目标, 按照逐出策略, 逐出第1个age为3的块并将其置为insertion age
  8. 如果受害者没有访问目标, 按照逐出策略, 逐出目标块并将其置为insertion age
  9. 刷新 (Refresh)状态: 刷新cache, 重载 (Reload) 目标并将其置为insertion age, 然后再Reload被evw--1逐出的数据
相关推荐
Guheyunyi19 小时前
智慧消防管理系统如何重塑安全未来
大数据·运维·服务器·人工智能·安全
中科固源19 小时前
应用层|低空应用安全的 “精工锻造者”,中科数测以多工具矩阵赋能应用从开发到运维的全周期安全
安全·网络安全·低空
鲨莎分不晴20 小时前
强化学习第五课 —— A2C & A3C:并行化是如何杀死经验回放
网络·算法·机器学习
八月的雨季 最後的冰吻20 小时前
FFmepg-- 32-ffplay源码- PacketQueue 的线程安全机制 以及 serial 字段的作用
安全·ffmpeg
Smartdaili China1 天前
掌握Java网页抓取:技术与示例完整指南
java·网络·学习·指南·网页·住宅ip·爬虫api
雾削木1 天前
k230 Pyhton三角形识别
运维·服务器·网络·stm32·智能路由器
郝学胜-神的一滴1 天前
Python数据模型:深入解析及其对Python生态的影响
开发语言·网络·python·程序人生·性能优化
JZC_xiaozhong1 天前
多系统并行的权限治理难题:如何消除“权限孤岛”与安全风险?
安全·数据安全·etl工程师·iam·数据集成与应用集成·多系统权限管理·统一数据集成
北京聚信万通科技有限公司1 天前
传输协议:AS3
服务器·网络·安全·电子数据交换·as3
爬山算法1 天前
Netty(12)Netty支持哪些协议和传输方式?
网络