有这么一个段子:
某国航母弹射器坏了,打电话找厂家来修,结果厂家接电话的说:您都10年没下订单了,我们早就不做弹射器了,改卖家具了,您看看需要什么家具?
虽然是个段子,但供应链安全问题确实五花八门,方方面面,软件供应链尤甚。上一篇谈两高一弱的时候说过,很多老旧系统根本已经无补丁可打了,正常的操作就是升级系统。但系统已经很久了,很多小公司,别说生命周期管理,连正常的代码库管理都有问题,可能已经找不到原始的代码,或者找不到维护这些代码的人,或者无法还原当时的软硬件环境,已经无法升级了,只能继续在老旧的操作系统上跑,操作系统及应用都无补丁可用,如何解决漏洞问题?
这个问题中国有,国外也有,全世界都一样。针对这个问题,DARPA有一个项目,叫AMP。
DARPA,全称为美国国防高级研究计划局(Defense Advanced Research Projects Agency),是美国国防部(DoD)的一个研究机构,负责开发和应用突破性技术以支持美国国家安全和军事目标。
有保证的微补丁 (AMP,Assured MicroPatching) 计划的目标是创建快速修补任务关键型系统中旧二进制文件的能力,包括无法获得原始源代码版本和/或构建过程的情况。AMP 旨在创建新的功能来分析、修改和修复二进制形式的旧软件,能够针对现有二进制文件中的已知安全漏洞生成有保证的针对性微补丁。微补丁会更改尽可能少的字节来实现其目标,从而最大限度地减少潜在的副作用,并应能够证明补丁将保留系统的原始基线功能。有了这些证明,测试和部署修补系统的时间将从几个月缩短到几天。
为了实现这一目标,AMP 计划寻求通过技术突破和新方法解决当前软件开发范式中的差距,包括但不限于:
识别可执行二进制映像(image)中的模块单元,并识别模块的接口、交互和链接工件,以便随后确保修补的二进制模块重新链接和重新集成;
将可执行二进制代码反编译为适合自动为二进制中已知的安全漏洞打补丁的形式;
为现有的二进制生成最小变化的二进制微补丁,并对其效果进行严格推理,然后测试这些效果以验证这些变化不会干扰二进制的基线功能;
使用可用的信息源(例如源代码和二进制样本)来恢复源代码和构建过程缺失的相关部分。
基于这个思路,DARPA的AMP设置了一个为期 48 个月的计划,分为三个技术领域 (TA),TA1 目标驱动反编译、TA2 保证重新编译和 TA3 评估。从2019年开始,分为三个阶段:第一阶段为 18 个月,接下来是 18 个月的第二阶段,然后在 12 个月时结束第三阶段。
在技术验证上,也分三个阶段:
第一阶段:实验系统:5000-1000行代码,第二阶段:车载ECU实时系统,约500,000行代码,第三阶段,完整卡车系统,约5,000,000(500万)行代码。
相关的预算已公开 :
由于疫情及其它微调,2023年改为19.91M$,2024年还有7.5M$,总计约6000万美元。总体投入不算多。
目前没有公开的官方进展报告,但仍然有一些相关的资料:
AIS(https://www.ainfosec.com)拿到过9M$的资助。2023年针对这个项目搞了一个黑客马拉松:
2023 年 11 月,科罗拉多州立大学 (CSU) 的学生以及 Assured Information Security (AIS)、康明斯公司、NASA 和 GRIMM 的合作伙伴在印第安纳州哥伦布市的康明斯公司总部举办了一场黑客马拉松,向来自不同大学和行业的学生和工程师发起了挑战。参赛者使用了一套新工具来提高关键基础设施系统的安全性和功能性,并向政府利益相关者和其他行业专业人士展示了微补丁的有效性。
“传统上,解决此类挑战需要部署具有专业技能的逆向工程师或低级工程师。然而,AMP 工具简化了这一过程,减少了前期的专业知识要求,并让开发人员能够直接在源代码中实施更改。AMP 的关键贡献之一在于提供保证——由于缺乏原始组件,这一组件经常被忽视或被视为无法实现。在构建链丢失的情况下,传统的软件测试变得不可行。然而,AMP 为最终用户提供了识别二进制修改、评估其预期性并自信地完成严格的认证流程的工具。虽然该计划的主要重点是支持以开发人员为中心的操作,但其好处也延伸到了低级二进制空间工程师,加快了他们的工作流程。这种协作努力产生了各种各样的工具,可满足分析、修补和测试的各个阶段的需求——证明了该计划的多功能性和有效性。
“我们的目标是修补一个漏洞,该漏洞导致探测器错误计算收到的温度信息,我们需要确保以最小侵入性的方式完成此操作,同时加快修补过程,”科罗拉多州立大学网络安全研究生助理 Jake Jepson 说道。“软件领域的逆向工程非常广泛,没有任何工具可以每次都有效。通过 AMP 开发的工具效率更高,这就是我们的团队能够在两天内生成 16 个补丁的原因。我们希望将这些工具发挥到极致,不仅看看我们是否可以开发出一个有效的补丁,而且我们是否可以开发出以不同方式工作的补丁。”
以上内容,说明效果还可以。
详情可参考:https://www.ainfosec.com/amp-hackathons
直接修改二进制并不是一个新技术,很多年前的DOS病毒及反病毒软件就开始用,后来修改各种单机游戏,以及很多CTF破解比赛,都有类似的操作,用的是这样的方法。
针对个别漏洞的处理,热补丁也是很常见的方案,方法类似,区别是直接修改内存里的代码指令。
但目前很少见到在商业上系统地使用这种方法解决漏洞问题的方案,核心问题有两个:一是此方法比较难,需要反编译的高手来搞,而高手是稀缺的。二是简单修改指令,会导致什么后果,很多时候是不确定的(这两个问题也是AMP计划要解决的主要问题)。所以,在实验环境里如何操作都行,但用于商业生产环境,被接受还需要时间,因为也缺乏完整的被业界认可的评估方法和工具。
截止目前,还未查到AMP自动化验证系统的表现。
AMP项目的人也说了这么一句话:
AMP 解决方案需要政府和行业中的早期采用者和拥护者,这可以是你!(AMP solutions need early adopters and champions in the Government and industry -- this can be you!)
一句话:这个东西被广泛接受还需要时间。但这确实是个可行的方案。
END