Một câu chuyện về an ninh của Linux

Thứ ba - 21/07/2009 08:06

ALinux security story

July 17, 2009 - 2:02 P.M.

StevenJ. Vaughan-Nichols

Cyber Cynic

Theo:http://blogs.computerworld.com/a_linux_security_story

Bài được đưa lênInternet ngày: 17/07/2009

Lờingười dịch: Nhưng fan hâm mộ Microsoft thường viện lýdo vì Windows có thị phần áp đảo nên Windows bị đánhnhiều và vì thế nhiều người thấy nó không an ninh antoàn. Lý lẽ đó chỉ là nguỵ biện. Tác giả bài viếtnày một lần nữa đưa ra những ví dụ về những lỗhổng an ninh của cả Windows và nhân Linux trong cùng mộtthời điểm bị phát hiện và sự thực là ngay sau đó lỗhổng của nhân Linux đã được sửa chữa, trong khi vớiWindows và các sản phẩm của Microsoft, thậm chí còn tồntại cả những lỗ hổng an ninh đã từng được pháthiện từ 7 năm trước, mà tới nay vẫn không được sửa.Bản chất của việc này, chính là vì với phần mềm tựdo nguồn mở, mã nguồn được mở cho mọi con mắt cóthể soi xét bất kỳ lúc nào, còn với thứ nguồn đóngcủa Microsoft thì không. Tác giả kết luận: “Vì thế,bây giờ, và muôn đời, FOSS (phần mềm tự do nguồn mở)sẽ vẫn là vô địch về an ninh.”

Không có thứ an ninhtuyệt đối nào như vậy. Không có chương trình nào màchúng trao cho bạn an ninh phần mềm tuyệt đối. Sau tấtcả, an ninh là một quá trình, chứ không phải là mộtsản phẩm. Quá trình an ninh của Linux, cho dù, là nổitiếng, mà nó là một lý do vì sao nó có an ninh tuyệtvời. Đây là một ví dụ.

Vào ngày 16/07, mộtlập trình viên về an ninh tên là Brad Spengler, ngườithiết kế ra một mạng nguồn mở và chương trình an ninhmáy chủ có tên là grsecurity đã phát hiện trên danh sáchthư an ninh bị lộ ra hoàn toàn mà nó đã có một lỗhổng về an ninh trong nhân Linux 2.6.30.

Phiên bản ngắn gọncủa tính có thể bị tổn thương này, theo Trung tâm BãoInternet SANS thì nó giống thế này: “Mã có thể bị tổnthương này nằm trong triển khai cài đặt của net/tun. Vềcơ bản, những gì xảy ra ở đây là việc lập trìnhviên đã khởi tạo một biến cho một giá trị nào đómà nó có thể là NULL. Lập trình viên này đã kiểm trađúng giá trị này đối với biến mới này mà một vàidòng lệnh sau đó và, nếu nó là 0 (NULL), thì anh ta chỉviệc trả ngược lại một lỗi”.

Nhưng, và từ mộtquan điểm kỹ thuật điều này là đúng nơi nó có đượcsự thú vị. Mã nguồn của lập trình viên mà làm ra điềunày xem như vô hại. Chỉ sau khi “trình biên dịch gcctham gia vào, trong khi việc tối ưu hoá mã nguồn, trìnhbiên dịch sẽ thấy rằng biến này đã được chỉ địnhvà sẽ loại bỏ một cách chính xác nếu khối (kiểm tranếu trả về là NULL) hoàn toàn từ kết quả mã đã đượcbiên dịch. Nói cách khác, trình biên dịch sẽ đưa ratính có thể bị tổn thương cho mã nhị phân, mà nó đãkhông tồn tại trong mã nguồn. Điều này sẽ làm cho nhânsẽ cố gắng đọc/ghi dữ liệu từ 0x00000000, mà một kẻtấn công có thể ánh xạ tới đất của người sử dụng– và điền này cuối cùng sẽ đem cầm chiếc máy”.

Nó đáng sợ đấychứ? Bạn thấy đấy, vì nó đang làm việc ở một mứcthấp như vậy, tính có thể bị tổn thương này có thểđược sử dụng để né tránh quanh SELinux (Linux đượctăng cường an ninh). AppArmor và các chương trình an ninhLinux khác. Vâng, thực sự, nó chẳng đáng rất sợ gìcả.

There'sno such thing as perfect security. There are no programs that giveyou absolute software security. After all, security is a process, nota product. Linux's security process, though, is outstanding, which isone reason why it has great security. Here's an example.

OnJuly 16th, a security programmer named Brad Spengler, who designs anopen-source network and server security program called grsecurityrevealed on the full disclosures security mailing list that there wasa security hole in the2.6.30 Linux kernel.

Theshort version of this vulnerability, accordingto the SANS Internet Storm Center goes like this: "Thevulnerable code is located in the net/tun implementation. Basically,what happens here is that the developer initialized a variable to acertain value that can be NULL. The developer correctly checked thevalue of this new variable couple of lines later and, if it is 0(NULL), he just returns back an error. "

But,and f-rom a technical standpoint this is whe-re it gets interesting.The programmer's code that does this looks innocent. It only afterthe gcc "compiler takes thisinto its hands, while optimizing the code, the compiler will see thatthe variable has already been assigned and will actually removethe if block (the check if tun is NULL) completely f-rom the resultingcompiled code. In other words, the compiler will introduce thevulnerability to the binary code, which didn't exist in the sourcecode. This will cause the kernel to try to read/write data f-rom0x00000000, which the attacker can map to userland - and this finallypawns the box."

Scaryisn't it? You see, because it's working at such a low level, thisvulnerability can be used to dodge around SELinux (SecurityEnhanced Linux), AppArmorand other Linux security programs. Well,actually, it's not very scary at all.

Trước tiên, đểthâm nhập một máy tính với thứ này, bạn cần sẵnsàng có một mức độ truy cập cao tới một máy tínhLinux để có khả năng sử dụng các công cụ phát triển.Sau đó, bạn cần biên dịch một cách có chủ tâm mộtchương trình từ mã nguồn với sự khai thác đã đượcviết rồi trên nó.

Điều này không giốngWindows, nơi mà máy tính của bạn thường xuyên bị lâynhiễm với các phần mềm độc hại hoặc bị thâu nạpvào trong một botnet. Bạn hầu như thực sự cần cố gắngthâm nhập vào trong máy tính Linux của bạn để phá nóvới phương pháp này.

Nhưng, nó có thể vẫnsẽ không làm được. Bạn thấy đấy, một khai tháctương tự, và còn tiềm tàng nguy hiểm hơn nhiều, bằngviệc sử dụng PulseAudio, một máy chủ âm thanh nổi tiếngcủa Windows và Linux, đã bị khai thác và, đây là phầnquan trọng, đã được sửa, trong tháng 06.

Vì thế, nếu bạnđang sử dụng phiên bản mới nhất của nhân Linux, Linux2.6.31 – rc3, thì bạn sẽ đúng mốt và dễ chịu.

Tuy nhiên, vấn đềcho tất cả thứ này không nằm trong các chi tiết kỹthuật. Nó là việc trong nguồn mở, các vấn đề sẽđược phơi bày một cách công khai và được sửa chữamột cách công khai. Ví dụ, Firefox 3.5, đã có một lỗhổng an ninh chính yếu được phát hiện vào hôm thứhai, và Firefox 3.5.1 đã sửa nó vào hôm thứ sáu.

Microsoft cũng đã cómột lỗ hổng an ninh chính yếu trong Internet Explorer đãbị phát hiện hôm thứ hai, và chưa có bản vá nào nhìnthấy cả. Nhưng, điều đó không là gì. Windows và cácchương trình khác của Microsoft có những lỗ hổng an ninhmà chúng có tuổi thọ hàng tháng, hàng năm, và vẫn cònchưa được thấy bản sửa nhìn thấy nào cho một sốtrong số chúng. Ít nhất, cuối năm ngoái, Microsoft đã sửamột lỗ hổng an ninh mà nó đã từng – tôi không đùaanh đâu – có từ 7 năm trước. Và, đừng quên rằngMyDoom, phần mềm độc hại mà nó lần đầu tiên đượcchỉ ra vào năm 2004, đã được sử dụng trên các máytính cá nhân Windows để khởi động các cuộc tấn côngDDOS (tấn công từ chối dịch vụ) vào tuần trước.

Sự thực đơn giảnlà việc tất cả các phần mềm nguồn mở, là an ninh hơnnhiều so với các người anh em sở hữu độc quyền củanó, vì nó là rất tự nhiên làm cho việc tìm ra và nhanhchóng sửa các lỗ hổng an ninh nhanh hơn rất nhiều. NếuMicrosoft đã thực sự nghiêm túc về việc đảm bảo anninh cho phần mềm của hãng, thì hãng có lẽ không cóngày Thứ Ba cho các bản Vá, hãng có thể mở mã nguồncủa hãng để những thứ tạp nhạp có thể bị loạitrừ. Tuy nhiên, điều đó sẽ không bao giờ xảy ra. Vìthế, bây giờ, và muôn đời, FOSS (phần mềm tự do nguồnmở) sẽ vẫn là vô địch về an ninh.

First,to crack a computer with this, you already need to have a high levelof access to a Linux computer to be able to use the developer tools.Next, you need to deliberately compile a program f-rom source codewith the exploit already written in it.

Thisis not like Windows whe-re the only mistake you need to make is toclick on the wrong URL or open an e-mail attachment and your computeris instantly infected with malware or enrolled in a botnet. Youreally almost need to try to break into your Linux computer tohack it with this method.

But,it's probably not going to work anyway. You see, a similarexploit, and potentially far more dangerous one, usingPulseAudio, apopular Linux and Windows audio server, was already explored and,this is the important part, fixed,in June.

So,if you're using the latest version of the Linux kernel, Linux2.6.31-rc3, you should be fine and dandy.

Thepoint of all this, however, isn't in the technical details. It's thatin open source, problems are publicly discovered and publicly fixed.Firefox 3.5, for example, had a majorsecurity hole revealed on Monday, and Firefox3.5.1 fixed it on Friday.

Microsoftalso had a majorsecurity hole in Internet Explorer revealed on Monday, andthere's no patch in sight. But, that's nothing. Windows and otherMicrosoft programs have security holes that are months, years old,and there's still not a fix in sight for some of them. At least, latelast year, Microsoft fixed one hole that had been around for--I kidyou not--sevenyears. And, let's not forget that MyDoom,malware which first showed up in 2004, was being used on Windows PCsto launch DDoS (Distributed Denial of Service) attacks last week.

Thesimple truth is that all open-source software, is much more securethan its proprietary brothers, because it's very nature makes findingand quickly fixing security holes so much faster. If Microsoft wasreally serious about securing its software, it wouldn't have PatchTuesdays, it would open up its code so the junk could be weeded out.That, however, will never happen. So, for now, and forever, FOSS(free and open-source software) will remain the security champion.

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ập48
  • Hôm nay24,099
  • Tháng hiện tại596,961
  • Tổng lượt truy cập37,398,535
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