Lỗ hổng của AWS Cloud Development Kit khiến người dùng có nguy cơ bị chiếm đoạt

Tác giả Copilot, T.Mười 26, 2024, 04:16:26 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 1 Khách đang xem chủ đề.

Các nhà nghiên cứu an ninh mạng đã tiết lộ một lỗ hổng bảo mật ảnh hưởng đến Amazon Web Services (AWS) Cloud Development Kit (CDK) có thể dẫn đến việc chiếm đoạt tài khoản trong những trường hợp cụ thể.

Aqua cho biết trong báo cáo chia sẻ với The Hacker News: "Trong một số trường hợp nhất định, tác động của vấn đề này có thể cho phép kẻ tấn công có quyền truy cập quản trị vào tài khoản AWS mục tiêu, dẫn đến việc chiếm đoạt toàn bộ tài khoản".


Sau khi tiết lộ có trách nhiệm vào ngày 27 tháng 6 năm 2024, vấn đề đã được những người bảo trì dự án giải quyết trong CDK phiên bản 2.149.0 được phát hành vào tháng 7.

AWS CDK là một khuôn khổ phát triển phần mềm nguồn mở để xác định tài nguyên ứng dụng đám mây bằng Python, TypeScript hoặc JavaScript và cung cấp chúng thông qua CloudFormation.

Vấn đề mà Aqua xác định dựa trên những phát hiện trước đó của công ty bảo mật đám mây về tài nguyên ẩn trong AWS và cách các quy ước đặt tên được xác định trước cho các thùng AWS Simple Storage Service (S3) có thể được sử dụng để dàn dựng các cuộc tấn công Bucket Monopoly và truy cập vào dữ liệu nhạy cảm.

Chuẩn bị môi trường AWS để sử dụng với AWS Cloud Development Kit (AWS CDK) được thực hiện bằng một quy trình gọi là bootstrapping, trong đó một số tài nguyên AWS được cung cấp cho môi trường. Bao gồm một thùng AWS S3, kho lưu trữ Amazon Elastic Container Registry (Amazon ECR) và các vai trò AWS Identity and Access Management (IAM).

Theo tài liệu của AWS, "Các tài nguyên và cấu hình của chúng được CDK sử dụng được xác định trong mẫu AWS CloudFormation".

"Để khởi động một môi trường, bạn sử dụng lệnh cdk bootstrap của AWS CDK Command Line Interface (AWS CDK CLI). CDK CLI sẽ truy xuất mẫu và triển khai mẫu đó lên AWS CloudFormation dưới dạng một ngăn xếp, được gọi là ngăn xếp khởi động. Theo mặc định, tên ngăn xếp là CDKToolkit."

Một số vai trò IAM được tạo như một phần của quy trình khởi động cấp quyền tải lên và xóa tài sản khỏi thùng S3 được liên kết, cũng như thực hiện triển khai ngăn xếp với quyền truy cập của quản trị viên.

Aqua cho biết mẫu đặt tên của các vai trò IAM do AWS CDK tạo ra tuân theo cấu trúc "cdk-{Qualifier}-{Description}-{Account-ID}-{Region}", trong đó mỗi trường được giải thích bên dưới -

  • Qualifier, một giá trị chuỗi chín ký tự duy nhất mặc định là "hnb659fds" mặc dù nó có thể được tùy chỉnh trong giai đoạn khởi động
  • Mô tả, mô tả tài nguyên (ví dụ: cfn-exec-role)
  • Account-ID, ID tài khoản AWS của môi trường
  • Khu vực, khu vực AWS của môi trường

Tương tự như vậy, thùng S3 được tạo trong quá trình khởi động sẽ tuân theo mẫu đặt tên "cdk-{Qualifier}-assets-{Account-ID}-{Region}."


"Vì nhiều người dùng chạy lệnh cdk bootstrap mà không tùy chỉnh trình định danh, nên mẫu đặt tên bucket S3 của bucket dàn dựng trở nên có thể dự đoán được", Aqua cho biết. "Điều này là do giá trị mặc định cho trình định danh tên bucket được đặt thành 'hnb659fds', giúp dễ dàng dự đoán tên của bucket hơn".

Với hàng ngàn trường hợp được phát hiện trên GitHub trong đó trình định danh mặc định được sử dụng, điều này cũng có nghĩa là việc đoán tên của bucket cũng đơn giản như tìm ID tài khoản AWS và khu vực mà CDK được triển khai.

Kết hợp khía cạnh này với thực tế là tên thùng S3 là duy nhất trên toàn cầu trong tất cả các tài khoản AWS, lỗ hổng này mở ra cánh cửa cho cái gọi là S3 Bucket Namesquatting (hoặc Bucket Sniping), cho phép kẻ tấn công chiếm đoạt thùng CDK của người dùng khác nếu nó chưa tồn tại.

Điều này có thể mở đường cho tình trạng từ chối dịch vụ (DoS) một phần khi người dùng cố gắng khởi động CDK bằng cùng một ID tài khoản và vùng, một tình huống có thể được giải quyết bằng cách chỉ định một trình định danh tùy chỉnh trong quá trình khởi động.

Hậu quả nghiêm trọng hơn có thể xảy ra nếu CDK của nạn nhân có quyền đọc và ghi dữ liệu từ và vào thùng S3 do kẻ tấn công kiểm soát, do đó có thể can thiệp vào các mẫu CloudFormation và thực hiện các hành động độc hại trong tài khoản AWS của nạn nhân.

Aqua chỉ ra rằng: "Vai trò triển khai dịch vụ CloudFormation, tức là vai trò CloudFormationExecutionRole trong CDK, có quyền quản trị trong tài khoản theo mặc định".

"Điều này có nghĩa là bất kỳ mẫu CloudFormation nào được CDK của nạn nhân ghi vào thùng S3 của kẻ tấn công sẽ được triển khai sau đó với các đặc quyền quản trị trong tài khoản của nạn nhân. Điều này sẽ cho phép kẻ tấn công tạo các tài nguyên có đặc quyền."

Trong một cuộc tấn công giả định, nếu người dùng đã khởi tạo quy trình khởi động CDK trong quá khứ và sau đó xóa thùng S3 do giới hạn hạn ngạch, thì kẻ tấn công có thể lợi dụng tình huống này để tạo một thùng có cùng tên.

Điều này sau đó có thể khiến CDK ngầm tin tưởng thùng chứa giả mạo và đọc/ghi các mẫu CloudFormation vào đó, khiến chúng dễ bị khai thác. Tuy nhiên, để thành công, kẻ tấn công được mong đợi đáp ứng các điều kiện tiên quyết dưới đây -

  • Yêu cầu thùng có tên có thể đoán trước và cho phép công chúng truy cập
  • Tạo một hàm Lambda sẽ đưa vai trò quản trị viên độc hại hoặc cửa hậu vào tệp mẫu CloudFormation nhất định bất cứ khi nào tệp đó được tải lên thùng

Ở giai đoạn cuối, khi người dùng triển khai CDK bằng cách sử dụng "cdk deploy", quy trình này không chỉ gửi mẫu đến thùng chứa bản sao mà còn chèn vai trò quản trị mà kẻ tấn công có thể đảm nhận để cuối cùng giành quyền kiểm soát tài khoản của nạn nhân.

Nói cách khác, chuỗi tấn công tạo điều kiện cho việc tạo vai trò quản trị trong tài khoản AWS mục tiêu khi thùng CDK S3 được thiết lập trong quá trình khởi động bị xóa và CDK được sử dụng lại. AWS đã xác nhận rằng khoảng 1% người dùng CDK dễ bị tấn công.

Bản sửa lỗi do AWS đưa ra đảm bảo rằng các tài sản chỉ được tải lên các thùng trong tài khoản của người dùng để ngăn CDK đẩy dữ liệu vào các thùng không thuộc sở hữu của tài khoản đã khởi chạy bootstrapping. AWS cũng khuyến khích khách hàng sử dụng một trình định tính tùy chỉnh thay vì "hnb659fds" mặc định.

Trong tuyên bố chia sẻ với The Hacker News, AWS cho biết đã điều tra và giải quyết mọi lo ngại liên quan đến việc lộ dữ liệu trái phép khi triển khai CDK.

"Vào ngày 12 tháng 7 năm 2024, AWS đã phát hành bản cập nhật cho AWS Cloud Development Kit (AWS CDK) CLI, bản cập nhật này triển khai các biện pháp kiểm soát bảo mật bổ sung để giảm thiểu khả năng tiết lộ dữ liệu cho khách hàng thực hiện triển khai CDK", người phát ngôn của AWS cho biết với ấn phẩm này.

"Khách hàng sử dụng phiên bản mới nhất sẽ cần thực hiện một hành động một lần để nâng cấp tài nguyên bootstrap của họ. AWS đã liên hệ trực tiếp với những khách hàng có khả năng bị ảnh hưởng để thông báo cho họ về nhu cầu nâng cấp và đã thêm các kiểm tra bổ sung vào CLI để nhắc nhở người dùng nâng cấp."

Nói như vậy, hành động của người dùng là bắt buộc nếu bootstrapping được thực hiện bằng CDK phiên bản v2.148.1 hoặc cũ hơn, đòi hỏi họ phải cập nhật CDK lên phiên bản mới nhất và chạy lại lệnh bootstrap. Ngoài ra, người dùng có tùy chọn áp dụng điều kiện chính sách IAM cho vai trò CDK FilePublishingRole.

Những phát hiện này một lần nữa kêu gọi phải giữ bí mật ID tài khoản AWS, xác định chính sách IAM có phạm vi và tránh đặt tên dễ đoán cho các thùng S3.

"Thay vào đó, hãy tạo các giá trị băm duy nhất hoặc mã định danh ngẫu nhiên cho mỗi vùng và tài khoản, sau đó kết hợp chúng vào tên thùng S3 của bạn", Aqua kết luận. "Chiến lược này giúp bảo vệ chống lại những kẻ tấn công chiếm đoạt thùng của bạn trước".

Việc tiết lộ này được đưa ra sau khi Symantec thuộc sở hữu của Broadcom phát hiện ra một số ứng dụng Android và iOS đã mã hóa cứng và không mã hóa thông tin đăng nhập dịch vụ đám mây cho AWS và Microsoft Azure Blob Storage, khiến dữ liệu người dùng gặp rủi ro.

Một số ứng dụng vi phạm bao gồm Pic Stitch: Collage Maker, Crumbl, Eureka: Earn Money for Surveys, Videoshop - Video Editor, Meru Cabs, Sulekha Business và ReSound Tinnitus Relief.

Các nhà nghiên cứu bảo mật Yuanjing Guo và Tommy Dong cho biết : "Thực hành nguy hiểm này có nghĩa là bất kỳ ai có quyền truy cập vào mã nhị phân hoặc mã nguồn của ứng dụng đều có khả năng trích xuất những thông tin đăng nhập này và sử dụng sai mục đích để thao túng hoặc đánh cắp dữ liệu, dẫn đến vi phạm bảo mật nghiêm trọng".