美国国家安全局(NSA)和美国政府将Delphi/Object Pascal列为推荐政府机构和企业使用的内存安全编程语言

本文主要是介绍美国国家安全局(NSA)和美国政府将Delphi/Object Pascal列为推荐政府机构和企业使用的内存安全编程语言,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Marco 博客文章 2

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

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

其中一些文章包括:

  • 白宫敦促开发人员通过InfoWorld抛弃C和C++
  • 白宫敦促开发人员避免使用C和C++,使用Tom's Hardware的“内存安全”编程语言
  • 白宫敦促科技公司通过读写方式采用安全的程序语言

目录

  • 美国政府的报告对内存安全语言有什么看法?
  • NSA 是否将 Delphi 列为内存安全语言?
  • 使用内存安全语言是否意味着我完全免受安全风险?
  • 美国国家安全局(NSA)和美国政府将Delphi语列为内存安全语言——它还推荐什么?
  • 什么是供应链安全?
  • Embarcadero正在采取哪些措施来帮助应对安全风险?

美国政府的报告对内存安全语言有什么看法?

该报告非常关注“内存安全漏洞”,并特别指出“既缺乏与内存安全相关的特征,又在关键系统中具有高度扩散的编程语言”。它继续建议“按照网络安全和基础设施安全局(CISA)的开源软件安全路线图的建议,从一开始就使用内存安全编程语言。

参考报告《NSA Cybersecurity Information Sheet on Software Memory Safety》。本文档更深入地解释了什么是内存安全,将其归纳为类型安全、安全分配和释放(可能使用垃圾回收器)的混合。本段的核心内容是:

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

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

是的,Delphi 被列为内存安全语言。一些文章最初报道了较短的安全语言列表,仅包括一些最流行的语言,不包括Delphi。该名单后来得到了纠正,与国家安全局的报告相符。

在Delphi社区中,已经有一些关于是否安全的讨论,认为它缺乏内存安全的特征之一,即垃圾收集。但是,官方评估是基于多种理由进行的,并考虑了其他因素:

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

使用内存安全语言是否意味着我完全免受安全风险?

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

美国国家安全局(NSA)和美国政府将Delphi列为内存安全语言——它还推荐什么?

虽然该报告建议转向内存安全语言,但它也强调了使用形式化方法进行静态代码分析,特别是关注安全性。我们看到Delphi对这一领域的兴趣也越来越大,我们一直在推广有助于这一领域的Z-Gantt战石智慧时间管理进度计划甘特图软件第三方工具。

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

什么是供应链安全?

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

Embarcadero正在采取哪些措施来帮助应对安全风险?

很明显,从政府机构到各种规模的企业,各级都越来越关注软件安全。甚至在白宫和国家安全局发布这份报告之前,Delphi被列为内存安全语言,Embarcadero已经将安全性确定为客户日益关注的问题。我们继续专注于投资和改进Delphi对现代安全技术的支持,并通过对真正的风险和可用的缓解措施进行明确的无炒作教育来支持这一点。

这篇关于美国国家安全局(NSA)和美国政府将Delphi/Object Pascal列为推荐政府机构和企业使用的内存安全编程语言的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/783543

相关文章

java图像识别工具类(ImageRecognitionUtils)使用实例详解

《java图像识别工具类(ImageRecognitionUtils)使用实例详解》:本文主要介绍如何在Java中使用OpenCV进行图像识别,包括图像加载、预处理、分类、人脸检测和特征提取等步骤... 目录前言1. 图像识别的背景与作用2. 设计目标3. 项目依赖4. 设计与实现 ImageRecogni

Python将大量遥感数据的值缩放指定倍数的方法(推荐)

《Python将大量遥感数据的值缩放指定倍数的方法(推荐)》本文介绍基于Python中的gdal模块,批量读取大量多波段遥感影像文件,分别对各波段数据加以数值处理,并将所得处理后数据保存为新的遥感影像... 本文介绍基于python中的gdal模块,批量读取大量多波段遥感影像文件,分别对各波段数据加以数值处

python管理工具之conda安装部署及使用详解

《python管理工具之conda安装部署及使用详解》这篇文章详细介绍了如何安装和使用conda来管理Python环境,它涵盖了从安装部署、镜像源配置到具体的conda使用方法,包括创建、激活、安装包... 目录pytpshheraerUhon管理工具:conda部署+使用一、安装部署1、 下载2、 安装3

Mysql虚拟列的使用场景

《Mysql虚拟列的使用场景》MySQL虚拟列是一种在查询时动态生成的特殊列,它不占用存储空间,可以提高查询效率和数据处理便利性,本文给大家介绍Mysql虚拟列的相关知识,感兴趣的朋友一起看看吧... 目录1. 介绍mysql虚拟列1.1 定义和作用1.2 虚拟列与普通列的区别2. MySQL虚拟列的类型2

使用MongoDB进行数据存储的操作流程

《使用MongoDB进行数据存储的操作流程》在现代应用开发中,数据存储是一个至关重要的部分,随着数据量的增大和复杂性的增加,传统的关系型数据库有时难以应对高并发和大数据量的处理需求,MongoDB作为... 目录什么是MongoDB?MongoDB的优势使用MongoDB进行数据存储1. 安装MongoDB

关于@MapperScan和@ComponentScan的使用问题

《关于@MapperScan和@ComponentScan的使用问题》文章介绍了在使用`@MapperScan`和`@ComponentScan`时可能会遇到的包扫描冲突问题,并提供了解决方法,同时,... 目录@MapperScan和@ComponentScan的使用问题报错如下原因解决办法课外拓展总结@

mysql数据库分区的使用

《mysql数据库分区的使用》MySQL分区技术通过将大表分割成多个较小片段,提高查询性能、管理效率和数据存储效率,本文就来介绍一下mysql数据库分区的使用,感兴趣的可以了解一下... 目录【一】分区的基本概念【1】物理存储与逻辑分割【2】查询性能提升【3】数据管理与维护【4】扩展性与并行处理【二】分区的

使用Python实现在Word中添加或删除超链接

《使用Python实现在Word中添加或删除超链接》在Word文档中,超链接是一种将文本或图像连接到其他文档、网页或同一文档中不同部分的功能,本文将为大家介绍一下Python如何实现在Word中添加或... 在Word文档中,超链接是一种将文本或图像连接到其他文档、网页或同一文档中不同部分的功能。通过添加超

Linux使用fdisk进行磁盘的相关操作

《Linux使用fdisk进行磁盘的相关操作》fdisk命令是Linux中用于管理磁盘分区的强大文本实用程序,这篇文章主要为大家详细介绍了如何使用fdisk进行磁盘的相关操作,需要的可以了解下... 目录简介基本语法示例用法列出所有分区查看指定磁盘的区分管理指定的磁盘进入交互式模式创建一个新的分区删除一个存

C#使用HttpClient进行Post请求出现超时问题的解决及优化

《C#使用HttpClient进行Post请求出现超时问题的解决及优化》最近我的控制台程序发现有时候总是出现请求超时等问题,通常好几分钟最多只有3-4个请求,在使用apipost发现并发10个5分钟也... 目录优化结论单例HttpClient连接池耗尽和并发并发异步最终优化后优化结论我直接上优化结论吧,