Beyond “Just Read the Code”: Auditing Strategies & Tactics
三句話摘要
代碼審計不只是「讀代碼」——兩種主動解釋技術能讓你找到被動閱讀錯過的漏洞。 找漏洞的關鍵不是讀得更多,而是大聲說出來——主動解釋才能逼出被動閱讀永遠看不見的理解盲區。 被動閱讀有盲區:如果讀代碼就夠了,所有人早就找到所有漏洞,但現實並非如此——頂尖審計師做的事情不只是「讀」。
重點整理
重點- 1
被動閱讀有盲區:如果讀代碼就夠了,所有人早就找到所有漏洞,但現實並非如此——頂尖審計師做的事情不只是「讀」。
- 2
逐行注釋法強迫顯性化假設:把每行代碼翻譯成無術語的白話,會迫使審計師面對「我以為我懂但其實沒懂」的部分,尤其對複雜流程效果顯著。
- 3
橡皮鴨技術觸發元認知:大聲向實體橡皮鴨解釋代碼,有研究支持其效果優於書寫或腦中思考;當你說不清楚時,自然會暴露理解缺口,驅動你回頭重讀。
- 4
速度與深度並不矛盾:若原本需要讀 5–10 遍才能理解一段代碼,這兩種方法能讓你更快達到相同甚至更深的理解層次。
實用技巧與重點
乾貨- 公開資源庫名稱:「优秀的审计方法」(awesome audit methodology)
- 資源數量:50+ 個審計方法相關資源
- 技術一:逐行代碼 → 無術語白話英文注釋
- 技術二:橡皮鴨調試法(Rubber Duck Debugging)— 購買管道:Amazon
- 核心認知原理:元認知(Metacognition,思考自己的思考過程)
- 效果對比:大聲解釋 > 寫下來 > 腦中默想(有研究佐證)
- 適用場景:複雜流程、難以理解的合約函式、深度審計段落
結論
結論“找漏洞的關鍵不是讀得更多,而是大聲說出來——主動解釋才能逼出被動閱讀永遠看不見的理解盲區。”
完整解析
詳細在軟體安全社群中流傳著一個梗圖:遇到複雜代碼庫或漏洞,答案就是「去讀代碼」。講者認為這個說法雖然幽默,卻嚴重過度簡化了現實。如果被動閱讀真的足夠,那麼所有人都應該能找到所有漏洞,沿著相同的路徑理解任何複雜系統——但這顯然不是頂尖審計師的做法。因此講者開始訪問業界頂尖的審計師,試圖找出他們做了哪些「讀代碼之外」的事,才能找到別人遺漏的關鍵錯誤。
第一種技術是逐行注釋翻譯法:審計師逐行閱讀代碼,並用最簡單、零術語的白話語言為每一行寫下注釋,解釋「這行在做什麼」以及「為什麼這樣做」。這個動作看似繁瑣,實則強迫審計師從被動接收轉為主動建構理解。開發者在撰寫代碼時埋下的隱性假設,在這個過程中會被迫顯現——而這些假設往往正是漏洞的溫床。
第二種是講者最喜歡的橡皮鴨技術:在桌上放一隻橡皮鴨,找到一段想深入理解的合約或函式,讀完之後,費力地大聲向鴨子解釋這段代碼的運作邏輯。「大聲」這個細節至關重要——有研究證實,口頭解釋的認知效果顯著優於書寫或腦中默想。當你嘗試解釋時,你會發現自己說不清楚某些環節、不自覺地使用了說不明白的術語,而這些卡頓點正是理解缺口所在,促使你回頭重新審視代碼。
這兩種技術的共同底層原理是元認知——思考自己的思考過程。透過主動解釋,審計師被迫放慢速度,把「以為自己懂」與「真正能說清楚」之間的落差暴露出來。講者指出,如果原本需要讀 5 到 10 遍才能理解一段複雜代碼,搭配這些技術可以更快達到相同甚至更深的理解深度。講者也將這次演講背後的研究成果彙整成一個公開資源庫「优秀的审计方法」,收錄超過 50 個審計方法論相關資源。
關鍵時刻
Pipeline v2帶時間戳的重點,會在逐字稿層級分析上線後產生。目前請先透過原始影片觀看。
事實查核
Pipeline v2說法查證是下一次管線升級的一部分。KeyFrame 只會顯示它真正能驗證的內容。

