Amazon S3 Users Exposing Data to Public Due to Bad 'Bucket' Settings

An analysis by security risk management company Rapid7 found that one in six of the data storage buckets the company studied were incorrectly set as “public.”

Bad system configurations are exposing countless pieces of data housed in Amazon Simple Storage Service (S3) "buckets" and leaving them open to prying eyes.

Amazon S3 is an online storage service offered by Amazon. The number of database objects users can store is unlimited. The objects are stored in buckets and users retrieve them with a unique, developer-assigned key. According to vulnerability management firm Rapid7, however, many businesses are not properly restricting access to those buckets. In an analysis, Rapid7 found 1,951—or approximately one in six—of the 12,328 buckets it analyzed were public.

These 1,951 public buckets contained more than 126 billion files. All totaled, Rapid7 reviewed more than 40,000 of these to see what kind of data they contained. The files included video game source code, sales records and employee personal information. More than 28,000 PHP source code files were identified, with some containing details such as database usernames, passwords and API keys. The most common exposure was through log backups left publicly accessible.

Rapid7 security researcher Will Vandevanter told eWEEK he was surprised by the findings, both in terms of how common such misconfigurations are and what types of data companies have left publicly exposed.

"I had expected individuals to misconfigure their buckets but hadn't expected it to be as prevalent at the enterprise level," he said. "While finding the issue and understanding the risk are easy on a conceptual level, the S3 Access Control List concepts are slightly complicated and easy to misconfigure. I can see S3 users attempting to troubleshoot an issue and accidentally exposing the bucket without realizing the impact."

A bucket can be classified as public if any user can list the contents of the bucket, and private if the buckets can only be listed by certain S3 users. While a public bucket will list the first 1,000 objects that have been stored whenever a user asks, accessing a private bucket will only return a message stating that access has been denied. The default configuration for an S3 bucket is private.

"S3 bucket users and organizations should create a schedule to regularly blind scan its buckets to check for exposure on their S3 buckets," said Tod Beardsley, Metasploit engineering manager at Rapid7. "In order to conduct the blind scan, users need to set up a simple automated task to visit their own buckets from a place on the Internet that shouldn't have access to the files. By running these regular scans and analyzing the results, users can determine if critical files are visible to outside eyes."

"It would be great if there was a capability to be alerted when documents are exposed," he said. "There’s a technique called fail-open monitoring that is gaining in popularity, which can provide alerting capabilities. For example, there’s an open-source project called 'Gauntlt' that can be used to alert S3 users of compromise."

Rapid7 recommends S3 users ensure that any buckets that are exposed are not leaking sensitive information. Amazon also has published advice to help users secure their information.