欢迎来到培训无忧网!

全国切换

咨询热线 400-001-5729

位置:培训无忧网 > 新闻资讯 > 电脑/IT > 嵌入式开发 >  嵌入式开发培训:固件安全性之防止内存损坏

嵌入式开发培训:固件安全性之防止内存损坏

来源:www.pxwy.cn 发布人:星星

2021-12-15 10:37:30|已浏览:384次

       嵌入式软件是物联网的核心,尽管嵌入式应用程序安全通常不被认为是嵌入式开发人员和物联网设备制造商的优先事项,这可能是由于缺乏安全编码知识或团队代码库之外的其他挑战造成的。开发人员面临的其他挑战可能包括但不限于原始设计制造商(ODM)供应链、有限内存、小堆栈,以及将固件更新安全推送到端点的挑战。
       防止内存损坏漏洞
       在使用低级语言(如C)时,如果开发人员没有以编程方式正确检查和验证边界,则很有可能出现内存损坏错误。防止使用已知的危险函数和API有助于防止固件中的内存损坏漏洞。例如,已知的、不安全的C函数的非详尽列表包括:strcat、strcpy、sprintf、scanf和gets。

          嵌入式开发培训:固件安全性之防止内存损坏

       常见内存损坏漏洞可能包括堆栈或堆溢出。攻击这些特定内存损坏漏洞时的影响因操作系统平台而异。例如,商用RTOS平台(如QNX Neutrino)将每个进程及其堆栈与文件系统隔离,从而最大限度地减少攻击面。但是,对于常见的嵌入式Linux发行版,情况可能并非如此。在嵌入式开发中,嵌入式Linux中的缓冲区溢出可能导致攻击者任意执行恶意代码和修改操作系统。

       一些内存安全控制方法可用于防止内存损坏漏洞,例如:
       使用安全的编译器标志,例如-fPIE、-fstack-protector-all、-Wl、-z、noexecstack,-Wl、-z、noexecaspect和其他可能取决于特定编译器版本的标志。首选包含内存管理单元(MMU)的片上系统(SoC)和微控制器(MCU)。MMUs隔离线程和进程,以在内存漏洞被利用时减少攻击面。
       首选包含内存保护单元(MPU)的片上系统(SoC)和微控制器(MCU)。MPUs强制执行内存和独立进程的访问规则,以及强制执行特权规则。如果没有MMU或MPU可用,则使用已知位监控堆栈,通过确定堆栈中有多少不再包含已知位来监控堆栈的消耗量。使用后,请注意缓冲区和空闲缓冲区中放置的内容。

      利用地址空间布局随机化(ASLR)和其他堆栈控件的内存漏洞进行攻击需要攻击者付出大量努力。尽管如此,在某些情况下仍然是可能的。确保代码具有弹性,并对存储在内存中的数据采用深入防御的方法,这将有助于嵌入式开发设备的安全态势。

      本文由培训无忧网达内教育课程顾问老师整理发布,更多嵌入式开发课程信息可关注培训无忧网嵌入式开发培训频道或添加老师微信:15033336050

      注:尊重原创文章,转载请注明出处和链接 https://www.pxwy.cn/news-id-7769.html 违者必究!部分文章来源于网络由培训无忧网编辑部人员整理发布,内容真实性请自行核实或联系我们,了解更多相关资讯请关注嵌入式开发频道查看更多,了解相关专业课程信息您可在线咨询也可免费申请试课。关注官方微信了解更多:150 3333 6050

留下你的信息,课程顾问老师会一对一帮助你规划更适合你的专业课程!
  • 姓名:

  • 手机:

  • 地区:

  • 想学什么:

  • 培训无忧网
免 费 申 请 试 听
提交申请,《培训无忧网》课程顾问老师会一对一帮助你规划更适合你的专业课程!