編輯推薦
調查數據指齣,Android已經贏得平颱之戰,未來有望成為移動操作係統領域的寡頭,而安全性則有可能會成為阻礙Android發展的主要因素。由專業Android安全研究員編寫,本書為白帽子提供瞭漏洞發現、分析和利用的使用工具。在詳細介紹Android操作係統工作原理和總體安全架構後,研究瞭如何發現漏洞,為各種係統部件開發利用,並且進行應對。移動設備管理者、安全研究員、Android應用程序開發者和負責評估Android安全性的顧問都可以在本書中找到必要的指導和工具。
內容簡介
本書是一本全麵的Android係統安全手冊。書中細緻地介紹瞭Android係統中的漏洞挖掘、分析,並給齣瞭大量利用工具,結閤實例從白帽子角度分析瞭諸多係統問題,是一本難得的安全指南。移動設備管理者、安全研究員、Android應用程序開發者和負責評估Android安全性的顧問都可以在本書中找到必要的指導和工具。
在本書中你可以:
熟悉實現安全性的細節,以及由Android操作係統開放性帶來的復雜問題;
繞開常見安全隱患,瞭解智能手機全新黑客攻擊策略;
迴顧曾成功攻破Android操作係統的各類攻擊;
探索ROOT操作、分區布局和引導過程;
理解Android生態圈的復雜性,包括各個硬件廠商和軟件開發者的影響。
作者簡介
Joshua J.Drake,是國際知名黑客,AccuvantLABS公司研究部門總監,曾在世界黑客大賽Pwn2Own上攻陷IE瀏覽器中的Java插件,曾發現GoogleGlass漏洞。
Pau Oliva Fora,是viaForensics公司的移動安全工程師,為主流AndroidOEM提供谘詢服務。
Georg Wicherski,是CrowdStrike公司的安全研究員。
內頁插圖
精彩書評
★“本書的主要作者是在信息安全領域浸淫多年的一流專傢,三位譯者也都在技術一綫耕耘多年並各有卓越成就。這種全明星陣容讓我對本書充滿期待。”
——於暘(tombkeeper),騰訊“玄武”安全實驗室總監,安全專傢,微軟漏洞防禦挑戰懸賞10萬美元大奬獲得者
★“一本值得安全從業者認真研讀的經典Android係統安全方嚮技術書籍,高質量的翻譯也保證瞭技術內容的原汁原味傳達。”
——何淇丹(Flanker),KeenTeam高級研究員
★“這是一本關於Android係統安全方麵的書籍,內容涵蓋瞭設備係統底層、漏洞挖掘及利用方麵的知識,本書的作者都是在網絡安全以及嵌入式設備領域的高級專傢。此書由我國幾位在計算機網絡安全的學術和工業界享有傑齣聲望的專傢們譯製而成,他們專業領域的知識能夠保證該書的翻譯質量,讓讀者能夠從淺至深地掌握書中的技能,並且熟練玩轉Android設備。”
——dm557,PanguTeam成員
★“很高興看到這樣一本好書可以用中文的形式呈現在大傢麵前。在移動平颱安全成為熱點的今天,講解相關底層技術的書籍卻少得可憐,內容豐富的更是寥寥無幾。這本書的齣現,無疑打破瞭這一僵局。全書以應用軟件、係統內核、硬件等層麵為齣發點,講解瞭在安卓平颱上,如何對其進行漏洞分析、挖掘等鮮為人知的安全技術。書中的乾貨頗多,是軟件安全與開發人員案頭的一本技術專著。我相信,此書將會引領安卓平颱的安全技術潮流!”
——豐生強(非蟲),Android軟件安全專傢,看雪論壇Android安全版版主,安卓巴士開發交流版版主,《Android軟件安全與逆嚮分析》作者
★“說實話,在Android的安全與開發方麵,沒有哪本書比這本更詳細。”
——AdityaGupta,世界知名白帽子,移動安全公司Attify創始人
目錄
第1章縱觀Android生態圈
1.1瞭解Android的根源
1.1.1公司曆史
1.1.2版本曆史
1.1.3審視Android設備傢族
1.1.4主體開源
1.2瞭解Android的利益相關者
1.2.1榖歌
1.2.2硬件廠商
1.2.3移動通信運營商
1.2.4開發者
1.2.5用戶
1.3理解生態圈的復雜性
1.3.1碎片化問題
1.3.2兼容性
1.3.3更新問題
1.3.4安全性與開放性
1.3.5公開披露
1.4小結
第2章Android的安全設計與架構
2.1理解Android係統架構
2.2理解安全邊界和安全策略執行
2.2.1Android沙箱
2.2.2Android權限
2.3深入理解各個層次
2.3.1Android應用層
2.3.2Android框架層
2.3.3DalvikVM
2.3.4用戶空間原生代碼層
2.3.5內核
2.4復雜的安全性,復雜的漏洞利用
2.5小結
第3章rootAndroid設備
3.1理解分區布局
3.2理解引導過程
3.3引導加載程序的鎖定與解鎖
3.4對未加鎖引導加載程序的設備進行root
3.5對鎖定引導加載程序的設備進行root
3.5.1在已啓動係統中獲取root權限
3.5.2NAND鎖、臨時性root與永久性root
3.5.3對軟root進行持久化
3.6曆史上的一些已知攻擊
3.6.1內核:Wunderbar/asroot
3.6.2恢復:Volez
3.6.3udev:Exploid
3.6.4adbd:RageAgainstTheCage
3.6.5Zygote:Zimperlich和Zysploit
3.6.6ashmem:KillingInTheName-
Of和psneuter
3.6.7vold:GingerBreak
3.6.8PowerVR:levitator
3.6.9libsysutils:zergRush
3.6.10內核:mempodroid
3.6.11文件權限和符號鏈接相關的攻擊
3.6.12adb恢復過程競爭條件漏洞
3.6.13Exynos4:exynos-abuse
3.6.14Diag:lit/diaggetroot
3.7小結
第4章應用安全性評估
4.1普遍性安全問題
4.1.1應用權限問題
4.1.2敏感數據的不安全傳輸
4.1.3不安全的數據存儲
4.1.4通過日誌的信息泄露
4.1.5不安全的IPC端點
4.2案例分析:移動安全應用
4.2.1初步剖析
4.2.2靜態分析
4.2.3動態分析
4.2.4攻擊
4.3案例分析:SIP客戶端
4.3.1瞭解Drozer
4.3.2發現漏洞
4.3.3snarfing
4.3.4注入
4.4小結
第5章理解Android的攻擊麵
5.1攻擊基礎術語
5.1.1攻擊嚮量
5.1.2攻擊麵
5.2對攻擊麵進行分類
5.2.1攻擊麵屬性
5.2.2分類決策
5.3遠程攻擊麵
5.3.1網絡概念
5.3.2網絡協議棧
5.3.3暴露的網絡服務
5.3.4移動技術
5.3.5客戶端攻擊麵
5.3.6榖歌的基礎設施
5.4物理相鄰
5.4.1無綫通信
5.4.2其他技術
5.5本地攻擊麵
5.5.1探索文件係統
5.5.2找到其他的本地攻擊麵
5.6物理攻擊麵
5.6.1拆解設備
5.6.2USB
5.6.3其他物理攻擊麵
5.7第三方修改
5.8小結
第6章使用模糊測試來挖掘漏洞
6.1模糊測試的背景
6.1.1選定目標
6.1.2構造畸形輸入
6.1.3處理輸入
6.1.4監控結果
6.2Android上的模糊測試
6.3對BroadcastReceiver進行模糊測試
6.3.1選定目標
6.3.2生成輸入
6.3.3傳遞輸入
6.3.4監控測試
6.4對Android上的Chrome進行模糊測試
6.4.1選擇一種技術作為目標
6.4.2生成輸入
6.4.3處理輸入
6.4.4監控測試
6.5對USB攻擊麵進行模糊測試
6.5.1對USB進行模糊測試的挑戰
6.5.2選定目標模式
6.5.3生成輸入
6.5.4處理輸入
6.5.5監控測試
6.6小結
第7章調試與分析安全漏洞
7.1獲取所有信息
7.2選擇一套工具鏈
7.3調試崩潰Dump
7.3.1係統日誌
7.3.2Tombstone
7.4遠程調試
7.5調試Dalvik代碼
7.5.1調試示例應用
7.5.2顯示框架層源代碼
7.5.3調試現有代碼
7.6調試原生代碼
7.6.1使用NDK進行調試
7.6.2使用Eclipse進行調試
7.6.3使用AOSP進行調試
7.6.4提升自動化程度
7.6.5使用符號進行調試
7.6.6調試非AOSP設備
7.7調試混閤代碼
7.8其他調試技術
7.8.1調試語句
7.8.2在設備上進行調試
7.8.3動態二進製注入
7.9漏洞分析
7.9.1明確問題根源
7.9.2判斷漏洞可利用性
7.10小結
第8章用戶態軟件的漏洞利用
8.1內存破壞漏洞基礎
8.1.1棧緩衝區溢齣
8.1.2堆的漏洞利用
8.2公開的漏洞利用
8.2.1GingerBreak
8.2.2zergRush
8.2.3Mempodroid
8.3Android瀏覽器漏洞利用
8.3.1理解漏洞
8.3.2控製堆
8.4小結
第9章ROP漏洞利用技術
9.1曆史和動機
9.2ARM架構下的ROP基礎
9.2.1ARM子函數調用
9.2.2將gadget組成ROP鏈
9.2.3識彆潛在的gadget
9.3案例分析:Android4.0.1鏈接器
9.3.1遷移棧指針
9.3.2在新映射內存中執行任意代碼
9.4小結
第10章攻擊內核
10.1Android的Linux內核
10.2內核提取
10.2.1從齣廠固件中提取內核
10.2.2從設備中提取內核
10.2.3從啓動鏡像中提取內核
10.2.4解壓內核
10.3運行自定義內核代碼
10.3.1獲取源代碼
10.3.2搭建編譯環境
10.3.3配置內核
10.3.4使用自定義內核模塊
10.3.5編譯自定義內核
10.3.6製作引導鏡像
10.3.7引導自定義內核
10.4調試內核
10.4.1獲取內核崩潰報告
10.4.2理解Oops信息
10.4.3使用KGDB進行Live調試
10.5內核漏洞利用
10.5.1典型Android內核
10.5.2獲取地址
10.5.3案例分析
10.6小結
第11章攻擊RIL無綫接口層
11.1RIL簡介
11.1.1RIL架構
11.1.2智能手機架構
11.1.3Android電話棧
11.1.4對電話棧的定製
11.1.5RIL守護程序
11.1.6用於vendor-ril的API
11.2短信服務
11.2.1SMS消息的收發
11.2.2SMS消息格式
11.3與調製解調器進行交互
11.3.1模擬調製解調器用於模糊測試
11.3.2在Android中對SMS進行模糊測試
11.4小結
第12章漏洞利用緩解技術
12.1緩解技術的分類
12.2代碼簽名
12.3加固堆緩衝區
12.4防止整數溢齣
12.5阻止數據執行
12.6地址空間布局隨機化
12.7保護棧
12.8保護格式化字符串
12.9隻讀重定位錶
12.10沙盒
12.11增強源代碼
12.12訪問控製機製
12.13保護內核
12.13.1指針和日誌限製
12.13.2保護零地址頁
12.13.3隻讀的內存區域
12.14其他加固措施
12.15漏洞利用緩解技術總結
12.16禁用緩解機製
12.16.1更改personality
12.16.2修改二進製文件
12.16.3調整內核
12.17對抗緩解技術
12.17.1對抗棧保護
12.17.2對抗ASLR
12.17.3對抗數據執行保護
12.17.4對抗內核級保護機製
12.18展望未來
12.18.1進行中的官方項目
12.18.2社區的內核加固工作
12.18.3一些預測
12.19小結
第13章硬件層的攻擊
13.1設備的硬件接口
13.1.1UART串行接口
13.1.2I2C、SPI和單總綫接口
13.1.3JTAG
13.1.4尋找調試接口
13.2識彆組件
13.2.1獲得規格說明書
13.2.2難以識彆的組件
13.3攔截、監聽和劫持數據
13.3.1USB
13.3.2I2C、SPI和UART串行端口
13.4竊取機密和固件
13.4.1無損地獲得固件
13.4.2有損地獲取固件
13.4.3拿到dump文件後怎麼做
13.5陷阱
13.5.1定製的接口
13.5.2二進製私有數據格式
13.5.3熔斷調試接口
13.5.4芯片密碼
13.5.5bootloader密碼、熱鍵和啞終端
13.5.6已定製的引導過程
13.5.7未暴露的地址綫
13.5.8防止逆嚮的環氧樹脂
13.5.9鏡像加密、混淆和反調試
13.6小結
附錄A工具
附錄B開源代碼庫
2
前言/序言
信息安全與大多數領域一樣,都是從傢庭式手工作坊開始萌芽的。經過自主發展,這一領域已經跨越瞭業餘消遣式的初級階段,逐漸成為一個健全的産業。如今 的信息安全領域中,有頂著各種行政頭銜的大佬們,也有從事一綫研發工作的牛人們,還有來自學術圈的"眼綫"們。這也是一塊創新熱土,能夠讓數論、密碼學、 自然語言處理、圖論、算法、理論計算機科學等一係列看似冷僻的研究方嚮産生重大行業影響。對於這些令人神往的科學研究而言,信息安全行業正在發展進化成為 它們的創新試驗場,但與此同時,信息安全(特彆是"漏洞研究")仍然受信息技術領域整體發展的限製,並與信息技術領域的熱點趨勢保持一緻。
正 如我們每個人從個人生活中強烈感受到的那樣,移動計算顯然是信息技術領域近年來得到巨大發展的一個熱點方嚮。現在,各種移動設備已經無時無刻不伴隨在我們 的左右,我們花在移動設備上的時間要比花在電腦上的時間多得多:辦公用的電腦在下班後就會被我們遺棄在辦公桌上,而傢裏的電腦在我們早上急匆匆去上班時甚 至沒有打開的機會,這種變化是前所未有的。與電腦不同的是,我們的移動設備始終是保持開機的,而且連接著工作與傢庭這兩個世界,因此也成為瞭壞人們眼中更 具價值的攻擊目標。
不幸的是,信息安全行業適應移動化趨勢的腳步有些遲緩,近期纔剛剛跨齣瞭一小步。作為一個"保守派"占多數的行業,信息安 全領域在移動與嵌入式安全研究開發上的行動在過去幾年裏過於緩慢(至少公開層麵上是這樣的),以至於移動安全在某種程度上仍然被認為是前沿研究,因為移動 設備的消費者與用戶最近纔開始察覺並理解日常使用移動設備所麵臨的安全威脅。這些威脅也隨之為移動安全研究與安全産品創造瞭市場前景。
對於信息安全領域研究者而言,移動平颱就像是一塊新大陸,等待著人們去探索,其中有著各種處理器架構、硬件外設、軟件棧和操作係統所構成的多樣化"地理結構",它們共同構成瞭一個挖掘、利用和研究各類漏洞的生態係統。
根據IDC的統計,Android在2012年第三季度的全球市場份額是75%(以當季齣貨量計算),共齣貨一億三韆六百萬部。蘋果公司的iOS在當季 的市場份額為14.9%,黑莓與塞班則分彆以4.3%和2.3%的市場份額被甩在後麵。而到瞭2013年第三季度,Android的市場份額上升到瞭 81%,iOS下降至12.9%,剩餘的6.1%則分散在其他移動操作係統中。在這樣的市場份額分布格局下,Android世界中有著一係列有趣的信息安 全事件和研究工作,我們覺得一本能夠描述該領域本質的書籍肯定是大傢翹首以盼的。
Wiley齣版社已經齣版瞭Shellcoder's、Mac、Database、WebApplication、iOS和Browser等"黑客攻防技術寶典"係列圖書。《Android安全攻防權威指南》是這一係列的最新圖書,充分藉助瞭整個係列的一些基礎信息。
本書及相關技術概述
我們決定寫這本書的主要原因是,當前移動安全研究領域的知識圖譜過於稀疏,僅有的參考資源和技術資料互相孤立,甚至是相互衝突的。雖然已經有瞭不少專注 於Android的優秀論文和其他齣版物,但其中很大一部分所涵蓋的內容都非常狹窄,僅僅關注Android安全的某個特定方嚮,或者隻是在討論移動或嵌 入式設備的某個安全問題時將Android作為一個輔助例子予以提及。此外,Android相關的已公開漏洞信息非常稀缺,雖然現在已經有超過1000個 已公開的漏洞會影響到Android設備,但通過常見漏洞信息渠道報告的隻有不到100個。我們相信,本書所介紹的相關技術、概念、工具、技巧和案例,可 以幫助你邁上改善Android安全産業態勢的漫漫長路。
本書的結構
本書應該按照章節順序進行閱讀,但是對於正在鑽研 Android或者進行Android設備安全研究的讀者來說,也可以將本書作為一本參考資料。本書一共分為13章,幾乎涵蓋瞭安全研究人員第一次接觸 Android所需要瞭解的所有內容。這些章節通過圖錶、截圖、代碼片段和反匯編代碼等來介紹Android的軟硬件環境,進而討論在Android上進 行軟件漏洞利用和逆嚮工程的不同之處。全書的大緻結構是,從一些寬泛的話題開始,以深度的技術細節收尾。這些章節逐步具體化,最終將討論一些安全研究的高 級話題,如發現、分析和攻擊Android設備。本書盡可能地引用來自外部的各類詳細文檔,從而專注於闡述設備root、逆嚮工程、漏洞研究和軟件漏洞利 用等技術細節。
第1章介紹Android移動設備的生態係統。首先迴顧Android係統發展的曆史,然後介紹通用軟件的構成、 Android設備的市場流通情況以及供應鏈當中的各大關鍵角色,最後從較高層麵上總結和討論Android生態係統發展遭遇的挑戰以及安全研究麵臨的睏 難。
第2章闡述Android係統的基礎知識。首先引入係統安全機製的基礎核心概念,然後深入關鍵安全組件的內部機製。
第3章介紹獲取Android設備完全控製權的動機與方法。首先講授適用於眾多設備的通用技術,而後逐一詳細分析十幾個公開的漏洞利用。
第4章涉及Android應用相關的安全概念和技術。討論瞭Android應用開發過
Android安全攻防權威指南 下載 mobi epub pdf txt 電子書 格式