memset() 漏洞
memset() vulnerability
我在嵌入式应用程序中使用 memset 来删除一个数据。这是函数:
uint8_t Delete()
{
memset(cure.name, 0x0, 32);
cure.volume = 0;
cure.valid=0;
printf("[*] Cure DELETED\n");
return 1;
}
我正在尝试针对故障注入攻击(时钟故障)评估它。正如我在我的实验中看到的那样,时钟故障 memset 也会覆盖邻居的内存块。 (它们已被零填充)。我可以使用更安全(更安全)的 memset 替代功能吗?可能是在所有复制步骤中验证目标块的指令。
预先感谢您的帮助;
memset是标准库函数;不太可能考虑有意产生的硬件故障。
针对这些故障的固件保护似乎取决于:
- 使执行时间不可预测
- 正在添加自验证码。
我怀疑您将不得不编写自己的函数来执行此操作;例如,您可以在循环中添加随机延迟以将内存归零。
我不知道这是否足够。您可能需要有关系统易受攻击的内容的更多详细信息;针对的是什么指令,为了也加验证码
我在嵌入式应用程序中使用 memset 来删除一个数据。这是函数:
uint8_t Delete()
{
memset(cure.name, 0x0, 32);
cure.volume = 0;
cure.valid=0;
printf("[*] Cure DELETED\n");
return 1;
}
我正在尝试针对故障注入攻击(时钟故障)评估它。正如我在我的实验中看到的那样,时钟故障 memset 也会覆盖邻居的内存块。 (它们已被零填充)。我可以使用更安全(更安全)的 memset 替代功能吗?可能是在所有复制步骤中验证目标块的指令。
预先感谢您的帮助;
memset是标准库函数;不太可能考虑有意产生的硬件故障。 针对这些故障的固件保护似乎取决于:
- 使执行时间不可预测
- 正在添加自验证码。
我怀疑您将不得不编写自己的函数来执行此操作;例如,您可以在循环中添加随机延迟以将内存归零。
我不知道这是否足够。您可能需要有关系统易受攻击的内容的更多详细信息;针对的是什么指令,为了也加验证码