漏洞描述

OpenSSL是一款開放源碼的SSL實現,用來實現網絡通信的高強度加密。漏洞與OpenSSLTLS/DTLS傳輸層安全協議heartbeat擴展組件(RFC6520)相關,因此漏洞又被稱為“heartbleed bug”(中文名稱:“心臟出血”漏洞)。CNVD測試結果表明,該漏洞無需任何特權信息或身份驗證,就可以獲得X.509證書的私鑰、用戶名與密碼、cookies等信息,進一步可直接從服務提供商和用戶通訊中竊取聊天工具消息、電子郵件以及重要的商業文檔和通信等私密數據。


漏洞相關信息:

OpenSSL漏洞

涉及產品

  CNVD對該漏洞的綜合評級為“高危”。受該漏洞影響的產品包括:OpenSSL 1.0.1-1.0.1f版本。目前,根據WOOYUN網站以及相關白帽子的測試結果,一些大型互聯網企業的網站服務器受到影響。由于OpenSSL還會應用到一些VPN、郵件、即時聊天等類型的服務器上,因此對服務提供商以及用戶造成的威脅范圍將會進一步擴大。互聯網上已經出現了針對該漏洞的攻擊利用代碼,預計在近期針對

該漏洞的攻擊將呈現激增趨勢。

  這個函數的后面進行了以下工作:

  unsigned char *buffer, *bp;

  int r;

  /* Allocate memory for the response, size is 1 byte

  * message type, plus 2 bytes payload length, plus

  * payload, plus padding

  */

  buffer = OPENSSL_malloc(1+2+payload+padding);

  bp = buffer;

  所以程序將分配一段由訪問者指定大小的內存區域,這段內存區域最大為 (65535+1+2+16) 個字節。變量bp是用來訪問這段內存區域的指針。

  /* Enter response type, length and copy payload */

  *bp++ = TLS1_HB_RESPONSE;

  s2n(payload, bp);

  memcpy(bp, pl, payload);

  宏s2n與宏n2s干的事情正好相反:s2n讀入一個16 bit長的值,然后將它存成雙字節值,所以s2n會將與請求的心跳包載荷長度相同的長度值存入變量payload。然后程序從pl處開始復制payload個字節到新分配的bp數組中,pl指向了用戶提供的心跳包數據。

最后,程序將所有數據發回給用戶。

  如果用戶并沒有在心跳包中提供足夠多的數據,會導致什么問題?比如pl指向的數據實際上只有一個字節,那么memcpy會把

這條SSLv3記錄之后的數據,無論那些數據是什么都復制出來。


處置建議

 “心血”漏洞僅存在于支持心跳擴展到OpenSSL版本中。通俗地講,這是一個特定的C語言代碼實現方面的bug,代碼實現沒有檢查用戶提交的心跳請求包的有效載荷(payload)長度,從而導致SSL服務器端響應一個最長為64K的內存數據,可能包含敏感信息,導致泄密。

  TLS心跳由一個請求包組成,其中包括有效載荷(payload),通信的另一方將讀取這個包,并發送一個響應,其中包含同樣的載荷。在處理心跳請求的代碼中,載荷大小是從攻擊者可能控制的包中讀取的:

  /* Read type and payload length first */

  hbtype = *p++;

  n2s(p, payload);

  pl = p;

  宏n2s從指針p指向的數組中取出前兩個字節,并把它們存入變量payload中——這實際上是心跳包載荷的長度域(length)。注意程序并沒有檢查這條SSLv3記錄的實際長度。變量pl則指向由訪問者提供的心跳包數據。

bug出在載荷長度沒有根據請求包的大小進行檢查。因此,memcpy()發送任意載荷長度(最大64K)加上一個小載荷,就能讀取請求存儲位置之外的任意數據。目前,OpenSSL1.0.1g已修復該漏洞。


  信安世紀公司產品現狀

  信安世紀公司NSAE應用安全網關產品或NetGate SSL VPN產品以及其它PKI類產品對外提供SSL服務的相關模塊,未使用OpenSSL開源代碼,不受此漏洞影響。

  信安世紀公司NSAE應用安全網關產品或NetGate SSL VPN產品管理設備用到的HTTPS管理頁面,使用OpenSSL開源代碼,具體使用版本與影響如下表格所示:

  產品 系統版本 管理頁面SSL使用版本 存在Bug的SSL版本 是否存在漏洞 

  NSAE NSAE 6.x.x OpenSSL 0.9.8y OpenSSL 1.0.1----1.0.1f 不存在漏洞 

  NSAE NSAE 8.x.x OpenSSL 1.0.0k OpenSSL 1.0.1----1.0.1f 不存在漏洞 

  NetGate NetGate 8.x.x OpenSSL 0.9.6a OpenSSL 1.0.1----1.0.1f 不存在漏洞 

  NetGate NetGate 9.x.x OpenSSL 1.0.0k OpenSSL 1.0.1----1.0.1f 不存在漏洞


  另外:未使用我公司產品的用戶可使用下列網站提供的工具對自身網站進行檢測:

  SSL LABS :https://www.ssllabs.com/ssltest/index.html

  HeartBleed:http://filippo.io/Heartbleed/或 http://possible.lv/tools/hb/


  參考資料:

  OpenSSL“心臟出血”漏洞原理及處理方法

  4月8日,國家信息安全漏洞共享平臺CNVD收錄了OpenSSL存在的一個內存泄露高危漏洞

  (CNVD編號:CNVD-2014-02175,對應CVE-2014-0160)。攻擊者利用漏洞可以讀取系統的內存數據,從而獲得密鑰、

  用戶賬號密碼和cookies等敏感信息,對目前各類基于OpenSSL的服務器應用安全構成嚴重的威脅。

 


聯系方式

電話:400-670-5518

微信公眾號:infosectech

黑龙江省11选5走势图图

地址 北京市西城區宣武門外大街甲1號環球財訊中心C座四層

4006705518

X

北京信安世紀科技股份有限公司·頁面版權所有:(C) 2017 [email protected] 京ICP備16060718號