LLMjacking:针对云托管AI大模型服务的新型攻击

news2025/4/5 4:16:22

Sysdig威胁研究团队(TRT)观察到一种新型攻击,命名为LLMjacking。它利用窃取的云凭证,对托管在云上的十个大型语言模型(LLM)服务发起攻击。

这些凭证是从一个流行的目标获得,即运行着一个存在漏洞的Laravel版本(CVE-2021-3129)的系统。针对基于LLM的人工智能(AI)系统的攻击经常被讨论,但大多围绕提示滥用和改变训练数据。在这种情况下,攻击者打算将LLM访问权出售给其他网络犯罪分子,而云账户所有者支付费用。

一旦获得初步访问权限,攻击者会窃取云凭证并获得了对云环境的访问权限,在那里他们试图访问由云服务提供商托管的本地LLM模型。例如安全人员发现其中一个案例,攻击者针对的是Anthropic 一个本地的Claude(v2/v3)LLM模型。在被研究人员发现之前,这种类型的攻击会给受害者带来严重的财务成本,最高将超过46000美元的LLM使用费用。

Sysdig研究人员发现了一个反向代理LLM的证据,它被用来提供对受损账户的访问,这意味着上述的猜测可能是对的,但也有可能是在提取LLM训练数据。

目标范围

目前安全人员已经发现攻击者调用模型请求所使用的工具。这是一个更加广泛的攻击脚本,它能够检查十种不同AI服务的凭证,以确定哪些对他们的目的有用。这些服务包括:

AI21 Labs, Anthropic, AWS Bedrock, Azure, ElevenLabs, MakerSuite, Mistral, OpenAI, OpenRouter, and GCP Vertex AI

攻击者正在牟取大量的跨不同服务LLM模型的访问权限。为了避免被系统发现,攻击者在查询阶段往往不会运行LLM模型,更多的工作在于弄清楚这些账号凭证可以做什么,以及会有哪些额外的限制,在可能的情况下查询日志设置。

LLMjacking攻击背景

托管的大型语言模型

包括Azure Machine Learning, GCP’s Vertex AI, and AWS Bedrock在内的主要云服务提供商目前都有托管大型语言模型(LLM)服务。这些平台为开发者提供了基于LLM的AI中使用的各种流行模型。如下面的屏幕截图所示,用户界面被设计得非常简单,使得开发者能够快速开始构建应用程序。

1715497001_66406829ae890cb43ecd9.png!small?1715497004218

需要注意的是,这些模型默认情况下不启用,用户需要向云服务供应商提交请求以运行它们。其中有些模型会自动批准运营,有些模型(第三方模型)需要填写申请表格。当用户提出了申请后,云服务供应商通常会很快启用访问权限。从这个机制我们可以发现,“提出请求”并不能有效拦截攻击者,更像是道路上的减速带而非障碍,因此不应该被视为一个有效的安全机制。

云服务供应商通过使用简单的CLI命令,简化了与托管的云基础语言模型交互的过程。一旦必要的配置和权限到位,你就可以使用类似于以下命令轻松地与模型进行交互:

aws bedrock-runtime invoke-model –model-id anthropic.claude-v2 –body ‘{“prompt”: “\n\nHuman: story of two dogs\n\nAssistant:”, “max_tokens_to_sample” : 300}’  –cli-binary-format raw-in-base64-out  invoke-model-output.txt

LLM反向代理

验证凭证是否能够使用目标LLM还涉及另外一个项目:OAI反向代理,该开源项目是LLM服务的反向代理。它将允许攻击者在不暴露底层凭证的情况下,或者不暴露底层受损凭证的情况下,集中管理对多个LLM账户的访问。在攻击者使用受损云凭证进行攻击期间,安全人员观察到一个与OAI反向代理匹配的用户代理尝试使用LLM模型。

1715497074_66406872517242cde13a6.png!small?1715497077022

上面的图片是安全人员在互联网上发现的一个OAI反向代理的例子。没有证据表明这个实例与监测到的攻击有关联,但它确实展示了收集和显示的信息类型。特别值得注意的是它可能记录的令牌计数(“tookens”)、成本和密钥。

1715497093_66406885757826190a42a.png!small?1715497096086

这个例子展示了一个设置为使用多种类型LLM的OAI反向代理实例,并没有证据表明这个实例参与了攻击。

如果攻击者正在收集有用的凭证清单,并希望出售对可用LLM模型的访问权限,像这样的反向代理可以让他们成功变现。

1715497686_66406ad697bca11c0785a.png!small?1715497689595

技术分析

在技术分析中,安全人员探讨了攻击者如何在云环境中实施攻击。通过在云环境内使用看似合法的API请求,他们巧妙地测试了访问权限的边界,而不会触发警报。下面的例子展示了InvokeModel API调用的策略性使用。

虽然攻击者发出了一个有效的请求,但他们故意将max_tokens_to_sample参数设置为-1。这个不寻常的参数,通常预期会触发错误,却同时起到了双重作用。它不仅确认了对LLM的访问权限的存在,而且还表明这些服务是活动的,如由结果中的ValidationException所示。如AccessDenied错误,将表明访问受限。这种微妙的探测揭示了他们计算出用偷来的凭证在云账户内可以进行哪些操作的方法。

InvokeModel

InvokeModel调用由CloudTrail记录,下面可以看到一个恶意事件的例子。他们发送了一个合法的请求,但指定“max_tokens_to_sample”为-1。这是一个无效的错误,会引起“ValidationException”错误,但这对攻击者来说是有用的信息,因为它告诉他们凭证有权访问LLM,并且已经启用了。否则,他们会收到一个“AccessDenied”错误。

{

    "eventVersion": "1.09",

    "userIdentity": {

        "type": "IAMUser",

        "principalId": "[REDACTED]",

        "arn": "[REDACTED]",

        "accountId": "[REDACTED]",

        "accessKeyId": "[REDACTED]",

        "userName": "[REDACTED]"

    },

    "eventTime": "[REDACTED]",

    "eventSource": "bedrock.amazonaws.com",

    "eventName": "InvokeModel",

    "awsRegion": "us-east-1",

    "sourceIPAddress": "83.7.139.184",

    "userAgent": "Boto3/1.29.7 md/Botocore#1.32.7 ua/2.0 os/windows#10 md/arch#amd64 lang/python#3.12.1 md/pyimpl#CPython cfg/retry-mode#legacy Botocore/1.32.7",

    "errorCode": "ValidationException",

    "errorMessage": "max_tokens_to_sample: range: 1..1,000,000",

    "requestParameters": {

        "modelId": "anthropic.claude-v2"

    },

    "responseElements": null,

    "requestID": "d4dced7e-25c8-4e8e-a893-38c61e888d91",

    "eventID": "419e15ca-2097-4190-a233-678415ed9a4f",

    "readOnly": true,

    "eventType": "AwsApiCall",

    "managementEvent": true,

    "recipientAccountId": "[REDACTED]",

    "eventCategory": "Management",

    "tlsDetails": {

        "tlsVersion": "TLSv1.3",

        "cipherSuite": "TLS_AES_128_GCM_SHA256",

        "clientProvidedHostHeader": "bedrock-runtime.us-east-1.amazonaws.com"

    }

}

Cloudtrail日志示例

AWS Bedrock并不支持所有地区,所以攻击者只在支持的地区调用“InvokeModel”。目前,Bedrock支持的地区包括us-east-1、us-west-2、ap-southeast-1、ap-northeast-1、eu-central-1、eu-west-3和us-gov-west-1。

GetModelInvocationLoggingConfiguration

有趣的是,攻击者对服务的配置方式表现出了兴趣。这可以通过调用“GetModelInvocationLoggingConfiguration”来完成,如果启用了的话,它会返回S3和Cloudwatch日志配置。在安全人员的设置中,安全人员使用了S3和Cloudwatch来尽可能多地收集关于攻击的数据。

{

    "loggingConfig": {

        "cloudWatchConfig": {

            "logGroupName": "[REDACTED]",

            "roleArn": "[REDACTED]",

            "largeDataDeliveryS3Config": {

                "bucketName": "[REDACTED]",

                "keyPrefix": "[REDACTED]"

            }

        },

        "s3Config": {

            "bucketName": "[REDACTED]",

            "keyPrefix": ""

        },

        "textDataDeliveryEnabled": true,

        "imageDataDeliveryEnabled": true,

        "embeddingDataDeliveryEnabled": true

    }

}

GetModelInvocationLoggingConfiguration响应示例

关于正在运行的提示及其结果的信息不会存储在Cloudtrail中。相反,需要进行额外的配置,将该信息发送到Cloudwatch和S3。进行这样的检查是为了隐藏他们的活动细节,避免被任何详细观察发现。OAI反向代理声明,为了“隐私”考虑,它不会使用任何启用了日志记录的AWS密钥。这使得如果他们使用AWS Bedrock通道,就无法检查提示和响应。

影响

在LLMjacking攻击中,对于攻击者最直接的危害是增加LLM模型运行成本。由于使用LLM并不便宜,因此可能会造成十分严重的财务损失。考虑到最坏的情况,即攻击者滥用Anthropic Claude 2.x,并在多个地区达到配额限制,受害者的成本可能超过每天46000美元。

具体计算方式可根据Claude 2的定价和初始配额:

  • 1000个输入令牌的成本为0.008美元,1000个输出令牌的成本为0.024美元。
  • 根据AWS Bedrock,最多可以每分钟处理500000个输入和输出令牌。安全人员可以考虑输入和输出令牌之间的平均成本,即1000令牌的成本为0.016美元。
  • 总成本:(500K令牌/1000 * 0.016美元)* 60分钟 * 24小时 * 4个地区 = 每天46080美元。

通过最大化配额限制,攻击者还可以阻止受损组织合法使用模型,扰乱业务运营。

攻击检测参考

根据最近的反馈和行业最佳实践,以下安全措施可提高云服务商检测LLMjacking攻击的能力:

  1. 云日志检测:像Falco、Sysdig Secure和CloudWatch Alerts这样的工具比较好用,组织可以通过监控运行时活动和分析云日志来主动识别可疑行为,包括在AWS Bedrock中使用的侦察策略等。
  2. 详细日志记录:全面的日志记录,为了解云环境的内部运作提供了宝贵的可见性。关于模型调用和其他关键活动的详细信息,让组织对其云环境中的活动有了细致的理解。

云日志检测

监控云日志可以揭示可疑或未授权的活动。使用Falco或Sysdig Secure,可以检测到攻击过程中使用的侦察方法,并可以开始响应。

1715497525_66406a356d4a904f89a74.png!small?1715497527910

此外还可以配置CloudWatch警报来处理可疑行为。可以监控Bedrock的几个运行时指标以触发警报。

详细日志记录

监控组织使用语言模型(LLM)服务至关重要,各种云供应商提供了简化这一过程的设施,这通常涉及设置机制来记录和存储有关模型调用的数据。

特别是对于AWS Bedrock,用户可以利用CloudWatch和S3来增强监控能力。CloudWatch可以通过创建日志组并分配具有必要权限的角色来设置。同样要记录到S3,需要一个指定的存储桶作为目的地。需要注意的是,InvokeModel命令的CloudTrail日志不会捕获关于提示输入和输出的详细信息,但Bedrock设置允许轻松激活模型调用日志记录。

此外,对于大于100kb或以二进制格式的模型输入或输出数据,用户必须明确指定一个S3目的地来处理大数据传输。这包括输入和输出图像,它们以Base64字符串的形式存储在日志中。这种全面的日志记录机制确保监控并存档模型使用的所有方面,以供进一步分析和合规性审查。

日志包含了关于处理的令牌的额外信息,如下例所示:

{

    "schemaType": "ModelInvocationLog",

    "schemaVersion": "1.0",

    "timestamp": "[REDACTED]",

    "accountId": "[REDACTED]",

    "identity": {

        "arn": "[REDACTED]"

    },

    "region": "us-east-1",

    "requestId": "bea9d003-f7df-4558-8823-367349de75f2",

    "operation": "InvokeModel",

    "modelId": "anthropic.claude-v2",

    "input": {

        "inputContentType": "application/json",

        "inputBodyJson": {

            "prompt": "\n\nHuman: Write a story of a young wizard\n\nAssistant:",

            "max_tokens_to_sample": 300

        },

        "inputTokenCount": 16

    },

    "output": {

        "outputContentType": "application/json",

        "outputBodyJson": {

            "completion": " Here is a story about a young wizard:\n\nMartin was an ordinary boy living in a small village. He helped his parents around their modest farm, tending to the animals and working in the fields. [...] Martin's favorite subject was transfiguration, the art of transforming objects from one thing to another. He mastered the subject quickly, amazing his professors by turning mice into goblets and stones into fluttering birds.\n\nMartin",

            "stop_reason": "max_tokens",

            "stop": null

        },

        "outputTokenCount": 300

    }

}

S3 日志示例

安全建议

这次攻击本可以通过多种方式预防,包括:

  • 漏洞管理以防止初始访问。
  • 秘密管理确保凭证不会明文存储,从而被盗取。
  • CSPM/CIEM以确保被滥用的账户拥有其所需的最少权限。
  • 正如最近研究所强调的,云供应商提供了一系列工具和最佳实践,旨在减轻云攻击的风险。这些工具帮助组织从一开始就构建并维护一个安全的云环境。

例如,AWS提供了几种强大的安全措施。AWS安全参考架构概述了安全构建云环境的最佳实践。此外,AWS建议使用服务控制策略(SCP)来集中管理权限,这有助于最小化与权限过多的账户相关的风险,这些账户可能会被滥用。这些指南和工具是AWS承诺增强安全性并为客户提供有效保护其云基础设施资源的一部分。其他云供应商提供了类似的框架和工具,确保用户无论在哪个平台上都能够访问至关重要的安全措施,以保护他们的数据和服务。

结论

盗用的云和SaaS凭证继续是一种常见的攻击途径。随着攻击者了解他们可以利用新获取的访问权限获得财务收益的所有方式,这种趋势只会越来越受欢迎。使用LLM服务的成本可能会很高,这取决于模型和被输入的令牌数量。通常,这会促使开发者尝试效率化,遗憾的是攻击者没有同样的动机,因此检测和响应对于快速处理任何问题至关重要。

IoCs

IP Addresses

83.7.139.184

83.7.157.76

73.105.135.228

83.7.135.97

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1681661.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【介绍下Python多线程,什么是Python多线程】

🌈个人主页: 程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共…

[笔试训练](二十四)070:判断是不是平衡二叉树071:最大子矩阵072:小葱的01串

目录 070:判断是不是平衡二叉树 071:最大子矩阵 072:小葱的01串 070:判断是不是平衡二叉树 题目链接:判断是不是平衡二叉树_牛客题霸_牛客网 (nowcoder.com) 题目: 题解: 递归:对于左右子树,为平衡二叉树时,返回…

废品回收微信小程序基于FastAdmin+ThinkPHP+UniApp

一款基于FastAdminThinkPHPUniApp开发的废品回收系统,适用废品回收站、再生资源回收公司上门回收使用的小程序。 一、FastAdmin框架特色功能及优势 模块化开发:控制器、模型、视图、JS一一对应,使用RequireJS进行插件机制,支持插…

计算机SCI期刊,中科院2区TOP,对国人相当友好,一周内出版!

一、期刊名称 ISA Transactions 二、期刊简介概况 期刊类型:SCI 学科领域:计算机科学 影响因子:7.3 中科院分区:2区TOP 出版方式:订阅模式/开放出版 版面费:选择开放出版需支付$3950 三、期刊征稿范…

python开发的学习路线

I. 基础知识学习 A. Python基础语法 变量和数据类型 学习如何定义变量,理解并使用不同的数据类型(整数、浮点数、字符串、布尔值等)。 掌握数字类型的转换和操作。 熟悉字符串的基本操作,如拼接、切片、替换和查找。 …

python常用基础知识

目录 (1)print函数 (2)注释 (3)input函数 (4)同时赋值和连续赋值 (5)type函数和id函数 (6)python赋值是地址赋值 (…

vue加密传输,后端获取进行解密。

文章目录 概要Vue前端加密后端进行解密小结 概要 vue界面加密传输,后端获取进行解密,适用于登录时密码加密传输。 Vue前端加密 1.安装jsencrypt包: npm install jsencrypt安装完成后package.json会有jsencrypt依赖 2.引入jsencrypt.js到文…

CRM与SCRM:联系与区别

引言 在当今数字化时代,企业与客户之间的互动变得日益频繁而复杂。为了更好地管理客户关系并提供更个性化的服务,许多企业采用了客户关系管理(CRM)系统。与此同时,随着社交媒体的普及和社交化互动的增加,社…

代码随想录-算法训练营day41【动态规划04:01背包问题-滚动数组、分割等和子集】

代码随想录-035期-算法训练营【博客笔记汇总表】-CSDN博客 第九章 动态规划part04● 01背包问题,你该了解这些! ● 01背包问题,你该了解这些! 滚动数组 ● 416. 分割等和子集 正式开始背包问题,背包问题还是挺难的,虽然大家可能看了很多背包问题模板代码,感觉挺简单,…

前端学习第一课

AJAX 事先说明,这只是记录,并不是从零到一的教学内容,如果想要学习的话,可以跳过本文章了 ok,转回正题,正如上面所说,这只是记录。其实我是有一定的前端基础的,也做过涉及相关的开发…

【线性系统理论】笔记三

能控性判别 约当标准型 总结: 秩的判据 能观性判别 秩判据 能控Ⅰ型&能控Ⅱ型 1型 2型 能控性分解&能观型分解

【高阶数据结构(四)】图的最短路径问题

💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:高阶数据结构专栏⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学习更多数据结构   🔝🔝 高阶数据结构 1. 前言2. 单源最短…

Python代码:三、读入字符串

1、题目 从变量输出开始。请使用input函数读入一个字符串,然后将其输出。 2、代码 import sys ainput() print(a) 3、在sublime运行的结果

从光伏监测到智慧农业,漫途LoRa产品多领域应用

随着物联网(IoT)技术的飞速发展,对数据传输的稳定性和低功耗特性的需求日益增加。在这一背景下,LoRa凭借更远的传输距离以及出色的抗干扰能力,展现出了显著的优势。这种特性使得LoRa在复杂多变的环境中表现尤为突出&am…

商品服务:SPUSKU规格参数销售属性

1.Object划分 1.PO(Persistant Object)持久对象 PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合。PO中应该不报含任何对数据库的操作 2.DO(Domain Object) 领域对象 就是从现实世界中抽象出来的有形或无形的业务实体。 3…

H3C IPSec配置手记

实验拓扑: 设备型号:H3C MSR36-20 接口地址:ipsec1 g0/0,1.1.1.1 ipsec2 g0/0,1.1.1.2 IPSec1内部地址:172.16.168.0/24 IPSec2内部地址:192.168.168.0/24 目的:建立IPSec隧道&a…

数字化社会的引擎:揭示Facebook的影响力

在当今数字化社会中,社交媒体平台扮演着至关重要的角色,而Facebook作为其中的巨头之一,其影响力不可忽视。本文将深入探讨Facebook的影响力,从多个角度揭示其在数字化社会中的引擎作用。 1. 社交互动的核心平台 Facebook作为社交…

多客陪玩系统源码,线上游戏开黑陪玩,线下预约家政服务,语音陪聊,陪玩成品搭建,源码交付,支持二开,陪玩系统开发

游戏陪玩系统主要的优势就是,只要有手游和网游不断推出,就有钱可赚。为什么呢?因为电竞行业正处于上升发展阶段,而且玩游戏对于现代人来说是很好的一种解压方式,所以在市场和用户需求方面都是有保证的。再加上现代人的社交压力越…

亚马逊Prime Day旺季备货遭遇美国海关查验高峰,应对策略全攻略!

随着全球化贸易的日益繁荣,跨境电商企业在旺季备货时面临着巨大的挑战,尤其是当遇到美国海关查验潮时,如何应对成为众多商家关注的焦点。本文将从分析美国海关查验的原因入手,为商家提供一系列应对策略和建议。 一、美国海关查验潮…