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

    組件拒絕服務(wù)漏洞自動(dòng)挖掘技術(shù)

    2018-01-08 08:42:16周安民譚翠江
    計(jì)算機(jī)應(yīng)用 2017年11期
    關(guān)鍵詞:控制流測試用例漏洞

    周 敏,周安民,劉 亮,賈 鵬,譚翠江

    (四川大學(xué) 電子信息學(xué)院,成都 610065)

    組件拒絕服務(wù)漏洞自動(dòng)挖掘技術(shù)

    周 敏,周安民*,劉 亮,賈 鵬,譚翠江

    (四川大學(xué) 電子信息學(xué)院,成都 610065)

    針對(duì)Android應(yīng)用對(duì)獲取到的數(shù)據(jù)沒有進(jìn)行空數(shù)據(jù)和異常數(shù)據(jù)的安全驗(yàn)證,會(huì)發(fā)生崩潰導(dǎo)致組件拒絕服務(wù)的問題,提出了一種組件拒絕服務(wù)漏洞自動(dòng)化挖掘框架。通過逆向分析和靜態(tài)數(shù)據(jù)流分析技術(shù)獲取安卓應(yīng)用的包名和組件信息,同時(shí)跟蹤應(yīng)用對(duì)Intent對(duì)象的數(shù)據(jù)訪問,提取Intent對(duì)象攜帶的數(shù)據(jù)信息,并且識(shí)別公開組件啟動(dòng)私有組件的路徑信息,輔助動(dòng)態(tài)模糊測試挖掘漏洞。為了增大測試用例的覆蓋范圍和實(shí)現(xiàn)自動(dòng)化,該框架增加了對(duì)Intent的Action、Category、Data和Extra屬性的畸變,并且采用Accessibility技術(shù)自動(dòng)關(guān)閉應(yīng)用崩潰彈窗,大幅提高了檢測效率。為了驗(yàn)證框架的有效性和實(shí)用性,利用所提的框架設(shè)計(jì)實(shí)現(xiàn)了工具——DroidRVMS,并與Intent Fuzzer工具進(jìn)行了對(duì)比。實(shí)驗(yàn)結(jié)果表明,DroidRVMS能夠有效地發(fā)現(xiàn)動(dòng)態(tài)廣播組件的拒絕服務(wù)漏洞和大部分類型異常導(dǎo)致的拒絕服務(wù)攻擊。

    組件通信;拒絕服務(wù);靜態(tài)分析;動(dòng)態(tài)分析;漏洞挖掘

    0 引言

    移動(dòng)平臺(tái)上各式各樣的應(yīng)用程序呈指數(shù)式爆炸增長,其中,基于Android系統(tǒng)的應(yīng)用程序更是占據(jù)了絕對(duì)優(yōu)勢。但是,由于Android應(yīng)用開發(fā)門檻較低,開發(fā)者水平良莠不齊,一些應(yīng)用往往會(huì)因?yàn)殚_發(fā)者的安全意識(shí)不強(qiáng)、邏輯不夠嚴(yán)謹(jǐn)或者沒有對(duì)應(yīng)用進(jìn)行異常處理而存在安全漏洞。因此,安卓應(yīng)用很容易出現(xiàn)安全漏洞。

    安卓應(yīng)用是由功能豐富的組件構(gòu)成的。這些組件可以實(shí)現(xiàn)用戶交互界面、后臺(tái)服務(wù)、廣播通知等功能。同時(shí),安卓系統(tǒng)提供了Intent機(jī)制來幫助這些組件實(shí)現(xiàn)應(yīng)用間通信和應(yīng)用內(nèi)通信。借助Intent,開發(fā)者研發(fā)的任意應(yīng)用可以和軟件中的開放組件進(jìn)行通信并傳遞任意類型的數(shù)據(jù)。但是如果應(yīng)用在解析通過Intent獲取的數(shù)據(jù)時(shí)沒有進(jìn)行異常捕獲,畸形數(shù)據(jù)就可能使應(yīng)用崩潰,導(dǎo)致應(yīng)用的部分功能不可用,更甚者會(huì)導(dǎo)致整個(gè)應(yīng)用癱瘓。利用這種漏洞,攻擊者對(duì)應(yīng)用發(fā)起拒絕服務(wù)攻擊,不僅能夠直接影響用戶體驗(yàn),而且還能導(dǎo)致安全防護(hù)應(yīng)用的防護(hù)功能被繞過或失效,進(jìn)而危害用戶的隱私和財(cái)產(chǎn)安全。如何有效地實(shí)現(xiàn)對(duì)該類漏洞的挖掘,保障Android用戶的權(quán)益是亟待解決的問題[1]。

    在漏洞挖掘方面,目前通用的方法是靜態(tài)挖掘和動(dòng)態(tài)挖掘。靜態(tài)挖掘方法主要是使用了代碼審計(jì)的思想,結(jié)合應(yīng)用的函數(shù)調(diào)用圖、控制流圖以及敏感數(shù)據(jù)的傳播路徑對(duì)Android程序的源代碼進(jìn)行靜態(tài)分析來進(jìn)行漏洞挖掘,具有速度快,覆蓋率全的優(yōu)點(diǎn),可用于組件劫持漏洞挖掘[2]、隱私泄露漏洞挖掘[3-5]、Intent注入漏洞挖掘[6]等研究工作,但是誤報(bào)率比較高。動(dòng)態(tài)挖掘方法目前主要以fuzzing技術(shù)[7]為主,廣泛地應(yīng)用于挖掘應(yīng)用組件間通信機(jī)制和系統(tǒng)短信應(yīng)用的漏洞,如Yang等[8]使用模糊測試技術(shù)對(duì)應(yīng)用的功能泄露漏洞進(jìn)行挖掘,Mulliner等[9]使用模糊測試技術(shù)對(duì)系統(tǒng)短信的漏洞進(jìn)行挖掘。與靜態(tài)挖掘方法相比,動(dòng)態(tài)挖掘方法提高了準(zhǔn)確率和自動(dòng)化程度,但存在樣本覆蓋率低、效率不高的缺點(diǎn)。

    本文在研究Intent機(jī)制的基礎(chǔ)上提出了一種面向Android組件拒絕服務(wù)漏洞的自動(dòng)化漏洞挖掘框架。該框架主要由動(dòng)態(tài)分析模塊和靜態(tài)分析模塊兩部分組成。其中,靜態(tài)分析使用了逆向分析技術(shù)和數(shù)據(jù)流跟蹤技術(shù),提取應(yīng)用的組件相關(guān)信息(如公開組件信息、動(dòng)態(tài)注冊(cè)的廣播等),以及公開組件啟動(dòng)私有組件的路徑信息來輔助模糊測試。而動(dòng)態(tài)分析則基于靜態(tài)分析獲取的結(jié)果,使用模糊測試技術(shù),對(duì)應(yīng)用進(jìn)行空Intent測試、類型錯(cuò)誤Intent測試、畸變Intent測試和異常Intent測試,進(jìn)一步挖掘拒絕服務(wù)漏洞。此外,本文在模糊測試過程中采用Accessibility技術(shù)將應(yīng)用崩潰彈窗進(jìn)行關(guān)閉,實(shí)現(xiàn)了完全自動(dòng)化。

    1 背景知識(shí)與相關(guān)工作

    1.1 公開組件

    Android應(yīng)用程序通常由一個(gè)或多個(gè)基本組件共同完成其功能。而Android應(yīng)用程序的組件主要有活動(dòng)(Activity)、服務(wù)(Services)、廣播(Broadcast Receiver)和內(nèi)容提供者(Content Provider)。其中,前三者可以通過Intent對(duì)象啟動(dòng)。

    本文將應(yīng)用組件分為公開組件和私有組件兩類:公開組件指應(yīng)用對(duì)外暴露,能被其他應(yīng)用通過Intent啟動(dòng)的組件;而只能被應(yīng)用內(nèi)部其他組件訪問的組件稱為私有組件[1]。

    應(yīng)用程序組件在AndroidManifest.xml文件中被聲明為公開組件有兩種方式:第一種是顯式聲明,即直接將組件的Android:exported屬性設(shè)為true[1];第二種是隱式聲明,即為組件添加一個(gè)或者多個(gè)Intent-filter過濾器的方式[1]。

    1.2 啟動(dòng)私有組件

    當(dāng)私有組件被公開組件啟動(dòng)時(shí),也存在發(fā)生崩潰的情況。如下所示,應(yīng)用中存在一個(gè)私有組件PrivateActivity和一個(gè)公開組件MainActivity。MainActivity能夠根據(jù)對(duì)外傳入的Intent中的內(nèi)容啟動(dòng)私有組件PrivateActivity,且啟動(dòng)私有組件的Intent的內(nèi)容來自于啟動(dòng)公開組件的Intent的內(nèi)容。但是,私有組件PrivateActivity沒有對(duì)從Intent中獲取的內(nèi)容進(jìn)行異常處理,故攻擊者精心構(gòu)造的Intent內(nèi)容可以通過公開組件MainActivity讓私有組件PrivateActivity崩潰,從而發(fā)生拒絕服務(wù)攻擊。

    //私有組件PrivateActivity

    public class PrivateActivity extends Activity{

    private static final String SAMPLE_STRING_TEST=

    "sample_string_test";

    @Override

    protected void onCreate(Bundle savedInstanceState){

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    String value=getIntent().getStringExtra

    (SAMPLE_STRING_TEST);

    String subValue=value.substring(0);

    Toast.makeText(getAoolicationContext(),

    subValue,Toast.LENGTH_SHORT).show();

    }

    }

    //公開組件MainActivity

    public class MainActivity extends Activity{

    @Override

    protected void onCreate(Bundle savedInstanceState){

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    Intent intent=this.getIntent();

    if(intent.getBooleanExtra("allowed",false)){

    ComponentName componentName=new ComponentName

    (this, "PrivateActivity");

    intent.setComponent(componentName);

    this.startActivity(this.getIntent);

    }

    }

    }

    //攻擊命令

    adb shell am start -n com.privatecomponent/.

    MainActivity --ez "allowed" true

    1.3 本地拒絕服務(wù)漏洞介紹

    本文將產(chǎn)生本地拒絕服務(wù)的原因分為5種:空指針異常導(dǎo)致的漏洞、類型轉(zhuǎn)換異常導(dǎo)致的漏洞、數(shù)組訪問越界異常導(dǎo)致的漏洞、類未定義異常導(dǎo)致的漏洞以及其他異常導(dǎo)致的漏洞[10]。

    1)當(dāng)應(yīng)用程序沒有對(duì)getAction()、getStringExtra()等函數(shù)獲取到的數(shù)據(jù)進(jìn)行空指針判斷,從而產(chǎn)生空指針異常而導(dǎo)致應(yīng)用崩潰,這稱為空指針異常拒絕服務(wù)漏洞(NullPointerException)[10]以getAction()函數(shù)為例,產(chǎn)生漏洞的偽代碼如下所示:

    //攻擊者代碼

    intent.putExtra("serializable_key", BigInteger.valueOf(1));

    startActivity(intent);

    //啟動(dòng)受害者組件

    //受害者代碼片段

    Intent i=getIntent();

    if(i.getAction().equals("android.intent.action.MAIN "))

    {

    Toast.makeText(this, "Test!", Toast.LENGTH_LONG).show();

    }

    2)當(dāng)應(yīng)用程序沒有對(duì)getSerializableExtra()等函數(shù)獲取到的數(shù)據(jù)進(jìn)行類型判斷就直接進(jìn)行強(qiáng)制類型轉(zhuǎn)換,從而產(chǎn)生類型轉(zhuǎn)換異常而導(dǎo)致應(yīng)用崩潰,這稱為類型轉(zhuǎn)換異常拒絕服務(wù)漏洞(ClassCastException)[10]。以getSerializableExtra()函數(shù)為例,產(chǎn)生漏洞的偽代碼如下所示:

    //攻擊者代碼片段

    intent.putExtra("serializable_key", BigInteger.valueOf(1));

    startActivity(i);

    //啟動(dòng)受害者組件

    //受害者代碼片段

    Intent i=getIntent();

    String test=(String)i.getSerializableExtra("serializable_key")

    3)當(dāng)應(yīng)用程序沒有對(duì)getIntegerArrayListExtra()等函數(shù)獲取到的數(shù)據(jù)數(shù)組元素大小進(jìn)行判斷,從而產(chǎn)生數(shù)組訪問越界而導(dǎo)致應(yīng)用崩潰,這稱為數(shù)組訪問越界異常拒絕服務(wù)漏洞(IndexOutOfBoundsExceptio)[10]。以getIntegerArrayListExtra()函數(shù)為例,產(chǎn)生漏洞的偽代碼如下所示:

    //攻擊者代碼片段

    ArrayList cve_id=new ArrayList();

    intent.putExtra("cve_id", cve_id);

    startActivity(intent);

    //啟動(dòng)受害者組件

    //受害者代碼

    Intent intent=getIntent();

    ArrayList intArray=

    intent.getIntegerArrayListExtra("cve_id");

    if (intArray !=null) {

    for (int i=0; i

    intArray.get(i);

    }

    }

    4)當(dāng)應(yīng)用程序無法找到從getSerializableExtra()、getParcelable()等函數(shù)中獲取到的序列化類對(duì)象的類定義,從而發(fā)生類未定義的異常而導(dǎo)致應(yīng)用崩潰,這稱為類未定義異常拒絕服務(wù)漏洞(ClassNotFoundException)[10]。以getSerializableExtra()函數(shù)為例,產(chǎn)生漏洞的偽代碼如下所示:

    //攻擊者代碼, SelfSerializableData 這個(gè)類未定義

    i.putExtra("serializable_key", new SelfSerializableData());

    startActivity(i);

    //啟動(dòng)受害者組件

    //受害者代碼

    Intent intent=getIntent();

    intent.getSerializableExtra("serializable_key");

    5)其他異常導(dǎo)致的拒絕服務(wù)漏洞:如IllegalArgumentException、UnsupportedOperationException異常等導(dǎo)致的拒絕服務(wù)。

    1.4 相關(guān)研究及挑戰(zhàn)

    目前,針對(duì)應(yīng)用組件拒絕服務(wù)漏洞,主流的漏洞挖掘工具是iSEC Partners公司設(shè)計(jì)的Intent Fuzzer工具[11]。該工具運(yùn)行在Android設(shè)備上,其工作原理是通過PackageManager獲取系統(tǒng)中所有安裝應(yīng)用的信息,以及各應(yīng)用中Activity、Service和Broadcast Receiver這3類暴露組件的信息,然后通過調(diào)用startActivity(Intent)、startService(Intent)、sendBroadcast(Intent)等啟動(dòng)函數(shù)發(fā)送Intent消息到Activity、Service和Broadcast Receiver組件中進(jìn)行測試。但該工具不支持對(duì)Activity類組件進(jìn)行大量的測試。此外,Intent Fuzzer工具還存在不能完全實(shí)現(xiàn)自動(dòng)化測試、沒有日志輸出和僅發(fā)送空Intent消息等問題。

    Maji等[12]對(duì)Intent Fuzzer工具進(jìn)行了改進(jìn),設(shè)計(jì)了JarJarBinks工具。該工具通過startActivityForResult(Intent,int)函數(shù)來啟動(dòng)應(yīng)用程序的Activitiy,進(jìn)而可以通過調(diào)用finishActivity()函數(shù)來關(guān)閉Actvity,回收系統(tǒng)資源,實(shí)現(xiàn)了對(duì)大量的Activity進(jìn)行測試。與Intent Fuzzer相比,JarJarBinks工具不僅實(shí)現(xiàn)了對(duì)Activity類組件的測試,而且Intent測試用例增加了隨機(jī)的Extras,實(shí)現(xiàn)了更廣泛的測試。但JarJarBinks工具不能準(zhǔn)確獲得應(yīng)用中Extras的type和name信息,因而仍然不能對(duì)組件進(jìn)行深入有效的Fuzzing測試。

    實(shí)際上,現(xiàn)有的工具都不能自動(dòng)關(guān)閉應(yīng)用崩潰時(shí)的系統(tǒng)彈窗,不能完全實(shí)現(xiàn)自動(dòng)化測試; 而且現(xiàn)有工具都是只對(duì)AndroidManifest.xml文件中注冊(cè)的公開組件進(jìn)行測試,不能對(duì)應(yīng)用中動(dòng)態(tài)注冊(cè)的Broadcast Receiver組件進(jìn)行測試,也不能對(duì)通用型的Android應(yīng)用組件拒絕服務(wù)進(jìn)行測試。

    因此,為了實(shí)現(xiàn)基于Fuzzing的Android組件拒絕服務(wù)漏洞的自動(dòng)化挖掘,其挑戰(zhàn)在于如何在擴(kuò)大測試用例覆蓋范圍的基礎(chǔ)上,自動(dòng)關(guān)閉應(yīng)用崩潰時(shí)彈出的窗口,實(shí)現(xiàn)批量應(yīng)用的漏洞挖掘,提高漏洞挖掘效率。

    1)如何擴(kuò)大測試用例的覆蓋范圍?不僅要考慮到應(yīng)用中動(dòng)態(tài)注冊(cè)的Broadcast Receiver組件的測試和私有組件的測試,還要考慮對(duì)Intent更多屬性的隨機(jī)測試,以及畸變策略的多樣化。

    2)如何自動(dòng)關(guān)閉應(yīng)用崩潰窗口,實(shí)現(xiàn)完全自動(dòng)化?使用Android Accessibility機(jī)制實(shí)現(xiàn)對(duì)程序崩潰時(shí)系統(tǒng)彈窗的實(shí)時(shí)監(jiān)視和關(guān)閉,讓模糊測試在每次被彈窗阻塞后得以繼續(xù)執(zhí)行,實(shí)現(xiàn)完全自動(dòng)化的應(yīng)用組件拒絕服務(wù)漏洞挖掘。

    2 基于逆向工程和數(shù)據(jù)流的靜態(tài)分析

    靜態(tài)分析主要進(jìn)行逆向分析和數(shù)據(jù)流分析的工作,挖掘私有組件導(dǎo)致的拒絕服務(wù)漏洞。

    2.1 逆向分析

    首先,需要檢測APK文件是否進(jìn)行了加固處理,由于經(jīng)過加固處理的APK文件逆向分析得不到應(yīng)用程序真正的代碼,所以本文不對(duì)其進(jìn)行考慮。

    對(duì)于未經(jīng)過加固處理的APK文件,該工作主要是將APK文件進(jìn)行解壓縮,提取APK中的Dex、AndroidManifest.xml等文件。然后使用AXMLPrinter2.jar工具將二進(jìn)制的AndroidManifest.xml文件解析成文本形式的xml文件,提取應(yīng)用的組件和包名等信息。同時(shí)使用dex2jar工具將DEX文件轉(zhuǎn)換成jar文件,再使用cfr工具將jar文件反編譯成Java源碼文件,得到代碼中動(dòng)態(tài)注冊(cè)的Broadcast Receiver信息,組件間的調(diào)用關(guān)系以及各組件接收Intent消息的Extra數(shù)據(jù)名稱和類型。將獲取的這些信息保存于info.txt文件中,后面用于動(dòng)態(tài)分析時(shí)確定待測組件以及根據(jù)變異策略生成測試用例。另外,還要使用baksmali.jar工具將DEX文件反編譯成Smali文件,用于2.2節(jié)的數(shù)據(jù)流分析工作。

    2.2 數(shù)據(jù)流分析

    數(shù)據(jù)流分析工作主要是構(gòu)建控制流圖來表示公開組件對(duì)私有組件的啟動(dòng)情況,從而得到存在拒絕服務(wù)的私有組件名稱和發(fā)生崩潰的啟動(dòng)路徑。

    控制流圖的構(gòu)建是基于DEX文件反編譯后的Smali代碼上的,避免了用現(xiàn)有工具生成控制流圖時(shí)引入大量無關(guān)系統(tǒng)庫函數(shù)的問題,提高了分析效率。構(gòu)圖時(shí),以每個(gè)公開組件的入口函數(shù)作為入口點(diǎn),分別構(gòu)造組件內(nèi)控制流圖和組件間控制流圖,然后將各部分控制流圖連接成一個(gè)完整的控制流圖[13]。

    生成組件內(nèi)控制流圖時(shí),根據(jù)if-else, try-catch這類跳轉(zhuǎn)指令對(duì)Smali代碼進(jìn)行分塊,每一個(gè)代碼塊作為控制流圖的一個(gè)節(jié)點(diǎn),代碼塊之間的跳轉(zhuǎn)作為控制流圖的有向邊,指向程序的執(zhí)行方向,其中,Intent的接收者對(duì)接收數(shù)據(jù)時(shí)可能發(fā)生的異常進(jìn)行了正確處理的,其有向邊用實(shí)線表示,若沒有,就用虛線表示。為了保證完整,需要同時(shí)對(duì)與組件生命周期內(nèi)各種狀態(tài)相關(guān)的系統(tǒng)回調(diào)函數(shù)進(jìn)行控制流圖的構(gòu)建。然后再根據(jù)回調(diào)函數(shù)的執(zhí)行順序,在回調(diào)函數(shù)之間添加對(duì)應(yīng)的有向邊(實(shí)線還是虛線)。

    生成組件間控制流圖時(shí),根據(jù)應(yīng)用組件間的Intent調(diào)用關(guān)系,包括顯式Intent調(diào)用和隱式Intent調(diào)用,將組件內(nèi)控制流圖連接起來,成為一個(gè)完整的控制流圖。

    由于控制流圖是一個(gè)連通圖,本文采用深度優(yōu)先搜索(Depth First Search, DFS)[14]算法對(duì)得到的完整控制流圖進(jìn)行路徑搜索,獲取控制流圖中全部的未經(jīng)try-catch指令異常處理的調(diào)用路徑。以圖1為例,說明使用深度優(yōu)先搜索算法搜索符合條件的路徑的過程,其中,v0節(jié)點(diǎn)表示公開組件入口函數(shù)所在節(jié)點(diǎn),v4節(jié)點(diǎn)表示私有組件入口函數(shù)所在的節(jié)點(diǎn)。

    圖1 深度優(yōu)先搜索算法搜索路徑的過程Fig. 1 Algorithm of searching path by DFS

    1)首先建立一個(gè)存儲(chǔ)節(jié)點(diǎn)的??臻g,將起始節(jié)點(diǎn)v0入棧,并將其標(biāo)記為入棧狀態(tài)。

    2)從v0節(jié)點(diǎn)出發(fā),找到下一個(gè)相鄰的非入棧節(jié)點(diǎn)v1、v2或v3,假設(shè)先訪問v1節(jié)點(diǎn),將v1節(jié)點(diǎn)入棧,并標(biāo)記為入棧狀態(tài)。然后判斷v0和v1之間的有向邊是否為虛線: 若是,繼續(xù)向下來到v1節(jié)點(diǎn),重復(fù)步驟2);若不是,從棧頂彈出v1節(jié)點(diǎn),并將v1節(jié)點(diǎn)標(biāo)記為非入棧狀態(tài),繼續(xù)對(duì)v0的下一個(gè)除v1節(jié)點(diǎn)外相鄰的非入棧節(jié)點(diǎn)重復(fù)步驟2)。

    3)由于這里v0和v1之間是實(shí)線,v0和v2之間是虛線,所以此時(shí)棧頂是v2節(jié)點(diǎn)。

    4)從v2節(jié)點(diǎn)出發(fā),找到v2節(jié)點(diǎn)的下一個(gè)相鄰的非入棧節(jié)點(diǎn)v4,將v4節(jié)點(diǎn)入棧,并標(biāo)記為入棧狀態(tài)。然后,判斷v2和v4之間的有向邊是否為虛線: 若是,繼續(xù)向下來到v4,由于v4是終止節(jié)點(diǎn),因此得到一條路徑;若不是,從棧頂彈出v2節(jié)點(diǎn),并將v2節(jié)點(diǎn)標(biāo)記為非入棧狀態(tài),繼續(xù)對(duì)v0下一個(gè)除v1,v2節(jié)點(diǎn)外相鄰的非入棧節(jié)點(diǎn)重復(fù)步驟2)。

    5) 由于這里v2和v4之間是實(shí)線,v0和v3之間是虛線,所以此時(shí)棧頂是v3節(jié)點(diǎn)。

    6)從v3節(jié)點(diǎn)出發(fā),重復(fù)步驟4),由于v3與v4之間是虛線且v4是終止節(jié)點(diǎn),所以找到一條路徑v0 →v3 →v4。

    7)此時(shí)棧頂是v4節(jié)點(diǎn)。從棧頂彈出v4節(jié)點(diǎn),并將v4節(jié)點(diǎn)標(biāo)記為非入棧狀態(tài)。

    8)此時(shí)棧頂是v2節(jié)點(diǎn),由于v2節(jié)點(diǎn)沒有除剛出棧的v4節(jié)點(diǎn)外的相鄰非入棧節(jié)點(diǎn),因此將v2節(jié)點(diǎn)出棧,并標(biāo)記為非入棧狀態(tài)。

    9)此時(shí)棧頂是v0節(jié)點(diǎn),由于與v0節(jié)點(diǎn)相鄰的節(jié)點(diǎn)都已被訪問過,因此彈出v0節(jié)點(diǎn),并標(biāo)記為非入棧狀態(tài)。此時(shí)棧空間為空,結(jié)束整個(gè)路徑搜索過程。

    利用深度優(yōu)先算法獲取到所有未經(jīng)異常處理的公開組件啟動(dòng)私有組件的路徑后。將這些路徑以及對(duì)應(yīng)的公開組件和私有組件名稱保存于VulPath.txt文件中,后續(xù)結(jié)合相關(guān)的Extra信息用來生成特殊的造成系統(tǒng)服務(wù)級(jí)聯(lián)崩潰的測試用例,用來測試私有組件。

    3 基于Fuzzing和Accessibility的動(dòng)態(tài)分析

    3.1 模糊測試

    3.1.1 測試用例生成策略

    為了增大測試用例的覆蓋范圍,本文針對(duì)Intent的Component、Action、Category、Data、Extra這5種屬性構(gòu)造測試用例。其中,采用的Intent構(gòu)建策略有六類。

    第一類測試用例是不攜帶任何額外數(shù)據(jù)的Intent消息,即直接使用AndroidManifest.xml文件和DEX文件分析得到的組件包名和組件名設(shè)置Intent的Component屬性,而其他屬性為空[15]。

    第二類測試用例只設(shè)置了Action、Category、Data三種屬性中的任意一種,其余兩種屬性為空或隨機(jī)值。其中Action[16]和Category[16]屬性的值均取自Android提供的標(biāo)準(zhǔn)值,Data屬性的值取自構(gòu)建的幾類典型的Data URL。構(gòu)建的幾類經(jīng)典的Data URL如表1所示[15]。

    表1 幾類典型Data URLTab. 1 Typical Data URL

    第三類測試用例設(shè)置了Action、Category、Data三種屬性中的任意兩種,另一種屬性為空或隨機(jī)值。同樣,Action和Category屬性的值均取自Android提供的標(biāo)準(zhǔn)值,Data屬性的值取自構(gòu)建的幾類典型的Data值[15]。

    第四類測試用例則同時(shí)設(shè)置了Action、Category、Data三種屬性。其中Action和Category屬性的值取自Android提供的標(biāo)準(zhǔn)值,Data屬性的值取自構(gòu)建的幾類典型的Data值[15]。

    第五類測試用例是在前四類測試用例的基礎(chǔ)上增加對(duì)Extras屬性的設(shè)置。此時(shí),測試用例需指定Extras屬性中的數(shù)據(jù)名稱[15],其值已在DEX文件分析時(shí)獲取,數(shù)據(jù)值則是隨機(jī)的。為了提高效率,針對(duì)Extras屬性常攜帶的幾類數(shù)據(jù)類型,本文對(duì)不同的數(shù)據(jù)類型分別設(shè)計(jì)了典型的數(shù)值進(jìn)行數(shù)據(jù)填充,如表2所示[17]。

    表2 Extras屬性各數(shù)據(jù)類型的數(shù)值填充模板Tab. 2 Padding template of extras attribute for each data type

    第六類測試用例是針對(duì)VulPath.txt文件中信息和Extras屬性構(gòu)建的,用來測試通過級(jí)聯(lián)反應(yīng)引起的私有組件的崩潰。其中,Extra屬性名稱已在DEX文件分析時(shí)獲取到,數(shù)據(jù)值是隨機(jī)的。

    通過上述的測試用例生成策略,可以生成與目標(biāo)組件所接收的Intent的屬性完全匹配、半匹配以及完全不匹配的Intent測試用例,最大限度地提高了測試用例的覆蓋范圍。

    3.1.2 測試過程

    模糊測試的流程為:

    1)基于測試用例生成策略構(gòu)造大量的多類型的Intent。

    2)將待測試的應(yīng)用安裝到Android模擬器上。

    3)借助ADB工具將測試用例發(fā)送給目標(biāo)應(yīng)用的每一個(gè)公開組件和動(dòng)態(tài)注冊(cè)的廣播組件。

    4)使用Logcat收集測試期間的各類日志信息。

    5)通過對(duì)日志信息中“Fatal Exception:main”字符串的監(jiān)控來獲取應(yīng)用程序崩潰時(shí)的相關(guān)的日志信息,以及保存造成崩潰的測試用例。

    這里僅將測試用例以顯式Intent的方式發(fā)送給公開組件和動(dòng)態(tài)廣播組件。但是表1構(gòu)建的幾類經(jīng)典的Data URL數(shù)據(jù)中content://***數(shù)據(jù)值可以測試Content Provider組件,測試用例生成策略六可以用來測試私有組件。

    3.2 應(yīng)用崩潰監(jiān)控

    在實(shí)際測試過程中,當(dāng)應(yīng)用程序發(fā)生崩潰時(shí),Android系統(tǒng)會(huì)進(jìn)行系統(tǒng)級(jí)別的彈窗以提示用戶應(yīng)用程序已停止運(yùn)行,需要手動(dòng)關(guān)閉,這在很大程度上影響了自動(dòng)化的實(shí)現(xiàn)。

    本文利用Android Accessibility機(jī)制能夠?qū)崟r(shí)獲取當(dāng)前Android設(shè)備窗口狀態(tài)改變信息和窗口元素信息的特點(diǎn),通過監(jiān)聽窗口狀態(tài)的改變來判斷系統(tǒng)彈窗,獲取窗口的元素信息,采用模擬點(diǎn)擊技術(shù)關(guān)閉彈窗,成功解決了該問題,實(shí)現(xiàn)了完全自動(dòng)化。其具體實(shí)現(xiàn)步驟為:

    步驟1 創(chuàng)建一個(gè)MyAccessibilityService類繼承Accessibility機(jī)制提供的AccessibilityService接口類。

    步驟2 注冊(cè)崩潰窗口監(jiān)聽事件。根據(jù)應(yīng)用崩潰時(shí),窗口上通常會(huì)出現(xiàn)“很抱歉,xxx已停止運(yùn)行?!钡奶崾咎卣鲗?duì)應(yīng)用崩潰彈窗進(jìn)行監(jiān)聽。

    步驟3 實(shí)現(xiàn)關(guān)閉窗口事件。如果出現(xiàn)了應(yīng)用崩潰彈窗,則通過findAccessibilityNodeInfoByText函數(shù)找到窗口中的“確定”按鈕,執(zhí)行點(diǎn)擊操作將彈窗進(jìn)行關(guān)閉。自動(dòng)化關(guān)閉窗口事件的偽代碼如下:

    List

    sorry_nodes=event.getSource().

    findAccessibilityNodeInfosByText("很抱歉");

    if (sorry_nodes!=null && !sorry_nodes.isEmpty()){

    List

    ok_nodes=event.getSource().

    findAccessibilityNodeInfosByText("確定");

    if (ok_nodes!=null && !ok_nodes.isEmpty()){

    AccessibilityNodeInfo node;

    for(int i=0; i

    node=ok_nodes.get(i);

    if(node.getClassName().equals("android.widget.Button") &&

    node.isEnabled()){

    node.performAction

    (AccessibilityNodeInfo.ACTION_CLICK);

    }

    }

    }

    }

    4 實(shí)驗(yàn)與分析

    為了驗(yàn)證框架的有效性,本文基于該框架設(shè)計(jì)實(shí)現(xiàn)了工具——DroidRVMS,使用該工具對(duì)從Android應(yīng)用市場下載的300個(gè)應(yīng)用程序進(jìn)行了組件拒絕服務(wù)漏洞挖掘?qū)嶒?yàn),同時(shí),使用開源的組件拒絕服務(wù)漏洞挖掘工具Intent Fuzzer[11]對(duì)相同的測試樣本進(jìn)行漏洞挖掘,并將測試結(jié)果與DroidRVMS的測試結(jié)果進(jìn)行對(duì)比,表明DroidRVMS具有有效性和實(shí)用性。

    4.1 實(shí)驗(yàn)數(shù)據(jù)和實(shí)驗(yàn)環(huán)境

    實(shí)驗(yàn)數(shù)據(jù)來源于5個(gè)主流的第三方應(yīng)用市場,共300個(gè),涵蓋了系統(tǒng)、新聞、影音、辦公、交通、社交、購物、游戲共8種類型的應(yīng)用,應(yīng)用的分布如表3所示。

    表3 實(shí)驗(yàn)數(shù)據(jù)集Tab. 3 Data set of experiment

    實(shí)驗(yàn)環(huán)境為安裝有Android Nexus5模擬器的64位 Windows 7系統(tǒng)計(jì)算機(jī),Intel Xeon E3-1231 v3 3.40 GHz CPU, 8 GB內(nèi)存。

    4.2 實(shí)驗(yàn)結(jié)果分析

    使用DroidRVMS對(duì)300個(gè)測試樣本進(jìn)行測試后共發(fā)現(xiàn) 112個(gè)應(yīng)用存在組件拒絕服務(wù)漏洞,其中導(dǎo)致應(yīng)用拒絕服務(wù)的組件共674個(gè)。測試結(jié)果如表4所示。

    表4 測試結(jié)果Tab. 4 Result of DroidRVMS analysis

    用Intent Fuzzer工具對(duì)相同的測試樣本進(jìn)行Fuzzing測試后,共發(fā)現(xiàn)78個(gè)應(yīng)用中存在組件拒絕服務(wù)漏洞,419個(gè)導(dǎo)致應(yīng)用拒絕服務(wù)的組件。圖2是兩個(gè)工具的測試結(jié)果對(duì)比。

    圖2 兩個(gè)工具的整體測試結(jié)果對(duì)比Fig. 2 Overal test results of comparative tools

    從總體數(shù)量上看,與Intent Fuzzer工具相比,在相同測試樣本的情況下,DroidRVMS能夠挖掘出更多的組件拒絕服務(wù)漏洞。

    為進(jìn)一步對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行分析,本文對(duì)兩個(gè)工具發(fā)現(xiàn)的不同類型組件引起的組件拒絕服務(wù)漏洞數(shù)量和檢測出的組件拒絕服務(wù)漏洞的異常分布情況進(jìn)行統(tǒng)計(jì),統(tǒng)計(jì)結(jié)果分別如圖3和圖4所示。

    圖3 各類組件引起的組件拒絕服務(wù)漏洞數(shù)量Fig. 3 Number of vulnerabilities caused by various components

    圖4 造成組件拒絕服務(wù)漏洞的異常分布情況Fig. 4 Distribution of various exceptions causing vulnerabilities

    從圖3可以看出,與Intent Fuzzer工具相比, DroidRVMS能夠發(fā)現(xiàn)除了Activity組件、Service組件和靜態(tài)Broadcast Receiver組件的拒絕服務(wù)漏洞外,還能發(fā)現(xiàn)動(dòng)態(tài)Broadcast Receiver組件的拒絕服務(wù)漏洞。此外,DroidRVMS發(fā)現(xiàn)其他三類組件的拒絕服務(wù)漏洞數(shù)量都比Intent Fuzzer工具多,說明DroidRVMS能夠挖掘出更深層次的組件拒絕服務(wù)漏洞。

    從圖4可以看出,與Intent Fuzzer工具相比,DroidRVMS能夠發(fā)現(xiàn)除空指針異常外的更多類型異常導(dǎo)致的組件拒絕服務(wù)漏洞,說明DroidRVMS的覆蓋范圍更廣。

    由上述實(shí)驗(yàn)結(jié)果可知,本文設(shè)計(jì)實(shí)現(xiàn)的DroidRVMS能夠有效地挖掘出應(yīng)用中存在的組件拒絕服務(wù)漏洞,且比Intent Fuzzer挖掘的層次更深,覆蓋范圍更廣。

    5 結(jié)語

    針對(duì)Android應(yīng)用組件中影響范圍廣、危害嚴(yán)重的組件拒絕服務(wù)漏洞,本文提出了一種結(jié)合靜態(tài)分析技術(shù)和動(dòng)態(tài)分析技術(shù)的自動(dòng)化漏洞挖掘框架。該框架通過逆向工程技術(shù)和靜態(tài)數(shù)據(jù)流分析技術(shù)得到組件信息、Intent攜帶的數(shù)據(jù)信息和公開組件啟動(dòng)私有組件的路徑信息,然后基于此基礎(chǔ)上,采用Fuzzing技術(shù)和Accessibility技術(shù),使用大量覆蓋范圍廣泛的畸變樣本對(duì)漏洞進(jìn)行測試,實(shí)現(xiàn)自動(dòng)挖掘組件拒絕服務(wù)漏洞的目標(biāo)。最后,設(shè)計(jì)實(shí)驗(yàn)與著名組件漏洞挖掘工具Intent Fuzzer進(jìn)行了比較,實(shí)驗(yàn)結(jié)果表明,DroidRVMS比現(xiàn)有的組件漏洞挖掘工具具有自動(dòng)化、覆蓋范圍廣、挖掘?qū)哟紊?、?zhǔn)確率高的優(yōu)勢,具有一定的有效性和實(shí)用性。

    但是本文提出的漏洞挖掘方法仍然存在一些問題:

    1)在對(duì)應(yīng)用進(jìn)行Fuzzing測試時(shí),本文根據(jù)靜態(tài)分析結(jié)果構(gòu)造的測試用例存在大量無效的情況,影響了測試的效率。故后面需要對(duì)應(yīng)用進(jìn)行更精確的靜態(tài)分析來指導(dǎo)測試用例的生成,提供測試效率。

    2)本文只對(duì)未加固應(yīng)用進(jìn)行了組件拒絕服務(wù)漏洞的自動(dòng)化挖掘,沒有考慮加固應(yīng)用,下一步需要研究對(duì)加固應(yīng)用的漏洞挖掘。

    References)

    [1] 肖衛(wèi), 張?jiān)? 楊珉. 安卓應(yīng)用軟件中Intent數(shù)據(jù)驗(yàn)證漏洞的檢測方法[J]. 小型微型計(jì)算機(jī)系統(tǒng), 2017, 38(4):813-819.(XIAO W, ZHANG Y, YANG M. Find Intent data validation vulnerability in Android application automatically and efficiently[J]. Journal of Chinese Computer Systems, 2017, 38(4): 813-819.)

    [2] LU L, LI Z, WU Z, et al. CHEX: statically vetting Android apps for component hijacking vulnerabilities[C]// Proceedings of the 2012ACM Conference on Computer and Communications Security. New York: ACM, 2012:229-240.

    [3] GIBLER C, CRUSSELL J, ERICKSON J, et al. AndroidLeaks: automatically detecting potential privacy leaks in Android applications on a large scale[C]// Proceedings of the 5th International Conference on Trust and Trustworthy Computing. Berlin: Springer-Verlag, 2012:291-307.

    [4] VALL, E-RAI R, CO P, et al. Soot: a Java bytecode optimization framework[C]// Proceedings of CASCON 1st Decade High Impact Papers. Riverton, NJ: IBM, 2010:214-224.

    [5] ARZT S, RASTHOFER S, FRITZ C, et al. FlowDroid: precise context, flow, field, object-sensitive and lifecycle-aware taint analysis for Android apps [J]. ACM SIGPLAN Notices, 2014, 49(6):259-269.

    [6] 王允超, 魏強(qiáng), 武澤慧. 基于靜態(tài)污點(diǎn)分析的Android應(yīng)用Intent注入漏洞檢測方法[J]. 計(jì)算機(jī)科學(xué), 2016, 43(9):192-196.(WANG Y C, WEI Q, WU Z H. Approach of Android applications Intent injection vulnerability detection based on static taint analysis [J]. Computer Science, 2016, 43(9):192-196.)

    [7] 李紅輝, 齊佳, 劉峰,等. 模糊測試技術(shù)研究[J]. 中國科學(xué): 信息科學(xué), 2014, 44(10):1305-1322.(LI H H, QI J, LIU F, et al. The research progress of fuzz testing technology[J]. Science China: Information Sciences, 2014, 44(10):1305-1322.)

    [8] YANG K, ZHUGE J, WANG Y, et al. Intent Fuzzer: detecting capability leaks of Android applications[C]// Proceedings of the 9th ACM Symposium on Information, Computer and Communications Security. New York: ACM, 2014:531-536.

    [9] MULLINER C, MILLER C. Fuzzing the phone in your phone[EB/OL].[2015- 01- 08].http://mulliner.org/security/sms/feed/smsfuzz_26c3.pdf.

    [10] The analysis report on generic denial of service vulnerability in Android APP[EB/OL].[2015- 01- 08].http://www.secpulse.com/archives/3859.html.

    [11] iSEC Partners. Intent Fuzzer[EB/OL]. [2016- 12- 23].https://www.isecpartners.com/tools/mobile-security/intentfuzzer.aspx.

    [12] MAJI A K, ARSHAD F A, BAGCHI S, et al. An empirical study of the robustness of Inter-component communication in Android[C]// Proceedings of the 2012 IEEE/IFIP International Conference on Dependable Systems and Networks. Piscataway, NJ: IEEE, 2012:1-12.

    [13] 湯楊, 曾凡平, 王健康,等. 基于靜態(tài)分析的Android GUI遍歷方法[J]. 計(jì)算機(jī)應(yīng)用, 2016, 36(10):2811-2815. (TANG Y, ZENG F P, WANG J K, et al. Android GUI traversal method based on static analysis [J]. Journal of Computer Applications, 2016, 36(10): 2811-2815.)

    [14] 王敏, 陳少敏, 陳亞光. 基本路徑測試用例設(shè)計(jì)算法[J]. 計(jì)算機(jī)應(yīng)用, 2013, 33(11):3262-3266.(WANG M, CHEN S M, CHEN Y G. Test case design algorithm for basic path test [J]. Journal of Computer Applications, 2013, 33(11): 3262-3266.)

    [15] 張密, 楊力, 張俊偉. FuzzerAPP:Android應(yīng)用程序組件通信魯棒性測試[J]. 計(jì)算機(jī)研究與發(fā)展, 2017, 54(2):338-347.(ZHANG M, YANG L, ZHANG J W. FuzzerAPP: the robustness test of application component communication in Android[J]. Journal of Computer Research and Development, 2017, 54(2):338-347.)

    [16] Intent class overview [EB/OL]. [2016- 11- 09].https://developer.android.com/reference/android/content/Intent.html.

    [17] 李曉洲. Android應(yīng)用程序組件漏洞測試方法研究[D]. 太原: 太原理工大學(xué), 2015:38-47. (LI X Z. Study of Android application component vulnerability testing method [D]. Taiyuan: Taiyuan University of Technology, 2015:38-47.)

    ZHOUMin, born in 1994, M. S. candidate. Her research interests include mobile security, malicious code analysis, vulnerability mining.

    ZHOUAnmin, born in 1963, research fellow. His research interests include security defense and management, mobile Internet security.

    LIULiang, born in 1982, M. S., lecturer. His research interests include vulnerability mining, malicious code analysis.

    JIAPeng, born in 1988, Ph. D. candidate. His research interests include virus propagation dynamics, binary security, malicious code analysis.

    TANCuijiang, born in 1991, M. S. candidate. His research interests include mobile security, malicious code analysis, vulnerability mining.

    MiningdenialofservicevulnerabilityinAndroidapplicationsautomatically

    ZHOU Min, ZHOU Anmin*, LIU Liang, JIA Peng, TAN Cuijiang

    (CollegeofElectronicsandInformation,SichuanUniversity,ChengduSichuan610065,China)

    Concerning the fact that when the receiver of an Intent does not validate empty data and abnormal data, the process will crash and cause denial of service, an automated Android component vulnerability mining framework based on static analysis techniques and fuzzing test techniques was proposed. In this framework, reverse analysis techniques and static data flow analysis techniques were used to extract package name, component, Intent with the data of a traffic and data flow paths from exported component to private component to assist fuzzing test. In addition, more mutation strategy on the attributes of Intent (such as Action, Category, Data and Extra) were added while generating Intent tests and the Accessibility technology was adopted to close the crash windows in order to realize automation. Finally, a tool named DroidRVMS was implemented, and a comparative experiment with Intent Fuzzer was designed to verify the validity of the framework. The experimental results show that DroidRVMS can find denial of service vulnerability resulting from dynamic broadcast receiver and most types of exceptions.

    component communication; denial of service; static analysis; dynamic analysis; vulnerability mining

    2017- 05- 12;

    2017- 06- 08。

    周敏(1994—),女,陜西漢中人,碩士研究生,主要研究方向:移動(dòng)安全、惡意代碼分析、漏洞挖掘; 周安民(1963—),男,四川成都人,研究員,主要研究方向:安全防御管理、移動(dòng)互聯(lián)網(wǎng)安全、云計(jì)算安全; 劉亮(1982—), 男,四川成都人,講師,碩士,主要研究方向:漏洞挖掘、惡意代碼分析; 賈鵬(1988—),男,四川成都人,博士研究生,主要研究方向:病毒傳播動(dòng)力學(xué)、二進(jìn)制安全、惡意代碼分析; 譚翠江(1991—), 男,四川成都人,碩士研究生,主要研究方向:移動(dòng)安全、惡意代碼分析、漏洞挖掘。

    1001- 9081(2017)11- 3288- 06

    10.11772/j.issn.1001- 9081.2017.11.3288

    (*通信作者電子郵箱zhouminscu@163.com)

    TP311

    A

    猜你喜歡
    控制流測試用例漏洞
    漏洞
    抵御控制流分析的Python 程序混淆算法
    工控系統(tǒng)中PLC安全漏洞及控制流完整性研究
    電子科技(2021年2期)2021-01-08 02:25:58
    抵御控制流分析的程序混淆算法
    基于SmartUnit的安全通信系統(tǒng)單元測試用例自動(dòng)生成
    基于混合遺傳算法的回歸測試用例集最小化研究
    三明:“兩票制”堵住加價(jià)漏洞
    漏洞在哪兒
    高鐵急救應(yīng)補(bǔ)齊三漏洞
    基于依賴結(jié)構(gòu)的測試用例優(yōu)先級(jí)技術(shù)
    国产色视频综合| 后天国语完整版免费观看| 日本撒尿小便嘘嘘汇集6| 亚洲国产精品一区三区| 岛国在线观看网站| 久久亚洲精品不卡| 亚洲九九香蕉| 成年女人毛片免费观看观看9 | 久久免费观看电影| 丰满人妻熟妇乱又伦精品不卡| 女人爽到高潮嗷嗷叫在线视频| 狠狠精品人妻久久久久久综合| 人人妻人人爽人人添夜夜欢视频| 这个男人来自地球电影免费观看| 狂野欧美激情性xxxx| 午夜日韩欧美国产| 嫩草影视91久久| 欧美日韩黄片免| 亚洲国产看品久久| 久久免费观看电影| 精品第一国产精品| 国产成人欧美| 亚洲精品国产精品久久久不卡| 欧美精品一区二区免费开放| 人人澡人人妻人| 下体分泌物呈黄色| 在线观看免费视频网站a站| 精品国产乱码久久久久久男人| 亚洲国产av影院在线观看| 脱女人内裤的视频| 久久久久久久国产电影| 啦啦啦 在线观看视频| 国产av又大| 9色porny在线观看| 亚洲熟女毛片儿| 欧美午夜高清在线| 嫁个100分男人电影在线观看| 色综合欧美亚洲国产小说| 一区二区三区乱码不卡18| 嫩草影视91久久| 国产欧美亚洲国产| 色婷婷av一区二区三区视频| 在线十欧美十亚洲十日本专区| 欧美精品高潮呻吟av久久| 国产精品av久久久久免费| 亚洲国产av新网站| 在线观看免费高清a一片| 女人被躁到高潮嗷嗷叫费观| 日韩视频一区二区在线观看| 日韩一卡2卡3卡4卡2021年| 亚洲中文日韩欧美视频| 国产精品麻豆人妻色哟哟久久| 国产一区二区三区在线臀色熟女 | 欧美日韩黄片免| 亚洲男人天堂网一区| 最新的欧美精品一区二区| 国产成人啪精品午夜网站| 一区二区三区乱码不卡18| 精品亚洲乱码少妇综合久久| 亚洲欧美一区二区三区黑人| 久久久国产一区二区| 女人爽到高潮嗷嗷叫在线视频| 热re99久久精品国产66热6| 欧美在线黄色| 亚洲久久久国产精品| 精品免费久久久久久久清纯 | 80岁老熟妇乱子伦牲交| 黄频高清免费视频| 久久精品国产亚洲av高清一级| 成人黄色视频免费在线看| av又黄又爽大尺度在线免费看| 人人澡人人妻人| 曰老女人黄片| 乱人伦中国视频| 日韩电影二区| 1024视频免费在线观看| 丰满迷人的少妇在线观看| 天堂俺去俺来也www色官网| 欧美黑人欧美精品刺激| 热99re8久久精品国产| 99国产精品99久久久久| 在线观看一区二区三区激情| 久久精品成人免费网站| 搡老乐熟女国产| 国产精品国产三级国产专区5o| 黄片小视频在线播放| 亚洲五月婷婷丁香| 久久综合国产亚洲精品| 老熟妇仑乱视频hdxx| 国产精品.久久久| 国产成人av教育| 91九色精品人成在线观看| 欧美av亚洲av综合av国产av| 国产成人影院久久av| 成人18禁高潮啪啪吃奶动态图| 精品国产超薄肉色丝袜足j| 91精品三级在线观看| 麻豆国产av国片精品| 日日夜夜操网爽| 999久久久国产精品视频| 人人妻人人澡人人爽人人夜夜| 日本vs欧美在线观看视频| 大片免费播放器 马上看| 不卡一级毛片| 丰满饥渴人妻一区二区三| 老司机在亚洲福利影院| 欧美成人午夜精品| 在线观看人妻少妇| 久久中文看片网| 99国产综合亚洲精品| 国产精品成人在线| 老司机午夜福利在线观看视频 | 成年女人毛片免费观看观看9 | 欧美黑人欧美精品刺激| 国产成人精品无人区| 最黄视频免费看| 亚洲人成电影观看| 汤姆久久久久久久影院中文字幕| 亚洲一卡2卡3卡4卡5卡精品中文| 啦啦啦中文免费视频观看日本| 天天躁夜夜躁狠狠躁躁| 大型av网站在线播放| www.熟女人妻精品国产| 亚洲全国av大片| 叶爱在线成人免费视频播放| 国产高清videossex| 久热爱精品视频在线9| 国产伦理片在线播放av一区| 夜夜夜夜夜久久久久| 在线 av 中文字幕| 日本黄色日本黄色录像| 91麻豆av在线| 亚洲专区国产一区二区| 视频区欧美日本亚洲| 爱豆传媒免费全集在线观看| 国产精品国产三级国产专区5o| 日韩,欧美,国产一区二区三区| 日本撒尿小便嘘嘘汇集6| 五月天丁香电影| 蜜桃在线观看..| 亚洲一卡2卡3卡4卡5卡精品中文| 免费在线观看影片大全网站| 成在线人永久免费视频| 久久ye,这里只有精品| 老汉色∧v一级毛片| 亚洲av电影在线进入| 成年女人毛片免费观看观看9 | 多毛熟女@视频| 国产精品一二三区在线看| 欧美激情极品国产一区二区三区| 日韩有码中文字幕| 人妻一区二区av| 国产精品久久久久久人妻精品电影 | 日韩 亚洲 欧美在线| 男女免费视频国产| 精品欧美一区二区三区在线| 国产亚洲午夜精品一区二区久久| 我的亚洲天堂| 国产欧美日韩一区二区三区在线| 亚洲av电影在线进入| 午夜福利在线免费观看网站| 91国产中文字幕| 精品少妇久久久久久888优播| 纯流量卡能插随身wifi吗| 国产欧美亚洲国产| 精品久久久久久电影网| 国产成人a∨麻豆精品| 久久人人爽人人片av| 18禁国产床啪视频网站| 中文欧美无线码| 亚洲精品av麻豆狂野| 新久久久久国产一级毛片| 亚洲精品中文字幕一二三四区 | 久久国产精品人妻蜜桃| 老司机靠b影院| 免费高清在线观看日韩| 欧美日韩一级在线毛片| 啦啦啦在线免费观看视频4| 美女视频免费永久观看网站| 日本精品一区二区三区蜜桃| 热99re8久久精品国产| 91九色精品人成在线观看| 性色av一级| 成年人免费黄色播放视频| 精品久久久久久电影网| 亚洲va日本ⅴa欧美va伊人久久 | 母亲3免费完整高清在线观看| 亚洲成国产人片在线观看| a 毛片基地| 久久天堂一区二区三区四区| 久久香蕉激情| 精品卡一卡二卡四卡免费| av在线老鸭窝| 久久久久久久久久久久大奶| 国产一区二区三区av在线| 亚洲成人手机| 国产高清视频在线播放一区 | 日本av手机在线免费观看| 亚洲 国产 在线| 亚洲欧美精品自产自拍| 免费在线观看黄色视频的| 国产99久久九九免费精品| 黄网站色视频无遮挡免费观看| 欧美黑人精品巨大| 性色av乱码一区二区三区2| 亚洲天堂av无毛| 伦理电影免费视频| 一边摸一边抽搐一进一出视频| 久久久精品免费免费高清| 国产精品偷伦视频观看了| 菩萨蛮人人尽说江南好唐韦庄| 在线十欧美十亚洲十日本专区| 青春草视频在线免费观看| 桃红色精品国产亚洲av| 制服人妻中文乱码| 黄网站色视频无遮挡免费观看| 99re6热这里在线精品视频| av片东京热男人的天堂| 在线 av 中文字幕| a级片在线免费高清观看视频| 国产熟女午夜一区二区三区| 热re99久久国产66热| 嫩草影视91久久| 午夜福利在线免费观看网站| 熟女少妇亚洲综合色aaa.| 婷婷色av中文字幕| 亚洲国产日韩一区二区| 亚洲欧美一区二区三区黑人| 久久午夜综合久久蜜桃| 国产高清视频在线播放一区 | 日韩一卡2卡3卡4卡2021年| 精品卡一卡二卡四卡免费| tube8黄色片| 成人免费观看视频高清| 国产成人啪精品午夜网站| 好男人电影高清在线观看| 色精品久久人妻99蜜桃| 久久精品亚洲熟妇少妇任你| 国产免费现黄频在线看| 精品少妇久久久久久888优播| 精品一区二区三卡| 最黄视频免费看| 九色亚洲精品在线播放| 久久人妻福利社区极品人妻图片| 91精品国产国语对白视频| 久久久精品免费免费高清| 99久久精品国产亚洲精品| 国产精品一二三区在线看| 黄频高清免费视频| 欧美日韩国产mv在线观看视频| 欧美黄色片欧美黄色片| 久久久久精品国产欧美久久久 | 欧美精品一区二区免费开放| 亚洲精品第二区| 精品国产乱码久久久久久男人| 色视频在线一区二区三区| 巨乳人妻的诱惑在线观看| 欧美人与性动交α欧美精品济南到| 曰老女人黄片| 狠狠狠狠99中文字幕| 99国产精品99久久久久| 欧美日本中文国产一区发布| 亚洲av电影在线观看一区二区三区| 日本91视频免费播放| 99精品久久久久人妻精品| 国产精品免费视频内射| 欧美在线一区亚洲| 天天躁日日躁夜夜躁夜夜| 99精品欧美一区二区三区四区| 久久久久国产一级毛片高清牌| 天天躁夜夜躁狠狠躁躁| 亚洲一卡2卡3卡4卡5卡精品中文| 久久久久久免费高清国产稀缺| 天天操日日干夜夜撸| 色播在线永久视频| 大香蕉久久网| 9色porny在线观看| 亚洲精品一二三| 亚洲第一欧美日韩一区二区三区 | 精品一区二区三卡| 日韩中文字幕视频在线看片| 亚洲精品一区蜜桃| 日本wwww免费看| 动漫黄色视频在线观看| 超色免费av| 在线 av 中文字幕| 亚洲精品中文字幕一二三四区 | 久久久国产欧美日韩av| 一级作爱视频免费观看| 老司机靠b影院| 又大又爽又粗| 亚洲欧美精品综合一区二区三区| 亚洲一码二码三码区别大吗| 不卡av一区二区三区| 亚洲av日韩精品久久久久久密| 国产精品一区二区免费欧美| 国产精品免费一区二区三区在线| 亚洲第一电影网av| 黄色女人牲交| 欧美国产日韩亚洲一区| 男人舔女人下体高潮全视频| 国产v大片淫在线免费观看| 又紧又爽又黄一区二区| 日本 av在线| 美女午夜性视频免费| 精品人妻1区二区| 免费看美女性在线毛片视频| 日本一本二区三区精品| 精华霜和精华液先用哪个| 1024手机看黄色片| 天天一区二区日本电影三级| 国产精品免费一区二区三区在线| 少妇的丰满在线观看| 精品一区二区三区视频在线观看免费| 国产精品精品国产色婷婷| 最新美女视频免费是黄的| 波多野结衣高清无吗| 亚洲av第一区精品v没综合| 精品一区二区三区av网在线观看| 精品国产亚洲在线| 亚洲av第一区精品v没综合| 免费在线观看日本一区| 色噜噜av男人的天堂激情| tocl精华| 亚洲国产精品合色在线| 色综合亚洲欧美另类图片| www.www免费av| xxx96com| 亚洲美女黄片视频| 两性夫妻黄色片| 婷婷亚洲欧美| 哪里可以看免费的av片| 成年免费大片在线观看| 欧美精品亚洲一区二区| 国产91精品成人一区二区三区| 亚洲成av人片免费观看| 波多野结衣巨乳人妻| 2021天堂中文幕一二区在线观| 亚洲精华国产精华精| 中文字幕高清在线视频| 亚洲无线在线观看| 国产亚洲精品av在线| 久久精品综合一区二区三区| 看片在线看免费视频| 久久精品影院6| 亚洲人成网站高清观看| 天堂√8在线中文| 啦啦啦观看免费观看视频高清| 日本精品一区二区三区蜜桃| 九色国产91popny在线| 久久天堂一区二区三区四区| 男女那种视频在线观看| 久久精品影院6| 精品国产乱子伦一区二区三区| 黄片小视频在线播放| 91大片在线观看| 亚洲激情在线av| 天堂影院成人在线观看| 99精品欧美一区二区三区四区| 欧美久久黑人一区二区| 亚洲精品美女久久久久99蜜臀| 淫妇啪啪啪对白视频| 欧美黑人欧美精品刺激| 窝窝影院91人妻| 国产一区二区在线av高清观看| 精品国内亚洲2022精品成人| 视频区欧美日本亚洲| 中文字幕高清在线视频| 国内毛片毛片毛片毛片毛片| 少妇熟女aⅴ在线视频| 欧美成人性av电影在线观看| 婷婷亚洲欧美| 又大又爽又粗| 日本黄大片高清| 最近在线观看免费完整版| 每晚都被弄得嗷嗷叫到高潮| 国产成人一区二区三区免费视频网站| 亚洲精品在线观看二区| 久久草成人影院| 国产一区在线观看成人免费| 国内久久婷婷六月综合欲色啪| 日韩欧美一区二区三区在线观看| 九色国产91popny在线| 亚洲精品色激情综合| 黄色a级毛片大全视频| 一二三四社区在线视频社区8| 夜夜躁狠狠躁天天躁| 99在线人妻在线中文字幕| 日日摸夜夜添夜夜添小说| 日韩三级视频一区二区三区| 日韩欧美在线乱码| 一夜夜www| 国产精品国产高清国产av| 亚洲国产精品成人综合色| 国语自产精品视频在线第100页| 国产精品久久久久久人妻精品电影| 白带黄色成豆腐渣| 男人的好看免费观看在线视频 | 亚洲精品久久国产高清桃花| 久久精品91蜜桃| 毛片女人毛片| 好男人电影高清在线观看| 免费在线观看成人毛片| 美女大奶头视频| 校园春色视频在线观看| 国产精品,欧美在线| 国产精品久久久久久人妻精品电影| 亚洲午夜精品一区,二区,三区| 色播亚洲综合网| 国产精品免费视频内射| 精品欧美国产一区二区三| 国内少妇人妻偷人精品xxx网站 | 欧美日韩国产亚洲二区| 色播亚洲综合网| 国产亚洲av高清不卡| www.www免费av| 亚洲中文字幕一区二区三区有码在线看 | 麻豆国产av国片精品| 男人舔女人的私密视频| 欧美3d第一页| 99久久精品热视频| 高潮久久久久久久久久久不卡| 国产三级黄色录像| 久久久久免费精品人妻一区二区| 岛国在线免费视频观看| 午夜两性在线视频| 国产欧美日韩一区二区精品| 亚洲精品在线观看二区| 校园春色视频在线观看| 岛国视频午夜一区免费看| 日日爽夜夜爽网站| 日韩欧美免费精品| 国产精品1区2区在线观看.| 禁无遮挡网站| 男人舔女人的私密视频| 久久久久国产一级毛片高清牌| 久久精品91蜜桃| 亚洲精品久久国产高清桃花| 12—13女人毛片做爰片一| bbb黄色大片| 日韩欧美精品v在线| 久久久久国产一级毛片高清牌| 国产av一区二区精品久久| 国产在线精品亚洲第一网站| 淫秽高清视频在线观看| 成人国产综合亚洲| 两性夫妻黄色片| 国产三级中文精品| 老司机午夜福利在线观看视频| 两个人免费观看高清视频| 观看免费一级毛片| 90打野战视频偷拍视频| 国产精品国产高清国产av| 一本久久中文字幕| 日韩精品青青久久久久久| 老司机午夜福利在线观看视频| 久久婷婷人人爽人人干人人爱| 淫妇啪啪啪对白视频| 国产精品爽爽va在线观看网站| 超碰成人久久| 黄片大片在线免费观看| 国产精品久久久久久亚洲av鲁大| 亚洲精品国产一区二区精华液| 亚洲av美国av| 亚洲午夜理论影院| 国产高清有码在线观看视频 | 亚洲av第一区精品v没综合| 三级男女做爰猛烈吃奶摸视频| 成年人黄色毛片网站| www.自偷自拍.com| 欧美成人免费av一区二区三区| 一进一出好大好爽视频| 日日摸夜夜添夜夜添小说| 一个人免费在线观看电影 | 黄片小视频在线播放| 国产1区2区3区精品| 欧美日韩乱码在线| 午夜两性在线视频| 精品无人区乱码1区二区| 国产又色又爽无遮挡免费看| 夜夜躁狠狠躁天天躁| 国产精品精品国产色婷婷| 国产乱人伦免费视频| 国产av又大| 欧美日本亚洲视频在线播放| 亚洲国产精品久久男人天堂| 国产精品九九99| 欧美 亚洲 国产 日韩一| a在线观看视频网站| 欧美+亚洲+日韩+国产| 精品午夜福利视频在线观看一区| 在线免费观看的www视频| 午夜日韩欧美国产| 中亚洲国语对白在线视频| 国产爱豆传媒在线观看 | 日本精品一区二区三区蜜桃| 欧美日韩国产亚洲二区| 免费搜索国产男女视频| 国产黄片美女视频| 国产精品 国内视频| 久久久久久久久免费视频了| 中文字幕久久专区| 琪琪午夜伦伦电影理论片6080| 免费在线观看日本一区| 丰满人妻一区二区三区视频av | 午夜福利在线在线| 亚洲成a人片在线一区二区| 久久欧美精品欧美久久欧美| 午夜激情福利司机影院| 18禁观看日本| 一进一出抽搐动态| 久久欧美精品欧美久久欧美| aaaaa片日本免费| 男人舔女人的私密视频| 欧美日韩一级在线毛片| 少妇粗大呻吟视频| 久久精品国产99精品国产亚洲性色| 国产精品一及| 91九色精品人成在线观看| 中国美女看黄片| 日韩欧美国产一区二区入口| 黄色丝袜av网址大全| av有码第一页| 激情在线观看视频在线高清| 在线观看免费午夜福利视频| 日本 av在线| 真人做人爱边吃奶动态| 男女视频在线观看网站免费 | 可以免费在线观看a视频的电影网站| 黄片小视频在线播放| 中文资源天堂在线| 久久天躁狠狠躁夜夜2o2o| 麻豆成人av在线观看| 香蕉丝袜av| 老鸭窝网址在线观看| 国产亚洲av高清不卡| 高清毛片免费观看视频网站| 久久香蕉精品热| 好男人在线观看高清免费视频| 国内少妇人妻偷人精品xxx网站 | 国产成人aa在线观看| 亚洲专区中文字幕在线| 在线看三级毛片| 中文字幕人成人乱码亚洲影| 中文在线观看免费www的网站 | www.熟女人妻精品国产| 国内揄拍国产精品人妻在线| 蜜桃久久精品国产亚洲av| 国产又色又爽无遮挡免费看| 亚洲男人的天堂狠狠| 亚洲激情在线av| 成人欧美大片| 国产精品精品国产色婷婷| 免费无遮挡裸体视频| 十八禁人妻一区二区| 日本黄大片高清| 国产成人aa在线观看| 亚洲av成人不卡在线观看播放网| 国产成人av教育| 男女午夜视频在线观看| 国产精品亚洲av一区麻豆| 巨乳人妻的诱惑在线观看| 日韩欧美在线二视频| 日韩欧美三级三区| 可以在线观看毛片的网站| 国产精品精品国产色婷婷| 亚洲国产精品合色在线| 中国美女看黄片| 人妻夜夜爽99麻豆av| 欧美日韩亚洲国产一区二区在线观看| 欧美一区二区国产精品久久精品 | 午夜亚洲福利在线播放| 免费在线观看影片大全网站| 午夜成年电影在线免费观看| 午夜福利免费观看在线| 黑人巨大精品欧美一区二区mp4| 精品无人区乱码1区二区| 精品乱码久久久久久99久播| 两性午夜刺激爽爽歪歪视频在线观看 | 不卡av一区二区三区| 成人av在线播放网站| 丰满的人妻完整版| 特级一级黄色大片| 麻豆成人午夜福利视频| 国产主播在线观看一区二区| 黑人操中国人逼视频| 成年人黄色毛片网站| 午夜a级毛片| 欧美日本视频| 好男人在线观看高清免费视频| 亚洲片人在线观看| 韩国av一区二区三区四区| 好男人在线观看高清免费视频| 欧美黑人精品巨大| 国产午夜精品论理片| 麻豆成人午夜福利视频| 丰满的人妻完整版| 欧美 亚洲 国产 日韩一| 亚洲成人久久爱视频| 免费电影在线观看免费观看| 一本大道久久a久久精品| 亚洲人成电影免费在线| 国产欧美日韩一区二区三| 欧美 亚洲 国产 日韩一| 国产成人aa在线观看| 美女黄网站色视频| 国产精品一区二区三区四区免费观看 | 亚洲人成77777在线视频| 亚洲中文字幕日韩| 一卡2卡三卡四卡精品乱码亚洲| 亚洲人成77777在线视频| 久久婷婷成人综合色麻豆| 欧洲精品卡2卡3卡4卡5卡区| 香蕉丝袜av| 好男人电影高清在线观看|