令黑客一筹莫展的编程方法

简介:

2014年4月7日,世界首次知道心脏滴血漏洞。OpenSSL中TLS/DTLS(传输层安全协议)心跳扩展实现上的一个小漏洞,却能使攻击者解开受脆弱OpenSSL软件保护系统中的加密措施。在当时,这些加密措施占据了公网大约2/3的江山。攻击者可以窃听那些看起来加密了的通信,盗取隐私数据,冒充服务和用户。

漏洞一见诸报道,OpenSSL便发布了针对心脏滴血的补丁。即便如此,1年半之后,仍有20多万台设备没有打上补丁。

心脏滴血只是冰山一角

围绕心脏滴血的所有关注(当然还有不必要的心理恐惧),表明了小小编程失误在当下互联时代会造成多大的破坏。

计算机技术早期,漏洞不过意味着一点点的不便。那个时候,计算机间互不联通,一个编程缺陷最多就是某个软件时不时地故障一下。或许你需要不时重启一下机器,但最多也就是如此了。

但互联网世界中,一切都不一样了。全球连接性让黑客可以瞄准更多的用户。考虑到人们银行凭证和其他敏感数据的激增,在今天,一个漏洞不仅仅意味着不方便这么简单。通常,编程漏洞就是安全漏洞,攻击者可利用来盗取或披露成千上万用户的个人信息。这也就是为什么心脏滴血之类的漏洞会演变成大事件的原因所在。

但也别会错意。我们的软件也不是全部都被攻破了的。OpenSSL的大多数用例仍然运作良好。心脏滴血仅仅构成了少数黑客入侵场景之一,这些场景中,攻击者可以操纵编程缺陷产生软件功能上的非预期结果。

这就是编程的现实。漏洞司空见惯,因为要把自然语言能描述的想法,转换成机器能理解的指令,可不是件容易的事儿。

除此之外,编程的目标,是使计算机程序能够只实现一套既定的操作,不做多余的事。正派程序员都不会希望有人在自己的软件里找到能让他们窃听加密通信或盗取个人信息的漏洞。因此,程序员有责任让自己的代码无懈可击。

但知易行难。稍微学过一点编程的人都会告诉你,编程出错简直太容易了。要是有什么方法,能让程序员确保自己的代码只做应该做的事就好了……

事实证明,还真有这么一种资源。

代码验证好处多

形式化验证是自70年代以来就在用的一种编程风格,通过确保程序符合每个用例,达到甚至超出程序应在某些可能用例情况下可用的最低要求。

程序员为达到这种包容性,往往将自己的代码展开得像是数学证明,每条语句都延续前面语句的逻辑。程序员们写下的,是描述程序行为的数学公式,并用某种形式的验证程序检查语句的正确性。

你正在写下一个数学公式来描述程序的行为,并使用几种验证机制去校验程序运行后所达到状态的正确性。

想进行形式化验证,程序员首先需要写出形式化规约,或者对计算机程序应怎样工作作出解释说明。然后,用这一规约来验证软件是否到达既定目标。

这可不总是毫不费力的过程。在规约和验证规约所需的语句之间,采用形式化验证的程序,最终可能会比不采用验证却在大多数用例中工作良好的程序代码长度的好几倍。

幸运的是,码农们现在可以用编程语言和证明辅助程序之类的工具来验证自己的程序。事实上,正是几十年前此类资源的缺乏,才导致了直到互联网出现的现代,形式化验证才真正可行。

普林斯顿大学计算机科学教授安德鲁·阿佩尔将之阐述为:

科学技术的很多部分,仅仅是不够成熟到能应用的阶段,因此,1980年前后,计算机科学领域很多部分兴趣渐失。

走向应用

安全研究人员一刻也等不及补回失去的时间了。例如,美国国防部高级研究计划局(DARPA)设立的高可靠性网络军事系统(HACMS)计划中,工程师们就着手制作黑不掉的休闲四轴飞行器。他们通过先将飞行器的代码分区,再通过使用“高可靠的构件”重写其软件架构,做到了这一点。其中一个构件就包含了入侵者不能升级权限以访问其他分区的验证。

在其代号“小鸟”的实验中,黑客组成的红队,收到了四轴飞行器摄像头控制分区之一的访问权。他们的任务,就是获取该飞行器基本功能的控制权。但在努力6周之后,他们依然无法进入另一个代码分区。

这一成果吸引了国防部研究人员的注意。HACMS项目经理,塔夫斯大学计算机科学教授卡斯灵·费舍尔说:

他们无论如何也突破不进去,破坏不了其运行。该结果让DARPA瞩目,纷纷惊讶捧脸:“上帝啊,我们可以在担心的系统里实际使用这种技术了!”

发展前景

自“小鸟”开始,DARPA将形式化验证应用到了其他技术,比如自动驾驶汽车和卫星。

他们还给自己设定了一些未来想达到的崇高目标。阿佩尔希望用1000万美元打造完全经验证的端到端系统,比如Web服务器。同时,在微软,工程师们正在创建HTTPS的验证版本,以及无人机之类设备的验证规范。


作者:佚名

来源:51CTO

相关文章
|
2天前
|
云安全 人工智能 自然语言处理
AI说的每一句话,都靠谱吗?
阿里云提供AI全栈安全能力,其中针对AI输入与输出环节的安全合规挑战,我们构建了“开箱即用”与“按需增强”相结合的多层次、可配置的内容安全机制。
|
9天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~
|
4天前
|
安全 Java Android开发
深度解析 Android 崩溃捕获原理及从崩溃到归因的闭环实践
崩溃堆栈全是 a.b.c?Native 错误查不到行号?本文详解 Android 崩溃采集全链路原理,教你如何把“天书”变“说明书”。RUM SDK 已支持一键接入。
412 185
|
2天前
|
数据采集 消息中间件 人工智能
跨系统数据搬运的全方位解析,包括定义、痛点、技术、方法及智能体解决方案
跨系统数据搬运打通企业数据孤岛,实现CRM、ERP等系统高效互通。伴随数字化转型,全球市场规模超150亿美元,中国年增速达30%。本文详解其定义、痛点、技术原理、主流方法及智能体新范式,结合实在Agent等案例,揭示从数据割裂到智能流通的实践路径,助力企业降本增效,释放数据价值。
|
8天前
|
人工智能 自然语言处理 安全
国内主流Agent工具功能全维度对比:从技术内核到场景落地,一篇读懂所有选择
2024年全球AI Agent市场规模达52.9亿美元,预计2030年将增长至471亿美元,亚太地区增速领先。国内Agent工具呈现“百花齐放”格局,涵盖政务、金融、电商等多场景。本文深入解析实在智能实在Agent等主流产品,在技术架构、任务规划、多模态交互、工具集成等方面进行全维度对比,结合市场反馈与行业趋势,为企业及个人用户提供科学选型指南,助力高效落地AI智能体应用。
|
4天前
|
消息中间件 安全 NoSQL
阿里云通过中国信通院首批安全可信中间件评估
近日,由中国信通院主办的 2025(第五届)数字化转型发展大会在京举行。会上,“阿里云应用服务器软件 AliEE”、“消息队列软件 RocketMQ”、“云数据库 Tair”三款产品成功通过中国信通院“安全可信中间件”系列评估,成为首批获此认证的中间件产品。此次评估覆盖安全可信要求、功能完备性、安全防护能力、性能表现、可靠性与可维护性等核心指标,标志着阿里云中间件产品在多架构适配与安全能力上达到行业领先水平。
310 193