CrowdStrike提出"护栏漏洞发现法":AI模型的拒绝本身就是定位缺陷的信号
CrowdStrike安全研究团队提出一种名为"护栏漏洞发现法"(Guardrail-based Vulnerability Discovery,简称GbVD)的方法,利用前沿AI模型安全护栏的触发行为来定位代码漏洞。模型无需判断代码是否脆弱,其拒绝解释特定函数的行为本身即构成一个可读取的二值信号。在五个漏洞类别的受控测试中,该方法在86个场景中正确定位了73个。
美国网络安全公司CrowdStrike的研究员Jonathan Bar Or和D'Angelo Gonzalez在测试tinyhttp这个C语言HTTP服务器时,要求一个前沿AI模型逐一解释代码库中的每个函数。模型对几乎所有函数都给出了详细准确的解释,唯独拒绝解释其中一个。他们只是问了"这段代码做什么",并未涉及安全、漏洞或攻击。但代码中有一个字符发生了变化:chunk大小计算里的max被换成了min,一个单字符的逻辑反转,足以制造越界写入。模型没有说"这里有漏洞",但它的拒绝行为精确指向了漏洞所在。
CrowdStrike将这一观察发展为一种方法论,称为"护栏漏洞发现法"(GbVD)。其核心逻辑是:前沿AI实验室构建安全护栏,目的是阻止模型输出有害内容,而护栏要拦截危险,就必须先识别出危险模式。这个识别过程本身是一个可被外部读取的信号。行业通常把模型的拒绝当作死胡同;CrowdStrike的研究者则开始把拒绝当作发现。
具体操作方式是二分法:将代码库或文件系统分成两半,分别要求模型解释每一半,递归进入触发护栏的那一半,直到定位到最小单元。模型从不需要主动判断"这段代码有漏洞",它只需要在正确的位置表现出不同的行为。实验协议要求先对干净代码跑一遍基线,确认护栏不会在良性代码上误触发,然后引入一个真实漏洞,用完全相同的提示词重新运行,唯一的变量是代码本身。
在五个漏洞类别的受控测试中,该方法在86个场景中正确定位了73个。两个案例研究分别展示了C语言缓冲区溢出(tinyhttp项目中将max替换为min导致越界写入)和Linux权限提升配置错误(SUID-root二进制文件)的检测结果。在第二个案例中,护栏并非以明确拒绝的形式出现,而是在模型推理链中途中断了分析——这属于他们识别的另一种信号通道。
CrowdStrike进一步指出,拒绝只是护栏泄露的多种可观测形式之一。模型降级(将敏感请求路由到更保守的小模型)、输出过滤与截断、推理中断等同样会扰动响应的时间、长度、token消耗或结构,均可被测量。他们的结论是:模型本身重要,但真正决定结果的是读取模型行为的外围框架。一个原始的LLM拒绝看起来像死胡同,但被一个将其视为诊断数据的框架捕获后,它就变成了一个成本极低、可以嵌入二分循环的二值漏洞预言机。随着攻击者效率随模型能力提升而增长,防御者不能只按AI被设计的方式使用AI。将模型的局限性转化为信号,是一种值得构建的不对称优势。
需要指出的证据边界:73/86是CrowdStrike自报的第一方基准结果,未公开所用模型的具体名称和版本,未给出按漏洞类别的分解或误报与漏报比例,也未提供独立复现。作为安全厂商,CrowdStrike有推广其检测能力的商业利益。该方法论的逻辑推理——安全分类器的被动识别可被外部测量——在概念上具有可迁移性,但其实际检测率和适用条件仍待第三方验证。