跳转到主要内容

【Zynq-7000 SoC 设计咨询】:BootROM NAND 驱动中发生缓冲器上溢

judy 提交于

描述
从 NAND 闪存启动 Zynq-7000 SoC 器件时,BootROM 中的 NAND 驱动在 NAND 参数页面 (Parameter Page) 中执行读取时不会对输入进行验证。

如果从参数页面读入的备用字节包含恶意的非法值,则会导致缓冲器上溢,从而可能导致执行任意代码。

要成功完成此项攻击,需对 Zynq-7000 SoC 器件进行物理访问和修改,将原始 NAND 闪存替换为 NAND 闪存仿真器件。

  • 仅限使用身份验证或加密进行安全启动的 Zynq-7000 SoC 器件才会受此攻击影响。
  • 此项攻击不会影响任何其它产品系列。
  • 解决方案
    如果可对 Zynq-7000 进行物理访问,请确保将篡改界限扩展至同时包含 Zynq-7000 SoC 和 NAND 接口。

    其它保护措施包括:

  • 在 NAND 接口上使用盲孔和埋线,移除所有裸露在外的走线,这样即可最大程度提升连接到 NAND 接口的难度。
  • 将开发板设计为一旦与 NAND 内存断开连接,就会导致 Zynq-7000 系统永久性损坏
  • 将开发板设计为一旦连接至 NAND 接口,就会导致 Zynq-7000 系统永久性损坏
  • 产品与工具

    ZYNQ

    Zynq是Xilinx公司推出的一系列SoC(System-on-Chip)产品家族,它将传统的FPGA(可编程逻辑器件)与嵌入式处理器相结合,形成了一种集成了硬件和软件处理能力的单一芯片解决方案。Zynq的设计目标是提供更高的性能和灵活性,同时减少系统的功耗和复杂性。

    Zynq广泛应用于嵌入式系统设计、通信、图像处理、工业控制、汽车电子等领域,因为它提供了更好的性能和灵活性,同时减小了系统的体积和功耗。