2010-09-29 35 views
10

Microsoft phát hành out of band release to fix the security flaw của họ trong ASP.NET ngày hôm qua.Làm thế nào là cuộc tấn công oracle padding trên ASP.NET cố định?

Microsoft đã sử dụng phương pháp nào để kết thúc khả năng tồn tại của véc tơ này?

+3

Tôi nghĩ đó là băng keo. – FrustratedWithFormsDesigner

+2

sớm hay muộn ai đó sẽ so sánh cả hai phiên bản của System.Web.Extensions.dll sử dụng NDepend hoặc Reflector. –

+0

@Mauricio, triển khai AES không được quản lý mã vì vậy tôi không nghĩ Reflector hoặc NDepend sẽ giúp nhiều :-) Nếu đó là một bản sửa lỗi được quản lý thuần túy thì sẽ không có phiên bản vá cho mọi phiên bản Windows, loại CPU có thể tưởng tượng được. .. –

Trả lời

14

Một tóm tắt tuyệt vời trong những thay đổi xuất phát từ http://musingmarc.blogspot.com/2010/09/ms10-070-post-mortem-analysis-of-patch.html

  • Đừng bị rò rỉ thông tin ngoại lệ - Điều này ngăn cản khai thác từ nhìn thấy những gì là bị hỏng.
  • Không đoản mạch trên các kiểm tra đệm (mất cùng một khoảng thời gian để đệm đúng các câu đệm đã bị hỏng) - Điều này ngăn không cho việc khai thác thấy sự khác biệt về thời gian cho việc đệm sai.
  • Đừng quá cầu kỳ về việc bắt ngoại lệ trong IHttpHandler.ProcessRequest - Điều này ngăn cản việc khai thác khi thấy rằng bạn đã bắt được một loại ngoại lệ (CryptographicException) thay vì tất cả ngoại lệ.
  • Chuyển từ vectơ khởi chạy dựa trên Hash sang IV ngẫu nhiên - Điều này ngăn việc khai thác sử dụng mối quan hệ giữa dữ liệu và băm để giải mã nhanh hơn.
  • Cho phép tương thích ngược - Trong trường hợp điều này vi phạm điều gì đó, cho phép hành vi mới được hoàn nguyên một phần.
  • Khi thực hiện đánh giá mã, hãy thay đổi để làm rõ rằng bạn đã xem xét các tùy chọn mới.
+0

+1 thông tin chi tiết đẹp, thêm câu trả lời về những gì tôi coi là bản sửa lỗi chính. – eglasius

+1

Quá tệ Tôi không nghĩ đến việc xem ở đây và đăng câu trả lời blog của tôi trước :) – IDisposable

+0

@IDisposable bạn nên ...Tôi thích upvote tác giả – eglasius

3

Chính: ký bất kỳ dữ liệu mã hóa nào được gửi tới trình duyệt. Điều này ngăn cản sự lộn xộn với các giá trị như cuộc tấn công đã làm để có được thông tin về padding hợp lệ và không hợp lệ tức là vì chữ ký sẽ không khớp trong tất cả các trường hợp đó.

Điều quan trọng cần lưu ý là lỗ trong số webresource and scriptresource cho phép truy xuất tệp không được xảy ra. Mã hóa đơn giản một mình không có nghĩa là giả mạo bằng chứng. Nói cách khác, nó không phải là một sự giám sát của một kịch bản tiên tiến như phần còn lại của cuộc tấn công oracle padding (mà vẫn dựa trên cùng một thực tế, gửi lại dữ liệu được mã hóa sửa đổi cho các ứng dụng không có bảo vệ bằng chứng giả mạo trên máy chủ). Bên cạnh sửa chữa chính ở trên, những điều mong đợi như cố gắng giấu thêm các kênh bên mã hóa và đảm bảo nó không phá vỡ các tính năng khác dựa vào các cuộc gọi mã hóa giống nhau (như thành viên asp.net).

0

Lỗ hổng liên quan đến các lỗi được giới thiệu bởi CBC Padding. Lý thuyết đầy đủ đằng sau cuộc tấn công có thể được tìm thấy here. Tuy nhiên, trước tiên bạn phải đọc trên block cipher modes of operation.

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