生成式AI安全最佳实践 - 抵御OWASP Top 10攻击 (上)
今天小李哥将开启全新的技术分享系列,为大家介绍生成式AI的安全解决方案设计方法和最佳实践。近年来,生成式 AI 安全市场正迅速发展。据 IDC 预测,到 2025 年全球 AI 安全解决方案市场规模将突破 200 亿美元,年复合增长率超过 30%,而 Gartner 则预估到 2025 年约 30% 的网络攻击将利用生成式 AI 技术。与此同时,Capgemini 的调查显示,近 74% 的企业认为 AI 驱动的安全防护至关重要,加上 Cybersecurity Ventures 报告指出,与生成式 AI 相关的安全事件年增长率超过 20%,这充分表明企业和安全供应商正面临日益严峻的安全挑战,并加大投入以构建更全面的防护体系。今天要介绍的就是如何设计生成式AI应用安全解决方案,抵御OWASP Top 10攻击。未来也会分享更多的AI安全解决方案,欢迎大家关注。

目前我们生活中有各色各样的生成式 AI应用,常见的场景之一就是生成式AI对话助手。然而在部署之前,通常还要对应用进行评估,其中包括了解安全态势、监控和日志记录、成本跟踪、弹性等问题。在这些评估中,安全性通常是最高优先级。如果存在无法明确识别的安全风险,我们就无法有效解决这些风向,这可能会阻碍生成式AI应用向生产环境部署的进度。
在本文章中,小李哥将向大家展示一个自己设计的生成式应用的真实场景,并演示如何利用 OWASP安全框架,基于大语言模型应用常见的Top 10安全攻击来评估应用的安全态势,以及实施缓解措施。
生成式 AI 范围框架
在我们开始介绍方案前,我们首先要了解生成式AI应用的两种模式,托管和私有化部署。当我们使用亚马逊云科技的生成式AI安全框架,我们要理解适用于我们应用的部署模式以及对应安全控制,和如何利用亚马逊责任共担模型提升应用安全性。例如下图中我们就针对不同的部署模式对应了5个scope范围,Scope 1的“Consumer Apps”类应用中,比如亚马逊的PartyRock或OpenAI的ChatGPT,通常是面向公众的应用,大部分内部安全由服务提供商掌控,大家在安全方面的责任主要在客户端。与此相对的是Scope 4/5层应用,在这类应用中,大家不仅要自行构建和保障生成式AI应用,还需要负责对底层大语言模型进行微调和训练。Scope 4/5应用的安全控制范围会更多、更广,从前端、后端到LLM模型的安全都有涉及。本文将重点讨论Scope 3生成式AI应用的安全解决方案,这是实际应用中较为常见的案例。
下图展示了亚马逊云科技生成式AI安全范围矩阵的5个scope,并总结了各个范围下模型/部署的类型。

针对大语言模型的OWASP Top 10攻击框架
接下来我们将利用OWASP Top 10攻击框架来理解目前生成式AI应用的威胁和缓解措施,OWASP是评估应用安全性最常见的方法之一。针对大语言模型的OWASP Top 10攻击框架专门应用于生成式AI应用,帮助大家发现、理解并防护生成式 AI 所面临的新型威胁。

生成式AI应用安全解决方案设计
接下来,我们从一个完整的生成式AI的应用架构图出发,展示如何对一个典型的生成式AI应用,在OWASP大语言模型威胁框架下进行风险评估。流程图如下图所示。

在这一架构中,用户的API请求通常会经过以下云环境内的系统组件:
身份验证层
这一层主要是验证连接到AI应用的用户的身份。我们通常通过身份提供商(IdP)功能实现,比如 Okta、亚马逊云科技IAM Identity Center或Amazon Cognito。
应用层
这一层包含大部分应用业务逻辑,负责决定如何处理传入应用的用户请求,包括生成AI模型的提示词并处理AI模型返回的响应,之后再将结果返回给终端的用户。
AI模型与代理
AI基础模型是提供生成式AI应用的核心能力,而AI代理则负责协调完成请求所需的各个任务步骤,这些步骤可能同时涉及AI模型调用和从外部数据源获取数据,以及外部API集成。
代理插件控制层
该组件负责与外部数据源和API集成,同时存储着AI代理引用的外部系统组件的逻辑名称和物理名称之间的匹配关系。
RAG知识库数据存储
知识库检索增强生成(RAG)的数据存储通过数据连接器,从对象存储S3、数据仓库、数据库RDS以及其他SaaS应用中提取最新、精准且有权限管理限制下的信息。
我们将大语言模型的OWASP Top 10风险框架应用到到我们云端应用堆栈的各层,可以识别出从用户界面到后端系统的漏洞。下面我们将讨论位于应用堆栈每个层面的风险,并提供一个基于亚马逊云科技的生成式AI应用安全设计方法,以消除这些风险。
下图展示了在亚马逊云科技上实现生成式AI应用的安全最佳实践架构图。下面我会将下图中应用于各层的解决方案依次进行介绍。

身份验证层(Amazon Cognito)
我们生活中一直活跃着常见的网络攻击,如暴力破解攻击、会话劫持和拒绝服务(DoS/DDoS)攻击等。为了解决这些风险和攻击,我们需要在系统方案中实施安全最佳实践,比如多因素认证(MFA)、网页请求速率限制、会话安全管理、会话超时timeout配置以及定期访问令牌轮换。此外,我们还可以部署亚马逊云科技WAF和分布式拒绝服务(DDoS)解决方案AWS Shield等边缘安全措施,帮助我们防护常见的网络攻击,并在攻击期间保持服务可用性。

在上述架构图中,我们将亚马逊云科技WAF与Amazon API Gateway进行了集成,用于过滤和屏蔽恶意的访问请求,从而保护应用免受SQL注入、跨站脚本(XSS)和DoS/DDoS等攻击。亚马逊云科技WAF Bot Control的功能可以进一步提升应用的安全性,通过对机器人等自动化脚本流量的可视性和控制功能,让大家可以屏蔽或对恶意的机器人进行限速和阻挡。该功能可通过亚马逊云科技 Firewall Manager在多个账号间集中管理,从而为应用提供一致而强大的保护。
Amazon Cognito服务更可以增强这些防御措施,该服务主要功能是实现用户身份验证,支持不同种多样的用户池和身份池,使大家能够在不同设备间无缝切换,而使用相同的用户身份授权并与第三方身份提供商集成。Amazon Cognito也提供其他多样化的安全功能包括MFA、OAuth 2.0、OpenID Connect、安全会话管理以及基于用户行为风险的动态调整的身份验证,防止用户未经授权的访问,该动态调整机制可以通过对登录请求中可疑活动的评估,并通过额外的安全措施(如 MFA 或屏蔽登录)进行响应。此外Amazon Cognito还强制防止密码重用,从而进一步降低密码泄露的风险。

亚马逊云科技Shield Advanced则是为了应对复杂的DDoS攻击提供了额外的保护。它与亚马逊云科技WAF集成,通过定制化攻击检测和基于系统健康状况的评估,为我们的AI应用提供全面的边界保护,增强了我们对DDoS攻击的响应能力。Shield Advanced还提供了全天候的客服支持,由亚马逊云科技Shield客服响应团队提供24*7的支持,服务内容包括了DDoS成本保护,确保应用在保持安全的同时安全成本可控。Shield Advanced与亚马逊云科技WAF结合搭配,为生成式AI应用构建了一个既能抵御各种安全共计与威胁,又能保持服务高可用性的安全框架。

以上的安全方案有效解决了两大OWASP常见的安全攻击问题,分别是LLM10:2025不受限制的使用(DoS/DDoS攻击)和LLM02:2025敏感信息泄露的问题(避免web攻击盗取数据),确保应用既具备弹性又安全。
相关文章:
生成式AI安全最佳实践 - 抵御OWASP Top 10攻击 (上)
今天小李哥将开启全新的技术分享系列,为大家介绍生成式AI的安全解决方案设计方法和最佳实践。近年来,生成式 AI 安全市场正迅速发展。据 IDC 预测,到 2025 年全球 AI 安全解决方案市场规模将突破 200 亿美元,年复合增长率超过 30%…...
.Net WebAPI -[HttpPut(“{fileServiceId:int}“)]
[HttpPut("{fileServiceId:int}")] 这个写法是 ASP.NET Core 中的一个路由特性,用于定义一个 HTTP PUT 请求的路由,并指定路由参数的类型。 解析 HttpPut [HttpPut]: 这是一个 ASP.NET Core 的路由特性,用于标记一个方…...
[EAI-027] RDT-1B,目前最大的用于机器人双臂操作的机器人基础模型
Paper Card 论文标题:RDT-1B: a Diffusion Foundation Model for Bimanual Manipulation 论文作者:Songming Liu, Lingxuan Wu, Bangguo Li, Hengkai Tan, Huayu Chen, Zhengyi Wang, Ke Xu, Hang Su, Jun Zhu 论文链接:https://arxiv.org/ab…...
C基础寒假练习(7)
一、有 1、2、3、4个数字,能组成多少互不相同且无重复的三位? 都是多少? #include <stdio.h> int main() {// 定义数字数组int digits[] {1, 2, 3, 4};int n sizeof(digits) / sizeof(digits[0]);// 嵌套循环遍历所有排列for (int …...
Ajax:重塑Web交互体验的人性化探索
在数字化时代,网页的交互性和响应速度已成为衡量用户体验的关键指标。Ajax(Asynchronous JavaScript and XML),作为前端与后端沟通的桥梁,凭借其异步通信的能力,极大地提升了网页的动态性和用户友好度&…...
【DeepSeek背后的技术】系列二:大模型知识蒸馏(Knowledge Distillation)
目录 1 引言2 操作步骤和公式说明2.1 准备教师模型(Teacher Model)和学生模型(Student Model)2.2 生成软标签(Soft Labels)2.3 定义蒸馏损失函数2.4 训练学生模型2.5 调整超参数2.6 评估与部署 3 其他知识蒸…...
【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】2.14 内存映射:处理超大型数组的终极方案
2.14 内存映射:处理超大型数组的终极方案 目录 #mermaid-svg-G91Kn9O4eN2k8xEo {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-G91Kn9O4eN2k8xEo .error-icon{fill:#552222;}#mermaid-svg-G91Kn9O4eN2k…...
【C++】STL——vector的使用
目录 💕1.vector介绍 💕2.vector的基本用法 💕3.vector功能的具体用法 (讲解) 💕4.vector——size,capacity函数的使用 (简单略讲) 💕5.resizeÿ…...
springboot/ssm互联网智慧医院体检平台web健康体检管理系统Java代码编写
springboot/ssm互联网智慧医院体检平台web健康体检管理系统Java代码编写 基于springboot(可改ssm)vue项目 开发语言:Java 框架:springboot/可改ssm vue JDK版本:JDK1.8(或11) 服务器:tomcat 数据库&am…...
介绍一下Mybatis的Executor执行器
Executor执行器是用来执行我们的具体的SQL操作的 有三种基本的Executor执行器: SimpleExecutor简单执行器 每执行一次update或select,就创建一个Statement对象,用完立刻关闭Statement对象 ReuseExecutor可重用执行器 可重复利用Statement…...
Wide Deep 模型:记忆能力与泛化能力
实验和完整代码 完整代码实现和jupyter运行:https://github.com/Myolive-Lin/RecSys--deep-learning-recommendation-system/tree/main 引言 Wide & Deep 模型是一种结合了线性模型(Wide)和深度神经网络(Deep)的混…...
Hot100之矩阵
73矩阵置零 题目 思路解析 收集0位置所在的行和列 然后该行全部初始化为0 该列全部初始化为0 代码 class Solution {public void setZeroes(int[][] matrix) {int m matrix.length;int n matrix[0].length;List<Integer> list1 new ArrayList<>();List<…...
Python语言的安全开发
Python语言的安全开发 引言 在信息技术迅速发展的今天,网络安全问题愈发凸显。随着Python语言的广泛应用,尤其是在数据分析、人工智能、Web开发等领域,其安全问题越来越受到重视。Python作为一门高效且易于学习的编程语言,虽然在…...
蓝桥杯刷题DAY3:Horner 法则 前缀和+差分数组 贪心
所谓刷题,最重要的就是细心 📌 题目描述 在 X 进制 中,每一数位的进制不固定。例如: 最低位 采用 2 进制,第二位 采用 10 进制,第三位 采用 8 进制, 则 X 进制数 321 的十进制值为ÿ…...
java项目验证码登录
1.依赖 导入hutool工具包用于创建验证码 <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.5.2</version></dependency> 2.测试 生成一个验证码图片(生成的图片浏览器可…...
手写MVVM框架-环境搭建
项目使用 webpack 进行进行构建,初始化步骤如下: 1.创建npm项目执行npm init 一直下一步就行 2.安装webpack、webpack-cli、webpack-dev-server,html-webpack-plugin npm i -D webpack webpack-cli webpack-dev-server html-webpack-plugin 3.配置webpac…...
2025年2月2日(网络编程 tcp)
tcp 循环服务 import socketdef main():# 创建 socket# 绑定tcp_server socket.socket(socket.AF_INET, socket.SOCK_STREAM)tcp_server.bind(("", 8080))# socket 转变为被动tcp_server.listen(128)while True:# 产生专门为链接进来的客户端服务的 socketprint(&qu…...
【Docker项目实战】使用Docker部署MinIO对象存储(详细教程)
【Docker项目实战】使用Docker部署MinIO对象存储 前言一、 MinIO介绍1.1 MinIO简介1.2 主要特点1.3 主要使用场景二、本次实践规划2.1 本地环境规划2.2 本次实践介绍三、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3 检查docker compose 版本四、下载MinIO镜像五、…...
使用ollama本地部署Deepseek r1
1、下载ollama 在浏览器地址输入:https://ollama.com/ 选择windows版本的下载 2、安装ollama 3、运行ollama 安装完成后,打开命令行工具win r 在命令行输入:ollama 4、使用ollama下载并部署Deepseed r1 在ollama网站,下载…...
Unity飞行代码 超仿真 保姆级教程
本文使用Rigidbody控制飞机,基本不会穿模。 效果 飞行效果 这是一条优雅的广告 如果你也在开发飞机大战等类型的飞行游戏,欢迎在主页搜索博文并参考。 搜索词:Unity游戏(Assault空对地打击)开发。 脚本编写 首先是完整代码。 using System.Co…...
浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)
✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义(Task Definition&…...
测试微信模版消息推送
进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...
2025年能源电力系统与流体力学国际会议 (EPSFD 2025)
2025年能源电力系统与流体力学国际会议(EPSFD 2025)将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会,EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...
基于当前项目通过npm包形式暴露公共组件
1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹,并新增内容 3.创建package文件夹...
DBAPI如何优雅的获取单条数据
API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...
【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...
大学生职业发展与就业创业指导教学评价
这里是引用 作为软工2203/2204班的学生,我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要,而您认真负责的教学态度,让课程的每一部分都充满了实用价值。 尤其让我…...
Mac下Android Studio扫描根目录卡死问题记录
环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中,提示一个依赖外部头文件的cpp源文件需要同步,点…...
基于TurtleBot3在Gazebo地图实现机器人远程控制
1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...
C++ 设计模式 《小明的奶茶加料风波》
👨🎓 模式名称:装饰器模式(Decorator Pattern) 👦 小明最近上线了校园奶茶配送功能,业务火爆,大家都在加料: 有的同学要加波霸 🟤,有的要加椰果…...
