圖書介紹 - 資料來源:博客來 目前評分: 評分:
圖書名稱:惡意代碼分析實戰 內容簡介
是業內公認的迄今為止最權威的一本惡意代碼分析指南,《惡意代碼分析實戰》也是每一位惡意代碼分析師都必須作為指導手冊珍藏的案頭必備。
《惡意代碼分析實戰》既是一本教材,也是一本動手實踐的指南。不僅教會你如何分析惡意代碼(技術指導),而且配了大量的實驗練習、案例、答案以及詳細的分析過程,同時還包含了所有用作案例的惡意代碼樣本,提供了豐富、安全的學習環境。
針對初學者:本書的技術內容、實驗作業可以幫你漸入佳境;針對中級讀者:本書大量的分析實踐會直接帶你進入更高的級別,臻入化境。
邁克爾•斯科爾斯基(Michael Sikorski)是在Mandiant公司任職的計算機安全顧問。他對惡意代碼進行逆向分析,支持公司安全事件響應調查,並為公司的聯邦政府部門客戶提供專業研究與開發的安全解決方案。邁克創建了一套惡意代碼分析的系列課程,並對不同的受眾進行培訓,包括聯邦調查局和Black Hat黑客大會參會者。在加入Mandiant公司之前,他在麻省理工學院林肯實驗室工作,在那里他對被動網絡映射技術和滲透測試進行研究。邁克也是美國國家安全局為期三年的系統和網絡跨學科研究生項目的畢業生。在美國國家安全局期間,他為逆向工程方面的研究做出了貢獻,並獲得在網絡分析方面的多項發明獎項。
目錄
第0章 惡意代碼分析技術入門1 0.1惡意代碼分析目標1 0.2惡意代碼分析技術2 0.2.1靜態分析基礎技術2 0.2.2動態分析基礎技術2 0.2.3靜態分析高級技術2 0.2.4動態分析高級技術2 0.3惡意代碼類型3 0.4惡意代碼分析通用規則4
第1篇 靜態分析 第1章 靜態分析基礎技術6 1.1反病毒引擎掃描:實用的第一步6 1.2哈希值:惡意代碼的指紋7 1.3查找字符串7 1.4加殼與混淆惡意代碼9 1.4.1文件加殼10 1.4.2使用PEiD檢測加殼10 1.5PE文件格式11 1.6鏈接庫與函數12 1.6.1靜態鏈接、運行時鏈接與動態鏈接12 1.6.2使用DependencyWalker工具探索動態鏈接函數13 1.6.3導入函數14 1.6.4導出函數15 1.7靜態分析技術實踐15 1.7.1PotentialKeylogger.exe:一個未加殼的可執行文件15 1.7.2PackedProgram.exe:窮途末路18 1.8PE文件頭與分節18 1.8.1使用PEview來分析PE文件19 1.8.2使用ResourceHacker工具來查看資源節22 1.8.3使用其他的PE文件工具23 1.8.4PE文件頭概述23 1.9小結24 1.10實驗24 第2章 在虛擬機中分析惡意代碼27 2.1虛擬機的結構27 2.2創建惡意代碼分析機28 2.2.1配置VMware29 2.2.2斷開網絡30 2.2.3創建主機模式網絡30 2.2.4使用多個虛擬機30 2.3使用惡意代碼分析機31 2.3.1讓惡意代碼連接互聯網31 2.3.2連接和斷開外圍設備32 2.3.3拍攝快照32 2.3.4從虛擬機傳輸文件33 2.4使用VMware進行惡意代碼分析的風險34 2.5記錄/重放:重復計算機運行軌跡34 2.6小結35 第3章 動態分析基礎技術36 3.1沙箱:簡便但粗糙的方法36 3.1.1使用惡意代碼沙箱36 3.1.2沙箱的缺點37 3.2運行惡意代碼38 3.3進程監視器39 3.3.1進程監視器的顯示40 3.3.2進程監視器中的過濾41 3.4使用進程瀏覽器(ProcessExplorer)來查看進程43 3.4.1進程瀏覽器的顯示43 3.4.2使用驗證選項44 3.4.3比較字符串45 3.4.4使用依賴遍歷器(DependencyWalker)45 3.4.5分析惡意文檔46 3.5使用Regshot來比較注冊表快照46 3.6模擬網絡47 3.6.1使用ApateDNS47 3.6.2使用Netcat進行監視48 3.7使用Wireshark進行數據包監聽49 3.8使用INetSim51 3.9基礎動態分析工具實踐52 3.10小結55 3.11實驗56
第2篇 靜態分析高級技術篇 第4章 x86反匯編速成班60 4.1抽象層次60 4.2逆向工程62 4.3x86體系結構62 4.3.1內存63 4.3.2指令64 4.3.3操作碼和字節序64 4.3.4操作數65 4.3.5寄存器65 4.3.6簡單指令67 4.3.7棧70 4.3.8條件指令73 4.3.9分支指令73 4.3.10重復指令74 4.3.11C語言主函數和偏移76 4.3.12更多信息:Intelx86ArchitectureManual77 4.4小結78 第5章 IDAPro79 5.1加載一個可執行文件79 5.2IDAPro接口81 5.2.1反匯編窗口模式81 5.2.2對分析有用的窗口83 5.2.3返回到默認視圖83 5.2.4導航IDAPro83 5.2.5搜索85 5.3使用交叉引用86 5.3.1代碼交叉引用87 5.3.2數據交叉引用88 5.4分析函數88 5.5使用圖形選項89 5.6增強反匯編91 5.6.1重命名位置91 5.6.2注釋92 5.6.3格式化操作數92 5.6.4使用命名的常量93 5.6.5重新定義代碼和數據94 5.7用插件擴展IDA95 5.7.1使用IDC腳本96 5.7.2使用IDAPython97 5.7.3使用商業插件97 5.8小結98 5.9實驗98 第6章 識別匯編中的C代碼結構100 6.1全局與局部變量101 6.2反匯編算術操作102 6.3識別if語句104 6.3.1用IDAPro圖形化分析函數105 6.3.2識別嵌套的if語句106 6.4識別循環107 6.4.1找到for循環107 6.4.2找到while循環109 6.5理解函數調用約定110 6.5.1cdecl110 6.5.2stdcall111 6.5.3fastcall111 6.5.4壓棧與移動111 6.6分析switch語句112 6.6.1If樣式112 6.6.2跳轉表114 6.7反匯編數組118 6.8識別結構體119 6.9分析鏈表遍歷121 6.10小結123 6.11實驗123 第7章 分析惡意Windows程序126 7.1WindowsAPI126 7.1.1類型和匈牙利表達法126 7.1.2句柄127 7.1.3文件系統函數127 7.1.4特殊文件128 7.2Windows注冊表129 7.2.1注冊表根鍵130 7.2.2Regedit131 7.2.3自啟動程序131 7.2.4常用注冊表函數131 7.2.5練習分析注冊表操作代碼132 7.2.6使用.reg文件的注冊表腳本133 7.3網絡API133 7.3.1伯克利兼容套接字134 7.3.2網絡的服務器和客戶端134 7.3.3WinINetAPI135 7.4跟蹤惡意代碼的運行136 7.4.1DLL136 7.4.2進程137 7.4.3線程139 7.4.4使用互斥量的進程間協作142 7.4.5服務143 7.4.6組件對象模型145 7.4.7異常:當事情出錯時147 7.5內核與用戶模式148 7.6原生API149 7.7小結151 7.8實驗151
第3篇 動態分析高級技術篇 第8章 動態調試154 8.1源代碼級與匯編級的調試器154 8.2內核模式與用戶模式調試155 8.3使用調試器155 8.3.1單步調試155 8.3.2單步跳過(Stepping—Over)和單步跳入(Stepping—Into)156 8.3.3用斷點暫停執行157 8.4異常161 8.4.1首次和二次異常處理162 8.4.2常見異常162 8.5使用調試器修改可執行文件163 8.6修改可執行程序的實踐163 8.7小結164 第9章 OllyDbg165 9.1加載惡意代碼165 9.1.1打開一個可執行文件165 9.1.2附加調試器到一個運行程序166 9.2OllyDbg的接口167 9.3內存映射168 9.3.1基地址重定位169 9.4查看線程和堆棧170 9.5執行代碼171 9.6斷點172 9.6.1軟件斷點173 9.6.2條件斷點174 9.6.3硬件斷點175 9.6.4內存斷點175 9.7加載DLL176 9.8跟蹤177 9.8.1標准回溯跟蹤177 9.8.2堆棧調用跟蹤178 9.8.3運行跟蹤178 9.8.4跟蹤PoisonIvy178 9.9異常處理179 9.10修補180 9.11分析shellcode181 9.12協助功能182 9.13插件182 9.13.1OllyDump183 9.13.2調試器隱藏插件183 9.13.3命令行184 9.13.4書簽185 9.14腳本調試185 9.15小結186 9.16實驗187 第10章 使用WinDbg調試內核189 10.1驅動與內核代碼189 10.2安裝內核調試191 10.3使用WinDbg193 10.3.1從內存中讀取194 10.3.2使用算術操作符194 10.3.3設置斷點194 10.3.4列舉模塊195 10.4微軟符號表195 10.4.1搜索符號195 10.4.2查看結構信息196 10.4.3配置Windows符號表198 10.5內核調試實踐198 10.5.1用戶空間的代碼198 10.5.2內核模式的代碼200 10.5.3查找驅動對象203 10.6Rootkit204 10.6.1Rootkit分析實踐205 10.6.2中斷208 10.7加載驅動209 10.8WindowsVista、Windows7和x64版本的內核問題209 10.9小結210 10.10實驗210
第4篇 惡意代碼功能篇 第11章 惡意代碼行為214 11.1下載器和啟動器214 11.2后門(backdoor)214 11.2.1反向shell215 11.2.2遠程控制工具216 11.2.3僵屍網絡216 11.2.4遠程控制工具與僵屍網絡的比較217 11.3登錄憑證竊密器217 11.3.1GINA攔截217 11.3.2口令哈希轉儲218 11.3.3擊鍵記錄221 11.4存活機制223 11.4.1Windows注冊表223 11.4.2特洛伊木馬化(Trojanized)系統二進制文件225 11.4.3DLL加載順序劫持227 11.5提權228 11.5.1使用SeDebugPrivilege228 11.6隱藏它的蹤跡——用戶態的Rootkit229 11.6.1IATHook230 11.6.2InlineHook231 11.7小結232 11.8實驗232 第12章 隱蔽的惡意代碼啟動234 12.1啟動器(Launcher)234 12.2進程注入234 12.2.1DLL注入235 12.2.2直接注入237 12.3進程替換238 12.4鉤子(Hook)注入240 12.4.1本地和遠程鉤子(Hook)240 12.4.2使用鉤子的擊鍵記錄器241 12.4.3使用SetWindowsHookEx241 12.4.4目標線程241 12.5Detours242 12.6APC注入243 12.6.1用戶模式下APC注入244 12.6.2內核模式的APC注入245 12.7小結246 12.8實驗246 第13章 數據加密248 13.1分析加密算法的目的248 13.2簡單的加密算法248 13.2.1凱撒密碼249 13.2.2XOR249 13.2.3其他一些簡單的加密策略254 13.2.4Base64255 13.3常見的加密算法258 13.3.1識別字符串和導入259 13.3.2查找加密常量259 13.3.3查找高熵值內容261 13.4自定義加密262 13.4.1識別自定義加密263 13.4.2攻擊者使用自定義加密的優勢265 13.5解密265 13.5.1自解密265 13.5.2手動執行解密函數266 13.5.3使用通用的解密規范267 13.6小結270 13.7實驗271 第14章 惡意代碼的網絡特征273 14.1網絡應對措施273 14.1.1在原始環境中觀察惡意代碼273 14.1.2惡意行為的痕跡274 14.1.3OPSEC=操作安全性275 14.2安全地調查在線攻擊者275 14.2.1間接性策略275 14.2.2獲取IP地址和域名信息276 14.3基於內容的網絡應對措施278 14.3.1使用Snort進行入侵檢測278 14.3.2深入觀察279 14.4結合動態和靜態分析技術282 14.4.1過度分析的危險283 14.4.2在眾目睽睽下隱藏283 14.4.3理解周邊代碼286 14.4.4尋找網絡操作代碼287 14.4.5了解網絡內容的來源288 14.4.6硬編碼數據vs.臨時數據289 14.4.7確定和利用編碼步驟289 14.4.8創建特征291 14.4.9分析解析例程292 14.4.10針對多個元素294 14.5了解攻擊者的意圖295 14.6小結296 14.7實驗296
第5篇 逆向工程 第15章 對抗反匯編300 15.1何謂對抗反匯編技術300 15.2挫敗反匯編算法301 15.2.1線性反匯編302 15.2.2面向代碼流的反匯編303 15.3對抗反匯編技術306 15.3.1相同目標的跳轉指令306 15.3.2固定條件的跳轉指令307 15.3.3無效的反匯編指令308 15.3.4用IDAPro對指令進行NOP替換311 15.4混淆控制流圖312 15.4.1函數指針問題312 15.4.2在IDAPro中添加代碼的交叉引用313 15.4.3濫用返回指針313 15.4.4濫用結構化異常處理315 15.5挫敗棧幀分析317 15.6小結320 15.7實驗320 第16章 反調試技術322 16.1探測Windows調試器322 16.1.1使用WindowsAPI322 16.1.2手動檢測數據結構324 16.1.3系統痕跡檢測326 16.2識別調試器的行為327 16.2.1INT掃描327 16.2.2執行代碼校驗和檢查328 16.2.3時鍾檢測328 16.3干擾調試器的功能330 16.3.1使用TLS回調330 16.3.2使用異常332 16.3.3插入中斷333 16.4調試器漏洞334 16.4.1PE頭漏洞334 16.4.2OutputDebugString漏洞336 16.5小結336 16.6實驗336 第17章 反虛擬機技術338 17.1VMware痕跡338 17.1.1繞過VMware痕跡的探測340 17.1.2探測內存痕跡342 17.2查找漏洞指令342 17.2.1使用RedPill反虛擬機技術343 17.2.2使用NoPill技術344 17.2.3查詢I/O通信端口344 17.2.4使用str指令345 17.2.5反虛擬機的x86指令346 17.2.6在IDAPro中高亮顯示反虛擬機代碼347 17.2.7使用ScoopyNG347 17.3調整設置348 17.4虛擬機逃逸349 17.5小結349 17.6實驗349 第18章 加殼與脫殼352 18.1剖析加殼352 18.1.1脫殼存根353 18.1.2加載可執行文件353 18.1.3解析導入函數表353 18.1.4尾部跳轉354 18.1.5圖示脫殼過程354 18.2識別加殼程序355 18.2.1加殼程序的標識355 18.2.2熵計算356 18.3脫殼選項356 18.4自動脫殼356 18.5手動脫殼357 18.5.1使用導入重構器重構導入表358 18.5.2查找OEP359 18.5.3手動修復導入表363 18.6常見殼的技巧與竅門364 18.6.1UPX364 18.6.2PECompact365 18.6.3ASPack365 18.6.4Petite365 18.6.5WinUpack366 18.6.6Themida367 18.7不完全脫殼情況下的分析368 18.8加殼DLL368 18.9小結369 18.10實驗369
第6篇 高級專題 第19章 shellcode分析372 19.1加載shellcode進行分析372 19.2位置無關代碼373 19.3識別執行位置373 19.3.1使用call/pop指令374 19.3.2使用fnstenv指令376 19.4手動符號解析377 19.4.1在內存中找到kernel32.dll378 19.4.2解析PE文件導出數據380 19.4.3使用散列過的導出符號名382 19.5一個完整的HelloWorld例子383 19.6shellcode編碼385 19.7空指令雪橇387 19.8找到shellcode387 19.9小結388 19.10實驗389 第20章 C++代碼分析391 20.1面向對象的編程語言391 20.1.1this指針392 20.1.2重載與修飾394 20.1.3繼承(Inheritance)和函數重寫(Overriding)395 20.2虛函數和非虛函數396 20.2.1虛函數表的使用398 20.2.2識別虛函數表399 20.3創建和銷毀對象400 20.4小結401 20.5實驗401 第21章 64位惡意代碼403 21.1為什麼需要64位惡意代碼403 21.2x64架構上的差別404 21.2.1x64調用約定和棧使用上的差別406 21.2.264位異常處理408 21.3在Windows64位上的Windows32位408 21.4惡意代碼功能上的64位提示409 21.5小結410 21.6實驗410
附錄A 常見Windows函數列表412 附錄B 流行的惡意代碼分析工具列表424 附錄C 實驗作業參考解答435 附錄D 致青春,基礎軟件開發的中國故事691 附錄E Syser操作入門695
序
電話鈴聲急促響起,網絡管理員告訴你說公司網站被黑了,網站上的客戶敏感信息被盜了。於是你立馬開始調查分析,首先檢查了日志記錄,來確定事件涉及的主機。你用殺毒軟件對這些主機進行了掃描,檢查是否感染了惡意代碼。你的運氣還算不錯,殺毒軟件檢測到一個木馬程序,名為TROJ.snapAK。你刪除這個文件,並清理了現場,同時你還部署了一個入侵檢測系統,來確認沒有其他主機被感染。最后你修補了一個你認為是被攻擊者利用來入侵主機的安全漏洞,來確保這種攻擊事件不會再次發生。
詳細資料
- ISBN:9787121224683
- 規格:704頁 / 普通級 / 1-1
- 出版地:大陸
|
|
|
| 作者:雷薩.阿斯蘭 出版社:衛城出版 出版日期:2020-09-02 66折: $ 297 | | 作者:菊池洋匡 出版社:大是文化有限公司 出版日期:2022-08-31 66折: $ 238 | | 66折: $ 581 | | 作者:橫山信弘 出版社:大是文化有限公司 出版日期:2024-02-26 66折: $ 257 | |
|
| $ 162 | | $ 315 | | 作者:張忠謀 出版社:天下文化 出版日期:2024-11-29 $ 869 | | 作者:韓江 (한강) 出版社:漫遊者文化 出版日期:2023-05-08 $ 300 | |
|
| 作者:漫畫:zunta、原作:はらわたさいぞう 出版社:台灣角川股份有限公司 出版日期:2024-11-21 $ 111 | | 作者:洪愛珠、馬世芳、蔡明亮等著 出版社:新經典文化 出版日期:2024-11-13 $ 270 | | 作者:CEO.ft.- Ennice 出版社:長鴻出版社股份有限公司 出版日期:2024-11-22 $ 969 | | 作者:팀가지 出版社:長鴻出版社股份有限公司 出版日期:2024-11-22 $ 316 | |
|
|
|
|