歡迎來到逍遙右腦記憶網(wǎng)-免費提供各種記憶力訓練學習方法!

《Android安全技術(shù)揭秘與防范》讀書筆記

編輯: 路逍遙 關(guān)鍵詞: 讀書筆記大全 來源: 逍遙右腦記憶

該書作者周圣韜,曾經(jīng)任職360、百度。

第1章 Android簡介

Android的開放與安全 :較早的版本會有一些安全隱患,需要用戶的手機能夠及時更新。Google在Android的安全上也做了改善與補救措施,但是,國內(nèi)的很多Google服務(wù)無法使用,許多第三方應(yīng)用商店監(jiān)管不嚴,導致惡意軟件泛濫的問題難以解決。

第2章 Android地下產(chǎn)業(yè)鏈分析

盈利模式: 只要有足夠的用戶,植入廣告、竊取用戶的隱私、竊取話費等。

惡意吸費 :好奇的用戶點入就有可能造成扣費。

廣告、惡意推廣 :

誘騙欺詐 :利用手機中的親朋好友求助,實施詐騙。

隱私竊取 :

安裝包分析 :打包黨,將apk反編譯后插入廣告,逆向分析獲取付費信息等,攔截開發(fā)者的收入,重新打包進入應(yīng)用市場。

Android安全的發(fā)展趨勢 :系統(tǒng)級別的殺毒 ;應(yīng)用市場的監(jiān)管;智能硬件安全;Google官方ROM中自帶云查殺引擎。

第3章 理解Android系統(tǒng)

Android系統(tǒng)的層級架構(gòu) :應(yīng)用層 ;框架層 ;核心庫與運行環(huán)境層 ;Linux內(nèi)核層 ;Android系統(tǒng)的分區(qū)結(jié)構(gòu)。

啟動過程 :Boot Loader加載階段 ;加載Kernel與initrd階段;初始化設(shè)備服務(wù)階段;加載系統(tǒng)服務(wù)階段(init,pid為1,父進程為linux kernel 0號進程,加載init.rc啟動核心服務(wù)) ;虛擬機初始化階段 (zygote創(chuàng)建Delvik VM,啟動java組件系統(tǒng)服務(wù)、framework服務(wù));啟動完成階段 (home啟動,發(fā)送ACTION_BOOT_COMPLETED)

系統(tǒng)關(guān)鍵進程與服務(wù) :系統(tǒng)1號進程init,ADB進程 存儲類守護進程Vold(Volume Daemon), 進程母體Zygote(由init啟動,因為其行為很像受精卵的復(fù)制自身分裂的行為,故名zygote) ,服務(wù)管理器ServiceMananger, 進程復(fù)制Android Fork,進程間通信Binder機制, 匿名共享內(nèi)存機制Ashmem, 日志服務(wù)Logger。

APK生成 :編譯過程 ,打包過程 ,簽名優(yōu)化過程。

系統(tǒng)安全執(zhí)行邊界 :沙箱隔離機制(系統(tǒng)使用重定向技術(shù),將應(yīng)用的所有操作都放在一個虛擬的系統(tǒng)中運行,就算有病毒也不會危害到真實的系統(tǒng)) ,權(quán)限授予機制 (API權(quán)限、文件權(quán)限、IPC權(quán)限),數(shù)字簽名機制;

系統(tǒng)的安全結(jié)構(gòu) :

Android應(yīng)用層:接入權(quán)限、代碼保護

Android框架層:數(shù)字證書

Dalvik虛擬機層:沙箱機制

用戶空間原生代碼層和Linux內(nèi)核層:Linux文件權(quán)限

Android 5.0(Lollipop)的安全架構(gòu) :加強型內(nèi)核SEAndroid ;安全的鎖屏 ;充分的加密 。

Android5.0安全總結(jié) :Google的很多新功能很可能被國內(nèi)的設(shè)備精簡,國內(nèi)Android安全的發(fā)展節(jié)奏遠低于國外,國內(nèi)的Android系統(tǒng)安全比Google慢一個步伐。

第4章 Root你的設(shè)備

獲取Root權(quán)限原理 :su、sudo獲取超級權(quán)限。被root的系統(tǒng)安裝了superuser.apk,用來管理root權(quán)限。

Root思路 :刷機將su放入系統(tǒng),或,通過有root權(quán)限的進程(adbd、rild、mtpd、vold)。

Root的分類 :臨時Root (重啟后恢復(fù)非root,還原當前用戶的非root級別),永久Root。

Root之后 :靜默安裝 ()安裝時無需用戶干預(yù)直接安裝),刪除預(yù)裝 ,鍵盤監(jiān)控 ,短信攔截與靜默發(fā)送 ,電話監(jiān)控。

第5章 APK靜態(tài)分析 :安裝包分析也稱為逆向分析

什么是靜態(tài)分析 :不允許代碼,進行詞法分析、語法分析、數(shù)據(jù)分析,對代碼進行掃描。

常用分析利器 :資源逆向工具AXMLPrinter 2 ,查看源碼工具dex2jar、jd-GUI ,APK逆向工具APKTool ,Android逆向助手 ,反匯編工具IDA PRO ,超級編輯器UltraEdit。

認識APK文件 :App的種類 (Web app, Hybrid App、Native App)

APK反編譯前結(jié)構(gòu) :一個壓縮包文件

APK反編譯后結(jié)構(gòu) :

分析DEX文件:反匯編的工具很多Dedexer、IDA PRO、dex2jar等。smali不僅提供反匯編,還提供打包反匯編代碼重新生成dex的功能。

分析SO文件 :利用反匯編工具IDA PRO等。

通過反編譯、反匯編重新打包,可以:篡改代碼邏輯 ,廣告植入與去除 ,收費限制破解 ,應(yīng)用程序漢化。

第6章 ARM匯編速成

第7章 APK動態(tài)分析 :通過在真實或模擬環(huán)境中執(zhí)行程序進行分析,用于性能測試、功能測試、內(nèi)存泄漏測試等

應(yīng)用體系架構(gòu) :代碼安全分析 (apk被篡改、盜版的風險,避免被反編譯、重打包),組件安全分析 (四大組件安全隱患),存儲安全分析 (文件安全、敏感隱私數(shù)據(jù))),通信安全分析 (敏感數(shù)據(jù)加密傳輸)

root后的設(shè)備,數(shù)據(jù)庫信息、私有目錄,都已經(jīng)不再安全

AndBug:可以進行斷點調(diào)試 。是一個開源工具:使用與Android中eclipse ADT調(diào)試插件相同的接口、java線調(diào)試協(xié)議JDWP和ddms允許用戶hookDalvik的方法?梢栽跊]有源代碼情況下,直接對apk進行斷點調(diào)試。

使用IDA Pro進行動態(tài)調(diào)試:使用IDA動態(tài)調(diào)試原生庫so dex。

調(diào)試WebViewApp :WebView已知漏洞 (WebView使用JavaScriptInterface,讓遠程的網(wǎng)頁通過此漏洞執(zhí)行本地命令)

HTML安全:

網(wǎng)絡(luò)釣魚:偽裝成網(wǎng)絡(luò)銀行、信用卡公司等

第8章 動態(tài)注入技術(shù) :

java層級的hook、native層級的hook

Hook技術(shù):將自身的代碼“融入”被勾住的程序的進程中,成為目標進程的一部分。

Hook原理 :linux用戶態(tài),每個進程都有自己獨立的進程空間,先注入到hook的進程空間,修改其內(nèi)存中的進程代碼,替換其過程表的符號地址。一般通過ptrace函數(shù)附加進程,然后向遠程進程注入so庫,從而達到監(jiān)控以及遠程進程關(guān)鍵函數(shù)掛鉤。

常用的Hook工具 :Xposed框架 ,CydiaSubstrate框架 ,ADBI/DDI框架

HookAndroid應(yīng)用。

Hook原生應(yīng)用程序

Hook檢測/修復(fù) :hook后的應(yīng)用毫無安全可言。如何檢測進程是否被hook,如何修復(fù)被hook的進程以消除安全隱患?

java層Hook檢測:舉例瀏覽器應(yīng)用 ,1),查看應(yīng)用的進程pid號,比如5425,2)查看/proc下該進程的虛擬地址空間信息。對于系統(tǒng)應(yīng)用,應(yīng)該在/system@app下,但是該應(yīng)用www.i1766.com過濾結(jié)果,有些是/data@app下,查看地址空間中對應(yīng)的dex文件有哪些是非系統(tǒng)應(yīng)用提供的。3)該進程被附加了很多非系統(tǒng)的dex文件,這個應(yīng)用已經(jīng)被hook,存在安全隱患。

native層Hook檢測:與java層Hook檢測實現(xiàn)原理一樣。查看地址空間中對應(yīng)的so文件是第三方提供的,該進程被附加了很多非系統(tǒng)的so動態(tài)庫,這個應(yīng)用已經(jīng)被hook。

Hook修復(fù):第三方庫通過dlopen注入應(yīng)用程序進程中,可以通過dlclose將第三方函數(shù)卸載。

第9章 應(yīng)用加固與滲透測試

防止利用系統(tǒng)組件漏洞:Activity編碼安全(exported為false、不聲明LaunchMode等);Broadcast Receiver編碼安全(設(shè)置exported為false,不添加Intent filter,處理后終止廣播);service編碼安全(exported為false,發(fā)送intent注意數(shù)據(jù)敏感性,return時不放置敏感信息,Signature permission,啟動permission);provider編碼安全(exported為false,對包名和簽名做檢驗等)

防止逆向:代碼混淆(proguard,可能出現(xiàn)混淆錯誤第三方j(luò)ar調(diào)用出錯,調(diào)試定位比較痛苦);dex保護(自定義邏輯注入dex文件,加殼和去殼);so文件保護(防二次打包,可以用java簽名驗證、md5校驗等)

防止動態(tài)分析:檢測運行環(huán)境,調(diào)試環(huán)境一律拒絕運行;so白名單機制,非本包名so一律拒絕加載。

Android滲透測試:模擬黑客的攻擊方法進行測試。

第10章 系統(tǒng)安全措施

啟動驗證

磁盤加密

屏幕安全:屏幕鎖。屏幕鎖密碼/data/system/gesture.key。如果被root,刪除此文件后屏幕鎖會失效。

USB調(diào)試安全:

增強型內(nèi)核SELinux/SEAndroid

第11章 內(nèi)核攻擊與防護

Rootkit


本文來自:逍遙右腦記憶 http://www.yy-art.cn/dushubiji/1144530.html

相關(guān)閱讀:《 秘密花園》讀書筆記600字
教師讀書筆記摘抄精選
《愚公移山》讀書心得
三國關(guān)羽敗走麥城的故事讀書筆記
讀書筆記大全-《海鷗飛處》讀書筆記