Tấn công Mật mã 'đệm dẫn hướng' ảnh hưởng hành triệu ứng dụng ASP.NET

Thứ năm - 23/09/2010 06:26

'PaddingOracle' Crypto Attack Affects Millions of ASP.NET Apps

September 13, 2010,7:58AM, by Dennis Fisher

Theo:http://threatpost.com/en_us/blogs/new-crypto-attack-affects-millions-aspnet-apps-091310

Bài được đưa lênInternet ngày: 13/09/2010

Lờingười dịch: Lỗi về mật mã của ASP.NET, mà có thể“hoàn toàn phá hủy an ninh của ASP.NET” ảnh hưởng tớihàng triệu ứng dụng web trong thế giới các dịch vụtài chính và các công ty, và các ứng dụng như ngân hàngtrực tuyến và thương mại điện tử mà những kẻ tấncông có thể có được những chìa khóa bí mật củangười sử dụng, mà “Nếu kẻ tấn công may mắn, thìanh ta có thể có được bất kỳ website ASP.NET nào trongvài giây”.

2 nhà nghiên cứu anninh đã triển khai một cuộc tấn công mà khai thác cáchmà các ứng dụng Web của ASP.NET điều khiển các cookiesphiên được mã hóa, một điểm yếu mà có thể cho phépmột kẻ tấn công thâm nhập vào các phiên sử dụng cácdịch vụ ngân hàng trực tuyến và gây ra những vấn đềnghiêm trọng khác trong các ứng dụng bị tổn thương.Các chuyên gia nói rằng lỗi này, mà sẽ được thảoluận chi tiết tại hội nghị Ekoparty tại Argentina tuầnnày, ảnh hưởng tới hàng triệu ứng dụng web.

Vấn đề này nằm ởcách mà ASP.NET, khung Web phổ biến của Microsoft, triểnkhai thuật toán mã hóa AES để bảo vệ tính toàn vẹncủa các cookies mà những ứng dụng này tạo ra để lưutrữ các thông tin khi các phiên của người sử dụng đangdiễn ra. Một lỗi chung là giả thiết rằng mã hóa bảovệ các cookies khỏi sự thâm nhập sao cho nếu bất kỳdữ liệu nào tạo ra các lỗi trong các triển khai cài đặtmật mã, và khi mật mã bị phá, thì nó thường tàn phákhủng khiếp.

“Chúngtôi đã biết ASP.NET từng bị tổn thương đối với cuộctấn công của chúng tôi vài tháng trước đó, nhưng chúngtôi đã không biết nó nghiêm trọng như thế nào cho tớimột vài tuần trước. Hóa ra là sự tổn thương trongASP.NET là sống còn nhất trong số những khung công việckhác. Ngắn gọn, nó hoàn toàn phá hủy an ninh củaASP.NET”, Thái Dương, người cùng với Juliano Rizzo,đã tiến hành cuộc tấn công chống lại ASP.NET, nói.

Hai người này đãphát triển một công cụ đặc biệt để sử dụng trongcuộc tấn công này, gọi là Công cụ khai thác đệm dẫnhướng. Cuộc tấn công của họ là một ứng dụng vềmột công nghệ đã được biết tới ít nhất là từ năm2002, khi Serge Vaudenay từng đã trình bày một tài liệuvới chủ đề này tại hội nghị mật mã của châu ÂuEurocrypt.

Apair of security researchers have implemented an attack that exploitsthe way that ASP.NET Web applications handle encrypted sessioncookies, a weakness that could enable an attacker to hijack users'online banking sessions and cause other severe problems in vulnerableapplications. Experts say that the bug, which will be discussed indetail at the Ekopartyconference in Argentina this week, affects millions of Webapplications.

Theproblem lies in the way that ASP.NET, Microsoft's popular Webframework, implements the AES encryption algorithm to protect theintegrity of the cookies these applications generate to storeinformation during user sessions. A common mistake is to assume thatencryption protects the cookies f-rom tampering so that if any data inthe cookie is modified, the cookie will not decrypt correctly.However, there are a lot of ways to make mistakes in cryptoimplementations, and when crypto breaks, it usually breaks badly.

"Weknew ASP.NET was vulnerable to our attack several months ago, but wedidn't know how serious it is until a couple of weeks ago. It turnsout that the vulnerability in ASP.NET is the most critical amongstother frameworks. In short, it totally destroys ASP.NET security,"said Thai Duong, who along with Juliano Rizzo, developed the attackagainst ASP.NET.

Thepair have developed a tool specifically for use in this attack,called the PaddingOracle Exploit Tool. Their attack is an application of atechnique that's been known since at least 2002, when SergeVaudenay presented a paper at on the topic at Eurocrypt.

Trong trường hợpnày, triển khai cài đặt của ASP.NET về AES có một lỗitheo cách mà nó làm việc với các lỗi khi dữ liệu đượcmã hóa trong một cookie bị sửa. Nếu văn bản mật mã bịthay đổi, thì ứng dụng bị tổn thương sẽ tạo ra mộtlỗi, mà sẽ trao cho kẻ tấn công một vài thông tin vềcách mà quá trình giải mã của ứng dụng làm việc.Nhiều lỗi hơn có nghĩa là nhiều dữ liệu hơn. Và nhìnvào đủ các lỗi đó có thể trao cho kẻ tấn công đủdữ liệu để tạo ra số lượng các byte mà anh ta cầnđể đoán và tìm ra khóa mật mã đủ nhỏ mà điều nàythực sự là có khả năng.

Cuộc tấn công nàycho phép một số người giải mã các cookies bị độtnhập. Kẻ tấn công cũng có thể có khả năng tạo ra cácvé xác chứng thực cho một ứng dụng web bị tổn thươngvà lợi dụng các qui trình khác mà chúng sử dụng giaodiện lập trình ứng dụng API mật mã của ứng dụng.Rizzovà Dương đã làm công việc tương tự đầu năm nay trênJavaServer Faces và các khung công việc Web khác mà đã đượcthể hiện tại hội nghị Mũ Đen châu Âu (Black HatEurope). Họ đã tiếp tục nghiên cứu của họ và thấyrằng ASP.NET đã bị tổn thương với dạng y hệt cáccuộc tấn công. Dạng tấn công được biết tới như mộtcuộc tấn công đệm dẫn hướng và nó dựa vào ứngdụng web sử dụng chế độ chuỗi khối mật mã cho việcmã hóa của mình, mà nhiều ứng dụng sử dụng.

Mật mã khối cầncác thông điệp mà chúng giải mã sẽ bị bẻ gãy thànhcác khối với các kích cỡ khối khác nhau được chỉđịnh, 8 byte chẳng hạn. Vì các thông điệp luôn khôngkhớp với các kích cỡ 8 byte, thì chúng thường đòi hỏiđệm để đạt được kích thước theo chỉ định. Cuộctấn công mà Rizzo và Dương đã triển khai chống lại cácứng dụng của ASP.NET mà triển khai mật mã trên site Webcó một dẫn hướng mà, khi gửi các văn bản mật mã, sẽkhông chỉ giải mã văn bản mà còn trao cho người gửimột thông điệp về việc liệu việc đệm đó trong vănbản mật mã có hiệu lực hay không.

Inthis case, ASP.NET's implementation of AES has a bug in the way thatit deals with errors when the encrypted data in a cookie has beenmodified. If the ciphertext has been changed, the vulnerableapplication will generate an error, which will give an attacker someinformation about the way that the application's decryption processworks. More errors means more data. And looking at enough of thoseerrors can give the attacker enough data to make the number of bytesthat he needs to guess to find the encryption key small enough thatit's actually possible.

Theattack allows someone to decrypt sniffed cookies, which could containvaluable data such as bank balances, Social Security numbers orcrypto keys. The attacker may also be able to cre-ate authenticationtickets for a vulnerable Web app and abuse other processes that usethe application's crypto API.

Rizzoand Duong did similar work earlier this year on JavaServer Faces andother Web frameworks that was presentedat Black Hat Europe. They continued their research and found thatASP.NET was vulnerable to the same kind of attack. The type of attackis known as a padding oracle attack and it relies on the Webapplication using cipher-block chaining mode for its encryption,which many apps do.
Block ciphers need the messages they decryptto be broken up into blocks that are some multiple of the specifiedblock size, eight bytes for example. As messages don't always fitinto neat eight-byte sizes, they often require padding to reach thespecified size. The attack that Rizzo and Duong have implementedagainst ASP.NET apps requires that the crypto implementation on theWeb site have an oracle that, when sent ciphertext, will not onlydecrypt the text but give the sender a message about whether thepadding in the ciphertext is valid.

Nếu cái đệm làkhông hợp lệ, thì thông điệp lỗi mà người gửi đicó được sẽ cho anh ta một số thông tin về cách thứcmà qui trình giải mã của site làm việc. Rizzo và Dươngnói rằng cuộc tấn công dựa 100% vào thời gian trong cácứng dụng ASP.NET, dù thời gian để thành công có thểkhác nhau xa. Việc hạn chế thực tế những tài nguyêntrong cuộc tấn công này là tốc độ của máy chủ và độrộng băng thông sẵn sàng.

Hơn nữa, một kẻtấn công có thể thực thi kỹ thuật này mà không cầnchờ đợi các thông điệp lỗi bằng việc sử dụngthông tin có được thông qua những rò rỉ của các kênhphụ.

“Đánglưu ý là cuộc tấn công là 100% tin cậy được, nghĩa làmột người có thể chắc chắn rằng họ phát động cuộctấn công, họ có thể khai thác được mục tiêu. Đó chỉlà vấn đề về thời gian. Nếu kẻ tấn công may mắn,thì anh ta có thể có được bất kỳ website ASP.NET nàotrong vài giây. Thời gian trung bình cho cuộc tấn công hoàntất là 30 phút. Thời gian dài nhất từng thực hiện íthơn 50 phút”, Dương nói.

ASP.NETlà một khung công việc Web phổ biến khổng lồ, và Rizzovà Dương đã ước tính rằng 25% các ứng dụng trựctuyến được xây dựng có sử dụng ASP.NET. Tuy nhiên, consố đó là cao hơn nhiều thế giới các dịch vụ tàichính và các công ty, và các ứng dụng như ngân hàng trựctuyến và thương mại điện tử rõ ràng có thể là nhữngmục tiêu đầu tiên cho cuộc tấn công này.

Dù những cuộc tấncông bằng mật mã có thể thực sự là phức tạp, thìRizzo nói rằng kỹ thuật này có thể được triển khaibằng một kẻ tấn công với kỹ năng vừa phải.

“Giai đoạn đầucủa cuộc tấn công động chạm tới vài ngàn yêu cầu,nhưng một khi nó thành công và kẻ tấn công có đượccác chìa khóa an ninh, thì toàn bộ là vụng trộm. Tri thứcvề mật mã được đòi hỏi ở đây là rất cơ bản”,Rizzo nói.

Ifthe padding is invalid, the error message that the sender gets willgive him some information about the way that the site's decryptionprocess works. Rizzo and Duong said that the attack is reliable 100percent of the time on ASP.NET applications, although the time tosuccess can vary widely. The real limiting resources in this attackare the speed of the server and the bandwidth available.

Inaddition, an attacker could execute this technique without waitingfor the error messages by using information gained throughside-channel leakages.

"It'sworth noting that the attack is 100% reliable, i.e. one can be surethat once they run the attack, they can exploit the target. It's justa matter of time. If the attacker is lucky, then he can own anyASP.NET website in seconds. The average time for the attack tocomplete is 30 minutes. The longest time it ever takes is less than50 minutes," Duong said.

ASP.NETis a hugely popular Web framework, and Rizzo and Duong estimated that25 percent of the applications online are built using ASP.NET.However, that number is far higher in the corporate and financialservices worlds, and apps such as online banking and e-commerce wouldobviously be prime targets for this attack.

Althoughcrypto attacks can be quite complex, Rizzo said that this techniquecan be carried out by a moderately skilled attacker.

"Thefirst stage of the attack takes a few thousand requests, but once itsucceeds and the attacker gets the secret keys, it's totallystealthy.The cryptographic knowledge required is very basic,"Rizzo said.

Dịch tài liệu: Lê Trung Nghĩa

letrungnghia.foss@gmail.com

Tổng số điểm của bài viết là: 0 trong 0 đánh giá

Click để đánh giá bài viết

  Ý kiến bạn đọc

Những tin mới hơn

Những tin cũ hơn

Về Blog này

Blog này được chuyển đổi từ http://blog.yahoo.com/letrungnghia trên Yahoo Blog sang sử dụng NukeViet sau khi Yahoo Blog đóng cửa tại Việt Nam ngày 17/01/2013.Kể từ ngày 07/02/2013, thông tin trên Blog được cập nhật tiếp tục trở lại với sự hỗ trợ kỹ thuật và đặt chỗ hosting của nhóm phát triển...

Bài đọc nhiều nhất trong năm
Thăm dò ý kiến

Bạn quan tâm gì nhất ở mã nguồn mở?

Thống kê truy cập
  • Đang truy cập173
  • Máy chủ tìm kiếm10
  • Khách viếng thăm163
  • Hôm nay14,262
  • Tháng hiện tại463,041
  • Tổng lượt truy cập36,521,634
Bạn đã không sử dụng Site, Bấm vào đây để duy trì trạng thái đăng nhập. Thời gian chờ: 60 giây