一种面向深度嵌入式系统的函数地址空间布局随机化方法

    公开(公告)号:CN114385189A

    公开(公告)日:2022-04-22

    申请号:CN202210285035.9

    申请日:2022-03-23

    申请人: 东南大学

    IPC分类号: G06F8/41 G06F7/58

    摘要: 本发明公开一种面向深度嵌入式系统的函数地址空间布局随机化方法,解决在物联网领域,基于微控制器的深度嵌入式系统由于硬件资源受限,无法抵御代码重用攻击。该方法利用ARM TrustZone‑M以及内存保护单元,在系统运行过程中,当产生函数调用时将被调用函数随机加载到一块空闲内存区域中并执行,实现程序中每个函数的执行地址在每次运行时被随机地加载到内存中执行,实现函数地址空间的随机化。本方法首先利用MPU对存储在闪存中的程序代码段设置为不可执行,以使得函数调用时产生异常;然后利用MPU异常处理机制对被调用的函数触发的异常进行地址验证,在验证通过后将该函数随机加载至内存中;最后在内存中执行该函数。

    一种面向深度嵌入式系统的函数地址空间布局随机化方法

    公开(公告)号:CN114385189B

    公开(公告)日:2022-06-21

    申请号:CN202210285035.9

    申请日:2022-03-23

    申请人: 东南大学

    IPC分类号: G06F8/41 G06F7/58

    摘要: 本发明公开一种面向深度嵌入式系统的函数地址空间布局随机化方法,解决在物联网领域,基于微控制器的深度嵌入式系统由于硬件资源受限,无法抵御代码重用攻击。该方法利用ARM TrustZone‑M以及内存保护单元,在系统运行过程中,当产生函数调用时将被调用函数随机加载到一块空闲内存区域中并执行,实现程序中每个函数的执行地址在每次运行时被随机地加载到内存中执行,实现函数地址空间的随机化。本方法首先利用MPU对存储在闪存中的程序代码段设置为不可执行,以使得函数调用时产生异常;然后利用MPU异常处理机制对被调用的函数触发的异常进行地址验证,在验证通过后将该函数随机加载至内存中;最后在内存中执行该函数。