天天看點

《網際網路安全進階指南》 随手記(四)

技術篇 #####

    第九章 漏洞掃描

        任何規模稍大的企業,日常安全工作要想自動化少不了自建掃描平台。

        安全運維日常工作最重要的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加強營運力度,最後則因地制宜,對重複檢測的檢測點進行精簡。