Transcript

00:00:00感谢各位莅临,感谢大家留到最后。我叫亚历克斯,在一家名为Corridor的小公司工作。今天想和大家聊聊“氛围编程”,以及从安全角度来看,一些正在发生的有趣现象。首先,我本人其实非常支持使用AI来生成代码。我认为这是一个绝佳的机会,让人们能够以前所未有的方式利用计算机。现场有很多专业的软件开发者。我们这些从小写代码、
00:00:38从小通过命令行使用电脑或很早就开始编程的人,其实不太明白这对普通人意味着什么。但这是有史以来第一次,普通人将能够真正利用计算机,以它们本应长期以来就能为人们所用的方式。编程是一种超能力。能够让计算机做事,而无需购买软件、
00:01:05使用开源或请他人为你编写代码,这本身就是一种超能力。
00:01:11“氛围编程”正在将这种能力带给数百万人。这是一件不可思议的事情。我们应该非常高兴,我们正处于这场革命的开端,这场革命将为所有人带来可及性。但它也是一个惊人的“自伤武器”。“自伤武器”可能还是轻描淡写了。我们简直是给了这些人一把“脚部火箭筒”。
00:01:34当普通人进行“氛围编程”时,有很多很多例子表明他们会遇到糟糕的事情。有些只是有趣的小东西,比如他们孩子的少年棒球联赛日程,或者他们输入个人数据的地方。有些人则在“氛围编程”医疗记录系统、
00:01:54比特币系统,或者存储个人数据、
00:01:58获取信用卡号、
00:01:59保存驾照的系统。有大量例子表明人们使用“氛围编程”应用来创建重要事物。也许一些不便提及但名字在我身后非常显眼和明显的竞争平台,正在让情况变得尤其糟糕,因为它们使用了非常差的默认设置,并且没有让人们更容易地使用。这使得他们很容易使用像Superbase这样糟糕的默认配置。这并不是Superbase的错。
00:02:33只是“氛围编程”平台,以及其他一些平台,默认情况下没有安全地配置这些东西。这不太好。甚至我们不只是在谈论平台上直接的“氛围编程”,而是专业人士在使用时,我们实际上有很好的实证学术数据。我推荐大家阅读一篇很棒的论文,叫做“后座学术小组”(Backbench Academic Group)。他们创建了一系列提示,他们认为这些提示可能会让编程代理生成具有安全漏洞的后端代码。然后他们用这些提示测试了一系列编程工具和大型语言模型(LLMs),以观察结果。他们测试了两个方面:一是生成的代码是否正确;二是它是否有安全缺陷。值得称赞的是,他们会随着新模型的发布不断更新和公布这些结果。
00:03:29你们可以去看看。正如你们所料,大型语言模型(LLMs)确实会犯很多错误,而且还会引入大量的缺陷。不过,这正在朝着正确的方向发展。
00:03:41你们不必拍照。可以去backspends.com获取一个更易读的版本。此外,他们所有的代码都是开源的,所以你们可以自己重现。
00:03:51所以,第一,这正在朝着正确的方向发展,对吧?即使你看一个产品系列,比如OpenAI的产品系列,它也在朝着正确的方向发展。GPT-5比GPT-4.1、
00:04:05GPT-4.0等做得好得多。使用相同的提示,漏洞更少。
00:04:10现在,这里的一个问题是,这些提示和测试现在都是开源的。
00:04:14所以你可能会有测试过拟合的问题。尽管我们也看到了同样的情况,但我们公司所做的是将此内部化,现在我们正在使用自己的一些测试。我们确实看到了相同的结果。在我们自己的测试中,实际上,赢家是Claude Sonnet 4.5,他们还没有公开发布。但Anthropic在排行榜上稍微领先GPT-5一点点。但无论如何,它正在朝着正确的方向发展。
00:04:39但即便如此,即使是这里顶尖的产品,在通过了实际正确代码的回归测试后,如果其中20%仍然存在某种安全漏洞,那也算不上出色。
00:04:52作为一名安全专业人士,这并不是我真正希望看到的结果。
00:04:56我是《辐射》系列的忠实粉丝。战争从未改变,对吧?在我看来,我们现在所做的有点像这样:我们给这些“氛围编程”者,尤其是那些以前从未专业编写过软件的人,提供了基础武器。我们给了他们弹弓和背包。然后把他们推到一个充满手持尖锐木棍的变种人的世界里。他们立刻就被吃掉了,对吧?因为坏人并不是从零开始编写代码的。二十多年来,专业的攻击者一直在研究如何入侵网络应用、
00:05:35移动应用,如何逆向工程这些东西,尤其是如何构建恶意行为的财务模型。因此,我们有了一个全新的群体,他们奇迹般地获得了以新方式使用计算机的能力,却要对抗那些以软件漏洞牟利为生、
00:05:54以此为全部工作的专业人士。这反映在安全行业中,我们对这些漏洞进行定性和定量的方式。我们使用的其中一个框架叫做MITRE ATT&CK框架。在安全领域,我们从军事中借鉴了“杀伤链”的概念,但它基本上是指作为攻击者,要实现有效入侵所必须采取的步骤。这些步骤从左到右依次是:侦察、
00:06:24资源开发、
00:06:25初始访问、
00:06:26执行、
00:06:27持久化等等。垂直方向是不同类别的技术。对于其中每一个类别,有时都有几十种甚至上百种不同的技术。这只是MITRE的顶层结构,MITRE是美国政府资助的一个组织,负责创建这个过于复杂的图表,对所有这些事物进行分类,以便我们可以在安全社区中追踪不同的威胁行为者,并拥有标准语言来讨论我们在野外观察到的情况。所以我们有这些可爱的“避难所居民”,我们把这些工具交给他们,然后说:“嘿,祝你好运。”而他们走出去面对的,是一个充满坏人的世界,这些坏人会做所有这些事情。如果你访问attack.mitre.org,你会看到已知的漏洞利用链列表,以及来自不同威胁组织(如AP-228和29、
00:07:30UNC-3886)在野外发生的已知事件。所以这就像中华人民共和国国家安全部,或者俄罗斯对外情报局,或者像Lapsus这样的专业经济动机组织。然后这里是他们用来攻击不同受害者的技术。认为“氛围编程”者会理解所有这些,简直是荒谬的。但到目前为止,这实际上一直是一种假设。那么我们能做得更好吗?嗯,我们能做的第一件事是,你知道,作为工程师,当我们想解决问题时,我们开始把问题分解成小块,对吧?事实是,我们这里有两种完全不同类别的问题。首先,我们必须将这些工具的使用分为两大类。第一类是真正的“氛围编程”,对吧?当我谈到“氛围编程”时,我指的是那些不是专业软件工程师的普通人,对吧?比如那些有真正普通爱好的人。所以这些人不会在这个房间里,对吧?他们不会在周四下午来参加这个会议,他们有更好的事情要做,恕我直言,而不是来参加Chip AI。这没关系。很高兴来到这里。我也在这里。但是,如果你在这里,你就不是一个“氛围编程”者,对吧?你知道,我们这些工作的人,当我们使用AI时,我们可能是在做AI辅助工程,对吧?
00:09:09所以,“氛围编程”指的是那些有史以来第一次能够通过专为他们打造的新工具,来获得这种能力的人。所以我们首先要做的是,将问题类别和人们使用这些工具的方式区分开来。我认为我们必须停止将AI辅助工程称为“氛围编程”。也许AI辅助工程,我们可以想出一个更好的术语。但这范围很广,从人们自动补全、
00:09:35Tab键补全、
00:09:36光标操作,到现在的专业工程师会同时调度四五个不同的代理在后台执行不同的任务,而他们自己则专注于想做的事情。尽管这些代理是自主运行的,但工程师仍然是主导者,他们知道自己想要什么。这仍然与“氛围编程”非常不同。“氛围编程”者通常依赖于一个功能完备的平台,对吧?所以他们需要一个能为他们端到端地完成所有事情的平台。他们不是一块一块地拼凑东西。他们描述一个结果。他们有一个想要的结果。他们可以用英语或他们说的任何语言来描述。他们可能是在可视化地操作,对吧?所以有很多这样的平台允许你通过图形用户界面(GUI)等方式进行布局。显然,V0就是一个很好的例子。所以他们有一个想要的结果。他们不一定会,也不太可能描述他们是如何达到这个结果的。他们通常是从零开始。
00:10:34所以他们有一个好处,就是不必将“氛围编程”平台所做的一切融入到某种现有的代码库或现有架构中,这从安全角度来看实际上是很好的。我们可以稍后再谈。但这从安全角度为“氛围编程”平台带来了很多好处,因为它不必适应某种现有的AWS或(天哪)自托管架构。
00:11:00这里的缺点是,他们自己几乎没有能力来保护输出的安全。所以这就是你最终会看到人们在推特上抱怨的问题,比如“为什么我看到这个错误”或者“我的比特币都去哪儿了?”如果你在X上搜索“我的比特币去哪儿了”,你会看到很多推文,对吧?因为事实证明,我是说,你有很多理由会遇到这种情况,但“氛围编程”现在也成了人们发这种推文的原因之一。因为他们没有能力查看输出,然后判断它是否安全。而一个碰巧使用AI来改善工作的软件工程师,他们是监督代理的专业人士。
00:11:41再说一次,这可以很简单,比如“我开始了一个函数,我想让你帮我完成它”。也可以是“我有一个bug,我想让你处理并修复它”。这可能意味着你派遣一个代理为你工作30分钟。但最终,他们可能是在描述一个他们想要的组件,并提出更具体的请求。因此他们有更多的具体性,他们想要的不是最终输出,而是“这是我想要的一系列步骤”。他们还可以制定计划,比如“首先给我一个计划。你编辑这个计划,然后把计划还给代理,让它一步步执行。”现在,对于这些人来说,缺点是你经常要处理现有的代码库,以及各种需求、
00:12:23合规性要求、
00:12:24架构要求。如果你在做AI辅助工程,通常不会从零开始。所以如果你是这类人,要提出某种安全计划并不那么容易。但你希望确实具备一些安全技能,如果你是这类人,你甚至可能有一个专门的安全团队可以依赖。所以这些人有非常不同的安全要求,我们可以帮助他们解决。他们需要自己的解决方案。那么,作为一个群体,我们可以提供哪些解决方案来帮助这些人,尤其是那些在AI编程平台上工作的人呢?
00:12:56那么,“氛围编程”者需要什么呢?首先,他们需要“安全设计”(secure by design)。
00:13:01所以当我们谈论“安全设计”时,我们通常指的是最终产品,对吧?
00:13:04这通常是指SaaS平台默认应具有良好的身份验证选项,所有设置默认应是安全的,并且你必须有意地关闭这些安全设置等等。从AI编程的角度来看,我们真正想要的是“氛围编程”的设置、
00:13:20架构和代码都应该有“主见”。AI编程代理应该对“你应该使用哪些组件以及如何配置它们才能第一次就正确完成任务”有非常明确的看法。我提到了Superbase的例子,或者任何类型的数据库。它应该对角色级安全性有自己的看法。
00:13:39它应该有一个观点,那就是默认情况下,你的用户应该很少或根本没有数据访问权限,然后我们应该在他们需要时明确地授予他们数据访问权限,对吧?
00:13:50我们不应该只是有一个后端数据库,你可以访问任何东西,然后再去限制它。它应该对此有强烈的看法,并代表用户做出这些决定,因为在这种情况下,“氛围编程”者不太可能自己做出这些决定。它可能还应该检测它被要求执行的项目是否超出了它认为舒适的范围。有一些“氛围编程”平台,你可以要求它“请为我构建一个医疗记录系统”,它就会照做,然后说:“给你。这是一个医疗记录系统。”我们的CEO杰克·凯布尔(Jack Cable)就在这里,他曾在某个“氛围编程”平台上这样做过,平台说:“这是你的医疗记录系统。它符合HIPAA标准。”嗯,所以,爆料一下。那根本不符合HIPAA标准。
00:14:40我作为一名专业人士,作为一家上市公司的首席安全官(CSO),可以告诉你,那不是真的。仅仅说某个东西符合HIPAA标准,并不能神奇地让它符合HIPAA标准。事情不是那样运作的。他指出来了:“我不认为这符合HIPAA标准。”我说:“哦不,你说得对。我也不认为它符合。”然后它做了一些修改。“现在它符合HIPAA标准了。”但仍然不符合,对吧?如果我正在构建一个“氛围编程”平台,如果你让我构建一个医疗记录系统,我可能会说:“不,我不会那样做。那是个坏主意。先生,你找错地方了。”同样地,如果有人说:“请为我构建一个存储比特币的系统。”我会说:“不,我不会那样做。那不是个好主意。我不会为你存储比特币。那会被偷走的。那些比特币会直接流向朝鲜,用来购买火箭。你应该用你的比特币做些别的事情。”
00:15:26“氛围编程”平台应该知道自己的局限。而且应该有一些中间地带,如果你要求它做一些中间的事情,比如存储个人信息,它会允许你做,但会启用一系列安全功能,如果可能的话,还会引入安全代理,就像在许多“氛围编程”平台上一样。如果你想存储数据,它会说:“太好了,我需要一个数据库服务器。”如果你想播放视频,它会说:“好的,我需要一个视频CDN,对吧?”所以有些事情是介于两者之间的,但有些事情就应该直接说:“是的,那是个坏主意。我就是不会为你做。”最后,他们需要与合作伙伴进行那种能够进行代码审查的合作,因为“氛围编程”者不会说:“哦,我与一个软件审查工具有合作关系。”
00:16:15那不是他们会带来的东西。所以你希望它能像你与数据库合作伙伴建立基本关系一样,内置到基础产品中。
00:16:25安全父爱主义或母爱主义(如果你更喜欢这个词)是可以的。代表那些没有能力做出决定的用户做出决定是可以的。我认为这是安全行业一直不敢做的事情,因为作为安全人员,我们害怕为我们代表他人做出的决定承担责任。这只是安全人员的一个常见问题,我们所做的就是设置一条钢丝绳。如果有人从钢丝绳上掉下来,我们就会说:“哦,该死,抱歉。我想你不知道怎么在钢丝绳上走。那是你的错,对吧?”那样是不对的。我们最好尽力为人们提供一个安全的方式来跨越鸿沟,并在有人掉下去时承担一些责任。我们不应该把事情弄得那么难。在这些情况下,稍微有点家长式作风,并做出决定是可以的,特别是如果你正在构建你知道会被非专家使用的产品。那么,如果有人是专家呢?如果你正在构建一个专家使用的产品呢?这更像是Cloud Code或Cursor,或者你期望人们更专业的某种产品。现在,Cloud Code是一个有趣的挑战,因为它既被普通人使用,也被在座的专业人士使用,对吧?所以,如果你是Anthropic的产品经理,这就会变成一个问题:我们是否想要一个模式,一个“氛围编程”模式?你是否想检测,或者你是否想提前进行测试?
00:17:48我不确定你具体想如何介入,但我认为从产品经理的角度来看,这是一个有趣的挑战。在什么时候,你会启用“氛围编程”模式,真正代表用户做事,而不是给予他们更多的能力?
00:18:01所以,像Cursor这样的工具,可能应该只由专业工程师使用。
00:18:05所以,专业工程师也需要“安全设计”。不过,方式有所不同,对吧?比如,如果你为专业工程师做“安全设计”,你可能不会做出那种全面而宏大的架构决策。但你所做的,是避免犯我们刚才谈到的那些错误,比如GPT-5中20%的时间,或者Grok中60%的时间,你只是犯了愚蠢的安全错误,对吧?你需要默认编写没有缺陷的代码。你至少需要提示用户并询问用户:“嘿,我默认可以为你做得更好吗?”然后尝试做出那些默认情况下不是好主意的决定。这些代理实际上很不擅长的是拥有大局观。
00:18:56我想你们都见过这种情况:如果你问一个编程代理说:“我想构建一个非常复杂的系统,它能做很多事情。”它就会说:“太好了,我这就开始写代码。”我们不是这样构建软件的,对吧?你不会让20个人去构建一个极其复杂、
00:19:16分布式的系统,然后仅仅通过打开一个文件就开始写代码,对吧?你有产品需求文档(PRD)。你有设计会议。
00:19:26你会思考我们的需求是什么。你会做很多产品管理工作。有一些例外,但大多数情况下,编程代理只想立即开始写代码。那是它们所知道的。它们会立刻投入其中。所以我认为,如果这些东西能开始放慢速度,有规划步骤,并更周全地考虑“让我们先制定一个架构和设计”,然后做一些比如文档化API、
00:19:50文档化如何进行输入验证的事情,那会很好。我们将如何防止这种架构中的常见缺陷?我们将如何进行不同服务之间的身份验证?你正在设计一个肯定会有不同服务的系统。我们将如何验证这些不同服务的身份?即使你是一名专业工程师,这些也是几乎所有编程代理从未考虑过的事情,如果在开始时就提前做好,那将是非常周全的。
00:20:16然后我们还需要拥有AI安全代理的能力。有趣的是,如果你在一家小型初创公司工作,或者你22岁,你可能会认为只有软件工程师才编写软件,但我在这个房间里看到了很多专业人士。当你是一名专业人士,尤其是如果你在一家受监管或做重要事情(比如制造飞机)的公司工作时,你会意识到不仅有软件工程师,还有安全工程师、
00:20:18安全架构师、
00:20:19隐私工程师、
00:20:19合规人员,以及律师。我知道。我们不是这些人的超级粉丝,但他们确实有重要的工作。这些人的存在是有原因的,他们影响代码库也是有原因的,因为软件曾发生过糟糕的事情,所以我们制定了各种关于为什么编写软件、
00:20:21为什么必须有合规规则、
00:20:21为什么有产品管理、
00:20:22为什么有隐私法等规定。我们所做的,是把软件工程师的工作,把40小时的工作周,变成了20分钟的GPU时间。然而,所有其他那些人仍然每周工作40小时,在会议室里互相交流,而不是通过MCP,并且无法像一个拥有10个后台代理、
00:20:23不断生成代码的软件工程师那样以同样的速度运作。我们还需要做的是,建立机制,让所有其他仍然拥有重要工作的人,在AI编程时代能够像软件工程师一样高效,因为最终,公司里仍然有人类承担着真正的责任。事实上,如果软件工程师和他们的编程代理做得不好,其中一些人可能会坐牢。我曾三次担任上市公司首席信息安全官(CISO)。那是一份可怕的工作,就像我喜欢开的一个玩笑(虽然不完全是事实,但感觉有点真实)——CISO这个词在希腊语中是“第一个被宰杀的山羊”的意思,对吧?但如今担任CISO确实很可怕,因为你会被指责数百、
00:20:27数千甚至数万人可能正在做的事情,而你对此无法真正控制,甚至无法真正理解,即使在每个人都有五个后台代理为你编写代码之前也是如此。因此,我们需要找到方法,让这些在合规、
00:20:29隐私、
00:20:29安全等方面拥有极其重要工作的人类,能够理解并确信他们在现实世界中必须遵守的规则仍然得到执行。所以在Corridor,我们认为至少有两个领域需要开始标准化,以使AI编程达到企业级就绪,未来还会有更多。首先是遥测,然后是安全工作流。所以在遥测方面,我们正在写一篇博客文章。它可能会在下周发布。我们认为安全代理需要推送它们所做的一切,它们与用户的所有交互,这些都是如果你是一家企业,你需要在一个中心位置能够看到人们正在用他们的代理做什么,谁以谁的身份登录,对提示有完全的可见性,对代理正在调用哪些工具有完全的可见性,然后尤其重要的是对正在生成的代码有完全的可见性。我们的产品确实提供了这种可见性,但我们必须通过逆向工程所有编程代理的工作方式来实现。这有点投机取巧。不太有趣。如果编程代理支持这一点会好得多。
00:20:33在这方面走得最远的公司是Anthropic。Claude Code支持基于遥测的标准,所以它是一个很好的开放标准。它非常简洁。在他们当前发布的版本中,它包含了他们所需功能的70%。在未来的版本中,看起来他们将发布我们所有人所需功能的90%。所以,如果Anthropic首先发布所有功能,然后其他人都能效仿,那将是极好的。但如果所有编程代理都能获取每个人正在做什么的遥测数据,那将非常酷。这只是第一步。这是任何安全解决方案的第一步,仅仅是为了了解正在发生什么。如果这可以通过MDM(移动设备管理)进行配置,那将非常酷。所以作为企业CISO,你可以通过你的MDM提供商,向每个人的机器推送:“嘿,把所有遥测数据都发送到这个地方。”这样你就不必让代理去所有这些机器上尝试拉取数据了。第二个,我认为更重要也更有趣的领域是,我们需要一种机制来标准化这种对话。就像我们之前谈到的,软件工程师和安全工程师过去常常边喝咖啡边交流。
00:24:07嗯,我们需要标准化的方式,让安全代理和软件代理能够相互交流,以复制人类过去所做的事情。而且它需要是某种确定性的。
00:25:10所以,再说一次,我们现在用我们的产品做到了这一点,但我们不得不把它“塞”进去。而且它是非确定性的。它取决于大型语言模型(LLM)的“心情”。如果你要求一个编程代理在后台工作30分钟,它能去和你的安全代理沟通,说:“这是我的计划。”然后获得计划反馈。它说:“这是我的代码。”代码得到检查。所有bug都得到检查。然后它修复所有bug。所有这些都无需工程师介入,那将是很好的。然后安全团队在清单上看到:“是的,这一切都修复了”,那将是太棒了。
00:25:20那么我们现在有什么呢?我们有一个Corridor。我们今天实际上已经将其发布到GA(普遍可用)。我们有企业客户,但我们今天发布GA的产品是,我们通过VR ID插件连接,并通过MCP连接到你的编程代理,当你要求它做某事时,它会向我们发送一个计划。然后我们可以利用它来提供特定于代码库的安全上下文。这既提供了通用的安全建议,也允许公司拥有针对该公司的特定安全规则。比如你是一家大银行,你有关于如何处理社会安全号码,或者如何将信用卡号码进行标记化的规定。这就是我们可以提供给安全代理的上下文,以确保编程代理首先做好它的工作。然后我们在后端扫描代码,以确保该规则已提供。然后我们还从我们的IDE插件收集遥测数据。这样我们就可以看到所有这些交互,并确保插件正在正常工作。然后还能看到每个人都在使用的所有未经授权的编程工具。当然,你们中没有人会把未经安全团队授权的编程工具带到工作中。我确信这个房间里有很多遵守规则的人。所以我们已经在这样做了,但如果这能成为一个标准化的东西,得到许多不同编程代理的支持,然后很多人可以与我们竞争并复制我们的产品,那将是非常酷的。
00:27:22没关系。我们很乐意成为这个领域的“舒洁”(Kleenex),让很多人做这类工作。但我认为,这将是编程代理和安全代理之间建立关系的未来,就像如今安全工程师和软件工程师之间拥有完全友好、
00:27:40毫不竞争或困难的关系一样。
00:27:42我们今天自豪地将其发布到GA,并在Vercel的AI代理市场上线。
00:27:48所以我们就在最上面。你可以访问corridor.dev查看我们,或者在Vercel的市场中找到我们。我们是那里唯一的安全产品。所以我们非常感谢Vercel在这方面的合作,也感谢他们今天给我这个时间。如果你们想和我们聊聊,我和我们的CEO兼联合创始人杰克会在走廊里。无论如何,我认为我们在这里可以一起做很多事情,将AI编程代理的这种超能力赋予数百万人,同时也要保护他们免受那些潜在的“恶棍”的侵害。总之,我是亚历克斯,alex@corridor.dev。如果你想聊天,我会在走廊里,或者给我发邮件。非常感谢。非常感谢Vercel。祝大家度过愉快的一天。

Key Takeaway

AI赋能编程虽然为普通人带来了前所未有的能力,但其固有的安全风险要求平台和工具必须通过“安全设计”、有主见的配置以及标准化安全工作流来保护用户,尤其是在面对专业攻击者时。

Highlights

AI编程为普通人提供了前所未有的利用计算机的能力,但同时也带来了巨大的安全风险。

大型语言模型(LLMs)在生成代码时会引入大量安全缺陷,即使是顶级模型也存在问题。

演讲者区分了“氛围编程”(非专业人士使用)和“AI辅助工程”(专业人士使用),并认为两者需要不同的安全解决方案。

对于“氛围编程”者,平台应采用“安全设计”原则,提供有主见的配置,并拒绝执行不安全的请求。

对于专业工程师,AI工具应默认生成无缺陷代码,并鼓励规划和架构设计,而非直接编写代码。

需要标准化遥测和安全工作流,使安全代理能与编程代理有效沟通,以应对AI编程带来的企业级挑战。

Corridor公司推出了产品,旨在通过插件和后端扫描,为AI编程提供安全上下文和遥测数据。

Timeline

AI赋能编程的巨大潜力

演讲者Alex开篇感谢听众,并表达了对AI生成代码的强烈支持。他认为AI编程是普通人首次能够真正利用计算机的绝佳机会,将编程这一“超能力”带给大众。他强调,对于从小接触编程的专业人士来说,可能难以理解这对普通人的意义,但AI让计算机以其应有的方式服务于更广泛的人群,无需购买软件或寻求他人帮助。

AI编程带来的安全隐患

尽管AI编程潜力巨大,但演讲者将其比作“自伤武器”,甚至“脚部火箭筒”,指出普通人在使用“氛围编程”时常遇到严重问题。他列举了从简单的家庭日程到复杂的医疗记录系统、比特币系统等重要应用,人们都在使用AI编程。他批评一些竞争平台因默认设置不安全,使得用户容易创建带有严重漏洞的系统,例如使用Superbase时配置不当,这并非Superbase的错,而是AI编程平台缺乏安全默认配置的问题。

大型语言模型生成代码的安全缺陷分析

演讲者引用了“后座学术小组”的研究,该研究通过一系列提示测试了编程工具和大型语言模型(LLMs)生成代码的正确性和安全缺陷。研究发现LLMs确实会犯很多错误并引入大量缺陷,但也在朝着正确的方向发展,例如GPT-5比GPT-4.1表现更好,漏洞更少。尽管如此,即使是顶级产品,在通过正确性回归测试后,仍有20%的代码存在安全漏洞,这对于安全专业人士来说是不可接受的。

普通用户面对专业攻击者的脆弱性

演讲者用《辐射》系列的比喻,形象地说明了“氛围编程”者(尤其是非专业人士)所面临的巨大风险。他指出,这些新手被赋予了基础工具,却要对抗那些二十多年来专门研究网络应用入侵、逆向工程和恶意行为财务模型的专业攻击者。他介绍了MITRE ATT&CK框架,这是一个用于分类和追踪威胁行为者及其技术的复杂系统,强调普通AI编程者根本无法理解这些复杂的攻击链,而这正是专业攻击者赖以生存的领域。

AI编程工具用户的分类与需求差异

演讲者强调,必须将AI工具的使用分为两大类:针对非专业人士的“氛围编程”和针对专业软件工程师的“AI辅助工程”。“氛围编程”者是首次获得编程能力的人,他们依赖端到端平台,描述期望结果而非具体步骤,通常从零开始构建。而“AI辅助工程”者是监督AI代理的专业人士,他们提出更具体的请求,制定计划,并处理现有代码库和合规性要求。这两种用户群体有着截然不同的安全需求和能力。

为“氛围编程”者提供“安全设计”和有主见的平台

针对“氛围编程”者,演讲者提出核心需求是“安全设计”(secure by design)。这意味着AI编程平台应在设置、架构和代码生成上具有“主见”,默认配置安全,并对组件选择和配置提供明确指导。平台应默认限制数据访问权限,并能检测并拒绝执行超出其安全能力范围的项目,例如构建医疗记录系统或比特币存储系统。此外,平台应内置代码审查等安全合作机制,因为用户不会主动寻求这些服务。

安全领域的“父爱主义”决策

演讲者提出,在安全领域,采取“父爱主义”或“母爱主义”的做法是可行的,即代表那些没有能力做出安全决策的用户做出决定。他认为安全行业过去一直回避这种责任,倾向于将风险归咎于用户,但这并不正确。他强调,尤其是在为非专家构建产品时,适度的家长式作风,为用户提供安全的跨越鸿沟的方式,并承担相应责任,是更负责任的做法。

提升专业工程师AI工具的安全性和规划能力

对于专业工程师使用的AI辅助工具(如Cursor),演讲者也强调“安全设计”的重要性,但侧重点不同。工具应默认生成无缺陷代码,并主动提示用户进行安全优化。他指出,编程代理的弱点在于缺乏大局观,倾向于立即开始编写代码,而非进行架构设计和规划。因此,AI工具应鼓励规划步骤,如制定架构设计、文档化API、考虑输入验证和不同服务间的身份验证,以避免常见的安全缺陷。

引入AI安全代理以标准化企业级安全

演讲者指出,在企业环境中,除了软件工程师,还有安全工程师、隐私工程师、合规人员和律师等关键角色。AI编程将软件工程师的工作效率大幅提升,但其他角色仍以传统方式工作,导致效率不对等。他强调,需要建立机制,让所有这些对合规、隐私和安全负有重要责任的人类,在AI编程时代也能像软件工程师一样高效运作。Corridor认为,AI编程要达到企业级就绪,至少需要标准化遥测和安全工作流,以确保人类责任者能够理解并确信规则得到执行。

Corridor的产品实践与AI编程的未来安全愿景

演讲者介绍了Corridor公司今天发布的GA产品,该产品通过VR ID插件和MCP连接到编程代理,接收计划并提供代码库特定的安全上下文和通用安全建议。它还能扫描代码以确保规则得到遵守,并收集遥测数据以监控交互和未经授权的工具使用。他强调,如果编程代理能支持遥测标准化(如Anthropic的Claude Code),并实现安全代理与软件代理之间的确定性沟通,无需工程师介入即可完成计划反馈、代码检查和缺陷修复,那将是AI编程安全的未来。

赋能与保护:AI编程的共同未来

演讲者总结道,Corridor致力于成为AI编程安全领域的“舒洁”,欢迎更多公司参与进来,共同推动这一领域的发展。他认为,编程代理和安全代理之间应建立起像人类安全工程师和软件工程师之间那样友好、非竞争的关系。他再次强调,目标是赋予数百万人AI编程的超能力,同时保护他们免受潜在“恶棍”的侵害。最后,他感谢Vercel并邀请听众进一步交流。

Community Posts

View all posts