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

基于污點(diǎn)傳播動(dòng)態(tài)分析的Android安全系統(tǒng)研究

2017-01-12 08:48:07潘志安
現(xiàn)代電子技術(shù) 2016年23期

潘志安

摘 要: 隨著移動(dòng)互聯(lián)網(wǎng)的飛速發(fā)展,Android系統(tǒng)得到了大量用戶和開(kāi)發(fā)人員的青睞。針對(duì)Android系統(tǒng)的惡意軟件層出不窮,由此引發(fā)的危害也越來(lái)越嚴(yán)重。目前針對(duì)Android系統(tǒng)應(yīng)用程序的檢測(cè)多采用靜態(tài)分析技術(shù),通過(guò)分析代碼發(fā)現(xiàn)其惡意行為,因此準(zhǔn)確度并不是很高,而且對(duì)于新的惡意軟件變種的檢測(cè)存在較多問(wèn)題,而動(dòng)態(tài)分析技術(shù)恰好可以彌補(bǔ)這一不足?;谖埸c(diǎn)傳播的動(dòng)態(tài)分析技術(shù),在應(yīng)用程序運(yùn)行時(shí)監(jiān)測(cè)其行為并記錄相關(guān)信息進(jìn)行分析,確定其是否具有惡意軟件性質(zhì)。不僅對(duì)系統(tǒng)運(yùn)行負(fù)載較小,也便于系統(tǒng)移植進(jìn)行多平臺(tái)的開(kāi)發(fā)測(cè)試。

關(guān)鍵詞: Android系統(tǒng); 惡意軟件; 動(dòng)態(tài)分析; 污點(diǎn)標(biāo)記

中圖分類號(hào): TN929.5?34; TM417 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2016)23?0039?04

針對(duì)目前Android系統(tǒng)惡意軟件檢測(cè)技術(shù)的研究現(xiàn)狀,對(duì)Android 安全監(jiān)控系統(tǒng)進(jìn)行了研究和設(shè)計(jì),在應(yīng)用程序框架層和Dalvik虛擬機(jī)層監(jiān)控、記錄應(yīng)用程序行為的方式,構(gòu)建了新的污點(diǎn)傳播監(jiān)控系統(tǒng),跟蹤被污點(diǎn)標(biāo)記的敏感數(shù)據(jù)在系統(tǒng)中的傳播過(guò)程并進(jìn)行信息記錄分析,確定應(yīng)用程序行為是否具有惡意軟件性質(zhì)。

1 系統(tǒng)結(jié)構(gòu)

監(jiān)控系統(tǒng)的總體設(shè)計(jì)結(jié)構(gòu)如圖1所示。本系統(tǒng)基于Android 4.1.1系統(tǒng)和Pandaboard 內(nèi)核設(shè)計(jì)。通過(guò)對(duì)系統(tǒng)的Dalvik虛擬機(jī)和應(yīng)用程序框架層的修改,實(shí)現(xiàn)了污點(diǎn)數(shù)據(jù)定義、污點(diǎn)數(shù)據(jù)標(biāo)記、污點(diǎn)標(biāo)記傳播、污點(diǎn)標(biāo)記提取和應(yīng)用程序行為分析等功能。

在圖1中,污點(diǎn)數(shù)據(jù)定義模塊的功能是定義和存儲(chǔ)敏感數(shù)據(jù)源類型,用于污點(diǎn)標(biāo)記不同類型的數(shù)據(jù);污點(diǎn)標(biāo)記模塊在應(yīng)用程序調(diào)用系統(tǒng)API進(jìn)行數(shù)據(jù)操作時(shí)對(duì)其讀取的敏感數(shù)據(jù)類型進(jìn)行污點(diǎn)標(biāo)記;污點(diǎn)傳播模塊在應(yīng)用程序和系統(tǒng)組件之間的傳遞依靠系統(tǒng)中的Binder IPC完成;污點(diǎn)標(biāo)記提取模塊負(fù)責(zé)在污點(diǎn)數(shù)據(jù)到達(dá)目標(biāo)應(yīng)用程序時(shí)記錄污點(diǎn)傳播路徑;最后通過(guò)應(yīng)用程序分析模塊篩選Android系統(tǒng)中l(wèi)ogcat應(yīng)用程序的相關(guān)行為信息并輸出。

2 系統(tǒng)詳細(xì)實(shí)現(xiàn)

2.1 污點(diǎn)數(shù)據(jù)定義模塊

針對(duì)污點(diǎn)數(shù)據(jù)源dalvik\vm\interp\Taint.h和dalvik\ src\main\java\dalvik\system\Taint.java,Taint.java的作用在于提供Dalvik虛擬機(jī)的污點(diǎn)接口,并在taint類中聲明污點(diǎn)數(shù)據(jù)源的定義,其代碼如下所示,其中TAINT_CLEAR表示為空值。

public static final int TAINT_CLEAR =0x00000000; //空值

public static final int TAINT_LOCATION = 0x00000001;

//位置

public static final int TAINT_CONTACTS = 0x00000002;

//聯(lián)系人

public static final int TAINT_MIC = 0x00000004; //話筒輸入

public static final int TAINT_PHONE_NUMBER= 0x00000008; //電話號(hào)碼

public static final int TAINT_LOCATION_GPS= 0x00000010; //GPS

public static final int …

將污點(diǎn)數(shù)據(jù)源定義為32位值的原因在于Android系統(tǒng)的應(yīng)用程序運(yùn)行在Dalvik虛擬機(jī)中。Dalvik虛擬機(jī)是Google專門(mén)為Android平臺(tái)開(kāi)發(fā)的Java虛擬機(jī),但是它不兼容java字節(jié)碼格式,而是首先將java應(yīng)用程序轉(zhuǎn)換成.dex格式再執(zhí)行。因此需要將污點(diǎn)數(shù)據(jù)源定義為.dex文件中的數(shù)據(jù)類型。

在Taint.java文件中完成污點(diǎn)數(shù)據(jù)源的聲明之后,需要在Taint.h文件中完成污點(diǎn)數(shù)據(jù)源在Dalvik解釋器中的定義。首先對(duì)污點(diǎn)數(shù)據(jù)類型進(jìn)行了定義,其結(jié)構(gòu)體為:

typedef struct Taint { u4 tag; } Taint;

在完成污點(diǎn)數(shù)據(jù)源的定義之后,就可以進(jìn)行Dalvik虛擬機(jī)和應(yīng)用程序框架層的修改,完成污點(diǎn)監(jiān)控系統(tǒng)的其他功能。

2.2 污點(diǎn)數(shù)據(jù)標(biāo)記模塊

通過(guò)分析Android系統(tǒng)架構(gòu)發(fā)現(xiàn),要實(shí)現(xiàn)污點(diǎn)數(shù)據(jù)標(biāo)記功能應(yīng)該在Dalvik虛擬機(jī)層完成,但是又涉及到應(yīng)用程序框架層API的改動(dòng),因而需要使用JNI技術(shù)。通過(guò)JNI技術(shù),Java程序中的函數(shù)可以調(diào)用本地語(yǔ)言,例如C/C++等語(yǔ)言編寫(xiě)的函數(shù),而本地語(yǔ)言中的函數(shù)方法也可以調(diào)用Java層的函數(shù)。在本監(jiān)控系統(tǒng)中,具體的方法實(shí)現(xiàn)是:首先在Java類使用native關(guān)鍵字聲明本地的方法并作為類的靜態(tài)成員;之后通過(guò)編譯生成.class文件和.h頭文件,在C/C++語(yǔ)言中完成具體的實(shí)現(xiàn)方法;最后通過(guò)編譯生成動(dòng)態(tài)鏈接庫(kù)lib*.so文件用于系統(tǒng)調(diào)用。整個(gè)流程如圖2所示。

在對(duì)數(shù)據(jù)進(jìn)行污點(diǎn)標(biāo)記之前,需要了解Dalvik虛擬機(jī)中各種對(duì)象的存儲(chǔ)方式。一個(gè).dex文件通常需要由類加載器加載原生類和Java類,然后通過(guò)解釋器根據(jù)指令集對(duì)Dalvik字節(jié)碼進(jìn)行解釋和執(zhí)行。在加載具體的類之前,需要使用mmap函數(shù)對(duì).dex文件進(jìn)行解析,將.dex文件映射到內(nèi)存中即可進(jìn)行讀/寫(xiě)操作。在完成文件解析之后,需要加載class,而加載的類則需要ClassObject數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)。

在完成函數(shù)聲明之后,在dalvik\vm\native中新建dalvik_system_Taint.cpp,完成上述兩個(gè)函數(shù)的定義。

在完成了Dalvik虛擬機(jī)層的修改之后,還需要對(duì)應(yīng)用程序框架層中的API進(jìn)行修改。首先通過(guò)惡意軟件樣本得到了惡意軟件經(jīng)常調(diào)用的API,如表1所示。

表1 Android惡意軟件常用API示例

[API\&說(shuō)明\&addPermisson() \&為系統(tǒng)增加一個(gè)權(quán)限\&getCellLocation()\&獲取當(dāng)期設(shè)備位置\&getDeviceId() \&獲取惟一的設(shè)備 ID\&getSimState()\&獲取 SIM 卡狀態(tài)\&sendTextMessage()\&向單個(gè)收件人發(fā)送短信息\&sendBoradcast()\&向接收器廣播消息\&]

對(duì)應(yīng)用程序框架層API的修改主要在Cursor包裝庫(kù),短信息管理類以及獲取設(shè)備信息管理等類。其中CursorWrapper類是Cursor類的包裝類。它提供了多種對(duì)數(shù)據(jù)庫(kù)查詢結(jié)果進(jìn)行訪問(wèn)的接口方法,因此可以通過(guò)修改Cursor類Wrapper類,使得任何調(diào)用該類的函數(shù)對(duì)象都會(huì)被進(jìn)行污點(diǎn)標(biāo)記,其實(shí)現(xiàn)方法為:首先在CursorWrapper類中定義進(jìn)行污點(diǎn)標(biāo)記的功能函數(shù);之后修改getString()等方法。

getString()方法用于接收參數(shù),其返回值同樣也為String類型。此方法多用于從Android系統(tǒng)數(shù)據(jù)庫(kù)中獲取查詢結(jié)果,因此通過(guò)修改該方法,將污點(diǎn)標(biāo)記功能嵌入其中,即可實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)查詢結(jié)果中String類型數(shù)據(jù)的污點(diǎn)標(biāo)記,其實(shí)現(xiàn)代碼為:

public String getString(int columnIndex)

{

//開(kāi)始污點(diǎn)標(biāo)記

String retString = mCursor.getString(columnIndex);

if(taint_ != Taint.TAINT_CLEAR)

{

Taint.addTaintString(retString, taint_);

}

//結(jié)束污點(diǎn)標(biāo)記

return retString;

}

由于針對(duì)Android系統(tǒng)原生的API的擴(kuò)展,因此在完成修改之后,需要更新frameworks/base/api/下的current.txt文件,使得修改后的API生效,操作命令為在編譯Android系統(tǒng)之前,在終端輸入make update?api。

2.3 污點(diǎn)數(shù)據(jù)傳播模塊

在Android系統(tǒng)中,有關(guān)Binder的實(shí)現(xiàn)在各個(gè)層都有,主要的Binder庫(kù)由本地原生代碼實(shí)現(xiàn)。Java和C++層都定義有相同功能的Binder接口,供應(yīng)用程序使用,他們實(shí)際都是調(diào)用原生Binder庫(kù)的實(shí)現(xiàn)。Binder的系統(tǒng)架構(gòu)如圖3所示。

在源代碼中定義了Parcel類,并對(duì)當(dāng)前數(shù)據(jù)位置讀取寄存器中值的方法定義進(jìn)行了修改:

public final int readInt()

{

//開(kāi)始污點(diǎn)數(shù)據(jù)追蹤

int start = dataPosition();

int val1 = nativeReadInt(mNativePtr);

int end = dataPosition();

int len = end ? start;

int tag = getTaint(start, len);

int val2 = Taint.addTaintInt(val1, tag);

return val2;

//結(jié)束污點(diǎn)數(shù)據(jù)追蹤

}

同時(shí)在cmds\servicemanager\binder.c下添加在數(shù)據(jù)傳輸時(shí)進(jìn)行污點(diǎn)標(biāo)記的命令函數(shù)。在完成IPC的污點(diǎn)設(shè)計(jì)之后,系統(tǒng)需要對(duì)應(yīng)用程序框架層的API進(jìn)行修改。以讀取視頻數(shù)據(jù)為例,在源代碼中插入了污點(diǎn)追蹤代碼。

2.4 污點(diǎn)標(biāo)記提取模塊

污點(diǎn)標(biāo)記的提取發(fā)生在污點(diǎn)數(shù)據(jù)到達(dá)目標(biāo)應(yīng)用程序時(shí),與敏感數(shù)據(jù)離開(kāi)應(yīng)用程序時(shí)進(jìn)行污點(diǎn)標(biāo)記類似,可以通過(guò)擴(kuò)展應(yīng)用程序框架層和Dalvik虛擬機(jī)中的相關(guān)函數(shù),完成污點(diǎn)標(biāo)記的提取。在完成Dalvik虛擬機(jī)污點(diǎn)標(biāo)記提取的功能之后,需要擴(kuò)展應(yīng)用程序框架層API功能,使其可以根據(jù)污點(diǎn)標(biāo)記的來(lái)源判斷應(yīng)用程序行為是否屬于惡意行為。

以發(fā)送短信方法SmsManager為例,由于Android系統(tǒng)中發(fā)送短信和數(shù)據(jù)都要使用SmsManager類的API,因此經(jīng)常被惡意軟件調(diào)用,將用戶敏感信息發(fā)送給遠(yuǎn)程主機(jī)或者直接發(fā)送短信息到高額扣費(fèi)號(hào)碼。通過(guò)擴(kuò)展SmsManager類中sendTextMessage方法,使其可以判斷變量類型的來(lái)源。

2.5 應(yīng)用程序分析模塊

在整個(gè)監(jiān)控系統(tǒng)完成之后,就可以將Android應(yīng)用程序放入該系統(tǒng)中運(yùn)行。在程序運(yùn)行期間記錄其操作,并輸出到系統(tǒng)外部。因此該模塊設(shè)計(jì)分為兩部分。

2.5.1 Logcat輸出日志

Logcat是Android系統(tǒng)中集成的一個(gè)命令行工具,Android系統(tǒng)日志存儲(chǔ)在循環(huán)緩沖區(qū)中,通過(guò)logcat就可以記錄和查看這些系統(tǒng)信息,其默認(rèn)命令為[adb] logcat [

每一個(gè)輸出的Android日志信息都有一個(gè)標(biāo)簽和優(yōu)先級(jí),Android系統(tǒng)中默認(rèn)的標(biāo)簽其優(yōu)先級(jí)由高到低分別為Verbose,Debug,Info,Warning,Error,F(xiàn)atal,Silent。其中最高級(jí)的Silent一般沒(méi)有信息輸出。監(jiān)控系統(tǒng)經(jīng)過(guò)改造之后,在logcat中新增了taintlong標(biāo)簽,通過(guò)adb logcat dalvikvm:W OSNetworkSystem:W*:S以及進(jìn)一步操作,就可以在logcat日志中提取出污點(diǎn)數(shù)據(jù)傳播的相關(guān)信息。

2.5.2 自動(dòng)化程序安裝測(cè)試

要運(yùn)行應(yīng)用程序,首先要啟動(dòng)其主活動(dòng)main avtivity。在Android應(yīng)用程序中,AndroidManifest.xml描述了main activity等信息。因此系統(tǒng)首先通過(guò)Python語(yǔ)言中的zipfile模塊解壓apk文件,然后通過(guò)AXMLPrinter對(duì)AndroidManifest.xml進(jìn)行讀取。通常定義為“android.intent.action.MAIN”標(biāo)簽的活動(dòng)即為其main activity。

3 系統(tǒng)測(cè)試及結(jié)果分析

測(cè)試環(huán)境基于Ubuntu 12.04系統(tǒng),Android系統(tǒng)為修改后的4.1.1版本。同時(shí)為了移植到Pandaboard進(jìn)行測(cè)試,需要下載適用于Pandaboard的OMAP?Panda內(nèi)核。

在程序運(yùn)行時(shí),會(huì)自動(dòng)完成發(fā)送SMS、網(wǎng)絡(luò)訪問(wèn)、讀寫(xiě)文件、解密以及撥打電話的功能。在程序運(yùn)行時(shí)運(yùn)行腳本collect.py,在Ubuntu系統(tǒng)終端可以獲得應(yīng)用程序的全部行為信息。

通過(guò)分析測(cè)試結(jié)果可以發(fā)現(xiàn),該測(cè)試應(yīng)用程序在運(yùn)行時(shí)立刻撥打了電話,同時(shí)在后臺(tái)啟動(dòng)了讀取文件,并且未經(jīng)用戶允許在后臺(tái)發(fā)送了短信。這些行為均會(huì)被惡意軟件濫用,給手機(jī)用戶帶來(lái)嚴(yán)重?fù)p失。同時(shí)該應(yīng)用程序開(kāi)啟了大量服務(wù),對(duì)系統(tǒng)運(yùn)行也會(huì)造成一定的負(fù)擔(dān)。

通過(guò)查看該測(cè)試樣本源代碼中聲明的相應(yīng)功能和測(cè)試結(jié)果相對(duì)比,可以看出本系統(tǒng)能比較準(zhǔn)確地反映樣本的行為特征,其中寫(xiě)文件、向網(wǎng)絡(luò)發(fā)送數(shù)據(jù)及信息泄露是惡意軟件的常見(jiàn)特征。

由于本系統(tǒng)對(duì)Android原生系統(tǒng)進(jìn)行了修改,運(yùn)用動(dòng)態(tài)分析技術(shù)監(jiān)測(cè)應(yīng)用程序的行為特征,因此會(huì)對(duì)系統(tǒng)運(yùn)行性能產(chǎn)生一定影響。本系統(tǒng)的性能評(píng)測(cè)標(biāo)準(zhǔn)包括開(kāi)機(jī)時(shí)間、程序啟動(dòng)時(shí)間和測(cè)試樣本從運(yùn)行到首次記錄到行為信息的時(shí)間。

首先針對(duì)系統(tǒng)進(jìn)行開(kāi)機(jī)時(shí)間測(cè)試。一共進(jìn)行了5次測(cè)試,每次的開(kāi)機(jī)時(shí)間如表2所示。

通過(guò)表2可以發(fā)現(xiàn),原生系統(tǒng)平均開(kāi)機(jī)時(shí)間為50.2 s,監(jiān)控系統(tǒng)平均開(kāi)機(jī)時(shí)間為53.4 s,性能下降6%。由于監(jiān)控系統(tǒng)主要針對(duì)Dalvik虛擬機(jī)和應(yīng)用程序框架層的修改,未對(duì)系統(tǒng)內(nèi)核進(jìn)行修改,在開(kāi)機(jī)啟動(dòng)方面監(jiān)控系統(tǒng)與原生系統(tǒng)相差不大,同時(shí)對(duì)系統(tǒng)運(yùn)行穩(wěn)定性未造成影響。

系統(tǒng)運(yùn)行應(yīng)用程序的時(shí)間測(cè)試,包括載入APK、創(chuàng)建聯(lián)系人、撥出電話和拍照四個(gè)方面,測(cè)試結(jié)果如表3所示。

通過(guò)表3可以發(fā)現(xiàn),監(jiān)控系統(tǒng)在進(jìn)行相關(guān)操作時(shí)所用時(shí)間均大于原生系統(tǒng),這是因?yàn)樵谶M(jìn)行相應(yīng)操作時(shí)還需要進(jìn)行污點(diǎn)標(biāo)記的功能,但是整體上未對(duì)系統(tǒng)帶來(lái)大量負(fù)載。值得注意的是,在進(jìn)行拍照操作時(shí),監(jiān)控系統(tǒng)比原生系統(tǒng)多耗費(fèi)了47%的時(shí)間,這主要是因?yàn)榕恼詹僮餍枰M(jìn)行額外的針對(duì)文件的污點(diǎn)標(biāo)記。

通過(guò)表4可以發(fā)現(xiàn),不同應(yīng)用程序首次獲得行為信息的時(shí)間差距很大,這是由應(yīng)用程序完成的不同功能導(dǎo)致的。總體而言,監(jiān)控系統(tǒng)可以較快地響應(yīng)和記錄程序運(yùn)行期間的行為。

4 結(jié) 論

本文應(yīng)用基于污點(diǎn)傳播的動(dòng)態(tài)分析技術(shù),針對(duì)目前Android系統(tǒng)面臨的隱私泄漏、惡意扣費(fèi)等安全威脅,設(shè)計(jì)了基于行為分析的Android安全監(jiān)控系統(tǒng)。測(cè)試結(jié)果表明,該系統(tǒng)可以發(fā)現(xiàn)并記錄絕大部分惡意軟件的行為信息,并且運(yùn)行穩(wěn)定能較快地響應(yīng)應(yīng)用程序行為進(jìn)行記錄。

目前使用沙箱進(jìn)行動(dòng)態(tài)分析,采用的是單線程的方式,導(dǎo)致分析的效率還不夠理想,因此下一步還需要研究使用多線程方式一次分析多個(gè)程序的可行性。

參考文獻(xiàn)

[1] 劉洪濤.基于Android系統(tǒng)的安全防護(hù)軟件設(shè)計(jì)與實(shí)現(xiàn)[D].天津:南開(kāi)大學(xué),2011.

[2] YEUNG D Y, DING Y X. Host?based intrusion detection using dynamic and static behavioral models [J]. Pattern recognition, 2003, 36(1): 229?243.

[3] 豐生強(qiáng).Android軟件安全與逆向分析[M].北京:人民郵電出版社,2013.

[4] PAYET E, SPOTO F. Static analysis of Android programs [J]. Information and software technology, 2012, 54(11): 1192?1201.

[5] 張宏飛,包睿,李超.工業(yè)自動(dòng)化監(jiān)控系統(tǒng)中PLC技術(shù)的應(yīng)用研究[J].現(xiàn)代電子技術(shù),2015,38(11):150?151.

[6] 任肖麗,陳佳喜,王驥.基于GPRS技術(shù)在線環(huán)境監(jiān)測(cè)系統(tǒng)的研究[J].現(xiàn)代電子技術(shù),2015,38(4):60?62.

主站蜘蛛池模板: 免费看一级毛片波多结衣| 天堂成人av| 亚洲欧洲国产成人综合不卡| 国产日韩精品一区在线不卡 | 国产午夜福利片在线观看| 经典三级久久| 久久精品一品道久久精品| 丰满少妇αⅴ无码区| av手机版在线播放| 乱人伦99久久| 亚洲精选无码久久久| 国产精品原创不卡在线| 国产素人在线| 午夜日b视频| 国产三级视频网站| 尤物成AV人片在线观看| 成人中文在线| 91在线丝袜| 国产xx在线观看| 亚洲制服丝袜第一页| 日本免费新一区视频| 国产黑丝一区| 亚洲欧美色中文字幕| 日韩不卡高清视频| 伊人成色综合网| 国产午夜精品鲁丝片| 在线日本国产成人免费的| 免费精品一区二区h| 婷婷六月综合网| 国产凹凸一区在线观看视频| 国产欧美视频综合二区| 一本大道香蕉高清久久| 操国产美女| 性色在线视频精品| 欧美视频在线第一页| 57pao国产成视频免费播放| 玖玖精品在线| 国产美女精品一区二区| 亚洲开心婷婷中文字幕| 国产成人亚洲日韩欧美电影| 欧美日韩中文国产va另类| 巨熟乳波霸若妻中文观看免费| 欧洲亚洲欧美国产日本高清| 国产黄在线免费观看| 国产一区在线视频观看| 国产原创演绎剧情有字幕的| 日本一区中文字幕最新在线| 亚洲国产在一区二区三区| 日韩毛片基地| 亚洲另类第一页| 国产成本人片免费a∨短片| 欧美精品在线观看视频| 激情無極限的亚洲一区免费| 亚洲国产欧美中日韩成人综合视频| 在线观看av永久| 免费一极毛片| 国产亚洲精久久久久久无码AV| hezyo加勒比一区二区三区| 欧美日韩精品综合在线一区| 91麻豆国产视频| 99热线精品大全在线观看| 亚洲欧州色色免费AV| 免费播放毛片| 精品国产欧美精品v| 99爱视频精品免视看| 四虎影视8848永久精品| 欧美精品v欧洲精品| 国产成人亚洲毛片| 亚洲成A人V欧美综合| 久久国产精品麻豆系列| 五月天婷婷网亚洲综合在线| 婷婷六月在线| 日韩小视频在线播放| 欧美特级AAAAAA视频免费观看| 亚洲中文字幕23页在线| 一本无码在线观看| 国产成人久久综合777777麻豆| 91黄视频在线观看| 伊人久久影视| a毛片免费观看| 免费毛片视频| 欧美色丁香|