昨天晚上做夢,夢見不知道在之前還是現(xiàn)在的哪家公司,跟同事老板談hc,說到,當(dāng)前最大的問題是,人力問題,是人力不夠。只有人力解決了,這個team才能運轉(zhuǎn)下去。我就問,那你們團隊是做啥的呢?他說做掃描器和漏洞運營。夢里就開始回想在以前公司中,各種方法有效的效率提高和人力節(jié)省措施,我就回了一句,人力當(dāng)然重要,不然事情做不起來,同時在有一定人力的情況下,方法更重要。接著,就開始就掃描器的使用高談闊論了起來。
啥?掃描器不就一個工具么?有幾個人不會用?
這里就講一講在甲方互聯(lián)網(wǎng)公司,掃描器在具體實踐中的用法,個人淺見,歡迎交流分享……頭次發(fā)文,不知道會被噴到多慘……
一、掃描器哪里來?
以前就職的兩家公司里,黑盒掃描器都是自研,白盒掃描器只有其中一家有。直到有一次某M公司來做分享,才知道,原來他們的黑白盒掃描器都是靠購買的,乙方提供產(chǎn)品和售后支持。當(dāng)時納悶兒,如果是乙方提供,就不怕到時候也不知道代碼,添加規(guī)則的時候不能滿足需求嗎?M公司的專家解釋,以前M也是自研掃描器,但是發(fā)現(xiàn)的問題是,掃描器的開發(fā)維護團隊的目標(biāo),很多時候和具體運營的安全團隊是不一致的,更新規(guī)則的效率效果也比較不好說;而乙方由于提供給多家服務(wù),樣本也更多,產(chǎn)品更專業(yè),提供的服務(wù)也更好一些。回想起原來就職的兩家公司里,除非掃描器的開發(fā)運維和安全工程師就在一個小團隊,否則這其中的多個環(huán)節(jié)也確實很難保證掃描器的快速迭代。
除了比較大的公司,如果是初創(chuàng)公司或者是快速增長期的公司,購買一款質(zhì)量有保證,售后服務(wù)好的掃描器產(chǎn)品都是個不錯的選擇。當(dāng)然如果能挖到專業(yè)的掃描器大牛過來,進行產(chǎn)品開發(fā),不僅少走很多彎路,還便于內(nèi)部產(chǎn)品對接,就更好了。
二、掃描器誰來用?
剛?cè)胄械臅r候,發(fā)現(xiàn)掃描器定期通過全流量,域名或ip,進行掃描,然后推送到SOC上,安全工程師來進行報警運維,以及后續(xù)漏洞的分發(fā)。這是對掃描器最早的用戶的認識。
隨著時間的增長,遇到了一群群特別牛叉的小伙伴兒,見識了,除了常規(guī)安全工程師運維,還可以將安全工程師以外的員工動員起來,畢竟,安全不僅僅是一個安全團隊的事情,而是一個公司,甚至還有公司外部人員一起來構(gòu)建的生態(tài)。
三、掃描器怎么用?
1. 常規(guī)黑盒掃描
收集和維護公司流量,ip和域名信息,對這些資產(chǎn)進行定期全量和增量掃描。
全量掃描,重點在于,要收集和維護公司的資產(chǎn),并對資產(chǎn)進行有效的去重策略。周期要比增量掃描的周期長一些,這里的重點在于全,而不是快。去重也需要一套完整的策略,不過此處不作過多展開。
增量掃描,對比原有資產(chǎn)庫,一旦發(fā)現(xiàn)有新增資產(chǎn),立即進行掃描,這里的重點在于要快。因為如果在歷史漏洞能夠有效修復(fù)的情況下,新增資產(chǎn)出現(xiàn)新漏洞或高危漏洞的可能性更大,需要盡快發(fā)現(xiàn)并處理。
2. 黑盒插件掃描
據(jù)Net Market Share 的7月份數(shù)據(jù),占據(jù)全球瀏覽器排行榜首位的是Chrome瀏覽器,總市場份額為48.65%。實際工作中,也確實不少的程序員喜歡用Chrome瀏覽器。甚至于,不少瀏覽器直接使用的是Chrome的內(nèi)核。
在這個前提下,開發(fā)Chrome瀏覽器掃描插件成為了可能。
由于黑盒掃描基于URL即可掃描發(fā)現(xiàn)漏洞的特性,只要通過Chrome或其內(nèi)核瀏覽器瀏覽過的URL,都可以通過插件進行收集抓取,并進一步進行黑盒掃描。只要安全工程師將插件開發(fā)成功,并推廣到公司的開發(fā)和測試安裝使用,那么開發(fā)和測試在線下環(huán)境中就可以自行檢測出漏洞,只要安全工程師準(zhǔn)備好相應(yīng)漏洞的修復(fù)方案,開發(fā)即可自行修復(fù)上線。無需等待產(chǎn)品上線,將安全風(fēng)險暴露到外面后,外部或安全工程師再倒推給開發(fā)修復(fù)。不僅是降低了安全風(fēng)險,也節(jié)省了安全工程師的工作成本。
3. 黑盒自助掃描
仍基于拿到URL即可掃描或爬取漏洞的特性,可以將掃描器后臺功能,開發(fā)成前臺產(chǎn)品,供對漏洞了解并未達到專業(yè)程度的開發(fā)或測試使用。
產(chǎn)品形態(tài)可以就是簡單的輸入框,用戶輸入URL,點擊掃描,即可對該URL進行黑盒漏洞掃描。
對于更深度的用戶,也研發(fā)定期,批量,爬蟲或接口掃描等功能……可以做的事情就很豐富了。
4.服務(wù)器掃描
這個原理是,抓取開發(fā)或測試的服務(wù)器上的日志,推到掃描器,進行定期自動化掃描。好處是一旦配置了,就能準(zhǔn)確的收集到最新變動的代碼的日志,并且中途無須人工進行更多的操作,只需等待結(jié)果即可。
需要注意的是,要盡量開發(fā)封裝的agent,而不僅僅是接口,因為封裝的agent在開發(fā)或者測試接入的時候成本更低,推廣起來也更容易。如果公司內(nèi)webserver類型不統(tǒng)一,那么可能需要開發(fā)Apache,Ngnix,lighttpd等多個適用版本來進行接入。
5. 白盒代碼掃描
白盒的代碼掃描,理論上也可以運用方法3中,輸入代碼路徑的方式進行自主掃描。還有一種方案就是,將白盒代碼掃描,封裝成一個腳本或者包,推廣給開發(fā),在開發(fā)常規(guī)開發(fā)的時候,跑一遍腳本或者包,顯示哪里的代碼可能會產(chǎn)生安全漏洞。
這個方案的難點有兩點。一是,如果公司開發(fā)使用的是多種語言,那么包的適配和開發(fā)上可能就需要花比較多的心思。二是,白盒掃描本身產(chǎn)生的誤報,想做好控制也比較難,這就要在漏報和誤報間做好權(quán)衡,至少選擇添加誤報達到某一基準(zhǔn)線的規(guī)則,并做好引導(dǎo)說明,否則容易敗RP。
6. 上線平臺掃描
如果是比較專業(yè)的公司,代碼上線,一般都會有上線的平臺或者系統(tǒng)做支撐。
如果在上線前接入黑盒白盒掃描,并對漏洞進行修復(fù),更是事半功倍。
需要注意的幾個事情是:
第一,要和上線的平臺打通,取得相應(yīng)平臺,以及平臺的用戶的支持,這部分建議還是先走試點然后逐步推開。
第二,接入黑白盒掃描,不要等到最終上線那一刻再去掃描,而是盡量將掃描的步驟提前,進行預(yù)掃描,加快速度,提高用戶體驗。
第三,對于掃描的結(jié)果,哪些可以不修復(fù)就上線,哪些必須修復(fù)后上線,必須制定相應(yīng)的策略,明確不修復(fù)上線的風(fēng)險確認方式。
第四,對于掃描器掃描規(guī)則的維護,需要在安全自己的系統(tǒng)中,而不是上線的平臺。這樣添加規(guī)則,設(shè)置白名單,能夠不受上線平臺的影響,自己掌握主動權(quán)。
最后,任何一種掃描器都不能解決所有的問題,有必要的情況下,對于重點業(yè)務(wù)可以通過設(shè)定策略,添加人工測試。
四、掃描器怎么維護?
衡量掃描器好壞最簡單的就是漏報和誤報率,如何盡量降低漏報和誤報,是掃描器安全上的最主要目標(biāo)。當(dāng)然,穩(wěn)定性,效率,速度不可忽視,不過此處不做詳細說明。
1.漏報
漏報是難免的,重要的是每次發(fā)現(xiàn)漏報后能夠更好的處理和解決,并且和誤報做好平衡取舍。漏洞一旦通過各種非掃描器的渠道上報后,要有專門的人對該漏洞進行分析和規(guī)則添加。這其中,疑似漏報的漏洞的通知規(guī)則和方式,根據(jù)漏洞類型進行初步的過濾和篩選,以及后續(xù)的規(guī)則添加都可以進行策略制定,這些都可以提高工作的效率。
此外,對于基礎(chǔ)資產(chǎn),包括但不限于流量,域名,ip,代碼路徑相關(guān)信息,進行收集和維護,也是減少漏報的重要途徑。不過,大公司資產(chǎn)分布較多,初創(chuàng)公司基礎(chǔ)建設(shè)又有可能不完整,收集資產(chǎn)都是個不易的任務(wù)。根據(jù)過往有限的經(jīng)驗,如果安全團隊有人力的話,最有質(zhì)量的方案,是將資產(chǎn)梳理和資產(chǎn)數(shù)據(jù),通過各種方式,匯總到自己的平臺上,自己進行維護。如果依賴其他平臺運維,后續(xù)無論是工作對接上,還是保證數(shù)據(jù)準(zhǔn)確性上,都會有無窮無盡的麻煩。梳理資產(chǎn)確實是個比較需要耐心,恒心,毅力和溝通能力的工作。
2.誤報
這里涉及到的是添加規(guī)則。如果是自研掃描器,非常非常建議,添加規(guī)則是通過動態(tài)配置,而非更新代碼。因為規(guī)則本身就是不斷變化的,如果每次規(guī)則變化都依賴開發(fā),后續(xù)的麻煩,你懂的。
最后,安全不是一個團隊的事情,而是聯(lián)合公司內(nèi)外各種力量建立起來的生態(tài)。
任何一種掃描器也無法掃描出全部的漏洞。
向奮斗在第一線的安全從業(yè)人員致敬。