亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2016-11-07 07:25:37徐江珮蔡攸敏
        湖北電力 2016年11期
        關(guān)鍵詞:序列化漏洞應(yīng)用程序

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

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

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

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

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

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

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

        0 引言

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

        1 Java反序列化漏洞概述

        1.1 漏洞背景

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

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

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

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

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

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

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

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

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

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

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

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

        2 漏洞利用方法及工具

        基于Java反序列化漏洞的原理,要利用該漏洞,首先需要在目標(biāo)Java應(yīng)用中找到一個(gè)接受外部輸入的序列化對(duì)象的反序列化接收點(diǎn)??梢酝ㄟ^(guò)兩種方式尋找:

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

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

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

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

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

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

        Weblogic在國(guó)內(nèi)的應(yīng)用范圍比較廣,支撐著很多企業(yè)的核心業(yè)務(wù),以下通過(guò)一個(gè)實(shí)例介紹如何探測(cè)存在Java反序列化漏洞的WebLogic服務(wù)器,進(jìn)而利用漏洞獲取服務(wù)器主機(jī)系統(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)端口掃描

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

        圖3 端口掃描Fig.3 Port scanning

        (2)連接測(cè)試

        對(duì)上一步掃描發(fā)現(xiàn)的所有開(kāi)放7001端口的IP列表,利用WebLogic_EXP工具逐一驗(yàn)證是否可連接。經(jīng)過(guò)大量手工測(cè)試,發(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”并點(diǎn)擊Execute執(zhí)行;

        第二步,運(yùn)行“net localgroup administrators”查看管理員組;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        5 結(jié)語(yǔ)

        國(guó)網(wǎng)智研院信息安全實(shí)驗(yàn)室于2015年底Java反序列化漏洞公開(kāi)后第一時(shí)間發(fā)布了風(fēng)險(xiǎn)預(yù)警單,對(duì)全國(guó)電力信息系統(tǒng)開(kāi)展漏洞隱患排查,足以說(shuō)明這一新漏洞的出現(xiàn)引起了廣泛關(guān)注與重視。本文通過(guò)對(duì)漏洞的分析與利用展示,為該漏洞的挖掘探測(cè)提供了一定實(shí)踐依據(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),女,湖北黃岡人,碩士,助理工程師。

        猜你喜歡
        序列化漏洞應(yīng)用程序
        漏洞
        如何建構(gòu)序列化閱讀教學(xué)
        甘肅教育(2020年14期)2020-09-11 07:58:36
        刪除Win10中自帶的應(yīng)用程序
        三明:“兩票制”堵住加價(jià)漏洞
        漏洞在哪兒
        Java 反序列化漏洞研究
        高鐵急救應(yīng)補(bǔ)齊三漏洞
        作文訓(xùn)練微格化、序列化初探
        關(guān)閉應(yīng)用程序更新提醒
        電腦迷(2012年15期)2012-04-29 17:09:47
        Java序列化技術(shù)的探討
        欧美成人精品一区二区综合 | 久久人妻少妇嫩草av蜜桃| 久久精品国产亚洲超碰av| 久久99精品久久久久久秒播| 亚洲综合网在线观看首页| 精品无码人妻久久久一区二区三区 | 乱子伦视频在线看| 国产在视频线精品视频二代| 日本免费播放一区二区| 久久aaaa片一区二区| 又白又嫩毛又多15p| 亚洲无码夜夜操| 亚洲综合新区一区二区| 美女国产毛片a区内射| 婷婷久久久亚洲欧洲日产国码av| 日韩亚洲制服丝袜中文字幕| 国产高清大片一级黄色| 久久精品夜色噜噜亚洲a∨| 国产人妻久久精品二区三区| 手机色在线| 精品国产亚洲一区二区三区四区| 日本真人做爰免费视频120秒| 少妇激情av一区二区| 精品国产自拍在线视频| 国产在线91精品观看| 国自产精品手机在线观看视频| 亚洲美女影院| 好看的国内自拍三级网站| 亚洲国产精品18久久久久久 | 国产啪啪视频在线观看| 精品激情成人影院在线播放| 亚洲一区二区三区无码国产| 手机看片国产日韩| 日本成人精品一区二区三区| 在线播放免费人成毛片乱码| 亚洲国产精品一区二区第四页| 一本久久a久久精品综合| 日本道免费一区二区三区日韩精品 | 亚洲人成影院在线高清| 一本之道日本熟妇人妻| 久久久无码人妻精品无码|