Event type
GuardDuty Malware Protection for S3 Finding Type
Malware detection on S3 objects
AWS GuardDuty Malware Protection for S3 finding type detecting malicious files in S3 objects during upload-triggered scans, including trojans, backdoors, viruses, ransomware, spyware, rootkits, miners, worms, and adware
Overview
What this event covers
Malware Protection for S3 generates findings when malware scans detect malicious files in uploaded S3 objects. Requires both GuardDuty and Malware Protection for S3 to be enabled. Scans are triggered when objects are uploaded to protected buckets. Includes total number of detections and details for top 32 threats based on severity.
When generated
- ›Malicious file detected in S3 object during upload-triggered scan
- ›Object uploaded to protected S3 bucket contains malware
- ›Malware scan detects threat in scanned S3 object
- ›Scan triggered by S3 object upload event
Security relevance
HighCompliance
Frequency notes
Malware Protection for S3 findings are generated when uploaded objects contain malware. Frequency depends on upload volume and threat landscape. Production environments typically see 1-10 findings per day. Each finding represents one object scan with detected threats. Objects scanned before enabling GuardDuty won't generate findings - must re-upload object to scan. Default severity is High (8.0).
Resources
Docs and tools
Generation
Configuration
- Base frequency
- 5 events/hour
- Time patterns
- business_hours night_hours weekend
- Business hours
- 2.0x
- Night hours
- 1.5x
- Weekend
- 1.0x
Schema
Field definitions
Field reference for this event type — types, requirements, examples, and allowed values.
detail.type
Malware Protection for S3 finding type (always Object:S3/MaliciousFile)
Source: Fixed value for S3 malware protection findings
Object:S3/MaliciousFile-
Object:S3/MaliciousFileMalicious file detected in scanned S3 object
detail.resource.s3BucketDetails
Details about S3 bucket containing the malicious object
Source: S3 bucket metadata from GuardDuty
[{name, arn, type, owner, tags, publicAccess}]detail.service.malwareProtectionScanDetails.scannedResourceDetails.bucketArn
ARN of the S3 bucket containing the scanned object
Source: S3 bucket ARN from scan details
S3 bucket ARNarn:aws:s3:::data-bucket-123456detail.service.malwareProtectionScanDetails.scannedResourceDetails.objectKey
S3 object key (path) of the scanned object containing malware. Note: Object keys may be controlled by malicious actors and should be sanitized when displayed
Source: S3 object key from scan details
S3 object key (path)uploads/malware.exedetail.service.malwareProtectionScanDetails.scannedResourceDetails.objectVersionId
Version ID of the S3 object (if versioning is enabled)
Source: S3 object version ID or null
S3 object version ID or 'null'nulldetail.service.malwareProtectionScanDetails.scanId
Unique identifier for the malware scan
Source: random_guid()
UUID550e8400-e29b-41d4-a716-446655440000detail.service.malwareProtectionScanDetails.triggerFindingId
GuardDuty finding ID that triggered this scan (if scan was triggered by finding)
Source: random_hex(32, 32) or empty if upload-triggered
32-character hexadecimal stringa1b2c3d4e5f6...detail.service.malwareProtectionScanDetails.sources
Source that initiated the scan
Source: random_choice(['THREAT_DETECTION', 'SCHEDULED_SCAN', 'ON_DEMAND'])
['THREAT_DETECTION']-
THREAT_DETECTIONScan triggered by GuardDuty threat detection finding -
SCHEDULED_SCANScan performed on scheduled basis -
ON_DEMANDScan triggered by object upload to protected bucket
detail.service.additionalInfo.threatsDetectedItemCount
Total number of threats detected during the scan
Source: random_int(1, 32) - total detections in scan
Integer (1 or more)3detail.service.additionalInfo.threatsDetected
Details for top 32 threats detected (based on severity). Each finding includes up to 32 threats.
Source: Array of threat details from malware scan
[{threatName, severity, itemCount, files}]detail.service.additionalInfo.threatsDetected[].threatName
Name of the detected threat
Source: random_choice() of malware threat names
Threat nameTrojan.Win32.Generic-
Trojan.Win32.GenericWindows trojan -
Trojan.Linux.GenericLinux trojan -
Backdoor.Linux.GenericLinux backdoor -
Virus.Win32.GenericWindows virus -
Ransomware.Win32.GenericWindows ransomware -
Spyware.Win32.GenericWindows spyware -
Rootkit.Linux.GenericLinux rootkit -
Miner.Linux.GenericCryptocurrency miner -
Worm.Win32.GenericWindows worm -
Adware.Mac.GenericMac adware
detail.service.additionalInfo.threatsDetected[].files[].filePath
S3 object key or path within object to the malicious file. Note: File paths may be controlled by malicious actors and should be sanitized when displayed
Source: File path from malware scan
S3 object key or internal file pathuploads/malware.exedetail.service.additionalInfo.threatsDetected[].files[].fileHash
SHA-256 hash of the malicious file
Source: SHA-256 hash of file content
64-character hexadecimal stringa1b2c3d4e5f6...detail.severity
Finding severity level (default is High/8.0 for S3 malware findings)
Source: random_choice([5, 8, 8, 8]) - default is High
8-
5Medium severity (4.0-6.9) -
8High severity (7.0-8.9) - default for S3 malware findings