攻擊網路協定 封面

攻擊網路協定

👨‍💼: James Forshaw
📅: December 8, 2017
Buy Now
📖:
以攻擊者視角剖析自訂網路協定:從被動與主動擷取流量、逆向工程用戶端,一路到辨識漏洞成因、模糊測試與實際利用,走完一輪完整的協定安全分析流程。
📘 深度概覽

作者背景#

福肖(James Forshaw)是 Google Project Zero 的安全研究員,加入前任職於英國的 Context Information Security,長期替客戶分析真實世界中「幾乎全是客製規格」的網路協定——本書大部分內容正是建立在那段顧問工作的經驗上。

他在資安圈的能見度來自兩件事。其一,他向微軟安全回應中心(MSRC)回報的漏洞不只是單點 bug,而是 .NET framework 的架構層級問題;這類問題難以用一個修補程式解決,價值也高得多。其二,2013 年他在 Internet Explorer 11 beta 中找出四個獨立的沙箱逃逸(sandbox escape),全落在內部團隊與外部滲透測試都漏掉的區域;隨後他又以作業系統架構層級的缺陷找出一種繞過所有平台防禦的全新手法,拿下微軟史上第一筆十萬美元「緩解機制繞過獎金」(Mitigation Bypass Bounty)。時任 MSRC 的莫索里斯(Katie Moussouris)在本書推薦序中的評語是:能在一種先進技術中找出漏洞的研究者已經很少,能穩定跨多種技術都找到的更少。他也是協定分析工具 Canape 及本書所用函式庫 Canape Core 的作者。

完整摘要#

本書處理的是一個被市場忽略的縫隙:談流量擷取的書很多,但幾乎都服務於網路診斷與效能排查,鮮少有人從安全角度處理那些沒有 RFC、沒有文件、只存在於某台 IoT 裝置韌體裡的自訂協定(custom protocol)。而這些協定恰恰是最脆弱的——它們必須暴露在公開網路上,卻不像產品的其他部分那樣受到同等檢視。

作者提出的核心框架,是一套專為協定分析設計的三層心智模型。它刻意簡化 TCP/IP 的正式分層,目的是過濾掉與分析無關的技術細節,讓注意力集中在協定真正客製的那一小部分。這個模型是後續每一章反覆使用的思考骨架。

論證路線依「取得 → 讀懂 → 實作 → 攻擊」四段推進。取得:區分被動擷取(passive capture,如 Wireshark,不干擾應用程式但難以修改)與主動擷取(active capture,以中間人身分改寫流量,威力大但需重導流量);作者的立場明確——除非只是監看,否則主動方式通常更值得,因為後續技術多半建立在「能改流量」的前提上。棘手環境則交給進階手法:把作業系統設成路由器、以 NAT 解決回程流量、用 DHCP 詐騙與 ARP 毒化誘導目標。讀懂:先建立協定結構的通用詞彙(數值的端序、長度欄位歸誰決定、TLV 型式),重點在「辨識」而非記憶;再用一支聊天程式當標本,漸進式地猜測、驗證每個位元組的意義。當協定採自訂加密或混淆時,就轉入二進位逆向工程——靜態反組譯與動態除錯並行,目標是在執行檔中定位負責網路通訊的程式碼。實作:以「盡可能重用既有程式碼」為原則,從重放擷取流量開始,把分析用的代理改造成用戶端與伺服器,必要時直接呼叫目標程式內既有的 .NET/Java/原生函式庫程式碼,並處理 TLS 這個最常見的障礙。攻擊:先區分兩類漏洞來源——協定規格本身的密碼學缺陷(機密性、完整性、伺服器與用戶端身分驗證這四項要求上的失守),與協定實作的程式瑕疵;再以模糊測試(fuzzing)大量觸發當機、以除錯器做漏洞分級(triaging)追出根本成因,最後涵蓋記憶體毀損的利用、shellcode 撰寫,以及用返回導向程式設計(ROP)繞過現代平台的緩解機制。

全書以兩套公開程式為實作骨幹:函式庫 Canape Core(你的工具)與範例聊天程式 SuperFunkyChat(你的標靶),附錄則整理作者實際慣用的工具箱,依「卡在流程哪一段」分類索引。

本書的貢獻與定位#

本書的獨特位置在於它是少數把「協定分析」當作一條完整工作流來寫的書。與《The Practice of Network Security Monitoring》這類防守取向著作相比,本書明確站在攻擊者一側;與《Hacking: The Art of Exploitation》相比,後者的縱深在單機記憶體與二進位層,本書則把同樣的利用技術接在「網路協定」這個入口之前,補上了從線路到崩潰之間那段最常被跳過的路——如何取得流量、如何在沒有文件的情況下推導出格式、如何用最少的自寫程式碼把協定實作出來以便測試。

它挑戰的假設是「協定分析等於打開 Wireshark 看封包」。作者的立場是:只會被動觀察,就永遠停在猜測階段;真正的分析需要能主動改寫、能重放、能實作。主要受眾是想跨入協定安全卻不知從何下手的滲透測試者與安全研究者,以及需要評估自家 IoT/嵌入式裝置通訊安全的工程師。前四分之一提供了網路與逆向工程的補課,因此不要求讀者已是資安專家,但需要一定的程式基礎。書中技術會實際攔截與改動網路流量,僅適用於自有或已獲明確授權的環境。