第 95 期·中文精读

宋晓冬:对抗性机器学习与计算机安全

Dawn Song: Adversarial Machine Learning and Computer Security

安全领域研究者谈机器学习模型的对抗攻击与防御,以及深度学习在系统安全攻防中的角色。

官方音频00:00 / --:--
中文精读由 AI 基于原始访谈改写,非官方翻译,可能存在偏差或错误;表述以原音频与官方文稿为准。说明

宋晓冬(Dawn Song)在伯克利做了二十多年计算机安全,从网络协议一路打到软件、二进制、Web、移动端。她自己总结出一条曲线:攻击正在沿着技术栈往上爬,爬到顶端,落在人身上。

她笑着说,安全这行就是就业保障。笑完之后她认真补了一句,如果问她最担心哪一类攻击,答案既不是内存溢出,也不是侧信道,是自动化的社会工程学。

这句话听着轻,其实是整场对话里最重的一句。它意味着,我们花几十年加固的那些系统,可能并不是主战场。

一段代码能不能被证明没有漏洞

对话从最哲学的问题开始:软件系统会永远存在安全漏洞吗?

宋晓冬绕开悲观主义,直接讲清楚了一个技术事实。漏洞这个词的定义本身就很宽,攻击形态还一直在变。过去几十年主流是内存安全类漏洞,缓冲区溢出是教科书案例,攻击者送一段恶意输入进去,程序状态被改掉,控制流被劫持,然后执行本该不执行的代码。远程就能打。

这只是一类。还有一类攻击根本不需要改你的程序,只观察输出,从中推断程序的秘密。攻击面宽到这个程度,所谓"证明系统安全"这个命题本身就卡住了。

在安全领域,我们试图证明的往往是否定命题:这里没有攻击。可攻击的形态那么多,这个命题连定义都不清晰。(宋晓冬)

形式化验证这几十年确实在往前走。她提到,现在已经有一批经过形式化验证的系统真正跑起来了,从微内核到编译器,到文件系统,到某些加密库。有团队把几年甚至几十年的职业生涯押在这个方向上。这是实打实的进展。

她特意补了一句,要谨慎地看这件事。一个系统被证明满足某组安全属性,不等于它对其他类型的攻击免疫。证明有边界,攻击者不会待在边界里。

顺带澄清一个常见误解。程序验证多数是静态的,看代码,不跑代码。跑起来测是另一套东西,模糊测试(fuzzing)、模型检查,那些只能覆盖有限的执行路径。静态分析覆盖所有输入,代价是它需要人先把"安全"写成一条能被数学处理的性质。

攻击在往上爬,最薄弱的环节是人

她回顾自己走过的路径很有意思。网络、软件、程序二进制、Web、移动端,一路走来,工具越来越强,被保护的系统越来越硬。然后她看到一个趋势:攻击在往上移动,从系统移向人。

安全圈有句老话,系统的最薄弱环节往往是人。这句话以前更像感慨,现在变成了可执行的攻击策略。

她的例子很具体。谷歌这类安全能力公认很强的公司,也发生过员工被钓鱼、真的把钱转给攻击者的事。攻击者不需要攻破任何一行代码,只需要让一个聪明人在一个疲惫的下午点错一个链接。

再往上一层是假新闻和信息操纵。目标依然是人的判断,工具换成了内容。

如果人就是系统的最薄弱环节,那这类攻击就是我最担心的。(宋晓冬)

那能不能给人打补丁?她的回答很干脆。机器可以打补丁,可以升级,可以换代。人不能。而且她判断,未来针对人的攻击只会更有效。

她的团队在做的一件事,是用自然语言处理技术做一个"守卫机器人"。设想一个场景:你的邮箱或聊天窗口旁边,有一个程序在观察你和对方的对话,判断对方是不是攻击者。典型的杀猪盘和冒充亲友借钱,套路是自称是你亲戚,人在伦敦,钱包被偷了,急需转账。

守卫机器人可以从两个角度介入。一是识别对话里出现的高风险模式,比如突然出现的转账请求,加上身份核验的空白。二是主动发起挑战应答,自动生成只有真亲戚才答得上来的问题,验证对方身份。

再往前一步,如果判定对方是攻击者,机器人可以反过来跟攻击者周旋,套取更多信息。这个画面有点意思:你以为你在骗人,其实你在被一个模型审问。

Lex 追问了一个很关键的产品问题:这个守卫归谁?装在 Facebook 里,还是作为独立服务跟着你走遍所有平台?

宋晓冬承认这个问题不好答。装在你这边,它需要知道你和你亲戚的很多信息才能做验证,但它服务的是你。装在平台那边,平台掌握了这份画像。同一个技术,归属不同,权力结构完全不同。

在停车标志上贴几块贴纸

话题转到对抗性机器学习(adversarial machine learning),这是她近几年最受关注的方向。

先讲基础概念。对抗样本是在输入上加扰动,人几乎看不出来,模型输出完全变掉。更狠的是定向攻击,不只让模型答错,还让它错成攻击者指定的那个答案。

另一条路径在训练阶段。攻击者往训练数据里掺毒(poisoning),模型照样能训出来,对绝大多数输入表现正常,只在攻击者设定的触发条件下出错。这叫后门攻击(backdoor attack)。

她讲了一个具体到有点荒诞的实验。团队用人脸识别做案例,只插入极少量投毒样本,就能让模型学歪。歪的方式偏离了"把甲认成乙"这种简单映射,模型学到的是一个更一般的规则:只要戴上某种眼镜,任何人都会被识别成目标人物。

实验里目标人物用的是特朗普,后来 Lex 说自己是俄罗斯人,提议改成普京。物理世界里真的打印一副眼镜戴上,拍张照喂进去,识别结果就是那个人。

更离谱的是后续。眼镜甚至不需要肉眼可见,把图案以像素级的方式叠加到图像上就够。人眼完全看不出来,模型已经改了判断。

这类攻击的隐蔽性在于两头都看不见。人眼审训练集,看不出被投毒的那几张图有什么异常。模型训完了,工程师看参数,也看不出它被训歪了。它只在攻击者知道的那个触发条件下失效。

2018 年那篇《Robust Physical-World Attacks on Deep Learning Visual Classification》做的是另一件事,把对抗样本从数字世界搬到物理世界。团队做了贴纸,贴在真实的停车标志上,让视觉分类模型把它认成限速标志。车开过去不会停。

那些停车标志后来被放进了伦敦科学博物馆。(宋晓冬)

数字世界到物理世界的这一步,难度是数量级的跃升。她一条条拆:

视角变了。车在开,标志被看到的角度、距离、光照条件全在变,对抗样本必须对这些变化鲁棒,数字图像不需要考虑这些。

扰动的落点被限制了。数字图像可以在任意像素上动手,物理世界里你只能动标志本身那块区域,背景碰不了。

中间隔了一个相机。数字世界里你可以直接改输入张量,微小扰动直接生效。物理世界要经过打印、贴附、拍摄、采样,扰动必须大到能被相机捕捉,又要小到人眼不觉得异常。

最后还有打印机。色域、材质、光照反射,全是约束。

Lex 问她这个过程里有多少是艺术,多少是科学。她说主要是科学。生成对抗扰动本质上是一个优化问题,把物理约束写进目标函数,剩下的就是算。当然最后要打印、要贴、要拍,那一步必须做实验验证。

这件事说明我们对深度学习的理解还很浅

对抗样本为什么存在?有一种说法是"这是特性不是缺陷",模型学到了训练集里区分度最高的那些特征,只是这些特征跟人类的语义不一致。

宋晓冬的看法更直接:这说明我们对深度学习的理解非常有限。我们知道它有效,不太知道它为什么有效,更不知道它在什么条件下会失效。

她给了一个很清楚的对比。人看一张图,得到的信息远不止一个类别标签。你知道这是什么物体,它离你多远,什么材质,能不能坐上去,光线从哪来。这些信息一起进来,互相约束。当前的分类模型只被要求做一件事,输出那个标签。它没有被要求学到丰富的东西。

她反复用到一个词,更丰富的表征(richer representation)。

人类视觉学到的是关于世界的丰富表征。我们还没有搞明白怎么让模型学到这个。而我相信,更丰富的表征会带来更强的泛化和更强的鲁棒性。(宋晓冬)

这个思路直接导出了她的防御工作。

用任务自带的约束做防御

2018 年那篇语义分割的论文,做的是检测对抗样本。

先解释任务。语义分割是给图像里每一个像素打标签,比图像分类细得多。她团队发现,分割模型被攻击起来也非常容易,加一点扰动,可以让它把任何指定图案分割出来,哪怕图里根本没有这个东西。有人甚至能让它分割出一只不存在的猫。

防御思路来自一个观察。真实图像里存在一种天然约束,她称之为空间一致性(spatial consistency)。

具体做法是这样的。在一张图里随机取两个有交叠区域的图块,分别送进分割模型,然后在交叠区域比对两边的结果。正常图像上两边应该高度一致,因为那是同一块像素。这就是约束。

对抗样本很难满足它。攻击者可以对某个特定图块精心构造扰动,但他不知道你会随机取哪两块,而随机性意味着扰动必须在所有可能的重叠组合下都保持一致。这个难度远远超过伪造一个特定输出。

实验结果显示,这种方法对已有的攻击非常有效。因为我们是在要求模型有更多相互印证的途径,来确认它真的做出了正确的预测。(宋晓冬)

这个思路可以横向扩展。团队后续工作把一致性从空间推到时间,用于语音和音频数据。再往后,视频上可以同时用空间一致性和时间一致性做交叉校验。

核心思想值得单独拎出来:不去跟攻击者在像素层面硬拼,转而利用任务本身天然具备的结构约束。攻击者可以伪造一个点的输出,很难伪造所有点之间的相互关系。

谁在赢,现在看是攻击方

Lex 问了一个直白的问题,攻防两边的论文都上千篇了,谁赢?

她的回答同样直白,现在攻击方明显占优。理由有三条。

攻击的方法太多。一种思路走不通,换一种,成本很低。

黑盒攻击根本不需要知道目标模型的结构和参数。门槛一降,攻击的可复制性就上来了。

防御的效果普遍有边界。她用了"打补丁"这个说法,很多所谓防御只是让模型在某类攻击下稍微稳一点,换个攻击方法又破了。真正强的、通用的防御,还没有。

然后她直接反驳了一个流行说法。很多公司会说,我们的系统部署在受控环境里,数据很窄,模型细节外界不知道,你实验室里那些演示在真实世界根本行不通。

我不认为这叫希望,这叫侥幸。(宋晓冬)

她给了一个具体的反例,打的是谷歌翻译。

第一步,通过 API 查询偷模型。不停调用翻译接口收集输入输出对,用它训练一个模仿模型。模仿模型的效果能接近目标模型。

第二步,在模仿模型上生成对抗样本。

第三步,把这些样本打到真正的谷歌翻译上。部分攻击成功迁移。

她举的例子是温度。原句里是 six Fahrenheit,生成对抗样本时只把 six 改成 seven,一个单词,译文就从 6 华氏度变成了 21 摄氏度。华氏 6 度约合摄氏零下 14 度,21 摄氏度完全不是同一个温度。

这个案例的分量在于,它同时打破了两层假设。一层是"要攻击必须先知道模型",另一层是"真实工业系统打不动"。云端 API 就是最典型的真实世界系统,它被打了,攻击还是从一个黑盒模仿出来的。

她的团队在云视觉 API 上也做过类似实验,同样有效。

特斯拉和自动驾驶:多传感器才是防御

话题来到自动驾驶,Lex 提到特斯拉的纯视觉方案。

宋晓冬的态度分得很清楚。她百分之百确信这类攻击在物理世界可行,已经有研究在特斯拉前方放置特定图案让它误判。但可行性和实施门槛是两码事,还要看有多少人真会去做。

Lex 说马斯克本人对这类攻击不以为意,说他和公司有关联,所以必然这么说。宋晓冬没有跟着调侃,她换了个角度把问题说得更狠:

其实根本不需要精妙的攻击。我们已经看到很多真实事故,在完全没有攻击的情况下,这些系统就做出了错误决策。自然分布偏移已经足够让它们出问题。(宋晓冬)

对车里的人来说,是模型自然犯错,还是被定向攻击,结果没有区别。

防御的方向她讲得很清楚,多传感器融合。车上装着多个摄像头、雷达、超声波,这些传感器的物理特性不同,对同一个对抗图案的响应也不同。攻击者要在所有模态上同时骗过,难度陡增。融合做得越好,能被攻破的空间越小。

她顺带点了一个更朴素的事实,纯视觉方案把全部安全边际压在了一个模态上。

隐私的另一半:机密性

宋晓冬把安全拆成三个属性,完整性、机密性、可用性。前面聊的对抗攻击属于完整性,模型被诱导做出错误判断。隐私属于机密性,训练数据里的敏感信息被泄露出去。

现在机器学习系统的数据流是这样。训练数据进来,模型训出来,用户输入进来,模型给出预测。训练数据本身就是最敏感的资产。它可能是你的财务记录、病历、聊天记录。

问题在于神经网络容量极大,它真的会记住训练数据。

她讲了一类攻击。白盒设定下,攻击者能看到模型参数,可以推断某条特定的数据是否被用于训练。另一类更简单,连参数都不用看,只靠不断查询模型,就能把敏感信息钓出来。

她和谷歌的研究者合作过一个案例,用邮件数据集训语言模型。这类数据天然包含用户的社保号和信用卡号。模型训完之后,攻击者只通过查询接口,就能把这些号码原样提取出来。

这说明神经网络真的会记住训练数据,最敏感的个人身份信息都能被钓出来。(宋晓冬)

这条路有解。差分隐私(differential privacy)在训练过程中往梯度上加噪声,最终模型的效用接近,隐私保护显著增强。她团队提出的那些攻击,对差分隐私训练出来的语言模型失效了。

背后的取舍值得说清楚。效用和隐私之间确实存在张力。想让推荐系统更懂你,它就必须知道更多关于你的事。麻烦出在收集之后怎么处理,能不能保证数据只用于你同意的用途,能不能保证推荐系统不会转头把号码卖给第三方。

谁拥有你的数据

这是整场对话里最有思想密度的一段。

宋晓冬先讲了一段经济史。产权这个概念并不是人类一开始就有的,清晰的产权界定加上有效的执行机制,是近代经济增长的主要驱动力之一。她提到有研究认为,很多发展中国家缺的其实不是资本,是产权制度和对产权的执行。

然后她把类比推过来:数据现在是互联网公司的资产,并非个人的资产,而且没有清晰的产权概念。

你用什么定义一个人?过去是物理财产,是看得见摸得着的东西。现在越来越多的定义存在于数字世界里,你的政治观点、你的音乐品味、你的财务和健康信息。而这些数据,现在大部分归互联网公司所有。(宋晓冬)

她的逻辑是顺序问题。先有产权,才谈得上"谁来决定这份数据能怎么用"。用户是所有者,用户才有资格定义用途。这个前提不成立,后面所有的知情同意、隐私设置,都是在别人家的地盘上商量。

Lex 提出一个很现实的担心。多少人愿意安静地把数据交出去,换取免费服务?如果数据所有权归个人,互联网的商业模式是不是要重写?

宋晓冬认为不必然。用户有了所有权,也可以选择继续授权平台使用数据,只要用途是他认可的。推荐系统给他推了好音乐、好电影,他乐意。另一些用户可能更愿意付费订阅,换取不被追踪。关键是选择权要真实存在,而且这笔交易要摆到台面上。

她对当下的舆论有一点评判。媒体叙事常常是两方对立,用户说我信任不了平台,平台说我给了你免费服务。这个框架没有出口。她希望的是更细致的对话,承认效用和隐私之间存在真实张力,技术和监管两条腿一起走。

Lex 在这段补了一个正面视角,值得记下来。Facebook 要求真人真名真照片,让一个人在数字空间里以自己的真实身份存在。这件事在今天看来平常,当年是从物理世界跨到数字世界的一大步,塑造了 21 世纪的数字身份形态。

区块链:分布式账本到底解决什么

Lex 请她解释区块链,她先纠正了一个用词问题,这个词被用得太泛了。

她给出的定义是,一群互不完全信任的节点组成的网络,只要其中足够比例的节点诚实,整个系统就能达成某些性质,比如维护一份不可篡改的日志,让一批交易被一致确认并固定下来。

账本就是一个数据库,分布式账本就是这份数据库在多节点之间同步维护。

那要防什么?恶意节点篡改交易记录,双花,制造网络分区让不同节点看到不同的账本视图。账本必须精确反映什么时候发生了什么,没有重复,没有遗漏。

安全强度取决于共识机制。工作量证明靠算力和电力投入,权益证明靠质押。每种机制理论上都能推导出攻破系统所需的资源比例。她提醒了一句,攻击类型很多,很难给出完整门槛估计,但"需要控制多少比例的节点"这类问题可以算清楚。

隐私是另一面。公链上的交易默认全公开,任何人都能看,机密性为零。要加密就得额外引入机制,零知识证明、安全多方计算,把交易双方的身份和金额藏起来。

她自己的创业公司 Oasis Labs 做的就是这个。他们做机密智能合约,合约执行的输入数据和执行过程都不对外暴露,同时用不可篡改的日志记录两件事:这份数据的所有权归谁,使用者承诺遵守哪些使用策略。

我们在建的是一个负责任的数据经济平台,把所有权、隐私计算、策略执行这几件事组合到一起。(宋晓冬)

这条线跟她前面讲的数据所有权是接上的。产权要能被执行,就需要一套技术上不可抵赖的记录,和一套密码学上的保护。

教机器写程序

Lex 说程序合成(program synthesis)在哲学意义上承载了计算机科学的大部分梦想。她认同,并且给了理由。

一旦我们教会计算机写程序,计算机科学才真正抵达它的终点。而且对我来说,程序合成是构建智能机器最好的试验场,甚至可以说是通往通用人工智能最理想的领域。(宋晓冬)

她从安全转向 AI 的时候,给自己的理由是"我想造智能机器"。程序合成是这条路上最纯粹的考题。分类任务里模型学的是从输入到标签的映射,写程序要求模型把复杂的意图压缩成算法,难度和通过图灵测试在自然语言上的难度是同级别的。

有希望吗?她说存在性证明是现成的,人类会写程序,机器没有理由不会。问题只在于要多久。

进展集中在受限领域。标志性的早期工作是自然语言转 if-this-then-that 规则,给定触发条件,输出该执行的动作,程序结构极简。

然后难度往上抬。能合成带循环的程序,再往上是递归。她团队的工作已经做到了递归的程序合成。

有意思的是产业侧。她在 NeurIPS 上做完报告,一家创业公司的 CEO 找到她说,他们论文里的方法已经成了公司的核心产品,具体场景是把自然语言描述翻译成 SQL 查询。

她给出了三个衡量这个领域进步的维度。

第一是合成程序的复杂度,用代码行数衡量。从 if-this-then-that 到循环,到递归,这条曲线在稳定上升。她说神经程序合成这个社区很小,NeurIPS 上相关 session 的规模还很小,但一直在长。

第二是泛化。模型在训练分布之外的输入上还能不能给出正确的程序。递归神经程序在他们测试的部分任务上能做到完美泛化,但这只是一部分任务。

第三点她认为最重要,也是跨领域的共同难题,从已有任务中学习,然后解决新任务。

今天的程序合成还是这个模式:给一个特定任务,训一个模型,解这一个任务。人不是这样工作的。培养一个程序员,之后他能解无数个新问题。(宋晓冬)

这和强化学习里那个老问题一模一样。训练一个 agent 打某个游戏,它学会的是打这一个游戏。我们想要的是能从过往经验里抽取知识、迁移到新任务上的系统。她认为这件事在程序合成上尤其关键,因为程序合成的全部意义就是造一个能解决新问题的工具。

从物理到计算机,从东到西

聊到最后一部分,Lex 把话题拉回她个人的路径。宋晓冬本科在国内读物理,之后到美国,在康奈尔读了一年物理博士,转去卡内基梅隆读计算机。

她描述当年被物理吸引的那个瞬间,很具体。在图书馆里写笔记,突然意识到,只要几条简单的公理、几条简单的定律,就能推出那么多东西,几乎像是能推出剩下的整个世界。物理是自然的语言。

然后她讲到这个浪漫感的消退。做理论研究,实际上要写大量的仿真代码。她笑着说,很多时候是在写 Fortran。同时她跟高年级学生聊天,发现很多人毕业去了华尔街。而她本科时唯一接触过的计算机课程,就是 Fortran 编程。

于是她自己找书学 C,写了个围棋游戏,又写了个 3D 俄罗斯方块。她强调那个时刻的感受,有个想法,写出来,立刻能跑起来,能看见它活着。

在物理里,你有一个好理论,然后要等实验物理学家去做实验来验证它,要等很久。在计算机里,你有想法,写完代码,它就在那儿了。(宋晓冬)

她也解释了当年为什么选理论物理。因为先做过实验物理,大部分时间花在修设备上,设备贵,需要跟很多人协作,周期长。她说这事需要一个村子的人一起干。

接下来这段她讲得最清楚。物理可以从几条简单的定律推出整个宇宙,计算机不行。计算机系统是人定义的,是人工产物,它的每一个设计背后都是历史原因,为什么是这个架构不是那个架构,为什么这个协议长成这样。你没法用几条基本定律推出来,只能去了解它怎么来的。

这也解释了她为什么觉得物理背景的人转型容易。物理训练的是抽象和建模的能力,换到计算机,缺的只是那些历史细节。

说到从中国到美国,她提醒 Lex 时代不一样了。她来的时候,现在从中国来的学生英语流利,对美国文化已经很熟悉。她那个年代,连发邮件都不容易,要去特定的、有权限的机房排队。她对西方世界了解很少,甚至不知道美国西海岸和东海岸哪个更值得去。

信息稀缺意味着文化差异被放大。今天的学生是在一个共享信息几乎无摩擦的环境里长大的,这是完全不同的世界。

科学没有国界,这不是一句客套话

Lex 问了一个有点敏感的问题。他在美国待了二十年,看俄罗斯是一个既遥远又熟悉的地方。他问宋晓冬,中美能不能在 AI 的发展上健康协作,而不滑向军备竞赛。

她的回答是肯定的,而且给了一个不靠乐观主义支撑的理由。

学术研究的一切都是公开的。我们写论文,开源代码,全部进入公共领域。一个人在美国、在中国、在世界上任何地方,都可以上 arXiv 看到最新的结果。(宋晓冬)

这个论证比"科学家应该友好"要硬。它说的是,基础研究的产出机制本身就不设边界。论文和代码一旦公开,知识就流过去了,管制跟不上这个速度。真正的竞争在下游,在产品化和工程化,而上游的公开性是这套体系能持续进步的前提。

Lex 提到冷战时期的苏联,想验证这个乐观判断有没有历史依据。宋晓冬没有展开政治分析,她把落点收在学术共同体的开放性上。这个开放性本身就是希望。

关于意义:谁有资格给你定义这件事

Lex 问到意义。他先讲了一个观察,很多面对过死亡的人,比如确诊癌症的人,会经历一次剧烈的简化,把生活里大部分不重要的事砍掉,只留下少数几件真正给他们意义的事。死亡的临近是一种强催化剂。

宋晓冬说她不需要面对死亡才开始问这个问题。这个问题跟了她很久。

她先把问题拆开,问的是另一层:谁有资格定义你生命的意义?

是某种比你更大的东西吗?是外面有个声音告诉你,这是你生来要做的事,这是你的天命?还是完全由你自己定?如果由自己定,那这个答案会不会是任意的?

她想了很久,也找过各种外部的声音,最后的结论是自己定义。

我最后得到的结论是,是你自己定义生命的意义。Lex 接了一句,这是个很重的负担。她说,是,也不是。负担的另一面是自由。(宋晓冬)

然后她立刻补了一个反问,这个问题本身成立吗?大多数人根本不会想这个问题,对他们来说意义不是一个待解的题。而且就算想清楚了,知道意义是什么,真的会让生活更好、更快乐吗?这是开放问题。

她给这个问题的处理方式是,问的过程本身有价值,问得太久、太用力,可能会失效,甚至有害。

Lex 给出了自己的版本。他说创造这件事给他持续的满足感,他喜欢小孩但没有孩子,他把写的程序看成小小的创造物,把机器人看成小小的创造物,还有想法、定理。这些东西本身带来喜悦。他猜很多科学家和很多人都一样。如果非要给一个答案,那就是为自己创造新的东西。

宋晓冬认下这部分,创造对她同样重要,写论文就是创造。但她又往前推了一层。如果意义是创造,那要创造什么?可创造的东西太多了,选择本身又需要标准。

她提出另一个可能,也许意义是成长。每天试着比昨天好一点,把自己放进一个更大的演化进程里。

Lex 顺着这个说了一句很妙的话。奇怪的地方在于,成长似乎比成长所朝向的那个目标更重要。目标的分量比不上过程。

他打了个比方。论文投出去的那一刻,项目结束了,有感激,有庆祝,然后几乎立刻开始找下一件事。满足感不在终点,在克服挑战的那个过程里。驱动演化的那股力量,好像也在我们体内。

宋晓冬回到她自己的经历做了一个印证。当年从安全转向 AI,她给自己的理由是"我要造智能机器",那是她内心那个声音给出的答案。她真的沿着这条路走了,而且走到了能被称为世界级研究者的位置。一个自己定义的意义,确实能把一个人推到很远的地方。

但她没有把这件事说得太确定。她承认,你没有办法真的确证那就是你生命的意义。可能只是自我说服。不过 Lex 补的那句更准确,那种确定本身是解放性的,因为它让你可以毫无保留地投入。哪怕它是幻觉,它也让行动成为可能。

问得太久会变成陷阱。我们会一直抬头看星星,问那些永远答不上的大问题。可以问,不该沉进去。这大概是这段对话留下的最实用的一句。

这一期值得带走的几件事

整场对话跨度很大,从形式化验证到对抗样本,从数据产权到区块链,到程序合成,最后落到意义。贯穿其中的一条线其实很清楚:技术栈每加固一层,攻击就往上一层移动,最后落在人身上。

而对人的攻击,目前没有任何补丁机制。这决定了接下来十年安全工作的重心不可能只在代码里。

宋晓冬给的具体判断都有可操作性,值得整理成一份清单。

  • 把训练数据当成核心资产来管。神经网络会记住训练数据,社保号、信用卡号、病历都能通过查询接口被钓出来。收集之前先问一句,这份数据泄露的后果是什么。
  • 训练语言模型或任何处理敏感文本的模型时,优先考虑差分隐私。她团队的研究显示,加了差分隐私的训练能保持接近的效用,同时让他们自己设计的提取攻击失效。
  • 不要用"我的系统在受控环境里"来说服自己。谷歌翻译、云视觉 API 这些最典型的真实工业系统都被黑盒攻击打穿了。黑盒意味着攻击者不需要知道你的模型结构和参数。
  • 做多传感器融合,别把安全边际压在单一模态上。摄像头、雷达、超声波对同一个对抗图案的响应不同,攻击者要在所有模态上同时骗过,成本会陡增。
  • 在模型侧加交叉验证机制,用任务自带的结构约束做防御。空间一致性、时间一致性这类检查,攻击者可以伪造一个点的输出,很难伪造所有点之间的相互关系。这比在像素层面跟攻击者硬拼更有效。
  • 认真对待"谁拥有数据"这个问题。这是所有隐私讨论的前置条件。所有权不清晰,知情同意和隐私设置都只是在别人地盘上商量。作为用户,优先选择那些把数据用途讲清楚的服务;作为从业者,把数据用途和留存策略写成人能读懂的东西。
  • 警惕自动化社会工程。冒充亲友借钱、冒充同事要验证码,这类攻击会随着语言模型变强而更难识别。给家里长辈讲清楚一件事,任何涉及转账的请求,必须通过另一条通道回拨确认。
  • 如果要做程序合成方向,把精力放在跨任务迁移上。合成程序的复杂度、泛化能力、从已有任务学习解决新任务,这三个维度里第三个最有价值,也最难。
  • 意义这个问题可以问,别问太久。问它的价值在于逼你做出取舍,让你能毫无保留地投入某件事。问成一种持续的自我怀疑,它就开始收利息了。给自己一个答案,哪怕它只是暂时的,然后去做。

宋晓冬那句玩笑话可以当作收尾。安全就是就业保障。这话听着轻松,背后是一个不太轻松的事实,这场攻防没有终点,只有不断上移的战线。而这一次,战线的最前端站着的是人。

本集资源与出处