首先說明,本週活動有效時間爲2016年9月26日到2016年10月9日。本週爲大家送出的書是由電子工業出版社出版,段念,趙勇翻譯的《模糊測試-強制發掘安全漏洞的利器》。
目在介紹這本書之前,首先要感謝微信號爲:631682315(FEIYU)同學贈送給玄魂工作室的內容讀者的。
前言/序言
在圖上可以看到,FEIYU同學正在招聘代碼審計,感興趣的讀者可以直接加他的微信號,瞭解招聘需求。
下面我們來看看,這本書的簡介。
《模糊測試:強制發掘安全漏洞的利器》是一本系統性描述模糊測試的專著,介紹了主要操作系統和主流應用類型的模糊測試方法,系統地描述了方法和工具,並使用實際案例幫助讀者建立直觀的認識。隨着軟件安全性問題變得越來越關鍵,傳統的僅由組織內的少數安全專家負責安全的模式正受到越來越多的挑戰。模糊測試是一種能夠降低安全性測試門檻的方法,它通過高度自動化的手段讓組織的開發和測試團隊都能參與到安全性測試中,並能夠通過啓發式等方法不斷積累安全測試的經驗,幫助組織建立更有效的面向安全性的開發流程。
作者簡介
Micheal Sutton是SPI Dynamics的安全性專業顧問(Security
Evangelist)。作爲安全性專業顧問,Michael負責識別、研究及提出Web應用安全性歷史上出現的問題。他經常在主要的信息安全會議上演講,寫作了大量文章,並在多種信息安全主題中被引用。Michael同時也是Web 應用安全性協會(Web
Application Security Consortium,WASC)的會員,領導着Web應用安全性統計項目。
在加入SPI Dynamics之前,Michael是iDefense/VeriSign的總監,領導iDefense
Labs這個世界級的研究團隊,該團隊的目標是發現和研究安全性漏洞。Michael還在百慕大建立了爲安永服務的信息系統保證和諮詢服務(Information System
Assurance and Advisory Services,ISAAS)。Michael擁有阿爾伯塔大學和喬治華盛頓大學的學位。
Michael是一個驕傲的加拿大人,在他看來,曲棍球是一種信仰而不只是一種運動。在工作之外,Micheal還是Fairfax志願救火部門的一名士官。
Adam Greene是某大金融新聞公司的工程師,公司位於紐約。在加入這家公司之前,Adam是iDefense的工程師,iDefense是位於弗吉尼亞州雷斯頓城的一家智能公司。Adam在計算機安全性方面的興趣主要在於可信利用(reliable
exploitation)方法、模糊測試,以及開發基於UNIX系統的利用漏洞的工具。
Pedram Amini目前領導着TippingPoint的安全研究和產品安全評估團隊,在此之前,他是iDefense
Labes的助理總監和創始人之一。頂着“助理總監”這個奇怪的頭銜,Pedram在逆向工程的基礎方面投入了相當多的時間——開發自動化工具、插件及腳本。他最近的項目(也叫“Babies”)包括PaiMei逆向工程框架和Sulley模糊測試框架。
出於熱情,Pedram創建了OpenRCE.org,一個專注於逆向工程的藝術和科學的社區網站。他在RECon、BlackHat、DefCon、ShmooCon和ToorCon上都進行過演講,並教授了多次逆向工程課程。Pedram擁有杜蘭大學的計算機科學學位。
目錄
譯者序
前言
原書序
致謝
關於作者
第一部分基礎知識
第1章安全漏洞發現方法學
1.1 白盒測試
1.1.1 代碼評審(Source Code Review)
1.1.2 工具與自動化
1.1.3 優點和缺點
1.2 黑盒測試
1.2.1 手工測試
1.2.2 自動化測試或模糊測試
1.2.3 優點和缺點
1.3 灰盒測試
1.3.1 二進制審計
1.3.2 自動化的二進制審計
1.3.3 優點和缺點
1.4 小結
第2章什麼是模糊測試
2.1 模糊測試的定義
2.2 模糊測試的歷史
2.3 模糊測試各階段
2.4 模糊測試的侷限性和期望
2.4.1 訪問控制漏洞
2.4.2 糟糕的設計邏輯
2.4.3 後門
2.4.4 破壞
2.4.5 多階段安全漏洞(MuliStage Vulnerability)
2.5 小結
第3章模糊測試方法與模糊測試器類型
3.1 模糊測試方法
3.1.1 預生成測試用例
3.1.2 隨機生成輸入
3.1.3 手工協議變異測試
3.1.4 變異或強制性測試
3.1.5 自動協議生成測試
3.2 模糊測試器類型
3.2.1 本地模糊器
3.2.2 遠程模糊測試器
3.2.3 內存模糊測試器
3.2.4 模糊測試器框架
3.3 小結
第4章數據表示和分析
4.1 什麼是協議
4.2 協議中的域
4.3 簡單文本協議(Plain Text Protocols)
4.4 二進制協議
4.5 網絡協議
4.6 文件格式
4.7 常用協議元素
4.7.1 名字-值對
4.7.2 塊識別符
4.7.3 塊大小
4.7.4 校驗和
4.8 小結
第5章有效模糊測試的需求
5.1 可重現性與文檔
5.2 可重用性
5.3 過程狀態和過程深度
5.4 跟蹤、代碼覆蓋和度量
5.5 錯誤檢測
5.6 資源約束
5.7 小結
第二部分目標與自動化
第6章自動化與數據生成
6.1 自動化的價值
6.2 有用的工具和庫
6.2.1 ETHEREAL/WIRESHARK
6.2.2 LIBDASM和LIBDISASM
6.2.3 LIBNET/LIBNETNT
6.2.4 LIBPCAP
6.2.5 METRO PACKET LIBRARY
6.2.6 PTRACE
6.2.7 PYTHON擴展
6.3 編程語言的選擇
6.4 數據生成與啓發式模糊測試(Fuzz Heuristics)
6.4.1 整數值
6.4.2 字符串重複(String Repetitions)
6.4.3 字段分隔符
6.4.4 格式化字符串
6.4.5 字符翻譯
6.4.6 目錄遍歷
6.4.7 命令注入
6.5 小結
第7章環境變量與參數模糊測試
7.1 本地模糊測試介紹
7.1.1 命令行參數
7.1.2 環境變量
7.2 本地模糊測試原則
7.3 尋找測試目標
7.3.1 UNIX文件權限釋義
7.4 本地模糊測試方法
7.5 枚舉環境變量
7.5.1 GNU調試器(GNU Debug,GDB)法
7.6 自動化的環境變量模糊測試
7.6.1 庫預加載(Library Preloading)
7.7 檢測問題
7.8 小結
第8章自動化的環境變量與參數模糊測試
8.1 iFUZZ本地模糊測試器的功能
8.2 開發iFUZZ工具
8.2.1 開發方法
8.3 iFUZZ使用的編程語言
8.4 案例研究
8.5 好處和改進的餘地
8.6 小結
第9章 Web應用與服務器模糊測試
9.1 什麼是Web應用模糊測試
9.2 測試目標
9.3 測試方法
9.3.1 設置目標環境
9.3.2 輸入
9.4 漏洞
9.5 異常檢測
9.6 小結
第10章 Web應用和服務器的自動化模糊測試
10.1 Web應用模糊測試器
10.2 特性
10.2.1 請求
10.2.2 模糊變量
10.2.3 響應
10.3 必需的背景信息
10.3.1 識別請求
10.3.2 檢測
10.4 開發
10.4.1 方法
10.4.2 選擇編程語言
10.4.3 設計
10.5 案例研究
10.5.1 目錄遍歷(Directory Traversal)
10.5.2 溢出
10.5.3 SQL注入
10.5.4 XSS腳本
10.6 優點和可改進的空間
10.7 小結
第11章文件格式模糊測試
11.1 目標
11.2 方法
11.2.1 強制或是基於變異的模糊測試
11.2.2 智能強制或基於生成的模糊測試
11.3 輸入
11.4 安全漏洞
11.4.1 拒絕服務(Daniel of Service,DoS)
11.4.2 整數處理問題
11.4.3 簡單的棧和堆溢出
11.4.4 邏輯錯誤
11.4.5 格式字符串
11.4.6 競爭條件(Race Condition)
11.5 檢測
11.6 小結
第12章 UNIX平臺上的文件格式自動化模糊測試
12.1 notSPIKEfile和SPIKEfile
12.1.1 不包含的功能
12.2 開發過程
12.2.1 異常監測引擎
12.2.2 異常報告(異常監測)
12.2.3 核心模糊測試引擎
12.3 有意義的代碼片段
12.3.1 UNIX中常見的我們可能感興趣的信號
12.3.2 不那麼感興趣的信號
12.4 殭屍進程(Zombie Process)
12.5 使用注意事項
12.5.1 Adobe Acrobat
12.5.2 RealNetworks RealPlayer
12.6 案例研究:RealPlayer RealPix格式字符串漏洞
12.7 開發語言
12.8 小結
第13章 Windows平臺上的文件格式自動化模糊測試
13.1 Windows文件格式漏洞
13.2 FileFuzz工具的功能
13.2.1 創建文件
13.2.2 執行應用
13.2.3 異常檢測
13.2.4 保存好的審計(audit)
13.3 必需的背景信息
13.3.1 識別目標應用
13.4 FileFuzz工具的開發
13.4.1 開發方法
13.4.2 開發語言選擇
13.4.3 設計
13.5 案例研究
13.6 收益和改進空間
13.7 小結
第14章網絡協議的模糊測試
14.1 什麼是網絡協議的模糊測試
14.2 測試目標應用
14.2.1 第二層:數據鏈接層
14.2.2 第三層:網絡層
14.2.3 第四層:傳輸層
14.2.4 第五層:會話層
14.2.5 第六層:表示層
14.2.6 第七層:應用層
14.3 測試方法
14.3.1 強制(基於變異的)模糊測試
14.3.2 智能強制(基於生成的)模糊測試
14.3.3 通過修改客戶端進行變異模糊測試
14.4 錯誤檢測
14.4.1 手工方式(基於調試器)
14.4.2 自動化方式(基於代理)
14.4.3 其他來源
14.5 小結
第15章 UNIX平臺上的自動化網絡協議模糊測試
15.1 使用SPIKE進行模糊測試
15.1.1 選擇目標
15.1.2 協議分析
15.2 SPIKE必要知識
15.2.1 模糊引擎
15.2.2 基於行的通用TCP模糊測試器
15.3 基於塊的協議模型
15.4 其他的SPIKE特性
15.4.1 針對協議的模糊測試器
15.4.2 針對協議的模糊測試腳本
15.4.3 基於腳本的通用模糊測試器
15.5 編寫SPIKE NMAP模糊測試器腳本
15.6 小結
第16章 Windows平臺上
模糊測試是發現未知漏洞的藝術,是安全測試的進階技術,是必知必會的知識。
下面關鍵來了,如果你心動了,如何得到本書呢?
1.在本篇文章下面留言,談談你對模糊測試的認識,理解,感悟或者有趣的故事和想法
2.讓你的朋友幫助給你的留言點贊
3.如果你的感悟或者故事很精彩,可以投稿給我們。
評選標準:
1.點贊數最高的留言者,會獲得本書
2.如果你有和本書內容相關的投稿,如果被採納,在訂閱號發佈,本書優先獎勵給你。
3.同時有多人投稿的話,回到第1條。
微信掃描下發二維碼,關注訂閱號,回覆“每週一書”,瞭解最新的運行情況,最近的送書小活動,獲取書籍的方法都在文章裏面。
每週一書,總有一本是你喜歡的。
玄魂工作室-只關注程序員