当前位置: 首页 > news >正文

OWASP发布大模型安全风险与应对策略(QA测试重点关注)

     开放式 Web 应用程序安全项目(OWASP)发布了关于大模型应用的安全风险,这些风险不仅包括传统的沙盒逃逸、代码执行和鉴权不当等安全风险,还涉及提示注入、对话数据泄露和数据投毒等人工智能特有的安全风险。

    帮助开发者和测试同学更好地理解和应对这些挑战,我们介绍LLM应用中常见的安全问题,并提供了相应的应对策略。

    

一、提示注入(Promt Injections)

问题概述:提示注入漏洞涉及狡猾的输入,导致未检测到的操作,影响范围从数据暴露到未经授权的操作。攻击者通过构建的输入提示操纵LLM,利用对LLM输出的固有信任,实现恶意目标。

应对策略

  • 权限限制:将LLM的权限限制为其功能所需的最低权限。
  • 输入验证:实施可靠的输入验证和清理方法,过滤掉潜在恶意提示输入。
  • 信任边界:在LLM、外部源和可扩展功能之间建立信任边界。

二、不安全输出(Insecure Output Handling)

问题概述:当插件或应用程序盲目接受LLM输出并直接传递给后端或客户端函数时,可能导致XSS、CSRF等安全漏洞。

应对策略

  • 输出编码:将来自模型的输出进行编码,减少不必要的代码解释。
  • 输入验证:对从模型到后端函数的响应应用适当的输入验证。
三、训练数据投毒(Training Data Poisoning)

问题概述:攻击者通过引入漏洞的训练数据,破坏LLM模型,使用户接触到不正确的信息。

应对策略

  • 数据验证:验证培训数据的供应链和合法性。
  • 沙盒隔离:确保存在足够的沙盒,防止模型抓取意外数据源。
  • 模型多样化:针对不同用例使用单独的训练数据制作不同的模型。

四、拒绝服务(Denial of Service)

问题概述:攻击者以特别消耗资源的方式与LLM交互,导致服务质量下降或高资源成本。

应对策略

  • 资源限制:限制每个请求和步骤的资源使用量。
  • 队列控制:限制系统中对LLM响应的排队操作数和总操作数。
五、供应链完整性风险

问题概述:LLM供应链可能受到攻击,影响训练数据、ML模型和部署平台的完整性。

应对策略

  • 供应商审查:仔细审查来源和供应商。
  • 漏洞扫描:对组件进行漏洞扫描,包括开发和测试阶段。
  • 稳健性测试:对提供服务的整个链路进行稳健性测试。

六、权限问题(Permission Issues)

问题概述:插件之间缺乏授权跟踪,可能导致权限提升、机密性丢失和远程代码执行。

应对策略

  • 手动授权:需要手动授权敏感插件执行的任何操作。
  • 插件隔离:每个用户输入调用不超过一个插件,调用间重置插件数据。
  • 污点跟踪:对所有插件内容执行污点跟踪,确保授权级别对应。
七、数据泄漏

问题概述:LLM通过响应意外泄露敏感信息,导致隐私和安全漏洞。

应对策略

  • 数据清理:执行足够的数据清理和验证。
  • 用户教育:让用户了解与LLM交互的风险。
八、其他安全问题概览

除了上述六大问题外,OWASP还指出了其他四个关键安全问题,包括沙盒不足、模型窃取、模型逆向工程和隐私侵犯。这些问题同样需要引起开发者的重视,并采取相应的预防措施。

  • 沙盒不足:确保LLM在受限的环境中运行,防止其访问敏感资源。
  • 模型窃取:通过加密和访问控制保护模型不被非法复制。
  • 模型逆向工程:使用混淆和加密技术增加模型逆向工程的难度。
  • 隐私侵犯:明确用户数据的使用条款,确保用户隐私得到保护。
九、大模型的攻击与防御

对于大模型的威胁来说,可以分为攻击和防御,前者研究的是如何攻击模型,后者研究的是如何防御,提升模型鲁棒性。

攻击包括了这4种攻击类别:

1、白盒攻击,主要是基于输入梯度产生对抗样本,相关算法有FGSM、BIM、PGD、DeepFool等;

2、基于迁移的黑盒攻击,利用AI系统获取训练数据,训练一个替代模型,用于生成对抗样本,相关算法有MIM、DIM、TI等;

3、基于预测分数的黑盒攻击,利用数据获取AI系统的预测分数,生成对抗样本,相关算法有ZOO、NES、SPSA、P-RGF等;

4、基于决策的黑盒攻击,利用数据获取AI系统的预测标签,生成对抗样本,相关研究有基于决策边界攻击的方式、基于优化器的方法、基于进化攻击的方法。

防御包括了这4种防御策略:

1、对抗训练,在训练模型的时候加入对抗样本,提升模型鲁棒性,相关算法有PGD-AT、TRADES、SMART等;

2、认证防御,这方面的研究包括了训练可认证的鲁棒模型、随机化平滑等方法,但这类方法要么计算量大,要么难以达到SOTA鲁棒性;

3、推理阶段防御,这方面的研究主要尝试在推理阶段解决这个问题,譬如对输入数据先进行线性转换或去燥等处理,去除对抗扰动,获得干净的输入。

4、对抗检测,这部分的研究主要是研究如何识别对抗样本。

十、总结与提高

随着深度学习技术的发展和研究的深入,未来大模型的攻防将在动态抗衡中不断升级,同时,大模型需要应对的新型安全威胁也将不断涌现和升级。

ChatGPT 可能已经具备了某种意识,新的优先级的事情是要阻止超级人工智能干坏事。未来可能面临以下新型安全问题。

一是自适应对抗攻击。随着大模型变得更加复杂,攻击者可能会开发出能够自适应模型防御机制的高级对抗性攻击,这些攻击可能在大模型更新或变更时迅速演化。

二是深度伪造与信任危机。利用大模型生成的深度伪造内容将更加逼真,这可能导致公众对数字媒体的信任度下降,引发社会层面的信息验证危机。

三是人工智能辅助的自动化攻击。人工智能技术本身将被用于自动化攻击流程,实现快速识别系统漏洞、自动生成攻击脚本,大幅提高攻击效率和威胁级别。

四是伦理和法律合规性问题。随着大模型在更多敏感领域的应用,如医疗、司法等,它们必须符合更高的伦理和法律标准。未来可能会出现更多关于大模型决策过程和结果的合规性争议。

五是大模型的可解释性和透明度问题。大模型的决策过程往往不够透明,这可能导致在关键领域中难以对其输出结果进行验证和信任。未来可能会出现更多要求提高大模型可解释性和透明度的需求。

相关文章:

OWASP发布大模型安全风险与应对策略(QA测试重点关注)

开放式 Web 应用程序安全项目(OWASP)发布了关于大模型应用的安全风险,这些风险不仅包括传统的沙盒逃逸、代码执行和鉴权不当等安全风险,还涉及提示注入、对话数据泄露和数据投毒等人工智能特有的安全风险。 帮助开发者和测试同学更…...

【HarmonyOS开发笔记 2 】 -- ArkTS语法中的变量与常量

ArkTS是HarmonyOS开发的编程语言 ArkTS语法中的变量 【语法格式】: let 变量名: 类型 值 let:是定义变量的关键字类型: 值数据类型, 常用的数据类型 字符型(string)、数字型(number&#xf…...

UI自动化测试示例:python+pytest+selenium+allure

重点应用是封装、参数化: 比如在lib文件夹下,要存储封装好的方法和必要的环境变量(指网址等) 1.cfg.py:封装网址和对应的页面 SMP_ADDRESS http://127.0.0.1:8234SMP_URL_LOGIN f{SMP_ADDRESS}/login.html SMP_URL_DE…...

C/C++ 编程小工具

编写了 tools.h 和 tools.cpp&#xff0c;用于 Debug、性能测试、打印日志。 tools.h #ifndef TOOLS_H #define TOOLS_H#include <time.h> #include <fstream> #include <iostream> #include <random> #include <chrono> #include <vector&…...

第四十二章 使用 WS-ReliableMessaging

文章目录 第四十二章 使用 WS-ReliableMessaging从 Web 客户端发送一系列消息 第四十二章 使用 WS-ReliableMessaging IRIS 支持 WS-ReliableMessaging 规范的部分内容&#xff0c;如简介中所述。此规范提供了一种按顺序可靠地传递一系列消息的机制。本页介绍如何手动使用可靠…...

利士策分享,婚姻为何被称为大事?

利士策分享&#xff0c;婚姻为何被称为大事&#xff1f; 在历史的长河中&#xff0c;婚姻一直被视为人生中的头等大事&#xff0c;这一观念跨越时空&#xff0c;深深植根于各种文化和社会结构中。 古人为何将婚姻称为“大事”&#xff0c;这背后蕴含着丰富的社会、文化和心理寓…...

malloc源码分析之 ----- 你想要啥chunk

文章目录 malloc源码分析之 ----- 你想要啥chunktcachefastbinsmall binunsorted binbin处理top malloc源码分析之 ----- 你想要啥chunk tcache malloc源码&#xff0c;这里以glibc-2.29为例&#xff1a; void * __libc_malloc (size_t bytes) {mstate ar_ptr;void *victim;vo…...

软考系统分析师知识点五:数据通信与计算机网络

前言 今年报考了11月份的软考高级&#xff1a;系统分析师。 考试时间为&#xff1a;11月9日。 倒计时&#xff1a;32天。 目标&#xff1a;优先应试&#xff0c;其次学习&#xff0c;再次实践。 复习计划第一阶段&#xff1a;扫平基础知识点&#xff0c;仅抽取有用信息&am…...

windows客户端SSH连接ubuntu/linux服务器,三种网络连接:局域网,内网穿透(sakuraftp),虚拟局域网(zerotier)

windows客户端SSH连接ubuntu/linux服务器&#xff0c;三种网络连接&#xff1a;局域网&#xff0c;内网穿透&#xff08;sakuraftp&#xff09;&#xff0c;虚拟局域网&#xff08;zerotier&#xff09; 目录 SSH简述、三种网络连接特点SSH简述局域网内连接内网穿透&#xff08…...

Python 工具库每日推荐【openpyxl 】

文章目录 引言Python Excel 处理库的重要性今日推荐:openpyxl 工具库主要功能:使用场景:安装与配置快速上手示例代码代码解释实际应用案例案例:自动生成月度销售报告案例分析高级特性条件格式数据验证扩展阅读与资源优缺点分析优点:缺点:总结【 已更新完 TypeScript 设计…...

本地生活服务项目入局方案解析!本地生活服务商系统能实现怎样的作业效果?

当前&#xff0c;各大平台的本地生活服务业务日渐兴盛&#xff0c;提高创业者入局意向的同时&#xff0c;也让本地生活服务项目有哪些等问题也成为了多个创业者社群中的热议对象。而从目前的讨论情况来看&#xff0c;在创业者们所询问的众多本地生活服务项目中&#xff0c;通过…...

ML 系列:【13 】— Logistic 回归(第 2 部分)

文章目录 一、说明二、挤压方法三、Logistic 回归中的损失函数四、后记 一、说明 ​ 在这篇文章中&#xff0c;我们将深入研究 squashing 方法&#xff0c;这是有符号距离方法&#xff08;第 12节&#xff09;的一种很有前途的替代方案。squashing 方法通过提供增强的对异常值…...

45岁被裁员的程序员,何去何从?

在当今快速变化的技术行业&#xff0c;职业生涯的稳定性受到挑战。在45岁被裁员&#xff0c;对很多程序员来说&#xff0c;可能是一种惊慌失措的体验。然而&#xff0c;这个阶段也可以被视为一个重新审视和调整方向的机会。本文将对可能的出路进行全方位的分析&#xff0c;并提…...

云计算Openstack Neutron

OpenStack Neutron是OpenStack云计算平台中的网络服务组件&#xff0c;它为OpenStack提供了强大的网络连接功能。 一、基本概念 Neutron是一个网络服务项目&#xff0c;旨在为OpenStack提供网络连接。它允许用户创建和管理虚拟网络&#xff0c;包括子网、路由、安全组等&…...

PointNet++网络详解

数据集转换 数据集转换的意义在于将原本的 txt 点云文件转换为更方便运算的npy点云文件&#xff0c;同时&#xff0c;将原本的xyzrgb这 6 个维度转换为xyzrgbc&#xff0c;最后一个c维度代表该点云所属的类别。 for anno_path in anno_paths:print(anno_path)try:elements a…...

Java | Leetcode Java题解之第459题重复的子字符串

题目&#xff1a; 题解&#xff1a; class Solution {public boolean repeatedSubstringPattern(String s) {return kmp(s s, s);}public boolean kmp(String query, String pattern) {int n query.length();int m pattern.length();int[] fail new int[m];Arrays.fill(fa…...

【动态规划-最长公共子序列(LCS)】【hard】力扣1092. 最短公共超序列

给你两个字符串 str1 和 str2&#xff0c;返回同时以 str1 和 str2 作为 子序列 的最短字符串。如果答案不止一个&#xff0c;则可以返回满足条件的 任意一个 答案。 如果从字符串 t 中删除一些字符&#xff08;也可能不删除&#xff09;&#xff0c;可以得到字符串 s &#x…...

‌图片编辑为底片,智能工具助力,创作精彩视觉作品

在当今数字化时代&#xff0c;图像编辑已成为表达创意和美化视觉作品的重要手段。借助智能工具&#xff0c;即使是初学者也能轻松驾驭图片编辑。接下为大家展示图片编辑为底片图片的效果。 1.打开“首助编辑高手”&#xff0c;选择这里“图片批量处理”版块页面上 2.导入保存有…...

机器学习/数据分析--用通俗语言讲解时间序列自回归(AR)模型,并用其预测天气,拟合度98%+

时间序列在回归预测的领域的重要性&#xff0c;不言而喻&#xff0c;在数学建模中使用及其频繁&#xff0c;但是你真的了解ARIMA、AR、MA么&#xff1f;ACF图你会看么&#xff1f;&#xff1f; 时间序列数据如何构造&#xff1f;&#xff1f;&#xff1f;&#xff0c;我打过不少…...

回溯算法之值子集和问题详细解读(附带Java代码解读)

子集和问题&#xff08;Subset Sum Problem&#xff09; 是一个经典的组合优化问题。问题可以这样描述&#xff1a; 给定一个整数集合和一个目标整数 target&#xff0c;我们需要从集合中选出若干个整数&#xff0c;使它们的和等于 target。如果这样的子集存在&#xff0c;返回…...

RestClient

什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端&#xff0c;它允许HTTP与Elasticsearch 集群通信&#xff0c;而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级&#xff…...

跨链模式:多链互操作架构与性能扩展方案

跨链模式&#xff1a;多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈&#xff1a;模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展&#xff08;H2Cross架构&#xff09;&#xff1a; 适配层&#xf…...

AI书签管理工具开发全记录(十九):嵌入资源处理

1.前言 &#x1f4dd; 在上一篇文章中&#xff0c;我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源&#xff0c;方便后续将资源打包到一个可执行文件中。 2.embed介绍 &#x1f3af; Go 1.16 引入了革命性的 embed 包&#xff0c;彻底改变了静态资源管理的…...

Linux --进程控制

本文从以下五个方面来初步认识进程控制&#xff1a; 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程&#xff0c;创建出来的进程就是子进程&#xff0c;原来的进程为父进程。…...

【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论

路径问题的革命性重构&#xff1a;基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中&#xff08;图1&#xff09;&#xff1a; mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...

Chromium 136 编译指南 Windows篇:depot_tools 配置与源码获取(二)

引言 工欲善其事&#xff0c;必先利其器。在完成了 Visual Studio 2022 和 Windows SDK 的安装后&#xff0c;我们即将接触到 Chromium 开发生态中最核心的工具——depot_tools。这个由 Google 精心打造的工具集&#xff0c;就像是连接开发者与 Chromium 庞大代码库的智能桥梁…...

前端中slice和splic的区别

1. slice slice 用于从数组中提取一部分元素&#xff0c;返回一个新的数组。 特点&#xff1a; 不修改原数组&#xff1a;slice 不会改变原数组&#xff0c;而是返回一个新的数组。提取数组的部分&#xff1a;slice 会根据指定的开始索引和结束索引提取数组的一部分。不包含…...

springboot 日志类切面,接口成功记录日志,失败不记录

springboot 日志类切面&#xff0c;接口成功记录日志&#xff0c;失败不记录 自定义一个注解方法 import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;/***…...

上位机开发过程中的设计模式体会(1):工厂方法模式、单例模式和生成器模式

简介 在我的 QT/C 开发工作中&#xff0c;合理运用设计模式极大地提高了代码的可维护性和可扩展性。本文将分享我在实际项目中应用的三种创造型模式&#xff1a;工厂方法模式、单例模式和生成器模式。 1. 工厂模式 (Factory Pattern) 应用场景 在我的 QT 项目中曾经有一个需…...

用递归算法解锁「子集」问题 —— LeetCode 78题解析

文章目录 一、题目介绍二、递归思路详解&#xff1a;从决策树开始理解三、解法一&#xff1a;二叉决策树 DFS四、解法二&#xff1a;组合式回溯写法&#xff08;推荐&#xff09;五、解法对比 递归算法是编程中一种非常强大且常见的思想&#xff0c;它能够优雅地解决很多复杂的…...