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

简介:

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

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

心脏滴血只是冰山一角

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

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

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

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

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

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

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

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

代码验证好处多

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

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

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

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

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

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

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

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

走向应用

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

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

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

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

发展前景

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

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

本文转自d1net(转载)

相关文章
|
弹性计算 人工智能 Serverless
阿里云ACK One:注册集群云上节点池(CPU/GPU)自动弹性伸缩,助力企业业务高效扩展
在当今数字化时代,企业业务的快速增长对IT基础设施提出了更高要求。然而,传统IDC数据中心却在业务存在扩容慢、缩容难等问题。为此,阿里云推出ACK One注册集群架构,通过云上节点池(CPU/GPU)自动弹性伸缩等特性,为企业带来全新突破。
|
XML 编解码 编译器
Unity跨平台UI解决方案:可能是最全的FairyGUI系列教程-第八天
众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,以此寻找共鸣!!!
2102 0
|
23天前
|
数据采集 存储 安全
一文讲清:数据清洗、数据中台、数据仓库、数据治理
企业数据混乱、分析低效?根源在于数据体系不完整。本文详解数据清洗、数据仓库、数据中台与数据治理四大核心概念:从清理脏数据,到统一存储分析,再到敏捷服务业务,最后通过治理保障质量与安全,构建企业数据驱动的完整链条。
一文讲清:数据清洗、数据中台、数据仓库、数据治理
|
4月前
|
存储 机器学习/深度学习 缓存
阿里云AirCache技术实现多模态大模型高效推理加速,入选国际顶会ICCV2025
阿里云研发的AirCache技术被计算机视觉顶会ICCV2025收录,该技术通过激活跨模态关联、优化KV缓存压缩策略,显著提升视觉语言模型(VLMs)的推理效率与存储性能。实验表明,在保留仅10%视觉缓存的情况下,模型性能下降小于1%,解码延迟最高降低66%,吞吐量提升达192%。AirCache无需修改模型结构,兼容主流VLMs,已在教育、医疗、政务等多个行业落地应用,助力多模态大模型高效赋能产业智能化升级。
405 1
|
4月前
|
API
1688图片搜索API详解
1688图片搜索接口通过上传图片实现相似商品匹配,适用于电商比价、商品溯源。支持按图搜同款或相似商品,返回商品ID、标题、价格等信息,并可设置分页、排序与筛选参数。核心参数包括图片URL/Base64(imgid)、搜索模式(search_type)及排序方式(sort_type)。
|
1月前
|
缓存 Linux iOS开发
BleachBit系统清理工具软件下载安装教程!免费开源,清理垃圾文件,大幅提升电脑性能!
BleachBit是一款免费开源的系统清理工具,支持Windows、macOS和Linux,可深度清除垃圾文件、浏览器缓存及隐私数据,提升电脑性能与安全性。操作简单,功能强大,适合各类用户。
195 1
|
5月前
|
前端开发
个人征信PDF无痕修改软件,个人征信模板可编辑,个人征信报告p图神器【js+html+css仅供学习用途】
这是一款信用知识学习系统,旨在帮助用户了解征信基本概念、信用评分计算原理及信用行为影响。系统通过模拟数据生成信用报告,涵盖还款记录
|
6月前
|
存储 SQL BI
大型医院HIS,EMR,LIS,PACS源码
本产品支持信创,适用于三级及大中型医院,涵盖全面业务系统,助力医共体与单体医院发展。系统包括门诊和住院医生工作站、护士工作站、电子病历(EMR)、实验室信息系统(LIS)、放射科室管理(PACS/RIS)等模块,实现医院信息化建设目标。功能覆盖人性化服务、集成化管理、智能化操作、无纸化与无胶片化流程,优化医疗资源,提升医疗服务效率与质量,打造现代化数字医院。支持多系统接口与数据交换,满足医保需求,提供统计分析与权限管理,确保信息准确、安全、高效流转。
|
11月前
|
机器学习/深度学习 人工智能 文字识别
POINTS 1.5:腾讯微信开源的多模态大模型,超越了业界其他的开源视觉语言模型,具备强大的视觉和语言处理能力
POINTS 1.5是腾讯微信推出的多模态大模型,基于LLaVA架构,具备强大的视觉和语言处理能力。它在复杂场景的OCR、推理能力、关键信息提取等方面表现出色,是全球10B以下开源模型中的佼佼者。
563 58
POINTS 1.5:腾讯微信开源的多模态大模型,超越了业界其他的开源视觉语言模型,具备强大的视觉和语言处理能力
|
8月前
|
人工智能 安全 物联网
《鸿蒙系统中人工智能驱动的智能助手:应用模式与未来航向》
在数字化时代,人工智能与操作系统的融合成为科技变革的核心力量。鸿蒙系统作为华为自主研发的分布式操作系统,为智能助手提供了广阔舞台。通过语音交互、多模态融合、场景感知与跨设备协同,智能助手实现了便捷操控、深度交互和主动服务。未来,借助大模型赋能、物联网深度融合及强化隐私保护,智能助手将推动全场景服务创新,助力开发者生态繁荣,开启万物互联的智能交互新时代。
779 12

热门文章

最新文章