高 Token 计数和大型响应大小导致的潜在资源滥用

编辑

高 Token 计数和大型响应大小导致的潜在资源滥用

编辑

通过监控持续生成高输入 token 计数、提交大量请求并接收大型响应的用户,检测潜在的资源耗尽或数据泄露尝试。这种行为可能表明试图使系统过载或提取异常大量的数据,可能泄露敏感信息或导致服务中断。

规则类型: esql

规则索引: 无

严重性: 中

风险评分: 47

运行频率: 10 分钟

搜索索引起始时间: now-60m (日期数学格式,另请参阅 额外回溯时间)

每次执行的最大警报数: 100

参考:

标签:

  • 域: LLM
  • 数据源: AWS Bedrock
  • 数据源: Amazon Web Services
  • 数据源: AWS S3
  • 用例: 潜在过载
  • 用例: 资源耗尽
  • Mitre Atlas: LLM04

版本: 3

规则作者:

  • Elastic

规则许可证: Elastic License v2

调查指南

编辑

分类和分析

调查 Amazon Bedrock 模型高 Token 计数和大型响应大小。

Amazon Bedrock 是 AWS 的托管服务,它使开发人员能够使用顶级供应商的大型基础模型 (FM) 构建和扩展生成式 AI 应用程序。

Bedrock 提供来自 Amazon(例如 Titan 系列)以及来自 Anthropic、Meta、Cohere 和 AI21 Labs 等供应商的各种预训练模型。

可能的调查步骤

  • 确定使用高提示 token 计数的用户帐户,以及它是否应该执行此类操作。
  • 调查用户帐户发出的大型响应大小和请求数量。
  • 调查过去 48 小时内与用户帐户关联的其他警报。
  • 考虑一天中的时间。如果用户是人(而不是程序或脚本),该活动是否发生在正常的一天中的时间?
  • 检查过去 24 小时内帐户的提示和响应。
  • 如果您怀疑帐户已被盗用,请通过跟踪过去 24 小时内帐户的 Amazon Bedrock 模型访问、生成的提示以及对提示的响应来确定可能被盗用的资产范围。

误报分析

  • 验证使用高提示和大型响应大小的用户帐户,是否有充分的业务理由来大量使用该系统。

响应和补救

  • 根据分类的结果启动事件响应过程。
  • 在调查和响应期间禁用或限制帐户。
  • 确定事件的可能影响并相应地确定优先级;以下操作可以帮助您获得上下文
  • 确定云环境中帐户的角色。
  • 确定攻击者是否正在横向移动并危及其他 Amazon Bedrock 服务。
  • 确定与此活动相关的任何监管或法律后果。
  • 确定潜在的资源耗尽和对计费的影响。
  • 查看分配给这些请求背后的相关用户组或角色的权限,以确保他们被授权并期望访问 Bedrock,并确保遵循最小权限原则。
  • 确定攻击者滥用的初始向量,并采取行动以防止通过相同的向量再次感染。
  • 使用事件响应数据,更新日志记录和审计策略,以提高平均检测时间 (MTTD) 和平均响应时间 (MTTR)。

设置

编辑

设置

此规则要求在 AWS Bedrock 中配置防护措施。有关详细信息,请参阅 AWS Bedrock 文档

https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails-create.html

规则查询

编辑
from logs-aws_bedrock.invocation-*
| keep user.id, gen_ai.usage.prompt_tokens, gen_ai.usage.completion_tokens
| stats max_tokens = max(gen_ai.usage.prompt_tokens),
         total_requests = count(*),
         avg_response_size = avg(gen_ai.usage.completion_tokens)
  by user.id
// tokens count depends on specific LLM, as is related to how embeddings are generated.
| where max_tokens > 5000 and total_requests > 10 and avg_response_size > 500
| eval risk_factor = (max_tokens / 1000) * total_requests * (avg_response_size / 500)
| where risk_factor > 10
| sort risk_factor desc