當(dāng)你連續(xù)奮戰(zhàn)了好幾天,終于合上了筆記本,想要出去透透風(fēng)時(shí),一個(gè)熟悉的問句傳來:“你好,請(qǐng)問什么時(shí)候可以交付報(bào)告?”
有成千上萬的書籍講解什么是信息安全,什么是滲透測(cè)試,也有數(shù)不清的培訓(xùn)課程視頻。但是,我敢打賭,在這些材料中,只有不到10%是在講寫報(bào)告的事情。在一個(gè)完整的滲透測(cè)試過程中,有將近一半的時(shí)間都用在了編寫報(bào)告上,這聽起來很讓人吃驚,但是也并不奇怪。
教會(huì)某人寫報(bào)告不像教會(huì)某人制作一個(gè)完美的緩沖區(qū)溢出那么有意思,大部分的滲透測(cè)試人員情愿復(fù)習(xí)19次TCP數(shù)據(jù)包結(jié)構(gòu)的工作原理,也不愿意寫一份報(bào)告。
不管我們的滲透測(cè)試水平多么高,想要把一個(gè)很深的技術(shù)點(diǎn)解釋的很通俗易懂,即使是完全不懂安全的人也可以理解,這是一件異常艱難的挑戰(zhàn)。不但得學(xué)會(huì)簡單明了的解釋滲透測(cè)試的結(jié)果,還得控制好時(shí)間。這樣做的好處很多,關(guān)系到客戶會(huì)不會(huì)不斷的采購你的服務(wù)。有一次,我開車到350英里以外的一家客戶那里做售前,當(dāng)面重新解釋了滲透測(cè)試報(bào)告的本內(nèi)容;如果能把測(cè)試報(bào)告寫的簡單明了,我就不用跑這么一趟,相當(dāng)于節(jié)省了一整天的時(shí)間和一整箱汽油。
舉個(gè)例子:
一個(gè)模糊不清的解釋:“SSH版本應(yīng)該被禁用,因?yàn)樗懈呶B┒矗赡茉试S攻擊者在網(wǎng)絡(luò)上攔截和解密通信,雖然攻擊者控制網(wǎng)絡(luò)的風(fēng)險(xiǎn)很低,這減少了嚴(yán)重性。”
清楚的解釋:“建議在這些設(shè)備上禁用SSH,如果不這樣做,就有可能允許攻擊者在當(dāng)?shù)鼐W(wǎng)絡(luò)解密和攔截通訊。”
為什么滲透測(cè)試報(bào)告如此重要?
請(qǐng)謹(jǐn)記:滲透測(cè)試是一個(gè)科學(xué)的過程,像所有科學(xué)流程一樣,應(yīng)該是獨(dú)立可重復(fù)的。當(dāng)客戶不滿意測(cè)試結(jié)果時(shí),他有權(quán)要求另外一名測(cè)試人員進(jìn)行復(fù)現(xiàn)。如果第一個(gè)測(cè)試人員沒有在報(bào)告中詳細(xì)說明是如何得出結(jié)論的話,第二個(gè)測(cè)試人員將會(huì)不知從何入手,得出的結(jié)論也極有可能不一樣。更糟糕的是,可能會(huì)有潛在漏洞暴露于外部沒有被發(fā)現(xiàn)。
舉個(gè)例子:
模糊不清的描述:“我使用端口掃描器檢測(cè)到了一個(gè)開放的TCP端口。“
清晰明了的描述:“我使用Nmap 5.50,對(duì)一段端口進(jìn)行SYN掃描,發(fā)現(xiàn)了一個(gè)開放的TCP端口。
命令是:nmap –sS –p 7000-8000“
報(bào)告是實(shí)實(shí)在在的測(cè)試過程的輸出,且是真實(shí)測(cè)試結(jié)果的證據(jù)。對(duì)客戶高層管理人員(批準(zhǔn)用于測(cè)試的資金的人)可能對(duì)報(bào)告的內(nèi)容沒有什么興趣,但這份報(bào)告是他們唯一一份證明測(cè)試費(fèi)用的證據(jù)。滲透測(cè)試不像其他類型的合同項(xiàng)目。合同結(jié)束了,沒有搭建新的系統(tǒng),也沒有往應(yīng)用程序添加新的代碼。沒有報(bào)告,很難向別人解釋他們剛買的什么東西。
報(bào)告給誰看?
至少有三種類型的人會(huì)閱讀你的報(bào)告:高級(jí)管理人員,IT管理和IT技術(shù)人員。
高級(jí)管理人員根本不關(guān)心,或者壓根不明白它的意思,如果支付服務(wù)器使用SSL v2加密連接。他們想知道的答案是“我們現(xiàn)在到底安不安全?”
IT管 理對(duì)該組織的整體安全性感興趣,同時(shí)也希望確保其特定的部門在測(cè)試過程中都沒有發(fā)現(xiàn)任何重大問題。我記得給三個(gè)IT經(jīng)理一份特別詳細(xì)的報(bào)告。閱讀這份報(bào)告后有兩個(gè)人臉色變得蒼白,而第三個(gè)人笑著說“太好了,沒有數(shù)據(jù)庫的安全問題”。
IT人員是負(fù)責(zé)修復(fù)測(cè)試過程中發(fā)現(xiàn)的問題的人。他們想知道三件事:受影響系統(tǒng)的名稱,該漏洞的嚴(yán)重程度以及如何解決它。他們也希望這些信息以一種清晰而且有組織的方式呈現(xiàn)給他們。最好的方法是將這些信息以資產(chǎn)和嚴(yán)重程度來進(jìn)行劃分。例如“服務(wù)器A”存在“漏洞X,Y和Z,漏洞Y是最關(guān)鍵的。這樣IT人員就可以快速的找到問題的關(guān)鍵,及時(shí)修復(fù)。
當(dāng)然,你可以問你的客戶是否愿意對(duì)漏洞分組。畢竟測(cè)試是為了他們的利益,他們是付錢的人!一些客戶喜歡有個(gè)詳細(xì)說明每個(gè)漏洞的頁面,并表明受漏洞影響的資產(chǎn)有哪些。
雖然我已經(jīng)提到了滲透測(cè)試報(bào)告三種最常見的讀者,但這并不是一個(gè)詳盡的清單。一旦報(bào)告交付給客戶,取決于他們用它干什么。它可能最終被提交給審計(jì)人員作為審計(jì)的證據(jù)。它可以通過銷售團(tuán)隊(duì)呈現(xiàn)給潛在客戶。“任何人都可以說自己的產(chǎn)品是安全的,但他們可以證明這一點(diǎn)?我們可以看看這里的滲透測(cè)試報(bào)告。“
報(bào)告甚至可能最終共享給整個(gè)組織。這聽起來很瘋狂,但它確實(shí)發(fā)生過。我執(zhí)行一次社會(huì)工程學(xué)測(cè)試,其結(jié)果低于客戶的期望。被觸怒的CEO將報(bào)告?zhèn)鬟f給整個(gè)組織,作為提高防范社會(huì)工程攻擊意識(shí)的一種方式。更有趣的是,幾周后當(dāng)我訪問同一個(gè)公司做一些安全意識(shí)的培訓(xùn)。我在自我介紹時(shí)說,我就是之前那個(gè)負(fù)責(zé)社工測(cè)試的人。憤怒的目光,嘲諷的語氣,埋怨我給他們所有人帶來多少麻煩。我的內(nèi)心毫無波動(dòng),答道:“把密碼給我總比給真正的黑客好。”
報(bào)告應(yīng)該包含什么?
有時(shí)候你會(huì)很幸運(yùn)的看到,客戶在項(xiàng)目計(jì)劃之初就表明他們想要的報(bào)告內(nèi)容。甚至有一些更為細(xì)小的要求,比如,字體大小和線間距等。但是這只是少數(shù),大部分客戶還是不知道最終要什么結(jié)果,所以下面給出一般報(bào)告的撰寫程序。
封面
封面是報(bào)告的第一面窗戶,封面頁上包含的細(xì)節(jié)可以不那么明顯。但是測(cè)試公司的名稱、標(biāo)志以及客戶的名稱應(yīng)該突出顯示。諸如“內(nèi)部網(wǎng)絡(luò)掃描”或“DMZ測(cè)試”測(cè)試標(biāo)題也應(yīng)該在那里,對(duì)于相同的客戶執(zhí)行多個(gè)測(cè)試時(shí),可以避免混淆。測(cè)試時(shí)間也要寫上,隨著時(shí)間的推移,用戶可以清楚的得知他們的安全狀況是否得到了改善。另外該封面還應(yīng)包含文檔的密級(jí),并與客戶商定如何保密好這份商業(yè)上的敏感文件。
內(nèi)容提要
我見過一些簡直像短篇小說一樣的內(nèi)容提要,其實(shí)這部分一般要限制在一頁紙以內(nèi)。不要提及任何特定的工具、技術(shù),因?yàn)榭蛻舾静辉诤酰麄冎恍枰赖氖悄阕隽耸裁矗l(fā)現(xiàn)了什么,接下來要發(fā)生什么,為什么,執(zhí)行摘要的最后一行應(yīng)該是一個(gè)結(jié)論,即明確指出是該系統(tǒng)是安全還是不安全。
舉個(gè)例子:
一個(gè)糟糕的總結(jié):“總之,我們發(fā)現(xiàn)一些地方的安全策略運(yùn)作良好,但有些地方并未遵從。這導(dǎo)致了一定風(fēng)險(xiǎn),但并不是致命風(fēng)險(xiǎn)。”
一個(gè)優(yōu)秀的總結(jié):“總之,我們發(fā)現(xiàn)了某些地方?jīng)]有遵守安全策略,這給組織帶來了一個(gè)風(fēng)險(xiǎn),因此我們必須聲明該系統(tǒng)是不安全的。”
漏洞總結(jié)
將漏洞列表放在一個(gè)頁面上,這樣,IT經(jīng)理便可以一目了然的知道接下來要做什么。具體怎樣表現(xiàn)出來,形式多樣,你可以使用花哨的圖形(像表格或圖表),只要清晰明了就行。漏洞可以按類別(例如軟件問題,網(wǎng)絡(luò)設(shè)備配置,密碼策略)進(jìn)行分組,嚴(yán)重程度或CVSS評(píng)分——方法很多,只要工作做得好,很容易理解。
測(cè)試團(tuán)隊(duì)的詳細(xì)信息
記錄測(cè)試過程中所涉及的每一個(gè)測(cè)試人員的名字,這是一個(gè)基本的禮節(jié)問題,讓客戶知道是誰在測(cè)試他們的網(wǎng)絡(luò),并提供聯(lián)系方式,以便后續(xù)報(bào)告中問題討論。一些客戶和測(cè)試公司也喜歡依據(jù)測(cè)試的內(nèi)容向不同的測(cè)試小組分配任務(wù)。多一雙眼睛,可以從不同的角度查看系統(tǒng)的問題。
工具列表
包括版本和功能的簡要描述。這點(diǎn)會(huì)涉及到可重復(fù)性。如果有人要準(zhǔn)確復(fù)現(xiàn)您的測(cè)試,他們需要確切地知道您使用的工具。
工作范圍
事先已經(jīng)同意,轉(zhuǎn)載作為參考是有用的。
報(bào)告主體
這部分才是報(bào)告的精華,報(bào)告的正文應(yīng)包括所有檢測(cè)到的漏洞細(xì)節(jié),如何發(fā)現(xiàn)漏洞,如何利用漏洞,以及漏洞利用的可能性。無論你做的是什么,都要保證給出一個(gè)清晰的解釋。我看過無數(shù)份報(bào)告,都是簡單的復(fù)制粘貼漏洞掃描的結(jié)果,這是不對(duì)的。另外報(bào)告中還應(yīng)包括切實(shí)貼合的修復(fù)建議。
最終交付
在任何情況下任何一份報(bào)告應(yīng)該加密傳輸。這雖然是常識(shí),但往往大家就會(huì)摔倒在最后的這環(huán)上。
*參考來源:infosec,F(xiàn)B小編東二門陳冠希編譯,轉(zhuǎn)載請(qǐng)注明來自FreeBuf黑客與極客(FreeBuf.COM)