Lỗ hổng an ninh nghiêm trọng của nhân Linux

Thứ sáu - 29/10/2010 06:27

SeriousLinux Kernel security hole

Steven J.Vaughan-Nichols, Cyber Cynic

October 21, 2010 - 4:28P.M.

Theo:http://blogs.computerworld.com/17209/serious_linux_kernel_security_hole

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

Lờingười dịch: Lại một ví dụ nữa chứng minh cho việcsửa lỗi nhanh của Linux đối với lỗi RDS mà có thểlàm cho người sử dụng không được phép có quyền rootđối với các máy chủ Linux.

Linux có những vấnđề an ninh như bất kỳ hệ điều hành nào khác. Hầuhết trong số chúng không lớn. Nhiều vấn dề nghiêmtrọng hơn đòi hỏi người sử dụng cục bộ truy cậptới nguyên nhân của bất kỳ vấn đề thực tế nào, vàngoại trừ những người sử dụng máy tính để bànLinux mà không phải là một mối lo thực sự. Dù vấn đềan ninh mới nhất của Linux với RDS (Reliable DatagramSockets) là một vấn đề thực sự.

RDS là một sáng tạocủa Oracle. Nó được sử dụng cho việc gửi đi nhiềuthông điệp từ một socket mạng duy nhất tới nhiều điểmđầu cuối. Vấn đề của RDS là việc bạn có thể sửdụng nó để giữ giao tiếp truyền thông trong nội bộquá trình (IPC) đi mà không có thời gian timeout khi một hệthống đang chạy dưới các tải rất lớn. Vì thế, bạnhầu như có thể sẽ sử dụng RDS nếu bạn đang chạymột máy chủ DBMS sống vòn hoặc một ứng dụng trong khiLAMP (Linux, Apache, MySQL PHP/Python/Perl).

VSR Security, công ty màđã thấy lỗ hổng an ninh này, báo cáo rằng nhân Linux,bắt đầu từ 2.6.30, mà là lần đầu tiên sẽ đưa vàoRDS, có thể bị tấn công bởi hầu hết bất kỳ ngườisử dụng nào theo cách mà có thể cho họ trở thành cácsiêu người sử dụng, nghĩa là root. Ngắn gọn, một sốtới qua kết nối Internet có thể, theo lý thuyết, chiếmquyền kiểm soát một máy chủ Linux. Điều này là khôngtốt.

Vấn đề cốt lõi làviệc “Các chức năng của nhân có trách nhiệm cho việcsao chép các dữ liệu giữa nhân và không gian người sửdụng không chứng minh được rằng một địa chỉ đượccung cấp cho người sử dụng thực sự trú ngụ trong phânkhúc của người sử dụng, [vì thế] một kẻ tấn côngcục bộ có thể đư ra những lời gọi chức năng củasocket bị làm giả một cách đặc biệt để viết nhữnggiá trị giả vào bộ nhớ của nhân. Bằng việc xúc táccho khả năng này, có khả năng đối với những ngườisử dụng không có quyền để có được các quyền ưutiên tới root”.

Tôi không biết liệuđiều đó sẽ có làm được thế hay không, nhưng tôi cókhả năng sử dụng mã nguồn khai thác để đánh sập máychủ SuSE Linux trong phòng thí nghiệm của tôi từ xa. Hãyđể tôi tự lặp lại: Không tốt. Những người khác đãnói rằng họ đã có khả năng sử dụng mã nguồn khaithác để mở một root shell trong Ubuntu 10.04

Linuxhas security problems like any other operating system. Most of themaren't that big a deal though. Many of the more serious ones requirelocal user access to cause any real trouble, and except for Linuxdesktop users that's not a real concern. The latest Linux securityproblem with Reliable Datagram Sockets (RDS) though is a realproblem.

RDSis an Oracle creation. It's used for sending multiple messagesf-rom a single network socket to multiple end-points. The point of RDSis that you can use it to keep inter-process communication (IPC)going without timeouts when a system is running under very heavyloads. Thus, you're most likely to be using RDS if you're running amission-critical DBMS server or a Linux, Apache, MySQL,PHP/Python/Perl (LAMP) stack application.

VSRSecurity, the company that found the security hole, reports thatLinux kernel, starting f-rom 2.6.30,which was the first to include RDS, could be attacked in byalmost any user in a way that would let them become the super-user,aka root. In short, someone coming in over an Internet connectioncould, in theory, take over a Linux server. This is Not good.

Thecore problem was that the "kernel functions responsible forcopying data between kernel and user space failed to verify that auser-provided address actually resided in the user segment, [thus] alocal attacker could issue specially crafted socket function calls towrite arbitrary values into kernel memory. By leveraging thiscapability, it is possible for unprivileged users to escalateprivileges to root."

Idon't know if it will do that, but I was able to use the exploitcode to knock out a SUSE Linux server in my lab remotely. Let merepeat myself: Not good. Others have reported that they've been ableto usethe exploit code to open up a root shell on Ubuntu 10.04.

Đối với vấn đềđánh vào hệ thống của bạn mà có RDS ở trên đó. Đặcbiệt, bạn phải có lựa chọn thiết lập cấu hình nhânCONFIG_RDS được thiết lập. Thông thường thì đó là mộtlựa chọn trong hầu hết các phát tán hơn là một mặcđịnh. Tất nhiên, nếu bạn thực sự cần RDS, bạn cóthể chạy nó trên một máy chủ DBMS hoặc máy chủ Webmang tính sống còn. Đó là chỗ mới nhất mà bạn muốnmột cuộc tấn công xảy ra. Điều kiện cần thiết kháccho một kẻ tấn công để có được máy chủ của bạnlà sẽ có không hạn chế những người sử dụng cóquyền tải lên các module gói mang tính gia đình. Điềuđó, tôi tiết phải nói, là mặc định trong nhiều pháttán.

May thay, không giốngnhư một số hệ điều hành khác mà tôi có thể gọitên, các lỗ hổng an ninh có xu hướng được bịt thựcsự nhanh trong Linux. LinusTorvalds đã đưa ra một sửa lỗi. Bạn cũng có thểbiên dịch một nhân với sửa lỗi này, mà ít người làmthế ngày nay, hoặc chờ nhà phân phối Linux dòng trên củabạn đưa ra sửa lỗi.

Trong lúc chờ đợi,tôi khuyến cáo nếu bạn chạy một máy chủ Linux, và bạnđang sử dụng RDP, thì bạn đăng nhập vào như root vàchạy lệnh sau:

echo"alias net-pf-21 off" > /etc/modprobe.d/disable-rds

Máy chủ của bạn cóthể chạy chậm hơn cho tới khi sửa lỗi cuối cùng tới,nhưng trong khi chờ đợi bạn sẽ an toàn và đó mớichính là thứ quan trọng nhất.

Forthe problem to hit your system you have to have RDS on. Specifically,you have to have the CONFIG_RDS kernel configuration option set.That's usually an option in most distributions rather than a default.Of course, if you really need RDS, you're probably running it on amission critical DBMS or Web server. That's the last place you wantan attack to land. The other necessary condition for an attacker toget at your server is for there to be no restrictions on unprivilegedusers loading packet family modules. That, I regret to say, is thedefault on many distributions.

Fortunately,unlike some other operating systems I could name, security holes tendto get fixed really quick in Linux. LinusTorvalds has already issued a fix. You can either compile a newkernel with this fix, which few people do these days, or wait foryour up-stream Linux distributor to issue the fix.

Inthe meantime, I recommend if you're running a Linux server, andyou're using RDP, that you log in as root and run the followingcommand:

echo"alias net-pf-21 off" > /etc/modprobe.d/disable-rds

Yourserver may run slower until the final fix is in, but in the meantimeyou'll be safe and that's the most important thing.

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ập103
  • Máy chủ tìm kiếm2
  • Khách viếng thăm101
  • Hôm nay21,122
  • Tháng hiện tại593,984
  • Tổng lượt truy cập37,395,558
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