2009-07-21 18 views
8

Sự thiếu phản ánh trong môi trường lưu trữ Medium Trust dường như là cause a lot of problems đối với nhiều ứng dụng web phổ biến.Nguy cơ phản ánh là gì? (Medium Trust)

  • Tại sao Phản ánhPermission bị tắt theo mặc định với Medium Trust?
  • Yếu tố phản chiếu nào có nguy cơ gây ra trong môi trường lưu trữ được chia sẻ?

Để tham khảo ngẫu nhiên, xem MSDN: How to use Medium Trust in ASP.NET 2.0

Trả lời

6

Reflection cho phép mã độc hại để kiểm tra tất cả các loại bí mật: không quá nhiều sở hữu trí tuệ (mặc dù chắc chắn, điều đó cũng vậy), nhưng dữ liệu phải riêng tư và bảo mật, như chuỗi kết nối, mật khẩu, dữ liệu tài khoản ngân hàng, v.v.

Tất nhiên, nhiều chương trình hiển thị dữ liệu này như một vấn đề thông qua các vector bị tổn thương, nhưng không có lý do gì để tăng bề mặt tấn công của ứng dụng.

Edited để mang lại một số cuộc nói chuyện lên từ nhận xét:

Có lẽ đúng là nguy cơ thực sự là không hạn chế quyền truy cập hệ thống tập tin, đó là những gì biến phản ánh vào một mối nguy hiểm thực sự. Nếu một diễn viên xấu có thể nhận được một hội đồng (hoặc một cái gì đó được biên dịch thành một hội đồng) vào thư mục ảo của bạn, bạn đang gặp rắc rối nếu họ có sự cho phép phản ánh. (Tất nhiên nếu điều này xảy ra, cũng có những vấn đề tiềm ẩn khác, nhưng điều đó không nên giảm thiểu lỗ hổng cụ thể này.)

Trong môi trường lưu trữ được chia sẻ khó ngăn chặn hơn, mặc dù nó không phải là không thể. Có lẽ nó có giá trị chéo gửi câu hỏi này đến ServerFault để xem những gì các folks tốt có thể nói.

+0

Tôi hoàn toàn không hiểu cách hoạt động của tính năng này. Ví dụ, trong một môi trường chia sẻ lưu trữ như thế nào tôi sẽ truy cập vào hội đồng của khách hàng khác? Làm thế nào tôi sẽ sử dụng sự phản chiếu để kiểm tra nội dung của các thuộc tính và phương thức riêng tư? –

+2

Nếu bạn (ví dụ) chạy một dự án trang web, chứ không phải dự án ứng dụng web và bạn cung cấp cho người dùng cách tải tệp lên trang web của bạn, họ có thể tải lên trang ASPX được biên dịch khi được gọi - nếu sử dụng phản ánh để đọc trạng thái của ứng dụng của bạn, sau đó có thể là các chuỗi kết nối, v.v. có thể truy cập. Đó là một khả năng mỏng, nhưng không ai kém hơn, do đó "có thể" trong liên kết của bạn. Đừng quên rằng một số máy chủ không phải lúc nào cũng chạy môi trường tin cậy "vanilla", nhưng tùy chỉnh những tính năng nào và không có sẵn. –

+1

Ben đánh tôi với nó. Tôi sẽ thêm một điều nữa: trong môi trường lưu trữ được chia sẻ, bạn thừa kế (một số) lỗ hổng bảo mật của các ứng dụng khác đang chạy trên máy chủ của bạn, vì vậy các khách hàng đồng nghiệp của bạn thậm chí không độc hại để gây nguy hiểm cho bạn, chỉ cần cẩu thả. –

4

Tôi chưa bao giờ thấy bất cứ điều gì 'xấu' mà người dùng sẽ có thể làm sử dụng phản ánh. Mọi người hoảng sợ vì bạn có thể gọi các phương thức được đánh dấu là riêng tư hoặc được bảo vệ, nhưng từ những gì tôi đã thấy, không ai trong số họ áp đặt bất kỳ rủi ro thực sự nào.

Nhiều khả năng, đó là ít nhất một phần một kỹ thuật bán hàng để giúp bạn có bao ra cho (bán) tận tâm lưu trữ :)

3

tôi thấy bài viết MSDN sau đây về chủ đề này:

Security Considerations for Reflection

Jeff trả lời bài viết này tiếng vang của:

Reflection cung cấp khả năng có được thông tin về các loại và thành viên và để truy cập các thành viên. Truy cập các thành viên không công khai có thể tạo ra một nguy cơ bảo mật. Do đó, mã truy cập các thành viên không công khai yêu cầu ReflectionPermission với các cờ thích hợp .

Tuy nhiên, tôi không tin rằng rủi ro này có thể được khai thác giữa các tài khoản lưu trữ của khách hàng. Nó xuất hiện điều này sẽ chỉ gây ra một nguy cơ cá nhân. Ví dụ, sử dụng sự phản chiếu tôi có thể khám phá các hội đồng của riêng tôi trong môi trường lưu trữ của tôi.Tuy nhiên, các khách hàng khác không thể sử dụng sự phản chiếu để khám phá hội đồng của tôi. Họ chỉ có thể khám phá các hội đồng của họ.

Điều này có thể gây ra sự cố cho một ứng dụng web đơn lẻ liên quan đến nhiều nhóm phát triển. Một nhóm phát triển có thể sử dụng sự phản chiếu để khám phá các hội đồng của nhóm phát triển khác.

Tuy nhiên, đây là một trường hợp hiếm hoi đối với môi trường lưu trữ được chia sẻ. Hầu hết các trang web được chia sẻ lưu trữ liên quan đến một nhóm rất nhỏ có toàn quyền truy cập vào tất cả mã. Nói cách khác, không có bí mật. Miễn là hội đồng được an toàn từ các khách hàng chia sẻ lưu trữ khác, thì đó không phải là vấn đề.

Việc kích hoạt phản ánh không nên đặt ra bất kỳ rủi ro cho các ứng dụng web hosting chia sẻ nhất:

<IPermission class="ReflectionPermission" version="1" Flags="RestrictedMemberAccess"/> 

Xin vui lòng sửa cho tôi nếu tôi sai.

+0

Nếu quyền truy cập vào ứng dụng web bị xâm phạm, thì có thể sử dụng sự phản chiếu để khám phá các chuỗi kết nối cơ sở dữ liệu và các thông tin nhạy cảm khác. Đó là một sự đánh đổi. Làm thế nào quan trọng là một ứng dụng được bảo vệ khỏi chính nó? –

+0

phải trung thực điều này khiến tôi có thêm câu hỏi. Mặc dù +1 bạn đã xác nhận rằng có những mối lo ngại về bảo mật có tham chiếu tốt. Tôi trân trọng không đồng ý với bạn về kịch bản tấn công, mặc dù tôi không có cái nào tốt hơn nên tôi không thể nói chuyện với nhau. – rook

Các vấn đề liên quan