国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于OpenSSL編碼缺陷漏洞初步研究

2021-04-18 00:43:03張廷龍張浩東唐青
科技研究·理論版 2021年18期
關(guān)鍵詞:傳輸層攻擊者漏洞

張廷龍 張浩東 唐青

前言:目前,隨著網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)囊?guī)模不斷擴大,出現(xiàn)的漏洞和風(fēng)險也越來越繁復(fù)。其中的漏洞之一OpenSSL的心跳處理邏輯沒有檢測心跳包中的長度字段是否和后續(xù)的數(shù)據(jù)字段相符合,攻擊者可以利用這一點,構(gòu)造異常的數(shù)據(jù)包,來獲取心跳數(shù)據(jù)所在的內(nèi)存區(qū)域的數(shù)據(jù)。這些數(shù)據(jù)中可能包含了證書私鑰,用戶名,用戶密碼,用戶地址等敏感信息。本篇文章就對OpenSSL協(xié)議在實現(xiàn)TLS和DTLS的心跳處理邏輯時存在編碼缺陷稱為Heartbleed漏洞的原理作初步的研究。

關(guān)鍵詞:Heartbleed漏洞;SSL;TLS

1. Heartbleed漏洞原理

SSL(Secure Socket Layer)安全套接層及其繼任者傳輸層安全TLS(Transport Layer Security)是為網(wǎng)絡(luò)通信提供安全及數(shù)據(jù)完整性的一種安全協(xié)議。TLS和SSL在傳輸層對網(wǎng)絡(luò)連接進行加密。所以通過SSL或TLS協(xié)議加密后的數(shù)據(jù)包再通過WireShark軟件進行對數(shù)據(jù)包的抓取時,抓取到的數(shù)據(jù)也是經(jīng)過加密處理的數(shù)據(jù)。

DTLS(Datagram Transport Layer Security)數(shù)據(jù)包傳輸層安全協(xié)議。TLS不能用來保證UDP上傳輸?shù)臄?shù)據(jù)的安全,因此Datagram TLS試圖在現(xiàn)存的TLS協(xié)議架構(gòu)上提出擴展,使之支持UDP,即成為TLS的一個支持數(shù)據(jù)報傳輸?shù)陌姹尽?/p>

心臟出血漏洞主要通過攻擊者模擬向服務(wù)器端發(fā)送自己編寫的Heartbeat心跳數(shù)據(jù)包,主要是HeartbeatMessage的長度與payload的length進行匹配,若payload_lenght長度大于HeartbeatMes sage的length,則會在服務(wù)器返回的response響應(yīng)包中產(chǎn)生數(shù)據(jù)溢出,造成有用數(shù)據(jù)泄露。

2.Heartbleed漏洞的發(fā)現(xiàn)與驗證

心臟出血漏洞必須在含有心跳擴展和漏洞沒有被修復(fù)的版本中存在,目前存在OpenSSL心血漏洞的OpenSSL版本有OpenSSL1.X等多個版本。心臟出血漏洞主要存在于OpenSSL的心跳機制里,判斷OpenSSL有沒有開啟心跳擴展,并開啟心跳擴展機制。在客戶端對虛擬機中搭建的靶場頁面進行訪問,同時在客戶端中通過POC程序?qū)Π袌鲞M行攻擊,最后通過wireshark對攻擊的請求包和響應(yīng)包進行捕獲。

TLS數(shù)據(jù)請求包如下圖所示:

分析由于SSL記錄協(xié)議位于某個傳輸協(xié)議,例如TCP上面由于數(shù)據(jù)通過SSL加密處理后顯示亂碼,我們抓取的數(shù)據(jù)包主要通過16進制顯示,所以像heartbeat_Request的數(shù)據(jù)包主要分為四部分:(1)數(shù)據(jù)包幀頭部分;(2)IPv4(IPv6)網(wǎng)絡(luò)層部分;(3)TCP傳輸層部分;(4)圖片中方框標注的部分即為通過SSL加密的心跳數(shù)據(jù)包部分。payload和padding都為空,下面利用漏洞將后面內(nèi)存中的數(shù)據(jù)dump下來。TLS數(shù)據(jù)響應(yīng)包如下圖所示:

上圖中為通過wireshark抓取的heartbeat_Response數(shù)據(jù)包的模塊化展示,同樣數(shù)據(jù)包分為幀頭部分,IPv4網(wǎng)絡(luò)層部分,TCP傳輸層部分以及SSL返回的數(shù)據(jù)部分。

0x4000表示返回的數(shù)據(jù)包長度為16384。0x02表示返回的心跳消息類型。0x4000表示返回的payload_length(16384)。剩余的數(shù)據(jù)即為通過心臟出血漏洞從內(nèi)存中dump下來的數(shù)據(jù)。

由于請求包的長度為3。但是要返回的payload_length為0x4000(16384),所以響應(yīng)包返回的數(shù)據(jù)長度為0x4000(16384)即漏洞攻擊成功。

3.結(jié)束總結(jié)

OpenSSL心臟出血漏洞(heartbleed)的產(chǎn)生主要由于OpenSSL的心跳處理邏輯沒有檢測心跳包中的長度字段是否和后續(xù)字段相吻合導(dǎo)致攻擊者構(gòu)造異常數(shù)據(jù)包,來直接獲取心跳數(shù)據(jù)所在的內(nèi)存區(qū)域的后續(xù)數(shù)據(jù)。主要特征有:heartbleed漏洞主要存在于有心跳機制的OpenSSL協(xié)議中。

IANA組織把開啟心跳擴展機制的SSL數(shù)據(jù)包type類型定義為24(0x18)。 heartbleed漏洞主要存在于TLS和DTLS兩種協(xié)議中,在含有heartbleed漏洞的OpenSSL協(xié)議中需要開啟心跳擴展機制,而含有心跳擴展機制的TLS版本主要包含在TLSv1.0,TLSv1.1,TLSv1.2三種版本中。heartbleed漏洞攻擊主要由于攻擊者構(gòu)造異常的心跳數(shù)據(jù)包,即心跳包中的長度字段與后續(xù)的數(shù)據(jù)字段不相符合,來獲取心跳數(shù)據(jù)所在的內(nèi)存區(qū)域的后續(xù)數(shù)據(jù)。

綜上所述我們可以通過對線網(wǎng)中的數(shù)據(jù)首先進行判斷是否為含有OpenSSL的數(shù)據(jù)包,同時通過對數(shù)據(jù)包中的type類型判斷數(shù)據(jù)包是否為心跳數(shù)據(jù)包,然后對TLS的版本進行匹配找到相應(yīng)的含有心跳擴展機制的心跳數(shù)據(jù)包,最后通過對心跳包中的數(shù)據(jù)實際長度與長度字段定義的值比較,如果實際長度小于定義的長度則該數(shù)據(jù)包即為含有heartbleed漏洞的數(shù)據(jù)包。

參考文獻:

[1]石一鳴,馬利民.基于OpenSSL的程序完整性度量方案設(shè)計與實現(xiàn)[J],電子世界.?2020,(02).

[2]周興暉,王朝,金鑫.?生成對抗機制的密碼算法組件化設(shè)計[J].?北京電子科技學(xué)院學(xué)報.?2020(04)

[3] 謝東良.基于國密算法的OpenSSL安全性優(yōu)化研究[D].哈爾濱工程大學(xué)?2016

資助項目:國家級大學(xué)科技創(chuàng)新項目(基于Spark的校園網(wǎng)蜜罐系統(tǒng)的研究與設(shè)計,項目編號:023220076?)。

猜你喜歡
傳輸層攻擊者漏洞
漏洞
基于微分博弈的追逃問題最優(yōu)策略設(shè)計
基于Python語言的網(wǎng)絡(luò)傳輸層UDP協(xié)議攻擊性行為研究
ZnO電子傳輸層在有機無機雜化鈣鈦礦太陽能電池中的應(yīng)用
物聯(lián)網(wǎng)無線通信傳輸層動態(tài)通道保障機制
正面迎接批判
愛你(2018年16期)2018-06-21 03:28:44
基于物聯(lián)網(wǎng)GIS的消防智能巡檢系統(tǒng)設(shè)計與實現(xiàn)
三明:“兩票制”堵住加價漏洞
漏洞在哪兒
兒童時代(2016年6期)2016-09-14 04:54:43
高鐵急救應(yīng)補齊三漏洞
威海市| 高邮市| 南昌市| 衡东县| 冀州市| 大安市| 陈巴尔虎旗| 呼伦贝尔市| 宁晋县| 寿光市| 四平市| 靖西县| 根河市| 双牌县| 定州市| 吴桥县| 连江县| 确山县| 遂宁市| 新昌县| 团风县| 韶关市| 上饶市| 滁州市| 临泉县| 科技| 宁强县| 石泉县| 垫江县| 舒城县| 富平县| 富阳市| 江安县| 寻乌县| 镇康县| 东港市| 开封县| 广安市| 安阳县| 建阳市| 乌兰浩特市|