2023年春天,我开始研究LLM特有的安全漏洞。
当时,虽然关于人工智能安全的研究已经积累了相当大的研究量,但关于LLM(大型语言模型)的安全研究却非常零散。不过,我确实找到了一些研究论文和博客,涉及这一领域的一些想法。我开始收集这些研究论文,并使用ChatGPT对其进行总结整理。最终,我从现有的Web应用程序漏洞Top 10清单中选取了一些示例,并让ChatGPT以类似的格式为LLM生成了一个初步的Top 10草案。
我认为生成的内容很有趣,于是将其发送给OWASP(开放式全球应用安全项目)的创始人之一杰夫·威廉姆斯(Jeff Williams),征求他的意见。杰夫现为Contrast Security的首席技术官,早在2001年便编写了第一份OWASP Top 10清单。他的目标是为开发人员创建一个易于访问的资源,详细列出Web应用程序中最关键的风险和漏洞领域。当时,万维网才刚刚兴起几年,大多数开发人员对如何创建安全的Web应用程序知之甚少。那份最初的Top 10清单成为了应用安全领域的奠基之作和重要参考资源。
我没有告诉杰夫,我的清单主要是由机器生成的。作为最初Top 10清单的作者,我希望他能告诉我这份Top 10是否新颖且值得深入研究。杰夫鼓励我向OWASP董事会提出申请,将其作为一个新项目启动。几周后,OWASP董事会批准了这个项目,我随即发布了公告,并附上了我用ChatGPT生成的Top 10清单的改进版链接。
我原以为这只是一个冷门的研究项目,也许还能带来一些乐趣。然而,事情的规模远超我的预期。当我在个人LinkedIn页面上宣布项目成立时,我本希望能找到十几个对LLM安全这一小众话题感兴趣的人。然而,我的第一篇博客文章竟吸引了近1万次浏览,并在随后的几周里,数百人自愿加入了这个专家团队。
本书并非OWASP的产物,因此书中提到的漏洞和风险不会完全对应于任何LLM应用Top 10清单的公开版本。相反,你会看到我个人对这些风险的观点。然而,我的学习和思考受到了领导该项目,以及创建和发布OWASP LLM应用Top 10清单的深刻影响。自那以后,很多人向我询问我们如何运行该项目,以及如何在短时间内构建出如此有影响力的框架。因此,在我们深入探讨具体的风险和漏洞之前,我会先介绍一些关于OWASP及其LLM应用项目的背景故事。
关于OWASP
开放式全球应用安全项目(OWASP)是一个致力于改善软件安全的非营利组织。该组织成立于2001年,为安全专家提供了一个分享网络安全知识和最佳实践的平台,涵盖从应用层漏洞到新兴威胁的各个方面。如今,OWASP拥有数万名活跃成员和遍布全球的250多个本地分会。
OWASP由社区驱动,鼓励志愿者参与各种项目,例如文档编写、工具开发和论坛交流。它采用开源模式,所有资源均向公众免费开放。多年来,OWASP在安全社区中积累了强大的影响力,其指南和工具在许多领域被视为行业标准。
除了定期更新的原始Web应用程序Top 10清单(最近一次更新是在2021年),OWASP还开发了多个专门领域的Top 10清单,包括:
OWASP Mobile Top 10
列出了Android和iOS移动应用的关键风险,包括不安全的数据存储、不充分的加密以及不安全的通信。
OWASP API Security Top 10
重点关注API的特定风险,如资产管理不当和对象级安全漏洞。
OWASP IoT Top 10
识别了物联网(IoT)的主要安全问题,例如不安全的网络服务、缺乏物理加固以及不安全的软件/固件。
OWASP Cloud Native Top 10
针对云原生应用程序的风险,涵盖数据暴露、认证失效和不安全的部署配置等问题。
OWASP Top 10 for Serverless
处理无服务器架构特有的安全问题,这种架构日益流行,但也充满风险。
OWASP Top 10 Privacy Risks
推广良好的隐私实践,解决诸如数据未加密和审计与日志记录不足等问题。
OWASP的这些清单和工具,为开发者、企业和安全专家提供了深入了解各种安全风险和最佳应对策略的重要资源。
LLM应用Top 10项目
在我发布LLM应用Top 10项目成立公告的一周内,已有超过200人加入,我们通过Zoom举行了首次启动会议。在这次会议上,我阐述了对该项目的愿景,并提出了一份激进的路线图:在八周内完成第一版清单的制定。通常,OWASP的Top 10清单可能需要一年或更长时间才能完成,但我们认为这个领域发展迅速且急需相关资源,因此决定加快进度。
我们采用两周一次的敏捷式冲刺(sprint)来推进项目。由于团队中的大多数专家熟悉敏捷开发方法,他们很快适应了这种节奏。
项目执行
项目的第一个冲刺阶段是头脑风暴和评论阶段。所有成员审阅了我称为0.1版本的初始清单。这个初版存在许多问题,团队也积极指出了这些问题。与此同时,我们开始创建一个Wiki页面,收集团队发现的所有关于LLM安全问题的资源。这成为项目的第一个成果——一个经过筛选和整理的资源集合,这是首次将这些信息集中并方便访问。
第二个冲刺阶段是生成新版本的清单。这次,不再是由个人和AI完成,而是团队集体智慧的产物。第一周,团队集中精力为Top 10清单生成想法。我们发布了一个模板,邀请团队提交潜在的漏洞候选。在一周内,我们开发了43个详细描述的潜在领域。然后,我们通过两轮Google Forms投票,利用团队的集体智慧将清单缩减为10个条目,形成0.5版本。这一版本比0.1版本更加详细和全面,来自社区的积极反馈也给团队带来了持续工作的动力。
接下来的冲刺阶段用于精炼每个条目。我们为每种漏洞类型创建了独立的Slack频道,并指定一名志愿者作为条目负责人。由10到30人的小团队详细完善每个条目,并通过团队投票指出需要更多关注的薄弱环节。在此过程中,我们发现一些条目存在重叠,进行了合并,从而腾出空间让一些原本排除在外的条目得以加入。这个阶段的成果是0.9版本,该版本的字数比0.5版本减少了约33%,小团队的精细化处理让条目更加简洁有力。
最后一个冲刺阶段是对每个条目进行最终审查、调整和清理。我们通过Google Forms再次收集反馈,确保一切准备就绪。此时,我们已经有一名专职设计负责人,将整个文档排版成了一个吸引人的PDF文件供发布。
反馈与接受度
我在LinkedIn上发布1.0版本清单的公告吸引了超过40,000次浏览,还不包括团队成员在其个人页面和博客上发布的相关内容。发布后数天,这一消息被媒体报道,包括《Wired》、《SD Times》、《The Register》、《Infosecurity Magazine》和《Diginomica》等主流媒体。在项目成立后的头几周内,数十万人知晓了我们的工作。
不仅影响范围广泛,令我惊讶的是反馈几乎一边倒地积极。此外,美国和欧洲的首批政府机构开始将我们的工作作为基础性文件引用。尽管专家团队一致认为仍有许多工作要做,但我们的文档切中了世界对这一领域建议的需求。尽管我们收到了许多问题和评论,但可以肯定的是,所有参与者都为这项工作感到满意和自豪。
成功的关键
许多人问我,我们是如何在如此短的时间内成功推进这个项目的。回顾过去,我认为以下几个因素起到了重要作用,希望对未来类似项目有所帮助:
- 时机的重要性
ChatGPT发布后引发的LLM热潮无疑是推动力之一。这吸引了大量多元化的专家团队,并激励其中一些成员在紧迫的时间表下投入了长时间的工作。 - 清晰的计划和时间表
尽管我在项目开始时对LLM安全的了解有限,但我有丰富的复杂项目管理经验。一份清晰的路线图、明确的阶段和时间表让每个人都知道我们在做什么以及什么时候完成。短期的目标也帮助大家保持了动力。 - 短期头脑风暴阶段
LLM安全是一个新领域,因此在项目初期用两周时间进行头脑风暴和Slack讨论至关重要。同时,我们还收集并共享了领域内的现有研究,为项目奠定了一个高起点。然而,将这一阶段限制在两周也同样关键,以避免因过长的讨论导致项目停滞。 - 建立核心团队
项目初期,团队规模迅速增长到近500人,管理如此庞大的团队是不可能的。在项目初期,我筛选出十几位活跃且知识渊博的成员,邀请他们加入核心领导团队。这不仅增强了他们的参与感,也激励他们投入更多时间和精力。 - 短冲刺与可见成果
我们采用了敏捷开发中的短冲刺模式,即使团队内部存在分歧,也不会导致项目停滞。我们承认分歧并同意在下一轮冲刺中解决。当1.0版本发布时,仍有一些领域需要进一步完善,但我们同意清单是一个“活文档”,最重要的是尽早将资源交到需要的开发者手中。
这些关键因素帮助我们克服了复杂性和时间压力,使这个项目取得了超出预期的成功。
本书与Top 10清单
如前所述,本书并非OWASP基金会的产物。然而,与OWASP团队合作的经历对我理解和看待LLM安全问题的方式产生了深远影响。这种思维方式使得本书中的许多指导建议受到构建和维护Top 10项目的优秀团队的启发。因此,读者可以放心,本书提供的建议不仅来自单一作者的见解,还结合了更大专家社区的智慧。
在接下来的章节中,我们将回顾LLM的主要风险和漏洞领域。尽管我们讨论的风险包含许多与OWASP Top 10清单相似的领域,但并不会完全与任何版本的官方Top 10清单相同。OWASP的Top 10清单是一个快速阅读的资源,突出了关键领域;而在本书中,我们将更深入地探讨这些风险、缓解措施以及扩展的真实案例分析。
在第10章,我们将回到OWASP的Top 10清单,简要回顾2023年版本,并将其与本书的章节进行对应。随后,我们将展示如何利用Top 10框架来记录和分享对安全漏洞和成功攻击的分析。
第3章将探讨典型LLM应用程序的整体结构,讨论信任边界和潜在危险。随后的章节将深入研究具体的风险领域,分析漏洞、攻击手段和案例,以帮助您规划保护自身应用场景的策略。
让我们开始吧!