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

news2024/11/17 8:48:31

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对现代安全技术的支持,并通过对真正的风险和可用的缓解措施进行明确的无炒作教育来支持这一点。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1508363.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OpenCV学习笔记(五)——图片的缩放、旋转、平移、裁剪以及翻转操作

目录 图像的缩放 图像的平移 图像的旋转 图像的裁剪 图像的翻转 图像的缩放 OpenCV中使用cv2.resize()函数进行缩放,格式为: resize_imagecv2.resize(image,(new_w,new_h),插值选项) 其中image代表的是需要缩放的对象,(new_w,new_h)表…

Python元组(Tuple)深度解析!

目录 1. 什么是元组? 2. 创建元组 3.访问元组 4.元组的运算 5.修改元组不可行 6.元组的应用场景 前面的博客里,我们详细介绍了列表(List)这一种数据类型,现在我们来讲讲与列表相似的一种数据类型,元组…

portapack-h2使能hackrf

这两天弄了一块portapack扩展板 ,可以用来脱机使能hackrf,简单的说,这是一块自带屏幕,预装gnuradio环境的单片机,通过GPIO插入hackrf,可以使能hackrf,脱机运行一些无线电测试程序。 购置的拓展先不用着急装扩展板&…

Web3 之路:构建开放、透明的数字生态系统

随着区块链技术的迅速发展,Web3正在成为数字世界的新引擎,重新定义着我们的生活和工作方式。在这个数字化的时代,我们目睹着一个全新的网络生态正在逐渐成形,其中开放性和透明性是其核心特征。让我们深入探讨,Web3如何…

一款适合程序员开发复杂系统的通用平台——JNPF 开发平台

在过去,很多开发工具更侧重代码编辑,针对数据库增删改查(CRUD)类的 Web 系统开发,在界面设计、前后端数据交互等环节主要还是靠写代码,效率比较低。目前很多所谓的低代码开发平台,大多数也都是基…

【格与代数系统】格与哈斯图

【格与代数系统】格与代数系统汇总 目录 常见的偏序关系 覆盖 哈斯图 例1 例2 例3 格与哈斯图 例1 例2 常见的偏序关系 偏序关系:自反性反对称性传递性 整数集合上的小于等于(大于等于)关系、幂集中的包含关系 、正整数的整除和整…

羊大师分析羊奶的喝法,都有什么讲究?

羊大师分析羊奶的喝法,都有什么讲究? 羊奶的喝法确实有一些讲究,以下是一些主要的注意事项: 温度控制:羊奶不宜煮沸喝,加热时最好保持在50℃-60℃之间,以避免破坏其营养成分。 饮用时间&…

【TypeScript】对TypeScript的理解?与JavaScript的区别?

1 是什么 TypeScript是JS的类型超集,支持ES6语法,支持面向对象编程的概念,如类、接口、继承、泛型等。 是一种静态类型检查的语言,提供了类型注解,在代码编译阶段就可以检查出数据类型的错误 同时扩展了JS语法 &#x…

白酒:陈酿过程中的理化变化与香味成分的转化

在豪迈白酒的陈酿过程中,理化变化和香味成分的转化是形成与众不同风味和品质的重要环节。云仓酒庄深入了解和掌握陈酿过程中的理化变化规律,以及香味成分的转化机制,通过科学的方法和精细的管理,提升豪迈白酒的品质和口感。 首先&…

MongoDB官网查看 MongoClient 驱动API 文档的详细步骤

目录 MongoDB官网查看 MongoClient 驱动API 文档的详细步骤1、先进入[mongodb的官网](https://www.mongodb.com/zh-cn),点击【服务器文档】2、点击这个 [MongoDB Documentation](https://www.mongodb.com/docs/) 文档。3、然后点开【Java】的驱动文档4、先查看同步的…

Linux系统部署火狐浏览器结合内网穿透实现公网访问

目录 前言 1. 部署Firefox 2. 本地访问Firefox 3. Linux安装Cpolar 4. 配置Firefox公网地址 5. 远程访问Firefox 6. 固定Firefox公网地址 7. 固定地址访问Firefox 结语 前言 作者简介: 懒大王敲代码,计算机专业应届生 今天给大家聊聊Linux系统…

2024会声会影永久免费版新功能软件特色及新功能

会声会影2024永久免费版是一款收到很多用户公认的极佳视频编辑软件,里面的每一个功能都特别的强悍你能够一键给图片视频添加特效非常的过瘾,赶快来一起下载试试吧。 会声会影2023-安装包: https://souurl.cn/gtyDFc 会声会影2023-安装包&…

新手如何快速上手学习单片机?

读者朋友能容我,不使博文负真心 新开专栏,期待与诸君共享精彩 个人主页:17_Kevin-CSDN博客 专栏:《单片机》 学习单片机是一个有趣且有挑战性的过程。单片机是一种微控制器,广泛应用于各种电子设备和嵌入式系统中。在这…

如何利用音频转换器将多个MP3音频转换为OGG格式

现在,我们接触到的很多音频文件一般都是MP3格式的。但是我们偶尔也需要用到ogg格式的音频文件,所以就需要我们将MP3格式音频文件转换为ogg格式了,那么,如果想要将MP3格式文件转换为OGG格式该如何操作呢?相信很多朋友心…

Python实例☞组织结构案例

实例一&#xff1a; ❶要求☞ 使用while循环模拟用户登录 ❷程序代码☞ i1 while i<4: nameinput("请输入您的姓名&#xff1a;") passwardinput("请输入你的密码&#xff1a;") if name"鯨殤" and passward"88888": print(&quo…

实现简易可视化拖拽生成页面

1.背景 由于一些简单、重复的页面&#xff0c;需要开发&#xff0c;会耗费大量人力和物力。因此一般会利用低代码平台&#xff0c;进行拖拽生成&#xff0c;下面就是实现简易可视化拖拽生成页面 2 简易可视化拖拽生成页面具体实现 2.1 整体页面布局 整个页面分为顶栏、内容区…

Vue.set:Vue中的数据绑定利器

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

python xpath提取链家二手房

/    表示两个相邻元素节点关系&#xff0c;也可以说父子关系 用法示例&#xff1a;如果要找上述代码中的 a 标签&#xff0c;路径表达式为&#xff1a;div/a 注意&#xff1a;如果当前查找出来的标签有多个&#xff0c;比如上面查找到的 a 标签有3个&#xff0c;我们想要第2…

vue3项目报Parsing error: Cannot find module ‘typescript‘

vue3项目报Parsing error: Cannot find module ‘typescript’ 解决办法&#xff0c;安装typescript&#xff0c;然后一定记得 退出vscode&#xff0c;再重新打开项目即可。 npm install typescript --save-dev

Android中显式Intent和隐式Intent的区别

1、intent的中文名 称是意图&#xff0c;Intent是各个组件之间信息沟通的桥梁&#xff0c; 既能在Activity之间沟通&#xff0c;又能在Activity与Service之间沟通&#xff0c;也能在Activity与Broadcast之间沟通 **intent组成元素的列表说明**2、显式Intent&#xff0c;直接指定…