如何使用TrojanSourceFinder檢測Trojan Source算法漏洞
關于TrojanSourceFinder
TrojanSourceFinder是一款功能強大的漏洞檢測工具,該工具可以幫助廣大研究人員檢測源代碼中的Trojan Source算法漏洞。
Trojan Source漏洞將允許攻擊者隱藏惡意代碼,并將惡意代碼轉換為看似無害的代碼。一般來說,攻擊者會試圖通過將其惡意代碼作為注釋(視覺上的掩飾)來欺騙用戶。這是一種非常嚴重的安全威脅,因為這個漏洞將影響多種編程語言,一般帶有多個“不受信任”的第三方源碼的項目都需要注意這種漏洞的影響。
工具安裝
使用Go安裝
通過“go install”:
go install github.com/ariary/TrojanSourceFinder/cmd/tsfinder@latest
注意:需要確保“$PATH”環境變量中已設置了“$GOPATH”。
源碼安裝:
git clone https://github.com/ariary/TrojanSourceFinder
cd TrojanSourceFinder
make before.build
make build.tsfinder
如果命令“make build.tsfinder”失效的話,可以嘗試下列命令:
env GOOS=target-OS GOARCH=target-architecture
go build -o tsfinder cmd/main.go
使用curl安裝
安裝發布版本:
curl -lO -L https://github.com/ariary/TrojanSourceFinder/releases/latest/download/tsfinder && chmod +x tsfinder
檢測Trojan Source漏洞
該工具可以幫助廣大研究人員通過手動代碼檢測或使用CI/CD管道(Unicode雙向字符)檢測Trojan Source漏洞。
檢測文件或目錄中的Trojan Source漏洞:
tsfinder [path]
檢測文本文件
一般來說,源碼文件都是文本文件,提取數據出來并進行掃描將有助于排除假陽性:
tsfinder -t [path]
注意:添加“-v”參數可以查看掃描跳過的文件。
其他選項
掃描所有的文件并顯示相關代碼行:
tsfinder -v
grep one-liner:
grep -arE $'(\u2066|\u2067|\u2068|\u202A|\u202B|\u202D|\u202E|\u202C|\u2069|\u200E|\u200F|\u061C|\u2066|\u2067|\u2068)'
僅掃描人類可讀的文件:
tsfinder -t
grep one-liner:
grep -IrE $'(\u2066|\u2067|\u2068|\u202A|\u202B|\u202D|\u202E|\u202C|\u2069|\u200E|\u200F|\u061C|\u2066|\u2067|\u2068)'
工具使用演示
項目地址
TrojanSourceFinder:【??GitHub傳送門??】