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

        ?

        基于LiME工具的Android手機(jī)動(dòng)態(tài)內(nèi)存提取

        2015-09-26 10:00:48康艷榮于文浩張國(guó)臣
        刑事技術(shù) 2015年6期

        劉 亞,康艷榮,趙 露,于文浩,張國(guó)臣

        (1.中國(guó)人民公安大學(xué),北京 100038;2.公安部物證鑒定中心,北京 100038;3.中國(guó)政法大學(xué),北京 100088)

        ·論 著·

        基于LiME工具的Android手機(jī)動(dòng)態(tài)內(nèi)存提取

        劉 亞1,康艷榮2,*,趙 露2,于文浩3,張國(guó)臣2

        (1.中國(guó)人民公安大學(xué),北京 100038;2.公安部物證鑒定中心,北京 100038;3.中國(guó)政法大學(xué),北京 100088)

        本文以手機(jī)內(nèi)核源碼為研究對(duì)象,利用LiME工具對(duì)不同Android版本內(nèi)核的手機(jī)進(jìn)行動(dòng)態(tài)內(nèi)存提取,詳細(xì)分析了其內(nèi)核校驗(yàn)機(jī)制,并闡述了如何通過修改內(nèi)核配置和內(nèi)核源碼的方式,編譯出可用的內(nèi)存提取模塊,建立了手機(jī)動(dòng)態(tài)內(nèi)存提取方法,為國(guó)內(nèi)Android手機(jī)動(dòng)態(tài)內(nèi)存取證提供了一個(gè)新思路。實(shí)驗(yàn)表明,此方法能夠成功提取多個(gè)品牌、型號(hào)手機(jī)的動(dòng)態(tài)內(nèi)存,可以解決普遍的Android手機(jī)動(dòng)態(tài)內(nèi)存提取問題。

        電子物證;Android手機(jī);動(dòng)態(tài)內(nèi)存; 內(nèi)核模塊

        隨著Android市場(chǎng)份額的日益增長(zhǎng),對(duì)Android平臺(tái)手機(jī)進(jìn)行取證和分析也成為司法鑒定機(jī)構(gòu)的關(guān)注熱點(diǎn),目前關(guān)于Android取證研究大多數(shù)是關(guān)于Android文件系統(tǒng)分析、Android程序分析、手機(jī)外置內(nèi)存的提取分析等。手機(jī)動(dòng)態(tài)內(nèi)存(也稱RAM、隨機(jī)訪問存儲(chǔ)器)包含了大量的斷電后不可恢復(fù)的有價(jià)值信息,包括手機(jī)中正在運(yùn)行和已結(jié)束的進(jìn)程的數(shù)據(jù)、打開的文件、網(wǎng)絡(luò)活動(dòng)、內(nèi)存映射等。這些數(shù)據(jù)并不會(huì)保存在手機(jī)內(nèi)置的閃存或外圍存儲(chǔ)卡里,可能成為潛在的證據(jù)信息動(dòng)態(tài),因此內(nèi)存的提取分析是至關(guān)重要的。動(dòng)態(tài)內(nèi)存取證和分析方面的研究還比較少。2008年,Anderson[1]最早提出Crash項(xiàng)目,主要面向?qū)崟r(shí)Linux系統(tǒng)進(jìn)行取證,并不適用大多數(shù)的Android設(shè)備。2010年,Cannon[2]提出的一種新機(jī)制來轉(zhuǎn)儲(chǔ)Android應(yīng)用程序的內(nèi)存,通過向應(yīng)用程序發(fā)送一個(gè)特別信號(hào)(SIGUSR1),在/ data/misc中獲取特定pid進(jìn)程的內(nèi)存轉(zhuǎn)儲(chǔ),這個(gè)方法只適用于Android版本為2.1以下的移動(dòng)設(shè)備。Sylve等[3]發(fā)布了一個(gè)實(shí)用的內(nèi)存獲取工具DMD(現(xiàn)稱LiME Forensics),首次對(duì)Android設(shè)備的動(dòng)態(tài)內(nèi)存進(jìn)行獲取和深度分析,但實(shí)驗(yàn)的手機(jī)系統(tǒng)版本僅限于Linux2.6的內(nèi)核,沒有進(jìn)一步分析轉(zhuǎn)儲(chǔ)的內(nèi)存來發(fā)現(xiàn)敏感的數(shù)據(jù)。在LiME的基礎(chǔ)上,Muller等[4]提出FROST技術(shù),一種在低溫狀態(tài)下提取Android手機(jī)隨機(jī)訪問內(nèi)存的方法。Stüttgen等指出傳統(tǒng)物理內(nèi)存提取方法存在的不足,提出了一種通過PTE(page table entry,也稱頁(yè)面表入口)獲取物理內(nèi)存的新技術(shù),但該技術(shù)不適用于Android設(shè)備[5]。2014年,Stüttgen等又提出了獲取Linux物理內(nèi)存新方法,通過重定向模塊內(nèi)部的操作,使得內(nèi)存提取模塊可以繞過內(nèi)核版本的校驗(yàn)而在不同的Linux版本運(yùn)行,解決了內(nèi)存提取工具頻繁的重編譯問題,該技術(shù)尚未支持Android設(shè)備[6]。在國(guó)內(nèi),手機(jī)取證的研究主要集中在SIM卡、SD卡和flash閃存數(shù)據(jù)的提取分析,尚無有關(guān)此類研究的報(bào)道。LiME是一個(gè)可以從Linux或基于Linux的設(shè)備獲取動(dòng)態(tài)內(nèi)存的可裝載內(nèi)核模塊,在提取過程中,LiME可以將用戶空間和內(nèi)核空間的交互影響降到最小,從而降低對(duì)內(nèi)存的覆蓋,比較其他基于Linux內(nèi)存的提取工具,LiME的法律效應(yīng)評(píng)價(jià)是最好的[7]。

        1 材料和方法

        1.1 環(huán)境配置

        (1)打開手機(jī)USB調(diào)試模式,確保手機(jī)已取得最高的系統(tǒng)權(quán)限,才能裝載內(nèi)核模塊。目前關(guān)于Android手機(jī)的root技術(shù)已比較成熟,應(yīng)選取成熟且對(duì)手機(jī)內(nèi)部交互影響最小的工具,將其對(duì)手機(jī)動(dòng)態(tài)內(nèi)存的影響降到最低。(2)準(zhǔn)備合適的Linux系統(tǒng)。本文采用32位Ubuntu 12.04,研究表明64位的Linux系統(tǒng)或非Debian系的Linux發(fā)行版,在交叉編譯模塊時(shí)會(huì)出現(xiàn)未知問題。(3)配置Android SDK與NDK,通過adb調(diào)試橋連接手機(jī)。(4)配置合適的交叉編譯工具鏈,本文配置為arm-eabi-4.4.3 與arm-linux-androideabi-4.6,研究表明交叉編譯工具或版本的不同均會(huì)影響編譯的成功率。(5)獲取最新的LiME工具,LiME通過Subversion(一個(gè)開放源代碼的版本控制系統(tǒng))發(fā)布,可在Linux終端下通過SVN進(jìn)行同步。(6)獲取目標(biāo)設(shè)備的內(nèi)核源代碼,可在各手機(jī)廠商的官方網(wǎng)站下載。

        1.2 繞過內(nèi)核檢查

        Android手機(jī)系統(tǒng)內(nèi)核會(huì)對(duì)模塊進(jìn)行檢查,故須繞過目標(biāo)手機(jī)內(nèi)核檢查機(jī)制,才能使用LiME模塊提取動(dòng)態(tài)內(nèi)存。

        1.2.1 vermagicmagic檢查機(jī)制

        對(duì)于Linux2.6的內(nèi)核,內(nèi)核檢查機(jī)制主要是vermagic字符串匹配檢查。Vermagic格式定義如下所示:

        Vermagic字符串可通過內(nèi)核配置文件.config和Makefile中的宏定義進(jìn)行設(shè)置,各字段定義見表1。

        繞過目標(biāo)手機(jī)內(nèi)核的vermagic檢查,可以從目標(biāo)手機(jī)中找到現(xiàn)有的模塊作參考,vermagic信息存放在內(nèi)核模塊中的.modinfo段中,在Linux終端下輸入命令modinfo 可查看模塊vermagic信息,根據(jù)此信息再對(duì)內(nèi)核配置文件作相應(yīng)的修改,使參考模塊的vermagic信息與源碼中的內(nèi)核配置信息完全一致,即可通過目標(biāo)手機(jī)的vermagic檢查機(jī)制。如下所示是HTC S710d中的一個(gè)模塊信息:

        表1 vermagic各字段定義Table 1 Defi nition of each section in vermagic

        1.2.2 modversionssions檢查機(jī)制

        某些使用linux3.0及以上版本內(nèi)核的手機(jī),具有vermagic和modversions兩種檢查機(jī)制。modversions是模塊的版本校驗(yàn)機(jī)制。通過對(duì)模塊的反匯編發(fā)現(xiàn),啟用此校驗(yàn)的模塊多了_versions段。通過分析源碼目錄下的kernel/module.c文件,可知該檢查機(jī)制在模塊編譯前通過宏定義CONFIG_MODVERSIONS啟用,并在模塊的vermagic字符串中引入MODULE_ VERMAGIC_MODVERSIONS字 段。 經(jīng) 分 析, 當(dāng) 啟 用了modversions檢查機(jī)制后,在模塊的_versions段數(shù)據(jù)中會(huì)出現(xiàn)module_layout字段值,若模塊中的module_ layout值與目標(biāo)手機(jī)系統(tǒng)中的module_layo-ut值不匹配,就會(huì)出現(xiàn)拒絕裝載的提示信息,因此禁用CONFIG_ MODVERSIONS可關(guān)閉內(nèi)核中的模塊版本校驗(yàn)機(jī)制。若在內(nèi)核配置中禁用CONFIG_MODVERSIONS宏定義后,則會(huì)改變內(nèi)核模塊的VERMAGIC_STRING值,提取時(shí)會(huì)出現(xiàn)vermagic校驗(yàn)失敗的錯(cuò)誤。因此繞過手機(jī)中的module_layout校驗(yàn)可通過偽造vermagic中的 MODULE_VERMAGIC_MODVERSIONS值。MODULE_VERMAGIC_MOD-VERSIONS值可在內(nèi)核源碼目錄的include/linux/vermagic.h文件中偽造,如下所示:

        2 Android手機(jī)動(dòng)態(tài)內(nèi)存提取實(shí)驗(yàn)

        本文以多個(gè)品牌、機(jī)型作為實(shí)驗(yàn)對(duì)象,對(duì)不同Android內(nèi)核版本的手機(jī)進(jìn)行動(dòng)態(tài)內(nèi)存提取(見表2)。本文以HTC S710d(內(nèi)核源碼為ace-gb-crc-2.6.35-2ec1b80)為實(shí)例說明。

        表2 實(shí)驗(yàn)所用機(jī)型及其提取實(shí)驗(yàn)結(jié)果Table 2 Tested phones and its testing results

        2.1 編譯內(nèi)核源碼

        2.1.1 配置交叉編譯工具

        編譯內(nèi)核源碼之前,對(duì)根目錄下的Makefile文件進(jìn)行相關(guān)配置。打開Makefile文件,定位到# Cross compiling and selecting different set of gcc/bin-utils段,定義如下所示的KBuild變量來配置交叉編譯工具鏈:

        2.1.2 配置內(nèi)核

        Android手機(jī)的內(nèi)核功能配置文件一般位于系統(tǒng)中的/ proc/config.gz,但大多數(shù)Android手機(jī)沒有提供此配置文件,在此不討論配置文件,僅進(jìn)行通用的內(nèi)核功能配置。在Linux終端下切換到源碼目錄,輸入make menuconfig命令進(jìn)入內(nèi)核功能配置,見圖1。進(jìn)入Enable loadable module support,并選擇Forced module loading 、Module unloading和子選項(xiàng)Forced module unloading ,保存退出后在源碼根目錄生成.config隱藏文件。若源碼提供默認(rèn)的配置文件,也可直接使用該默認(rèn)配置進(jìn)行編譯。.config為內(nèi)核配置文件,對(duì)其中的宏定義進(jìn)行配置可實(shí)現(xiàn)不同的功能。

        圖1 內(nèi)核功能配置Fig.1 Confi guration of kernel function

        2.1.3 交叉編譯

        現(xiàn)對(duì)源碼進(jìn)行編譯,在終端里輸入命令“make KERNELRELEASE= modules_ prepare”進(jìn)行交叉編譯。如無提示錯(cuò)誤信息,編譯完成后如下所示:

        2.2 編譯LiME模塊

        進(jìn)入LiME主目錄,修改Makefile文件與以下所示結(jié)構(gòu)匹配:

        在終端下輸入make命令進(jìn)行編譯,編譯完成后在主目錄下生成一個(gè)lime.ko的文件。通過modinfo命令查看其信息,確認(rèn)與目標(biāo)手機(jī)參考模塊的信息完全一致,如下所示:

        2.3 提取內(nèi)存

        通過USB數(shù)據(jù)線連接手機(jī),在終端下輸入adb devices確認(rèn)手機(jī)成功連接,見圖2。

        圖2 連接手機(jī)Fig.2 Phone connection

        在終端輸入命令“adb push lime.ko /sdcard/lime. ko”將lime.ko文件拷貝至手機(jī)SD卡目錄。提取動(dòng)態(tài)內(nèi)存文件有TCP通道和SD卡轉(zhuǎn)儲(chǔ)兩種方式。TCP通道方式是通過adb命令在手機(jī)與計(jì)算機(jī)之間建立一條端口傳輸?shù)耐ǖ?,一般選用較高的端口避免與系統(tǒng)端口相沖突。由于通過TCP方式提取會(huì)對(duì)動(dòng)態(tài)內(nèi)存中網(wǎng)絡(luò)緩存數(shù)據(jù)有一定的覆蓋率,在不希望網(wǎng)絡(luò)數(shù)據(jù)丟失的情況下,可通過SD卡轉(zhuǎn)儲(chǔ)的方式提取。SD卡轉(zhuǎn)儲(chǔ)方式是將動(dòng)態(tài)內(nèi)存文件直接寫入手機(jī)SD卡里,由于這種方式會(huì)直接覆蓋掉SD卡中的數(shù)據(jù),一般先將手機(jī)中的SD卡進(jìn)行鏡像操作,再通過此方式提取動(dòng)態(tài)內(nèi)存。以下所示為通過SD卡轉(zhuǎn)儲(chǔ)方式提取HTC S710d的動(dòng)態(tài)內(nèi)存:

        提取完成后,輸入命令“adb pull /sdcard/lime.dump ./s710d.dump”從手機(jī)SD卡中拷貝至計(jì)算機(jī)端。

        3 結(jié)果和討論

        通過LiME工具提取的手機(jī)動(dòng)態(tài)內(nèi)存情況見表2與圖3。可以看出,成功 提取的動(dòng)態(tài)內(nèi)存大小比手機(jī)系統(tǒng)額定的動(dòng)態(tài)內(nèi)存少,這是因?yàn)槎喾N原因造成的,一方面手機(jī)中的顯卡GPU要與手機(jī)系統(tǒng)共用RAM,不同的機(jī)型分占的RAM大小也不一樣,另一方面Android系統(tǒng)啟動(dòng)時(shí)RAMFS也需要占用一定的RAM空間??傮w來說,大部分機(jī)型都能成功提取到80%以上的動(dòng)態(tài)內(nèi)存,其中包含了大量的有價(jià)值數(shù)據(jù),因此對(duì)實(shí)際取證工作有一定的積極幫助。

        圖3 手機(jī)動(dòng)態(tài)內(nèi)存提取比例Fig.3 Average proportion of memory acquisition

        本文就Android手機(jī)的動(dòng)態(tài)內(nèi)存取證技術(shù)進(jìn)行了探討,利用LiME工具,詳細(xì)闡述了使用LiME的一些關(guān)鍵技術(shù),包括提取前的準(zhǔn)備工作、手機(jī)內(nèi)核源碼的交叉編譯,以及如何提取內(nèi)存數(shù)據(jù)等。通過不同品牌、型號(hào)手機(jī)的實(shí)驗(yàn)證實(shí),本文介紹的取證技術(shù)能夠有效提取到Android手機(jī)的動(dòng)態(tài)內(nèi)存數(shù)據(jù)。

        [1] Anderson D. Crash Available. 2008. http://people.redhat.com/ anderson/crash_whitepaper/.

        [2] Cannon T. Android Reverse. http://thomascannon.net/projects/ android-reversing/.

        [3] Sylve J, Case A, Marziale L, et al. Acquisition and analysis of volatile memory from Android devices. Digital Investigation,2012,8:175-184.

        [4] Müller T, Spreitzenbarth M, Felix C. Freiling: FROST. 2012.

        [5] Stüttgen J, Cohen M. Anti-forensic resilient memory acquisition. Digital Investigation, 2013,10:S105-S115.

        [6] Stüttgen J, Cohen M. Robust Linux memory acquisition with minimal target impact. Digital Investigation, 2014,11:S112-S119

        [7] Sylve J. LiME-Linux memory extractor//ShmooCon‘12. Washington DC: Digital Forensics Solutions LLC, 2012.

        Volatile Memory Acquisition from Android Devices with LiME Forensics

        LIU Ya1, KANG Yanrong2,*, ZHAO Lu2, YU Wenhao3, ZHANG Guochen2
        (1. People's Public Security University of China, Beijing 100038, China; 2. Institute of Forensic Science, Ministry of Public Security, Beijing 100038, China; 3. China University of Political science and Law, Beijing 100088, China)

        Volatile memory acquisition from cell phone has gained popularity in recent years, because its analysis yields a wealth of information not available in non-volatile storage. Such aspects as the executing and terminated processes, application data, network connections, some user names and passwords, are important for investigation storage in the volatile memory. In this paper, we introduce a novel idea for cell phone forensics by analyzing a set of kernel source of android phone, and establishing an acquisition method that could extract volatile memory from phones with different kernel version. On Linux,kernel modules must be compiled against the relevant version of kernel headers and confi guration so that it can be executed on the target system. During the module installation, the kernel starts to analyze two special sections in the module of .modinfo and_versions, and will refuse to load if this module contains incompatible version magic. Aiming at different Android kernel versions for different mobile phone, we analyzed the kernel verifi cation mechanism, and explained how to modify the kernel confi guration mode and kernel source code, to compile the available memory extraction module. The results show that this method can successfully extract volatile memory from multiple brands and models of Android mobile phones.

        digital forensics;Android phone;volatile memory;kernel module

        DF793.2

        A

        1008-3650(2015)06-0431-04

        10.16467/j.1008-3650.2015.06.001

        2015-05-18

        公安部應(yīng)用創(chuàng)新計(jì)劃(2014YYCXGAES050-JB)

        劉 亞,在讀碩士生,研究方向?yàn)殡娮游镒C檢驗(yàn)。 E-mail: liuya9012@gmail.com

        康艷榮,副研究員,碩士,研究方向?yàn)閿?shù)據(jù)挖掘、電子物證。 E-mail: katherinekangyr@163.com

        引用本文格式:劉亞,康艷榮,趙露,等. 基于LiME工具的Android手機(jī)動(dòng)態(tài)內(nèi)存提取. 刑事技術(shù),2015,40(6):431-434.

        亚洲精品午夜久久久九九| 国产一区二区丰满熟女人妻| 人妻丰满少妇一二三区| 亚洲一区二区国产一区| 国产伦人人人人人人性| 亚洲av成人无码网天堂| 噜噜噜色97| 日韩av免费一区二区| 女人色熟女乱| 欧美性猛交xxxx乱大交蜜桃| 日本熟妇精品一区二区三区| 亚洲女同恋av中文一区二区| 少妇高潮流白浆在线观看| 毛片网站视频| 国产一区二区三区经典| 变态调教一区二区三区女同| 国产涩涩视频在线观看| 精品人伦一区二区三区蜜桃麻豆 | 妺妺窝人体色www在线| 久久久久久人妻毛片a片| 色欲AV无码久久精品有码| 亚洲日本中文字幕乱码| 五月丁香六月综合缴清无码| 少妇的肉体k8经典| 经典女同一区二区三区| 国产在线一区二区三区四区不卡| 久激情内射婷内射蜜桃| 亚洲精品国产一二三无码AV| 综合久久一区二区三区| 狠狠躁18三区二区一区| 亚洲gv白嫩小受在线观看| 国产日产久久福利精品一区| 亚洲av网站在线观看一页| 天美传媒一区二区| 亚洲AV无码一区二区三区性色学| 蜜臀人妻精品一区二区免费| 久久久久久久久毛片精品| 四虎影永久在线观看精品| 中文在线最新版天堂av| 高黄暴h日本在线观看| 亚洲av无码久久寂寞少妇|