algorand-vulnerability-scanner
作者 trailofbitsalgorand-vulnerability-scanner 是一個針對 Algorand TEAL 與 PyTeal 的安全稽核技能。它可協助找出 11 類常見問題,包括 rekeying 攻擊、fee 驗證缺口、欄位檢查與存取控制缺陷。建議在正式人工稽核前,先用 algorand-vulnerability-scanner 技能做一輪實用的初步檢查。
這個技能的評分為 84/100,表示它對需要 Algorand 專屬安全掃描器的目錄使用者來說,是相當值得收錄的選項。這個 repository 提供了足夠的結構、觸發條件與漏洞涵蓋範圍,讓 agent 在應用時比起通用提示詞更少猜測;不過若能補上更明確的執行方式與工具整合細節,採用體驗還會更好。
- 針對 TEAL/PyTeal 稽核、稽核前檢查,以及驗證 Algorand 合約修補結果,提供清楚且具體的觸發範圍。
- 實務內容相當完整:包含 11 種漏洞模式、偵測模式,以及隨附清單中的緩解建議。
- 適合 agent 使用的 repository 深度不錯,包含多個標題、程式碼區塊,並提到 Tealer 與 repo/file 標記。
- 未提供安裝指令或可執行腳本,因此使用者可能需要自行推敲如何把流程落地。
- 佐證內容偏向文件而非自動化,對於追求即裝即用與可重複執行的 agent 而言,可能會受限。
algorand-vulnerability-scanner 技能概覽
algorand-vulnerability-scanner 是一個專注於 Algorand 智慧合約安全稽核的技能,適用於 TEAL 和 PyTeal。它能幫你抓出一般程式碼審查常常漏掉的平台特定問題,特別是在交易驗證、rekeying、手續費,以及有狀態應用邏輯這幾個面向。當你需要在手動稽核前先做一輪實用的安全初篩,或是想拿已知的 Algorand 攻擊模式來驗證修補是否到位時,algorand-vulnerability-scanner 技能就很適合。
這個技能適合誰
最適合的使用者:審計人員、智慧合約工程師,以及正在審查 Algorand 專案的安全團隊。當程式碼庫包含 .teal 檔案、PyTeal imports、Beaker-based 應用,或是大量依賴 Txn、Gtxn、Global、InnerTxnBuilder 的交易邏輯時,這個技能特別有用。
這個技能擅長什麼
這個技能是圍繞 11 種常見的 Algorand 漏洞模式設計,因此它在平台特定偵測上比廣泛的架構審查更強。也正因如此,它很適合找出像是缺少 RekeyTo 檢查、不安全的交易假設、以及薄弱的欄位驗證這類問題。
什麼情況下不要只靠它
它不是完整稽核,也不能取代協定知識、不變量推理,或第二位人工審查。如果你的合約依賴非典型交易群組、自訂授權邏輯,或複雜的跨合約流程,請把輸出當成安全檢查清單,而不是最後結論。
如何使用 algorand-vulnerability-scanner 技能
安裝並載入技能
在安裝 algorand-vulnerability-scanner 的步驟中,先從 Trail of Bits skills repo 加入它,接著把 skill files 開啟到上下文裡:
npx skills add trailofbits/skills --skill algorand-vulnerability-scanner
安裝完成後,先讀技能說明,再搭配支援的 pattern reference,理解 scanner 實際在看什麼。
先從正確的檔案開始
先讀這些:
SKILL.md:範圍、工作流程與平台偵測resources/VULNERABILITY_PATTERNS.md:11 項模式檢查清單,以及具體的脆弱/安全範例
這兩者要一起看,因為 SKILL.md 會告訴你什麼情況該用這個技能,而 resources/VULNERABILITY_PATTERNS.md 則會展示在 algorand-vulnerability-scanner 使用流程中,你應該期待看到哪些具體檢查。
給這個技能一個偏安全稽核的提示詞
想拿到最好結果,提示詞要清楚寫出合約類型、程式碼範圍,以及審查目標。好的輸入會明確指出你是在審單一檔案、整個應用,還是某個修補。
範例提示詞:
Review this PyTeal approval program for Algorand security issues. Focus on rekeying, fee validation, transaction group assumptions, and access control. Flag concrete lines or patterns that match the algorand-vulnerability-scanner checklist and explain the exploit path.
如果你已經知道疑慮點,也可以直接說:
Audit this TEAL smart signature for unchecked fee exposure and missing sender validation. Prioritize issues that could drain funds or allow unauthorized execution.
會產生更好結果的工作流程
- 先判斷目標是 TEAL、PyTeal、smart signature,還是有狀態應用。
- 確認程式碼裡有這個技能預期的 Algorand 標記,例如
Txn、Gtxn、Global或InnerTxnBuilder。 - 要求以漏洞模式為主的 checklist 式審查,而不是泛泛的程式碼評論。
- 如果已經出現發現結果,就用實際的 function 或 transaction group 重新提示,鎖定那條風險路徑。
algorand-vulnerability-scanner 技能 FAQ
這能取代完整的安全稽核嗎?
不能。algorand-vulnerability-scanner 技能最適合當作高訊號的稽核前篩選與分流工具。它能快速浮現已知的 Algorand bug 類型,但不能證明合約一定安全。
新手也適合用嗎?
適合,只要你的目標是理解在 Algorand 程式碼裡該檢查什麼。這份 pattern list 可以教你在這個生態裡,什麼情況通常才算「安全」,尤其是在 RekeyTo、手續費,以及 grouped transactions 這些地方。
它和一般提示詞有什麼不同?
一般提示詞可能只會給你泛用的程式碼審查建議。這個技能則是以 Algorand 專屬的漏洞模式為核心,因此更能指出對安全稽核真正重要的交易欄位與合約行為。
什麼情況下這個技能不適合用?
如果你不是在審查 Algorand 合約、程式碼庫裡沒有 TEAL/PyTeal 邏輯,或者你只需要知道某個合約在做什麼,這個技能就不適合。它也不太適合非安全性任務,例如功能設計或 UX 審查。
如何改善 algorand-vulnerability-scanner 技能的效果
先把合約脈絡說清楚
提升品質最大的一步,是先說明你正在審查哪一種合約,以及它採用什麼執行模型。例如,標明它是 smart signature、有狀態應用,還是 grouped transaction workflow。這樣能幫 algorand-vulnerability-scanner 技能把重點放在正確的檢查項目上。
直接說出具體的安全問題
如果你已經知道風險區域,就不要只問「幫我 review」。更具體的問法通常會得到更精準的發現:
- “Check for unprotected rekeying in all payment paths.”
- “Look for missing fee caps in this smart signature.”
- “Verify that grouped calls cannot bypass authorization through
Gtxnordering.”
提供相關的程式碼片段
如果可以,請提供 approval program、可疑的 function,或 transaction-handling branch,而不是整個 repo。algorand-vulnerability-scanner 技能在能直接檢視決定「誰可以呼叫什麼、使用哪些欄位、以及順序如何」的精確邏輯時,效果最好。
針對第一輪結果再迭代
如果輸出太廣,請求第二輪並縮小到單一漏洞類型、單一進入點,或單一 transaction group。如果輸出太窄,就再要求 pattern list 裡相鄰的檢查項,特別是 rekeying、transaction fields 和 state validation 這幾類。
