本章導言#

用 C/C++ 這類記憶體不安全語言寫成的協定解析器,只要一個疏忽就可能埋下嚴重漏洞,而協定的複雜度又讓這些漏洞極難靠人工分析找出。本章介紹如何藉由操縱進出應用程式的網路流量來自動化地找出安全漏洞:先用模糊測試(fuzz testing / fuzzing)大量觸發當機,再用漏洞分級(vulnerability triaging)與除錯器追出當機的根本成因,接著討論如何利用常見的記憶體毀損漏洞、如何撰寫 shellcode,最後說明現代平台為了阻止這些攻擊而加入的緩解機制,以及繞過它們的手法。

本章涵蓋實際的攻擊與利用技術。書中所有範例都應該只在你獲得明確授權、可控的測試環境中操作。原書也提醒:連最簡單的模糊測試都絕不該對正式的工業控制系統(例如管理核反應爐的系統)施放。