999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Java反序列化漏洞探析及其修復(fù)方法研究

2016-11-07 07:25:37徐江珮蔡攸敏
湖北電力 2016年11期
關(guān)鍵詞:利用

徐江珮,王 捷,蔡攸敏,劉 暢

(國網(wǎng)湖北省電力公司電力科學(xué)研究院,湖北 武漢 430077)

Java反序列化漏洞探析及其修復(fù)方法研究

徐江珮,王 捷,蔡攸敏,劉 暢

(國網(wǎng)湖北省電力公司電力科學(xué)研究院,湖北 武漢 430077)

為避免利用Java反序列化漏洞影響企業(yè)核心業(yè)務(wù)、產(chǎn)生重大信息安全事件,詳細(xì)介紹了Java反序列化漏洞的背景、原理、漏洞利用方法及工具,通過一個具體實例給出利用該漏洞進(jìn)行服務(wù)器主機系統(tǒng)提權(quán)的詳細(xì)步驟,并提出了多種漏洞修復(fù)方法。

Java反序列化漏洞;漏洞利用;信息安全

0 引言

Java反序列化漏洞是2015年11月初曝出的一種新型信息安全高危漏洞,存在于Apache Commons Collections等Java公共庫中,其廣泛影響各種基于Java編寫的應(yīng)用程序,被稱為2015年最被低估、具有巨大破壞力的信息安全漏洞之一。通過利用WebLogic、WebSphere、JBoss、Jenkins、OpenNMS等主流中間件和框架的Java反序列化漏洞,攻擊者可以很容易地實現(xiàn)遠(yuǎn)程任意代碼執(zhí)行,進(jìn)而奪取Web服務(wù)器的完全控制權(quán)限,實施各種高危入侵行為。重視并研究Java反序列化漏洞原理、漏洞利用工具和方法,針對該漏洞提出有效可行的修復(fù)方案,對保障電網(wǎng)信息系統(tǒng)的正常穩(wěn)定運行具有重大現(xiàn)實意義。

1 Java反序列化漏洞概述

1.1 漏洞背景

2015年1月28日,國外兩位信息安全研究人員在AppSecCali 2015大會上指出Java反序列化漏洞可以利用常用Java庫Apache Common Collections實現(xiàn)遠(yuǎn)程任意代碼執(zhí)行,并提供對應(yīng)漏洞利用工具,但當(dāng)時并未引起廣泛重視。

直到2015年11月6日,國外FoxGlove Security安全團(tuán)隊的一名成員在其一篇文章中詳細(xì)介紹了如何利用Java反序列化漏洞攻擊最新版本的WebLogic、WebSphere、JBoss、Jenkins、OpenNMS等主流的基于Ja?va架構(gòu)的中間件和框架,實現(xiàn)遠(yuǎn)程任意代碼執(zhí)行、獲取網(wǎng)站服務(wù)器控制權(quán)等嚴(yán)重危害行為,該漏洞才引起了安全業(yè)界的廣泛關(guān)注。此后,國內(nèi)外許多知名企業(yè)、公司不斷被曝出因Java反序列化漏洞被獲得Web服務(wù)器控制權(quán)限的重大信息安全事件,使該漏洞一躍成為2015年信息安全領(lǐng)域最熱門話題之一。

2015年11月16日,國家信息安全漏洞共享平臺(CNVD)收錄Java反序列化漏洞,將其正式命名為Apache Commons Components Invoker Transformer反序列化任意代碼執(zhí)行漏洞,漏洞編號為CNVD-2015-07556,漏洞綜合評級為高危。

1.2 漏洞產(chǎn)生原理

Java是一種可以撰寫跨平臺應(yīng)用程序的面向?qū)ο蟪绦蛟O(shè)計語言,具有卓越的通用性、高效性、平臺移植性和安全性,廣泛應(yīng)用于PC、數(shù)據(jù)中心、游戲控制臺、科學(xué)超級計算機、移動設(shè)備和互聯(lián)網(wǎng)中。在最新的編程語言排行榜中,Java仍然高居首位,在所有編程語言中占有最高的使用率(20.5%)[1]。在當(dāng)今全球云計算、大數(shù)據(jù)、物聯(lián)網(wǎng)和移動應(yīng)用產(chǎn)業(yè)快速發(fā)展的環(huán)境下,不斷更新升級的Java技術(shù)展現(xiàn)了卓越的競爭力和愈加廣闊的應(yīng)用前景。

在Java中,序列化是指將對象轉(zhuǎn)換成字節(jié)流,以便于存儲在內(nèi)存、文件、數(shù)據(jù)庫中或者在網(wǎng)絡(luò)上進(jìn)行傳送,該處理由ObjectOutputStream類的writeObject()方法實現(xiàn);反序列化是序列化的逆過程,將字節(jié)流還原成Java對象,該處理由ObjectInputStream類的readObject()方法實現(xiàn)[2]。圖1顯示了Java對象從序列化到反序列化的完整處理流程。

圖1 Java序列化和反序列化示意圖Fig.1 Diagram of Java serialization and deserialization

Java序列化及反序列化處理在基于Java架構(gòu)的Web應(yīng)用中具有尤為重要的作用。位于網(wǎng)絡(luò)兩端、彼此不共享內(nèi)存信息的兩個Web應(yīng)用在進(jìn)行遠(yuǎn)程通信時,無論相互間發(fā)送何種類型的數(shù)據(jù),在網(wǎng)絡(luò)中實際上都是以二進(jìn)制序列的形式傳輸?shù)摹榇耍l(fā)送方就必須將要發(fā)送的Java對象序列化為字節(jié)流,接收方則需要將字節(jié)流再反序列化還原得到Java對象,才能實現(xiàn)正常通信。

只要Java應(yīng)用允許對用戶輸入的不可信數(shù)據(jù)進(jìn)行反序列化處理,那么攻擊者就可以通過構(gòu)造惡意輸入來使反序列產(chǎn)生非預(yù)期的Java對象,在產(chǎn)生過程中就可能帶來任意代碼執(zhí)行問題,這就是Java反序列化漏洞的產(chǎn)生原理。其根源在于:

(1)ObjectInputStream類在進(jìn)行反序列化操作時,不會調(diào)用構(gòu)造函數(shù)對生成對象的類型進(jìn)行任何校驗;

(2)CommonsCollections組件中對于集合的操作存在可以進(jìn)行反射調(diào)用的方法。

正因為Java反序列化漏洞是因Java自身設(shè)計缺陷所致,所以才廣泛存在于各種基于Java開發(fā)的應(yīng)用中。只要Java應(yīng)用的Class Path包含Apache Com?mons Collections的jar包,無論源碼是否使用了Apache Commons Collections中的類,都有可能導(dǎo)致遠(yuǎn)程代碼執(zhí)行。

2 漏洞利用方法及工具

基于Java反序列化漏洞的原理,要利用該漏洞,首先需要在目標(biāo)Java應(yīng)用中找到一個接受外部輸入的序列化對象的反序列化接收點。可以通過兩種方式尋找:

(1)對應(yīng)用源碼中關(guān)于調(diào)用反序列化函數(shù)的部分進(jìn)行審計;

(2)對應(yīng)用交互流量進(jìn)行抓包,查看是否包含以“ac ed 00 05”標(biāo)記開頭的序列化數(shù)據(jù)。成功找到接收點后,再檢查目標(biāo)應(yīng)用的Class Path中是否包含Apache Commons Collections庫,如果包含,就可以使用Java反序列化漏洞利用工具生成反序列化pay?load,通過傳入對象方式進(jìn)行注入,觸發(fā)ObjectInput?Stream的反序列化操作,并通過反射調(diào)用Runtime.getRunTime.exec,實現(xiàn)對漏洞的利用。

目前幾款常見的Java反序列化漏洞利用工具如表1所示。

表1 Java反序列化漏洞利用工具Tab.1 Tools of Java deserialization vulnerability exploitation

ysoserial是由國外人員開發(fā)的最早的Java反序列化漏洞利用工具,運行于命令行窗口;WebLog?ic_EXP是專門針對WebLogic開發(fā)的Java反序列化漏洞利用工具。該工具具有圖形化使用界面,支持本地命令執(zhí)行并回顯,連接目標(biāo)主機后可通過文件上傳、執(zhí)行CMD語句等方式驗證目標(biāo)服務(wù)器Web?Logic是否存在Java反序列化漏洞;JBOSS_EXP是專用于JBoss的Java反序列化漏洞利用工具;Java反序列化終極測試工具是集成了JBoss、WebLogic和WebSphere的反序列化漏洞利用工具,支持純內(nèi)網(wǎng)環(huán)境檢測、https數(shù)據(jù)傳輸、文件目錄列表等功能。上述四款工具是目前使用較為普遍的Java反序列化漏洞利用工具。

3 利用漏洞獲取系統(tǒng)權(quán)限實例

Weblogic在國內(nèi)的應(yīng)用范圍比較廣,支撐著很多企業(yè)的核心業(yè)務(wù),以下通過一個實例介紹如何探測存在Java反序列化漏洞的WebLogic服務(wù)器,進(jìn)而利用漏洞獲取服務(wù)器主機系統(tǒng)控制權(quán)限的方法步驟。利用漏洞獲取系統(tǒng)權(quán)限的主要流程如圖2所示。

圖2 利用漏洞獲取系統(tǒng)權(quán)限流程圖Fig.2 Flow chart of acquiring the privilege of system by vulnerability exploitation

以圖2為依據(jù),給出主要步驟的詳細(xì)描述如下。

(1)端口掃描

選擇功能強大的“啊D網(wǎng)絡(luò)工具包”端口掃描工具進(jìn)行掃描。設(shè)置一段IP地址范圍,端口設(shè)置為WebLogic默認(rèn)端口7001,如圖3所示。

圖3 端口掃描Fig.3 Port scanning

(2)連接測試

對上一步掃描發(fā)現(xiàn)的所有開放7001端口的IP列表,利用WebLogic_EXP工具逐一驗證是否可連接。經(jīng)過大量手工測試,發(fā)現(xiàn)某一IP的WebLogic服務(wù)器可成功連接,如圖4所示。

圖4 利用WebLogic_EXP成功連接WebLogic服務(wù)器Fig.4 Successfully connect to WebLogic server by using WebLogic_EXP

(3)添加用戶

第一步,在CMD欄輸入“whoami”并點擊Execute執(zhí)行;

第二步,運行“net localgroup administrators”查看管理員組;

第三步,運行“net user test test/add”添加一個賬戶名和密碼均為“test”的用戶;

第四步,再運行“net localgroup administrators test/add”將該用戶加入到管理員組中;

第五步,再次運行“net localgroup administrators”可見管理員組列表新增了“test”用戶。如圖5所示,表明操作系統(tǒng)用戶創(chuàng)建成功。

圖5 利用WebLogic_EXP向WebLogic服務(wù)器主機成功添加用戶Fig.5 Successfully add a user to WebLogic server host by using WebLogic_EXP

(4)遠(yuǎn)程連接

最后,利用上一步創(chuàng)建的test/test遠(yuǎn)程連接某一地址實現(xiàn)成功登錄,如圖6所示。可完全訪問和控制該服務(wù)器中的任何文件,達(dá)到滲透目的。

圖6 成功遠(yuǎn)程登錄WebLogic服務(wù)器主機Fig.6 Successful remote login to WebLogic server host

以上利用Java反序列化漏洞快速成功實現(xiàn)滲透的案例充分表明,該漏洞極易被利用,且能造成十分嚴(yán)重的后果。因此,凡是部署了基于Java的Web應(yīng)用的主機都應(yīng)警惕Java反序列化漏洞,并及時進(jìn)行相應(yīng)的安全加固工作,以避免產(chǎn)生惡性信息安全事件。

4 漏洞防范與修復(fù)

對于自行開發(fā)的Java應(yīng)用程序,Java反序列化漏洞的防范需要開發(fā)者對Java語言進(jìn)行安全性檢查與安全加固。隨著Java類庫的功能不斷更新、擴(kuò)展,某個類只要實現(xiàn)了序列化接口,就有可能成為Java反序列化漏洞的載體。因此,針對漏洞成因,開發(fā)者應(yīng)著重關(guān)注軟件中用到的可序列化類,在反序列化操作之前進(jìn)行安全性檢查,同時進(jìn)行代碼安全加固,這樣可以簡單有效地提高安全性,有效降低漏洞爆發(fā)所造成的威脅程度。

對于通用Java應(yīng)用程序,可針對主流中間件、框架的Java反序列化漏洞采取以下修復(fù)加固方法。

(1)Apache Common Collections在3.2.2及以上版本中專門針對Java反序列化漏洞進(jìn)行了安全處理,即對不安全的Java類的序列化支持增加開關(guān),并默認(rèn)設(shè)置為關(guān)閉狀態(tài),因此使用官方提供的高版本commons-collections.jar替換Java應(yīng)用程序lib目錄的原有庫可規(guī)避漏洞風(fēng)險;

(2)使用NibbleSecurity公司開發(fā)的修復(fù)補丁Se?rialKiller替換進(jìn)行序列化操作的ObjectInputStream類。該方法為臨時解決方案,能快速封堵漏洞利用途徑,但對應(yīng)用產(chǎn)生的其他影響未知;

(3)在不影響正常業(yè)務(wù)的前提下,刪除com?mons-collections.jar中的InvokerTransformer.class文件,對于JBoss,還需同時刪除InstantiateFactory.class和InstantiateTransformer.class文件;

(4)將Java應(yīng)用程序升級至最新版本或者不在影響范圍內(nèi)的版本。

5 結(jié)語

國網(wǎng)智研院信息安全實驗室于2015年底Java反序列化漏洞公開后第一時間發(fā)布了風(fēng)險預(yù)警單,對全國電力信息系統(tǒng)開展漏洞隱患排查,足以說明這一新漏洞的出現(xiàn)引起了廣泛關(guān)注與重視。本文通過對漏洞的分析與利用展示,為該漏洞的挖掘探測提供了一定實踐依據(jù)。文中提到的修復(fù)防范措施已在湖北電力系統(tǒng)中得以應(yīng)用,有效提高了企業(yè)信息系統(tǒng)安全防護(hù)水平。

(References)

[1]郭瑞.Java反序列化漏洞研究[J].信息安全與技術(shù),2016,7(3):27-30.GUO Rui.Research on Java deserialization vulnera?bility [J].Information Security and Technology,2016,7(3):27-30.

[2]Breg F,Polychronopoulos C D.Java virtual machine support for object serialization[J]. ACM Java Grande-ISCOPE (JGI2001)Conference,2001,15(3-5):263-275.

Analysis on Java Deserialization Vulnerability and Research on the Methods to Fix It

XU Jiangpei,WANG Jie,CAI Youmin,LIU Chang
(State Grid Hubei Electric Power Research Institute,Wuhan Hubei 430077,China)

In order to avoid the use of Java deserialization vulnerability to influence core busi?ness of the enterprise,to generate fignificant information security incidents,the background,princi?ple,exploit method and tool of Java deserialization vulnerability are introduced in this paper.De?tailed steps have been given through a specific example which exploits the vulnerability to ac?quirethe privilegeof a server host system,and a variety of methods to fix the vulnerability have been proposed.

Java deserialization vulnerability;vulnerability exploitation;information security

TP393

B

1006-3986(2016)11-0047-004

10.19308/j.hep.2016.11.011

2016-10-15

徐江珮(1990),女,湖北黃岡人,碩士,助理工程師。

猜你喜歡
利用
利用min{a,b}的積分表示解決一類絕對值不等式
利用倒推破難點
如何利用基本不等式比較大小
利用一半進(jìn)行移多補少
利用口訣算除法
利用數(shù)的分解來思考
Roommate is necessary when far away from home
利用
回收木再利用——Piet Hein Eek
低丘緩坡未利用地的開發(fā)利用探討
河北遙感(2015年4期)2015-07-18 11:05:06
主站蜘蛛池模板: 99视频只有精品| 国产91在线免费视频| 国产亚洲高清视频| 88av在线播放| 精品無碼一區在線觀看 | 国产欧美日韩综合在线第一| 国产精品黄色片| 鲁鲁鲁爽爽爽在线视频观看| 免费人成在线观看成人片| 国模私拍一区二区| 免费在线a视频| 国产精品2| 人妻出轨无码中文一区二区| 久久免费视频播放| 欧美日韩另类在线| 一级成人a做片免费| 亚洲美女视频一区| 国产亚洲精品精品精品| 欧美 国产 人人视频| 熟女成人国产精品视频| 自慰高潮喷白浆在线观看| 国产在线专区| 国产菊爆视频在线观看| 日本国产在线| 国产精品视频猛进猛出| 国产超碰在线观看| www欧美在线观看| 婷婷亚洲视频| 亚洲性视频网站| 国产成人福利在线视老湿机| 久久大香香蕉国产免费网站| 特级精品毛片免费观看| 成人精品亚洲| 激情在线网| 亚洲综合色吧| 亚洲免费人成影院| 黄网站欧美内射| 精品福利视频网| 国产一区二区三区在线观看视频 | 91在线视频福利| 国产精品天干天干在线观看| 亚洲欧美在线综合图区| 91色在线视频| 亚洲精品视频免费| 亚洲综合精品第一页| 国产呦精品一区二区三区网站| 国产区人妖精品人妖精品视频| 亚洲性一区| h视频在线观看网站| 国产成人精品亚洲77美色| 亚洲无线观看| 在线亚洲天堂| 成人免费午间影院在线观看| 国产资源免费观看| 亚洲国产欧美自拍| 欧美特黄一免在线观看| 国产成人欧美| 欧美激情网址| 亚洲精品免费网站| 成人夜夜嗨| 国产成人午夜福利免费无码r| 麻豆精选在线| 国产精品99一区不卡| 国产精品原创不卡在线| 91年精品国产福利线观看久久| 国产一区二区在线视频观看| 成人欧美日韩| 亚洲久悠悠色悠在线播放| 青青久久91| 无码高潮喷水专区久久| 国产屁屁影院| 真实国产精品vr专区| 欧美精品v| 无码有码中文字幕| 手机在线国产精品| 精品无码日韩国产不卡av| 国产精品亚洲αv天堂无码| 毛片免费视频| 国产成人精品亚洲77美色| 欧美劲爆第一页| 婷婷六月综合网| 国产黑丝视频在线观看|