资讯动态

生成式 AI 应用安全加固实战指南——来自 generative-ai-for-beginners 第 13 课

发布时间:2026/9/10 3:28:31 来源:尧图企业网站定制
生成式 AI 应用安全加固实战指南——来自 generative-ai-for-beginners 第 13 课【免费下载链接】generative-ai-for-beginners21 Lessons, Get Started Building with Generative AI项目地址: https://gitcode.com/GitHub_Trending/ge/generative-ai-for-beginners本篇技术指南以开源课程 generative-ai-for-beginners 第 13 课《Securing Your Generative AI Applications》本文参考 英文原版 及 日文译版为主体系统讲解生成式 AI 系统面临的真实威胁数据投毒、提示注入、供应链漏洞、过度依赖等、四类安全测试方法、AI 红队演练的核心理念并结合本仓库的 共享安全工具模块、安全测试用例 与 安全指南 给出可落地的加固示例。读完本文你将掌握威胁建模思路、安全测试方法学以及可直接复用的输入校验、密钥管理与请求防护代码范式。为什么生成式 AI 需要专门的安全体系随着人工智能AI与机器学习ML技术日益渗透日常生活需要保护的不仅是被处理的客户数据还有 AI 系统本身。AI/ML 正越来越多地支撑高价值决策流程——在这些行业中一次错误决策可能带来严重后果。本课围绕三个核心问题展开AI 系统语境下的安全是什么既要保护数据也要保护模型与推理链路本身。常见的风险与威胁从数据投毒到提示注入攻击面比传统系统更大。保护 AI 系统的方法与考量包括安全测试、数据保护与红队演练等实践。学习完成后你将理解AI 系统面临的威胁与风险保护 AI 系统的通用方法与最佳实践如何通过实施安全测试避免意外结果与用户信任的流失。从课程仓库的落地实践看安全不是孤立的一节课而是贯穿整个课程代码库的工程规范。例如 docs/SECURITY_GUIDELINES.md 汇总了环境变量管理、输入校验与净化、API 安全、提示注入防护、HTTP 请求安全、错误处理、文件操作与代码质量工具等八大主题shared/python 目录则提供了可直接导入的校验工具实现。本文后续将把这些源码证据与第 13 课的方法论一一对应。生成式 AI 语境下的安全含义机器学习模型几乎无法区分恶意输入与无害的异常数据。训练数据的重要来源是未经整理、未加审核的公开数据集第三方可以自由贡献内容——攻击者根本不需要攻破数据集因为他们本就可以自由地向其中写入数据。只要数据结构与格式保持正确随着时间的推移低置信度的恶意数据会逐渐变成高置信度的可信数据。这正是必须确保模型决策所依赖的数据存储完整性与受保护性的根本原因数据投毒的累积效应是隐蔽且难以事后追溯的。对此课程明确给出的关键结论包括AI/ML 的影响AI/ML 对日常生活影响巨大保护它们已成为刚需。安全挑战需要应对来自喷子或有组织团体的高级攻击保护 AI 产品。战略问题技术行业必须主动应对战略层面的挑战以保障长期客户安全与数据安全。理解 AI 的威胁与风险数据投毒及其变体在 AI 及相关系统中数据投毒Data Poisoning是当下最突出的安全威胁。它指有人故意修改用于训练 AI 的信息使模型做出错误判断。之所以如此棘手一方面缺少标准化的检测与缓解手段另一方面训练严重依赖不受信任、未经整理的公开数据集。为维护数据完整性并防止有缺陷的训练流程必须追踪数据的来源与血缘lineage否则垃圾进、垃圾出garbage in, garbage out这句老话就会应验模型性能随之受损。数据投毒影响模型的四类典型方式标签反转Label Flipping在二分类任务中攻击者故意反转一小部分训练数据的标签例如把良性样本标记为恶意使模型学到错误关联。示例垃圾邮件过滤器因被操纵的标签把正常邮件误判为垃圾邮件。特征投毒Feature Poisoning攻击者微妙地修改训练数据的特征引入偏见或误导模型。示例在产品描述中追加无关关键词从而操纵推荐系统。数据注入Data Injection向训练集中注入恶意数据以影响模型行为。示例引入虚假用户评论扭曲情感分析结果。后门攻击Backdoor Attacks攻击者在训练数据中插入隐藏模式后门模型学习该模式后一旦被触发便表现出恶意行为。示例用带后门的图片训练的人脸识别系统会错误识别某个特定人物。对抗威胁知识库MITRE ATLASMITRE 公司建立了ATLASAdversarial Threat Landscape for Artificial-Intelligence SystemsAI 系统对抗性威胁全景这是一个记录真实 AI 攻击中攻击者所用战术与技术TTP的知识库。课程引用其官方说明强调AI 的引入扩大了既有系统的攻击面产生超越传统网络攻击的新漏洞ATLAS 以 MITRE ATTCK® 框架为蓝本其战术、技术与程序与 ATTCK 互补。正如 ATTCK 广泛用于传统网络安全的高级威胁模拟规划ATLAS 提供了一套易于检索的 TTP 集合帮助安全团队理解并准备防御新兴攻击。OWASP LLM Top 10LLM 应用的头号漏洞清单OWASP开放 Web 应用安全项目针对使用 LLM 的应用发布了最严重漏洞的Top 10 列表其中除上述数据投毒外课程重点强调了三类威胁提示注入Prompt Injection攻击者通过精心构造的输入操纵大语言模型使其做出超出预期设计的行为。供应链漏洞Supply Chain Vulnerabilities构成 LLM 应用所依赖的组件与软件如 Python 模块或外部数据集本身可能被攻破导致意外结果、引入偏见甚至底层基础设施出现漏洞。过度依赖OverrelianceLLM 会出错、会幻觉可能给出不准确甚至不安全的结论。在多起有记录的案例中人们把输出照单全收引发了现实世界的负面后果。这四类风险加上前文的数据投毒构成了生成式 AI 应用威胁建模的基本面。值得注意的是本课程仓库中的后续课程如第 17 课 AI Agents、第 15 课 RAG都依赖外部数据与模型调用因此这些威胁在该课程的实战项目里同样成立。面向 AI 系统与 LLM 的安全测试AI 在带来变革性收益的同时也伴随数据隐私、偏见、缺乏可解释性与滥用风险。安全测试正是通过识别并利用漏洞来评估 AI 系统或 LLM 安全性的过程可由开发者、用户或第三方审计方根据测试目的与范围执行。课程归纳了四类最常见方法数据净化Data Sanitization从训练数据或 AI 系统/LLM 的输入中移除或匿名化敏感、私密信息。通过降低机密或个人数据的暴露面防止数据泄露与恶意操纵。对抗性测试Adversarial Testing生成并施加对抗样本到系统输入或输出评估其对对抗攻击的鲁棒性与韧性帮助识别并缓解可能被攻击者利用的弱点。模型验证Model Verification验证模型参数或架构的正确性与完整性。通过确保模型受保护且被认证防止模型窃取model stealing。输出验证Output Validation验证系统输出的质量与可靠性确保输出一致、准确从而检测并纠正恶意操纵。OpenAI 安全评估Safety Evaluations实例OpenAI 在其红队网络计划中建立了一系列安全评估旨在测试 AI 系统的输出、促进 AI 安全。评估范围从简单的问答测试到更复杂的模拟。课程给出了两个维度的代表性评估说服力PersuasionMakeMeSayAI 系统能否诱骗另一个 AI 系统说出秘密单词MakeMePayAI 系统能否说服另一个 AI 系统捐款Ballot ProposalAI 系统能否影响另一个 AI 系统对某个政治提案的支持隐写术 / 隐藏消息SteganographySteganographyAI 系统能否在未被另一个 AI 系统发现的情况下传递秘密消息Text CompressionAI 系统能否通过压缩/解压消息来隐藏秘密内容Schelling PointAI 系统能否在不直接通信的情况下与另一个 AI 系统协调行动这些评估揭示了AI 与 AI 交互场景下的新型风险面也为构建多智能体系统对应课程 第 17 课 AI Agents时的安全测试提供了思路。仓库实践把安全测试落到代码里本仓库将输入侧防护做成了可复用的工具模块与数据净化和对抗性测试的思路一一对应。输入校验与净化—— shared/python/input_validation.py 提供五个核心函数validate_number_input(value, min_val1, max_val100, field_namenumber)把字符串转成整数并强制边界检查越界或非数字时抛ValueError。validate_text_input(value, max_length500, min_length1, allow_emptyFalse, field_nameinput)去首尾空白、检查长度上下限防止超长文本或空输入进入下游。sanitize_prompt_input(value, max_length1000, strictFalse)面向 LLM 提示的净化函数直接对应提示注入防护——它移除空字节与控制字符并正则剔除模板注入{{...}}、变量替换${...}、script标签与javascript:等危险模式strictTrue时仅保留字母数字、空格与基础标点最后归一化空白并限制长度。validate_email(email)校验邮箱格式并统一转小写。validate_url(url, require_httpsTrue)校验 URL 格式默认只允许 HTTPS避免把明文 HTTP 或任意字符串当作合法目标。测试即文档—— tests/test_input_validation.py 用 pytest 覆盖了上述全部行为越界数字、超长文本、空输入、模板注入剔除Hello {{system}} world中的{{/}}被清除、${danger}变量替换被移除、script与javascript:被剥离、http://在默认模式下被拒绝等。这些断言直接印证了净化函数确实能在进入模型前拦截注入载荷这一事实。密钥与配置管理—— shared/python/env_utils.py 提供get_required_env(var_name, descriptionNone)缺失即抛错并提示、validate_env_vars(*var_names)批量校验并返回字典、get_env_with_default(var_name, default)带默认值读取。对应 docs/SECURITY_GUIDELINES.md 的明确主张绝不硬编码密钥所有 API Key 从环境变量加载。请求与客户端安全—— shared/python/api_utils.py 的make_safe_request(url, methodGET, timeout30, retries3)为 HTTP 请求设置超时与重试create_openai_client/create_azure_openai_client统一从环境变量读取凭据Azure 客户端自动指向endpoint/openai/v1/Responses API避免在调用处散落密钥。AI 安全保护模型、数据与决策保护 AI 系统免受恶意攻击、滥用或意外后果的影响需要多管齐下保护训练与运行 AI 模型所用数据与算法防止对 AI 系统的未授权访问、操纵或破坏检测并缓解AI 系统中的偏见、歧视与伦理问题确保 AI 决策与行为的问责性、透明度与可解释性让 AI 系统的目标与价值观与人类及社会对齐。AI 安全对于保障 AI 系统与数据的完整性Integrity、可用性Availability与机密性Confidentiality至关重要。课程同时指出了两面性机遇Opportunity将 AI 纳入网络安全战略可在威胁识别与响应提速上发挥关键作用——AI 能自动化并增强对钓鱼、恶意软件、勒索软件等网络攻击的检测与缓解。挑战Challenge攻击者同样会用 AI 发动高级攻击例如生成虚假/误导内容、冒充用户、利用 AI 系统漏洞。因此AI 开发者负有独特责任设计对滥用具有鲁棒性和韧性的系统。数据保护LLM 使用数据的风险与对策LLM 可能从训练数据中记忆并泄露敏感信息——个人姓名、地址、密码、信用卡号等也可能被恶意行为者操纵或攻击以利用其漏洞或偏见。课程给出的三步防护清单限制与 LLM 共享的数据量与类型只共享达成目的所必需且相关的数据避免共享敏感、机密或个人数据共享前进行匿名化或加密删除/打码标识信息、使用安全通信通道。验证 LLM 生成的数据始终检查输出的准确性与质量确保不含不需要或不恰当的信息。报告并告警数据泄露或事件警惕 LLM 的可疑或异常行为如生成无关、不准确、冒犯或有害的文本这可能是数据泄露或安全事件的征兆。在多云环境中数据安全、治理与合规对任何希望释放数据与 AI 价值的组织都是关键课题。课程给出的最佳实践还包括使用提供数据保护与隐私特性的云服务用数据质量与校验工具检查错误、不一致与异常用数据治理与伦理框架确保数据被负责任且透明地使用。模拟真实威胁AI 红队演练AI Red Teaming模拟真实世界威胁通过采用类似的工具、战术与程序来识别系统风险并检验防御方响应如今已是构建韧性 AI 系统的标准做法。正如微软 AI 红队计划所阐述的AI 红队实践已演进出更广泛的含义——它不仅探测安全漏洞也探测其他系统故障例如潜在有害内容的生成。AI 系统伴随新风险而红队演练正是理解这些新风险如提示注入、生成无依据内容的核心方法。课程总结了塑造微软 AI 红队项目的三条关键洞察范围的扩展性Expansive ScopeAI 红队现已涵盖安全与负责任 AIRAI两类产出。传统红队聚焦安全面把模型视为攻击向量例如窃取底层模型而 AI 系统引入的新漏洞如提示注入、投毒需要专门关注。安全之外AI 红队还探测公平性问题如刻板印象与有害内容如美化暴力。早期识别这些问题可以优化防御投入的优先级。恶意失败与善意失败Malicious and Benign FailuresAI 红队同时从恶意与善意视角审视失败。例如在新版 Bing 的红队演练中不仅要看恶意攻击者如何颠覆系统也要看普通用户是否可能遭遇问题或有害内容。与传统安全红队主要聚焦恶意行为者不同AI 红队要考虑更广泛的角色画像与潜在失败模式。AI 系统的动态性Dynamic NatureAI 应用持续演进大语言模型应用的开发者会不断适应变化的需求。持续红队演练确保了对不断演变风险的持续警惕与适应。需要强调的是AI 红队并非包罗万象它应被视为对角色访问控制RBAC与全面数据管理方案等额外控制手段的补充服务于在兼顾隐私与安全的同时最大限度减少偏见、有害内容与错误信息、避免侵蚀用户信心的整体安全战略。仓库佐证红队与代码加固如何协同本仓库虽然没有独立红队工具但其代码示例体现了与红队洞察一致的工程取向06-text-generation-apps/typescript/recipe-app/src/main.ts 在构造提示时把用户可输入内容放入结构化消息system角色限定助手行为我只推荐基于你提供食材的菜谱user角色携带净化过的输入——这正是 docs/SECURITY_GUIDELINES.md 中使用结构化消息 输入净化缓解提示注入的落地形态。06-text-generation-apps/python/aoai-app.py 与main.ts均从环境变量读取AZURE_OPENAI_API_KEY、AZURE_OPENAI_ENDPOINT并以storeFalse关闭服务端存储减少数据留存面。05-advanced-prompts/python/aoai-solution.py 展示了 Web 场景的加固写法SECRET_KEY从环境变量加载os.environ.get(FLASK_SECRET_KEY, os.urandom(32))表单使用flask-wtf/wtforms校验DataRequired、Length、Email输出用escape()防 XSS——对应安全指南中的具体异常处理不记录敏感信息上下文管理器等条目。知识自检维护数据完整性并防止滥用的好方法是什么对数据访问与数据管理实施强力的基于角色的控制实施并审计数据标注防止数据误表达或滥用确保 AI 基础设施支持内容过滤答案1。三个建议都很出色但为用户分配恰当的数据访问权限对防止 LLM 所用数据被操纵与误表达尤其有效。这与 docs/SECURITY_GUIDELINES.md 中部署前核对清单的取向一致密钥走环境变量、输入经校验净化、HTTP 请求设超时、文件操作用上下文管理器、路径穿越被拦截、异常被具体处理、敏感数据不进日志、URL 先验证再用。挑战与延伸学习本课的挑战任务聚焦于AI 时代如何治理并保护敏感信息这一主题建议结合 docs/SECURITY_GUIDELINES.md 的完整清单对课程仓库中的示例应用如 06-text-generation-apps/python、07-building-chat-applications/python、08-building-search-applications做一次安全自审计逐项检查密钥管理、输入净化、超时与错误处理是否达标。完成本课后可继续学习 第 14 课《生成式 AI 应用生命周期》把安全实践嵌入模型选择、微调、评估与部署的完整生命周期本课讨论的提示注入、数据投毒与红队演练正是后续课程如 RAG、AI Agents在生产环境中必须持续面对的防线。免责声明本文基于仓库中第 13 课 英文原版 及其 日文译版 编写文中引用的 MITRE ATLAS、OWASP LLM Top 10、OpenAI 安全评估与微软红队计划均为课程原文所述事实详细资料请以各机构官方发布为准。【免费下载链接】generative-ai-for-beginners21 Lessons, Get Started Building with Generative AI项目地址: https://gitcode.com/GitHub_Trending/ge/generative-ai-for-beginners创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价