• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    一種動(dòng)態(tài)監(jiān)測(cè)安卓應(yīng)用程序的方法

    2017-01-03 08:45:40蔣煦張慧翔慕德俊
    關(guān)鍵詞:間通信調(diào)用進(jìn)程

    蔣煦, 張慧翔, 慕德俊

    (西北工業(yè)大學(xué) 自動(dòng)化學(xué)院, 陜西 西安 710072)

    一種動(dòng)態(tài)監(jiān)測(cè)安卓應(yīng)用程序的方法

    蔣煦, 張慧翔, 慕德俊

    (西北工業(yè)大學(xué) 自動(dòng)化學(xué)院, 陜西 西安 710072)

    針對(duì)安卓應(yīng)用程序在終端用戶未知的情況下獲取系統(tǒng)服務(wù)的問題,提出了動(dòng)態(tài)監(jiān)測(cè)應(yīng)用程序獲取系統(tǒng)服務(wù)的方法。首先,檢查應(yīng)用程序是否存在第三方庫,如存在,則檢查第三方庫中是否存在敏感函數(shù)。如果不存在敏感函數(shù),就將應(yīng)用程序安裝到監(jiān)測(cè)系統(tǒng),實(shí)施對(duì)應(yīng)用程序獲取系統(tǒng)服務(wù)的實(shí)時(shí)監(jiān)測(cè)。實(shí)驗(yàn)結(jié)果表明,該方法在能夠避免惡意應(yīng)用程序?qū)ΡO(jiān)測(cè)系統(tǒng)進(jìn)行破壞的前提下,可以實(shí)時(shí)監(jiān)測(cè)到應(yīng)用程序來自Java層或是本地層對(duì)系統(tǒng)服務(wù)的調(diào)用,而且該方法的實(shí)現(xiàn)對(duì)時(shí)間的開銷也在可接受的范圍內(nèi)。

    應(yīng)用程序編程接口;網(wǎng)絡(luò)安全;Java語言;實(shí)時(shí)系統(tǒng);數(shù)據(jù)安全;第三方庫;掛鉤子;系統(tǒng)服務(wù)調(diào)用;Linux;安卓應(yīng)用程序;動(dòng)態(tài)監(jiān)測(cè)

    隨著移動(dòng)互聯(lián)網(wǎng)的飛速發(fā)展,智能手機(jī)承載著越來越多的服務(wù)功能。Android系統(tǒng)由于其開源的原因,市場(chǎng)占有率穩(wěn)居第一,因此成為了惡意應(yīng)用程序重要的滋生平臺(tái)[1]。

    針對(duì)Android惡意應(yīng)用程序的檢測(cè)主要分為靜態(tài)檢測(cè)和動(dòng)態(tài)檢測(cè)。靜態(tài)檢測(cè)是指在不運(yùn)行應(yīng)用程序的情況下,通過掃描反編譯的應(yīng)用程序代碼,發(fā)現(xiàn)其惡意行為。Felt等[2]從應(yīng)用程序中提取出相關(guān)申請(qǐng)權(quán)限,通過分析應(yīng)用程序的權(quán)限判斷應(yīng)用程序是否為惡意應(yīng)用程序。CHEX[3]首先通過識(shí)別應(yīng)用程序中可能被調(diào)用的接口,然后對(duì)這些接口進(jìn)行數(shù)據(jù)流分析,判斷接口是否有可能被惡意應(yīng)用程序利用以達(dá)到提權(quán)的目的。靜態(tài)檢測(cè)方法的優(yōu)點(diǎn)是可以快速地判斷應(yīng)用程序是否存在惡意行為,但無法應(yīng)對(duì)代碼的混淆、加密、動(dòng)態(tài)加載等情況。

    動(dòng)態(tài)檢測(cè)是在應(yīng)用程序執(zhí)行的過程中實(shí)時(shí)監(jiān)控應(yīng)用程序的行為,一旦發(fā)現(xiàn)惡意行為,立刻提示終端用戶。TaintDroid[4]對(duì)Android系統(tǒng)應(yīng)用程序框架層進(jìn)行修改,在應(yīng)用程序框架層敏感API的位置插入相應(yīng)的監(jiān)控代碼,起到實(shí)時(shí)監(jiān)控的目的。但這種方法不適合應(yīng)用于實(shí)際使用,因?yàn)閷?duì)相關(guān)的API進(jìn)行修改后需要重新編譯。Aurasium[5]對(duì)應(yīng)用程序的代碼進(jìn)行修改,在敏感API調(diào)用處添加監(jiān)控代碼,從而監(jiān)控應(yīng)用程序的執(zhí)行,雖然該方法無需對(duì)系統(tǒng)進(jìn)行修改重新編譯,但無法監(jiān)控應(yīng)用程序的動(dòng)態(tài)加載,需要對(duì)應(yīng)用程序進(jìn)行重新打包簽名,有可能影響應(yīng)用程序的正常執(zhí)行。

    無論采取哪種檢測(cè)方式,都必須要面對(duì)應(yīng)用程序第三方庫。而目前絕大多數(shù)的檢測(cè)方案集中在Java層,導(dǎo)致惡意應(yīng)用程序的開發(fā)者通過第三方庫實(shí)現(xiàn)其惡意行為,達(dá)到繞過Java層檢測(cè)的目的,甚至有可能破壞Java層的安全檢測(cè)系統(tǒng)[6]。所以,對(duì)于Android檢測(cè)系統(tǒng)的研究,應(yīng)用程序第三方庫的行為檢測(cè)應(yīng)該得到相應(yīng)的重視。

    本文在充分研究Android系統(tǒng)Binder機(jī)制及其源碼后,提出了全新的Android系統(tǒng)動(dòng)態(tài)監(jiān)測(cè)方法。首先,檢測(cè)應(yīng)用程序的第三方庫中是否存在敏感函數(shù)破壞監(jiān)測(cè)系統(tǒng),其次,將應(yīng)用程序安裝到動(dòng)態(tài)鏈接文件libbinder.so中的ioctl函數(shù)被掛鉤子的系統(tǒng)中,監(jiān)測(cè)來自Java層和Native層對(duì)系統(tǒng)服務(wù)的調(diào)用,實(shí)現(xiàn)動(dòng)態(tài)監(jiān)測(cè)Android應(yīng)用程序。

    1 Android系統(tǒng)分析

    1.1 Android系統(tǒng)架構(gòu)

    Android系統(tǒng)架構(gòu)如圖1所示,分為應(yīng)用層、應(yīng)用程序框架層、本地庫和Android運(yùn)行時(shí)、Linux內(nèi)核,相關(guān)的定義如下[7]:

    圖1 安卓系統(tǒng)架構(gòu)

    應(yīng)用層Android平臺(tái)運(yùn)行的應(yīng)用程序,如微信、日歷、地圖等,這些應(yīng)用程序通常使用Java語言編寫,可以使用Java與本地代碼接口(Java Native Interface, JNI)機(jī)制與本地已經(jīng)編譯的代碼進(jìn)行交互。

    應(yīng)用程序框架層為應(yīng)用程序的開發(fā)者提供訪問核心功能的API框架,該層的應(yīng)用簡(jiǎn)化代碼的編寫,提高了程序的復(fù)用性。

    本地庫和Android運(yùn)行時(shí)刻Android系統(tǒng)使用了大量的C/C++函數(shù)庫,這些本地庫通過應(yīng)用程序框架層對(duì)應(yīng)用程序開發(fā)者開放。Android運(yùn)行時(shí)包含核心庫和Dalvik虛擬機(jī)兩部分,核心庫中提供了Java語言核心庫中包含的大部分功能和利用JNI封裝的C/C++函數(shù)庫,Dalvik虛擬機(jī)是專門針對(duì)Android平臺(tái)解釋運(yùn)行Dalvik字節(jié)碼的虛擬機(jī)。

    Linux內(nèi)核Android是基于Linux內(nèi)核開發(fā)的,依賴于Linux的系統(tǒng)服務(wù),如內(nèi)存管理,進(jìn)程管理、安全機(jī)制等。Linux內(nèi)核為軟件提供了與硬件的交互。

    1.2 Android的安全機(jī)制

    Android應(yīng)用程序是作為L(zhǎng)inux進(jìn)程在系統(tǒng)中運(yùn)行,進(jìn)程間相互獨(dú)立不能互相訪問資源,即使本地代碼也不能進(jìn)程間互相訪問,只有使用相同簽名的應(yīng)用程序才可以建立信任關(guān)系、實(shí)現(xiàn)數(shù)據(jù)共享。Android系統(tǒng)服務(wù)也是作為L(zhǎng)inux進(jìn)程在系統(tǒng)中運(yùn)行,如果應(yīng)用程序需要跨進(jìn)程訪問系統(tǒng)服務(wù),在沒有root權(quán)限的前提下,必須獲得相應(yīng)的權(quán)限。Android系統(tǒng)的權(quán)限主要分為2類:①對(duì)設(shè)備的直接訪問,Android系統(tǒng)直接使用Linux內(nèi)核提供的用戶權(quán)限機(jī)制,采用Group IDs(GID)的形式管理該類型的權(quán)限,Android系統(tǒng)會(huì)在platform.xml文件中記錄該應(yīng)用程序GID與權(quán)限字符串的對(duì)應(yīng)關(guān)系;②對(duì)設(shè)備或者服務(wù)的間接訪問權(quán)限,Android系統(tǒng)采取Binder機(jī)制為應(yīng)用程序提供服務(wù),當(dāng)應(yīng)用程序向提供某服務(wù)的服務(wù)端發(fā)出請(qǐng)求時(shí),該服務(wù)端會(huì)檢查該應(yīng)用程序是否被授予該權(quán)限,如有則提供該服務(wù),反之亦然。

    Android系統(tǒng)權(quán)限申請(qǐng)采取“all-or-nothing”的策略,所以應(yīng)用程序可能在用戶疏忽甚至是不同意的情況下竊取用戶的隱私信息[8]。

    1.3 Binder機(jī)制

    Linux內(nèi)核提供了管道、信號(hào)、消息隊(duì)列、共享內(nèi)存等進(jìn)程間通信機(jī)制。Android系統(tǒng)是基于Linux內(nèi)核開發(fā)的,而Android系統(tǒng)卻開發(fā)了一套新的進(jìn)程間通信機(jī)制Binder。Binder進(jìn)程間通信機(jī)制是在OpenBinder的基礎(chǔ)上實(shí)現(xiàn)的,采用CS通信方式,其中,提供服務(wù)的進(jìn)程成為Server進(jìn)程,訪問服務(wù)的進(jìn)程稱為Client進(jìn)程。Server進(jìn)程和Client進(jìn)程的通信都要依靠運(yùn)行在內(nèi)核空間的Binder驅(qū)動(dòng)程序來進(jìn)行,Binder驅(qū)動(dòng)程序向用戶控件提供一個(gè)設(shè)備文件/dev/binder,使得應(yīng)用程序進(jìn)程可以間接地通過它來建立通信通道。Service組件在啟動(dòng)時(shí),會(huì)將自己注冊(cè)到一個(gè)Service Manager組件中,為了讓Client組件可以通過Service Manager組件找到該服務(wù)。Binder驅(qū)動(dòng)程序、Service、client、Service-Manager的關(guān)系如圖2所示。Binder進(jìn)程間通信機(jī)制的代碼是由C/C++實(shí)現(xiàn)的,Android系統(tǒng)在應(yīng)用程序框架層中提供了Binder進(jìn)程間通信機(jī)制的Java接口,Java層通過使用JNI的方法來調(diào)用Binder庫的C/C++接口[9]。

    圖2 Binder機(jī)制

    1.4 動(dòng)態(tài)鏈接加載機(jī)制

    動(dòng)態(tài)鏈接是把程序按照模塊拆分成各個(gè)相對(duì)獨(dú)立的組成部分,在應(yīng)用程序運(yùn)行時(shí)才將各部分鏈接在一起,形成一個(gè)完整的應(yīng)用程序。程序在運(yùn)行時(shí)會(huì)檢查所依賴的目標(biāo)文件是否在內(nèi)存中,如果不在,則將目標(biāo)文件拷貝至內(nèi)存,隨后進(jìn)行鏈接工作,包括對(duì)符號(hào)的解析和地址重定位,所以動(dòng)態(tài)鏈接可以很好地解決空間浪費(fèi)和應(yīng)用程序更新的問題[10]。動(dòng)態(tài)鏈接文件被稱為動(dòng)態(tài)共享對(duì)象(Dynamic Shared Objects,DSO),簡(jiǎn)稱共享對(duì)象,以".so"作為文件的擴(kuò)展名。

    Android系統(tǒng)中,Bionic是Android系統(tǒng)C/ C++庫,Bionic庫實(shí)現(xiàn)了對(duì)系統(tǒng)調(diào)用的封裝,庫中的API與系統(tǒng)調(diào)用相對(duì)應(yīng),其中有部分API需要多次調(diào)用系統(tǒng)調(diào)用實(shí)現(xiàn)API功能。Bionic庫的動(dòng)態(tài)鏈接文件保存在系統(tǒng)lib目錄下,文件名叫“l(fā)ibc.so”。整個(gè)And-roid系統(tǒng)只保留一份“l(fā)ibc.so”,當(dāng)應(yīng)用程序被裝載到系統(tǒng)時(shí),系統(tǒng)的動(dòng)態(tài)鏈接器會(huì)將應(yīng)用程序所需要的libc.so裝載到進(jìn)程的地址空間,并進(jìn)行重定位工作。

    2 獲取系統(tǒng)服務(wù)過程的分析

    如圖2所示,ServiceManager是Android系統(tǒng)的服務(wù)管理器,遠(yuǎn)程服務(wù)對(duì)象都是以Binder的形式存在,而ServiceManager是遠(yuǎn)程服務(wù)對(duì)象的管理者。應(yīng)用程序在申請(qǐng)獲得系統(tǒng)服務(wù)時(shí),必須通過Servic-eManager獲取服務(wù)的索引號(hào),通過索引號(hào),應(yīng)用程序建立與該系統(tǒng)服務(wù)的通訊。

    在應(yīng)用程序獲取系統(tǒng)服務(wù)的過程中,應(yīng)用程序需要先打開設(shè)備文件/dev/binder,通過IO控制函數(shù)ioctl與Binder驅(qū)動(dòng)程序進(jìn)行交互,因此Binder驅(qū)動(dòng)文件提供了一系列的IO控制命令來和應(yīng)用程序進(jìn)程通信。在這些IO命令中,最重要的是BINDER-WRITE-READ命令,命令參數(shù)binder-write-read,它是用來描述進(jìn)程間通信過程中所傳輸?shù)臄?shù)據(jù),包括輸入、輸出數(shù)據(jù),它的結(jié)構(gòu)體如Code 1所示,其中write-buffer和read-buffer都是數(shù)組,數(shù)組中的每一個(gè)元素都是由通信協(xié)議代碼和通信數(shù)據(jù)組成。協(xié)議代碼在write-buffer中被稱為命令協(xié)議代碼,在read-buffer中被稱為返回協(xié)議代碼。在命令和返回的協(xié)議代碼中,最重要的協(xié)議代碼是BC-TRANS-ACTION和BC-REPLY。

    在命令協(xié)議代碼中,當(dāng)一個(gè)進(jìn)程請(qǐng)求另一個(gè)進(jìn)程執(zhí)行某一操作時(shí),源進(jìn)程就使用命令協(xié)議代碼BC-TRANSACTION來請(qǐng)求Binder驅(qū)動(dòng)程序?qū)⑼ㄐ艛?shù)據(jù)傳遞到目標(biāo)進(jìn)程,當(dāng)目標(biāo)進(jìn)程處理完成源進(jìn)程所請(qǐng)求的操作之后,就使用命令協(xié)議代碼BC_REPLY來請(qǐng)求Binder驅(qū)動(dòng)程序?qū)⒔Y(jié)果數(shù)據(jù)傳遞給源進(jìn)程。Code 1

    struct binder-write-read {

    signed long write-size; /* bytes to write */

    signed long write-consumed; /* bytes consumed by driver */

    unsigned long write-buffer;

    signed long read-size; /* bytes to read */

    signed long read-consumed; /* bytes consumed by driver */

    unsigned long read-buffer;

    }

    在返回協(xié)議代碼中,當(dāng)一個(gè)Client進(jìn)程向一個(gè)Server進(jìn)程發(fā)出進(jìn)程間通信請(qǐng)求時(shí),Binder驅(qū)動(dòng)程序會(huì)使用返回協(xié)議代碼BC-TRANSACTION通知該Server進(jìn)程來處理該進(jìn)程間通信請(qǐng)求,當(dāng)Server進(jìn)程處理完該Client進(jìn)程通信請(qǐng)求后,Binder驅(qū)動(dòng)程序會(huì)使用返回協(xié)議代碼BC-REPLY將進(jìn)程間通信請(qǐng)求結(jié)果數(shù)據(jù)返回給Client進(jìn)程[11]。

    3 本文動(dòng)態(tài)監(jiān)測(cè)系統(tǒng)

    本文的監(jiān)測(cè)系統(tǒng)主要分為2部分,第一部分主要是檢查應(yīng)用程序的第三方庫中是否存在敏感函數(shù),第二部分是將通過第一部分檢測(cè)的應(yīng)用程序載入系統(tǒng)調(diào)用ioctl被hook的系統(tǒng)中,進(jìn)行動(dòng)態(tài)監(jiān)測(cè)。

    3.1 針對(duì)第三方庫的檢測(cè)

    用戶對(duì)Android應(yīng)用程序的使用體驗(yàn)要求越來越高,應(yīng)用程序的開發(fā)者僅僅使用Android SDK編寫應(yīng)用程序已經(jīng)不能滿足用戶的需求,比如3D游戲的呈現(xiàn),涉及到CPU的高性能運(yùn)算等。所以,應(yīng)用程序的開發(fā)者越來越多地使用本地語言開發(fā)工具(native development kit,NDK)來編寫應(yīng)用程序native部分的代碼和移植C/C++語言開發(fā)的程序來節(jié)省開發(fā)的時(shí)間和成本。

    第三方庫應(yīng)用的普及也帶來了潛在的安全風(fēng)險(xiǎn):①應(yīng)用程序一旦被授予申請(qǐng)的權(quán)限,那么應(yīng)用程序無論Java層還是native層都獲得了相同的權(quán)限,即意味著通過native代碼可以通過JNI機(jī)制調(diào)用應(yīng)用程序框架層API獲得系統(tǒng)資源,甚至可以直接調(diào)用系統(tǒng)服務(wù)的C/C++接口。flexdroid[12]指出在含有第三方庫的應(yīng)用程序中,50%的第三方庫與廣告有關(guān),其中不少第三方庫在執(zhí)行過程中設(shè)法獲取用戶的隱私信息。 ②應(yīng)用程序Java層和Native層共處于一個(gè)獨(dú)立的虛擬空間內(nèi),所以惡意應(yīng)用程序的第三方庫可以通過操縱native代碼修改進(jìn)程內(nèi)虛擬內(nèi)存的屬性,寫入相應(yīng)的數(shù)據(jù),執(zhí)行惡意的行為。

    Google[13]關(guān)于NDK的官方說明指出native代碼應(yīng)該僅僅被用于執(zhí)行CPU-intensive的操作,所以如果應(yīng)用程序的開發(fā)者通過native代碼去獲取系統(tǒng)資源,甚至修改內(nèi)存數(shù)據(jù),顯然都是違背Android系統(tǒng)NDK的初衷。許多研究者對(duì)應(yīng)用程序第三方庫進(jìn)行了深入的研究,Appcage[14]采取對(duì)應(yīng)用程序第三方庫進(jìn)行二次編寫的方法,將Java層的代碼和Native層的代碼分開,分別在各自的沙箱中運(yùn)行。NativeGuard[6]采取Android接口定義語言(android interface definition language,AIDL)的方法將應(yīng)用程序的第三方庫運(yùn)行在另一個(gè)進(jìn)程,為了第三方庫獲得的權(quán)限從應(yīng)用程序的權(quán)限中脫離,使得第三方庫只能執(zhí)行CPU-intensive的操作。上述的研究成果都可以有效地限制應(yīng)用程序第三方庫的行為,但在時(shí)間開銷、空間開銷和有效性方面還有欠缺。

    同時(shí),在文件映射的過程中,系統(tǒng)調(diào)用mmap指定不同內(nèi)存區(qū)域擁有不同的屬性,但應(yīng)用程序仍然可以通過native代碼執(zhí)行系統(tǒng)調(diào)用mprotect修改內(nèi)存區(qū)域的讀、寫、執(zhí)行屬性[10]。例如,代碼區(qū)的默認(rèn)屬性是只讀,意味著任何代碼都不能修改該區(qū)域的數(shù)據(jù),但是惡意應(yīng)用程序的native代碼可以通過執(zhí)行系統(tǒng)調(diào)用mprotect來改變代碼區(qū)的屬性由只讀變?yōu)榭勺x寫,對(duì)代碼進(jìn)行修改,執(zhí)行惡意行為。本文監(jiān)測(cè)系統(tǒng)的目的是能夠?qū)崟r(shí)監(jiān)測(cè)到來自Java層和native層對(duì)系統(tǒng)服務(wù)的調(diào)用,所以本文的監(jiān)測(cè)系統(tǒng)并沒有限制第三方庫的權(quán)限,但是禁止應(yīng)用程序的native代碼執(zhí)行系統(tǒng)調(diào)用mprotect,如第三方庫中存在mprotect函數(shù),就直接將其判定為惡意應(yīng)用程序,不納入動(dòng)態(tài)監(jiān)測(cè)的范圍。

    3.2 hook對(duì)象的選取

    hook是一種消息處理機(jī)制,也是處理消息的程序段,通過系統(tǒng)調(diào)用將此程序段載入系統(tǒng),每當(dāng)有特定消息發(fā)出時(shí),在沒有到達(dá)目標(biāo)地址前,hook程序就已經(jīng)得到該消息,獲得了程序的控制權(quán),可以對(duì)消息進(jìn)行相應(yīng)處理[14]。

    Binder進(jìn)程間通信機(jī)制是由C/C++代碼實(shí)現(xiàn)的,Android系統(tǒng)在應(yīng)用程序框架層中提供Binder進(jìn)程間通信機(jī)制的Java接口,所以應(yīng)用程序Java層的代碼可以通過JNI機(jī)制來調(diào)用Binder的C/C++接口,實(shí)現(xiàn)進(jìn)程間的通訊。部分惡意應(yīng)用程序直接通過與Binder的C/C++接口通訊來獲取系統(tǒng)服務(wù),繞過Java層對(duì)應(yīng)用程序框架層敏感API檢測(cè)。無論是來自Java層還是Native層對(duì)系統(tǒng)服務(wù)的調(diào)用,歸根結(jié)底是需要調(diào)用ioctl函數(shù),所以本文選取了“l(fā)ibbinder.so”中的ioctl函數(shù)進(jìn)行hook,既可以實(shí)時(shí)監(jiān)測(cè)到通過應(yīng)用程序架構(gòu)層API獲取系統(tǒng)服務(wù)的行為,也可以監(jiān)測(cè)到通過native代碼獲取系統(tǒng)服務(wù)的行為[15]。

    無論在命令協(xié)議代碼還是在返回協(xié)議代碼中,BC-TRANSACTION和BC-REPLY的通訊數(shù)據(jù)是使用binder-transaction-data來描述,結(jié)構(gòu)體如Code 2所示,成員變量sender-pid和sender-euid表示發(fā)起進(jìn)程間通信請(qǐng)求進(jìn)程的PID和UID,目標(biāo)進(jìn)程通過這2個(gè)成員變量就可以識(shí)別出client進(jìn)程是否有權(quán)限訪問。

    Code 2

    struct binder-transaction-data{

    union{

    size-t handle;

    void *ptr

    }target;

    void *cookie;

    unsigned int code;

    unsigned int flags;

    pid-t sender-pid;

    uid-t sender-euid;

    size-t data-size;

    union{

    struct{

    const void *buffer;

    const void *offsets;

    }ptr;

    uint8-t buf[8];

    }data;};

    而上述的命令都需要使用IO控制函數(shù)ioctl,所以本文將所需要實(shí)現(xiàn)的代碼注入libbinder.so中,新建一個(gè)ioctl來替換舊的ioctl,當(dāng)執(zhí)行完注入代碼后,再將指針交還給原ioctl,偽代碼如Code 3所示。

    Code 3

    int new-icotl (int-fd, unsigned long int-request, void *arg)

    {

    if(-request = =BINDER-WRITE-READ)

    {

    根據(jù)命令獲取傳輸方向、類型、類型命令、傳輸數(shù)據(jù)大小

    if(write-size>0)

    {將write-buffer中的數(shù)據(jù)寫入到Binder}

    while(already-got-size

    {循環(huán)處理buffer中的每一個(gè)命令}

    if(read-size>0)

    {從Binder中讀取數(shù)據(jù)寫入到read-buffer}

    while(already-got-size

    {循環(huán)處理buffer中的每一個(gè)命令,獲取PID和申請(qǐng)的service的信息}

    int res=(*old-ioctl) (-fd,-request,arg);

    return res;

    }

    3.3 IPC數(shù)據(jù)的解析

    ServiceManager是Android系統(tǒng)的服務(wù)管理器,遠(yuǎn)程服務(wù)對(duì)象都是以Binder的形式存在,而它們的共同管理者是ServiceManager。應(yīng)用程序在申請(qǐng)獲得系統(tǒng)服務(wù)時(shí),必須通過ServiceManager獲取服務(wù)的索引號(hào)[16]。鄭勇鑫[17]通過對(duì)SerciceManager中涉及敏感權(quán)限的系統(tǒng)服務(wù)進(jìn)行掛鉤子,得到應(yīng)用程序獲取涉及敏感權(quán)限的系統(tǒng)服務(wù)信息。這種方法能監(jiān)控到應(yīng)用程序獲取被監(jiān)測(cè)系統(tǒng)掛鉤子的系統(tǒng)服務(wù),但不能獲知應(yīng)用程序調(diào)用的所有系統(tǒng)服務(wù)。

    結(jié)構(gòu)體binder-transaction-data的ptr成員變量buffer指向一個(gè)數(shù)據(jù)緩沖區(qū),這個(gè)緩沖區(qū)是用來保存通信數(shù)據(jù)的,它的大小由成員變量data-size決定。本文通過對(duì)ioctl函數(shù)掛鉤子,將binder-transaction-data的ptr成員變量所指的data-size大小的數(shù)據(jù)緩沖區(qū)中的內(nèi)容轉(zhuǎn)化為16進(jìn)制表達(dá) ,系統(tǒng)服務(wù)的名稱是由大小寫字母和點(diǎn)號(hào)組成,通過增加判斷語句if(((*data >= 65) && (*data<=90))‖((*data >= 97)&&(*data<=122))‖(*data==46))可以獲知應(yīng)用程序意圖獲取的所有系統(tǒng)服務(wù)名稱。

    4 實(shí)驗(yàn)與評(píng)估

    4.1 實(shí)驗(yàn)環(huán)境與實(shí)驗(yàn)樣本

    本文所有實(shí)驗(yàn)在內(nèi)存為8G,處理器為Intel(R)Core(TM)i5-3337U 1.80GHzPC控制器和Android OS 4.3,內(nèi)存1G,處理器1.2GHz的酷派8720L型號(hào)手機(jī)終端完成。

    4.2 實(shí)驗(yàn)組成

    1) 本文從Google Play應(yīng)用市場(chǎng)下載了下載排名前10的應(yīng)用程序,動(dòng)態(tài)監(jiān)測(cè)應(yīng)用程序的運(yùn)行,檢查是否能夠監(jiān)測(cè)到與應(yīng)用程序申請(qǐng)權(quán)限相關(guān)的系統(tǒng)服務(wù)。

    2) 本文自編native層系統(tǒng)服務(wù),使用應(yīng)用程序第三方庫利用native代碼獲取系統(tǒng)服務(wù),用來檢測(cè)hook的ioctl函數(shù)是否能夠監(jiān)測(cè)到應(yīng)用程序直接與Binder驅(qū)動(dòng)通訊獲取系統(tǒng)服務(wù)的行為。

    3) 通過對(duì)比hook前后應(yīng)用程序啟動(dòng)、系統(tǒng)服務(wù)執(zhí)行的時(shí)間,證明對(duì)ioctl函數(shù)掛鉤子對(duì)時(shí)間開銷的增加微乎其微。

    4.3 實(shí)驗(yàn)評(píng)估

    本文首先對(duì)待檢測(cè)應(yīng)用程序中存在的第三方庫,使用Android NDK中readelf命令進(jìn)行反匯編,在反匯編出的文件中存在動(dòng)態(tài)鏈接重定位表,分別是“rel.dyn”和“rel.plt”,其中“rel.dyn”是對(duì)數(shù)據(jù)引用的地址重定位,所修正的位置位于.got段以及數(shù)據(jù)段;“rel.plt”是對(duì)函數(shù)引用的地址重定位,所修正的位置位于“.got.plt”段。如果在“.got.plt”段中發(fā)現(xiàn)第三方庫中存在調(diào)用系統(tǒng)函數(shù)mprotect時(shí),就判定該應(yīng)用程序存在惡意行為的可能,不將其列入動(dòng)態(tài)監(jiān)測(cè)的范圍。

    4.3.1 可用性驗(yàn)證

    本文的檢測(cè)系統(tǒng)是為了動(dòng)態(tài)地監(jiān)測(cè)應(yīng)用程序?qū)ndroid系統(tǒng)服務(wù)的調(diào)用,而調(diào)用這些系統(tǒng)服務(wù)需要向Android系統(tǒng)申請(qǐng)相應(yīng)的權(quán)限。

    表1 監(jiān)測(cè)結(jié)果

    Monkey工具是利用socket通訊的方式模擬用戶的按鍵輸入、觸摸屏輸入、手勢(shì)輸入等。本文監(jiān)測(cè)系統(tǒng)利用Monkey工具對(duì)從Google Play應(yīng)用市場(chǎng)下載的10個(gè)應(yīng)用程序進(jìn)行自動(dòng)化的隨機(jī)測(cè)試,能夠?qū)崟r(shí)監(jiān)測(cè)到與應(yīng)用程序申請(qǐng)權(quán)限相關(guān)的系統(tǒng)服務(wù)調(diào)用。以Wifi萬能鑰匙和百度糯米為例,從表1可以看出,本文監(jiān)測(cè)系統(tǒng)能夠?qū)崟r(shí)監(jiān)測(cè)到應(yīng)用程序通過Binder機(jī)制調(diào)用系統(tǒng)服務(wù)的情況,但無法監(jiān)測(cè)到獲取訪問設(shè)備權(quán)限后直接訪問設(shè)備的情況,因?yàn)橹苯釉L問設(shè)備是不需要通過Binder機(jī)制的,同時(shí)直接訪問硬件設(shè)備的監(jiān)控可以通過對(duì)系統(tǒng)Java層敏感API的監(jiān)測(cè)實(shí)現(xiàn),這部分不是本文的重點(diǎn)。

    4.3.2 功能測(cè)試

    應(yīng)用程序獲得申請(qǐng)的權(quán)限后,其第三方庫也獲取了相應(yīng)的權(quán)限,意味著native代碼可以直接通過調(diào)用Binder的本地接口獲取到受保護(hù)的系統(tǒng)服務(wù)。雖然目前Google還未公開Android系統(tǒng)系統(tǒng)服務(wù)的本地接口,但如果存在本地接口并被惡意應(yīng)用程序的開發(fā)者掌握,那么在Java層對(duì)系統(tǒng)服務(wù)調(diào)用的監(jiān)測(cè)將全部失效。隨著Android系統(tǒng)需求越來越高,native service應(yīng)用也越來越多。

    本文在充分研究Binder機(jī)制的基礎(chǔ)上,編寫了native層的系統(tǒng)服務(wù)。應(yīng)用程序通過第三方庫去獲取本文自定義的系統(tǒng)服務(wù),該第三方庫未使用JNI機(jī)制從native層去調(diào)用應(yīng)用程序框架層的API獲取系統(tǒng)服務(wù),而是直接調(diào)用自定義的系統(tǒng)服務(wù)本地接口去獲取系統(tǒng)服務(wù)。同理,如果存在原生系統(tǒng)服務(wù)的本地接口,應(yīng)用程序也可以通過native代碼調(diào)用系統(tǒng)服務(wù)。

    在終端運(yùn)行該應(yīng)用程序,本文監(jiān)測(cè)系統(tǒng)能夠成功地監(jiān)測(cè)到應(yīng)用程序使用第三方庫直接與Binder驅(qū)動(dòng)通訊調(diào)用系統(tǒng)服務(wù),說明了應(yīng)用程序獲取相應(yīng)的權(quán)限后,通過native代碼直接與Binder驅(qū)動(dòng)本地接口進(jìn)行交互是可以獲得受保護(hù)的系統(tǒng)服務(wù)。同時(shí),也說明針對(duì)Android的監(jiān)測(cè)系統(tǒng)如果將監(jiān)測(cè)點(diǎn)僅僅放在Java層進(jìn)行監(jiān)測(cè)應(yīng)用程序獲取的系統(tǒng)服務(wù)是存在潛在風(fēng)險(xiǎn)的,Java層的檢測(cè)完全可能被惡意應(yīng)用程序通過第三方庫與Binder驅(qū)動(dòng)本地接口直接交互而繞過。

    4.3.3 性能評(píng)估

    Android系統(tǒng)除了從界面上啟動(dòng)程序之外,還可以使用命令行工具啟動(dòng)應(yīng)用程序。本文使用am start-W package name/ activity name的命令啟動(dòng)應(yīng)用程序,對(duì)比hook前和hook后應(yīng)用程序啟動(dòng)的時(shí)間消耗,以Wifi萬能鑰匙和百度糯米為例,結(jié)果如表2所示,hook前后啟動(dòng)時(shí)間的值是取進(jìn)行了50次實(shí)驗(yàn)的平均值。從表2可以看出,監(jiān)測(cè)系統(tǒng)ioctl函數(shù)hook后并未明顯增加應(yīng)用程序啟動(dòng)時(shí)間的開銷。

    表2 hook前后應(yīng)用程序的啟動(dòng)時(shí)間

    最后,本文自編應(yīng)用程序,在應(yīng)用程序中調(diào)用應(yīng)用程序框架層API來獲取系統(tǒng)資源,通過在應(yīng)用程序框架層API代碼前后插入計(jì)時(shí)代碼(以getDeviceId為例,如Code 4所示),計(jì)算ioctl函數(shù)被hook前后獲取系統(tǒng)服務(wù)所需的時(shí)間,結(jié)果如表3所示,hook前后完成系統(tǒng)服務(wù)的用時(shí)也是取50次實(shí)驗(yàn)的平均值。

    Code 4

    Long start = System.currentTimeMillis();

    TelephonyManager telephonemanage=(TelephonyManager)

    getSystemService(Context.TELEPHONY-SERVICE);

    System.out.println(“串號(hào):”+telephonemanage.getDeviceId());

    long end=System.currentTimeMillis();

    System.out.println(“運(yùn)行時(shí)間:”+(end-start)+“毫秒”);

    從表3可以看出,hook前后對(duì)應(yīng)用程序跨進(jìn)程調(diào)用系統(tǒng)服務(wù)獲取系統(tǒng)資源所需時(shí)間影響不大。

    表3 hook前后系統(tǒng)服務(wù)執(zhí)行的時(shí)間

    5 結(jié) 論

    本文動(dòng)態(tài)監(jiān)測(cè)系統(tǒng)通過對(duì)libbinder.so中ioctl函數(shù)掛鉤子的方法,能夠有效、實(shí)時(shí)地監(jiān)控應(yīng)用程序通過應(yīng)用程序框架層API或是通過native層直接與Binder驅(qū)動(dòng)本地接口進(jìn)行交互獲取系統(tǒng)服務(wù)的行為。同時(shí)該方法對(duì)應(yīng)用程序的啟動(dòng)時(shí)間、應(yīng)用框架層API調(diào)用的時(shí)間開銷影響較小。應(yīng)用程序載入監(jiān)控系統(tǒng)前第三方庫的檢測(cè)確保了應(yīng)用程序第三方庫無法對(duì)本文監(jiān)測(cè)系統(tǒng)構(gòu)成威脅,具有實(shí)際應(yīng)用的價(jià)值。

    下一步的研究重點(diǎn)是如何監(jiān)測(cè)應(yīng)用程序通過第三方庫打開設(shè)備文件;其次對(duì)部分系統(tǒng)服務(wù)進(jìn)行更加細(xì)粒度的監(jiān)測(cè),力爭(zhēng)將動(dòng)態(tài)監(jiān)測(cè)系統(tǒng)做的更加完善。

    [1] 許鋁才,張?jiān)?楊珉. SysTracker:一種采用系統(tǒng)調(diào)用監(jiān)測(cè)安卓應(yīng)用資源使用的方法[J]. 計(jì)算機(jī)應(yīng)用與軟件,2014,31(10): 244-250 Xu Lücai, Zhang Yuan, Yang Min. Systracker: A System Call-Based Re-Sourses Usage Monitoring Technique for Android Applications[J]. Computer Applications and Software, 2014, 31(10): 244-250 (in Chinese)

    [2] Felt A P, Chin E, Hanna S, et a1. Android Permissions Demystified[C]∥Proceedingsof the 18th ACM Conference on Computer and Communications Security, New York, ACM, 2011: 627-638

    [3] Lu L, Li Z, Wu Z, et al. Chex: Statically Vetting Android Apps for Component Hijacking Vulnerabilities[C]∥Proceedings of ACM Conference on Computer and Communications Security, New York:ACM, 2012

    [4] Enck W, Ongtang M, McDaniel. On Lightweight Mobile Phone Application Certication[C]∥Proceedings of the 2009 ACM Conterence on Computer and Communications Secutity, 2009: 24-41

    [5] Xu R, Sa?di H, Anderson R. Aurasium: Practical Policy Enforcement for Android Applications[C]∥Proceedings of the 21st USENIX Conference on Security Symposium, 2012:27-27

    [6] Sun M, Tan G. NativeGuard: Protecting Android Applications from Third-Party Native Libraries[C]∥Proceedings of the 2014 ACM Conference on Security and Privacy in Wireless & Mobile Networks, 2014:165-176

    [7] 張玉清, 王凱, 楊歡,等. Android安全綜述[J]. 計(jì)算機(jī)研究與發(fā)展, 2014, 51(7):1385-1396 Zhang Yuqing, Wang Kai, Yang Huan, et al. Survey of Android OS Security[J]. Journal of Computer Research and Development, 2014, 51(7): 1385-1396 (in Chinese)

    [8] Yan L K, Yin H. DroidScope: Seamlessly Reconstructing the OS and Dalvik Semantic Views for Dynamic Android Malware Analysis[C]∥Proceedings of the 21st USENIX Conference on Security Symposium, 2012: 29-29

    [9] Enck W, Octeau D, Mcdaniel P, et al. A Study of Android Application Security[C]∥Usenix Conference on Security, 2011:1175-1175

    [10] 俞甲子,石凡,潘愛民. 程序員的自我修養(yǎng)[M]. 北京:電子工業(yè)出版社, 2009 Yu Jiazi, Shi Fan, Pan Aimin. Programmer′s Self-Improvement[M]. Beijing, Publishing House of Electronics Industry, 2009 (in Chinese)

    [11] 羅升陽. Android系統(tǒng)源代碼情景分析[M]. 北京:電子工業(yè)出版社, 2012 Luo Shengyang. Android Source Code Scenario Analysis[M]. Beijing, Publishing House of Electronics Industry, 2012 (in Chinese)

    [12] Seo J, Kim D, Cho D, et al. Flexdroid: Enforcing In-App Privilege Separation in Android[C]∥Proceedings of the 2016 Annual Network and Distributed System Security Symposium, CA, 2016

    [13] Google. Android ndk[EB/OL]. (2012-09-02)http:// developer. android. com/ tools/sdk/ ndk/ index. html

    [14] 華保健, 周艾亭, 朱洪軍. Android內(nèi)核鉤子的混合檢測(cè)技術(shù)[J]. 計(jì)算機(jī)應(yīng)用, 2014, 34(11):3336-3339 Hua Baojian, Zhou Aiting, Zhu Hongjun. Hybrid Detection Technique for Android Kernel Hook[J]. Computer Applications, 2014, 34(11): 3336-3343 (in Chinese)

    [15] Zhou Y, Patel K, Wu L, et al. Hybrid User-Level Sandboxing of Third-Party Android Apps[C]∥Proceedings of the 10th ACM Symposium on Information, Computer and Communication Security, 2015: 19-30

    [16] 金泰延,宋享周,樸知?jiǎng)?等. Android框架揭秘[M]. 北京:人民郵電出版社, 2012 Jin Taiyan, Song Xiangzhou, Piao Zhixun, et al. Inside the Android Framework[M]. Beijing, Post & Telecom Press, 2012 (in Chinese)

    [17] 鄭勇鑫. Android動(dòng)態(tài)監(jiān)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D]. 南京:東南大學(xué), 2014 Zheng Yongxin. Design and Implementation of Dynamic Monitoring System for Android[D]. Nanjing, Southeast University, 2014 (in Chinese)

    A Method for Dynamically Monitoring Android Applications

    Jiang Xu, Zhang Huixiang, Mu Dejun

    School of Automation, Northwestern Polytechnical University, Xi′an 710072, China

    In order for Android application to acquire system service without knowing their terminal user, we proposed the dynamic monitoring method. First, we monitor whether the Android applications have the third libraries; if yes, we monitor whether the third libraries have sensitive function. If the sensitive function do not exist, the Android applications are installed into a certain Android system whose call function has been hooked, thus monitoring in real time the applications' acquisition of system services. The experimental results show that the dynamic monitoring method can monitor the applications' acquisition of their system services called by both the Java layer and the local layer under the precondition that the damage to the monitoring system by an ill-intentioned application can be avoided. Besides, the overhead of the dynamic monitoring method for Android applications is acceptable.

    application programming interface (API); network security; Java programming language; real time systems; security of data; third libraries; hook; system service call; Linux; Android application; dynamic monitoring

    2016-08-26

    國家自然科學(xué)基金(61672433)資助

    蔣煦(1983—),西北工業(yè)大學(xué)博士研究生,主要從事Android系統(tǒng)安全及大數(shù)據(jù)挖掘研究。

    TP309

    A

    1000-2758(2016)06-1074-08

    猜你喜歡
    間通信調(diào)用進(jìn)程
    細(xì)胞間通信預(yù)測(cè)方法研究進(jìn)展
    核電項(xiàng)目物項(xiàng)調(diào)用管理的應(yīng)用研究
    債券市場(chǎng)對(duì)外開放的進(jìn)程與展望
    中國外匯(2019年20期)2019-11-25 09:54:58
    綜合航電分區(qū)間通信元模型設(shè)計(jì)研究
    LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
    基于系統(tǒng)調(diào)用的惡意軟件檢測(cè)技術(shù)研究
    社會(huì)進(jìn)程中的新聞學(xué)探尋
    我國高等教育改革進(jìn)程與反思
    Linux僵死進(jìn)程的產(chǎn)生與避免
    利用RFC技術(shù)實(shí)現(xiàn)SAP系統(tǒng)接口通信
    伦精品一区二区三区| 国产黄色免费在线视频| 人人妻人人爽人人添夜夜欢视频 | 最近2019中文字幕mv第一页| 日本爱情动作片www.在线观看| 亚洲精品乱久久久久久| 在线观看av片永久免费下载| 国产毛片a区久久久久| 日日摸夜夜添夜夜添av毛片| av在线app专区| 熟妇人妻不卡中文字幕| 亚洲人与动物交配视频| 欧美xxxx性猛交bbbb| 亚洲欧美中文字幕日韩二区| 午夜爱爱视频在线播放| 99热全是精品| 超碰97精品在线观看| 直男gayav资源| 人妻制服诱惑在线中文字幕| 五月伊人婷婷丁香| 成人特级av手机在线观看| 午夜福利视频1000在线观看| 别揉我奶头 嗯啊视频| 麻豆成人av视频| 国产永久视频网站| 亚洲国产欧美人成| 男人和女人高潮做爰伦理| 久久精品国产亚洲av天美| 国产精品99久久久久久久久| 国产真实伦视频高清在线观看| 久久久久久久午夜电影| 国产黄色视频一区二区在线观看| 久久久久久久亚洲中文字幕| 免费av不卡在线播放| 久久国产乱子免费精品| 国产综合精华液| 免费在线观看成人毛片| 中文资源天堂在线| 中文欧美无线码| 久久久国产一区二区| 亚洲欧美清纯卡通| 涩涩av久久男人的天堂| 日本免费在线观看一区| 亚洲一级一片aⅴ在线观看| 久久97久久精品| 国产精品一二三区在线看| 欧美变态另类bdsm刘玥| 久久99精品国语久久久| 青青草视频在线视频观看| 欧美xxxx性猛交bbbb| 欧美潮喷喷水| 亚洲国产高清在线一区二区三| 日韩制服骚丝袜av| 男插女下体视频免费在线播放| 熟妇人妻不卡中文字幕| 人人妻人人澡人人爽人人夜夜| 婷婷色综合大香蕉| 亚洲精品影视一区二区三区av| 国产一级毛片在线| 黄色日韩在线| 看非洲黑人一级黄片| 欧美一区二区亚洲| 久热久热在线精品观看| 一个人看视频在线观看www免费| 亚洲精品乱码久久久v下载方式| 黄色一级大片看看| av国产免费在线观看| 视频中文字幕在线观看| 中文字幕免费在线视频6| 一个人看视频在线观看www免费| 2021天堂中文幕一二区在线观| 成人特级av手机在线观看| 国产精品99久久99久久久不卡 | 亚洲一级一片aⅴ在线观看| 精品久久久久久久末码| 国产亚洲av片在线观看秒播厂| 国产毛片a区久久久久| 亚洲精品日韩av片在线观看| 精品午夜福利在线看| 亚洲高清免费不卡视频| av在线app专区| 国产有黄有色有爽视频| 国产国拍精品亚洲av在线观看| 99久国产av精品国产电影| 久久久a久久爽久久v久久| 欧美日韩一区二区视频在线观看视频在线 | 亚洲一级一片aⅴ在线观看| 一区二区三区乱码不卡18| 蜜桃亚洲精品一区二区三区| 久久女婷五月综合色啪小说 | 免费看av在线观看网站| 波野结衣二区三区在线| 免费av毛片视频| 好男人视频免费观看在线| 高清在线视频一区二区三区| 三级国产精品欧美在线观看| 男女国产视频网站| 晚上一个人看的免费电影| 精品少妇黑人巨大在线播放| 国产精品av视频在线免费观看| 久久韩国三级中文字幕| 欧美97在线视频| 成人毛片60女人毛片免费| 国产成人精品婷婷| 99热这里只有是精品在线观看| 波多野结衣巨乳人妻| 亚洲精品日韩在线中文字幕| 最近中文字幕高清免费大全6| 一级av片app| 亚洲最大成人中文| 免费播放大片免费观看视频在线观看| 日韩亚洲欧美综合| 国产成人午夜福利电影在线观看| 又大又黄又爽视频免费| 成年人午夜在线观看视频| 美女被艹到高潮喷水动态| 亚洲激情五月婷婷啪啪| 久久综合国产亚洲精品| 亚洲精品一区蜜桃| 夜夜看夜夜爽夜夜摸| 大码成人一级视频| 国产淫片久久久久久久久| 久久这里有精品视频免费| 亚洲精品乱码久久久久久按摩| 综合色av麻豆| 少妇人妻精品综合一区二区| 又黄又爽又刺激的免费视频.| 精品久久久噜噜| 五月玫瑰六月丁香| 亚洲精品影视一区二区三区av| 超碰97精品在线观看| 18+在线观看网站| av网站免费在线观看视频| 亚洲国产精品专区欧美| 国产亚洲最大av| 人妻少妇偷人精品九色| 一级爰片在线观看| 制服丝袜香蕉在线| 丰满人妻一区二区三区视频av| 亚洲高清免费不卡视频| 免费看av在线观看网站| 免费观看a级毛片全部| 日韩精品有码人妻一区| 最新中文字幕久久久久| 欧美变态另类bdsm刘玥| 麻豆成人av视频| 国产高潮美女av| 国产成人91sexporn| 18禁裸乳无遮挡动漫免费视频 | 欧美成人一区二区免费高清观看| 亚洲综合精品二区| 99久国产av精品国产电影| 伊人久久国产一区二区| 成人免费观看视频高清| 老司机影院毛片| 国产爱豆传媒在线观看| 午夜日本视频在线| 噜噜噜噜噜久久久久久91| 能在线免费看毛片的网站| 九九爱精品视频在线观看| 国产成人精品福利久久| av国产免费在线观看| 午夜福利视频精品| 内地一区二区视频在线| 最近最新中文字幕大全电影3| 亚洲无线观看免费| 99视频精品全部免费 在线| 国产亚洲5aaaaa淫片| 免费电影在线观看免费观看| 亚洲av电影在线观看一区二区三区 | 丰满少妇做爰视频| 色婷婷久久久亚洲欧美| 国产91av在线免费观看| 中国美白少妇内射xxxbb| 美女视频免费永久观看网站| 中文字幕久久专区| 久久久久久久久久人人人人人人| 日韩欧美精品v在线| 免费大片18禁| 欧美一级a爱片免费观看看| 日日啪夜夜撸| 亚洲综合精品二区| 亚洲国产精品999| 最新中文字幕久久久久| 在线免费观看不下载黄p国产| 内射极品少妇av片p| 日韩制服骚丝袜av| 国产精品一二三区在线看| 一个人看的www免费观看视频| 日韩三级伦理在线观看| 亚洲av不卡在线观看| 熟女电影av网| 最近中文字幕高清免费大全6| 国产大屁股一区二区在线视频| 天天躁夜夜躁狠狠久久av| 午夜免费鲁丝| 久久精品熟女亚洲av麻豆精品| 国产精品偷伦视频观看了| 国产免费一区二区三区四区乱码| 在线播放无遮挡| 亚洲美女视频黄频| 精品人妻熟女av久视频| 人人妻人人澡人人爽人人夜夜| 国产av不卡久久| 免费看av在线观看网站| 中文天堂在线官网| 丰满少妇做爰视频| 国产成人freesex在线| 亚洲精品乱久久久久久| 久久久久久久国产电影| 国产极品天堂在线| 久久国内精品自在自线图片| 国产成人精品福利久久| 久久ye,这里只有精品| 狠狠精品人妻久久久久久综合| 免费观看在线日韩| 午夜亚洲福利在线播放| 久久久精品免费免费高清| 亚洲精品成人久久久久久| 国产亚洲精品久久久com| 亚洲欧美成人精品一区二区| 七月丁香在线播放| 婷婷色av中文字幕| 欧美精品一区二区大全| 性色avwww在线观看| 欧美老熟妇乱子伦牲交| 2018国产大陆天天弄谢| 亚洲国产精品国产精品| 汤姆久久久久久久影院中文字幕| 老司机影院成人| 日韩,欧美,国产一区二区三区| 亚洲精品色激情综合| 亚洲成人一二三区av| 美女脱内裤让男人舔精品视频| 国产精品精品国产色婷婷| 高清在线视频一区二区三区| 国产精品福利在线免费观看| 亚洲国产色片| 你懂的网址亚洲精品在线观看| 搡老乐熟女国产| 亚洲国产精品国产精品| 亚洲成人中文字幕在线播放| 一级黄片播放器| av天堂中文字幕网| 日本av手机在线免费观看| 成人美女网站在线观看视频| 精品久久久久久电影网| 国产精品蜜桃在线观看| 91午夜精品亚洲一区二区三区| 王馨瑶露胸无遮挡在线观看| 久久久欧美国产精品| 久久久久久久久大av| 韩国高清视频一区二区三区| 在线看a的网站| 最近中文字幕高清免费大全6| 联通29元200g的流量卡| 免费av毛片视频| 性色av一级| 在线看a的网站| 色播亚洲综合网| 成人午夜精彩视频在线观看| 自拍欧美九色日韩亚洲蝌蚪91 | 亚洲欧美一区二区三区国产| 精品熟女少妇av免费看| 好男人视频免费观看在线| 日日摸夜夜添夜夜添av毛片| 国产精品人妻久久久影院| 中文字幕制服av| 日韩av在线免费看完整版不卡| 国模一区二区三区四区视频| www.av在线官网国产| 亚洲欧洲日产国产| 亚洲国产精品国产精品| 男女下面进入的视频免费午夜| 51国产日韩欧美| 大陆偷拍与自拍| 久久综合国产亚洲精品| 免费av观看视频| 大码成人一级视频| 最近最新中文字幕大全电影3| 日本色播在线视频| 欧美丝袜亚洲另类| 国产精品一区二区性色av| 91久久精品国产一区二区成人| 久热这里只有精品99| 亚洲av男天堂| 九九爱精品视频在线观看| 国产精品偷伦视频观看了| 亚洲国产色片| 亚洲av日韩在线播放| 久久韩国三级中文字幕| 九草在线视频观看| 视频中文字幕在线观看| 午夜视频国产福利| 免费不卡的大黄色大毛片视频在线观看| 欧美日韩亚洲高清精品| 日本与韩国留学比较| 久久久色成人| 永久网站在线| 国产亚洲精品久久久com| 亚洲色图av天堂| 在线观看美女被高潮喷水网站| 国产淫语在线视频| 国产成年人精品一区二区| 国产91av在线免费观看| 少妇被粗大猛烈的视频| 欧美日韩亚洲高清精品| 哪个播放器可以免费观看大片| 狂野欧美白嫩少妇大欣赏| 插逼视频在线观看| 一区二区三区乱码不卡18| 五月开心婷婷网| 18禁在线播放成人免费| 日日摸夜夜添夜夜添av毛片| 舔av片在线| 午夜精品一区二区三区免费看| 日本wwww免费看| 欧美丝袜亚洲另类| 只有这里有精品99| 国产视频内射| 只有这里有精品99| 99热这里只有是精品在线观看| 国产高潮美女av| 久久国内精品自在自线图片| 色网站视频免费| 最近中文字幕高清免费大全6| 亚洲精华国产精华液的使用体验| 97在线视频观看| 精品一区二区三卡| 亚州av有码| 国产久久久一区二区三区| 深夜a级毛片| 亚洲精品第二区| 亚洲av日韩在线播放| 能在线免费看毛片的网站| 色综合色国产| 天天躁日日操中文字幕| 伦理电影大哥的女人| 少妇裸体淫交视频免费看高清| 免费看不卡的av| 久久人人爽人人爽人人片va| 男女无遮挡免费网站观看| 国产精品99久久久久久久久| 久久综合国产亚洲精品| 小蜜桃在线观看免费完整版高清| 少妇人妻 视频| 欧美激情在线99| 欧美另类一区| 久久久久国产精品人妻一区二区| 黄色配什么色好看| 国产亚洲91精品色在线| 久久久久性生活片| 国产黄片美女视频| 激情五月婷婷亚洲| 性色av一级| 成人免费观看视频高清| 啦啦啦在线观看免费高清www| 国产精品久久久久久精品古装| 国产爱豆传媒在线观看| 最近2019中文字幕mv第一页| 成人毛片a级毛片在线播放| 日本欧美国产在线视频| 亚洲av日韩在线播放| 毛片女人毛片| 我的老师免费观看完整版| 高清欧美精品videossex| 三级男女做爰猛烈吃奶摸视频| 免费观看无遮挡的男女| 女人久久www免费人成看片| 亚洲精品久久午夜乱码| 久久久久国产网址| 国产精品久久久久久av不卡| 一个人看的www免费观看视频| 亚洲aⅴ乱码一区二区在线播放| 久久精品国产亚洲av涩爱| 亚洲av电影在线观看一区二区三区 | 精品熟女少妇av免费看| 五月天丁香电影| av在线蜜桃| 在线 av 中文字幕| 亚洲精品aⅴ在线观看| 国内精品宾馆在线| 亚洲av欧美aⅴ国产| 男人爽女人下面视频在线观看| av在线蜜桃| 精品一区二区三区视频在线| 男的添女的下面高潮视频| 丝袜脚勾引网站| 22中文网久久字幕| 三级国产精品片| 国产精品偷伦视频观看了| 国产亚洲一区二区精品| 欧美日韩视频精品一区| 国产爽快片一区二区三区| 又大又黄又爽视频免费| 极品少妇高潮喷水抽搐| 精品午夜福利在线看| 国产色婷婷99| 97在线视频观看| 国产成人午夜福利电影在线观看| 久久人人爽av亚洲精品天堂 | 国产午夜精品久久久久久一区二区三区| 性色av一级| 亚洲精品日韩av片在线观看| 九九爱精品视频在线观看| 99久久精品热视频| 99热这里只有是精品50| 九色成人免费人妻av| 人妻 亚洲 视频| 久久ye,这里只有精品| 亚洲国产精品999| 午夜亚洲福利在线播放| 国产黄片美女视频| 久久国内精品自在自线图片| 国内少妇人妻偷人精品xxx网站| 亚洲人与动物交配视频| 国产午夜精品久久久久久一区二区三区| 又爽又黄无遮挡网站| 国产黄频视频在线观看| 亚洲国产成人一精品久久久| 美女国产视频在线观看| 国产日韩欧美在线精品| 成人特级av手机在线观看| 免费看不卡的av| 国产综合精华液| 岛国毛片在线播放| 亚洲精品国产av成人精品| 欧美三级亚洲精品| 国产精品99久久99久久久不卡 | 干丝袜人妻中文字幕| 五月伊人婷婷丁香| 极品少妇高潮喷水抽搐| 高清av免费在线| 国产又色又爽无遮挡免| 亚洲色图综合在线观看| 99视频精品全部免费 在线| 99久国产av精品国产电影| 成人毛片a级毛片在线播放| 在线免费观看不下载黄p国产| 亚洲欧美精品专区久久| 日本三级黄在线观看| 日韩大片免费观看网站| 男女无遮挡免费网站观看| av一本久久久久| 特级一级黄色大片| 国产免费一区二区三区四区乱码| 人妻夜夜爽99麻豆av| 午夜激情福利司机影院| 3wmmmm亚洲av在线观看| 97在线人人人人妻| 精品久久久久久久久av| 伦精品一区二区三区| 色播亚洲综合网| 日本免费在线观看一区| 免费黄色在线免费观看| 3wmmmm亚洲av在线观看| 最近最新中文字幕大全电影3| 日韩av免费高清视频| 久久亚洲国产成人精品v| 亚洲,一卡二卡三卡| 最近中文字幕2019免费版| 色婷婷久久久亚洲欧美| 自拍偷自拍亚洲精品老妇| 香蕉精品网在线| 免费av毛片视频| 青春草视频在线免费观看| 亚洲最大成人av| 亚洲在久久综合| videossex国产| 亚洲精品aⅴ在线观看| 国产乱来视频区| 久久精品久久久久久噜噜老黄| 国产大屁股一区二区在线视频| 国产黄a三级三级三级人| 日韩在线高清观看一区二区三区| 女人十人毛片免费观看3o分钟| 夫妻性生交免费视频一级片| 国产熟女欧美一区二区| 午夜老司机福利剧场| 国产高潮美女av| 久久精品久久久久久久性| 亚洲欧洲国产日韩| 青春草视频在线免费观看| 久久影院123| 三级经典国产精品| 一本一本综合久久| 国产精品成人在线| 精品人妻一区二区三区麻豆| 97在线视频观看| 不卡视频在线观看欧美| 亚洲va在线va天堂va国产| 日韩人妻高清精品专区| 中文字幕制服av| 黑人高潮一二区| 在线播放无遮挡| 午夜福利视频精品| 交换朋友夫妻互换小说| 香蕉精品网在线| 亚洲精品乱久久久久久| 日韩成人伦理影院| 欧美成人一区二区免费高清观看| 国产乱人视频| 熟妇人妻不卡中文字幕| 国产黄a三级三级三级人| 搞女人的毛片| 18禁裸乳无遮挡免费网站照片| 男女啪啪激烈高潮av片| 国产爽快片一区二区三区| 中文精品一卡2卡3卡4更新| 国产成人一区二区在线| 久久久久九九精品影院| 免费高清在线观看视频在线观看| 国产在线一区二区三区精| 亚洲欧洲日产国产| 少妇高潮的动态图| 亚洲国产色片| 3wmmmm亚洲av在线观看| 中文字幕久久专区| 国产黄片视频在线免费观看| 人人妻人人澡人人爽人人夜夜| 简卡轻食公司| 哪个播放器可以免费观看大片| 又黄又爽又刺激的免费视频.| 久久影院123| 欧美最新免费一区二区三区| 51国产日韩欧美| 成人国产麻豆网| 可以在线观看毛片的网站| 久久人人爽av亚洲精品天堂 | 99久久九九国产精品国产免费| 偷拍熟女少妇极品色| 91精品一卡2卡3卡4卡| 成人特级av手机在线观看| 在线免费观看不下载黄p国产| 国产女主播在线喷水免费视频网站| 最后的刺客免费高清国语| 亚洲最大成人中文| 免费观看性生交大片5| 搞女人的毛片| 国产亚洲最大av| 尾随美女入室| 在线观看国产h片| 97超碰精品成人国产| 美女xxoo啪啪120秒动态图| 日韩成人伦理影院| 久久人人爽av亚洲精品天堂 | 看免费成人av毛片| 亚洲国产精品成人综合色| 久久久久久久久久人人人人人人| 18禁裸乳无遮挡免费网站照片| 欧美日韩一区二区视频在线观看视频在线 | 天天躁日日操中文字幕| 国产男女超爽视频在线观看| 国产免费一区二区三区四区乱码| 国产熟女欧美一区二区| 午夜福利视频1000在线观看| 欧美亚洲 丝袜 人妻 在线| 中文在线观看免费www的网站| 欧美性猛交╳xxx乱大交人| 人体艺术视频欧美日本| 少妇熟女欧美另类| 日日撸夜夜添| 伦精品一区二区三区| 99久国产av精品国产电影| 亚洲天堂av无毛| 乱码一卡2卡4卡精品| 青青草视频在线视频观看| 国产成人精品久久久久久| 国产精品蜜桃在线观看| 色哟哟·www| 免费av不卡在线播放| 国产乱来视频区| 各种免费的搞黄视频| 日本熟妇午夜| 水蜜桃什么品种好| 国产精品久久久久久精品电影| 日日摸夜夜添夜夜添av毛片| 国产亚洲精品久久久com| 成人黄色视频免费在线看| 在线观看一区二区三区激情| 黄色怎么调成土黄色| av在线蜜桃| 国产乱来视频区| 久久精品国产自在天天线| 高清毛片免费看| 男女下面进入的视频免费午夜| 亚洲图色成人| 国产精品国产三级国产av玫瑰| 亚洲av中文字字幕乱码综合| 综合色av麻豆| 岛国毛片在线播放| 国内精品宾馆在线| 免费高清在线观看视频在线观看| 国产欧美日韩一区二区三区在线 | 六月丁香七月| av在线蜜桃| 日本黄色片子视频| 在线观看一区二区三区| videos熟女内射| 丰满乱子伦码专区| 国产成人freesex在线| 18禁裸乳无遮挡免费网站照片| 欧美精品人与动牲交sv欧美| 啦啦啦啦在线视频资源| 亚洲成人精品中文字幕电影| 丝瓜视频免费看黄片| 中国三级夫妇交换| 国产在线男女| 国产黄片视频在线免费观看| 大陆偷拍与自拍| 国产精品99久久99久久久不卡 | 黄色日韩在线| 一区二区三区乱码不卡18| 欧美日韩一区二区视频在线观看视频在线 | 国产亚洲av嫩草精品影院|