现如今,GoogleBard、GitHubCopilot等工具逐渐成为开发者日常工作的助手——然而,这些工具带来的并非全都是积极影响:它们在帮助开发者提高效率的同时,也制造了大量“垃圾报告”,对开源项目的维护者造成了巨大困扰。
由AI编写的垃圾报告,淹没了项目维护者
Larso所说的Curl项目中的“类似问题”,其实在今年1月Curl项目作者DanielStenberg也曾发文提过。具体来说,Curl是一款广泛使用的开源工具,负责数据传输功能,其漏洞赏金计划激励了大量安全研究者提交漏洞报告。然而,根据Stenberg的数据分析,自项目启动以来,他们共收到415份漏洞报告,其中只有64个被确认为实际存在的安全Bug,有77个被认为是具有信息价值的普通Bug,而其余近66%的报告都是无效的。
为此,Stenberg列举了两个典型案例,并指出“AI模型在生成报告时的语言流畅性让这些报告看起来更具可信度,这无疑增加了验证工作量。”
(1)案例一:GoogleBard制造的“漏洞”
一份报告声称发现了Curl的CVE-2023-38545漏洞。然而,在实际漏洞披露前,Stenberg通过分析发现,该报告将旧漏洞的部分细节拼凑在一起,生成了一个看似合理却完全虚假的新漏洞。他在HackerOne论坛上澄清,这份报告完全没有依据。
(2)案例二:不存在的缓冲区溢出漏洞
然而,Stenberg在年头公开斥责的这个问题,直到最近仍在与提交类似“AI垃圾”报告的用户争论不休——12月8日,他在漏洞报告回复中愤怒回应:
“我们总是定期收到这种AI生成的垃圾内容,这些内容的大量涌入给Curl项目维护者增加了不必要的负担。我对此绝不轻视,并决心迅速采取行动加以应对。
为了应对这种局面,Larson提出了一些改进措施。首先,他希望开源社区能够认识到这一问题的重要性,并采取行动预防潜在危害。“我不想说‘更多的技术’将是解决问题的办法,”他说,“但我认为开源安全需要一些根本性的改变。它不能总是落在少数维护者身上来做这项工作,我们需要让这类开源贡献更加规范化和透明化。”
在开源社区探索应对方案的同时,Larson也呼吁漏洞报告者不要提交未经人工核实的报告,并且停止使用AI工具,因为“目前这些系统无法理解代码”。他还敦促负责接收漏洞报告的平台采取措施,限制自动生成或滥用的安全报告。
AI技术本身并无罪,关键在于使用者
虽然AI工具的滥用在某些场景下引发了问题,但安全公司Socket的CEOFerossAboukhadijeh也指出,AI工具在检测开源生态系统中的恶意软件包方面表现出色。
例如,通过将LLM与人工审核相结合,Socket能有效识别JavaScript、Python和Go等生态中的恶意软件包:在没有人工介入的情况下,AI模型的误报率高达67%,但经过人工审核后,这一比例降至1%。
基于此Socket每周能检测约400个恶意软件包,大幅提高了检测效率。“AI并非万能工具,将其与人工结合才能最大程度减少误报,并实现真正的效能提升。”Aboukhadijeh强调。
诚然,AI技术本身并无罪,关键在于使用者的方法态度。因此对于SethLarson和DanielStenberg所揭示的安全漏洞报告现状,许多网友也都在斥责这种无脑依赖AI的行为:
●“那个Curl报告看着真让人生气,明明就是100%由AI生成的东西,还敢大言不惭地对项目维护者施压。”