現代人手都是智慧型手機,APP 市場佔據一片江山,對開發商來說,面臨的各種資安考驗越來越多,行政院亦推動工業局與資策會成立「行動應用App基本資安規範」,期望讓台灣 App 開發的安全性更加提高。
APP 相關檢測工具越來越多選擇,黑箱、白箱測試各有好產品,自動化測試更是節省開發團隊時間的重要利器。無奈的是,這類 App 的自動化檢測工具價格不低,許多團隊礙於資金問題,心有餘而力不足。
方案介紹
沒關係,我們可以從開源專案中找到可以使用的替代方案,即便比不上需要花錢購買的商業套件,但也能夠達到一定的效果,效益絕對比沒有使用前大大提升。
MobSF 就是我推薦的開源解決方案,介面美觀、操作容易。
MobSF (Mobile Security Framework) 是一款基於 Python 開發的 App 自動化測試框架,可以在 Windows、macOS、Linux 跨平台運作使用。
MobSF 提供許多功能,列出幾個重點如下:
- 全 Web 化介面操作
- 支援 APK (Android)、IPA (iOS) App 靜態分析
- 支援 APK (Android) 動態分析
- 檢測程式簽章
- 分析權限索取
- 列舉 API 呼叫
- 檢測潛在問題
- 惡意行為分析
- 網路連線行為記錄
- 找尋使用加密演算法
- 提供修補建議
安裝方式
MobSF 功能雖然眾多,但安裝卻出奇的簡單,官方提供了兩種方式,一種是直接下載後執行安裝 Script,另一種是以 Docker Pull 後即能 Run 起來使用,可以依據喜歡的方式進行。
#### Install
```bash git clone https://github.com/MobSF/Mobile-Security-Framework-MobSF.git cd Mobile-Security-Framework-MobSF ./setup.sh # For Linux and macOS ./run.sh # For Linux and macOS setup.bat # For Windows run.bat # For Windows ```
#### Docker
```bash docker pull opensecurity/mobile-security-framework-mobsf docker run -it -p 8000:8000 opensecurity/mobile-security-framework-mobsf:latest ```
成功執行以後,即可使用瀏覽器開始開啟 http://localhost:8000/ 進行 MobSF 體驗之旅。
MobSF 成功啟動畫面
日後若要更新版本,操作也相當容易,只需執行以下指令即可。
#### Upgrade
```bash git pull python manage.py makemigrations python manage.py makemigrations StaticAnalyzer python manage.py migrate ```
主要功能
要開始檢測一支 App 應用程式相當簡單,開啟 MobSF 的網頁介面後,再把您的 apk 或 ipa 檔案直接拖曳進去,便立即開始進靜態分析。
載入 App 檔案
經過一段時間的分析以後,MobSF 畫面就會自動切到檢視頁面,這個介面清楚簡單,數據直接呈現在資訊看板上。
分析完成資訊看板
左側的選單欄有多種類別可進入查看,對於不同情況的問題,MobSF 會自動在報告上寫出問題的原因、危險等級,以及所在的檔案位置,點選檔案後可以直接進入反編譯後的原始碼。
在 Code Analysis 功能裡,它會自動的幫我們找出這支 App 有著什麼樣的問題,並以多種等級區分問題嚴重性,這對於想快速釐清自己開發的 App 有那些潛在問題者,有非常大的幫助,尤其是為客戶專案開發又需要送檢測的情境。
Code Analysis
日後若想要再回頭查看資料時,不用浪費時間重新測試,點選畫面上方的 [Recent Scans] 即可進入曾經做過的檢測,再點進去即可查看當時的檢測報告。
Recent Scans
動態分析
如果檢測的對象是 Android 系統 App,還可以進一步點選功能表下方的 [Start Dynamic Analysis] 使用動態分析功能。
動態分析
進入介面後,MobSF 會自動將 VirtualBox 上安裝好的 Android VM 帶出來,點選 [Create Environment] 後即可將 Apk 帶入 VM 裡完成準備程序。
啟動成功後,可以分別使用 [Start Exported Activity Tester] 、 [Start Activity Tester] 進行各種測試,按下 [Take a Screenshot] 則可以查看目前運作的情況。
當動態分析的項目全部測試完成後,點選 [Finish] 即可進入動態分析的報告頁面。
動態分析報告
動態分析報告裡有非常詳盡的資料,例如各 API 呼叫的歷程、檔案存取、簡訊使用、電話撥打行為、網路流量、... 等,可以協助軟體測試人員省下大量的時間,專注於更重要的任務。
當專案測試完畢,靜態與動態分析都可以將報告匯出成 pdf 檔,方便遞交使用。
結論
在智慧型手機人手一機的世代,軟體開發商勢必多少要面對 App 檢測的相關需求,一套功能這麼強大、方便又自動化的測試工具,而且還是完全開源提供的優質軟體,MobSF 真的是 App 軟體開發團隊的超級好朋友啊!
參考資料
- Open Hub, the open source network
https://www.openhub.net/
- Black Duck 2018 Open Source Security and Risk Analysis Report
https://www.blackducksoftware.com/open-source-security-risk-analysis-2018
- SourceClear The Busy Managers' Guide to Open-Source Security
https://www.sourceclear.com/resources/the-busy-managers-guide-to-open-source-security/chapter1/