Linux Glibc幽靈緩沖區溢出漏洞緊急修補方案

2015-01-30 20:57:00
admin
原創
2735
摘要:幽靈漏洞是Linux glibc庫上出現的一個嚴重的安全問題,他可以讓攻擊者在不了解系統的任何情況下遠程獲取操作系統的控制權限。目前他的CVE編號為CVE-2015-0235。經點線通安全部工程師測試,目前最好的修補方法如下:
什么是glibc


glibc是GNU發布的libc庫,即c運行庫。glibc是linux系統中最底層的api,幾乎其它任何運行庫都會依賴于glibc。glibc除了封裝linux操作系統所提供的系統服務外,它本身也提供了許多其它一些必要功能服務的實現。glibc 囊括了幾乎所有的 UNIX 通行的標準。


出現了什么漏洞


代碼審計公司Qualys的研究人員在glibc庫中的__nss_hostname_digits_dots()函數中發現了一個緩沖區溢出的漏洞,這個bug可以經過 gethostbyname*()函數被本地或者遠程的觸發。應用程序主要使用gethostbyname*()函數發起DNS請求,這個函數會將主機名稱轉換為ip地址。


漏洞危害


這個漏洞造成了遠程代碼執行,攻擊者可以利用此漏洞獲取系統的完全控制權。


漏洞證明


在我們的測試中,我們編寫了一個POC,當我們發送一封精心構造的電子郵件給服務器后,我們便可以獲得遠程Linux服務器的shell,這繞過了目前在32位和64位系統的所有保護(如ASLR,PIE和NX)。


我們能做什么?


給操作系統及時打補丁。


為什么叫做GHOST?


因為他通過GetHOST函數觸發。


哪些版本和操作系統受影響?


第一個受影響的版本是GNU C庫的glibc-2.2,2000年11月10號發布。我們已找出多種可以減輕漏洞的方式。我們發現他在2013年5月21號(在glibc-2.17和glibc-2.18發布之間)已經修復。不幸的是他們不認為這是個安全漏洞。從而導致許多穩定版本和長期版本暴露在外,其中包括Debian 7 (wheezy),Red Hat Enterprise,Linux 5 & 6 & 7,CentOS 5 & 6 & 7,Ubuntu 12.04等


修復方案


升級glibc庫: 


    RHEL/CentOS : sudo yum update glibc 





    Ubuntu : sudo apt-get update ; sudo apt-get install libc6


漏洞測試方法:

下載:
 wget https://webshare.uchicago.edu/orgs/ITServices/itsec/Downloads/GHOST.c



[[email protected] ~]# cd /usr/source/
[[email protected] source]# wget https://webshare.uchicago.edu/orgs/ITServices/itsec/Downloads/GHOST.c
--2015-01-30 20:55:00--  https://webshare.uchicago.edu/orgs/ITServices/itsec/Downloads/GHOST.c
正在解析主機 webshare.uchicago.edu... 128.135.22.61
正在連接 webshare.uchicago.edu|128.135.22.61|:443... 已連接。
已發出 HTTP 請求,正在等待回應... 200 OK
長度:1046 (1.0K) [text/x-csrc]
正在保存至: “GHOST.c”

100%[==============================================================================================================================>] 1,046       --.-K/s   in 0s      

2015-01-30 20:55:02 (82.6 MB/s) - 已保存 “GHOST.c” [1046/1046])


 編譯:
 gcc -o GHOST GHOST.c


 執行:
 ./GHOST


 如果輸出:
 [[email protected] home]# ./GHOST 
not vulnerable


表示漏洞已經修復,如果僅輸出“vulnerable”字樣,表示漏洞依然存在。


[[email protected] source]# yum update glibc
Loaded plugins: fastestmirror
Determining fastest mirrors
 * base: ftp.sjtu.edu.cn
 * extras: ftp.sjtu.edu.cn
 * updates: ftp.sjtu.edu.cn
base                                                                                                                                             | 3.7 kB     00:00     
extras                                                                                                                                           | 3.4 kB     00:00     
updates                                                                                                                                          | 3.4 kB     00:00     
updates/primary_db                                                                                                                               | 2.1 MB     00:00     
Setting up Update Process
Resolving Dependencies
--> Running transaction check
---> Package glibc.i686 0:2.12-1.149.el6 will be updated
--> Processing Dependency: glibc = 2.12-1.149.el6 for package: glibc-headers-2.12-1.149.el6.x86_64
--> Processing Dependency: glibc = 2.12-1.149.el6 for package: glibc-devel-2.12-1.149.el6.x86_64
--> Processing Dependency: glibc = 2.12-1.149.el6 for package: glibc-common-2.12-1.149.el6.x86_64
---> Package glibc.x86_64 0:2.12-1.149.el6 will be updated
---> Package glibc.i686 0:2.12-1.149.el6_6.5 will be an update
---> Package glibc.x86_64 0:2.12-1.149.el6_6.5 will be an update
--> Running transaction check
---> Package glibc-common.x86_64 0:2.12-1.149.el6 will be updated
---> Package glibc-common.x86_64 0:2.12-1.149.el6_6.5 will be an update
---> Package glibc-devel.x86_64 0:2.12-1.149.el6 will be updated
---> Package glibc-devel.x86_64 0:2.12-1.149.el6_6.5 will be an update
---> Package glibc-headers.x86_64 0:2.12-1.149.el6 will be updated
---> Package glibc-headers.x86_64 0:2.12-1.149.el6_6.5 will be an update
--> Finished Dependency Resolution

Dependencies Resolved

========================================================================================================================================================================
 Package                                   Arch                               Version                                         Repository                           Size
========================================================================================================================================================================
Updating:
 glibc                                     i686                               2.12-1.149.el6_6.5                              updates                             4.3 M
 glibc                                     x86_64                             2.12-1.149.el6_6.5                              updates                             3.8 M
Updating for dependencies:
 glibc-common                              x86_64                             2.12-1.149.el6_6.5                              updates                              14 M
 glibc-devel                               x86_64                             2.12-1.149.el6_6.5                              updates                             983 k
 glibc-headers                             x86_64                             2.12-1.149.el6_6.5                              updates                             612 k

Transaction Summary
========================================================================================================================================================================
Upgrade       5 Package(s)

Total download size: 24 M
Is this ok [y/N]: y
Downloading Packages:
(1/5): glibc-2.12-1.149.el6_6.5.i686.rpm                                                                                                         | 4.3 MB     00:00     
(2/5): glibc-2.12-1.149.el6_6.5.x86_64.rpm                                                                                                       | 3.8 MB     00:00     
(3/5): glibc-common-2.12-1.149.el6_6.5.x86_64.rpm                                                                                                |  14 MB     00:01     
(4/5): glibc-devel-2.12-1.149.el6_6.5.x86_64.rpm                                                                                                 | 983 kB     00:00     
(5/5): glibc-headers-2.12-1.149.el6_6.5.x86_64.rpm                                                                                               | 612 kB     00:00     
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                    11 MB/s |  24 MB     00:02     
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Updating   : glibc-2.12-1.149.el6_6.5.x86_64                                                                                                                     1/10 
  Updating   : glibc-common-2.12-1.149.el6_6.5.x86_64                                                                                                              2/10 
  Updating   : glibc-headers-2.12-1.149.el6_6.5.x86_64                                                                                                             3/10 
  Updating   : glibc-devel-2.12-1.149.el6_6.5.x86_64                                                                                                               4/10 
  Updating   : glibc-2.12-1.149.el6_6.5.i686                                                                                                                       5/10 
  Cleanup    : glibc-devel-2.12-1.149.el6.x86_64                                                                                                                   6/10 
  Cleanup    : glibc-2.12-1.149.el6                                                                                                                                7/10 
  Cleanup    : glibc-headers-2.12-1.149.el6.x86_64                                                                                                                 8/10 
  Cleanup    : glibc-2.12-1.149.el6                                                                                                                                9/10 
  Cleanup    : glibc-common-2.12-1.149.el6.x86_64                                                                                                                 10/10 
  Verifying  : glibc-common-2.12-1.149.el6_6.5.x86_64                                                                                                              1/10 
  Verifying  : glibc-devel-2.12-1.149.el6_6.5.x86_64                                                                                                               2/10 
  Verifying  : glibc-headers-2.12-1.149.el6_6.5.x86_64                                                                                                             3/10 
  Verifying  : glibc-2.12-1.149.el6_6.5.i686                                                                                                                       4/10 
  Verifying  : glibc-2.12-1.149.el6_6.5.x86_64                                                                                                                     5/10 
  Verifying  : glibc-2.12-1.149.el6.x86_64                                                                                                                         6/10 
  Verifying  : glibc-devel-2.12-1.149.el6.x86_64                                                                                                                   7/10 
  Verifying  : glibc-common-2.12-1.149.el6.x86_64                                                                                                                  8/10 
  Verifying  : glibc-2.12-1.149.el6.i686                                                                                                                           9/10 
  Verifying  : glibc-headers-2.12-1.149.el6.x86_64                                                                                                                10/10 

Updated:
  glibc.i686 0:2.12-1.149.el6_6.5                                                   glibc.x86_64 0:2.12-1.149.el6_6.5                                                  

Dependency Updated:
  glibc-common.x86_64 0:2.12-1.149.el6_6.5               glibc-devel.x86_64 0:2.12-1.149.el6_6.5               glibc-headers.x86_64 0:2.12-1.149.el6_6.5              

Complete!

[[email protected] source]# ./GHOST 
not vulnerable


修補完成。


發表評論
評論通過審核后顯示。
文章分類
聯系我們
聯系人: 牟經理
電話: 028-85666248
傳真: 028-85666248-8008
Email: business@cd-dxt.com
QQ: 489323802
地址: 成都市二環路西一段80號金科雙楠天都2號樓
福彩3d相年富