NSA发布软件内存安全问题缓解指南

425d81e1e932a211802715e87a6d04fb.gif 聚焦源代码安全,网罗国内外最新资讯!

编译:代码卫士

44f652b804959c86489f51b2962fab10.gif

美国国家安全局 (NSA) 发布了关于组织机构如何防护常见软件内存安全问题的指南。

软件内存安全问题因程序管理或分配内存、逻辑错误、运营顺序不正确或使用未初始化变量而导致,通常可用于实现远程代码执行 (RCE)。在很多情况下,软件内存安全问题是最常见的漏洞原因(微软和谷歌称70%的问题是内存安全问题),可能导致不正确的程序行为和性能降级。

NSA发布指南指出,清除内存安全问题的第一步是使用不会内在地打开这些漏洞之门的编程语言。C和C++为内存管理提供灵活性,它们严重依赖程序员对内存引用进行检查。因此,即使是最小的错误也可能导致可利用的漏洞。

指南提到,虽然软件分析工具可能检测到内存管理缺陷,也存在一些防护措施,但使用内存安全软件语言能够阻止或缓解多数问题。NSA建议尽可能地使用内存安全语言。虽然使对非内存安全语言使用额外防护措施以及使用内存安全语言可能无法绝对地防护可利用的内存问题,但它们确实提供了庞大的防护能力。

最常见的内存安全问题包括缓冲区溢出(数据在数组边界之外遭访问)、内存泄露(内存未在使用后释放)、释放后使用和条件竞争等等。恶意人员可能利用异常输入引发异常内存行为并利用这些漏洞执行代码、访问敏感信息或者执行其它恶意活动。模糊测试可帮助威胁行动者更容易地识别有问题的输入。

NSA指出,“一旦相关人员发现他们可通过特定输入导致程序崩溃外,他们会检查代码并判断特殊构造的输入如何做。在最糟糕的情况下,这类输入可导致相关人员控制程序所运行的系统。”

为了阻止或缓解与内存安全有关的风险,NSA推荐组织机构使用内存安全编程语言如C#、Go、Java、Ruby、Rust和Swift,但提醒称由于一些非内存安全操作或库,这样做无法完全消除这些问题。NSA还建议通过静态和动态应用安全测试(SAST和DAST)方法加固非内存安全语言。

NSA提到,由于CFG、ASLR和DEP,编译和执行环境可导致更难以利用内存安全漏洞。NSA总结道,“软件中的内存问题代表着存在的大量可利用漏洞。NSA建议组织机构考虑在可能的情况下,从几乎不提供或者无内在内存防护能力的编程语言战略性地转向内存安全语言。通过使用内存安全语言和可用的代码加固防护措施,很多内存漏洞可得到阻止、缓解或使其难以遭利用。”

代码卫士试用地址:https://codesafe.qianxin.com

开源卫士试用地址:https://oss.qianxin.com


推荐阅读

思科修复NSA报告的Nexus 交换机DoS漏洞及其它

NSA和CISA联合发布《5G云基础设施安全保护指南》

NSA和CISA 联合发布Kubernetes 安全加固指南

丹麦为NSA开绿灯 通过通信中心监控欧洲政客

速修复!NSA 报告四个严重和高危 Exchange Server RCE 漏洞

原文链接

https://www.securityweek.com/nsa-publishes-guidance-mitigating-software-memory-safety-issues

题图:Pixabay License‍

本文由奇安信编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。

e61cbe6d7bacc2b7f7cf90a473cdca36.jpeg

6262ebf2fb4ce97d8e175c6b9d62567c.jpeg

奇安信代码卫士 (codesafe)

国内首个专注于软件开发安全的产品线。

   4e570d2a6d09ec90304397dbec65a790.gif 觉得不错,就点个 “在看” 或 "赞” 吧~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值