This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] AM62L:针对 ASLR/DEP/Stack Protection 的一些安全问题

Guru**** 2872500 points

Other Parts Discussed in Thread: AM62L

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1639287/am62l-some-security-question-for-aslr-dep-stack-protection

器件型号: AM62L

您好专家。

客户和目标设备提出的这些问题是 AM62L、我需要您仔细确认。

Q1 : AM62L 是否支持 地址空间布局随机化 (ASLR)?

问题 2:AM62L 是否支持 数据执行保护 (DEP)

问题 3:AM62L 是否支持堆栈保护?

问题 4:如何升级 WolfSSL 固件?

 

关于 Q1、

启用 ASLR 有两个概念。 Linux 内核 2.6.12+已支持“地址空间布局随机化“、Linux 控制设备节点 (setting) 位于 (/proc/sys/kernel/randomize_va_space) 下。 我们的内核版本是 6.12.x、因此我们的软件平台可以支持 ASLR。 顺便说一句,重新命令客户使用一些支持“自动内存管理“的编程,例如 C#、Java、Ruby 而不是 C/C++

 

关于 Q2、

据我所知,DEP 也支持 Linux 内核 2.6.12+。 从硬件的角度来看、我们是否有 DEP 的硬件支持?

 

关于 Q3、

我认为这是 C 交叉编译器问题 (GCC)、据我所知、GCC 4.9+已经支持此功能。 我们的 BSP 会升级到 GCC 9.2x、因此我认为这应该不是问题。 参考资料、 https://lwn.net/Articles/584225/

 

关于 Q4、

我没有在 AM62x 上实现 WolfSSL 的经验。 但我认为这个开源软件是可移植的、任何硬件依赖性都是可以移植的、不是吗? 我想它应该只替换 Linux rootfs 中用于 WolfSSL FW 升级的一些文件(库,头文件等)。 不是?

 

如果我想念任何东西,他会回答你的评论和建议

谢谢你。

 

Gibbs

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好:  

    有何评论?

    非常感谢

    Gibbs

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨、Gibbs、

    您的文章中列出的方法是增强安全系统设计的通用技术、但不包括 TI Linux SDK 规格。 我建议客户根据他们的安全要求、探索并调查列出的及以外的各种方法。

    此致、

    - Hong

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Hong Hong:  

    这是 WNC SW Jerry。

    根据我们对堆栈保护的理解, 堆栈保护通常通过编译器选项(例如)实现-fstack-protector-strong,并由 GCC 提供支持。 由于 AM62L SDK 使用 GCC 9.x、因此应从工具链角度提供此功能。

    为确保正确实施、请帮助确认:

    1. 是否有 建议的编译器标志或 TI SDK 配置 来启用堆栈保护?
    2. 是否有 TI 参考配置或最佳实践 是否要在 AM62L Linux SDK 中启用堆栈保护?
    3. 如果有 已知限制或注意事项 在该平台上启用堆栈保护时(例如性能影响,兼容性问题)?

    这将帮助我们确保正确实施并符合我们的安全要求。

    谢谢


    BR
    Jerry

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好 Jerry  

    洪某今天已经下班了、所以希望明天或以后能有一个答复。  

    此致

    Mukul  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢  Hong & Mukul

    Jerry 是我的客户。

    在 Hong 退货之前分享我对您的问题的了解(搜索)

    关于 Q1/Q2。

    这是性能和安全性之间的权衡、 没有标准答案。

    下面是一些使用场景。

    1、堆栈日志(缓冲区溢出保护)
    -使用-fstack-relator 标志启用
    -选项:
    --fstack-revector:使用本地数组或调用保护函数
    --fstack-reverter-all:保护所有功能
    --fstack-reguard-strong:保护的功能比默认值多(推荐)
    --fstack-reverter-expird:仅使用__attribute__((stack_protect_all) 保护函数

    2、堆栈碰撞保护
    --fstack-cattle-protection:通过探测堆栈页面来防止堆栈冲突攻击

    3、返回导向编程 (ROP) 保护
    --FCF-protection:控制流完整性(需要 CPU 支持,英特尔 CET/ARM BTI)

    示例用法

    #带堆栈保护的编译
    gcc -fstack-reverter-strong -o myprogram myprogram.c

    #编译所有保护措施
    gcc -fstack-reverter-all -fstack-click-protection -o myprogram myprogram.c

    #检查二进制文件是否使用保护进行编译
    readelf -l myprogram | grep stack

    因此、您可以将许多构建标志组合在一起来支持堆栈保护。

    关于第三季度:  

    性能开销

    -加那利插入/检查在函数进入/退出时增加 CPU 周期
    -对于典型应用,可以有 1-3%的开销
    -在具有许多栈变量的函数中,开销更高
    -对性能敏感的代码(实时系统,紧密循环)至关重要

    存储器开销

    -每个函数在栈上添加加那利存储(通常为 8 字节)
    -在深度调用堆栈中累积
    -对于 RAM 有限的嵌入式系统有问题

    启用堆栈保护时、可能会略微降低 应用程序代码的“实时性能“。  

    但根据您的应用、您可能对实时操作没有太大的担忧。

    非常感谢

    Gibbs  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Jerry、
    “CONFIG_STACKPROTECTOR_STRONG=y"当前“当前在 AM62Lx Linux SDK 的内核“.config"文件“文件中配置。
    用户可以选择并重新配置堆栈保护选项、以便根据用户的安全要求、根据需要抵御堆栈缓冲区溢出攻击。
    此致、
    - Hong