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


来源:移动支付网    作者:安智客    2018-1-26 9:26

攻击路径举例

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设备和设计能够利用漏洞的能力。

本文为作者授权发布,不代表移动支付网立场,转载请注明作者及来源,未按照规范转载者,移动支付网保留追究相应责任的权利。
相关文章

月点击排行
关于本站    联系我们    版权声明    手机版
Copyright © 2011-2018 移动支付网    粤ICP备11061396号-5     粤公网安备 44030602000994号