技術篇 #####
第九章 漏洞掃描
任何規模稍大的企業,日常安全工作要想自動化少不了自建掃描平台。
安全運維日常工作最重要的3個事情,漏洞掃描、入侵感覺和應急響應。
#1.概述
漏洞掃描會在業務上線前或周期例行掃描,是指用掃描器發現漏洞的過程,
黑客利用漏洞會降低其繞過ACL、IDS、WAF等防禦措施的難度。
如果有漏網之魚,各大網際網路企業也有自己的應急響應中心(SRC)供白帽子有獎挖洞。
#2.漏洞掃描的種類
1.按漏洞類型分類(掃描的漏洞的類型不同)
ACL掃描器
用途:密切監視公司伺服器及網絡的ACL。
周期:至少一天一次:
關鍵點:無需對外開發的端口或IP是否暴露在公網中。
某些應用發現最新漏洞時,可以快速從資料庫中查詢對應服務與版本,
報到業務部門修複。
技巧:
機器少,直接用 nmap 掃描,掃描結果直接存放到資料庫中。
機器多,用 masscan 掃描出所有端口資訊,
然後再用 nmap 去識别端口的協定及應用程式版本資訊,
因地制宜,部署掃描伺服器數量,形成分布式的架構。
弱密碼掃描器
四款,Nessus、x-scan、h-scan、Hydra。
日常安全自動化場景:
用Py調用Hydra掃描SSH弱密碼腳本,弱密碼資料從DB加載,
掃描結果寫入庫。
系統及應用服務漏洞掃描
兩款,Nessus、openVAS。
通常需要部署多台Nessus伺服器以叢集模式進行掃描。
日常安全自動化場景:
用程式調用Nessus的接口,将Nessus的漏洞掃描做成周期性任務,
掃描結果寫入庫,友善漏洞情況彙總。
進階版可以是周期性任務不僅入庫還自動建立工單提醒修複,
收到修複完成指令後,再次掃描核實,形成良性循環,
如果沒有工單系統,可由漏洞管理系統代替。
Web漏洞掃描
腳本小子最愛的内容,
六款,AWVS,AppScan,sqlmap,w3af,arachni,Zed Attack Proxy
前兩款是收費,後四款開源免費。
日常使用至少要2款交叉用,建議AWVS必用,zap和arachni輔用。
安全自動化場景:
Web掃描任務送出平台->排程系統->檢測引擎->安全中心->提案
業務流程(任務送出-任務分發-漏洞掃描-漏洞稽核-漏洞修複)
補充:通常5層(ui-資料庫-任務排程中心-漏掃引擎-插件庫)
2.按掃描行為
主動掃描(AWVS,sqlmap,Nessus)
半被動掃描(與前者差別在于URL的擷取途徑)
通過Access log擷取URL(最簡單)
通過HTTP代理擷取URL(最常用的安全自動化實作)
通過旁路擷取URL(最複雜的安全自動化實作)
可以通過Storm流式計算平台将來自分光的全流量URL庫rewrite替換,
去重歸一,驗證真實性後作為掃描器的輸入源,
由消息隊列推送至分布式掃描器中。
作為加強版,URL來源不限,可以(全流量URL+爬蟲URL+WAF日志URL)
通過VPN設定透明代理轉發,與HTTP代理類似。有Golang自動化版本。
全被動掃描
目的不同,主要是漏洞感覺而不是入侵行為感覺。
特點:不聯網,不發包,部署方式類似IDS。
适合場景:對投入管理精力不夠的灰色地帶的資産進行防護。
#3.如何應對大規模的資産掃描
不上雲将面臨的問題:
1.掃描速度慢,效率低,
2.影響帶寬甚至影響使用者體驗,
3.低威和誤報多,浪費人工解讀和整理的精力。
總體思路是減少工作量(定制掃描平台,定制掃描方案):
1.簡化漏洞評估鍊,減少需要掃描的任務
2.減少漏洞掃描的網絡開銷和被檢查者的性能損耗
3.減少漏洞掃描的種類
4.減少手工确認的誤報工作量
日常技巧:
1.先做端口掃描,用ACL減少端口(攻擊面),這樣隻需掃白名單端口。
2.高危端口監控,漏洞掃描精簡為端口監控加關鍵應用掃描。
3.借助于生産機agent掃描,前提是盡可能地減少生産機性能損耗。
特别适合:心髒滴血的漏洞/OpenSSL不安全版本/本地配置型漏洞。
小企業的折中方案:
1.對于Web漏洞掃描,單機網絡版變分布式,
使用任務隊列送出到awvs/arachini/w3af。
2.對于伺服器及網絡漏洞掃描,使用叢集Nessus。
調用Nessus的API進行大規模掃描。
#4.小結
漏洞掃描本質還是基于資料的掃描,要加強漏洞資料可考慮加入社工庫,
收集公司的社工資訊,用于表單業務的fuzz掃描。
其次是SRC加強營運力度,最後則因地制宜,對重複檢測的檢測點進行精簡。