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

        ?

        安卓沙箱中ELF文件行為檢測技術(shù)研究

        2018-09-12 08:43:22魏麗珍梁煜麓
        關(guān)鍵詞:檢測信息系統(tǒng)

        ◆劉 星 魏麗珍 梁煜麓 羅 佳

        ?

        安卓沙箱中ELF文件行為檢測技術(shù)研究

        ◆劉 星 魏麗珍 梁煜麓 羅 佳

        (廈門安勝網(wǎng)絡(luò)科技有限公司 福建 361000)

        隨著安卓的發(fā)展和普及,安卓平臺惡意軟件的功能實現(xiàn)開始由java層向native層轉(zhuǎn)移,因此檢測方法也由單一靜態(tài)轉(zhuǎn)變到動、靜態(tài)結(jié)合。本文在傳統(tǒng)的動態(tài)檢查方法基礎(chǔ)上,提出一種新的動態(tài)檢測方案,通過修改系統(tǒng)內(nèi)核中斷處理函數(shù),在目標(biāo)程序使用系統(tǒng)調(diào)用時,獲取其使用的系統(tǒng)調(diào)用函數(shù)名稱、參數(shù)、上下文信息、返回值等,通過對這些信息分析處理,判斷出程序是否為惡意軟件。

        移動安全;沙箱;ELF文件行為;安卓;檢測技術(shù)

        0 引言

        在安卓發(fā)展初期,惡意軟件基本都是以java語言開發(fā),由于java語言逆向分析簡單的特點,惡意軟件很容易被安全廠商逆向分析、檢測并查殺。隨著時間推移,惡意軟件開發(fā)者水平的提高,惡意功能代碼由java層轉(zhuǎn)移到了native層,由NDK開發(fā)編譯成ELF文件,再加上o-llvm的普遍使用,給靜態(tài)分析造成了很大困難。因此,實現(xiàn)一種高效、靈活的動態(tài)檢測系統(tǒng),在惡意軟件檢測方面具有非常重要的意義。

        1 傳統(tǒng)動態(tài)系統(tǒng)調(diào)用檢測方法

        為解決靜態(tài)分析、檢測遇到的問題,動態(tài)檢測系統(tǒng)開始廣泛應(yīng)用,通過動、靜態(tài)信息綜合判斷程序是否有惡意行為。

        安卓系統(tǒng)是由Linux內(nèi)核層和以應(yīng)用程序、Framework、本地運行庫和安卓運行時組成的用戶層構(gòu)成。內(nèi)核和用戶層通過系統(tǒng)調(diào)用銜接,所以安卓的動態(tài)檢測系統(tǒng)包含兩部分,分別是Linux系統(tǒng)調(diào)用檢測和用戶層代碼調(diào)用檢測。

        1.1 用戶層代碼調(diào)用檢測

        用戶層主要是通過修改源代碼(如xposed框架[1])或者采用注入的方式,修改虛擬機(jī)中java類方法對應(yīng)的數(shù)據(jù)結(jié)構(gòu),達(dá)到修改執(zhí)行流程目的。

        1.2 系統(tǒng)調(diào)用檢測

        傳統(tǒng)系統(tǒng)調(diào)用檢測通常有兩種,一種在用戶層利用內(nèi)核提供的相關(guān)機(jī)制或者HOOK,另一種是修改系統(tǒng)調(diào)用函數(shù)實現(xiàn)。

        使用內(nèi)核機(jī)制實現(xiàn)比較簡單,如內(nèi)核提供的inotify/fanotify機(jī)制、連接器[2]等?;诖祟悪C(jī)制實現(xiàn)的系統(tǒng)調(diào)用監(jiān)控,雖然實現(xiàn)起來比較容易,但是監(jiān)控粒度比較粗,無法精確到具體函數(shù)參數(shù)、操作進(jìn)程等信息,無法滿足通過動態(tài)行為來甄別惡意軟件的需求。

        使用機(jī)制實現(xiàn),通常是將監(jiān)控模塊注入到目標(biāo)進(jìn)程,使用導(dǎo)入表或者內(nèi)聯(lián)HOOK目標(biāo)函數(shù)。因為所有操作都在用戶層實現(xiàn),很容易被檢測和被繞過。再者,如果惡意程序采用靜態(tài)鏈接,或自己實現(xiàn)系統(tǒng)調(diào)用過程,就無法通過此方式來監(jiān)控相關(guān)信息。

        除HOOK外,strace等工具也是可以用來監(jiān)控系統(tǒng)調(diào)用,作為第三方工具,輸出結(jié)果可定制性差,容易被檢測和繞過。

        鑒于傳統(tǒng)動態(tài)檢測系統(tǒng)的不足,本文提出了以下動態(tài)檢測方案。

        2 基于中斷的系統(tǒng)調(diào)用檢測方案

        為了解決傳統(tǒng)方案在系統(tǒng)調(diào)用監(jiān)控中存在的缺點,本文從系統(tǒng)內(nèi)核出發(fā),根據(jù)系統(tǒng)調(diào)用原理,提出了一種基于中斷的系統(tǒng)調(diào)用檢測方案。

        在Arm64架構(gòu)下,系統(tǒng)調(diào)用的流程大致如下:

        (1)把系統(tǒng)調(diào)用號放到X8寄存器,通過svc指令進(jìn)入內(nèi)核層。

        (2)內(nèi)核層通過中斷向量表找到對應(yīng)的中斷服務(wù)程序,el0_sync或el0_sync_compat [3]。

        (3)中斷服務(wù)程序從esr_el1 [4]寄存器中獲取異常原因,如果由svc指令產(chǎn)生,則進(jìn)入el0_svc或el0_svc_compat流程。

        (4)el0_svc_或el0_svc_compat流程中,通過系統(tǒng)調(diào)用號在 sys_call_table或compat_sys_call_table找到對應(yīng)的函數(shù)地址,進(jìn)入系統(tǒng)調(diào)用程序。

        (5)系統(tǒng)調(diào)用完成后,返回到中斷服務(wù)程序,然后再返回到用戶空間。

        通過以上分析可以看出,系統(tǒng)調(diào)用的分發(fā)流程在el0_svc中(el0_svc和el0_svc_compat流程會在獲取系統(tǒng)調(diào)用表后合二為一),因此可以通過加入代碼,修改el0_svc的邏輯,得到系統(tǒng)調(diào)用參數(shù)等信息。

        在系統(tǒng)調(diào)用前后加入代碼,分別命名為before和after,因為涉及到的寄存器可能被污染,需要對相關(guān)寄存器進(jìn)行保存。

        Arm64參數(shù)傳遞時[5],前8個使用X0到X7寄存器傳遞,其余通過棧傳遞。由于Arm64最大系統(tǒng)調(diào)用參數(shù)個數(shù)為6,所以使用X0 到X5。因此before的函數(shù)參數(shù)為7個,分別對應(yīng)系統(tǒng)調(diào)用的X0 到X5,即系統(tǒng)調(diào)用參數(shù),外加一個系統(tǒng)調(diào)用號,使用X6傳遞。由于使用了X6、LR(使用BL指令,導(dǎo)致LR寄存器被污染)和X0(函數(shù)返回值),所以需要備份X0到X8以及LR。在進(jìn)入before時寄存器值和棧結(jié)構(gòu)如圖1所示。

        圖1 進(jìn)入before前寄存器和棧信息

        在before返回后,依次按照入棧順序恢復(fù)各個寄存器值,使流程進(jìn)入系統(tǒng)調(diào)用函數(shù),系統(tǒng)調(diào)用返回后進(jìn)入after函數(shù)。由于系統(tǒng)調(diào)用會污染相關(guān)寄存器,因此參數(shù)無法從寄存器直接獲取。但是,系統(tǒng)在進(jìn)入中斷后,各個寄存器會被系統(tǒng)以pt_regs的結(jié)構(gòu)備份在棧中,因此可以從棧中獲取到相關(guān)信息。所以,after的函數(shù)參數(shù)個數(shù)可以簡化為2個,分別是系統(tǒng)調(diào)用返回值X0和指向pt_regs的指針,使用X1傳遞,先要備份X1,然后使X1指向pt_regs地址。在進(jìn)入after時,系統(tǒng)堆棧如圖2所示。

        圖2 進(jìn)入after前寄存器和棧信息

        通過以上步驟,雖然可以攔截到系統(tǒng)調(diào)用信息,但是獲取到的是所有用戶層的系統(tǒng)調(diào)用請求,重要信息被大量無用信息干擾,不利于后續(xù)處理。為了解決以上問題,需要在before和after函數(shù)中對一些系統(tǒng)調(diào)用做特殊處理。

        在before中,需要對以下系統(tǒng)調(diào)用做特殊處理:

        (1)SyS_execve時,需要檢測文件路徑是不是被監(jiān)控文件,如果是,則將當(dāng)前進(jìn)程PID加入到監(jiān)控隊列(通過鏈表實現(xiàn))。

        (2)SyS_exit時,從監(jiān)控隊列里面移除當(dāng)前PID。

        在after中,需要對以下系統(tǒng)調(diào)用做特殊處理:

        (1)sys_fork時,如果父進(jìn)程在監(jiān)控隊列,就將自身PID加入到監(jiān)控隊列。

        (2)SyS_ptrace時,如果系統(tǒng)調(diào)用返回成功,需要將目標(biāo)進(jìn)程PID加入到監(jiān)控隊列。

        (3)函數(shù)返回時,需要將系統(tǒng)調(diào)用的返回值作為當(dāng)前函數(shù)的返回值。

        其余情況下,檢測當(dāng)前PID是否在監(jiān)控隊列,如果在就輸出日志,流程如圖3所示。

        圖3 調(diào)用流程圖

        通過以上步驟,可以完整獲取目標(biāo)進(jìn)程系統(tǒng)調(diào)用信息,為惡意行為檢測提供依據(jù)。

        3 結(jié)論

        惡意程序為了躲避檢測,各種手段層出不窮,使得靜態(tài)檢測難度不斷提高。但是,無論惡意軟件如何從靜態(tài)層面隱藏自身,其功能的實現(xiàn)必須依靠系統(tǒng)提供的接口。本文提出的系統(tǒng)調(diào)用檢測方法,從內(nèi)核層系統(tǒng)調(diào)用中斷過程實現(xiàn),有以下優(yōu)點:實現(xiàn)起來比較方便,不需要修改每個系統(tǒng)調(diào)用實現(xiàn)代碼;更加底層,惡意樣本無法繞過;利用PID作為過濾條件,能準(zhǔn)確獲取其行為,減少無用信息干擾;對特殊系統(tǒng)調(diào)用特殊處理,既能獲取到與目標(biāo)進(jìn)程有關(guān)聯(lián)進(jìn)程信息,也可以排除無關(guān)進(jìn)程。動態(tài)檢測作為惡意軟件檢測的一種手段,需要在實踐中不斷改進(jìn)、完善,從而使其發(fā)揮更大作用。

        [1]rovo89. Xposed[J/OL]. https://github. com/rovo89/Xposed.

        [2]楊燚.連接器(Netlink Connector)及其應(yīng)用[J/OL]. https://www.ibm.com/developerworks/cn/linux/l-connector/.

        [3]linuxer. Linux kernel的中斷子系統(tǒng)之(六):ARM中斷處理過程[EB/OL]. http://www. wowotech.net/irq_subsy stem/irq_handler.html.

        [4]ARM.ARM Cortex-A Series Programmer’s Guide for ARMv8-A[J/OL]. http://infocenter.arm.com.

        猜你喜歡
        檢測信息系統(tǒng)
        Smartflower POP 一體式光伏系統(tǒng)
        “不等式”檢測題
        “一元一次不等式”檢測題
        “一元一次不等式組”檢測題
        WJ-700無人機(jī)系統(tǒng)
        ZC系列無人機(jī)遙感系統(tǒng)
        北京測繪(2020年12期)2020-12-29 01:33:58
        連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
        訂閱信息
        中華手工(2017年2期)2017-06-06 23:00:31
        小波變換在PCB缺陷檢測中的應(yīng)用
        展會信息
        中外會展(2014年4期)2014-11-27 07:46:46
        色综合天天综合网国产成人网| 亚洲色AV天天天天天天| 国产亚洲激情av一区二区| 人妻制服丝袜中文字幕| 娇妻在交换中哭喊着高潮| 精品午夜福利1000在线观看| 国产AV无码专区亚洲AWWW| 成人国产一区二区三区av| 无码人妻h动漫中文字幕| 黄色视频在线免费观看| 国产v精品成人免费视频400条| 综合成人亚洲网友偷自拍| 男女18禁啪啪无遮挡激烈网站 | 亚洲男人av天堂久久资源| a级毛片100部免费观看| 尤物视频一区二区| 国产精品国产三级厂七| 日本一区二区视频免费在线看| 国产二级一片内射视频插放| 亚洲精品国产一二三无码AV| 一本色道久久88综合亚精品| 巨爆中文字幕巨爆区爆乳| 天天躁狠狠躁狠狠躁夜夜躁| 国产亚洲第一精品| 亚洲丝袜美腿精品视频| 精品人妻少妇嫩草av无码专区| 无码国产精品一区二区免费16| 区一区一日本高清视频在线观看 | 一区二区三区四区国产99| 性色av一区二区三区| 九九久久国产精品大片| 亚洲免费精品一区二区| 国产精品日本一区二区在线播放| 国产av国片精品| 亚洲国产日韩精品综合| 久久精品色福利熟妇丰满人妻91 | 精品蜜桃一区二区三区| 青青草国产在线视频自拍| 少妇放荡的呻吟干柴烈火动漫| 欧美日韩高清一本大道免费| 国产激情综合五月久久|