Làm thế nào để bảo vệ máy chủ Linux của bạn chống lại các tổn thương GHOST

Ngày 27 tháng một năm 2015, một thư viện GNU C (glibc) dễ bị tổn thương, gọi là lỗ hổng GHOST, đã được công bố cho công chúng nói chung. Tóm lại, những lỗ hổng cho phép kẻ tấn công từ xa để kiểm soát hoàn toàn của một hệ thống bằng cách khai thác lỗi tràn bộ đệm trong các chức năng của GetHOST glibc (do đó tên). Giống như Shellshock và Heartbleed, lỗ hổng này là nghiêm trọng và ảnh hưởng đến nhiều máy chủ.

Lỗ hổng GHOST có thể được khai thác trên các hệ thống Linux sử dụng các phiên bản của Thư viện GNU C trước khi glibc-2.18. Đó là, hệ thống sử dụng một phiên bản chưa được vá của glibc từ phiên bản 2,2-2,17 có nguy cơ. Nhiều bản phân phối Linux bao gồm, nhưng không giới hạn, sau đây là khả năng dễ bị tổn thương để GHOST và cần được vá:

CentOS 6 & 7
Debian 7
Red Hat Enterprise Linux 6 & 7
Ubuntu 10.04 & 12.04
End of Life bản phân phối Linux

Nó là rất khuyến khích bạn cập nhật và khởi động lại tất cả các máy chủ Linux của bạn bị ảnh hưởng. Chúng tôi sẽ cho bạn thấy làm thế nào để kiểm tra nếu hệ thống của bạn dễ bị tổn thương, và nếu họ là, làm thế nào để cập nhật glibc để sửa chữa các tổn thương.
Kiểm tra hệ thống dễ bị tổn thương

Cách dễ nhất để kiểm tra nếu máy chủ của bạn là dễ bị tổn thương để GHOST là để kiểm tra phiên bản của glibc mà nó sử dụng. Chúng tôi sẽ chỉ cho bạn cách để làm điều này trong Ubuntu, Debian, CentOS, và RHEL.

Lưu ý rằng những chương trình được liên kết tĩnh để các glibc dễ bị tổn thương phải được biên dịch được thực hiện an toàn-kiểm tra này không bao gồm các trường hợp này, GNU Thư viện duy nhất của hệ thống C.
Ubuntu & Debian

Kiểm tra phiên bản glibc bằng cách tìm kiếm các phiên bản của ldd (trong đó sử dụng glibc) như thế này:

ldd --version

Dòng đầu tiên của đầu ra sẽ có các phiên bản của eglibc, các biến thể của glibc rằng Ubuntu  Debian sử dụng. Nó có thể trông như thế này, ví dụ như (các phiên bản được tô đậm trong ví dụ này):

dd (Ubuntu EGLIBC 2.15-0ubuntu10.7) 2.15
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.
Nếu phiên bản của eglibc phù hợp, hoặc  mới hơn, những người được liệt kê ở đây, bạn được an toàn khỏi các lỗ hổng GHOST:

     Ubuntu 12.04 LTS: 2.15-0ubuntu10.10
     Ubuntu 10.04 LTS: 2.11.1-0ubuntu7.20
     Debian 7 LTS: 2,13-38 + deb7u7

 Nếu phiên bản của eglibc là lớn tuổi hơn những người được liệt kê ở đây, hệ thống của bạn  dễ bị tổn thương để GHOST và cần được cập nhật.
 CentOS & RHEL

 Kiểm tra các phiên bản glibc với rpm:
rpm -q glibc

Đầu ra nên trông như thế này, với tên gói tiếp theo thông tin phiên bản:

glibc-2.12-1.132.el6_5.4.x86_64

Nếu phiên bản của glibc phù hợp, hoặc là mới hơn, những người được liệt kê ở đây, bạn được an toàn khỏi các lỗ hổng GHOST:

    CentOS 6: glibc-2.12-1.149.el6_6.5
    CentOS 7: glibc-2.17-55.el7_0.5
    RHEL 5: glibc-2.5-123.el5_11.1
    RHEL 6: glibc-2.12-1.149.el6_6.5
    RHEL 7: glibc-2.17-55.el7_0.5

Nếu phiên bản của glibc là lớn tuổi hơn những người được liệt kê ở đây, hệ thống của bạn là dễ bị tổn thương để GHOST và cần được cập nhật.
Fix dễ bị tổn thương

Cách đơn giản nhất để khắc phục các lỗ hổng GHOST là sử dụng trình quản lý gói mặc định của bạn để cập nhật các phiên bản của glibc. Các phần dưới đây sẽ bao gồm cập nhật glibc trên bản phân phối Linux khác nhau, bao gồm cả Ubuntu, Debian, CentOS, và Red Hat.
APT-GET: Ubuntu / Debian

Đối với phiên bản hiện đang được hỗ trợ của Ubuntu hoặc Debian, cập nhật tất cả các gói của bạn lên phiên bản mới nhất có sẵn thông qua apt-get dist-upgrade:

sudo apt-get update && sudo apt-get dist-upgrade

Sau đó, đáp ứng nhanh chóng xác nhận với y.

Khi cập nhật hoàn tất, khởi động lại máy chủ bằng lệnh này:

sudo reboot

Một khởi động lại là cần thiết vì các thư viện GNU C được sử dụng bởi nhiều ứng dụng mà phải được khởi động lại để sử dụng các thư viện được cập nhật.

Bây giờ xác minh rằng hệ thống của bạn không còn dễ bị tổn thương bằng cách làm theo các hướng dẫn trong phần trước (Kiểm tra hệ thống dễ bị tổn thương).
YUM: CentOS / RHEL

Cập nhật glibc lên phiên bản mới nhất có sẵn thông qua yum:

sudo yum update glibc

Sau đó, đáp ứng nhanh chóng xác nhận với y.

Khi cập nhật hoàn tất, khởi động lại máy chủ bằng lệnh này:

sudo reboot

Một khởi động lại là cần thiết vì các thư viện GNU C được sử dụng bởi nhiều ứng dụng mà phải được khởi động lại để sử dụng các thư viện được cập nhật.

Bây giờ xác minh rằng hệ thống của bạn không còn dễ bị tổn thương bằng cách làm theo các hướng dẫn trong phần trước (Kiểm tra hệ thống dễ bị tổn thương).
Phần kết luận

Hãy chắc chắn để cập nhật glibc trên tất cả các máy chủ Linux của bạn bị ảnh hưởng. Ngoài ra, hãy chắc chắn để giữ cho máy chủ của bạn luôn cập nhật với các bản cập nhật bảo mật mới nhất!