ai đó có thể hack vào s3 của tôi với nhóm AWS-cognito-nhận dạng-poolID không được mã hóa?


8

Đầu tiên tôi đã được mã hóa aws "accessKey" và "securityKey" trong tệp JS phía máy khách, nhưng nó rất không an toàn nên tôi đã đọc về "aws-cognito" và triển khai JS mới theo cách sau:

Tuy nhiên, tôi vẫn bối rối với một điều mà ai đó có thể hack vào s3 của tôi với "AWS-cognito-nhận dạng-poolID" được mã hóa cứng? Hoặc bất kỳ bước bảo mật nào khác tôi nên thực hiện ?

Cảm ơn,
Jaikey


Có vẻ như bạn đang sử dụng quyền truy cập không xác thực, có nghĩa là bất kỳ ai có id danh tính đó đều có thể tải lên.
Ninad Gaikwad

Và làm thế nào bất cứ ai cũng có thể tải lên với id danh tính?
Jaikey Sarraf

Nếu bạn đã thiết lập nó để cho phép truy cập không xác thực thì bất cứ ai cũng có thể sử dụng nó. Đó là điểm không trung thực.
Ninad Gaikwad

Câu trả lời:


3

Định nghĩa về Hack

Tôi không chắc chắn hack có nghĩa là gì trong bối cảnh câu hỏi của bạn.
Tôi giả sử rằng bạn thực sự có nghĩa là "bất kỳ ai cũng có thể làm gì đó khác với tải lên tệp" bao gồm xóa hoặc truy cập các đối tượng bên trong nhóm của bạn.

Giải pháp của bạn

Như Ninad đã đề cập ở trên, bạn có thể sử dụng phương pháp hiện tại của mình bằng cách bật "Cho phép truy cập vào danh tính không được xác thực" [1]. Sau đó, bạn sẽ cần tạo hai vai trò trong đó một vai trò dành cho "người dùng không được xác thực". Bạn có thể cấp quyền cho vai trò PutObject đó cho nhóm S3. Điều này sẽ cho phép mọi người truy cập trang của bạn để tải các đối tượng lên nhóm S3. Tôi nghĩ đó là những gì bạn dự định và nó ổn từ quan điểm bảo mật vì IdentityPoolId là một giá trị công khai (tức là không bảo mật).

Giải pháp khác

Tôi đoán, bạn không cần sử dụng Amazon Cognito để đạt được những gì bạn muốn. Có lẽ đủ để thêm chính sách nhóm vào S3, cấp quyền cho PutObject cho mọi người.

Điều này có an toàn không?

Tuy nhiên, tôi không khuyến nghị cho phép truy cập ghi công khai trực tiếp vào nhóm S3 của bạn.
Nếu ai đó lạm dụng trang web của bạn bằng cách spam hình thức tải lên của bạn, bạn sẽ phải chịu phí S3 cho các hoạt động và lưu trữ dữ liệu.

Sẽ là một cách tiếp cận tốt hơn để gửi dữ liệu qua Amazon CloudFront và áp dụng WAF với các quy tắc dựa trên tỷ lệ [2] hoặc triển khai dịch vụ giới hạn tỷ lệ tùy chỉnh trước khi tải lên S3 của bạn. Điều này sẽ đảm bảo rằng bạn có thể phản ứng thích hợp khi có hoạt động độc hại.

Người giới thiệu

[1] https://docs.aws.amazon.com/cognito/latest/developerguide/identity-pools.html
[2] https://aws.amazon.com/about-aws/whats-new/2019/08 / thấp hơn ngưỡng-cho-aws-waf-tỷ lệ dựa trên quy tắc /


Xin chào, cảm ơn, vì tôi đã vô hiệu hóa quyền truy cập đọc / ghi công khai trực tiếp vào nhóm S3. Ngoài ra chúng tôi sử dụng WAF. nhưng tôi muốn cho phép bất kỳ người dùng nào tải lên CV của mình, cũng xóa hoặc thay đổi thành S3, nhưng không có đăng ký của anh ta trên trang web của tôi. Bây giờ tôi tạo vai trò IAM và tạo thông tin truy cập có thể nhìn thấy ở phía máy khách, điều này không an toàn vì bất kỳ hacker nào cũng có thể sử dụng thông tin này trong AWS-CLI và thực hiện tất cả hành động: đọc, viết, xóa. Vì vậy, chúng tôi sử dụng AWS-cognito, chúng tôi cũng đã bật CORS trên s3 chỉ dành riêng cho miền của tôi và bây giờ câu hỏi của tôi bắt đầu là tôi có an toàn không?
Jaikey Sarraf

2

Có, s3 xô an toàn nếu bạn đang sử dụng thông qua "AWS-Cognito-Identity-Pool" ở phía máy khách, cũng cho phép CORS chỉ cho phép hành động từ tên miền cụ thể đảm bảo nếu ai đó thử tải lên trực tiếp hoặc danh sách xô, sẽ nhận được "quyền truy cập" phủ định".


Vâng, đó là sự thật, bảo mật chỉ là một sự hài lòng trong thực tế, chúng tôi đã làm tốt nhất có thể. Cá nhân tôi cũng đã thử đặt thông tin xác thực vào tập lệnh aws khác nhưng chỉ hoạt động khi tôi tải chúng lên cho phép tên miền khác không hoạt động
Jaikey Sarraf

0

Ngoài ra, hãy đảm bảo rằng bạn đã đặt thông tin đăng nhập r / w của tệp truy cập được mã hóa cứng để nó chỉ có thể được đọc bởi nút cục bộ và không ai khác. Nhân tiện, câu trả lời luôn luôn là có, vấn đề chỉ là ai đó sẵn sàng dấn thân vào "hack". Thực hiện theo những gì mọi người nói ở đây, và bạn được an toàn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.