Mariana Trench:針對Android和Java應(yīng)用程序的靜態(tài)代碼分析工具
關(guān)于Mariana Trench
Mariana Trench是一款功能強大的靜態(tài)代碼分析平臺,在該工具的幫助下,廣大研究人員可以輕松針對Android和Java應(yīng)用程序進行靜態(tài)代碼分析。
在這篇文章中,我們將帶領(lǐng)大家在自己的設(shè)備上安裝并配置好Mariana Trench,然后利用Mariana Trench在一個小型的App中尋找出一個遠程代碼執(zhí)行漏洞。
依賴組件
Mariana Trench的正常運行要求本地設(shè)備上安裝并配置好最新版本的Python環(huán)境。在macOS上,我們可以通過homebrew來獲取最新版本的Python:
$ brew install python3
在Debian系統(tǒng)上(Ubuntu、Mint、Debian),我們可以使用apt-get來完成Python的安裝:
$ sudo apt-get install python3 python3-pip python3-venv
注意:大家還需要在本地設(shè)備上安裝并配置好AndroidSDK,并將“$ANDROID_SDK”環(huán)境變量設(shè)置為指向SDK的安裝路徑。除此之外,我們還需要在一個虛擬環(huán)境中運行,這一步可以通過下列命令實現(xiàn):
$ python3 -m venv ~/.venvs/mariana-trench
$ source ~/.venvs/mariana-trench/bin/activate
(mariana-trench)$
如果你終端窗口的命令提示符前面顯示了虛擬環(huán)境的名稱,說明你的虛擬環(huán)境已經(jīng)激活成功。
工具安裝
在虛擬環(huán)境中安裝Mariana Trench非常簡單,只需要運行下列命令即可:
(mariana-trench)$ pip install mariana-trench
工具運行
我們將使用一個簡單的App來進行測試,運行下列命令即可獲取測試App:
(mariana-trench)$ git clone https://github.com/facebook/mariana-trench
(mariana-trench)$ cd mariana-trench/documentation/sample-app
接下來,我們就可以執(zhí)行靜態(tài)代碼分析了:
(mariana-trench)$ mariana-trench \
--system-jar-configuration-path=$ANDROID_SDK/platforms/android-30/android.jar \
--apk-path=sample-app-debug.apk \
--source-root-directory=app/src/main/java
# ...
INFO Analyzed 68886 models in 4.04s. Found 4 issues!
# ...
使用Mariana Trench對測試App執(zhí)行完分析后,會發(fā)現(xiàn)四個安全問題,分析的輸出結(jié)果將包含針對應(yīng)用程序中每一個方法的相關(guān)信息。
進一步處理
分析的輸出結(jié)果其實并非人類可讀的,因此我們還需要對這些信息進行進一步處理,這里將使用到SAPP:
(mariana-trench)$ sapp --tool=mariana-trench analyze .
(mariana-trench)$ sapp --database-name=sapp.db server --source-directory=app/src/main/java
# ...
2021-05-12 12:27:22,867 [INFO] * Running on http://localhost:5000/ (Press CTRL+C to quit)
輸出的最后一行表明SAPP開啟了一臺本地Web服務(wù)器,并允許我們直接查看分析結(jié)果。
工具運行結(jié)果
許可證協(xié)議
本項目的開發(fā)與發(fā)布遵循MIT開源許可證協(xié)議。
項目地址
Mariana Trench:【??GitHub傳送門??】