本章導言#
本章談的是協定實作所導致的安全漏洞根本成因,這與第 7 章談的「協定規格本身」所衍生的漏洞是兩回事。一個弱點不必能被直接利用才算漏洞——它可能只是削弱了協定的安全姿態,讓其他攻擊更容易得手,或成為通往更嚴重問題的踏腳石。
讀完本章,你會開始在協定中看見固定的模式,這些模式能幫助你在分析過程中辨識出安全漏洞。至於如何實際利用這些漏洞,留到第 10 章再談。
本章假設你會動用一切可用手段來研究協定:分析網路流量、逆向工程應用程式的二進位檔、審閱原始碼,以及手動測試用戶端與伺服器。有些漏洞用模糊測試(fuzzing)——變異網路協定資料以觸發問題的技術——比較容易找到,有些則靠讀程式碼比較快。
即使某段程式碼乍看之下沒問題也別放棄。漏洞經常出現在最令人意外的地方。