gpt4 book ai didi

arm - 如何确定 ARM 处理器是在通常的锁定 "world"还是在 Secore "world"中运行?

转载 作者:行者123 更新时间:2023-12-04 21:21:52 32 4
gpt4 key购买 nike

例如,virt-what显示您是否在硬件虚拟化“沙箱”中运行。

如何检测您是否在 ARM "TrustZone"沙箱中运行?

最佳答案

信任专区 可能和你想的不一样。有一个连续的模式。从“受信任功能的简单 API”到在每个世界中运行的“双操作系统”。

如果该问题有更多上下文,那将很有帮助。这是为了以编程方式确定还是出于逆向工程考虑?对于当前的 Linux 用户空间,答案是 没有 .

概括

  • 当前没有用户空间实用程序。
  • 基于时间的分析。
  • 基于代码的分析。
  • CPU 排除和SCR .
  • ID_PRF1位 [7:4]。

  • virt-what 不是一个万无一失的方法来发现你是否在管理程序下运行。它是为 linux 用户空间编写的程序。大多数情况下,这些是 shell scripts检查 /proc/cpuinfo等 procfs 是一个伪文件系统,它在内核上下文中运行代码并向用户空间报告。没有检测到 信任专区 在主线ARM linux中。根据设计, 使其难以被发现。设计意图是让正常世界中的代码不加修改地运行。

    代码分析

    为了与安全世界对话,普通世界需要 SMC指示。如果您的用户空间可以访问内核代码或 vmlinux 镜像,您可以尝试分析代码部分以获取 SMC 操作说明。但是,此代码可能存在于图像中,但从未激活。至少这说明了 Linux 内核是否对 TrustZone 有一些支持。您可以编写一个内核模块来捕获 SMC 的任何执行。说明,但可能有更好的解决方案。

    时序分析

    如果操作系统在安全的世界中运行,一些时间分析会显示,如果频率缩放未激活,一些 CPU 周期已被窃取。我认为这不是原始问题精神的答案。这依赖于知道安全世界是一个带有计时器(或至少是可抢占中断)的成熟操作系统。

    CPU 排除和 SCR
    SCR (安全配置寄存器)在正常世界中不可用。来自 ARM Cortex-A5 MPcore 手册(pg4-46),

    Usage constraints The SCR is:
    • only accessible in privileged modes
    • only accessible in Secure state.
    An attempt to access the SCR from any state other than secure privileged results in an Undefined instruction exception.


    ID_PRF1位 [7:4]。

    在某些 Cortex-A 系列上,指令,
    mrc p15, 0, r0, c0, c1, 1

    将获得一个值,其中位 [7:4] 指示 CPU 是否支持安全扩展,也称为 信任专区 .非零值表示支持。许多早期的 CPU 可能不支持这个 CP15 寄存器。所以,它很像 SCR并处理未定义的指令。此外,它不会告诉您代码在 中处于事件状态。信任专区 模式。

    概括

    您可以编写一个内核模块来尝试该指令并处理未定义的异常。这将检测到正常与安全的世界。但是,您必须排除没有 的 CPU。信任专区 一点也不。

    如果设备不是 ARMv6 或更高版本,则 信任专区 是不可能的。大量 Cortex-A 设备具有 信任专区 在 CPU 中,但它不活动。

    合并后的 SMC测试和 CPU id,仍然不够。一些引导加载程序在安全世界中运行,然后过渡到正常世界。所以安全仅在启动期间有效。

    从理论上讲,有可能知道,尤其是对系统有更多的了解。可能有很多迹象,例如来自 GIC 的虚假中断等。但是,我认为截至 2014 年 1 月不存在任何用户空间 linux 工具。这是病毒/rootkit 编写者和恶意软件检测软件之间的典型升级 war . TZ Rootkits

    关于arm - 如何确定 ARM 处理器是在通常的锁定 "world"还是在 Secore "world"中运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21218342/

    32 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com