Thứ Tư, 17 tháng 3, 2010

Windows: Mới, được cải tiến và an ninh hơn bao giờ hết

Windows: New, improved & more insecure than ever

Bảo vệ thực thi dữ liệu, một tính năng an ninh chủ yếu của Windows, đã vừa bị phá.

Data execution prevention, a major Windows security feature, has just been busted.

March 4, 2010, 02:02 PM —

Theo: http://www.itworld.com/endpoint-security/98992/windows-new-improved-more-insecure-ever

Bài được đưa lên Internet ngày: 04/03/2010

Lời người dịch: Một kỹ sư của Google lại vừa phá được công nghệ bảo vệ thực thi dữ liệu DEP của Microsoft Windows. Và với việc này, anh ta nói: “Ngắn gọn, nếu bạn chạy Windows 32 bit hoặc bất kỳ dạng nào như XP, Vista, 7, Server 2008 - thì bạn có thể hướng tới ngay cả việc còn có thể bị tổn thương nhiều hơn đối với các cuộc tấn công. Liệu tôi đã nhắc sau này rằng tôi có xu hướng sẽ làm việc hầu hết trên các máy tính Linux của tôi chưa nhỉ? Vâng, tôi thế đấy. Khai thác này mở ra một lỗ hổng mới và khổng lồ trong sự phòng vệ đã là dễ bị tổn thương của Windows”. Có lẽ, sẽ không bao giờ có thể dừng việc nói về các lỗ hổng an ninh của Windows được, trừ phi tất cả mọi người vứt nó đi để sử dụng những thứ khác. Đã tới lúc, tất cả các phương tiện thông tin đại chúng phải nói về vấn đề này, để tránh cho tất cả mọi người không phải “ăn đòn” về những thứ như thế này.

Thành thật với Trời là tôi không loanh quanh thử nhặt Windows vì những vấn đề an ninh của nó, mà những tin tặc tiếp tục tìm thấy những cách thức mới để đột nhập vào nó. Và, lần này, họ đã thấy một cánh cửa con. Berend - Jan Wever, tên hiệu là “Đường chân trời”, một kỹ sư an ninh của Google đã phá vỡ DEP (bảo vệ thực thi dữ liệu), một trong ít những cải tiến an ninh đáng kể mà Microsoft đã làm cho Windows.

DEP, mà đã được bổ sung cho Windows vào tháng 08/2004 vào XP SP2. Nó đã giải quyết kỹ thuật thâm nhập rất phổ biến của việc tràn bộ nhớ tạm. Trong một cuộc tấn công làm tràn bộ nhớ tạm, một chương trình độc hại cố gắng viết đè lên bộ nhớ tạm đó, một số lượng bộ nhớ mà một chương trình đã được phân bổ cho việc chạy mã nguồn của nó trong đó. Bằng cách làm như vậy, một sự tràn bộ nhớ sẽ ghi đè lên bộ nhớ mà có thể có hoặc không được phân bổ cho các chương trình khác. Trong cả 2 trường hợp, nó có thể sau đó sử dụng bộ nhớ bị ghi đè này cho những mục đích riêng của mình. Thường thì điều này có nghĩa là chạy phần mềm độc hại hoặc ngay cả tiếp quản luôn bản thân máy tính.

Trong khi vấn đề này không phải là duy nhất đối với Windows, thì có thể xảy ra cho hầu hết các hệ điều hành mà không có sự kiểm soát quản lý bộ nhớ một cách ngặt ngèo, ngay cả với DEP, Windows đã từng bị nằm sóng soài đối với các cuộc tấn công như vậy. Bây giờ, dù, với DEP bị phá vỡ, sẽ trở nên dễ dàng hơn cho một cuộc tấn công bộ nhớ tạm để đánh vào các nhà.

DEP làm việc, hoặc tôi đoán tôi nên nói 'đã làm việc' bây giờ, bằng việc làm việc với CPU để đánh dấu tất cả các vị trí bộ nhớ trong một quá trình như là không thực thi trừ phi nó có chứa chắc chắn mã nguồn thực thi. Bằng cách đó, ngay cả nếu đã có một sự tràn bộ nhớ tạm, thì mã nguồn độc hại cũng không thể chạy trong bất kỳ bộ nhớ nào mà nó ngẫu nhiên tìm thấy cho bản thân mình.

Honest to God I don't go around trying to pick on Windows for its security problems, but the hackers keep finding new ways to break into it. And, this time, they've found a doozie. Berend-Jan Wever, aka "Skylined," a Google security software engineer has busted DEP (data execution prevention), one of the few significant security improvements Microsoft has made to Windows.

DEP, which was added to Windows back in August 2004 in XP SP2. It addressed the very common hacking technique of buffer overflows. In a buffer overflow attack, a malicious program tries to overwrite the buffer, the amount of memory a program has been allocated for running its code in. By so doing, a buffer overflow overwrites memory that may or may not have been allocated to other programs. In either case, it can then use this overwritten memory for its own purposes. Usually this means running malware or even taking over the computer itself.

While this problem isn't unique to Windows, it can happen to almost any operating system without strict memory management controls, even with DEP, Windows has been prone to such attacks. Now, though, with DEP busted, it's become even easier for a buffer attack to strike home.

DEP works, or I guess I should say 'worked' now, by working with the CPU to mark all memory locations in a process as non-executable unless it explicitly contained executable code. That way, even if there was a buffer overflow, the malicious code couldn't run in whatever memory it happened to find itself.

Đáng tiếc, Wever, sử dụng một loại các kỹ thuật tấn công mà anh ta phá vỡ được DEP bằng cái gọi là việc phun đống. Trong việc phun đống, mã nguồn tấn công đã làm một ước đoán được giáo dục ở nơi mà bộ nhớ bị tổn thương mà có thể được sử dụng để chạy các chương trình không được chấp nhận có thể tìm thấy. Trong mẹo mới nhất của Wever, mã nguồn tấn công tìm dấu vết ở nơi tìm thấy bộ nhớ mà nó đã được cho phép bởi DEP để chạy các chương trình. Một khi được trang bị với những thông tin này, thì mã nguồn tấn công có thể sau đó cấy bản thân mình một cách thành công vào hệ thống.

Trong khi mã nguồn tấn công không sẵn sàng đi với bất kỳ script nào, như Wever chỉ ra cho bản thân mình, thì anh ta đã đưa ra đủ thông tin về cách mà thắng được DEP mà đây chỉ là vấn đề của thời gian trước khi một kẻ đột nhật có năng lực sử dụng mã nguồn để bắt đầu cho phép các cuộc tấn công mới.

Trong khi Wever không nói rằng kỹ thuật này có thể được sử dụng để đánh bại một cải tiến về an ninh đáng kể khác của Microsoft trong những năm gần đây, là ASLR (sự ngẫu nhiên về thể hiện không gian địa chỉ). Nhưng, dường như khá rõ rằng đối với tôi rằng dạng tấn công này có thể được cải tiến và sau đó được sử dụng để làm chính xác điều đó. ASLR, mà được sử dụng trong các hệ điều hành như Linux và từng trong Windows kể từ bản SP2, làm việc bằng việc ngẫu nhiên nơi mã chương trình thực thi chạy được trong bộ nhớ. Cách này một tin tặc không thể thực hiện một cuộc tấn công bằng việc giả thiết đơn giản rằng bất kỳ chương trình nào được đưa ra cũng sẽ sống trong một mảnh cụ thể nào đó của bộ nhớ.

Wever đã viết, “Tôi đưa ra điều này vì tôi cảm thấy nó giúp giải thích vì sao ASLR + DEP là không làm dịu để đặt nhiều sự tin cậy vào được, đặc biệt trong các nền tảng x86. 32 bit không cung cấp đủ không gian địa chỉ để ngẫu nhiên hóa bộ nhớ tới điểm nơi mà những địa chỉ gợi ý trở nên không thực tế, coi việc phun đống có thể cho phép một kẻ tấn công phân bổ bộ nhớ khắp một vùng không gian bộ nhớ và trong một vị trí có thể đoán trước được cao độ”.

Ngắn gọn, nếu bạn chạy Windows 32 bit hoặc bất kỳ dạng nào như XP, Vista, 7, Server 2008 - thì bạn có thể hướng tới ngay cả việc còn có thể bị tổn thương nhiều hơn đối với các cuộc tấn công. Liệu tôi đã nhắc sau này rằng tôi có xu hướng sẽ làm việc hầu hết trên các máy tính Linux của tôi chưa nhỉ? Vâng, tôi thế đấy. Khai thác này mở ra một lỗ hổng mới và khổng lồ trong sự phòng vệ đã là dễ bị tổn thương của Windows.

Unfortunately, Wever, using a variation of a hacking technique he helped perfect called heap-spraying has busted DEP. In heap-spraying, the attack code made an educated guess at where vulnerable memory that could be used to execute unapproved programs could be found. In Wever's latest trick, the attacking code looks for clues on where to find memory that's allowed by DEP to run programs. Once armed with this information, the attack code can then successfully plant itself in the system.

While the attack code isn't ready to go for any script-kiddie, as Wever himself points out, he has given enough information on how to defeat DEP that it's only a matter of time before a competent cracker uses the code to start enabling new attacks.

While Wever doesn't say that this technique can be used to defeat Microsoft's other significant security improvement in recent years, ASLR (address space layout randomization). But, it seems pretty clear to me that this kind of attack could be improved upon and then used to do exactly that. ASLR, which is used in other operating systems such as Linux and has been in Windows since SP2, works by randomizing where program's executable code is ran in memory. This way a hacker can't make an attack by simply assuming that any given program will live in a particular chunk of memory.

Wever wrote, "I am releasing this because I feel it helps explain why ASLR+DEP are not a mitigation to put a lot of faith in, especially on x86 platforms. 32-bits does not provide sufficient address space to randomize memory to the point where guessing addresses becomes impractical, considering heap spraying can allow an attacker to allocate memory across a considerable chunk of the address space and in a highly predictable location. "

In short, if you're running 32-bit Windows of any sort-XP, Vista, 7, Server 2008-you can look 'forward' to being even more vulnerable to attacks. Have I mentioned lately that I tend to do most of my desktop computing with Linux? Well, I am. This exploit opens up a new and huge hole in Windows' already vulnerable defenses.

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

letrungnghia.foss@gmail.com


Không có nhận xét nào:

Đăng nhận xét

Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.