在RAD Studio中内置了令人惊叹的解决方案吗?让我们知道。想打折吗?访问我们的特别优惠页面!
新闻

Delphi是一种记忆安全语言吗?

marco博客帖子2

上周,美国政府发布了这份报告”回到构建块:通往安全和可测量软件的道路”. 本报告是美国网络安全战略的一部分,关注多个领域,包括内存安全漏洞和质量指标。 

许多在线杂志都对这份报告进行了评论,这些杂志强调了对C和C++编程语言的重大抵制。 

其中一些文章包括:

美国政府的报告对记忆安全语言说了什么?

该报告重点关注“内存安全漏洞”,并指出“缺乏与内存安全相关的特性且具有高度增殖性的编程语言”跨关键系统”。它继续建议“按照网络安全和基础设施安全局(CISA)开放源代码软件安全路线图的建议,从一开始就使用内存安全编程语言。

参考的是报告美国国家安全局关于软件内存安全的网络安全信息表本文档深入介绍了什么是内存安全,将其归纳为类型安全、安全分配和释放(可能使用垃圾收集器)的组合。本段的核心内容是:

使用内存安全语言有助于防止程序员引入某些与内存相关的问题类型。内存作为计算机语言;它不依赖于程序员添加代码来实现内存保护。语言机构使用组合自动保护编译时和运行时检查。这些固有的语言功能保护程序员无意中引入了内存管理错误。示例内存安全语言包括Python®、Java®、C#、Go、Delphi/Object Pascal、Swift®、Ruby™、Rust®和Ada。即使使用内存安全语言,内存管理也不完全是内存安全的。 

NSA是否将Delphi列为内存安全语言?

是的,Delphi被列为内存安全语言。一些文章最初报告了较短的安全语言列表,其中只包括一些最流行的语言,不包括Delphi。该清单后来根据NSA报告进行了修正。

Delphi社区中有一些讨论,考虑到该语言缺乏内存安全性的特征之一,即垃圾收集,因此是否安全。然而,官方评估基于多种理由并考虑到其他因素:

  • 安全编程语言的一个核心特性是拥有一个强类型系统,并让该语言在编译时而不是在运行时验证数据类型映射。动态语言,即使有垃圾收集器,也可能会出现不足,并暴露于运行时错误,这可能会影响其安全性
  • 另一个元素不必在普通代码中使用指针和更直接的内存管理。虽然Delphi没有阻止直接内存访问的使用,但这种情况相当少见。Delphi提供了即使没有GC也能自动化和简化内存管理的机制。

使用记忆安全的语言是否意味着我完全不受安全风险的影响?

另一个普遍的考虑是,内存安全是一个目标,但不是绝对的。例如,主要报告强调,在某些类型的应用中,执行时间的可预测性至关重要(指航空航天行业)。在这些情况下,垃圾收集器在不可预测的时间启动可能会影响程序对关键时间的代码执行。正是由于这个原因,与工业自动化领域的其他流行语言相比,Delphi具有显著的优势。与C++相比,它允许直接控制,同时保持更高、更简单的级别。

美国国家安全局和美国政府将德尔福列为记忆安全语言——它还推荐什么?

虽然该报告建议转向内存安全语言,但它也强调使用形式化方法进行静态代码分析,特别是侧重于安全性。我们看到德尔福对这一领域的兴趣也在不断增长推广第三方工具在这个领域有所帮助。

还有一个很长的部分重点讨论基于硬件或CPU级别的内存安全实施。在同一领域,原始NSA报告强调了利用控制流保护(CFG)、地址空间布局随机化(ASLR)和数据执行保护(DEP)。其中一些安全设置已在中强制实施Delphi的最新版本和现在是新项目的默认值。

什么是供应链安全?

最后,还有另一个涉及图书馆依赖链安全的长期领域,有时也称为“供应链安全”,提倡使用正式方法评估图书馆安全,包括开放源码图书馆的安全。人们越来越担心,许多项目的大量依赖性正在扩大安全风险,这并不是因为项目代码,而是因为所使用的库。在这方面,报告详细描述了Log4j Java库中的Log4Shell漏洞。这个库漏洞影响了像Java这样的内存安全语言,用报告的话来说,它显示了“一个致命的弱点,恶意参与者可以通过它危害世界各地的计算机系统”。该报告继续指出,“这一脆弱性突显了帮助确保开源生态系统安全的迫切需要,而开源生态系统在全球范围内促进了巨大的创新。”

Embarcadero在帮助应对安全风险方面做了什么?

很明显,从政府机构到各种规模的企业,各个级别的软件安全都越来越受到关注。甚至在白宫和国家安全局的这份报告公布之前,德尔福已经被列为记忆安全语言,Embarcadero已经将安全问题视为客户日益关注的问题。我们继续致力于投资和改进Delphi对现代安全技术的支持,并通过关于真正风险和可用缓解措施的无宣传教育予以支持。


使用RAD Studio、Delphi或C++Builder缩短开发时间并更快地推向市场。
设计。代码。编译。部署。
开始免费试用   立即升级

   免费Delphi社区版   免费C++Builder社区版

关于作者

Marco是RAD Studio产品经理之一,专注于Delphi。他是20多本关于德尔福的畅销书的作者。

12条评论

留下回复

此网站使用Akismet来减少垃圾邮件。了解如何处理您的评论数据.

在文章中