如何使用TrojanSourceFinder檢測(cè)Trojan Source算法漏洞
關(guān)于TrojanSourceFinder
TrojanSourceFinder是一款功能強(qiáng)大的漏洞檢測(cè)工具,該工具可以幫助廣大研究人員檢測(cè)源代碼中的Trojan Source算法漏洞。
Trojan Source漏洞將允許攻擊者隱藏惡意代碼,并將惡意代碼轉(zhuǎn)換為看似無(wú)害的代碼。一般來(lái)說(shuō),攻擊者會(huì)試圖通過(guò)將其惡意代碼作為注釋(視覺(jué)上的掩飾)來(lái)欺騙用戶。這是一種非常嚴(yán)重的安全威脅,因?yàn)檫@個(gè)漏洞將影響多種編程語(yǔ)言,一般帶有多個(gè)“不受信任”的第三方源碼的項(xiàng)目都需要注意這種漏洞的影響。
工具安裝
使用Go安裝
通過(guò)“go install”:
go install github.com/ariary/TrojanSourceFinder/cmd/tsfinder@latest
注意:需要確?!?PATH”環(huán)境變量中已設(shè)置了“$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安裝
安裝發(fā)布版本:
curl -lO -L https://github.com/ariary/TrojanSourceFinder/releases/latest/download/tsfinder && chmod +x tsfinder
檢測(cè)Trojan Source漏洞
該工具可以幫助廣大研究人員通過(guò)手動(dòng)代碼檢測(cè)或使用CI/CD管道(Unicode雙向字符)檢測(cè)Trojan Source漏洞。
檢測(cè)文件或目錄中的Trojan Source漏洞:
tsfinder [path]
檢測(cè)文本文件
一般來(lái)說(shuō),源碼文件都是文本文件,提取數(shù)據(jù)出來(lái)并進(jìn)行掃描將有助于排除假陽(yáng)性:
tsfinder -t [path]
注意:添加“-v”參數(shù)可以查看掃描跳過(guò)的文件。
其他選項(xiàng)
掃描所有的文件并顯示相關(guān)代碼行:
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)'
工具使用演示
項(xiàng)目地址
TrojanSourceFinder:【??GitHub傳送門(mén)??】