? ? ? ? 文章來源:http://www.51testing.com
進行滲透測試首先需要確認滲透測試項目的起始狀態(tài)。定義起始狀態(tài)的最常見的方法是確定選擇黑盒測試或白盒測試或灰盒測試酣衷。
測試類型的選擇
黑盒測試存在不少問題。由于被測系統(tǒng)的原因次泽,也由于測試者對環(huán)境的熟悉程度不同穿仪,要估算偵察階段能持續(xù)多長時間是很困難的,而且偵察階段的長短涉及到費用問題意荤。但是啊片,如果測試時間不足,滲透測試往往可能“流產(chǎn)”玖像。還有一點不太現(xiàn)實的因素紫谷,就是一個有著強烈動機的攻擊者在仔細研究攻擊目標時,是不會顧及那些限制因素的捐寥,因為他往往是專業(yè)的滲透測試者笤昨。所以,我們建議實施灰盒測試而不是黑盒測試握恳。
如果滲透測試者可以與被測試系統(tǒng)有密切接觸瞒窒,或者充分了解被測系統(tǒng),就可以明確地定義滲透測試的目標乡洼,并且測試報告的結(jié)果往往也可以預(yù)料崇裁。被測者要向測試者提供一些關(guān)于目標系統(tǒng)的細節(jié)匕坯,如網(wǎng)絡(luò)信息、系統(tǒng)類型拔稳、公司的流程葛峻、服務(wù),等等巴比。白盒測試一般關(guān)注的是具體的業(yè)務(wù)目標泞歉,如滿足合規(guī)需要,而不是一般性的評估匿辩,而且由于受到目標系統(tǒng)的范圍限制腰耙,白盒測試往往是一種更為簡短的任務(wù)。白盒測試能夠減少信息收集的工作量铲球,如偵察服務(wù)挺庞,可以減少滲透測試服務(wù)的成本。因而稼病,內(nèi)部的安全團隊往往進行白盒測試选侨。
什么情況下實施灰盒測試?答案就是在客戶或系統(tǒng)的所有者同意在偵察階段需要發(fā)現(xiàn)一些未知信息時,但又允許滲透測試人員跳過這個部分然走。滲透測試人員從系統(tǒng)所有者那里得到一些目標系統(tǒng)的基本信息;然而援制,內(nèi)部工作和有些特權(quán)信息仍對滲透測試者保密。
真正的攻擊者在攻擊目標之前都要收集一些關(guān)于目標的信息芍瑞。多數(shù)攻擊者并不會選擇隨機的目標晨仑。攻擊者往往有著強烈的動機,并且在攻擊之前往往以某種方式與攻擊目標進行交互拆檬『榧海灰盒測試對于許多執(zhí)行滲透測試的安全專家來說是很有吸引力的,因為這種測試模仿攻擊者使用的真實方法竟贯,并且其關(guān)注的重點是漏洞而不是偵察答捕。
測試范圍定義了滲透服務(wù)怎樣開始,怎樣執(zhí)行屑那。滲透測試應(yīng)當(dāng)進行信息收集拱镐,用以記錄目標環(huán)境和定義任務(wù)的范圍,這樣做的目的是避免一些不必要的偵察服務(wù)或超出范圍的攻擊系統(tǒng)持际。
真正的攻擊者往往不受時間沃琅、資金、道德选酗、工具的限制阵难,這意味限制滲透測試的范圍并不能代表真實情況。例如芒填,一個滲透測試者可以捕獲用戶登錄到關(guān)鍵系統(tǒng)的憑據(jù)呜叫,他根本無需測試這些系統(tǒng)是否容易遭受基于網(wǎng)絡(luò)的攻擊空繁,就可以訪問這些系統(tǒng)。還有很重要的一點朱庆,就是哪些人應(yīng)知道滲透測試盛泡。真正的攻擊者可能會在任何時間發(fā)動攻擊。
確定滲透測試的范圍
在制定滲透測試的范圍時娱颊,你應(yīng)該注意如下基本要點:
· 目標系統(tǒng)的確定:即確定應(yīng)當(dāng)測試哪些系統(tǒng)傲诵。其中包括網(wǎng)絡(luò)位置、系統(tǒng)類型箱硕、對這些系統(tǒng)的業(yè)務(wù)使用等等拴竹。
· 測試工作的時間范圍:測試應(yīng)當(dāng)在何時開始?為滿足指定的測試目標,確定的時間范圍是什么?
· 如何評估目標系統(tǒng):你允許使用哪些測試方法(如掃描和漏洞利用)?如果你允許使用特定的測試方法剧罩,會帶來哪些風(fēng)險?如果由于滲透測試而造成目標系統(tǒng)無法運行栓拜,其影響是什么?例如,通過冒充雇員而使用社會網(wǎng)絡(luò)惠昔,對關(guān)鍵系統(tǒng)使用拒絕服務(wù)攻擊幕与,對有漏洞的服務(wù)執(zhí)行腳本,等等镇防。有些方法可能比其它方法給系統(tǒng)帶來更高的風(fēng)險啦鸣。
· 工具和軟件:在滲透測試期間,你要使用哪些軟件和工具?很多安全專家認為来氧,如果泄露了工具就等于泄露了秘密武器诫给。只有在安全專家在使用一些可以廣泛獲得的商業(yè)產(chǎn)品時,并且只是根據(jù)這些產(chǎn)品的報告來重新打造自己的品牌時饲漾,你才可能需要保密蝙搔。有經(jīng)驗的安全專家會透露自己使用的工具,在揭露漏洞時考传,還要記錄使用了工具的哪些命令才發(fā)現(xiàn)了漏洞。這可以使漏洞利用重現(xiàn)证鸥,并且允許客戶真正理解系統(tǒng)是如何被攻破的僚楞,也可以理解漏洞被利用的難度。
· 通知哪些人:誰應(yīng)當(dāng)知道滲透測試?向哪些人做簡要的敘述?需要他們做準備嗎?對滲透測試的反應(yīng)是測試范圍的一部分嗎?如是這樣枉层,在進行測試之前泉褐,不通知安全運營團隊就很有意義。如果你測試的是一款由另一方(例如鸟蜡,云服務(wù)供應(yīng)商)托管的Web應(yīng)用時膜赃,通知對方就非常重要,因為你的服務(wù)可能會影響到供應(yīng)商揉忘。
· 初始訪問水平:在開始滲透測試之前跳座,要提供哪些類型的信息和訪問?滲透測試人員可以通過互聯(lián)網(wǎng)或內(nèi)聯(lián)網(wǎng)訪問服務(wù)器嗎?允許哪些類型的最初等級的賬戶訪問?對每個目標系統(tǒng)來說端铛,這是一個黑盒測試、白盒測試還是灰盒測試?
· 目標范圍的定義:這里就是要確定滲透測試中的具體業(yè)務(wù)功能疲眷。例如禾蚕,對銷售人員使用的特定Web應(yīng)用程序執(zhí)行滲透測試,還不能影響到托管在同一服務(wù)器上的不同應(yīng)用狂丝。
· 關(guān)鍵操作范圍的確定:滲透測試者必須確定應(yīng)避免改變和影響哪些系統(tǒng)换淆,其目的是防止?jié)B透測試服務(wù)造成的負作用。是否應(yīng)禁止訪問活動的認證服務(wù)器?非常重要的問題是几颜,在對目標進行滲透測試之前倍试,就明確定義對哪些資產(chǎn)進行測試。
· 標準的定義:滲透測試應(yīng)該在何種程度上來攻擊系統(tǒng)或過程?是否應(yīng)當(dāng)清除數(shù)據(jù)蛋哭,或者攻擊者僅需要獲得特定水平的未授權(quán)訪問?
· 交付什么:最終交付的報告是什么樣子的?在完成滲透測試服務(wù)協(xié)議時县习,客戶期望什么樣的目標?要確保測試目標不是開放性的,這樣做的目的是為了避免測試范圍超出所期望的服務(wù)具壮。是否對特定的人員進行數(shù)據(jù)分類或指定數(shù)據(jù)?最終的報告應(yīng)該如何交付?非常重要的問題是准颓,測試人員要交付一個樣本報告,或者定期地對報告進行更新棺妓,這樣做的目的是為了避免最后的報告令人吃驚攘已。
· 修復(fù)期望:你期望在查出漏洞時,還記錄一些可行的修復(fù)操作嗎?如果在滲透測試期間怜跑,造成了系統(tǒng)的不可用样勃,我們應(yīng)該通知哪些人呢?如果發(fā)現(xiàn)了敏感數(shù)據(jù)會發(fā)生什么呢?多數(shù)滲透測試服務(wù)并沒有對所發(fā)現(xiàn)問題提出修復(fù)措施。
漏洞評估
在很多情況下性芬,根據(jù)審計標準或基準進行安全測試或?qū)徲嫿o客戶一種虛假的安全感峡眶。多數(shù)標準和基準都有一種長期更新的過程,卻無法跟得上當(dāng)今世界快速發(fā)展的威脅變化植锉。因而辫樱,安全測試和審計應(yīng)提供超出安全標準和基準的安全服務(wù),將安全水平提高到一種針對現(xiàn)實威脅的保護水平俊庇。
漏洞評估是一種對網(wǎng)絡(luò)設(shè)備狮暑、操作系統(tǒng)、應(yīng)用軟件進行掃描的過程辉饱,其目的是為了確認已知和未知漏洞的存在搬男。在發(fā)現(xiàn)漏洞后,滲透測試者并不會針對漏洞實施攻擊彭沼,驗證其是否真實缔逛。漏洞評估交付的結(jié)果提供了與所有漏洞有關(guān)聯(lián)的潛在風(fēng)險。有許多解決方案(如Kali Linux)都可用于根據(jù)系統(tǒng)或服務(wù)器的類型、根據(jù)開放的通信端口或其它方式掃描漏洞褐奴。
只有漏洞掃描能夠計算風(fēng)險按脚,才具備真正的價值。許多安全審計的問題就是漏洞掃描的結(jié)果使安全審計更笨重歉糜,卻沒有什么真正的價值乘寒。許多漏洞掃描器會提供虛假情報,或者會確認一些并不存存的漏洞匪补。為什么?這是因為這些漏洞掃描器錯誤地確認操作系統(tǒng)伞辛,或者錯誤地查找特定的補丁來修復(fù)漏洞,卻沒有關(guān)注軟件的版本夯缺。將風(fēng)險與漏洞結(jié)合起來分析蚤氏,可以提供一種明確的定義,并且可以確切地知道一個系統(tǒng)的脆弱程度踊兜。在很多情況下竿滨,這意味著需要對自動工具報告的漏洞進行檢查。