本文来自微信公众号: HavenlonLabs ,作者:HavenlonLabs
很多年前,一些停车场里出现过一种并不复杂的盗窃方式。
车主把车停好,下车,关门,按下遥控钥匙上的锁车键,然后转身离开。
整个过程和平时没有任何区别。
没有人撬车门,没有人复制钥匙,也没有人破解汽车内部复杂的电子系统。小偷只需要躲在附近,在车主按下遥控钥匙时,用无线信号干扰设备阻断那条短暂的锁车指令。
车主按了。
但车没有收到。
在车主心里,锁车这件事已经结束了;在现实里,车门却仍然没有上锁。
等车主走远以后,小偷不需要暴力破坏,只需要像正常开门一样,拉开车门。
这个故事真正值得注意的地方,不是无线电干扰技术有多高明。
恰恰相反,它之所以危险,是因为它太简单了。
攻击者没有正面击败车锁,也没有获得车主的钥匙。他只是利用了一个每个人都习以为常的认知:
我已经按下锁车键,所以车一定锁好了。
真正被攻击的,不只是车锁,而是车主相信“锁车已经完成”的那一刻。
从按下按钮,到车门真正锁住,中间原来不是同一件事。
过去,我们只是很少意识到它们之间存在距离。
而攻击者看见了这段距离。
这段距离,就是执行缝隙。
按下按钮,不等于结果已经发生
我们很容易把“按下锁车键”和“车辆已经锁住”理解成同一件事。
这是因为在绝大多数正常情况下,两件事几乎同时发生。
手指按下按钮,遥控器发出信号,车辆收到命令,门锁执行动作,车灯闪烁,车辆进入锁定状态。
整条链路通常只需要不到一秒。
它快到人根本感觉不到中间还有步骤。
时间久了,大脑就会自动省略这条链路,把最前面的动作和最后面的结果直接连接起来:
按按钮,就是锁车。
但从事实来看,按下按钮只证明了一件事:车主发出了锁车意图。
它并不能自动证明信号已经成功发出,车辆已经收到,控制系统已经执行,所有车门也都进入了真正的锁止状态。
这些原本是不同的事情。
只是在正常环境里,它们长期稳定地一起发生,于是我们逐渐忘记了它们的区别。
攻击者所做的,不过是把这几件原本紧密相连的事情重新拆开。
车主完成了动作,车辆却没有完成结果。
人的认知已经往前走了,现实却停在原地。
执行缝隙,往往就藏在那些“平时总是同时发生”的事情之间。
如果一个按钮按下一万次,都能得到正确结果,人就会自然相信第一万零一次也一样。
这种信任本身并不愚蠢。
现代生活本来就建立在大量默认可靠之上。我们不可能每次开灯以后都检查电流,不可能每次刷卡以后都研究银行系统,也不可能每次按下电梯按钮,都先验证控制器是否正确收到了信号。
问题不在于人愿意信任系统。
问题在于,当这种信任可以被主动利用时,原本微不足道的距离就会变成攻击入口。
小偷利用的不是锁,而是“完成感”
锁车干扰之所以经典,是因为攻击者没有必要让车主看见失败。
如果车主按下锁车键后,汽车明显毫无反应,他很可能会重新操作,甚至走回去检查。
最有利于攻击者的状态,并不是让整个过程彻底失败,而是让车主仍然保留一种“事情已经办完”的感觉。
这是执行缝隙最危险的部分。
一个明显失败的系统,反而容易引起警觉。
按钮失灵了,系统报错了,门没有关上,付款被拒绝了,人通常会停下来处理。
真正危险的是,前面的动作足够正常,正常到人已经离开现场,而最后的结果却没有发生。
车主并不是不知道锁车的重要性。
他也不是忘记了锁车。
他认真执行了自己认为正确的动作。
只是攻击者知道,人在按下按钮以后,会把注意力从车转移到下一件事情上。
锁车动作结束,心理上的任务也随之结束。
这时候,攻击者获得的不仅是一扇没有锁上的车门,更是一段不会被立刻发现的时间。
攻击者真正需要的,不是让系统完全失效,而是让失败看起来像成功。
这也是为什么很多有经验的司机,在锁车以后会顺手拉一下车门。
这个动作看起来有点多余。
既然已经按过遥控钥匙,为什么还要再拉一下?
因为他确认的不是自己有没有按,而是车门有没有真的锁住。
按按钮,是检查自己的动作。
拉车门,是检查现实的状态。
两者之间只差一秒钟,却代表了两种完全不同的安全观。
一种相信:我已经做了,所以事情应该完成了。
另一种相信:只有现实结果出现,事情才算真正完成。
执行缝隙,不只是“执行失败”
如果只是把执行缝隙理解为“命令没有成功”,这个概念就太普通了。
任何机器都会失灵,任何系统都会报错,任何人也都可能操作失败。
执行缝隙真正特殊的地方在于,它常常发生在一个看起来已经完成的流程里。
车主确实按了锁车键。
遥控钥匙也可能确实工作了。
车辆本身没有损坏。
整个系统甚至没有留下一个明显的错误提示。
然而,最终目标仍然没有实现。
所以,执行缝隙并不是简单的“没有执行”。
它更接近这样一种状态:
人已经完成了自己能看见的动作,系统也给出了足以让人继续往下走的信号,但现实并没有进入人真正期待的状态。
这道缝有时来自信号被干扰,有时来自对象被替换,有时来自执行条件已经改变,也可能来自系统只验证了过程,却没有验证最终状态。
但它们有一个共同点:
意图、动作和结果,在某个位置失去了连接。
系统可以证明按钮被按下,却未必能证明现实已经改变。
锁车干扰事件里,车主想要的是一种结果:车辆处于安全锁定状态。
而系统能够直接观察和记录的,往往只是一些中间动作:信号是否发送、控制器是否响应、车灯是否闪烁。
中间动作通常可以代表结果,但不能永远代替结果。
这就像一张快递单只能证明包裹进入过流程,不能单独证明包裹已经安全到达;一条转账请求只能证明操作已经提交,不能单独证明钱最终到了正确账户;一条审批记录只能证明有人点击过同意,不能自动证明最后执行的内容与审批时看到的内容完全一致。
我们习惯把这些过程证据当成结果证据,是因为多数时候它们确实一致。
但攻击者最关心的,恰恰是如何让两者不再一致。
为什么这道缝平时几乎看不见
执行缝隙有一个很特别的性质:在没有事故的时候,它几乎像不存在一样。
一辆车每天正常锁车,车主不会去思考遥控器、无线信号、车载接收器和门锁机构之间的关系。
他只会形成一个非常简单的生活经验:
按一下,车就锁了。
系统越稳定,这种经验越牢固。
而经验越牢固,人越不会在每次操作以后重新验证结果。
这正是现代自动化给人带来的便利。
如果每一个动作都必须人工从头检查到尾,自动化就失去了意义。我们依赖系统,就是希望它把复杂过程压缩成一个简单按钮。
按下按钮以后,剩下的事交给机器。
但便利背后总有一个隐含前提:
机器执行的事情,和人以为机器执行的事情,是同一件事。
当这个前提成立时,按钮代表效率。
当这个前提被攻击者打破时,按钮就可能代表错觉。
自动化最大的便利,是把复杂过程藏起来;自动化最大的风险,也来自复杂过程被藏起来。
车主看不见无线信号有没有到达。
他也看不见每一扇门锁的机械状态。
他只能依靠几个被设计出来的反馈:灯光、声音、后视镜折叠,或者手机应用上的一个锁形图标。
这些反馈是系统为人制造的“可理解界面”。
它们非常重要,却也可能造成一个问题:
人最后相信的不是车辆状态,而是界面状态。
当界面显示“已锁车”,人的任务就结束了。
至于现实中的车门是否真的锁止,反而变成了系统内部一个不再被关注的问题。
这就是执行缝隙为什么会长期被忽略。
它藏在界面背后,藏在流程深处,也藏在人已经习惯不再确认的地方。
坏人总是比普通人更关心缝隙
普通人使用系统,是为了完成目标。
攻击者研究系统,是为了寻找目标、动作与结果之间不一致的地方。
车主关心的是怎样锁车。
小偷关心的是:怎样让车主认为自己锁了车,而实际上没有锁。
这两种思维完全不同。
一个在顺着流程使用系统,另一个在逆着流程寻找断点。
因此,很多真正有效的攻击,并不是直接破坏最坚固的部分。
它们绕开坚固的门锁,绕开复杂的密码,绕开正面的权限对抗,转而寻找那些默认被信任、却没有被最终验证的环节。
遥控锁干扰就是如此。
攻击者不需要证明自己比汽车厂商更懂门锁。
他只需要知道,车主通常不会在按下按钮以后,再走回去拉一次车门。
安全系统守的是门,攻击者寻找的却是人什么时候不再回头。
从这个角度看,执行缝隙不仅是一种技术现象,也是一种行为现象。
它存在于系统没有验证的地方,也存在于人停止验证的时刻。
攻击者最喜欢的状态,是人和系统都认为对方已经完成了自己的责任。
人认为:我已经发出命令。
系统认为:我已经处理请求。
流程认为:操作已经结束。
但没有任何一方真正负责确认,现实结果是否与最初意图一致。
这时候,整条链路看起来人人尽责,却仍然可能留下一个无人负责的空白。
现代企业里,也有无数个“锁车按钮”
企业的信息系统里,到处都是类似的按钮。
提交、批准、发布、执行、删除、转账、部署、同步、授权。
每一个按钮都代表着人希望现实发生某种变化。
点击“发布”,希望新内容真的出现在正确的位置。
点击“转账”,希望资金真的到达正确账户。
点击“部署”,希望正确版本进入正确环境。
点击“批准”,希望被批准的具体内容按照当时的条件被执行。
长期以来,企业安全主要关心两个问题:
谁有权按这个按钮?
这个按钮有没有被未经授权的人按下?
这当然重要。
但锁车干扰提醒了我们,合法的人按下合法按钮,并不能自动保证合法结果。
车主拥有自己的车钥匙。
他有完整的锁车权限。
他也确实亲手发出了命令。
整个过程不存在越权。
可车依然没有锁上。
因此,执行安全还必须多问一个问题:
按钮按下以后,最终发生的事情,是否真的是按钮按下时那个人想要发生的事情?
这就是从权限安全走向执行安全的关键一步。
权限只能证明谁可以发出命令,不能证明命令最终以正确方式进入现实。
在传统系统里,人们常常把“授权完成”视为安全链条的终点。
但实际上,授权只是允许执行开始。
从授权到真正执行,中间还可能经过参数生成、对象选择、环境变化、系统调用、接口转换和设备响应。
每一次转换,都有可能产生偏移。
每一个没有被重新绑定和验证的环节,都可能成为新的“无线干扰”。
AI Agent让执行缝隙变得更值得警惕
当人工智能只负责回答问题时,执行缝隙造成的影响相对有限。
模型回答错了,人可以不采用。
建议不合理,也可以停留在屏幕上。
但AI Agent正在获得越来越多的执行能力。
它可以发送邮件、修改代码、调用接口、操作云资源、调整账户权限,甚至管理资金和现实设备。
这相当于我们不再只是让AI告诉我们怎样锁车,而是把遥控钥匙交给了它。
更重要的是,AI Agent的行动链路远比普通遥控钥匙复杂。
一个看似简单的目标,可能先被模型解释,再被拆成多个任务,然后调用不同工具,生成参数,经过审批,最后由外部系统执行。
人的一句话,需要穿过很长的链路,才能最终变成现实。
链路越长,转换越多,执行缝隙就越值得警惕。
攻击者也不一定需要直接攻击模型本身。
他可以污染模型读取的信息,诱导它选择错误工具,改变执行对象,在审批摘要里隐藏关键差异,或者让最终调用的参数偏离最初意图。
整个过程中,AI可能始终表现得很正常。
它正确读取了信息,合理完成了推理,顺利调用了工具,系统也返回了成功。
就像车主确实按下了锁车键。
真正的问题发生在最后:
现实是否真的进入了被允许的状态?
AI不会创造执行缝隙,但它会把原本短暂的一道缝,拉成长而复杂的执行链。
人锁一辆车,可能只涉及一次操作。
AI Agent一分钟内却可能执行成百上千次任务。
一个人锁车失败,风险集中在一辆车。
一个自动化系统如果在对象、范围或条件上出现偏移,可能同时影响大量账户、设备和业务系统。
过去,执行缝隙常常只带来零散损失。
在AI时代,它第一次可能被规模化、连续化和自动化利用。
这也是为什么仅仅提高模型正确率,并不能解决全部问题。
一个模型即使在绝大多数时候都判断正确,只要关键操作缺少最后的结果绑定与边界控制,极少数偏差也可能迅速进入现实。
真正重要的,不只是AI有没有正确理解任务,而是无论前面发生了什么,最后那扇门到底有没有锁上。
“拉一下车门”代表什么
锁车以后拉一下车门,是一个很笨的动作。
它没有人工智能,没有复杂算法,也没有漂亮界面。
它甚至会牺牲一点效率。
但它验证了整条锁车链路最重要的结果。
车主不需要知道信号在哪个环节被干扰,也不需要分析遥控器和车辆之间发生了什么。
他只需要确认一件事:
门还能不能被打开。
这是一种非常朴素,却非常有效的安全思想。
不试图保证前面的每个环节永远正确,而是在后果真正发生之前,对最终状态做一次独立确认。
在企业系统里,这种“拉一下车门”的机制,可以表现为很多形式。
高风险转账在执行前重新核对真实收款对象。
云资源删除前确认对象是否属于关键资产。
代码部署前确认版本、环境和影响范围。
AI Agent提交操作以后,由独立控制层判断最终动作是否越过不可接受的边界。
它们的共同点不是让系统变得更聪明,而是不把“命令已经发出”当成“结果已经安全”。
真正可靠的最后一道防线,往往不负责理解全部过程,只负责确认最重要的结果。
很多人会担心,这种机制会降低效率。
确实会。
就像每次锁车以后再拉一下门,比按完按钮直接离开多花一秒钟。
但安全从来不是没有成本的。
关键问题不是能否做到零成本,而是这一秒钟的确认,是否值得换取后面不可逆损失的降低。
对于低风险、可恢复的操作,系统可以追求顺畅。
对于高风险、不可逆的执行,适当的阻力不是缺陷,而是保护。
系统越聪明,越不能省掉最后一步
人们很容易认为,随着系统越来越智能,执行缝隙会自然缩小。
模型理解能力更强,自动化更成熟,设备反馈更完整,整个链路似乎理应越来越可靠。
但事实可能恰好相反。
系统越聪明,人越容易把更多判断和执行交出去。
系统越顺畅,人越容易减少回头确认。
自动化越稳定,人越容易相信按钮背后的复杂过程永远不会出错。
这与锁车完全一样。
如果遥控锁经常失效,人们反而会养成拉门检查的习惯。
正是因为它通常太可靠,人们才会在极少数被干扰的时刻毫无防备。
可靠性会建立信任,而过度信任又会放大极少数失败的后果。
AI Agent未来真正的风险,不一定来自它天天犯错。
更可能来自它绝大多数时候都表现得太好,以至于人们逐渐取消检查、扩大权限,并默认它的动作等于结果。
等攻击者终于找到那道缝时,系统已经拥有了足够大的执行范围。
所以,系统越智能,越需要明确区分三件事:
人想做什么。
系统做了什么。
现实最后发生了什么。
这三件事大多数时候应该一致。
但安全设计不能只建立在“大多数时候”之上。
它必须考虑,当它们不一致时,是否还有机会停下来。
回到那个停车场。
车主按下遥控钥匙,转身离开。
在他的认知里,任务已经结束。
但对于安全而言,真正的问题才刚刚开始:
信号有没有到达?
车辆有没有执行?
所有车门有没有锁住?
现实状态是否和车主意图一致?
攻击者正是在这些没有被继续追问的问题里,找到了机会。
执行缝隙并不是一个遥远的技术概念。
它就是我们每天都在经历、却很少认真区分的一件事:
我们完成了一个代表结果的动作,于是便相信结果已经发生。
大多数时候,这种信任让生活更方便。
少数时候,它也会成为别人利用我们的入口。
AI时代,企业需要重新学习那个老司机早就知道的生活常识。
锁车以后,不要只相信自己按过按钮。
还要确认门真的锁住了。
发出命令以后,不要只确认流程已经完成。
还要确认现实发生的事情,仍然是当初真正想要、真正批准,也真正能够承受的事情。
执行缝隙,就是“我以为已经完成”与“现实真正完成”之间,能够被攻击者利用的那段距离。
而安全真正要守住的,也从来不是按钮。
是按钮背后的现实。
本内容由作者授权发布,观点仅代表作者本人,不代表虎嗅立场。如对本稿件有异议或投诉,请联系 tougao@huxiu.com。
本文来自虎嗅,原文链接:https://www.huxiu.com/article/4877245.html?f=wyxwapp
热门跟贴