Skip to main content
Test Double company logo
Services
Services Overview
Holistic software investment consulting
Software Delivery
Accelerate quality software development
Product Management
Launch modern product orgs
Legacy Modernization
Renovate legacy software systems
DevOps
Scale infrastructure smoothly
Upgrade Rails
Update Rails versions seamlessly
Technical Recruitment
Build tech & product teams
Technical Assessments
Uncover root causes & improvements
Case Studies
Solutions
Accelerate Quality Software
Software Delivery, DevOps, & Product Delivery
Maximize Software Investments
Product Performance, Product Scaling, & Technical Assessments
Future-Proof Innovative Software
Legacy Modernization, Product Transformation, Upgrade Rails, Technical Recruitment
About
About
What's a test double?
Approach
Meeting you where you are
Founder's Story
The origin of our mission
Culture
Culture & Careers
Double Agents decoded
Great Causes
Great code for great causes
EDI
Equity, diversity & inclusion
Insights
All Insights
Hot takes and tips for all things software
Leadership
Bold opinions and insights for tech leaders
Developer
Essential coding tutorials and tools
Product Manager
Practical advice for real-world challenges
Say Hello
Test Double logo
Menu
Services
BackGrid of dots icon
Services Overview
Holistic software investment consulting
Software Delivery
Accelerate quality software development
Product Management
Launch modern product orgs
Legacy Modernization
Renovate legacy software systems
Cycle icon
DevOps
Scale infrastructure smoothly
Upgrade Rails
Update Rails versions seamlessly
Technical Recruitment
Build tech & product teams
Technical Assessments
Uncover root causes & improvements
Case Studies
Solutions
Solutions
Accelerate Quality Software
Software Delivery, DevOps, & Product Delivery
Maximize Software Investments
Product Performance, Product Scaling, & Technical Assessments
Future-Proof Innovative Software
Legacy Modernization, Product Transformation, Upgrade Rails, Technical Recruitment
About
About
About
What's a test double?
Approach
Meeting you where you are
Founder's Story
The origin of our mission
Culture
Culture
Culture & Careers
Double Agents decoded
Great Causes
Great code for great causes
EDI
Equity, diversity & inclusion
Insights
Insights
All Insights
Hot takes and tips for all things software
Leadership
Bold opinions and insights for tech leaders
Developer
Essential coding tutorials and tools
Product Manager
Practical advice for real-world challenges
Say hello
Developers
Developers
Developers
DevOps & security

How to protect against AWS S3 misconfiguration breaches

Dive into our simple guide to safeguard your AWS S3 buckets from common security oversights and keep your data secure!
Keith McCanless
|
August 5, 2020
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.

On July 19, Twilio was the victim of a hacking attack that made headlines. An attacker uploaded malicious code to an SDK that Twilio maintains. The injected exploit made a victim’s browser load code that was possibly intended to steal information from them as they shopped online.

Three days after the attack Twilio released an Incident Report outlining the cause. While one might imagine a misguided genius or rogue nation state to be the cause, it was in reality much more mundane—a misconfigured AWS S3 bucket.

The bucket was intended to be read only but was accidentally changed to read/write in 2015. Yes, you read that correctly. This code has been sitting exposed in S3 for 4 years, and Twilio was unaware of this fact! While surprising, this is all too common.

So far in 2020, Test Double has found misconfigured storage buckets that allowed unauthorized access in two separate DevOps audits.

OK, but how do you examine your buckets?

So how do you ensure your company’s name isn’t in the news tomorrow for this type of breach? Well, it is actually fairly straightforward. You just have to put in the effort.

The first step is to review all your current cloud storage buckets.

Make sure that bucket permissions follow the Principle of Least Privilege (PoLP). If you have a large number of buckets, you might opt to use a scanner. While they cannot tell you whether you have granted too much permission, they can at least tell you which ones are open to the public. There are many open source scanners available. Search to find one you are comfortable with based on your skill set.

Once you are sure that your buckets are currently protected, the next step is to ensure ongoing protection.

Ideally, you would now turn to Compliance as Code (CaC) to regularly test your infrastructure. Chef’s InSpec is a great tool for this. You can use it to test for common security (mis)configurations in most cloud providers. If you have the resources and capabilities available, instituting Compliance as Code is a highly recommended complement to your Infrastructure as Code (IaC) pipeline.

Regardless of whether you take that step, you should definitely set up monitoring to make sure the permissions on your S3 buckets remain as you intend. In AWS this means setting up a CloudWatch Alarm on changes to bucket permissions. Here are instructions on doing that in the AWS console.

Once CloudWatch Alarms are configured, make sure you have a policy in place on how you will respond when the alarm is triggered. Furthermore, make sure your team is aware of the policy and trained on it.

Finally, set up a recurring event on your calendar to manually review bucket permissions as you did in the first step. Also, review the response policy and all the CloudWatch alarms to validate to whom they are being sent. It is not going to do you any good if an alarm triggers at 2 AM and sends a text to an ex-employee’s phone.

While there are a few steps involved here, overall this is fairly simple to implement and well worth the effort if the downside means getting hacked. In today’s environment, losing confidential or sensitive information is not only costly financially but also in terms of lost client trust.

Don’t be a topic on the next cyber security news cycle, take the time to audit your infrastructure today!

Related Insights

🔗
Security strategies for developers: practical tips on misuse stories
🔗
Why Rails upgrades are so important
🔗
DevOps best practices using AWS and Terraform

Explore our insights

See all insights
Developers
Developers
Developers
You’re holding it wrong! The double loop model for agentic coding

Joé Dupuis has noticed an influx of videos and blog posts about the "correct" way of working with AI agents. Joé thinks most of it is bad advice, and has a better approach he wants to show you.

by
Joé Dupuis
Leadership
Leadership
Leadership
Don't play it safe: Improve your continuous discovery process to reduce risk

We often front-load discovery to feel confident before building—but that’s not real agility. This post explores how continuous learning reduces risk better than perfect plans ever could.

by
Doc Norton
Leadership
Leadership
Leadership
How an early-stage startup engineering team improved the bottom line fast

A fast-growing startup was burning cash faster than it could scale. Here’s how smart engineering decisions helped them improve the bottom line.

by
Jonathon Baugh
Letter art spelling out NEAT

Join the conversation

Technology is a means to an end: answers to very human questions. That’s why we created a community for developers and product managers.

Explore the community
Test Double Executive Leadership Team

Learn about our team

Like what we have to say about building great software and great teams?

Get to know us
Test Double company logo
Improving the way the world builds software.
What we do
Services OverviewSoftware DeliveryProduct ManagementLegacy ModernizationDevOpsUpgrade RailsTechnical RecruitmentTechnical Assessments
Who WE ARE
About UsCulture & CareersGreat CausesEDIOur TeamContact UsNews & AwardsN.E.A.T.
Resources
Case StudiesAll InsightsLeadership InsightsDeveloper InsightsProduct InsightsPairing & Office Hours
NEWSLETTER
Sign up hear about our latest innovations.
Your email has been added!
Oops! Something went wrong while submitting the form.
Standard Ruby badge
614.349.4279hello@testdouble.com
Privacy Policy
© 2020 Test Double. All Rights Reserved.