Android 滲透測試學習手冊 第九章 編寫滲透測試報告

第九章 編寫滲透測試報告

作者:Aditya Gupta

譯者:飛龍

協議:CC BY-NC-SA 4.0

在本章中,我們將學習滲透測試的最終和最重要的方面,撰寫報告。 這是一個簡短的章節,指導你在報告中寫下你的方法和發現。 作爲滲透測試者,如果能夠更好地解釋和記錄你的發現,滲透測試報告會更好。 對於大多數滲透測試者來說,這是滲透測試中最沒意思的部分,但它也是最重要的滲透測試步驟之一,因爲它作爲“至關重要的材料”,使其他技術和管理人員容易理解 。

滲透測試報告基礎

滲透測試報告是滲透測試過程中所有發現的摘要文檔,包括但不限於所使用的方法,工作範圍,假設,漏洞的嚴重程度等。 滲透測試報告僅用作滲透測試的完整文檔,可用於消除已發現的漏洞並進一步參考。

編寫滲透測試報告

爲了理解如何編寫滲透測試報告,最好對滲透測試報告中的一些重要部分有一個清晰的瞭解。

一些最重要的組成部分包括:

  • 執行摘要
  • 漏洞摘要
  • 工作範圍
  • 使用的工具
  • 遵循的測試方法
  • 建議
  • 結論
  • 附錄

除此之外,還應該有關於滲透測試,進行滲透測試的組織和客戶,以及“非披露協議”的足夠詳細信息。 讓我們一個一個地去看上面的每個部分,來快速查看它。

執行摘要

執行摘要是滲透測試的整個結果的快速演練。 執行摘要不需要太多技術,它只是一個總結,用於在儘可能短的時間內瀏覽滲透測試。 執行摘要是管理層和高管首先看到的。

它的一個例子如下:

XYZ 應用程序的滲透測試具有大量的開放輸入驗證缺陷,這可能導致攻擊者訪問敏感數據。

你還應該解釋此漏洞對於該組織業務的嚴重程度。

漏洞

如標題所示,這應包括應用程序中發現的所有漏洞的摘要以及相關詳細信息。 如果你在應用程序中找到的漏洞分配了 CVE 號碼,你可以包括它。 你還應包括導致該漏洞的應用程序的技術詳細信息。 另一種展示漏洞的好方法是對漏洞按照類別進行分類:低,中和高,然後在餅圖或任何其他圖形表示上展示它們。

工作範圍

工作範圍僅僅意味着滲透測試涵蓋並評估了哪些應用程序和服務。 它可以簡單地寫成一行,如下:

該工作的範圍僅限於 XYZ Android 和 iOS 應用程序,不包括任何服務端組件。

使用的工具

這是一個可選類別,通常可以包含在另一個類別中,也就是討論漏洞發現和技術細節的地方。 在本節中,我們可以簡單提到使用的不同工具及其特定版本。

遵循的測試方法

這個類別是最重要的類別之一,應該以詳細方式編寫。 這裏,滲透測試者需要指定不同的技術,和他在滲透測試階段所遵循的步驟。 它可以是簡單的應用程序逆向,流量分析,使用不同的工具的庫和二進制文件分析,等等。

此類別應指定其他人需要遵循的完整過程,以便完全理解和重現這些漏洞。

建議

此類別應指定要執行的不同任務,以便組織保護程序並修復漏洞。 這可能包括一些東西,類似建議以適當權限保存文件,加密發送網絡流量以及正確使用 SSL 等。 它還應包括在考慮到組織的情況下,執行這些任務的正確方法。

結論

這個部分應該簡單地總結滲透測試的總體結果,並且我們可以使用漏洞類型的概述,簡單地說明應用程序是不安全的。 記住,我們不應該涉及所發現的不同漏洞的詳細信息,因爲我們已經在前面的章節中討論過了。

附錄

滲透測試報告的最後一部分應該是附錄,或者一個快速參考,讀者可以使用它快速瀏覽滲透測試的特定主題。

總結

在本章中,我們對滲透測試報告的不同部分進行了快速演練,滲透測試者需要了解這些部分才能編寫報告。 本章的目的是在滲透測試的最後階段,作爲一個編寫滲透測試報告的簡潔指南。 此外,你可以在下一頁找到滲透測試報告的示例。

對於滲透測試人員,和想入門 Android 安全的人來說,我希望這本書會成爲一個偉大的工具。 本書中提到的工具和技術將幫助你入門 Android 安全。 祝你好運!

下面是滲透測試報告的示例:

Attify 漏洞應用安全審計報告

應用程序版本:1.0

日期:2014年1月

作者:Aditya Gupta

摘要:2014年1月,Attify 實驗室對 Android 平臺的移動應用程序“Attify 漏洞應用”進行了安全評估。 本報告包含審計過程中的所有發現。 它還包含首先發現這些漏洞的過程,以及修復這些問題的方法。

目錄

1. 引言

1.1 執行摘要

Attify Labs 受委託對 XYZ 公司的 Android 應用程序“Attify 漏洞應用”執行滲透測試。 此滲透測試和審計的目的是確定 Android 應用程序以及與其通信的 Web 服務的安全漏洞。

我們在測試期間十分小心,以確保在執行審計時不會對後端 Web 服務器造成損害。 該評估在 Aditya Gupta 的領導下進行,團隊由三名內部滲透測試人員組成。

在審計期間,在 XYZ Android 應用程序和後端 Web 服務中發現了一些安全漏洞。 總的來說,我們發現系統是不安全的,並且具有來自攻擊者的高威脅風險。

此次審計的結果將有助於 XYZ 公司使他們的 Android 應用程序和 Web 服務免受攻擊者造成的安全威脅,這可能會損害聲譽和收入。

2.2 工作範圍

這裏執行的滲透測試集中於 XYZ 公司的 Android 應用程序,名爲“Attify 漏洞應用”。 滲透測試還包括 所有 Web 後端服務,Android 應用程序與之進行通信。

1.3 漏洞摘要

Android應用程序“Attify 漏洞應用”被發現存在漏洞,包括應用程序本身,以及由於在應用程序中使用第三方庫的很多漏洞。我們已成功利用該庫,使我們可以訪問存儲在設備上的整個應用程序的數據。

此外,在應用程序中找到的webview組件使應用程序容易受到 JavaScript 響應的操縱,使我們可以訪問應用程序中的整個 JavaScript 界面​​。這最終允許我們利用不安全網絡上的應用程序,導致應用程序行爲控制,還允許我們在用戶沒有知曉的情況下安裝更多應用程序,進行意外的撥號和發送短信等。

在應用程序中發現的其他漏洞包括不安全的文件存儲,一旦設備已經 root,這使我們可以訪問存儲在應用程序中的敏感用戶憑據。

此外,我們可以注意到,應用通信的 web 服務沒有用於用戶認證的適當安全措施,並且可以使用 SQL 認證繞過攻擊來訪問存儲在 web 服務器上的敏感信息。

2. 審計與方法論

2.1 使用的工具

以下是用於整個應用程序審計和滲透測試流程的一些工具:

  • 測試平臺:Ubuntu Linux Desktop v12.04
  • 設備:運行 Android v4.4.2 的 Nexus 4
  • Android SDK
  • APKTool 1.5.2:將 Android 應用程序反編譯成 Smali 源文件
  • Dex2Jar 0.0.9.15.48:將 Android 應用程序源反編譯爲 Java
  • JD-GUI 0.3.3:讀取 Java 源文件
  • Burp Proxy 1.5:代理工具
  • Drozer 2.3.3:Android 應用程序評估框架
  • NMAP 6.40:掃描 Web 服務

2.2 漏洞

問題#1:Android 應用程序中的注入漏洞

說明:在 Android 應用程序的DatabaseConnector.java文件中發現了一個注入漏洞。參數account_idaccount_name被傳遞到應用程序中的 SQLite 查詢中,使其易於遭受 SQLite 注入。

風險級別:嚴重

修復:在傳遞到數據庫命令之前,應正確校驗用戶輸入。

問題#2:WebView組件中的漏洞

說明:WebDisplay.java文件中指定的 Android 應用程序中的WebView組件允許執行 JavaScript。攻擊者可以攔截不安全網絡上的流量,創建自定義響應,並控制應用程序。

風險等級:高

補救:如果應用程序中不需要 JavaScript,請將setJavascriptEnabled設置爲False

問題#3:無/弱加密

說明:Android應用程序將認證憑據存儲在名爲prefs.db的文件中,該文件存儲在設備上的應用程序文件夾中,即/data/data/com.vuln.attify/databases/prefs.db。通過 root 權限,我們能夠成功地查看存儲在文件中的用戶憑據。身份驗證憑據以 Base64 編碼存儲在文件中。

風險等級:高

補救:如果認證證書必須存儲在本地,則應使用適當的安全加密存儲。

問題#4:易受攻擊的內容供應器

說明:發現 Android 應用程序的內容供應器已導出,這使得它也可以由設備上存在的任何其他應用程序使用。內容供應器是content://com.vuln.attify/mycontentprovider

風險等級:高

補救:使用exported = false,或在AndroidManifest.xml中指定內容供應器的權限。

3. 結論

3.1 結論

我們發現該應用程序整體上存在漏洞,擁有內容供應器,SQLite 數據庫和數據存儲技術相關的漏洞。

3.2 建議

我們發現該應用程序容易受到一些嚴重和高危漏洞的攻擊。 付諸一些精力和安全的編碼實踐,所有的漏洞都可以成功修復。

爲了維持應用程序的安全,需要定期進行安全審計,來在每次主要升級之前評估應用程序的安全性。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章