天天看點

OpenSSL告警處理不當遠端拒絕服務漏洞 綠盟科技釋出安全威脅通告

seclists.org網站釋出了一條關于openssl遠端拒絕服務漏洞的通告。openssl在處理未定義告警資料時候存在缺陷:攻擊者可以通過重複發送ssl3_al_warning類型告警資料,使得目标程式的cpu占用率過高,導緻拒絕服務攻擊。該漏洞編号為cve-2016-8610, 由360公司gear team的石磊上報 。相關連結如下:

http://seclists.org/oss-sec/2016/q4/224 https://git.openssl.org/gitweb/?p=openssl.git;a=commit;h=6915f39e68f02ad08a635516d46e72bbf0379914 https://git.openssl.org/gitweb/?p=openssl.git;a=commit;h=22646a075e75991b4e8f5d67171e45a6aead5b48

ssl是secure sockets layer(安全套接層協定)的縮寫,可以在internet上提供秘密性傳輸,能使使用者/伺服器之間的通訊資料不被攻擊者竊聽,并且始終對伺服器進行認證和有條件的對使用者進行認證。ssl協定要求建立在可靠的傳輸層協定(tcp)之上,實作對應用層資料的加密傳輸與完整性保護。

openssl是一個強大的安全套接字層密碼開源庫,囊括主要的密碼算法、常用的密鑰和證書封裝管理功能及ssl協定,并提供豐富的應用程式供測試或其它目的使用。

大多數通過ssl/tls協定加密的網站都使用了openssl的開源軟體包。當openssl被爆出安全漏洞,影響将會涉及到所有使用openssl開源包的應用。

openssl project version = 0.9.8*

openssl project version = 1.0.1*

openssl project version <= 1.0.2h

openssl project version = 1.1.0

openssl project version >= 1.0.2i

openssl project version >= 1.1.0a

(1)通過對比openssl 1.1.0a和1.1.0兩個版本的源碼,發現該分支的漏洞修複情況如下:

OpenSSL告警處理不當遠端拒絕服務漏洞 綠盟科技釋出安全威脅通告

由上圖可見,在ssl.h檔案中增加了ssl_r_too_many_warn_alerts宏定義。

OpenSSL告警處理不當遠端拒絕服務漏洞 綠盟科技釋出安全威脅通告

在檔案record_locl.h中,增加了宏定義max_warn_alert_count,表示可連續接受的告警最大數目。

OpenSSL告警處理不當遠端拒絕服務漏洞 綠盟科技釋出安全威脅通告

在record.h檔案中,定義了變量alert_count,用來表示連續收到的告警數目。

OpenSSL告警處理不當遠端拒絕服務漏洞 綠盟科技釋出安全威脅通告

在rec_layer.d1.c檔案中,增加了對s->rlayer.alert_count的計數,當其達到max_warn_alert_count所表示的給定大小時,就會進入錯誤處理,進而避免了由于過多告警造成的cpu使用率過高的情況。

OpenSSL告警處理不當遠端拒絕服務漏洞 綠盟科技釋出安全威脅通告

上圖中的代碼修複情況同樣是增加了對s->rlayer.alert_count的計數情況,進而避免處理過多的告警資料。

OpenSSL告警處理不當遠端拒絕服務漏洞 綠盟科技釋出安全威脅通告

在檔案ssl_err.c檔案中,定義了錯誤處理時用到的字元串。

(2)通過對比openssl 1.0.2i和1.0.2h兩個版本的源碼,發現該分支的漏洞修複情況如下:

OpenSSL告警處理不當遠端拒絕服務漏洞 綠盟科技釋出安全威脅通告

在ssl.h檔案中增加了ssl_r_too_many_warn_alerts的宏定義。

OpenSSL告警處理不當遠端拒絕服務漏洞 綠盟科技釋出安全威脅通告

在檔案ssl_locl.h檔案中,增加了max_warn_alert_count的宏定義,表示可連續接受的告警數目。同時,在該檔案中定義了變量alert_count,用來表示連續收到的告警數目。

OpenSSL告警處理不當遠端拒絕服務漏洞 綠盟科技釋出安全威脅通告

在檔案d1_pkt.c中,增加了對s->cert->alert_count的計數,當其達到max_warn_alert_count所表示的給定大小時,就會進入錯誤處理,進而避免了由于過多告警資料造成的cpu使用率過高的情況。

OpenSSL告警處理不當遠端拒絕服務漏洞 綠盟科技釋出安全威脅通告

在檔案s3_pkt.c中也增加了對s->cert->alert_count的計數,避免程式處理過多連續告警資料而導緻過高的cpu使用率。

官方已對該漏洞進行了修複,建議使用者更新到不受影響的版本,官方下載下傳連結如下:

<a href="https://www.openssl.org/source/">https://www.openssl.org/source/</a>

使用openssl project 1.1.0*分支的使用者,也可以根據以下連結,修改openssl源碼,重新編譯,即可修複該漏洞:

使用openssl project其他分支的使用者,也可以根據以下連結,修改openssl源碼,重新編譯,即可修複該漏洞:

本安全公告僅用來描述可能存在的安全問題,綠盟科技不為此安全公告提供任何保證或承諾。由于傳播、利用此安全公告所提供的資訊而造成的任何直接或者間接的後果及損失,均由使用者本人負責,綠盟科技以及安全公告作者不為此承擔任何責任。綠盟科技擁有對此安全公告的修改和解釋權。如欲轉載或傳播此安全公告,必須保證此安全公告的完整性,包括版權聲明等全部内容。未經綠盟科技允許,不得任意修改或者增減此安全公告内容,不得以任何方式将其用于商業目的。

原文釋出時間:2017年3月24日

本文由:綠盟科技 釋出,版權歸屬于原作者

原文連結:http://toutiao.secjia.com/openssl-dos-vulnerability-cve-2016-8610-2

本文來自雲栖社群合作夥伴安全加,了解相關資訊可以關注安全加網站

繼續閱讀