教程列表見微信微信官方賬號底部菜單
Port = "27017 "
User = "xsec "
Password = "x@xsec.io "
數(shù)據(jù)庫=“被動_掃描”
)
var settings = mongo。ConnectionURL{
地址:db。主機(Host),// MongoDB主機名。
數(shù)據(jù)庫:數(shù)據(jù)庫,//數(shù)據(jù)庫名稱。
用戶:用戶,//可選用戶名。
密碼:密碼,//可選用戶密碼。
}
var(
標志地址=標志。字符串(“l(fā)”,默認地址,“綁定地址?!?
標志端口=標志。uint(“p”,默認端口,“要綁定的端口,默認值為3129”)
flagSSLPort =標志。Uint("s ",defaultSSLPort,"要綁定到的端口(SSL模式),
默認值為3128。")
flagSSLCertFile =標志。字符串(" c ","","根證書的路徑。")
flagSSLKeyFile =標志。字符串(“k”,“根證書頒發(fā)機構(gòu)密鑰的路徑?!?
)
var(
sess數(shù)據(jù)庫。數(shù)據(jù)庫?資料庫
col db。集中
)
var(
static _ resource[]string =[]string { " js "," css "," jpg "," gif "," png "," exe ",
“”,“rar”,“ico”,
“gz”、“7z”、“tgz”、“bmp”、“pdf”、“avi”、“mp3”、“mp4”、“htm”、“html”、“shtml”}
)
// dbsetup設(shè)置數(shù)據(jù)庫。
func dbsetup錯誤{
var誤差
//試圖建立與數(shù)據(jù)庫的連接。
sess,err = db。Open(mongo。適配器,設(shè)置)
fmt。Println(sess)
如果出錯!=零{
日志。宿命論(“db。打開:%qn ",錯誤)
}
//指向“http_info”表。
col,err = sess。集合(“http_info”)
返回零
}
//過濾功能
func篩選器(content_type字符串,raw_url字符串)bool {
ret := false
如果是字符串。包含(content_type,“text/plain”)| |字符串。包含
(content_type," application/x-g") {
url _已解析,_ := url。解析(raw_url)
path:= URL _已解析。小路
t :=字符串。拆分(路徑[1:]," ")
后綴:= t[倫(t)-1]
如果!切片。ContainsString(static_resource,后綴){
ret =真
}
}
返回ret
}
//解析標志并初始化Hyperfox工具。
func main {
var誤差
var sslEnabled bool
//解析命令行標志。
旗幟。對(句子)作句法分析
//打開數(shù)據(jù)庫。
if err = dbsetup呃!=零{
日志。宿命論(“db: %q”,錯誤)
}
//記得關(guān)閉數(shù)據(jù)庫會話。
推遲會議。接近
SSL啟用了嗎?
if *flagSSLPort >。0 & amp& amp* flagSSLCertFile!= "" {
sslEnabled =真
}
//用戶請求的SSL模式。
if sslEnabled {
if * flagSSLCertFile = = " " {
旗幟。使用
日志。致命(ErrMissingSSLCert)
}
if * flagSSLKeyFile = = " " {
旗幟。使用
日志。致命(ErrMissingSSLKey)
}
os。Setenv(代理。EnvSSLCert,* flagSSLCertFile)
os。Setenv(代理。EnvSSLKey,* flagSSLKeyFile)
}
//創(chuàng)建代理。
p :=代理。新代理
//附加記錄器。
// p.AddLogger(logger。Stdout{})
//附加捕獲工具。
RES:= make(Chang capture?;貞?yīng),256)
頁(page的縮寫)AddBodyWriteCloser(捕獲。新(res))
//用goroutine保存捕獲的數(shù)據(jù)。
go func {
對于{
選擇{
案例r:= & lt;-res:
if篩選器(r.ContentType,r.URL) {
// fmt。Println(r.Method,r.URL,r.ContentType)
if _,err:= col . Append(r);呃!=零{
日志。Printf(ErrDatabaseError。錯誤,錯誤)
}
}
}
}
}
cerr := make(更改錯誤)
//啟動代理服務(wù)器。
go func {
如果出錯:= p.Start(fmt。Sprintf("%s:%d ",*標志地址,*標志端口));呃!=零{
cerr <。-呃
}
}
if sslEnabled {
go func {
if err := p.StartTLS(fmt。Sprintf("%s:%d ",*標志地址,*標志端口));呃!=零{
cerr <。-呃
}
}
}
err = & lt-cerr
日志。宿命論(ErrBindFailed。錯誤,錯誤)
}
完整的實現(xiàn)代碼請參考github:https://github.com/netxfly/Transparent-Proxy-Scanner。
(3)全被動掃描
部署方式類似于,不是主動爬取URL,而是掃描B/S&: C/S雙向交互數(shù)據(jù)流,以便發(fā)現(xiàn)全被動掃描的特點如下:
1)不需要聯(lián)網(wǎng),不主動抓取URL,不主動發(fā)送任何數(shù)據(jù)包。
2)比入侵行為更注重漏洞感知。
什么時候需要被動掃描?在日常的安全管理中,往往會有一些業(yè)務(wù)部門會造成安全管理的陣痛,比如:
●業(yè)務(wù)部門在沒有經(jīng)過安全部門的安全掃描和評估的情況下上線,導(dǎo)致在線服務(wù)器或網(wǎng)站被入侵。
●業(yè)務(wù)上線的時候確實經(jīng)過了安全掃描和審查,當時證明是安全的。但是在業(yè)務(wù)運營過程中,經(jīng)過幾次更新,安全漏洞都更新到了生產(chǎn)環(huán)境中。
●部分業(yè)務(wù)因人員更換或離職而變得無法管理,或資產(chǎn)不在公司資產(chǎn)清單內(nèi),攻擊者因長期無人維護而鉆空。
有了被動掃描儀,這些灰色區(qū)域的資產(chǎn)就可以得到保護。
二、如何應(yīng)對大規(guī)模資產(chǎn)掃描
近年來,許多廠商的安全部門也推出了分布式計算,如安全日志分析、反爬取、流量圖像中帶URL掃描、分布式掃描器等。普通的掃描方式在幾萬或者幾十萬單位的環(huán)境下會遇到以下問題:
1)單個掃描儀或幾個掃描儀仍然不足以覆蓋大量的IDC,掃描整個網(wǎng)絡(luò)需要大量的資源。
2)大量并發(fā)掃描占用網(wǎng)絡(luò)帶寬,影響高峰時段用戶體驗,深度檢測可能導(dǎo)致應(yīng)用或服務(wù)直接宕機。
3)大量的誤報和中低風(fēng)險漏洞會使人工判讀和后續(xù)安排更加困難。
因此,有必要在大規(guī)模IDC規(guī)模下找到一種高效的漏洞掃描方法。總體思路是減少工作量。有幾種方法:
1)簡化漏洞評估鏈,減少需要掃描的任務(wù)。
2)減少漏洞掃描的網(wǎng)絡(luò)開銷和考生的性能損失。
3)減少漏洞掃描的類型。
4)減少人工確認的工作量。
在實踐中,需要從以下幾個方面進行優(yōu)化:
1)不要掃描整個網(wǎng)絡(luò),而是先掃描端口。這樣做的前提是深度的訪問控制和防御到位,ACL大大減少了攻擊面,需要掃描的端口數(shù)量減少到22、80、443等。開放端口的數(shù)量較少,因此整個網(wǎng)絡(luò)協(xié)議掃描減少到對整個網(wǎng)絡(luò)中幾個關(guān)鍵應(yīng)用的掃描。
2)做好高風(fēng)險端口監(jiān)控,防止“計劃外”應(yīng)用被濫用,使漏洞掃描減少到端口監(jiān)控加關(guān)鍵應(yīng)用掃描。
3)在系統(tǒng)和應(yīng)用掃描中,并不是完全依賴于網(wǎng)絡(luò)掃描儀,而是可以借助原生代理進行掃描。從本地獲取OpenSSL版本比從網(wǎng)絡(luò)獲取掃描更簡單。OS的本地代理不僅可以掃描系統(tǒng)類型,還可以掃描本地配置類型。相對來說,本地獲得的信息比網(wǎng)絡(luò)獲得的信息更準確,但代價是會消耗資源,所以要盡可能減少性能損失。
除了少數(shù)大公司,對于大多數(shù)企業(yè)來說,自主開發(fā)的掃描儀不太可能比商業(yè)產(chǎn)品或成熟的開源產(chǎn)品具有更好的掃描能力,但單機掃描嚴重影響效率。因此,對于具有一定業(yè)務(wù)規(guī)模但安全團隊無法自制掃描儀的公司,可以考慮將現(xiàn)有掃描儀改為分布式掃描儀,如下圖所示:
●對于Web掃描,可以將掃描任務(wù)以任務(wù)隊列的形式發(fā)送到awvs、arachni、w3af等掃描儀,改為分布式掃描儀。
●對于網(wǎng)絡(luò)掃描,可以集群方式部署配置多個Nessus掃描儀,大規(guī)模掃描可以調(diào)用API。
三.結(jié)論
在日益現(xiàn)代化的時代,仍然有許多基于靜態(tài)規(guī)則和模糊函數(shù)的掃描,因此安全部門需要進行基于數(shù)據(jù)的掃描,如組合掃描。其次,要建立一個中心,讓群眾也能參與發(fā)掘和發(fā)現(xiàn),盡可能排除暴露的。
大公司在安全實踐中可能會采取一些精簡措施,只做某些事情,前提是已經(jīng)采取了其他無形的防御措施。一個地方的精簡一定是由于其他地方進攻區(qū)域的減少和多層次防御機制的互補,也就是說他們的方案往往是針對自己的特點,而不是完全意義上的一般方案。如果我們的安全建設(shè)還沒有到那個階段,直接本著安全第一的大型公司,在采用別人的“高級”安全解決方案時,很有可能會出現(xiàn)雕舟求劍的笑話,所以要實事求是,根據(jù)實際情況逐步構(gòu)建組織的安全體系。
1.《網(wǎng)絡(luò)安全掃描 企業(yè)網(wǎng)絡(luò)安全之漏洞掃描》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識,僅代表作者本人觀點,與本網(wǎng)站無關(guān),侵刪請聯(lián)系頁腳下方聯(lián)系方式。
2.《網(wǎng)絡(luò)安全掃描 企業(yè)網(wǎng)絡(luò)安全之漏洞掃描》僅供讀者參考,本網(wǎng)站未對該內(nèi)容進行證實,對其原創(chuàng)性、真實性、完整性、及時性不作任何保證。
3.文章轉(zhuǎn)載時請保留本站內(nèi)容來源地址,http://f99ss.com/guoji/1515143.html