注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機(jī)/網(wǎng)絡(luò)信息安全緩沖區(qū)溢出攻擊:檢測、剖析與預(yù)防

緩沖區(qū)溢出攻擊:檢測、剖析與預(yù)防

緩沖區(qū)溢出攻擊:檢測、剖析與預(yù)防

定 價:¥49.00

作 者: (美)福斯特 等著,蔡勉 譯
出版社: 清華大學(xué)出版社
叢編項:
標(biāo) 簽: 網(wǎng)絡(luò)安全

ISBN: 9787302139423 出版時間: 2006-12-01 包裝: 膠版紙
開本: 16 頁數(shù): 409 字?jǐn)?shù):  

內(nèi)容簡介

  對于緩沖區(qū)溢出,有三件事令我印象深刻:第一次成功地在Linux的imapd上利用一個緩沖區(qū)溢出;第一次在本地的Linux中獨立發(fā)現(xiàn)和利用了緩沖區(qū)溢出;第一次通過編寫緩沖區(qū)溢出成功進(jìn)入別人的主機(jī)。在讀過Aleph1的關(guān)于緩沖區(qū)溢出的重要論文“Buffer overflows for fun and profit”后,大多數(shù)人想到的主要是由此帶來的好處。因為精通編寫緩沖區(qū)溢出程序的人在該行業(yè)任何一家大公司中做咨詢師的年薪都可以達(dá)到9~12萬美元。但另一方面,許多人對獲得這種技能有一個很大的誤區(qū),認(rèn)為學(xué)會這種技能,就可以一勞永逸了。確實,在IT領(lǐng)域許多訣竅是可以學(xué)會的,一旦了解了這些訣竅,也就擁有這些訣竅了。但是編寫緩沖區(qū)溢出程序卻并不如此,從書本中或者速成班中可以學(xué)會基礎(chǔ)知識,但是編程的環(huán)境總是在變化。一方面,黑客在不停地尋找新的方法來更好的利用漏洞,尋找發(fā)現(xiàn)新的漏洞方法;另一方面,微軟公司每天都在給它的代碼增加保護(hù),如果3個月不寫緩沖區(qū)溢出代碼,原有的技巧也就過時了。編寫緩沖區(qū)溢出中最難的就是要地根據(jù)不斷變化的環(huán)境給出新對策。用于編寫溢出程序的工具也在不斷變化著,以前編寫溢出程序只需要一份Softice或GDB的拷貝,就可以由某個人單獨完成。但是今天,即使是一個簡單的緩沖區(qū)溢出,Immunity公司也會有相當(dāng)大的投入。例如,需要有專門的調(diào)試器來查詢、腳本化正在運行的程序;專門的編譯器來創(chuàng)建和調(diào)整克服弱點所需求的shellcode;購買或產(chǎn)生用于專門解決各種不同問題的反向工程工具;用Python語言編寫的完整的mySQL和SSL庫。一個相對復(fù)雜的漏洞利用需要整個工作小組協(xié)調(diào)完成。每種復(fù)雜的漏洞利用都會有相應(yīng)的文章介紹,這些漏洞利用來自于整個團(tuán)隊在不同漏洞利用過程中所得到的經(jīng)驗。最好的緩沖區(qū)溢出程序決不會是蠕蟲。攻擊者定制的漏洞利用會使被攻擊者身陷其中。如果一個頂級黑客要攻擊某個人,則會完全掌握目標(biāo)主機(jī)的工作環(huán)境,目的只有一個,產(chǎn)生一個只使用一次的緩沖區(qū)溢出。編寫緩沖區(qū)溢出程序有幾個階段。本書作者James Foster介紹了一些基礎(chǔ)的知識和技巧,對初學(xué)者進(jìn)行基礎(chǔ)的訓(xùn)練,確定專攻的方向,然后就可以獨自編寫緩沖區(qū)溢出程序。雖然本書不能使讀者站到技術(shù)的最前沿,但是能夠確信自己掌握了基礎(chǔ)知識,能夠做出正確的決定。也許讀者可能投身于此項工作,致力于編寫代碼、提高技能。對于選擇這一行的讀者,請記住下面的座右銘:● 永遠(yuǎn)不要害怕。微軟的銷售人員在不停地告誡人們發(fā)現(xiàn)微軟的新軟件的緩沖區(qū)溢出漏洞和編寫相應(yīng)的漏洞利用程序是件非常困難的事情。激勵自己繼續(xù)做下去的對策就是想像一旦漏洞利用成功,自己將會如何處理這個漏洞。編寫漏洞利用程序需要掌握很多單調(diào)枯燥的技術(shù),例如,HP-UX所用的少見的扇形內(nèi)存訪問方式;Irix帶有的笨拙的高速緩沖存儲器。雖然編寫緩沖區(qū)溢出程序需要數(shù)千條的匯編語句,學(xué)起來并不是一件容易的事情,但只要自己覺得能做到,那就一定能做到?!?不要太把自己當(dāng)回事。無論自己多么優(yōu)秀,在遙遠(yuǎn)的地方可能還有一些十五歲的年輕人每天花20小時來爭取做得更好。不要把編寫緩沖區(qū)溢出程序當(dāng)成一場競爭,否則你不久就會崩潰?!?找一些伙伴。編寫緩沖區(qū)溢出程序不是獨自能不斷進(jìn)步的一個技能,需要別人的幫助,找出自己在哪方面還比較薄弱。● 不管目標(biāo)是什么,要把這本書當(dāng)作工作表,而不是一本小說。要一邊讀一邊在電腦上操作。一本緩沖區(qū)溢出的書不能造就出一個高明的黑客。在逐章學(xué)習(xí)的過程中,會發(fā)現(xiàn)在漏洞利用不起作用時,自己會去不斷地嘗試,會廢寢忘食,會不惜花金錢來更準(zhǔn)確地掌握所學(xué)到的知識?!?我的觀點是:漏洞利用是事實的復(fù)雜陳述,如果你贊同這個觀點,將使編寫緩沖區(qū)溢出程序變得更加美妙。希望有一天能像欣賞藝術(shù)品一樣欣賞你的代碼?!狣ave AitelImmunity公司創(chuàng)始人兼CEO

作者簡介

  本書提供作譯者介紹James C.Foster是CSC的全球安全解決方案開發(fā)部門的副主任,在加入CSC前,F(xiàn)oster是Foundstone公司的開發(fā)和研究部門的負(fù)責(zé)人,他全面負(fù)責(zé)公司的產(chǎn)品、咨詢以及研發(fā)方面的指導(dǎo)。在加入Foundstone前,F(xiàn)oster是Guardent公司的高級顧問和資深研究員,同時兼任Information Security雜志的編輯。...

圖書目錄

第Ⅰ部分  擴(kuò)展緩沖區(qū)溢出
第1章  緩沖區(qū)溢出的基本概念    3
1.1  簡介    4
1.2  軟件安全危機(jī)    4
1.3  緩沖區(qū)溢出的增加    8
1.4  exploits與緩沖區(qū)溢出    9
1.5  定義    11
1.5.1  硬件    11
1.5.2  軟件    11
1.5.3  安全    15
1.6  小結(jié)    16
1.7  快速解決方案    16
1.8  網(wǎng)站鏈接    17
1.9  郵件清單    17
1.10  常見問題    18
第2章  理解shellcode    19
2.1  簡介    20
2.2  shellcode概述    20
2.3  空字節(jié)問題    27
2.4  實現(xiàn)系統(tǒng)調(diào)用    28
2.5  遠(yuǎn)程shellcode    30
2.5.1  端口綁定shellcode    30
2.5.2  套接字描述符重用shellcode    32
2.6  本地shellcode    33
2.6.1  execve shellcode    33
2.6.2  setuid shellcode    35
2.6.3  chroot shellcode    36
2.7  小結(jié)    41
2.8  快速解決方案    41
2.9  網(wǎng)站鏈接    42
2.10  郵件清單    42
2.11  常見問題    43
第3章  編寫shellcode    45
3.1  簡介    46
3.2  shellcode示例    46
3.2.1  Write系統(tǒng)調(diào)用    49
3.2.2  execve shellcode    52
3.2.3  端口綁定shellcode    60
3.2.4  反向連接shellcode    70
3.2.5  套接口重用shellcode    73
3.2.6  重用文件描述符    75
3.2.7  shellcode編碼    81
3.3  重用程序變量    86
3.3.1  公開的源程序    87
3.3.2  關(guān)閉的源程序    88
3.4  操作系統(tǒng)間的shellcode    90
3.5  理解已有的shellcode    91
3.6  小結(jié)    95
3.7  快速解決方案    95
3.8  網(wǎng)站鏈接    96
3.9  郵件清單    97
3.10  常見問題    97
第4章  Win32匯編語言    99
4.1  簡介    100
4.2  應(yīng)用程序的內(nèi)存布置    100
4.2.1  應(yīng)用程序結(jié)構(gòu)    102
4.2.2  內(nèi)存分配—— 堆棧    103
4.2.3  內(nèi)存分配—— 堆    103
4.3  Windows匯編    104
4.3.1  寄存器    104
4.3.2  Hello World    107
4.4  小結(jié)    109
4.5  快速解決方法    109
4.6  網(wǎng)站鏈接    110
4.7  常見問題    110
案例分析1.1  FreeBSD NN Exploit代碼    114
案例分析1.2  xlockmore用戶提供的格式化字符串    118
案例分析1.3  使用Winsock的Frontpage的拒絕服務(wù)    122
案例分析1.4  FreeBSD上的cURL緩沖區(qū)溢出    133
第Ⅱ部分  緩沖區(qū)溢出解析
第5章  堆棧溢出    139
5.1  簡介    140
5.2  Intel x86結(jié)構(gòu)和機(jī)器語言基礎(chǔ)    141
5.2.1  寄存器    141
5.2.2  堆棧和程序調(diào)用    142
5.2.3  調(diào)用規(guī)則和堆棧結(jié)構(gòu)    148
5.2.4  進(jìn)程內(nèi)存布局    156
5.3  堆棧溢出和它們的利用    157
5.3.1  簡單的溢出    158
5.3.2  創(chuàng)建一個可利用的溢出的實例程序    162
5.3.3  執(zhí)行exploit    164
5.4  什么是Off-by-One 溢出?    174
5.5  尋找堆棧溢出的挑戰(zhàn)    183
5.5.1  詞匯分析    184
5.5.2  語義分析器    186
5.5.3  應(yīng)用程序保護(hù)    187
5.5.4  OpenBSD 2.8 ftpd的off-by-one錯誤    187
5.5.5  Apache htpasswd緩沖區(qū)溢出    188
5.6  小結(jié)    189
5.7  快速解決方案    191
5.8  網(wǎng)站鏈接    192
5.9  郵件清單    192
5.10  常見問題    192
第6章  堆腐爛    195
6.1  簡介    196
6.2  簡單堆腐爛    196
6.2.1  使用堆——malloc()、calloc()和realloc()    197
6.2.2  簡單的堆和BSS溢出    198
6.2.3  腐爛C++中的函數(shù)指針    200
6.3  高級堆腐爛—Doug Lea malloc    203
6.3.1  Doug Lea malloc概述    203
6.3.2  內(nèi)存組織——邊界標(biāo)志、箱(Bins)和場域(Arenas)    204
6.3.3  free()算法    208
6.3.4  偽數(shù)據(jù)塊    209
6.3.5  易受攻擊程序示例    211
6.3.6  利用frontlink()    213
6.3.7  堆上的Off-by-One和Off-by-Five    214
6.4  高級堆腐爛—— System V malloc    215
6.5  應(yīng)用程序防御    225
6.6  小結(jié)    227
6.7  快速解決方案    228
6.7.1  簡單堆腐爛    228
6.7.2  高級堆腐爛—— Doug Lea malloc    228
6.7.3  高級堆腐爛——System V malloc    228
6.7.4  應(yīng)用程序防御    228
6.8  網(wǎng)站鏈接    229
6.9  常見問題    230
第7章  可移植的網(wǎng)絡(luò)編程    231
7.1  簡介    232
7.2  什么是格式化字符串    232
7.2.1  帶有不定數(shù)量參數(shù)的C函數(shù)    232
7.2.2  省略和va_args    233
7.2.3  格式化輸出的函數(shù)    235
7.3  使用格式化字符串    237
7.3.1  printf()例子    237
7.3.2  格式化符號和printf()參數(shù)    238
7.3.3  格式標(biāo)識符的類型    239
7.4  誤用格式化字符串    240
7.4.1  對壞的格式化字符串進(jìn)行操作    242
7.4.2  拒絕服務(wù)    243
7.4.3  讀取存儲器    244
7.4.4  存儲器寫入    246
7.5  利用格式化字符串缺陷的挑戰(zhàn)    251
7.5.1  尋找格式化字符串缺陷    251
7.5.2  覆蓋什么    253
7.5.3  操作系統(tǒng)的差別    259
7.5.4  利用不同系統(tǒng)的困難    261
7.6  應(yīng)用程序防御    261
7.7  小結(jié)    263
7.8  快速解決方案    264
7.9  網(wǎng)站鏈接    265
7.10  常見問題    265
第8章  Windows緩沖區(qū)溢出    267
8.1  簡介    268
8.1.1  背景    268
8.1.2  基本的堆棧溢出    268
8.1.3  編寫Windows shellcode    274
8.1.4  克服特殊的字符(例如空字節(jié))    280
8.1.5  客戶端服務(wù)器應(yīng)用程序    285
8.1.6  使用/誤用結(jié)構(gòu)化異常處理器    295
8.2  小結(jié)    300
8.3  問題快速解決方案    301
8.4  網(wǎng)站鏈接    302
8.5  常見問題    302
案例分析2.1  Linux中的cURL緩沖區(qū)溢出    306
案例分析2.2  異??蛻舳嗣荑€遠(yuǎn)程緩沖區(qū)溢出漏洞    311
案例分析2.3  X11R6 4.2 XLOCALEDIR溢出    322
案例分析2.4  微軟MDAC拒絕服務(wù)漏洞    327
案例分析2.5  本地UUX緩沖區(qū)在HPUX上溢出    339
第Ⅲ部分  查找緩沖區(qū)溢出
第9章  從源代碼中找出緩沖區(qū)溢出    345
9.1  簡介    346
9.2  源代碼分析    346
9.3  免費開放源代碼工具    348
9.3.1  Application Defence Snapshot    348
9.3.2  RATS    350
9.3.3  Flawfinder    353
9.3.4  ITS4    359
9.4  Application Defense—— 企業(yè)開發(fā)版    359
9.5  Secure Software公司    363
9.5.1  結(jié)構(gòu)和部署    364
9.5.2  缺陷知識庫    364
9.5.3  使用CodeAssure    365
9.5.4  補(bǔ)救措施    371
9.6  Ounce Labs公司    371
9.6.1  Prexis的自動化分析科學(xué)    372
9.6.2  Prexis結(jié)構(gòu)    372
9.6.3  Prexis的運用    373
9.6.4  Prexis的缺陷評估    374
9.7  Fortify Software公司    378
9.7.1  Fortify源代碼分析工具    379
9.7.2  使用源代碼分析引擎    379
9.7.3  核查工作臺    381
9.7.4  軟件安全管理軟件    384
9.8  小結(jié)    386
9.9  快速解決方案    386
9.10  網(wǎng)站鏈接    387
9.11  常見問題    388
案例分析3.1  InlineEgg I    390
案例分析3.2  InlineEgg II    392
案例分析3.3  Seti@Home Exploit 代碼    395
案例分析3.4  微軟公司CodeBlue Exploit代碼    402
附錄A  完整的數(shù)據(jù)換算表    407
附錄B  有用的系統(tǒng)調(diào)用函數(shù)    408

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號