漏洞戰爭:軟件漏洞分析精要(修訂版)( 簡體 字) | |
作者:林椏泉 | 類別:1. -> 安全 -> 網路安全 -> 駭客攻擊與入侵 |
出版社:電子工業出版社 | 3dWoo書號: 56323 詢問書籍請說出此書號! 有庫存 NT售價: 645 元 |
出版日:1/1/2024 | |
頁數:580 | |
光碟數:0 | |
站長推薦: | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787121466717 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
第1章 基礎知識 1
1.1 漏洞的相關概念 1 1.1.1 什么是漏洞 1 1.1.2 漏洞的價值 1 1.1.3 0Day漏洞 2 1.1.4 PoC與Exploit 2 1.2 為什么要分析漏洞 2 1.3 常用分析工具 3 1.3.1 IDA——匯編利器 3 1.3.2 OllyDbg——破解與逆向常用調試器 4 1.3.3 Immunity Debugger——漏洞分析專用調試器 4 1.3.4 WinDbg——微軟正宗調試器 5 1.3.5 x64dbg——Windows 64位調試器 6 1.3.6 Ghidra——反匯編器 7 1.3.7 GDB——Linux調試器 8 1.3.8 JEB——Android反編譯器 9 1.3.9 其他工具 10 1.4 常見的漏洞分析方法 10 1.4.1 靜態分析 10 1.4.2 動態調試 11 1.4.3 源碼分析 11 1.4.4 補丁比較 12 1.4.5 污點追蹤 12 1.5 學習資源 13 1.5.1 站點分享 13 1.5.2 書籍推薦 14 1.6 本章總結 15 第2章 棧溢出漏洞分析 16 2.1 棧溢出簡史 16 2.2 棧溢出原理 17 2.3 CVE-2010-2883 Adobe Reader TTF字體SING表棧溢出漏洞 18 2.3.1 LuckyCat攻擊事件 18 2.3.2 漏洞描述 19 2.3.3 分析環境 19 2.3.4 基于字符串定位的漏洞分析方法 20 2.3.5 樣本Exploit技術分析 21 2.3.6 樣本Shellcode惡意行為分析 27 2.3.7 漏洞修復 30 2.4 CVE-2010-3333 Microsoft RTF棧溢出漏洞 31 2.4.1 林來瘋攻擊事件 31 2.4.2 漏洞描述 32 2.4.3 分析環境 32 2.4.4 RTF文件格式 33 2.4.5 基于棧回溯的漏洞分析方法 34 2.4.6 漏洞利用原理分析 42 2.4.7 Office 2003與Office 2007 Exploit通用性研究 43 2.4.8 漏洞修復 46 2.5 CVE-2011-0104 Microsoft Excel TOOLBARDEF Record棧溢出漏洞 52 2.5.1 漏洞描述 52 2.5.2 分析環境 52 2.5.3 基于污點追蹤思路的漏洞分析方法 53 2.5.4 漏洞修復 59 2.6 阿里旺旺ActiveX控件imageMan.dll棧溢出漏洞 60 2.6.1 漏洞描述 60 2.6.2 分析環境 61 2.6.3 針對ActiveX控件的漏洞分析方法 61 2.6.4 漏洞利用原理分析 64 2.7 CVE-2012-0158 Microsoft Office MSCOMCTL.ocx棧溢出漏洞 65 2.7.1 Lotus Blossom 行動 65 2.7.2 漏洞描述 66 2.7.3 分析環境 66 2.7.4 基于OffVis工具的Office漏洞分析方法 66 2.7.5 漏洞修復 72 2.8 本章總結 73 第3章 堆溢出漏洞分析 74 3.1 堆溢出簡史 74 3.2 堆溢出原理 75 3.3 堆調試技巧 80 3.3.1 堆尾檢查 81 3.3.2 頁堆 82 3.4 CVE-2010-2553 Microsoft Cinepak Codec CVDecompress函數堆溢出漏洞 86 3.4.1 漏洞描述 86 3.4.2 分析環境 86 3.4.3 基于HeapPage的堆漏洞分析方法 86 3.4.4 漏洞修復 101 3.5 CVE-2012-0003 Microsoft Windows Media Player winmm.dll MIDI文件堆溢出漏洞 104 3.5.1 關于“蜘蛛”漏洞攻擊包(Zhi-Zhu Exploit Pack) 104 3.5.2 漏洞描述 105 3.5.3 分析環境 105 3.5.4 MIDI文件格式 105 3.5.5 基于導圖推算的漏洞分析方法 107 3.5.6 漏洞利用原理分析 120 3.5.7 補丁比較 127 3.6 CVE-2013-0077 Microsoft DirectShow quartz.dll m2p文件堆溢出漏洞 127 3.6.1 漏洞描述 127 3.6.2 基于HTC的漏洞分析方法 127 3.6.3 漏洞修復 131 3.7 CVE-2012-1876 Internet Explorer MSHTML.dll CalculateMinMax堆溢出漏洞 132 3.7.1 在Pwn2Own黑客大賽上用于攻破IE9的漏洞 132 3.7.2 分析環境 132 3.7.3 基于HPA的漏洞分析方法 132 3.7.4 通過信息泄露實現漏洞利用 146 3.7.5 漏洞修復 155 3.8 本章總結 157 第4章 整數溢出漏洞分析 158 4.1 整數溢出簡史 158 4.2 整數溢出原理 158 4.2.1 基于棧的整數溢出 159 4.2.2 基于堆的整數溢出 160 4.3 CVE-2011-0027 Microsoft Data Access Components整數溢出漏洞 161 4.3.1 在Pwn2Own黑客大賽上用于攻破IE8的漏洞 161 4.3.2 基于堆分配記錄的漏洞分析方法 162 4.3.3 補丁比較 170 4.4 CVE-2012-0774 Adobe Reader TrueType字體整數溢出漏洞 172 4.4.1 漏洞描述 172 4.4.2 PDF文件格式與常用分析工具 172 4.4.3 基于條件記錄斷點的漏洞分析方法 176 4.4.4 補丁分析 190 4.5 CVE-2013-0750 Firefox字符串替換整數溢出漏洞 191 4.5.1 漏洞描述 191 4.5.2 基于源碼調試的漏洞分析方法 191 4.5.3 源碼比對 201 4.6 CVE-2013-2551 Internet Explorer VML COALineDashStyleArray整數溢出漏洞 202 4.6.1 在Pwn2Own黑客大賽上攻破IE10的漏洞 202 4.6.2 基于類函數定位的漏洞分析方法 202 4.6.3 利用信息泄露實現漏洞利用 217 4.7 本章總結 220 第5章 格式化字符串漏洞分析 221 5.1 格式化字符串漏洞簡史 221 5.2 格式化字符串漏洞的原理 221 5.3 CVE-2012-0809 Sudo sudo_debug函數格式化字符串漏洞 228 5.3.1 漏洞描述 228 5.3.2 通過源碼比對分析漏洞 228 5.4 CVE-2012-3569 VMware OVF Tool格式化字符串漏洞 229 5.4.1 漏洞描述 229 5.4.2 基于輸出消息的漏洞定位方法 229 5.4.3 漏洞利用原理分析 233 5.5 本章總結 236 第6章 雙重釋放漏洞分析 237 6.1 雙重釋放漏洞簡史 237 6.2 雙重釋放漏洞的原理 237 6.3 CVE-2010-3974 Windows傳真封面編輯器fxscover.exe雙重釋放漏洞 240 6.3.1 漏洞描述 240 6.3.2 通過棧回溯和堆狀態判定漏洞類型 240 6.3.3 通過補丁比較確定漏洞成因及修復方法 243 6.4 CVE-2014-0502 Adobe Flash Player 雙重釋放漏洞 245 6.4.1 GreedyWonk行動 245 6.4.2 靜態分析攻擊樣本 245 6.4.3 Shellcode自動化模擬執行 254 6.4.4 基于ROP指令地址的反向追蹤 256 6.5 本章總結 264 第7章 釋放重引用漏洞分析 265 7.1 釋放重引用(Use After Free,UAF)漏洞簡史 265 7.2 UAF漏洞的原理 265 7.3 CVE-2011-0065 Firefox mChannel UAF漏洞 268 7.3.1 漏洞描述 268 7.3.2 通過動態調試快速定位漏洞源碼 268 7.3.3 漏洞利用原理分析 276 7.3.4 源碼比對 277 7.4 CVE-2013-1347 Microsoft IE CGenericElement UAF漏洞 278 7.4.1 “水坑”攻擊事件 278 7.4.2 通過HPA快速定位漏洞對象 278 7.4.3 逆向分析IE引擎對JavaScript代碼的解析 281 7.4.4 追本溯源:探尋漏洞的根因 312 7.4.5 漏洞利用原理分析 315 7.5 CVE-2013-3346 Adobe Reader ToolButton UAF漏洞 317 7.5.1 “Epic Turla”網絡間諜攻擊行動 317 7.5.2 使用peepdf分析PDF惡意樣本 317 7.5.3 漏洞利用原理分析 326 7.6 CVE-2015-0313 Adobe Flash Player Workers ByteArray UAF漏洞 328 7.6.1 漏洞描述 328 7.6.2 分析ActionScript虛擬機源碼輔助漏洞調試 328 7.6.3 Flash JIT調試插件與符號文件 341 7.6.4 漏洞利用原理分析 342 7.6.5 漏洞修復 348 7.7 本章總結 348 第8章 數組越界訪問漏洞分析 349 8.1 數組越界與溢出的關系 349 8.2 數組越界訪問漏洞原理 349 8.3 CVE-2011-2110 Adobe Flash Player數組越界訪問漏洞 351 8.3.1 漏洞描述 351 8.3.2 解決安裝舊版Flash Player的限制問題 351 8.3.3 通過Perl腳本輔助分析樣本 352 8.3.4 搭建服務器重現漏洞場景 358 8.3.5 通過修改樣本代碼定位漏洞 360 8.3.6 通過構造信息泄露利用漏洞 363 8.3.7 通過搜索指令序列分析補丁 367 8.4 CVE-2014-0160 OpenSSL TLS數組越界訪問漏洞(“心臟滴血”) 369 8.4.1 漏洞描述 369 8.4.2 基于源碼對比與跟蹤的漏洞分析方法 370 8.4.3 利用漏洞盜取網站賬號 376 8.5 本章總結 380 第9章 內核漏洞分析 381 9.1 Windows內核漏洞漫談 381 9.2 Windows內核調試環境搭建 382 9.3 常見內核漏洞原理與利用 384 9.3.1 漏洞成因分析 384 9.3.2 漏洞利用原理分析 391 9.4 360安全衛士bregdrv.sys本地提權漏洞分析 399 9.4.1 漏洞描述 399 9.4.2 基于導出函數和I/O控制碼的追蹤分析 400 9.5 CVE-2011-2005 Windows Afd.sys本地提權漏洞 409 9.5.1 漏洞描述 409 9.5.2 從利用代碼到漏洞函數的定位分析 409 9.5.3 補丁比較 412 9.6 CVE-2013-3660 Windows win32k.sys EPATHOB指針未初始化漏洞 412 9.6.1 漏洞描述 412 9.6.2 通過IDA定義結構體輔助分析 413 9.6.3 漏洞利用原理分析 417 9.7 CVE-2014-1767 Windows AFD.sys雙重釋放漏洞(Pwn2Own 2014) 423 9.7.1 Pwnie Awards 2014“最佳提權漏洞獎”得主 423 9.7.2 基于IOCTL處理函數自動追蹤記錄的分析方法 423 9.7.3 漏洞利用原理分析 440 9.7.4 補丁分析 446 9.8 本章總結 448 第10章 Android平臺漏洞分析 449 10.1 Android平臺漏洞簡史 449 10.2 Android平臺漏洞分類 452 10.3 常見的漏洞分析方法 453 10.3.1 APK靜態分析 453 10.3.2 smali動態調試 454 10.3.3 so庫動態調試 460 10.3.4 補丁源碼比對 460 10.3.5 系統Java源碼調試 463 10.3.6 系統C/C++源碼調試 471 10.3.7 Android內核源碼調試 473 10.4 智能插座漏洞分析 476 10.4.1 漏洞描述 476 10.4.2 靜態逆向分析 477 10.4.3 利用漏洞控制網絡上的任意插座 481 10.4.4 總結 486 10.5 CVE-2013-4787 Android系統簽名漏洞 487 10.5.1 漏洞描述 487 10.5.2 Android簽名機制 487 10.5.3 漏洞重現 493 10.5.4 漏洞原理分析 498 10.5.5 漏洞修復 500 10.6 CVE-2010-1119 Android WebKit UAF漏洞 500 10.6.1 漏洞描述 500 10.6.2 漏洞利用原理分析 501 10.6.3 通過補丁源碼分析漏洞成因 508 10.7 CVE-2014-3153 Android內核Futex提權漏洞(Towelroot) 512 10.7.1 Android設備Root神器—Towelroot 512 10.7.2 通過內核源碼調試分析漏洞 512 10.7.3 漏洞利用原理分析 532 10.7.4 漏洞修復 538 10.8 本章總結 538 第11章 其他類型的漏洞分析 539 11.1 引言 539 11.2 CVE-2013-2423 JAVA Applet reflection類型混淆代碼執行漏洞 539 11.2.1 漏洞描述 539 11.2.2 類型混淆漏洞 539 11.2.3 Java安全機制 540 11.2.4 漏洞分析與利用原理 542 11.2.5 漏洞修復 546 11.2.6 2013年漏洞之王—Java 547 11.3 CVE-2014-0257 Microsoft Internet Explorer 11 dfsvc組件沙盒逃逸漏洞 548 11.3.1 漏洞描述 548 11.3.2 IE沙盒保護原理 548 11.3.3 IE沙盒攻擊面分析 553 11.3.4 CVE-2014-0257漏洞分析與利用原理 554 11.4 CVE-2014-9150 Adobe Acrobat Reader MoveFileEx IPC Hook競爭條件(沙盒逃逸)漏洞 556 11.4.1 Therac-25醫療事故 556 11.4.2 競爭條件漏洞原理 557 11.4.3 CVE-2014-9150漏洞描述 558 11.4.4 Adobe沙盒簡介 558 11.4.5 利用漏洞實現沙盒逃逸 559 11.5 本章總結 562 本書系統地講解軟件漏洞分析與利用所需的各類工具、理論技術和實戰方法,主要涉及Windows和Android系統平臺。全書內容根據不同的軟件漏洞類型劃分,如堆棧溢出、沙盒逃逸、類型混淆、UAF、內核漏洞等,同時針對流行的移動安全,加入Android平臺的漏洞分析與利用。本書以精心挑選的經典漏洞為例,以分享漏洞的分析技巧和工具為主,對漏洞的成因及利用和修復方法進行詳細講解,旨在“授人以漁”。本書最大的特點是以經典漏洞作為實戰案例來講解,摒棄空頭理論,幾乎是“一本用調試器寫出來的書”。本書適合計算機相關專業的本科生、研究生,信息安全愛好者,軟件安全、移動安全相關從業人員,軟件開發與測試人員及黑客等閱讀。
修訂版說明
遙想當年,初次著書時的忐忑,幾經放棄又重啟的波瀾,來回修改時的煩躁,出版后的如釋重負……不由深為感慨:人生有此一番經歷足矣! 本書第一版印刷時采用了輕型環保紙,由于紙張顏色偏暗、手感較粗糙,多次被讀者誤認為是盜版書,因此出版社后來改用常規紙張印刷——這也是網上有人反饋自己買來的書比朋友買的薄許多的原因。這些讀者心聲,出版社一直在關注并改進。 個人認為,書的質量遠比數量重要。此類漏洞案例實戰的書并不好寫、費時費力,以致自本書第一版問世后,我便一直沒有再著新書的想法,但前版的內容可以持續完善與優化。因此,當編輯提議修訂內容再版時,我是舉雙手贊成的。 本次主要修訂了以下內容: 第一,修正前版中的錯誤,簡化前版中的冗余表述,并更新了不夠清晰的圖片(如許多調試器和IDE的界面均默認為暗黑背景,此版均改成了白底黑字,以提升閱讀體驗)。 因此嚴格來說,此版雖未涉及大幅更新,但一定是目前最好、最清晰的版本。 第二,在第1章中增補了對x64dbg和Ghidra的介紹;刪除前版部分過時的內容。 書中選取的案例雖已有些年頭,但其中介紹的技巧仍舊適用,對于缺少漏洞挖掘實戰經驗的讀者,依然有參考價值,如果讀者能跟著書中案例動手調試一遍,功力定能有所提升。 這些年筆者一直關注網絡安全出版領域,個人認為無論是在圖書出版的數量還是質量上均有一定的提升空間,期待未來能誕生更多優秀的網絡安全著作,推動國內網絡安全行業的發展。 最后感謝七年來眾多讀者的支持與反饋,幫助筆者不斷改進與完善本書,特別是幫助勘誤本書的讀者,他們分別是陳良、江小照、不高興撒、55-AA、肯特awp、hanfengley、期待的遠行、ench4nt3r、杯中取月、興華蔡27136、Murasaki、王大狀、rootkiter、wingdbg、rwx、willJ、2017要好好長肉肉、坩堝鉗Deeom、holing。以上名單按反饋時間排序,若有遺漏,敬請見諒。 林椏泉 2023年11月 前言 不知道大家是否曾有這樣的經歷: ● 無法讀懂網上眾多的軟件漏洞分析文章,不理解漏洞成因和漏洞利用技巧。 ● 即使讀懂某篇軟件漏洞分析文章,自己仍無法獨立完成相同漏洞的分析。如果文章中所使用的測試環境與軟件版本跟自己使用的不一樣,則頓時不知從何入手。 ● 很多軟件漏洞分析文章會貼出存在漏洞的匯編代碼,指出漏洞形成的原因,即給出“結論式分析”,卻并不解釋如何定位到此段代碼,看完之后,仍不知如何快速定位,缺乏可借鑒的思路。 帶著這些問題,相信讀者會在本書中找到想要的答案。 本書的寫作始于2012年5月,最初是網友“愛無言”向我提議合寫一本關于軟件漏洞案例分析的著作——因為當時我在博客上每周都會分享一兩篇軟件漏洞分析的實際案例,而當時國內還沒有專門針對軟件漏洞案例的專著(《0Day安全:軟件漏洞分析技術》主要偏向堆棧溢出及內核方面的漏洞分析,實際案例較少,且“愛無言”也是該書作者之一)——于是,我們一拍即合,寫書的念頭就此產生。 后來,我又拉了兩位朋友加入,共同列出了大綱。然而種種原因,最后只剩下我獨自完成本書的創作,中途也曾多次想放棄。直到某一天,編輯皎子找我聊了一些出書的想法,就這樣,一本原打算沉埋箱底的“殘卷”再次被“激活”,而一本原為“合著”的書就成了“專著”。好在“激活”之后的寫書經歷還算順利,從開始動筆到出版上市,前后歷時4年。圖書質量和出版后的效果也比較符合預期,埋藏心底多年的“結”總算可以打開了。 相信一些讀者看到本書目錄后會有一些疑問,我也相信其中一些疑問也是當時我在定位本書方向時曾考慮過的,所以有必要在此談一談。 Q:本書與《0day安全:軟件漏洞分析技術》有何區別? A:《0day安全:軟件漏洞分析技術》一書主要闡述Windows平臺下堆棧溢出和內核提權的漏洞分析技術,同時涉及部分格式化字符串漏洞,從基礎講起,最后是實例分析。本書則完全以真實的漏洞為實例,并根據不同的漏洞類型來分享漏洞分析的不同技巧,可以說是“用調試器寫出來的一本書”,而且綜合考慮了當前熱門的移動安全技術,特意加入Android平臺上的漏洞分析章節,從Java層、Native層和內核層等方向分享不同的調試分析方法。從難度而言,本書比《0day安全:軟件漏洞分析技術》一書更難,讀者朋友可以將本書當成進階版,搭配學習。 Q:本書列舉的許多漏洞實例網上早有分析文章,為何還寫這本書? A:著書的宗旨在于“授人以魚,不如授人以漁”。如果讀者經常看網上的漏洞分析文章,就會發現一個常見現象:它們大多是“結論性分析”,而非“思路性分析”。換句話說,就是貼出存在漏洞的匯編代碼,然后直接給出漏洞成因的結論,至于如何定位到漏洞代碼,并沒有給出分析思路。正因為如此,即使你看懂了Vupen漏洞軍火商寫的分析文章,也不代表你看完后就能獨立分析出來,甚至在調試之后,你還會發現Vupen會在一些文章中留“坑”,故意省略或寫錯某些關鍵內容,如果自己沒有實際調試一遍是很難發現這些問題的。 相信有一定軟件漏洞分析經驗的朋友會注意到,軟件漏洞分析的大部分時間花費在尋找和定位漏洞代碼上,而非分析存在漏洞的代碼。對于有一定編程經驗和漏洞基礎的讀者,如果直接給出一段漏洞代碼,他們可能很容易就能看出來;但如果是像Adobe和Windows這樣復雜的軟件或系統,分析人員要在千千萬萬的代碼行中找出漏洞代碼是有一定難度的。因此,本書的重點是講授如何快速地定位漏洞代碼,針對不同漏洞類型采取不同的分析技巧,以幫助大家快速地分析出漏洞成因,制定檢測、防御與修復方案。書中的漏洞實例分析技巧是可以長期運用和延伸的,這才是本書的核心價值。 Q:如何借助本書提升自身的軟件漏洞分析能力? A:本書主要面向有一定軟件漏洞分析基礎的讀者。如果讀者缺乏這方面的基礎,但有一定的C語言和匯編語言的基礎,則建議提前閱讀《0day安全:軟件漏洞分析技術》一書。軟件漏洞分析是實踐性較強的技術工作,需要許多實際動手的調試經驗,因此建議大家在閱讀本書的同時,自己手動調試,以加深理解。這就像騎自行車一樣,在熟練之后,哪怕十年未碰車,也依然能上手。本書在分析漏洞時,也盡量以思路性的描述為主,側重講解分析漏洞時的思考方式和常用技巧,包括工具和方法論,因此大家在閱讀時,應該掌握書中介紹的思考方式、工具運用及分析技巧,畢竟某個漏洞案例本身是會過時的,但技巧性的東西總是可以借鑒和擴展的。 記得大一上第一節歷史課時,老師說過這樣一句話,如果在未來的某一天,你在和朋友閑聊時,能夠運用到歷史課上學到的知識,哪怕只是用到一句話作為談資,那這節歷史課就算沒白學。同樣地,我也希望未來大家在分析軟件漏洞時,本書能夠提供一些幫助,哪怕是一個分析技巧,一個工具使用,我也覺得這4年的付出相當值了。 近年來,各種APT攻擊事件頻發,一些知名企業,甚至國家級單位都曾遭受到漏洞攻擊。每年都有一款產品的漏洞被頻繁用于網絡攻擊,比如,2012年的Office漏洞(還記得經典的CVE-2012-0158嗎),2013年的Java漏洞,2014年的Internet Explorer漏洞,2015年的Adobe Flash漏洞。PC端上的軟件漏洞則一直在逐年增加,雖然廠商不斷推出各種安全機制,但漏洞利用技術自身的發展也從未間斷,Exploiters依然生存得很好。同時,互聯網早已步入移動化時代,伴隨著PC軟件漏洞攻擊事件的頻發,移動端的漏洞攻擊也在逐年增長。因此,筆者結合PC端(Windows)與移動端(Android)平臺上的漏洞案例,將自身的實戰經驗整理成本書。 求學之路 經常有人問我:“一個醫學生為什么會轉行做安全?”通常我都會這么回答:“因為小說看多了。” 大一時,由于喜歡看黑客小說,比如,《黑客傳說》《地獄黑客》《指間的黑客》,我就去圖書館找一些黑客書籍來自學,每天中午都不休息,幾乎天天泡在圖書館看書,甚至“翹課”去看計算機專業的書。 一直到大四我才終于買了計算機,在此之前都只能去網吧、學校機房或者借用舍友的計算機。當年,我就用諾基亞3100手機看完了《Windows程序設計》《Windows核心編程》和《Windows環境下32位匯編語言程序設計》;再后來就網購圖書——這比在網吧看電子書更實惠。 大學期間,我還經常給《黑客防線》雜志投稿,一方面可以提升個人技術水平,另一方面還可以用稿費作為生活補貼。后來我也是用稿費再加上哥哥的支持,買了人生中第一臺屬于自己的計算機,本書就有一半內容是在這臺計算機上完成的。 在求學這條道路上,我一直是一個人默默地前行著,就連一塊生活了幾年的舍友也不知道我在學習安全方面的知識,我買的一堆計算機專業的圖書一直被藏在宿舍衣柜的最里面。在此過程中,自己走過很多彎路,甚至差點放棄,但很慶幸最后還是堅持下來了。直至今日,我依然在安全這條道路上前行著…… 面試經歷 在圈內朋友的建議下,我在大五(醫學五年制)上學期開始尋找信息安全相關的工作,最終順利拿到安恒和騰訊的offer。當初投簡歷給安恒時,安恒的副總裁看完我的簡歷后直接發了offer,我有點受寵若驚,也特別感謝安恒的信任,但最終還是選擇了騰訊。面試騰訊的經歷,我覺得是個有趣的過程,值得與大家分享。 那年我還在廈門市第二醫院骨傷科實習,門診部剛好不是特別忙,我給一位腰椎患者做完針灸后,就接到來自騰訊安全中心的面試電話。趁主任不在,我偷偷躲到門診部后面的樓梯口進行電話面試,整個面試過程還算比較順利,第二天騰訊安全中心就來電說希望我到深圳總部面試。 到了深圳總部后,騰訊安全中心的主管面試了我,雖然聊了一個半小時,但沒有問太多問題,聊完后我就被直接帶到HR那里面試。 HR面試時,我們的開場并非常規的話題,而是腰椎間盤突出!這也算是一次別開生面的面試經歷吧。 回到廈門后,我向帶教老師說明了轉行情況,之后有上手術臺的機會,我都會主動讓給其他同班同學,讓他們有更多上臺練手的機會,而我自己自然有更多的時間去鉆研安全技術。 加入騰訊 騰訊是我的第一家雇主,也是目前我唯一工作過的公司,從我畢業一直工作到現在。我見證了騰訊安全應急響應中心(TSRC)的成立與發展,并幫助完善了各種流程和標準。作為早期主要的漏洞審核者,我也從廣大白帽子身上學到很多東西,包括各種漏洞挖掘與利用技術,涉及各個安全領域,如Web安全、驅動安全、應用軟件安全、移動安全等。正是TSRC給了我更多學習的機會,使我在安全技術上能夠更加全面地發展。除此之外,我在公司也從事一些安全研究工作,研發出Android與iOS應用安全審計系統,現已投入公司日常運營中。 至今,我依然覺得能夠將工作與興趣結合在一起,是一件既幸福又幸運的事,而選擇騰訊依然是我當年的明智之舉。 著書感言 本書是我寫的第一本書,也可能是我寫的最后一本技術書。只有親歷著書過程,才知道寫書的不易。特別是類似本書這種針對漏洞實例進行調試分析的書,寫起來特別費時,也更需要有持之以恒的毅力。如果說單純寫書花了1年時間,那么我用來調試的時間大約是3年,因此也可以說這是“一本用調試器寫出來的書”。 “開頭容易,收尾難”是個人著書的真實感受,很多人一時興起寫了開頭,最后很難堅持下去,應該有不少潛在的佳作就此中途夭折了。 本書結構 本書共12章,可以分為三大部分。 基礎篇(第1章):主要介紹一些軟件漏洞相關的基本概念,以及常用工具及漏洞分析方法,最后向讀者推薦一些相關的學習站點和書籍,方便讀者進一步學習和交流。 實戰篇(第2~11章):這是本書最主要的部分,根據不同的漏洞類型挑選不同的經典案例,用不同的漏洞分析技巧,向讀者介紹比較高效的分析方法,剖析各種常見的軟件漏洞類型、原理、利用和修復的實戰技術。同時,緊跟當前熱門的移動互聯網安全問題,增加了Android平臺的漏洞分析,以保證內容與時俱進。 展望篇(第12章):對未來的軟件漏洞發展趨勢作出預判,相信未來的主要戰場會更集中在移動終端、云計算平臺、物聯網三大方向上,并簡要介紹這些方向的漏洞案例。 致謝 感謝父母的養育之恩,是他們在背后默默地支持我前行。 感謝兄長在生活和工作上的幫助與支持。 感謝我的女朋友,正是她的督促和支持才讓我能夠準時完稿,書中部分截圖是由她后期制作的,以呈現更好的印刷效果。 感謝姑母長期以來對我生活上的關心與照顧。 感謝我的東家騰訊公司,它營造的良好氛圍,令我的技術水平和職場發展都更上了一層樓。同時也感謝在工作中一直給予我幫助和鼓勵的同事和領導,由于人數較多,在此不一一列舉。 感謝博文視點的編輯皎子、鄭柳潔及她們的團隊,正是她們的努力才使得本書最終能夠與大家見面。 感謝各位圈內的朋友,他們包括但不限于(排名不分先后):wushi、愛無言、仙果、wingdbg、instruder、kanxue、lake2、harite、h4ckmp、dragonltx、非蟲、monster、gmxp、古河、冰雪風谷、KiDebug、KK…… 由于作者水平有限,書中難免有錯漏之處,歡迎各位業界同仁斧正! |