GP TEE安全轮廓之攻击路径举例

前述GP TEE PP文档内容,参照:

我们一起来学习CC认证之GP TEE PP保护轮廓(一)

GP TEE之安全威胁分析

GP TEE安全资产问题分析

下雪了,天气冷!

攻击路径举例

A.3.1基于硬件的攻击路径

本部分内容描述了几种基于硬件方法的攻击路径,他们有可能完成一个成功的攻击识别步骤。

A.3.1.1侧信道分析攻击

本攻击的目标是从可信存储中恢复一个密钥,该密钥用于保护某个可信应用(TA)的数据资产。 通过攻破可信存储具体实现中使用的安全保护措施,可以提取相关密钥,例如,在可信存储执行操作时对TEE平台实施能量或电磁分析。攻击识别步骤所需满足的典型要求包括:

· 具备使用目标密钥实施密码学操作的能力;

· 对可信存储使用目标密钥执行的密码学操作能够测量数千次;

· 能够打开测量样本以便高效地恢复密钥,该密钥是可信存储实现所依赖的;

· 掌握用于TEE中可信存储使用的密码学协议或方案;

· 能够控制REE,以尽可能减小因REE代码执行所引入的噪声;

· 通过专用设备从SoC或封装设备外以及对位于设备附近的管脚和引线进行能量消耗或电磁辐射的度量与分析。

注意:所有属于评估(PP的FCS_COP.1所提要求)范围以内的密码学操作,无论是TEE OS内部使用的还是通过API提供给TA使用的,均可成为侧信道分析的潜在目标。

A.3.1.2错误注入攻击

错误注入攻击的目标是使用物理方法例如对输入信号(时钟、电源或重启)施加激光脉冲、电磁脉冲或电压毛刺,暂时性地破坏目标测试环境(TOE)的行为。这种破坏可以改变SoC的代码执行流或改变SoC所处理的数据表示,使得攻击者获益。

错误注入攻击可以被用于绕过在TOE中软件实现的安全检查,如签名验证或防回滚检查,也可以用于攻击硬件加速器和从错误结果的分析中提取密码学密钥(例如差分错误分析DFA)。

攻击识别步骤所需满足的典型要求包括:

· 侧信道分析能够识别和发现TOE的弱点或漏洞(不需要任何源代码);

· 配置并启动错误注入攻击的测试(可能涉及数字示波器、脉冲生成器、错误注入方法等):

· 配置测试设备使其物理接入目标组件(SoC或外部RAM);

· 由于REE侧会运行若干进程,控制REE使其尽可能减小噪声,并控制TEE中的程序执行,以获得一个触发信号。

A.3.1.3 外部DRAM探测

本攻击的目标是在AES使用TEE OS密码库计算过程中,恢复AES所使用的密钥值。假设RAM不在CPU封装结构中并且已知AES明文,攻击识别步骤所需满足的典型要求包括:

· 分析TOE样本以确定RAM的总线数据传输速率;

· 一个支持RAM数据速率的分析仪;

· 探测总线以读取和保存AES计算过程中处理和操作过的明文数据;

· 对明文的操作和处理实施相关性分析以恢复密密钥。

A.3.1.4 未保护的Debug接口

本攻击的目标是通过一个硬件Debug设备直接访问、读取或修改TEE内存中的内容,并借助该方法仿照外部DRAM的探测攻击来查找一个可被软件利用的漏洞,或者修改执行进程中的某个值,该执行进程原本因为没有获得授权而无法执行特权动作。

攻击识别步骤所需满足的典型要求包括:

· 通过JTAG访问系统并作分析;

· 分析TEE软件

· 或者查找出一个漏洞并设计相关利用方法,或者直接修改TEE内存内容以在未授权情况下改变进程实例的某个永久参数赋值。

A.3.2基于软件的攻击路径

本部分内容描述了几种基于软件方法的攻击路径,他们有可能促成一个成功的攻击识别步骤。值得注意的是,以下一些方法可能无法直接形成某种攻击,仅作为发现潜在漏洞的方式,例如模糊测试和利用已过时或隐藏的APIs。

A.3.2.1 针对密码技术的Cache Attack(缓存攻击)

本攻击的目标是恢复在某种设置下执行多种操作的TEE所使用的密钥,攻击需要满足所有以下条件:复在某种设置下执行多种操作的TEE所使用的密钥,攻击需要满足所有以下条件:

· TEE和REE共享同一cache存储空间;

· 密码学算法全部以软件形式实现;

· 密码学算法依赖cache的访问,例如查表操作。

本攻击通过严格控制REE的cache数据进行实施,能够借助分配给TEE的特定空间大小的cache获取信息,并度量TEE密码算法的执行时间以推断cache miss的统计数据,获取密码算法所使用密钥的相关信息,最终利用这些密钥实施非授权的操作。

攻击识别步骤所需满足的典型要求包括:

· 对REE具有root访问权限;

· 具有TEE的综合性文档,包括其使用的硬件资源信息;

· REE debug工具;

· 能够启动一系列测试用例,通过用例加载一个测试TA,使TA调用TEE密码学操作,以对攻击目标进行取样;

· 具有触发密码学操作的能力,操作应使用攻击目标对应的密钥;

· 能够在REE对TEE执行的密码学操作进行度量(例如度量上千次)。

在重启TEE或执行cache line剔除操作和cache清空操作时,本攻击使用的软件应该保证TEE端在每次进程执行时的状态均是一致的,因此:

· 所有的cache存储器均属于TEE,并且在密码算法进程执行开始前,cache中没有任何数据被缓存。

A.3.2.2 对于Client API和TEE驱动的模糊测试(fuzzing)

本攻击的目标是通过触发TEE内部异常状态或以无效、异常或随机数据使用TEE Client API或TEE驱动接口的方法,在TEE实现中触发异常行为并查找漏洞。

攻击识别步骤所需满足的典型要求包括:

· 对REE具有特权级访问权限,且可能是远程访问;

· 能够启动一系列实例以实现或运行定制的TA;

· 投入时间和资源来实现模糊测试工具或将现有软件适配TEE;

· 对TOE具有很好的理解和认识,能够评估和预测攻击的可行性,并且在系统崩溃时能够重启攻击,对于攻击可行性的评估和预测能力举例来说,攻击时应具有一段二进制代码能够将缓冲区溢出的数据写入到Rich OS的内存中。

A.3.2.3 突破内存隔离

本攻击的目标是通过利用控制内存隔离的硬件之漏洞,直接访问和修改TEE内存的数据内容。

攻击识别步骤所需满足的典型要求包括:

· 获取权限以绕过或修改访问控制或隔离规则,能够直接向物理内存写数据;

· 拥有TEE文档,记录有内存映射关系或逆向工程的相关资料。

一旦TEE的内存能够被访问到,基于软件的分析仪可以被用于对TEE代码和数据的直接逆向工程,进而决定向TEE内存中写入何种数据以在未获授权的情况下修改TEE的永久数据。

A.3.2.4 证书解析错误

本攻击的目标是向TEE提供一个构造有误的证书(证书只能被错误地解析)以使攻击者向安全环境注入恶意代码。攻击行为可以将TEE更新功能、TA服务功能或基于客户端认证功能的实现作为目标。

一般假设通过模糊测试或对边界情况有针对性的实验可以发现潜在的漏洞,因此不需要任何对于TOE的预备知识。

A.3.2.5 借助已知漏洞或问题APIs利用相关APIs或协议实施攻击

本攻击的目标是使用已废弃或未公开的接口向TEE注入恶意代码或从TEE提前秘密数据。攻击向量可以是一个基于不安全密码学算法的遗留通信协议,或者是一个已经不再针对安全问题进行更新的私有API。

一般假设从一个私有API中或通过探查使用未公开功能的现有应用程序可以发现漏洞。即使一个潜在的漏洞被识别和发现,攻击者仍然需要找到利用该漏洞的方法。攻击识别步骤所需满足的典型要求包括访问能够定位真实漏洞的debug设备和设计能够利用漏洞的能力。

原文发布于微信公众号 - 安智客(china_safer)

原文发表时间:2018-01-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏施炯的IoT开发专栏

Endnote for Windows Mobile

  想必园子里有好多朋友都写过paper吧,在阅读文献的时候,是不是觉得管理文献这个事情很麻烦。我正处于刚刚起步的阶段,英语写译老师Greatlion给我们推荐...

2036
来自专栏Python爬虫与算法进阶

Cookies池的后续解决方案

在上一篇文章: 从cookie池搭建说起,简单说明了自己对于该网站的想法,在经过两天的测试与研究之后,我有了更多的想法.

1111
来自专栏沃趣科技

容器化RDS|调度策略

导 语 前文数据库容器化|未来已来我们介绍了基于Kubernetes实现的下一代私有 RDS。其中,调度策略是具体实现时至关重要的一环,它关系到RDS 集群的服...

49810
来自专栏沈唁志

如何简单计算PHP网站是否已经最高负载

2285
来自专栏杨建荣的学习笔记

关于闪回区溢出导致的数据hang(r11笔记第12天)

对于Oracle数据库的闪回区的设置,之前和一个同事和讨论过,总体来说有一些不同的意见。 首先这个闪回区是一个逻辑的概念,闪回区的大小不会严格依赖于磁盘空间的情...

36113
来自专栏小白课代表

Autodesk Revit 2016安装教程

Revit是Autodesk公司一套系列软件的名称。Revit系列软件是专为建筑信息模型(BIM)构建的,可帮助建筑设计师设计、建造和维护质量更好、能效更高的建...

3693
来自专栏进击的程序猿

Dynamo:Amazon的高可用性的键-值存储系统

Dynamo是一个分布式键值系统,最初用于支持购物车系统,强调的是提供一个“永远在线“的用户体验。

1082
来自专栏iOSDevLog

Google Colab免费GPU教程

现在,你可以开发深度学习与应用谷歌Colaboratory -on的免费特斯拉K80 GPU -使用Keras,Tensorflow和PyTorch。

4805
来自专栏IT派

Django | CoolBlog开发笔记第1课:项目分析

CoolBlog开发笔记第1课:项目分析 首先说一下CoolBlog开发笔记是我制作的《Django实战项目》系列教程基础篇的内容,使用Django来开发一个...

3984
来自专栏FreeBuf

安卓新型恶意木马Xavier的发展过程和技术分析

近日,一个名为Xavier的安卓系统广告库木马被发现,它会在用户不知情的情况下窃取和泄露用户的信息,同时还可以在root过的安卓设备上静默安装任何APK。 据统...

3427

扫码关注云+社区

领取腾讯云代金券