Một lỗ hổng thanh toán nghiêm trọng trong dịch vụ lưu trữ S3 của Amazon Web Services ( AWS ) đã được khắc phục sau khi nó cho phép các kẻ tấn công hoặc hệ thống cấu hình sai làm tăng đáng kể hóa đơn cloud cho các chủ sở hữu bucket vô tội. Vấn đề này, ảnh hưởng đến người dùng trong suốt năm 2024, đã khơi mào những cuộc thảo luận quan trọng về thực tiễn thanh toán và bảo mật cloud.
Dòng thời gian các sự kiện:
- Tháng 4/2024: Lỗ hổng bảo mật được báo cáo công khai
- Tháng 5/2024: AWS công bố thay đổi chính sách để ngừng tính phí cho các yêu cầu trái phép
- Tháng 8/2024: Chính sách thanh toán mới được triển khai đầy đủ
Khám Phá Tốn Kém
Lỗ hổng này được phát hiện khi một nhà phát triển đang làm việc trên hệ thống lập chỉ mục tài liệu phát hiện hóa đơn AWS của họ đã tăng vọt lên hơn 1.300 đô la Mỹ chỉ trong vòng hai ngày sau khi tạo một S3 bucket riêng tư đơn giản. Hóa đơn gây sốc này cho thấy gần 100 triệu yêu cầu S3 PUT được thực hiện trong một ngày - tất cả đều từ các nguồn bên ngoài cố gắng truy cập bucket mà không có quyền.
Nguyên nhân gốc rễ được truy ra từ một công cụ mã nguồn mở phổ biến sử dụng cùng tên bucket làm placeholder mặc định trong cấu hình của nó. Mỗi lần triển khai công cụ này với cài đặt mặc định đều cố gắng lưu trữ bản sao lưu trong bucket riêng của nhà phát triển, tạo ra khối lượng yêu cầu khổng lồ và các khoản phí tương ứng.
Ví dụ về Tác động Chi phí:
- Hóa đơn gốc: Hơn 1.300 USD trong 2 ngày
- Khối lượng yêu cầu: Gần 100 triệu yêu cầu PUT S3 trong 24 giờ
- Tốc độ thu thập dữ liệu: 10GB được thu thập trong vòng chưa đến 30 giây khi bucket được mở để thử nghiệm
Chính Sách Thanh Toán Gây Tranh Cãi Của AWS
Điều khiến tình huống này đặc biệt có vấn đề là chính sách của AWS tính phí chủ sở hữu bucket cho tất cả các yêu cầu đến, bao gồm cả những yêu cầu trái phép dẫn đến lỗi từ chối truy cập. Điều này có nghĩa là bất kỳ ai biết tên bucket đều có thể cố ý hoặc vô tình làm tăng chi phí của người dùng khác mà thậm chí không cần có tài khoản AWS .
Chính sách này mở rộng ra ngoài các khoản phí yêu cầu đơn giản. Khi các yêu cầu S3 không chỉ định vùng, chúng sẽ mặc định về vùng ap-east-1 và được chuyển hướng khi cần, với chủ sở hữu bucket phải trả thêm phí cho các yêu cầu chuyển hướng này.
Tác Động Bảo Mật Vượt Ra Ngoài Thanh Toán
Lỗ hổng này tiết lộ nhiều hơn chỉ là mối quan ngại về thanh toán. Khi nhà phát triển bị ảnh hưởng tạm thời mở bucket của họ cho ghi công khai để điều tra vấn đề, họ đã thu thập được hơn 10 gigabyte dữ liệu nhạy cảm chỉ trong vòng 30 giây từ các hệ thống cấu hình sai khác nhau cố gắng lưu trữ bản sao lưu. Điều này làm nổi bật cách các sơ suất cấu hình có thể dẫn đến rò rỉ dữ liệu nghiêm trọng, với các công ty vô tình gửi thông tin bí mật đến các S3 bucket ngẫu nhiên.
Các Biện Pháp Phòng Ngừa Được Cộng Đồng Khuyến Nghị:
- Sử dụng chuỗi ký tự ngẫu nhiên cho tên bucket
- Thêm hậu tố ngẫu nhiên vào tên bucket dễ đọc
- Kích hoạt AWS CloudTrail hoặc S3 Server Access Logging để giám sát
- Cân nhắc các phương án thanh toán theo mức sử dụng để dự đoán chi phí tốt hơn
Phản Hồi Của AWS Và Thay Đổi Chính Sách
Sau áp lực từ cộng đồng và các báo cáo về việc lạm dụng thanh toán này, AWS đã thông báo vào tháng 5 năm 2024 rằng họ sẽ ngừng tính phí chủ sở hữu tài khoản cho các yêu cầu xấu hoặc trái phép đến S3 bucket. Thay đổi chính sách này, được triển khai vào tháng 8 năm 2024, đã giải quyết lỗ hổng cốt lõi cho phép các bên ngoài thao túng thanh toán thông qua các yêu cầu không mong muốn.
Cộng đồng công nghệ đã phản ứng với những phản hồi trái chiều. Trong khi nhiều người đánh giá cao việc khắc phục, một số nhà phát triển hiện ủng hộ việc sử dụng chuỗi ngẫu nhiên trong tên bucket hoặc thêm hậu tố ngẫu nhiên để ngăn chặn các vấn đề tương tự. Những người khác đã sử dụng sự cố này để lập luận cho việc rời bỏ hoàn toàn các mô hình thanh toán cloud dựa trên sử dụng, cho rằng quản lý máy chủ truyền thống hoặc dịch vụ colocation cung cấp chi phí có thể dự đoán hơn.
Việc giải quyết lỗ hổng này đại diện cho một bước quan trọng trong bảo mật cloud và công bằng thanh toán, nhưng nó cũng đóng vai trò như một lời nhắc nhở về những cách bất ngờ mà các dịch vụ cloud có thể khiến người dùng phải đối mặt với cả rủi ro tài chính và bảo mật.
Tham khảo: How an empty S3 bucket can make your AWS bill explode