好物推薦:移動端安全相關的開發工具

語言: CN / TW / HK

移動安全是移動端開發的重要一環,無論是對開發或測試來說,移動端的漏洞分析/測試等工作是不可或缺的一部分。我們總結了十餘款移動安全相關工具,內含靜態、動態分析框架,同時也有一些逆向工程和滲透測試框架。

1、Amandroid 

Amandroid 是 Android 應用的靜態分析框架,該框架對元件之間進行流和上下文敏感的資料流分析。

目前,使用靜態分析解決 Android 應用程式安全的工作更多地關注特定問題,大多數工具也是為特定問題專門構建。而很大一部分 Android 安全問題都可以通過一個核心問題來解決 —— 捕獲應用程式的語義行為,例如物件指向和控制 / 資料流資訊。

Amandroid 正是直接處理元件間控制和資料流,因此它可用於解決不同應用程式的多個元件互動導致的安全問題。它可以通過對 Android 執行時和庫進行明確指定和合理假設,來保證應用程式中不存在指定的安全問題。

Amandroid 框架非常靈活,易於擴充套件其他型別的 Android 安全問題分析。

專案地址https://www.oschina.net/p/amandroid

2、APK Analyser

APKAnalyser 是一款 Android 靜態、虛擬分析工具,用來測試和驗證 Android 應用的開發工作。

ApkAnalyser 是個完整的工具鏈,可以修改二進位制應用,使用者可以改裝,安裝,執行,驗證 logcat 的結果。ApkAnalyser 同時支援資源分析,可以解碼 XML,查詢資源指向和檢測應用潛在問題。

ApkAnalyser 是個獨立的 J2SE 應用,遵循 Apache 開源協議,完全使用 Java 編寫。

注意:有時 ApkAnalyser 會消耗大量記憶體來分析 dalvik 位元組碼,很可能會耗盡記憶體,特別是在載入多個大的 odexed APK 檔案時。此外,ApkAnalyse 是索尼公司十年前開發的工具,因此部分內容可能有些過時,感興趣的朋友可以自行了解。

專案地址:https://www.oschina.net/p/apkanalyser

3、QARK

QARK 全稱 Quick Android Review Kit :快速 Android 審查工具包,這個工具可用來檢查 Android 應用的原始碼和打包的 APK 中常見的安全漏洞。

QARK 自動使用多個反編譯器,利用它們的組合輸出,在反編譯 APK 時產生出色的結果。QARK 不需要 root 測試裝置,因為該工具專注於尋找在安全環境下能被利用的漏洞。

與傳統工具相比,QARK 的主要優勢在於它可以生成 ADB 命令,甚至是功能齊全的 APK,從而將假設的漏洞轉化為有效的“POC”漏洞利用。此外,QARK 提供詳細的漏洞報告,使安全審查人員能夠找到對漏洞的精確且深入的解釋,並從中學習。

注意:QARK 會將 Android 應用程式反編譯回原始原始碼,這在某些情況下可能屬於違法行為,請謹慎使用

專案地址:https://www.oschina.net/p/qark 

4、APKLeaks

PKLeaks 是一個開源的 apk 檔案敏感資訊掃描工具,通過掃描 APK 檔案來獲取 URI、端點和 secret 資訊。

PKLeaks 使用起來非常方便,通過簡單的命令列即可完成 APK 檔案的資訊提取,而且支援通過配置 Json 檔案來調整敏感資訊的搜尋規則,輸出結果支援 txt 和 Json 兩種格式(預設生成 txt 格式)。

APKLeaks 依賴於逆向工程工具 jadx,如果環境中沒有,則會提示安裝。

注意:這個包適用於 Python2,不適用 Python3

專案地址:https://www.oschina.net/p/apkleaks

5、Infer

Infer 是 Facebook 開源的靜態程式分析工具,用 OCaml 語言編寫,用於在移動應用釋出之前對其程式碼進行分析,找出潛在的問題。

目前 Infer 支援檢測  Java、C++、Objective-C 和 C 四種語言的程式碼。對於 Android 和 Java ,Infer 主要檢查程式碼中的空指標異常、資源洩漏、註釋可讀性、缺少的鎖保護和併發競爭條件。對於 C、C++ 和 iOS/Objective-C ,Infer 則主要檢查空指標的取消引用、記憶體洩漏、編碼約定和不可用的 API 等問題。

目前 Infer 已在 Facebook 中全面部署,持續執行以驗證 Facebook 應用程式的 Android 和 iOS、Facebook Messenger、Instagram 等應用的程式碼修改。

fbinfer

專案地址:https://www.oschina.net/p/infer 

6、MobSF

移動安全框架 (MobSF) 是一個自動化、一體化的移動應用程式 (Android/iOS/Windows) 滲透測試、惡意軟體分析和安全評估框架,能夠執行靜態和動態分析(動態分析目前只支援 Android)。

MobSF 支援檢測移動應用程式二進位制檔案(APK、XAPK、IPA 和 APPX)以及壓縮原始碼。MobSF 提供 REST API ,可與 CI/CD 或 DevSecOps 管道無縫整合。其動態分析器則可幫助開發者執行執行時安全評估和互動式儀器測試。

MobSF 將資料保持在本地環境之中,所以不必擔心應用和相關的資料被髮送至雲端,造成資料洩露。

專案地址:https://www.oschina.net/p/mobsf 

7、Radare2 

Radare2(又名 R2) 是一個用 C 語言編寫的類 UNIX 逆向工程框架和命令列工具集。

R2 是功能強大的低階命令列工具(有一個被稱為 Cutter 的 GUI 版本)支援指令碼,一般被用作跨平臺的二進位制分析工具,用於分析、模擬、除錯、修改和反彙編任何二進位制檔案。它支援在本地或通過遠端 gdb 伺服器編輯本地硬碟驅動器上的檔案、檢視核心記憶體和除錯程式。

R2 支援 ARM、MIPS、X86 等多個平臺,同時支援多種作業系統: Windows (since XP)、 Linux、 GNU/Hurd、iOS、 Android 、OpenBSD、 Z/OS、FirefoxOS 等。

專案地址:https://www.oschina.net/p/radare2 

8、Adhrit

Adhrit 是一個開源的 Android APK 逆向和分析套件,可提取 APK 檔案中的重要資訊,並使用 Ghera 基準來識別 Android 應用程式中可能存在的漏洞。

Adhrit 深入分析 APK 檔案的靜態位元組碼,它依賴 Python3 和 JDK ,自帶 GUI 介面,啟動時會生成可以上傳 APK 並生成報告的 Web 介面,分析完畢會生成 Json 格式的分析報告。

注意:Adhrit 分析帶有兩個“.”的檔名時(如 my.app.apk)可能會出錯。這種情況請重新命名 apk 為一個 “.” (如 myapp.apk) 即可解決。

專案地址:https://www.oschina.net/p/adhrit

9、Bytecode Viewer

Bytecode Viewer (位元組碼檢視器) 是一個高階輕量級 Java/Android 逆向工程套件,可以分析 Java 8+ Jar 檔案 和 Android APK 檔案。

Bytecode Viewer 內建 6 個 Java 反編譯器:Krakatau、CFR、Procyon、FernFlower、JADX、JD-GUI;和 3 個內建位元組碼反彙編器,包括 2 個彙編器:Krakatau 和 Smali/BakSmali ;以及 Dex2Jar 和 Enjarify 這兩個 APK/DEX 轉換器,同時擁有高階搜尋、除錯等功能。

Bytecode Viewer 支援含中文在內的 30 多種語言,支援解析 Class、Jar、XAPK、APK、DEX、WAR、JSP、影象資源、文字資源等多種格式的檔案,使用起來非常簡單。

專案地址:https://www.oschina.net/p/bytecode-viewer

10、Apktool

Apktool 是一個用於逆向工程第三方、封閉二進位制 Android 應用程式的工具。它可以用來從 Android 的 apk 安裝程式中提取各種資源,將資源分解為幾乎原始的形式(比如resources.arscclasses.dex9.png.XMLs),並對這些資源進行修改和重新打包。

Apktool 可用於 也可將解碼的資源重建回二進位制 APK/JAR 檔案,由於它支援自動化的 APK 構建,因此也可以用來完成一些重複的 APK 構建任務。

Apktool 可用於應用的本地化、往應用中新增一些功能、使應用支援自定義平臺、或分析學習應用程式內部結構等用途,不適用於盜版和其他非法用途。

Apktool 依賴於:Java 8 (JRE 1.8)、 Android SDK、AAPT、smali 基礎知識 。

專案地址:https://www.oschina.net/p/apktool 

11、MARA

MARA 是一個移動應用程式逆向工程和分析框架。它將常用的移動應用逆向工程和分析工具組合在一起,用於測試移動應用,以抵禦 OWASP(開放式 WEB 應用程式安全專案)的移動安全威脅。

MARA 支援 APK 逆向工程,比如將 Dalvik 位元組碼反彙編為 smali 位元組碼或 Java 位元組碼,同時還支援 APK 反混淆、APK 執行路徑、IP 地址、URL、URI、電子郵件等基本資訊的提取、APK 漏洞掃描、惡意軟體分析、APK Manifest 分析等多種功能。

MARA 還提供基於 OWASP Top Mobile Top 10 和 OWASP Mobile Apps Checklist 的原始碼靜態分析,能夠對 apk、dex 或 jar 檔案執行單個分析。

專案地址:https://www.oschina.net/p/mara

 

12、JADX

JADX 是一個 Dex 到 Java 的反編譯器,用於從 Android Dex 和 Apk 檔案生成 Java 原始碼,有命令列和 GUI 兩個版本。 

JADX 的主要功能是從 APK、dex、aar、aab 和 zip 檔案將 Dalvik 位元組碼反編譯為 java 類,自帶去混淆器。JADX-GUI 版本還支援以高亮語法檢視反編譯的程式碼、提供用法指引、全文檢索和 smali 偵錯程式等功能。

注意:在大多數情況下,jadx 無法對所有 100% 的程式碼進行反編譯,因此可能會出現錯誤。出錯時請檢視故障排除指南,以獲取解決方法。

專案地址:https://www.oschina.net/p/jadx

13、Androl4b

AndroL4b 是一個基於 ubuntu-mate 的安卓安全虛擬機器,可用於逆向工程和惡意軟體分析。

AndroL4b 包括來自不同資訊保安極客和研究人員的最新框架、教程和漏洞實驗室的集合,上文提到的 Radare2 、APKTools、ByteCodeViewer、Qark 、MARA 等工具,AndroL4b 均已內建。同時還有 Android Security Sandbox 、InsecureBankv2 等漏洞實驗室,可提供最新 Android 漏洞的詳細資訊。

專案地址:https://www.oschina.net/p/androl4b 

14、BlackBox Engine

BlackBox(黑盒)是一款虛擬引擎,可以在 Android 上克隆和執行虛擬應用,擁有免安裝執行能力。黑盒可以控制被執行的虛擬應用,做任何想做的事情。

專案地址:https://www.oschina.net/p/blackbox-engine 

 

本文包含的開發工具已收錄至 Awesome 軟體系列之移動安全工具: https://www.oschina.net/project/awesome?columnId=14 。

小編對移動安全涉獵甚少,如本文對工具的描述有誤,歡迎大夥在評論區批評指正。此外,若讀者朋友還了解其他優質移動安全工具,歡迎在評論區推薦,小編將第一時間收錄。