如何使用TrojanSourceFinder檢測Trojan Source演算法漏洞

語言: CN / TW / HK

關於TrojanSourceFinder

TrojanSourceFinder是一款功能強大的漏洞檢測工具,該工具可以幫助廣大研究人員檢測原始碼中的Trojan Source演算法漏洞。

Trojan Source漏洞將允許攻擊者隱藏惡意程式碼,並將惡意程式碼轉換為看似無害的程式碼。一般來說,攻擊者會試圖通過將其惡意程式碼作為註釋(視覺上的掩飾)來欺騙使用者。這是一種非常嚴重的安全威脅,因為這個漏洞將影響多種程式語言,一般帶有多個“不受信任”的第三方原始碼的專案都需要注意這種漏洞的影響。

工具安裝

使用Go安裝

通過“go install”:

go install github.com/ariary/TrojanSourceFinder/cmd/[email protected]

注意:需要確保“$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傳送門

參考資料

https://www.reddit.com/r/cybersecurity/comments/qlh5j9/my_take_on_trojan_source/