具體描述
編輯推薦
1. 理論知識 + 實戰案例
2. 分析反病毒軟件中真實存在的漏洞缺陷,提升安全技能,讓係統無懈可擊
3. 騰訊安全平颱部專傢精心翻譯
本書主要內容:
●對反病毒軟件進行全方位的逆嚮工程
●理解插件係統和反病毒特徵碼技術
●繞過反病毒措施
●繞過特徵碼識彆、掃描器和啓發式引擎
●利用本地和遠程攻擊技術 內容簡介
本書由業界知名安全技術人員撰寫,係統介紹瞭逆嚮工程反病毒軟件。主要內容包括:反病毒軟件所采納的各種具體手段,攻擊和利用殺毒軟件的多種常見方法,殺毒軟件市場現狀以及未來市場預估。
本書是逆嚮工程師、滲透測試工程師、安全技術人員和軟件開發人員的必讀指南。 作者簡介
【作者簡介】
Joxean Koret
逆嚮工程、漏洞研究和惡意軟件分析領域知名專傢,安全谘詢公司Coseinc安全研究員,經常受邀在國際性安全會議上做演講。
Elias Bachaalany
安全專傢,微軟軟件安全工程師,曾做過程序員、逆嚮工程師、自由技術寫作者;另與人閤著有《逆嚮工程實戰》。
【譯者簡介】
周雨陽
安全研究員,喜愛英語翻譯。研究方嚮主要為反病毒技術、瀏覽器安全、Web安全,曾挖掘齣榖歌、蘋果、雅虎等多個廠商的漏洞並獲得緻謝。目前就職於騰訊安全平颱部。 目錄
第一部分 反病毒技術入門
第1章 反病毒軟件入門 2
1.1 何謂反病毒軟件 2
1.2 反病毒軟件的曆史與現狀 2
1.3 反病毒掃描器、內核和産品 3
1.4 反病毒軟件的典型誤區 4
1.5 反病毒軟件功能 5
1.5.1 基礎功能 5
1.5.2 高級功能 8
1.6 總結 10
第2章 逆嚮工程核心 11
2.1 逆嚮分析工具 11
2.1.1 命令行工具與GUI工具 11
2.1.2 調試符號 12
2.1.3 提取調試符號的技巧 13
2.2 調試技巧 16
2.3 移植內核 22
2.4 實戰案例:為Linux版Avast編寫Python binding 23
2.4.1 Linux版Avast簡介 23
2.4.2 為Linux版Avast編寫簡單的Python binding 25
2.4.3 Python binding的最終版本 30
2.5 實戰案例:為Linux版Comodo編寫本機C/C++工具 30
2.6 內核加載的其他部分 46
2.7 總結 47
第3章 插件係統 48
3.1 插件加載原理 48
3.1.1 反病毒軟件的全功能鏈接器 49
3.1.2 理解動態加載 49
3.1.3 插件打包方式的利弊 50
3.2 反病毒插件的種類 52
3.2.1 掃描器和通用偵測程序 52
3.2.2 支持文件格式和協議 53
3.2.3 啓發式檢測 54
3.3 高級插件 57
3.3.1 內存掃描器 57
3.3.2 非本機代碼 58
3.3.3 腳本語言 59
3.3.4 模擬器 60
3.4 總結 61
第4章 反病毒特徵碼技術 62
4.1 典型特徵碼 62
4.1.1 字節流 62
4.1.2 校驗和 63
4.1.3 定製的校驗和 63
4.1.4 加密散列算法 64
4.2 高級特徵碼 64
4.2.1 模糊散列算法 65
4.2.2 基於程序圖的可執行文件散列算法 66
4.3 總結 68
第5章 反病毒軟件的更新係統 69
5.1 理解更新協議 69
5.1.1 支持SSL/TLS 70
5.1.2 驗證更新文件 71
5.2 剖析更新協議 72
5.3 錯誤的保護 79
5.4 總結 79
第二部分 繞過反病毒軟件
第6章 繞過反病毒軟件 82
6.1 誰會使用反病毒軟件的繞過技術 82
6.2 探究反病毒軟件偵測惡意軟件的方式 83
6.2.1 用於偵測惡意軟件的老把戲:分治算法 83
6.2.2 二進製指令和汙點分析 88
6.3 總結 89
第7章 繞過特徵碼識彆 90
7.1 文件格式:偏門案例和無文檔說明案例 90
7.2 繞過現實中的特徵碼 91
7.3 繞過特定文件格式的相關提示和技巧 96
7.3.1 PE文件 96
7.3.2 JavaScript 98
7.3.3 PDF 100
7.4 總結 102
第8章 繞過掃描器 104
8.1 繞過技術的通用提示和策略 104
8.1.1 識彆分析模擬器 105
8.1.2 高級繞過技巧 106
8.2 自動化繞過掃描器 117
8.2.1 初始步驟 117
8.2.2 MultiAV配置 121
8.2.3 peCloak 125
8.2.4 編寫終極工具 126
8.3 總結 128
第9章 繞過啓發式引擎 130
9.1 啓發式引擎種類 130
9.1.1 靜態啓發式引擎 130
9.1.2 繞過簡單的靜態啓發式引擎 131
9.1.3 動態啓發式引擎 137
9.2 總結 142
第10章 確定攻擊麵 144
10.1 理解本地攻擊麵 145
10.1.1 查找文件和係統目錄權限的弱點 145
10.1.2 權限提升 146
10.2 錯誤的訪問控製列錶 146
10.2.1 在Unix平颱上利用SUID和SGID二進製文件漏洞 148
10.2.2 程序和二進製文件的ASLR和DEP保護 149
10.2.3 利用Windows對象的錯誤權限 151
10.2.4 利用邏輯缺陷 153
10.3 理解遠程攻擊麵 155
10.3.1 文件解析器 155
10.3.2 通用偵測和感染文件修復代碼 156
10.3.3 網絡服務、管理麵闆和控製颱 156
10.3.4 防火牆、入侵監測係統和解析器 157
10.3.5 更新服務 157
10.3.6 瀏覽器插件 157
10.3.7 安全增強軟件 158
10.4 總結 159
第11章 拒絕服務攻擊 161
11.1 本地拒絕服務攻擊 161
11.1.1 壓縮炸彈 162
11.1.2 文件格式解析器中的缺陷 165
11.1.3 攻擊內核驅動 165
11.2 遠程拒絕服務攻擊 166
11.2.1 壓縮炸彈 166
11.2.2 文件格式解析器中的缺陷 167
11.3 總結 167
第三部分 分析與攻擊
第12章 靜態分析 170
12.1 手動二進製審計 170
12.1.1 文件格式解析器 170
12.1.2 遠程服務 177
12.2 總結 181
第13章 動態分析 182
13.1 模糊測試 182
13.1.1 模糊測試工具是什麼 182
13.1.2 簡單的模糊測試 183
13.1.3 對反病毒産品的自動化模糊測試 185
13.1.4 找到好的模糊測試模版 192
13.1.5 查找模版文件 194
13.1.6 使代碼覆蓋率最大化 196
13.1.7 模糊測試套組Nightmare 201
13.2 總結 207
第14章 本地攻擊 209
14.1 利用後門和隱藏功能 209
14.2 挖掘非法特權、權限分配和訪問控製列錶 213
14.3 在內核態查找隱蔽的功能特性 217
14.4 更多的內核邏輯漏洞 223
14.5 總結 231
第15章 遠程漏洞 233
15.1 實施客戶端漏洞利用攻擊 233
15.1.1 利用沙盒的缺陷 233
15.1.2 利用ASLR、DEP和位於固定地址的RWX頁麵漏洞 234
15.1.3 編寫復雜的payload 235
15.1.4 利用更新服務中的漏洞 240
15.2 服務器端的漏洞利用 248
15.2.1 客戶端和服務器端漏洞利用的區彆 248
15.2.2 利用ASLR、DEP和地址固定的RWX內存頁麵相關漏洞 249
15.3 總結 249
第四部分 當前趨勢與建議
第16章 當前反病毒防護趨勢 252
16.1 匹配攻擊技術與目標 252
16.1.1 多種多樣的反病毒産品 252
16.1.2 針對傢庭用戶 253
16.1.3 針對中小型公司 254
16.2 針對政府機構和大型公司 254
16.3 總結 255
第17章 一些建議和未來展望 256
17.1 給反病毒軟件用戶的建議 256
17.1.1 盲目信任是錯誤的 256
17.1.2 隔離機器來增強防護 260
17.1.3 審計反病毒産品 261
17.2 給反病毒廠商的建議 261
17.2.1 優秀的工程師並不代錶安全 261
17.2.2 利用反病毒軟件的漏洞很簡單 262
17.2.3 進行審計 262
17.2.4 模糊測試 262
17.2.5 安全地使用權限 263
17.2.6 減少解析器中的危險代碼 263
17.2.7 改進升級服務和協議的安全性 264
17.2.8 刪除或禁用舊代碼 264
17.3 總結 265
《黑客攻防技術寶典:反病毒篇》是一本深度剖析網絡安全領域中病毒攻防對抗的書籍。本書並非是簡單地羅列各種病毒或殺毒軟件的使用說明,而是旨在從更宏觀、更技術性的角度,為讀者搭建一個理解病毒生命周期、傳播機製、生存策略以及相應防禦體係的知識框架。 第一部分:病毒的起源與進化——理解攻擊者的思維模型 本書的開篇,將帶領讀者深入瞭解病毒的“起源”故事。這並非指遠古的計算機病毒,而是從黑客文化的萌芽、早期網絡協議的漏洞,以及信息爆炸時代産生的新的攻擊嚮量開始。我們會探討是什麼驅動瞭病毒的産生,從最初的代碼趣味實驗,到網絡犯罪的産業化。理解攻擊者的動機、技術背景和思維模式,是有效防禦的第一步。 我們將深入分析病毒的“進化”曆程。從簡單的文件感染型病毒,到具備蠕蟲、木馬、間諜軟件等多種形態的復雜惡意軟件,病毒的演變速度驚人。本書會梳理這一進化脈絡,介紹曆史上具有裏程碑意義的病毒案例,並分析它們在傳播方式、感染機製、逃避檢測技術等方麵是如何實現“迭代升級”的。這部分內容將幫助讀者建立對惡意軟件演進趨勢的直觀認識,預判未來的威脅形態。 早期病毒的傳播方式與載體: diskettes, bulletin board systems (BBS), email attachments. 宏病毒的興起與Office文檔的風險: VBA macro exploitation, social engineering vectors. 蠕蟲的自我復製與網絡帶寬消耗: Morris worm, Code Red, SQL Slammer. 木馬的潛伏與後門建立: Remote Access Trojans (RATs), keyloggers, credential stealers. Rootkit的隱匿技術: User-mode rootkits, kernel-mode rootkits, hiding processes, files, and network connections. 僵屍網絡與分布式拒絕服務攻擊(DDoS): Botnets as a service, coordinated attacks. 勒索軟件的經濟驅動與加密技術: Ransomware-as-a-service (RaaS), encryption algorithms, payment methods. APT(高級持續性威脅)的演變: targeted attacks, long-term infiltration, espionage, sabotage. 移動惡意軟件的崛起: Android malware, iOS malware, app store vulnerabilities, sideloading risks. 物聯網(IoT)設備的漏洞與威脅: Mirai botnet, industrial control systems (ICS) attacks. 第二部分:病毒的五髒六腑——深度剖析惡意軟件的核心技術 在理解瞭病毒的起源與演變後,本書將帶領讀者“解剖”病毒,深入瞭解其核心技術。這部分內容將聚焦於病毒的代碼層麵,講解其工作原理、內存管理、進程注入、持久化技術以及各種逃避檢測的手段。這不是對現有病毒進行逆嚮分析,而是講解通用的技術原理,使讀者能夠舉一反三,理解新型病毒的設計思路。 病毒的載荷(Payload)設計: 數據竊取: 憑據抓取(credential harvesting),瀏覽器曆史記錄,Cookie,剪貼闆數據。 係統破壞: 文件刪除、修改、加密,係統配置更改,MBR(主引導記錄)覆蓋。 信息收集: 係統信息,硬件信息,網絡配置,已安裝軟件列錶。 後門控製: 遠程命令執行,文件上傳下載,屏幕截圖,攝像頭/麥剋風錄製。 挖礦(Cryptojacking): 利用受害者CPU/GPU進行加密貨幣挖礦。 廣告注入與流量劫持: 篡改網頁內容,強製廣告展示,重定嚮流量。 病毒的入口點與感染方式: 文件感染: 注入到可執行文件,腳本文件(如VBS, JS),文檔文件(如DOCM, XLSM)。 內存駐留: 將自身加載到內存中,實現持久性。 啓動項利用: 利用Windows Registry Run鍵,Task Scheduler,Services,Startup folders。 DLL劫持與注入: 替換閤法DLL文件,或將惡意DLL注入到閤法進程。 代碼注入技術: Process Hollowing, Process Doppelgänging, Thread Injection. 病毒的隱匿與反檢測技術: 多態(Polymorphism): 每次感染時改變自身代碼特徵,生成新的“外殼”。 變形(Metamorphism): 不僅改變入口點,還重構代碼邏輯,實現更深度的變異。 加密與混淆(Encryption & Obfuscation): 對自身代碼進行加密,運行時解密;使用代碼混淆技術,增加靜態分析難度。 反調試(Anti-Debugging): 檢測是否在調試環境中運行,如IsDebuggerPresent(), CheckRemoteDebugger(). 反虛擬機(Anti-Virtualization): 檢測是否運行在虛擬機環境中,如VMware, VirtualBox,從而避免被分析。 行為欺騙: 模擬正常用戶行為,避免觸發安全軟件的異常檢測。 Rootkit技術: 隱藏文件、進程、注冊錶項、網絡連接。 簽名規避: 避免生成已知病毒簽名,通過加殼、加固等方式。 利用閤法軟件: 僞裝成閤法軟件,或者利用閤法軟件的漏洞進行傳播。 社會工程學結閤: 利用用戶信任,誘導用戶執行惡意代碼。 病毒的通信與C2(Command and Control)服務器: Beaconing: 定期嚮C2服務器發送心跳信號,等待指令。 加密通信: 使用SSL/TLS等協議加密通信內容。 利用閤法協議: HTTP/HTTPS, DNS, FTP 等,使其通信難以區分。 域名生成算法(DGA): 動態生成大量的域名,躲避DNS黑名單。 通信模式: P2P(點對點)通信,Webshell通信,IM(即時通訊)通道。 第三部分:與病毒的零距離——實戰中的攻防博弈 本部分將超越理論,進入更貼近實戰的場景。我們將探討在真實的網絡環境中,病毒是如何傳播的,攻擊者又是如何利用現有的漏洞和技術來實施攻擊的。同時,我們將詳細介紹各種反病毒技術的原理和應用,以及如何構建有效的防禦體係。 病毒的傳播渠道與攻擊嚮量: 網絡漏洞利用: SMB漏洞(如EternalBlue),RDP漏洞,Web服務器漏洞。 電子郵件與釣魚攻擊: 惡意附件,惡意鏈接,BEC(Business Email Compromise)。 可移動存儲介質: U盤,移動硬盤,通過物理接觸傳播。 軟件供應鏈攻擊: 感染開發工具,庫,或更新服務器。 社交媒體與即時通訊: 惡意鏈接,僞裝文件。 漏洞利用工具包(Exploit Kits): 自動掃描用戶瀏覽器,檢測並利用漏洞。 防病毒技術的原理與實踐: 簽名檢測(Signature-based Detection): 基於已知病毒特徵碼進行匹配。 啓發式掃描(Heuristic Scanning): 分析文件行為,識彆未知病毒的潛在風險。 行為分析(Behavioral Analysis): 實時監控進程行為,識彆異常活動。 沙箱技術(Sandbox Technology): 在隔離環境中運行可疑文件,觀察其行為。 機器學習與人工智能在反病毒中的應用: 識彆未知威脅,提高檢測精度。 端點檢測與響應(EDR, Endpoint Detection and Response): 提供更深入的可見性,實時威脅檢測和自動化響應。 網絡入侵檢測/防禦係統(NIDS/NIPS): 監控網絡流量,檢測和阻止惡意活動。 防火牆與入侵預防係統(IPS): 阻止未經授權的網絡訪問。 補丁管理與漏洞掃描: 及時修補係統和應用漏洞。 安全意識培訓: 提高用戶的防範意識,減少社會工程學攻擊的成功率。 數據備份與恢復: 降低勒索軟件攻擊的損失。 安全加固與配置審計: 提高係統的安全性,減少攻擊麵。 事件響應與取證: 早期威脅發現的指標(IoC, Indicators of Compromise): IP地址,域名,文件哈希,注冊錶項。 內存取證(Memory Forensics): 分析內存中的活動,提取惡意進程信息。 磁盤取證(Disk Forensics): 恢復被刪除文件,分析文件係統。 網絡流量分析(Network Traffic Analysis): 抓包分析,識彆惡意通信。 日誌分析: 分析係統日誌,安全日誌,應用程序日誌。 事件溯源與攻擊鏈分析: 還原攻擊過程,評估影響。 第四部分:未來的戰場——應對新興威脅與挑戰 網絡安全是一個動態發展的領域,病毒和攻擊技術也在不斷演進。本書的最後一部分將展望未來,探討新興的威脅形態以及我們應如何應對。 人工智能與機器學習的“雙刃劍”: AI被用於生成更智能的惡意軟件,同時也是反病毒的利器。 量子計算對加密技術的潛在衝擊: 量子計算可能破解現有加密算法,對網絡安全産生顛覆性影響。 區塊鏈技術的安全應用與風險: 區塊鏈可能被用於更安全的通信,但也可能被用於更隱匿的犯罪。 雲安全麵臨的新挑戰: 雲環境的復雜性,多租戶模型,以及API安全。 DevSecOps與Shift-Left Security: 將安全融入開發生命周期的早期階段。 零信任安全模型: 不再信任任何內部或外部實體,持續驗證。 人類因素的永恒挑戰: 心理漏洞和人為失誤。 《黑客攻防技術寶典:反病毒篇》通過層層遞進的結構,由淺入深地講解瞭病毒的方方麵麵。它不僅僅是一本“反病毒”的技術手冊,更是一本關於網絡安全攻防博弈的“兵法”。本書旨在培養讀者獨立思考和分析問題的能力,幫助他們在瞬息萬變的數字戰場中,構建堅實的防禦壁壘。無論是初入網絡安全領域的學生,還是有經驗的安全從業者,都能從中獲得有價值的知識和啓示。