WhiteHat News #ID:86
WhiteHat Support
-
04/06/2014
-
4
-
33 bài viết
Lỗ hổng rất nghiêm trọng “Ghost” trên hầu hết các hệ thống Linux
Lỗ hổng cực kỳ nghiêm trọng ảnh hưởng đến hầu hết bản phân phối Linux cho phép kẻ tấn công thực thi mã độc hại trên các máy chủ web, máy chủ email và các máy chủ thực hiện một số chức năng quan trọng khác.
Lỗi “Ghost” (CVE-2015-0235) tồn tại trong thư viện GNU C (glibc) và có thể “sánh ngang” với một số lỗi như Heartbleed hay Shellshock về mức độ nghiêm trọng. Mặc dù bản vá đã được phát hành 2 năm trước, nhưng đến thời điểm hiện tại hầu hết các phiên bản Linux được sử dụng trong hệ thống sản phẩm vẫn đang tồn tại lỗ hổng. Hơn nữa, việc cập nhật bản vá yêu cầu các chức năng lõi hoặc toàn bộ server bị ảnh hưởng phải được khởi động lại, dẫn đến một số hệ thống có thể vẫn bị ảnh hưởng trong thời gian tới.
Lỗi tràn bộ đệm nằm trong in __nss_hostname_digits_dots(), một hàm của glibc được gọi hởi 2 hàm gethostbyname() và gethostbyname2(). Nếu kẻ tấn công từ xa gọi thành công bất kỳ hàm nào trong số này, kẻ đó có thể thực thi mã tùy biến với quyền của user đang dùng ứng dụng. Các nhà nghiên cứu của Qualys cho biết họ đã viết mã khai khác proof-of-concept và tấn công thực thi mã từ xa thành công vào mail server Exim. Mã khai thác có thể vượt qua tất cả các cơ chế bảo vệ khai thác có sẵn trên các hệ thống 32 bit và 64 bit, bao gồm ngẫu nhiên hóa sơ đồ không gian địa chỉ (Address space layout randomization), thực thi độc lập vị trí (Position independent executions) và bảo vệ không thực thi (No-execute protections). Hãng Qualys vẫn chưa công bố mã khai thác nhưng đã lên kế hoạch công bố như một module trong Metasploit.
Glibc là thư viện mã phổ biến nhất trên Linux. Thư viện chứa nhiều hàm tiêu chuẩn được các chương trình viết bằng ngôn ngữ C và C++ sử dụng. Lỗ hổng cũng ảnh hưởng đến các chương trình Linux được viết bằng ngôn ngữ Python, Ruby và hầu hết các ngôn ngữ khác bởi các chương trình này đều hoạt động dựa trên glibc. Kết quả là, hầu hết các hệ thống Linux bị coi là có lỗ hổng trừ khi chạy hàm thay thế glibc hoặc sử dụng phiên bản glibc chứa bản cập nhật từ 2 năm trước.
Ngoài Exim, các thành phần và ứng dụng khác của Linux có nguy cơ bị ảnh hưởng bởi Ghost bao gồm server MySQL, server Secure Shell, các ứng dụng form submission, và các loại máy chủ mail khác. Danh sách bao gồm Apache, Cups, Dovecot, GnuPG, isc-dhcp, lighttpd, mariadb/mysql, nfs-utils, nginx, nodejs, openldap, openssh, postfix, proftpd, pure-ftpd, rsyslog, samba, sendmail, sysklogd, syslog-ng, tcp_wrappers, vsftpd, và xinetd.
Lỗi ảnh hưởng nghiêm trọng đến tất cả các phần mềm Linux có chức năng phân giải tên miền. Do đó, lỗi có nhiều khả năng bị khai thác không chỉ để tấn công vào máy chủ mà còn vào các ứng dụng người dùng. Lỗ hổng khiến các nhà viết bản phân phối Ubuntu, Debian và Red Hat phải cảnh giác. Hiện tại, các hãng này đã biết về lỗ hổng nhưng vẫn chưa phát hành bản vá. Admin của Linux cần theo dõi chặt chẽ các kênh chính thống để biết các bản phân phối cụ thể nào bị ảnh hưởng và bản vá đã có sẵn chưa. Admin cũng phải chuẩn bị cho việc khởi động lại máy chủ bắt buộc theo yêu cầu sau khi cài đặt bản vá.
Quản trị có thể thực hiện theo các bước sau để update bản vá cho thư viện glibc:
Bước 1: Kiểm tra phiên bản glibc đang sử dụng (Ubuntu, Debian, RHEL/CentOS) với lệnh Ldd –version
Bước 2: Cập nhật glibc nếu đang sử dụng phiên bản từ 2.17 trở xuống
- Cho Ubuntu/Debian: Apt-get update && sudo apt-get upgrade glibc
- Cho Centos/RHEL: yum update glibc
Có thể sử dụng update cho toàn bộ hệ thống (nên cân nhắc cách làm này bởi hệ thống sẽ yêu cầu phải khởi động lại server dẫn đến gián đoạn dịch vụ của server):
- Cho Ubuntu/Debian: Apt-get update && sudo apt-get upgrade
- Cho Centos/RHEL: yum update
Lỗi “Ghost” (CVE-2015-0235) tồn tại trong thư viện GNU C (glibc) và có thể “sánh ngang” với một số lỗi như Heartbleed hay Shellshock về mức độ nghiêm trọng. Mặc dù bản vá đã được phát hành 2 năm trước, nhưng đến thời điểm hiện tại hầu hết các phiên bản Linux được sử dụng trong hệ thống sản phẩm vẫn đang tồn tại lỗ hổng. Hơn nữa, việc cập nhật bản vá yêu cầu các chức năng lõi hoặc toàn bộ server bị ảnh hưởng phải được khởi động lại, dẫn đến một số hệ thống có thể vẫn bị ảnh hưởng trong thời gian tới.
Lỗi tràn bộ đệm nằm trong in __nss_hostname_digits_dots(), một hàm của glibc được gọi hởi 2 hàm gethostbyname() và gethostbyname2(). Nếu kẻ tấn công từ xa gọi thành công bất kỳ hàm nào trong số này, kẻ đó có thể thực thi mã tùy biến với quyền của user đang dùng ứng dụng. Các nhà nghiên cứu của Qualys cho biết họ đã viết mã khai khác proof-of-concept và tấn công thực thi mã từ xa thành công vào mail server Exim. Mã khai thác có thể vượt qua tất cả các cơ chế bảo vệ khai thác có sẵn trên các hệ thống 32 bit và 64 bit, bao gồm ngẫu nhiên hóa sơ đồ không gian địa chỉ (Address space layout randomization), thực thi độc lập vị trí (Position independent executions) và bảo vệ không thực thi (No-execute protections). Hãng Qualys vẫn chưa công bố mã khai thác nhưng đã lên kế hoạch công bố như một module trong Metasploit.
Glibc là thư viện mã phổ biến nhất trên Linux. Thư viện chứa nhiều hàm tiêu chuẩn được các chương trình viết bằng ngôn ngữ C và C++ sử dụng. Lỗ hổng cũng ảnh hưởng đến các chương trình Linux được viết bằng ngôn ngữ Python, Ruby và hầu hết các ngôn ngữ khác bởi các chương trình này đều hoạt động dựa trên glibc. Kết quả là, hầu hết các hệ thống Linux bị coi là có lỗ hổng trừ khi chạy hàm thay thế glibc hoặc sử dụng phiên bản glibc chứa bản cập nhật từ 2 năm trước.
Ngoài Exim, các thành phần và ứng dụng khác của Linux có nguy cơ bị ảnh hưởng bởi Ghost bao gồm server MySQL, server Secure Shell, các ứng dụng form submission, và các loại máy chủ mail khác. Danh sách bao gồm Apache, Cups, Dovecot, GnuPG, isc-dhcp, lighttpd, mariadb/mysql, nfs-utils, nginx, nodejs, openldap, openssh, postfix, proftpd, pure-ftpd, rsyslog, samba, sendmail, sysklogd, syslog-ng, tcp_wrappers, vsftpd, và xinetd.
Lỗi ảnh hưởng nghiêm trọng đến tất cả các phần mềm Linux có chức năng phân giải tên miền. Do đó, lỗi có nhiều khả năng bị khai thác không chỉ để tấn công vào máy chủ mà còn vào các ứng dụng người dùng. Lỗ hổng khiến các nhà viết bản phân phối Ubuntu, Debian và Red Hat phải cảnh giác. Hiện tại, các hãng này đã biết về lỗ hổng nhưng vẫn chưa phát hành bản vá. Admin của Linux cần theo dõi chặt chẽ các kênh chính thống để biết các bản phân phối cụ thể nào bị ảnh hưởng và bản vá đã có sẵn chưa. Admin cũng phải chuẩn bị cho việc khởi động lại máy chủ bắt buộc theo yêu cầu sau khi cài đặt bản vá.
Quản trị có thể thực hiện theo các bước sau để update bản vá cho thư viện glibc:
Bước 1: Kiểm tra phiên bản glibc đang sử dụng (Ubuntu, Debian, RHEL/CentOS) với lệnh Ldd –version
Bước 2: Cập nhật glibc nếu đang sử dụng phiên bản từ 2.17 trở xuống
- Cho Ubuntu/Debian: Apt-get update && sudo apt-get upgrade glibc
- Cho Centos/RHEL: yum update glibc
Có thể sử dụng update cho toàn bộ hệ thống (nên cân nhắc cách làm này bởi hệ thống sẽ yêu cầu phải khởi động lại server dẫn đến gián đoạn dịch vụ của server):
- Cho Ubuntu/Debian: Apt-get update && sudo apt-get upgrade
- Cho Centos/RHEL: yum update
Theo Arstechnica, Bkav