第九章 編寫滲透測試報告
作者:Aditya Gupta
譯者:飛龍
協(xié)議:CC BY-NC-SA 4.0
在本章中,我們將學(xué)習(xí)滲透測試的最終和最重要的方面,撰寫報告。 這是一個簡短的章節(jié),指導(dǎo)你在報告中寫下你的方法和發(fā)現(xiàn)。 作為滲透測試者,如果能夠更好地解釋和記錄你的發(fā)現(xiàn),滲透測試報告會更好。 對于大多數(shù)滲透測試者來說,這是滲透測試中最沒意思的部分,但它也是最重要的滲透測試步驟之一,因為它作為“至關(guān)重要的材料”,使其他技術(shù)和管理人員容易理解 。
滲透測試報告基礎(chǔ)
滲透測試報告是滲透測試過程中所有發(fā)現(xiàn)的摘要文檔,包括但不限于所使用的方法,工作范圍,假設(shè),漏洞的嚴(yán)重程度等。 滲透測試報告僅用作滲透測試的完整文檔,可用于消除已發(fā)現(xiàn)的漏洞并進(jìn)一步參考。
編寫滲透測試報告
為了理解如何編寫滲透測試報告,最好對滲透測試報告中的一些重要部分有一個清晰的了解。
一些最重要的組成部分包括:
- 執(zhí)行摘要
- 漏洞摘要
- 工作范圍
- 使用的工具
- 遵循的測試方法
- 建議
- 結(jié)論
- 附錄
除此之外,還應(yīng)該有關(guān)于滲透測試,進(jìn)行滲透測試的組織和客戶,以及“非披露協(xié)議”的足夠詳細(xì)信息。 讓我們一個一個地去看上面的每個部分,來快速查看它。
執(zhí)行摘要
執(zhí)行摘要是滲透測試的整個結(jié)果的快速演練。 執(zhí)行摘要不需要太多技術(shù),它只是一個總結(jié),用于在盡可能短的時間內(nèi)瀏覽滲透測試。 執(zhí)行摘要是管理層和高管首先看到的。
它的一個例子如下:
XYZ 應(yīng)用程序的滲透測試具有大量的開放輸入驗證缺陷,這可能導(dǎo)致攻擊者訪問敏感數(shù)據(jù)。
你還應(yīng)該解釋此漏洞對于該組織業(yè)務(wù)的嚴(yán)重程度。
漏洞
如標(biāo)題所示,這應(yīng)包括應(yīng)用程序中發(fā)現(xiàn)的所有漏洞的摘要以及相關(guān)詳細(xì)信息。 如果你在應(yīng)用程序中找到的漏洞分配了 CVE 號碼,你可以包括它。 你還應(yīng)包括導(dǎo)致該漏洞的應(yīng)用程序的技術(shù)詳細(xì)信息。 另一種展示漏洞的好方法是對漏洞按照類別進(jìn)行分類:低,中和高,然后在餅圖或任何其他圖形表示上展示它們。
工作范圍
工作范圍僅僅意味著滲透測試涵蓋并評估了哪些應(yīng)用程序和服務(wù)。 它可以簡單地寫成一行,如下:
該工作的范圍僅限于 XYZ Android 和 iOS 應(yīng)用程序,不包括任何服務(wù)端組件。
使用的工具
這是一個可選類別,通常可以包含在另一個類別中,也就是討論漏洞發(fā)現(xiàn)和技術(shù)細(xì)節(jié)的地方。 在本節(jié)中,我們可以簡單提到使用的不同工具及其特定版本。
遵循的測試方法
這個類別是最重要的類別之一,應(yīng)該以詳細(xì)方式編寫。 這里,滲透測試者需要指定不同的技術(shù),和他在滲透測試階段所遵循的步驟。 它可以是簡單的應(yīng)用程序逆向,流量分析,使用不同的工具的庫和二進(jìn)制文件分析,等等。
此類別應(yīng)指定其他人需要遵循的完整過程,以便完全理解和重現(xiàn)這些漏洞。
建議
此類別應(yīng)指定要執(zhí)行的不同任務(wù),以便組織保護(hù)程序并修復(fù)漏洞。 這可能包括一些東西,類似建議以適當(dāng)權(quán)限保存文件,加密發(fā)送網(wǎng)絡(luò)流量以及正確使用 SSL 等。 它還應(yīng)包括在考慮到組織的情況下,執(zhí)行這些任務(wù)的正確方法。
結(jié)論
這個部分應(yīng)該簡單地總結(jié)滲透測試的總體結(jié)果,并且我們可以使用漏洞類型的概述,簡單地說明應(yīng)用程序是不安全的。 記住,我們不應(yīng)該涉及所發(fā)現(xiàn)的不同漏洞的詳細(xì)信息,因為我們已經(jīng)在前面的章節(jié)中討論過了。
附錄
滲透測試報告的最后一部分應(yīng)該是附錄,或者一個快速參考,讀者可以使用它快速瀏覽滲透測試的特定主題。
總結(jié)
在本章中,我們對滲透測試報告的不同部分進(jìn)行了快速演練,滲透測試者需要了解這些部分才能編寫報告。 本章的目的是在滲透測試的最后階段,作為一個編寫滲透測試報告的簡潔指南。 此外,你可以在下一頁找到滲透測試報告的示例。
對于滲透測試人員,和想入門 Android 安全的人來說,我希望這本書會成為一個偉大的工具。 本書中提到的工具和技術(shù)將幫助你入門 Android 安全。 祝你好運(yùn)!
下面是滲透測試報告的示例:
Attify 漏洞應(yīng)用安全審計報告
應(yīng)用程序版本:1.0
日期:2014年1月
作者:Aditya Gupta
摘要:2014年1月,Attify 實驗室對 Android 平臺的移動應(yīng)用程序“Attify 漏洞應(yīng)用”進(jìn)行了安全評估。 本報告包含審計過程中的所有發(fā)現(xiàn)。 它還包含首先發(fā)現(xiàn)這些漏洞的過程,以及修復(fù)這些問題的方法。
目錄

1. 引言
1.1 執(zhí)行摘要
Attify Labs 受委托對 XYZ 公司的 Android 應(yīng)用程序“Attify 漏洞應(yīng)用”執(zhí)行滲透測試。 此滲透測試和審計的目的是確定 Android 應(yīng)用程序以及與其通信的 Web 服務(wù)的安全漏洞。
我們在測試期間十分小心,以確保在執(zhí)行審計時不會對后端 Web 服務(wù)器造成損害。 該評估在 Aditya Gupta 的領(lǐng)導(dǎo)下進(jìn)行,團(tuán)隊由三名內(nèi)部滲透測試人員組成。
在審計期間,在 XYZ Android 應(yīng)用程序和后端 Web 服務(wù)中發(fā)現(xiàn)了一些安全漏洞。 總的來說,我們發(fā)現(xiàn)系統(tǒng)是不安全的,并且具有來自攻擊者的高威脅風(fēng)險。
此次審計的結(jié)果將有助于 XYZ 公司使他們的 Android 應(yīng)用程序和 Web 服務(wù)免受攻擊者造成的安全威脅,這可能會損害聲譽(yù)和收入。
2.2 工作范圍
這里執(zhí)行的滲透測試集中于 XYZ 公司的 Android 應(yīng)用程序,名為“Attify 漏洞應(yīng)用”。 滲透測試還包括 所有 Web 后端服務(wù),Android 應(yīng)用程序與之進(jìn)行通信。
1.3 漏洞摘要
Android應(yīng)用程序“Attify 漏洞應(yīng)用”被發(fā)現(xiàn)存在漏洞,包括應(yīng)用程序本身,以及由于在應(yīng)用程序中使用第三方庫的很多漏洞。我們已成功利用該庫,使我們可以訪問存儲在設(shè)備上的整個應(yīng)用程序的數(shù)據(jù)。
此外,在應(yīng)用程序中找到的webview組件使應(yīng)用程序容易受到 JavaScript 響應(yīng)的操縱,使我們可以訪問應(yīng)用程序中的整個 JavaScript 界面??。這最終允許我們利用不安全網(wǎng)絡(luò)上的應(yīng)用程序,導(dǎo)致應(yīng)用程序行為控制,還允許我們在用戶沒有知曉的情況下安裝更多應(yīng)用程序,進(jìn)行意外的撥號和發(fā)送短信等。
在應(yīng)用程序中發(fā)現(xiàn)的其他漏洞包括不安全的文件存儲,一旦設(shè)備已經(jīng) root,這使我們可以訪問存儲在應(yīng)用程序中的敏感用戶憑據(jù)。
此外,我們可以注意到,應(yīng)用通信的 web 服務(wù)沒有用于用戶認(rèn)證的適當(dāng)安全措施,并且可以使用 SQL 認(rèn)證繞過攻擊來訪問存儲在 web 服務(wù)器上的敏感信息。
2. 審計與方法論
2.1 使用的工具
以下是用于整個應(yīng)用程序?qū)徲嫼蜐B透測試流程的一些工具:
- 測試平臺:Ubuntu Linux Desktop v12.04
- 設(shè)備:運(yùn)行 Android v4.4.2 的 Nexus 4
- Android SDK
- APKTool 1.5.2:將 Android 應(yīng)用程序反編譯成 Smali 源文件
- Dex2Jar 0.0.9.15.48:將 Android 應(yīng)用程序源反編譯為 Java
- JD-GUI 0.3.3:讀取 Java 源文件
- Burp Proxy 1.5:代理工具
- Drozer 2.3.3:Android 應(yīng)用程序評估框架
- NMAP 6.40:掃描 Web 服務(wù)
2.2 漏洞
問題#1:Android 應(yīng)用程序中的注入漏洞
說明:在 Android 應(yīng)用程序的DatabaseConnector.java文件中發(fā)現(xiàn)了一個注入漏洞。參數(shù)account_id和account_name被傳遞到應(yīng)用程序中的 SQLite 查詢中,使其易于遭受 SQLite 注入。
風(fēng)險級別:嚴(yán)重
修復(fù):在傳遞到數(shù)據(jù)庫命令之前,應(yīng)正確校驗用戶輸入。
問題#2:WebView組件中的漏洞
說明:WebDisplay.java文件中指定的 Android 應(yīng)用程序中的WebView組件允許執(zhí)行 JavaScript。攻擊者可以攔截不安全網(wǎng)絡(luò)上的流量,創(chuàng)建自定義響應(yīng),并控制應(yīng)用程序。
風(fēng)險等級:高
補(bǔ)救:如果應(yīng)用程序中不需要 JavaScript,請將setJavascriptEnabled設(shè)置為False。
問題#3:無/弱加密
說明:Android應(yīng)用程序?qū)⒄J(rèn)證憑據(jù)存儲在名為prefs.db的文件中,該文件存儲在設(shè)備上的應(yīng)用程序文件夾中,即/data/data/com.vuln.attify/databases/prefs.db。通過 root 權(quán)限,我們能夠成功地查看存儲在文件中的用戶憑據(jù)。身份驗證憑據(jù)以 Base64 編碼存儲在文件中。
風(fēng)險等級:高
補(bǔ)救:如果認(rèn)證證書必須存儲在本地,則應(yīng)使用適當(dāng)?shù)陌踩用艽鎯Α?/p>
問題#4:易受攻擊的內(nèi)容供應(yīng)器
說明:發(fā)現(xiàn) Android 應(yīng)用程序的內(nèi)容供應(yīng)器已導(dǎo)出,這使得它也可以由設(shè)備上存在的任何其他應(yīng)用程序使用。內(nèi)容供應(yīng)器是content://com.vuln.attify/mycontentprovider。
風(fēng)險等級:高
補(bǔ)救:使用exported = false,或在AndroidManifest.xml中指定內(nèi)容供應(yīng)器的權(quán)限。
3. 結(jié)論
3.1 結(jié)論
我們發(fā)現(xiàn)該應(yīng)用程序整體上存在漏洞,擁有內(nèi)容供應(yīng)器,SQLite 數(shù)據(jù)庫和數(shù)據(jù)存儲技術(shù)相關(guān)的漏洞。
3.2 建議
我們發(fā)現(xiàn)該應(yīng)用程序容易受到一些嚴(yán)重和高危漏洞的攻擊。 付諸一些精力和安全的編碼實踐,所有的漏洞都可以成功修復(fù)。
為了維持應(yīng)用程序的安全,需要定期進(jìn)行安全審計,來在每次主要升級之前評估應(yīng)用程序的安全性。