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

        ?

        基于Binder的Android支付信息安全的研究

        2018-04-12 04:23:30劉子煜吳健學
        計算技術與自動化 2018年1期

        劉子煜 吳健學

        摘要:隨著移動互聯(lián)網的發(fā)展,Android手機平臺內越來越多的APP具有移動支付功能。移動支付涉及到金融交易,支付信息安全顯得尤為重要。本文分析了Android的Binder機制,通過將監(jiān)控代碼動態(tài)注入目標模塊,對進程間的通信數(shù)據進行提取,通過比對既有信息,分析是否有惡意軟件竊取目標APP的用戶隱私信息。在支付環(huán)節(jié)之前將檢測結果對用戶給予提示,且對支付過程無較大影響,一定程度上保障了用戶支付信息的安全。

        關鍵詞:Android系統(tǒng);Binder;動態(tài)注入;信息提取

        中圖分類號:TN918.9

        文獻標志碼:A

        1 引 言

        基于Android系統(tǒng)龐大的使用人群,各應用公司開發(fā)了各式各樣的APP為人們的生活提供了便利。但隨著Android應用數(shù)量的急劇上升,應用質量參差不齊,惡意軟件嚴重威脅著終端用戶的財產和隱私安全,也制約著移動終端應用的進一步發(fā)展[1][2]。根據360互聯(lián)網安全中心發(fā)布的《2016年安卓惡意軟件專題報告》,2016年全年,Android平臺新增惡意程序樣本1403.3萬個,平均每天新增3.8萬惡意程序樣本。

        隨著手機支付功能的普遍化,惡意代碼藏匿于普通應用程序盜取用戶賬戶信息和密碼的現(xiàn)象時有發(fā)生,惡意程序威脅著正常的支付功能,泄露了用戶的敏感信息,對用戶直接或間接造成經濟損失[3]。手機支付越來越受到人們重視,使用的場景越來越多,但手機安全卻阻礙其突破性發(fā)展。

        目前應用市場上存在手機管家,手機安全衛(wèi)士等安全應用來管理和保護用戶的手機,但安裝這些安全應用會對手機產生一定的額外開銷,且針對特定APP中的敏感信息無法做到精準的保護[4]。本文針對這一現(xiàn)象,為Android系統(tǒng)中涉及支付功能的應用提出一種支付信息的保護方式,通過比對進程間的通信數(shù)據,找到獲取隱私信息的惡意APP,提醒用戶進行處理,以此保障用戶的信息安全。

        2 Binder通信機制

        Android系統(tǒng)是由谷歌公司基于Linux內核開發(fā)的智能操作系統(tǒng),在Linux系統(tǒng)中,進程間的通信機制有很多種,包括pipe(管道)通信,socket(套接字)通信,signal(信號)通信這些傳統(tǒng)IPC(Inter Process Communication進程間通信)。Android為每個APP分配了一個區(qū)分進程身份的屬性-UID,傳統(tǒng)的IPC只能由用戶在數(shù)據包里填入UID/PID[5-6],但這樣容易被惡意程序所利用。由IPC機制在內核中添加的屬性才是最可靠的。Binder的出現(xiàn)滿足了Android對通信方式,傳輸性能和安全性的要求,與其他進程間通信方式相比,Binder通信機制更安全、簡潔、高效、快速,消耗的內存資源更少。

        Binder通信是Android系統(tǒng)的基礎通信機制,轉發(fā)應用之間的通信信息。Binder在完成本身轉發(fā)信息的功能之外,在底層拷貝應用之間的通信信息,用戶在使用手機過程中并不會察覺到。Binder在Android的各個版本中很少變動,因此基于Binder機制的方案便于移植到Android的各版本,具有很好的兼容性,可實現(xiàn)更多種類Android移動終端的覆蓋。[7]

        圖1表示了Binder基于Client-Server的通信模式,傳輸過程只需一次拷貝,為發(fā)送方添加UID/PID身份,既支持實名Binder也支持匿名Binder,安全性高。Binder的CS架構由四大部分組成,分別是服務端、客戶端、服務管理器和內核空間里的Binder驅動[8]。

        服務端Server提供服務,一個或多個Client客戶端向服務發(fā)起請求,通信過程由Binder接口實現(xiàn),數(shù)據的交互與處理在Binder驅動中完成。服務需在服務管理器Service Manager中進行注冊,Service Manager是Android系統(tǒng)中的守護進程,負責監(jiān)聽客戶端的請求。

        3 系統(tǒng)設計與實現(xiàn)

        3.1 整體設計方案

        本方案設計的支付信息保護模塊依托于APP的支付功能,整體流程如圖2所示。

        當用戶生成訂單信息時,支付信息保護模塊同時開始工作,從生成敏感信息時開始監(jiān)控信息的流向。當用戶發(fā)起支付時,客戶端首先調用APP后臺服務器接口,APP向后臺接口傳入等待付款的訂單號,支付方式及一系列業(yè)務相關的參數(shù),服務器收到請求后返回JSON格式數(shù)據。若請求成功,JSON數(shù)據里包括服務器根據訂單號查詢到的商品信息,交易的標題,訂單金額等等。客戶端收到成功的指令后,根據用戶選擇的支付方式準備調用相應的第三方支付平臺的接口。根據支付平臺的要求,需要傳入JSON格式數(shù)據里的敏感信息。

        在敏感信息的流動過程中,支付信息保護模塊同步檢測敏感信息是否被其他惡意應用竊取,支付環(huán)境是否安全,將檢測結果在頁面予以顯示,告知用戶。支付信息保護模塊同步覆蓋支付的整個流程。

        3.2 代碼注入

        代碼注入是Linux系統(tǒng)提供的Ptrace系統(tǒng)調用,在目標內存空間進行hook操作。Android的動態(tài)鏈接器為Linker[9],可以實現(xiàn)ELF格式鏈接庫的加載與鏈接。Ptrace使用PTRACE—ATTACH模式跟蹤正在運行的進程,使其變?yōu)榭煽刈舆M程[10]。具體過程如下:

        (1)調用Ptrace的PTRACE_ATTACH模式關聯(lián)到目標進程;

        (2)獲取目標進程的子進程、內存及寄存器信息并保存;

        (3)裝載指定的共享庫,將代碼寫入到目標進程上完成加載;

        (4)將函數(shù)重定向,使用新函數(shù)。主要修改PLT表和GOT表;

        (5)調用Ptrace的PTRACE_DETACH脫離目標進程。

        當客戶端生成訂單信息時,系統(tǒng)同時調用支付信息保護模塊,首先將監(jiān)控代碼注入到對應模塊。當目標進程被動態(tài)注入后,執(zhí)行ioctl函數(shù)(i/o通道控制函數(shù))時會跳到共享庫中對應的重定向函數(shù)hooked_ioctl位置上執(zhí)行。利用欄截到的ioctl函數(shù)返回的數(shù)據對進程間通信的數(shù)據進行解析,從而提取出應用程序在運行時刻的行為參數(shù),可以進行提前預判和管理。ioctl函數(shù)的調用方式為intioctl(int fd, int cmd, struct binder___ write_read*bwr),第一個參數(shù)是文件描述符;cmd是用戶程序對設備的控制命令,一般分為GET(從內核讀數(shù)據)、SET(向內核寫數(shù)據)等命令;第三個參數(shù)為類型為binder_write_read結構的數(shù)據流指針。

        由Binder通信機制,應用程序使用服務時會優(yōu)先同Service Manager進程通信來獲取相應服務信息。Service Manager的Binder進程間通信數(shù)據流采用結構體binder_transaction_data表示,保存在結構體binder_write_read中的write_buffer和read_buffer所指向的字節(jié)緩沖區(qū)域。在應用同Service Manager進行交互時,Service Manager用read_buffer記錄應用的IPC數(shù)據。所以接下來要通過結構體binder_transaction_data來解析read_buffer中指向的緩沖區(qū)域的數(shù)據。

        3.3 數(shù)據提取與比較

        binder—transaction__ data包含成員變量target,target是一個聯(lián)合體,表示一個目標Binder對象,Binder驅動根據其中的handle找到應該由哪個進程處理該事件;code是一個命令,它描述了Binder對象執(zhí)行的操作,當應用程序需要ServiceManager來查詢相應的服務時,code為GET—SERVICE—TRANSACTION; sender _pid和sender euid為發(fā)起請求進程的PID和UID,用于識別應用的身份;data是一個聯(lián)合體,存放數(shù)據,data_size表示數(shù)據的大小,其結構體ptr中的buffer保存通信數(shù)據。下面的偽代碼用于提取buffer中的數(shù)據。

        //定義數(shù)據包保存提取的數(shù)據

        typedef struct Packet{

        pid__t sender__ pid;

        uid_t sender_euid;

        charservice_name;

        )packet;

        char*ptr;

        //遍歷read_buffer緩沖區(qū)存放進一個移動指針

        for(i=O;1< READ_BUFFER_SIZE;i++){

        ptr = read buffer\[i\];

        //當與協(xié)議值相同時移動4字節(jié)

        if(isMatch(*ptr, BR_TRANSACTION)){

        ptr - ptr+1;

        //當應用程序請求服務的對象是ServiceManager時移動4字節(jié)

        if(target.handle一一O){

        ptr - ptr+1;

        //當參數(shù)滿足要求時移動4字節(jié)

        if(isMatch(*ptr,"android.os.IServiceMarrager")&&code一一GET_SERVICE_TRANS-ACTION)f

        ptr=ptr+1;

        //若為有效字符串,更新packet成員

        if(isValid(*ptr)){

        update( packet);)

        解析完參數(shù)信息后,創(chuàng)建一個子線程將數(shù)據通過UNIX套接字的方式傳入上層。首先填寫地址創(chuàng)建socket,socket監(jiān)聽是否有連接,packet更新后被發(fā)送到socket接收端。

        將數(shù)據傳到客戶端應用層,編碼循環(huán)遍歷敏感數(shù)據。檢測提取的通信數(shù)據是否包含敏感支付信息。本次實驗的敏感數(shù)據包括手機號,手機MAC地址,IMEI號,支付接口傳輸?shù)挠脩裘?,訂單號,支付賬號等等。

        4 應用測試

        在Ubuntu操作系統(tǒng)中安裝配置Android集成開發(fā)工具Android Studio,在工具中新建一個購物應用,然后按照第三方支付平臺的要求集成APP支付功能。此時通過開發(fā)工具打包生成不含支付信息保護模塊的基本應用TEST BASE.apk。

        在基本應用的基礎上,動態(tài)注入由監(jiān)控代碼生成的庫文件,再次打包生成含支付信息保護模塊TEST_BONUS.apk。

        測試時將Android模擬器和兩部手機作為測試平臺。

        在測試平臺上安裝TEST_BONUS.apk,作為待測試APP,同時安裝三個有已知惡意行為的APP和三個健康的APP。在測試APP中模擬購物,生成訂單,發(fā)起支付。支付信息保護模塊對用戶的提示信息如圖3所示。

        綜合測試結果如表1所示,“√”表示在十輪模擬支付環(huán)節(jié)中,支付信息保護模塊成功檢測出對應的惡意程序。

        同時為了測試敏感信息提取和比對過程對用戶的影響,我們在相同的環(huán)境分別安裝TEST—BASE.apk和TEST _BONUS. apk做對比實驗。表1中額外耗時即為加入支付保障模塊后,信息的提取與檢測對用戶操作的平均影響時間。

        5 結 論

        針對Android手機支付時容易被盜取個人信息的情況,對Android的Binder機制進行研究,實現(xiàn)了一個Android進程間通信數(shù)據提取分析的方法。通過對目標進程注入代碼,分析提取應用程序間通信的數(shù)據,對數(shù)據進行分析匹配,當敏感數(shù)據有泄露的危險時,給予用戶提示,保障支付信息安全。此信息保護模塊內置于APP中,對特定的支付信息予以保護。相比額外安裝手機管家更便捷。實驗結果表示,該方案在一定程度上保證了用戶支付信息的安全,對支付過程無較大影響,有很強的應用前景。

        參考文獻

        [1] JIMENEZ L M,OCHOA M,RUEDA S J.Jif-based Verifica-tion of Information Flow Policies for Android Apps [J].International Journal of Secure Software Engineering (IJSSE),2017,8(1):28-42.

        [2] 吳丹,惡意程序威脅互聯(lián)網安全手機“植毒”已現(xiàn)利益鏈[Nl.信息通報,2017-04-26(B06).

        [3] GU J, XU Y,XU H, et al.Privacy concerns for mobile appdownload: An elaboration likelihood model perspective[Jl.Decision Support Systems, 2016,94:19-28.

        [4]焦丹丹,張曉東,李大尉,等,基于安卓的手機安全衛(wèi)士[J].黑龍江科學,2016,7(14):4-5.

        [5]張俊浩.Android智能支付終端安全機制的研究與實現(xiàn)[D].南京:東南大學,2015.

        [6]張晶,針對Android的惡意代碼檢測方案設計與實現(xiàn)[D].貴陽:貴州大學,2016.

        [7] 曾寰.Android平臺的惡意程序檢測研究[D].成都:電子科技大學,2016.

        [8]甄鑫,基于Binder的Android用戶隱私數(shù)據安全增強技術實現(xiàn)[D].南京:東南大學,2015.

        [9]王濤.移動辦公智能終端環(huán)境安全研究[D].南京:東南大學,2014.

        [10] 溫圣召,基于Android平臺的軟件保護技術研究[D].北京: 北京郵電大學,2014.

        亚洲精品夜夜夜妓女网| 亚洲精品女人天堂av麻| 国产一区二区三区av免费| 欧美激情一区二区三区| 久久久久亚洲精品无码网址| 538亚洲欧美国产日韩在线精品| 手机av在线播放网站| 一本久久综合亚洲鲁鲁五月天| 性久久久久久久| 亚洲人成网站久久久综合| 亚洲国产综合精品一区| 波多野结衣av一区二区全免费观看| 人妻少妇av中文字幕乱码| 精品国产91久久综合| 日韩一级137片内射视频播放 | 久久丫精品国产亚洲av| 天天摸天天做天天爽天天舒服| 东京热加勒比视频一区| 人人爽人人爽人人片av| 99精品电影一区二区免费看| av毛片一区二区少妇颜射| 青青草国产手机观看视频| 超清精品丝袜国产自在线拍| 无遮挡十八禁在线视频国产制服网站 | 日韩中文字幕不卡在线| 中文字幕网伦射乱中文| 精品免费在线| 日本人妻伦理片在线观看| 午夜被窝精品国产亚洲av香蕉| 18女下面流水不遮图| 精品无吗国产一区二区三区av| 日本频道一区二区三区| 无码孕妇孕交在线观看| 国产精品公开免费视频| 一区二区三区人妻在线| 男女18禁啪啪无遮挡激烈网站| 高潮毛片无遮挡高清免费| 91国产超碰在线观看| 亚洲av天堂在线视频| 欧美mv日韩mv国产网站| 国产自产拍精品视频免费看|