How Attackers Test Stolen AWS Keys for Amazon Bedrock Access

· Original article ↗

Summary

Datadog researchers detail tools that validate AWS credentials for Bedrock access by enumerating models and attempting inference. They observed similar activity at 12 organizations and recommend investigating unexpected Bedrock API calls.

Key points

  • KMON_NOC frontend code indicates the credential-harvesting platform checks AWS keys with STS GetCallerIdentity, separately identifies Bedrock access, and extracts Bedrock bearer tokens. Associated hosts were observed probing for credentials at more than 80 Datadog Cloud SIEM customers.
  • Two Python scripts found on VirusTotal process credential lists, identify AWS principals, test Bedrock across regions, and retain successful credentials in plaintext.
  • The scripts use ListFoundationModels and may enumerate inference profiles before testing model access with Converse or InvokeModel. One also checks promotional credits through the Billing API.
  • In the last 30 days, Datadog observed similar behavior at 12 organizations. One case involved successful multi-region model enumeration followed by Converse calls that received AccessDenied responses for Anthropic models.
  • Researchers could not establish a link between the analyzed script and the activity in their telemetry.
  • Datadog recommends investigating unexpected Bedrock activity, especially from new sources or identities with no history of AI usage, and monitoring model discovery and invocation API calls.

Article Details

Attack Vectors
  • KMON_NOC scans and probes for AWS credentials. Its frontend code indicates that it distinguishes valid AWS keys from keys with Amazon Bedrock access, but the researchers did not observe its AWS API activity.
  • Two analyzed Python scripts process AWS credential lists, identify the associated principals, enumerate Bedrock models across regions, and attempt low-cost model invocations. One can also check promotional credits.
  • In separate telemetry, the researchers observed suspicious multi-region Bedrock model discovery and, in one case, attempted Converse calls for Anthropic models. They could not link that telemetry to the analyzed script.
Defensive Notes
  • Investigate unexpected Amazon Bedrock activity, especially from a new source or an identity with no history of AI usage.
  • Monitor both Converse and InvokeModel for credential-validation or LLMjacking activity, and correlate multi-region model enumeration with subsequent invocation attempts.
  • Use the listed IP addresses only alongside the described AWS activity to improve confidence; the researchers say the addresses include residential proxies, VPNs, and hosting providers.

Indicators of compromise

TypeIndicatorContext
IPV4103[.]148[.]197[.]54IP observed attempting the described AWS credential-validation pattern.
IPV4103[.]160[.]185[.]100IP observed attempting the described AWS credential-validation pattern.
IPV4108[.]168[.]65[.]226IP observed attempting the described AWS credential-validation pattern.
IPV4109[.]146[.]93[.]39IP observed attempting the described AWS credential-validation pattern.
IPV4112[.]78[.]151[.]90IP observed attempting the described AWS credential-validation pattern.
IPV4115[.]138[.]247[.]83IP observed attempting the described AWS credential-validation pattern.
IPV4116[.]106[.]179[.]94IP observed attempting the described AWS credential-validation pattern.
IPV4128[.]116[.]206[.]252IP observed attempting the described AWS credential-validation pattern.
IPV4137[.]103[.]56[.]107IP observed attempting the described AWS credential-validation pattern.
IPV4138[.]199[.]15[.]176IP observed attempting the described AWS credential-validation pattern.
IPV4138[.]94[.]168[.]132IP observed attempting the described AWS credential-validation pattern.
IPV4146[.]70[.]173[.]170IP observed attempting the described AWS credential-validation pattern.
IPV4151[.]243[.]18[.]111IP observed attempting the described AWS credential-validation pattern.
IPV4154[.]119[.]213[.]63IP observed attempting the described AWS credential-validation pattern.
IPV4157[.]100[.]141[.]65IP observed attempting the described AWS credential-validation pattern.
IPV4172[.]56[.]122[.]32IP observed attempting the described AWS credential-validation pattern.
IPV4173[.]249[.]254[.]173IP observed attempting the described AWS credential-validation pattern.
IPV4173[.]92[.]116[.]211IP observed attempting the described AWS credential-validation pattern.
IPV4181[.]115[.]172[.]90IP observed attempting the described AWS credential-validation pattern.
IPV4181[.]51[.]32[.]38IP observed attempting the described AWS credential-validation pattern.
IPV4186[.]154[.]182[.]44IP observed attempting the described AWS credential-validation pattern.
IPV4190[.]56[.]117[.]218IP observed attempting the described AWS credential-validation pattern.
IPV4191[.]93[.]177[.]69IP observed attempting the described AWS credential-validation pattern.
IPV4192[.]74[.]128[.]184IP observed attempting the described AWS credential-validation pattern.
IPV4194[.]36[.]27[.]53IP observed attempting the described AWS credential-validation pattern.
IPV4196[.]177[.]214[.]142IP observed attempting the described AWS credential-validation pattern.
IPV4200[.]151[.]53[.]165IP observed attempting the described AWS credential-validation pattern.
IPV4206[.]206[.]119[.]201IP observed attempting the described AWS credential-validation pattern.
IPV4213[.]186[.]157[.]53IP observed attempting the described AWS credential-validation pattern.
IPV4216[.]126[.]227[.]187IP observed attempting the described AWS credential-validation pattern.
IPV445[.]11[.]61[.]22IP observed attempting the described AWS credential-validation pattern.
IPV446[.]100[.]30[.]188IP observed attempting the described AWS credential-validation pattern.
IPV447[.]230[.]250[.]253IP observed attempting the described AWS credential-validation pattern.
IPV450[.]82[.]6[.]249IP observed attempting the described AWS credential-validation pattern.
IPV451[.]15[.]192[.]215IP observed attempting the described AWS credential-validation pattern.
IPV459[.]92[.]240[.]165IP observed attempting the described AWS credential-validation pattern.
IPV469[.]250[.]15[.]174IP observed attempting the described AWS credential-validation pattern.
IPV471[.]76[.]4[.]45IP observed attempting the described AWS credential-validation pattern.
IPV472[.]235[.]197[.]91IP observed attempting the described AWS credential-validation pattern.
IPV478[.]109[.]78[.]211IP observed attempting the described AWS credential-validation pattern.
IPV479[.]117[.]129[.]254IP observed attempting the described AWS credential-validation pattern.
IPV482[.]86[.]130[.]180IP observed attempting the described AWS credential-validation pattern.
IPV483[.]194[.]172[.]248IP observed attempting the described AWS credential-validation pattern.
IPV484[.]50[.]134[.]231IP observed attempting the described AWS credential-validation pattern.
IPV485[.]137[.]52[.]59IP observed attempting the described AWS credential-validation pattern.
IPV485[.]137[.]53[.]173IP observed attempting the described AWS credential-validation pattern.
IPV485[.]253[.]221[.]206IP observed attempting the described AWS credential-validation pattern.
IPV487[.]58[.]197[.]196IP observed attempting the described AWS credential-validation pattern.
IPV487[.]58[.]197[.]199IP observed attempting the described AWS credential-validation pattern.
IPV488[.]167[.]240[.]60IP observed attempting the described AWS credential-validation pattern.
IPV489[.]249[.]72[.]22IP observed attempting the described AWS credential-validation pattern.
IPV492[.]144[.]3[.]108IP observed attempting the described AWS credential-validation pattern.
IPV492[.]216[.]157[.]153IP observed attempting the described AWS credential-validation pattern.
IPV493[.]118[.]107[.]1IP observed attempting the described AWS credential-validation pattern.
IPV494[.]154[.]46[.]242IP observed attempting the described AWS credential-validation pattern.
IPV494[.]154[.]46[.]243IP observed attempting the described AWS credential-validation pattern.
IPV494[.]154[.]46[.]245IP observed attempting the described AWS credential-validation pattern.
IPV494[.]154[.]46[.]246IP observed attempting the described AWS credential-validation pattern.
IPV494[.]154[.]46[.]247IP observed attempting the described AWS credential-validation pattern.
IPV494[.]154[.]46[.]248IP observed attempting the described AWS credential-validation pattern.
IPV494[.]154[.]46[.]249IP observed attempting the described AWS credential-validation pattern.
IPV494[.]154[.]46[.]250IP observed attempting the described AWS credential-validation pattern.
IPV495[.]216[.]34[.]254IP observed attempting the described AWS credential-validation pattern.
IPV498[.]44[.]224[.]55IP observed attempting the described AWS credential-validation pattern.
SHA256923641364ef0ce3a6f1d944890244082b8c7f29c9600c0433b2a0ca9822c0608Hash of an analyzed Python script that validates AWS credentials, tests Bedrock access, and can enumerate promotional credits.
SHA256c9335bb8a21bd2c568d03b040fb86a0e72145691e54a33495ee0cfaac55835dcHash of an analyzed Python script that validates AWS credentials and tests Bedrock access.

MITRE ATT&CK

Vendors

Products

Tools

Related Articles