滲透測試成功的8個關(guān)鍵
滲透測試很貴,但只要做好其中幾個關(guān)鍵因素就能得回它的價值。
1. 知道為什么要測試
執(zhí)行滲透測試的目的是什么?是滿足審計要求?是你需要知道某個新應(yīng)用在現(xiàn)實世界中表現(xiàn)如何?你最近換了安全基礎(chǔ)設(shè)施中某個重要組件而需要知道它是否有效?或者滲透測試根本就是作為你定期檢查防御健康的一項例行公事?
當(dāng)你清楚做測試的原因時,你也就知曉自己想從測試中得到什么了,而這可以讓測試規(guī)劃工作更有效率。知道做測試的緣由可以讓人恰當(dāng)?shù)卮_立測試的范圍,確定測試結(jié)果將會揭露什么問題。
或許這一步中最重要的一部分,是讓團(tuán)隊提前架設(shè)好準(zhǔn)備從測試結(jié)果中得出正確的結(jié)論的心理預(yù)期。如果測試是要審查IT基礎(chǔ)設(shè)施的某個特定方面(比如說新的Web應(yīng)用),那就沒必要著墨于公司整體安全。理解做測試的緣由可以讓你問出正確的問題,得到能被恰當(dāng)理解的結(jié)果。
2. 了解你的網(wǎng)絡(luò)
漏洞是安全的重點。企業(yè)網(wǎng)絡(luò)上線之日直至如今必然經(jīng)歷種種變遷,只要攻擊者比企業(yè)自己的IT員工更清楚其中存在的漏洞,企業(yè)網(wǎng)絡(luò)就對攻擊者門戶洞開。
繪制公司網(wǎng)絡(luò)地圖的責(zé)任不落在滲透測試團(tuán)隊身上。如果滲透測試團(tuán)隊在做這項工作,就意味著你有可能錯過他們的測試結(jié)果,因為你收到的網(wǎng)絡(luò)架構(gòu)消息都能把滲透測試結(jié)果淹沒。
一張更新的網(wǎng)絡(luò)地圖(包括邏輯方面和拓?fù)浞矫?應(yīng)成為滲透測試的強制性前提條件。如果滲透測試員在告訴你你所不知道的網(wǎng)絡(luò)架構(gòu)情況,那你就是在為網(wǎng)絡(luò)地圖買單——很貴的那種。
3. 設(shè)置范圍
紅隊探測范圍有多廣,很大程度上取決于你為什么要做這個測試,因為太廣或太窄可能都無甚大用。
測試范圍過窄的問題很明顯:如果想要找出的問題在測試范圍外,那就沒有任何數(shù)據(jù)能幫助確定該組件的安全。所以,必須確保測試參數(shù)包含事關(guān)公司當(dāng)前安全狀態(tài)的重要組件。最重要的是,你得確定自己要測試的是整體安全狀況還是某特定系統(tǒng)的安全狀態(tài),以及人為因素(對網(wǎng)絡(luò)釣魚和其他社會工程攻擊的敏感性)需不需要被包含進(jìn)去。
如果測試范圍過寬,有可能出現(xiàn)兩個問題。第一個問題是經(jīng)濟(jì)上的:測試費用會隨范圍的擴(kuò)大而增加,而測試價格與所需信息不相匹配的狀況又會影響到公司高層對未來測試的熱情。
第二個問題就更為致命了。測試范圍過大時,測試本身容易返回太多信息,真正所需的數(shù)據(jù)很容易被淹沒在巨量的測試結(jié)果中。教訓(xùn)很清楚:想要測試架構(gòu)中特定部分的安全,就將滲透測試的范圍限定在那個部分上。對整個系統(tǒng)的測試可以留待下次進(jìn)行。
4. 做好計劃
弄清測試目的并確定出測試范圍后,就可以開始制定測試計劃了。定出詳細(xì)明確的測試條件和需求最為重要,任何松散或須經(jīng)解釋的測試要求都會削減滲透測試的效率。需做好詳盡計劃的原因有很多,其中最主要的原因與成本控制和提升測試結(jié)果可用性有關(guān)。
良好的測試計劃應(yīng)分為多個部分。一個部分幫助委托公司鞏固其測試方案的要求。一個部分確認(rèn)測試返回數(shù)據(jù)的類型。還要有一部分內(nèi)容為向公司執(zhí)行委員會解釋測試開銷做準(zhǔn)備。
測試計劃不是制定好后就固定不變的,測試過程中可能需作出修訂。測試團(tuán)隊被聘用后,他們可能會針對某些測試元素提出一些能產(chǎn)生更好結(jié)果的建議。其中關(guān)鍵就在于,公司內(nèi)部就該測試計劃達(dá)成一致后 ,安全團(tuán)隊就能判斷滲透測試員的建議是否能滿足測試需求了,不用什么都依靠測試團(tuán)隊的力量。
5. 雇正確的團(tuán)隊
提供滲透測試服務(wù)的公司和顧問很多。這些公司都有各自的優(yōu)勢和弱點,他們的技術(shù)技巧各有千秋,呈現(xiàn)測試結(jié)果的方式也有好有壞。公司有必要確保所選測試團(tuán)隊的能力盡可能地符合測試需要。
要注意的是,測試需求應(yīng)高于客戶要求。確實,有些團(tuán)隊在導(dǎo)引征求建議書(RFP)過程或擠進(jìn)獲批供應(yīng)商列表上頗有心得,但他們執(zhí)行測試計劃所需滲透測試動作的技術(shù)未必比得上這些在應(yīng)付客戶上的技巧。選擇滲透測試團(tuán)隊時應(yīng)將測試技術(shù)放在第一位,會計和行政管理方面的能力次之。
可以考察測試團(tuán)隊的老辣程度,看他們?nèi)绾卧诓煌品媱澋臈l件下提出建議,改進(jìn)客戶的測試計劃。這也是為什么前期要做好測試計劃的一個重要原因。因為可以檢查測試過程中的種種改動。
6. 不要干預(yù)
人都想得到別人的認(rèn)同,這是人類天性。但滲透測試的目的就是要展現(xiàn)出公司企業(yè)安全狀態(tài)的實際情況,所以,盡量別為了得到個看起來好看的結(jié)果而人為干擾滲透測試員,給防御方提供不公平的優(yōu)勢。
事實上,紅隊幾乎總能某種程度上滲透進(jìn)公司網(wǎng)絡(luò)邊界。我們當(dāng)前的技術(shù)和操作就是這樣的。很多情況下,真正的問題存在于藍(lán)隊到底什么時候才能發(fā)現(xiàn)已被攻破,會如何響應(yīng)。
無論測試結(jié)果如何,都要讓測試過程正常進(jìn)行,以便結(jié)果真實、準(zhǔn)確、有用。管理層的任何干預(yù)都會毀了滲透測試的有效性,請一定記得在測試完成前不要插手。
7. 注意結(jié)果
測試完成后,你會得到一份完整的報告,需仔細(xì)研讀。滲透測試員應(yīng)向你呈現(xiàn)出測試的結(jié)果,如果你有機會根據(jù)測試結(jié)果改進(jìn)安全系統(tǒng),別放過這種機會。
或許滲透測試是為了滿足監(jiān)管合規(guī)要求而做的。也有可能你就沒想找任何理由來改變你的安全防御。這都沒關(guān)系。你的安全防御如今已遭遇過敵軍主力,而你可以看清安全計劃的成功之處與失敗的地方。
如果測試結(jié)果被用于做出有意義的改變,滲透測試就是劃算的。而劃算的滲透測試也更有可能在未來獲得公司高層的安全預(yù)算。
8. 溝通結(jié)果
對大多數(shù)公司來說,滲透測試的結(jié)果不局限在安全團(tuán)隊范圍內(nèi)。至少,對整個IT部門都有影響,而很多情況下還有高管們需要看到的信息。
很多安全人員都覺得,向非安全專業(yè)的經(jīng)理傳達(dá)滲透測試結(jié)果是過程中最難的部分。不僅需要說明都做了什么,為什么要這么做,還要用他們能聽懂的語言解釋需要作出什么改動。這往往意味著要用商業(yè)術(shù)語溝通,而不是以技術(shù)語言闡述。
正如滲透測試可被視為真實攻擊的預(yù)演,將其他部門的同事納入結(jié)果闡述和操作展示的受眾范圍,也有助于確保被接收的信息確實是你想要傳達(dá)的。
對很多業(yè)務(wù)經(jīng)理而言,網(wǎng)絡(luò)安全是個令人望而生畏的高難度領(lǐng)域;盡量別用過多的行話讓業(yè)務(wù)經(jīng)理們在座位上一頭霧水坐臥不寧。
既然都已經(jīng)花大力氣做了計劃并執(zhí)行了切實的滲透測試,那就努力讓測試結(jié)果對整個公司有用吧。
【本文是51CTO專欄作者“”李少鵬“”的原創(chuàng)文章,轉(zhuǎn)載請通過安全牛(微信公眾號id:gooann-sectv)獲取授權(quán)】