暴力破解FTP服務(wù)器技術(shù)探討與防范措施
原創(chuàng)【51CTO.com 獨(dú)家特稿】隨著Internet的發(fā)展出現(xiàn)了由于大量傻瓜化黑客工具,任何一種黑客攻擊手段的門檻都降低了很多,但是暴力破解法的工具制作都已經(jīng)非常容易,大家通常會(huì)認(rèn)為暴力破解攻擊只是針對某一種FTP服務(wù)器發(fā)起的攻擊,能具有代表性嗎?可以拓展到其他的網(wǎng)絡(luò)?或服務(wù)器上嗎?答案當(dāng)然是肯定的。暴力破解這種軟件,使用起來沒有什么技術(shù)含量原理就是一個(gè)接一個(gè)的試,直到試驗(yàn)出正確的密碼,也就是破解成功了。不過這種破解方式成功幾率不高,耗費(fèi)時(shí)間多,技術(shù)成分低,不是迫不得已是不使用的。在網(wǎng)絡(luò)的實(shí)際情況中,很多FTP服務(wù)器雖說都是經(jīng)過了層層的安全防護(hù)的,即便是經(jīng)過防護(hù)的FTP服務(wù)器,同樣可以在攻擊者簡單地調(diào)整攻擊方式以后,運(yùn)用暴力破解快速突破。本文談?wù)劯鞣N攻擊技術(shù)對服務(wù)器的影響,僅供網(wǎng)絡(luò)管理人員在平時(shí)工作中,制定安全防范策略時(shí)參考使用。
一、網(wǎng)絡(luò)本身的負(fù)載能力與高速網(wǎng)絡(luò)
所有的網(wǎng)絡(luò)攻擊,都是基于網(wǎng)絡(luò)而發(fā)起的,這就決定了網(wǎng)絡(luò)是一切網(wǎng)絡(luò)攻擊、安全防護(hù)技術(shù)的根本。如果攻擊者處于一個(gè)網(wǎng)絡(luò)資源極度缺乏的環(huán)境之中,想要發(fā)起高級(jí)的網(wǎng)絡(luò)攻擊也是力不從心的。同時(shí),如果防御者處于一個(gè)并非優(yōu)秀的網(wǎng)絡(luò)中,網(wǎng)絡(luò)正常服務(wù)本身都很難為正常用戶提供,更不用說進(jìn)行網(wǎng)絡(luò)安全防護(hù)了。
1. 網(wǎng)絡(luò)帶寬的束縛
從國內(nèi)剛剛出現(xiàn)互聯(lián)網(wǎng)開始,到今天網(wǎng)絡(luò)的普及,網(wǎng)齡比較長的網(wǎng)民都經(jīng)歷了使用調(diào)制解調(diào)器撥號(hào)上網(wǎng)的舉步維艱,也都經(jīng)歷了1Mb/s、2Mb/s甚至10Mb/s的高速網(wǎng)絡(luò),而網(wǎng)絡(luò)安全,同樣經(jīng)歷了這樣的一個(gè)由慢到快、從低速到高速的過程,在這個(gè)過程之中,很多原本看起來根本不可能的攻擊技術(shù),也已經(jīng)可以很順暢地發(fā)起了。很多攻擊者在進(jìn)行這樣的攻擊的時(shí)候,都會(huì)發(fā)現(xiàn)一個(gè)很奇特的現(xiàn)象:剛剛對目標(biāo)發(fā)起了分布式的暴力破解攻擊,10分鐘后目標(biāo)服務(wù)器因?yàn)閹挀矶拢谷话c瘓了……
對攻擊者來說,這是很讓人啼笑皆非的事情,因?yàn)楣粽叩哪繕?biāo)原本是為了通過暴力破解獲得某些機(jī)密的、內(nèi)部的FTP資料,但是無意間卻造成了目標(biāo)服器的整體癱瘓,這顯然是攻擊者不愿意看到的結(jié)果。這也是攻擊者和網(wǎng)絡(luò)安全工程師因?yàn)榫W(wǎng)絡(luò)帶寬造成的困擾之一。
另一方面,暴力破解因?yàn)樽陨硖匦?,所有的?yàn)證過程都是通過向服務(wù)器據(jù)提交信息、獲得服務(wù)器返回信息并進(jìn)行判斷而進(jìn)行的。在這個(gè)過程中,不管是服務(wù)器的網(wǎng)絡(luò)帶寬質(zhì)量,還是攻擊者使用的僵尸計(jì)算機(jī)本身的網(wǎng)絡(luò)帶寬速度,都在很大程度上決定了暴力破解整個(gè)完成時(shí)間的長短。就目前的網(wǎng)絡(luò)帶寬來說,要順暢、高速地發(fā)起FTP的暴力破解攻擊,還是有一定難度的。一般情況下攻擊者動(dòng)用上百臺(tái)僵尸計(jì)算機(jī)進(jìn)行攻擊就已經(jīng)是暴力破解的極限,因?yàn)榧词乖僭黾咏┦?jì)算機(jī),網(wǎng)絡(luò)帶寬的限制也不允許更多的數(shù)據(jù)收發(fā)的進(jìn)行。所以,第二個(gè)限制暴力破解攻擊整體效率提高的因素,就是僵尸計(jì)算機(jī)本身的網(wǎng)絡(luò)帶寬質(zhì)量。
從現(xiàn)階段國內(nèi)四處都在進(jìn)行的轟轟烈烈的網(wǎng)絡(luò)速度提升來看,不難預(yù)見不久后的將來,整體網(wǎng)絡(luò)速度將有非常大的提高。就像今天國際公認(rèn)的平均個(gè)人網(wǎng)速最快的國家韓國一樣,人均網(wǎng)速達(dá)到10Mb/s,20Mb/s甚至更多。
雖然網(wǎng)絡(luò)速度的提升正在飛速的發(fā)展著,但是對攻擊者來說,不可能恰好子就遇到擁有高速網(wǎng)絡(luò)的僵尸計(jì)算機(jī)或者目標(biāo)服務(wù)器。于是就有讀者提問:現(xiàn)階段的攻擊者是如何解決網(wǎng)絡(luò)帶寬的問題的呢?以后如果出現(xiàn)網(wǎng)絡(luò)整體速度都得到很大提升的時(shí)候,攻擊者的暴力破解攻又將有怎么樣的發(fā)展呢?
2.內(nèi)部高速網(wǎng)絡(luò)和分布式破解解決帶寬難題
先解決第一個(gè)問題:現(xiàn)階段的攻擊者是如何解決網(wǎng)絡(luò)帶寬的問題的呢?舉例來說,一個(gè)攻擊者妄圖獲得某會(huì)員制網(wǎng)站的FTP賬戶權(quán)限,因?yàn)槔锩嬗泻芏鄡?nèi)部付費(fèi)使用的資料。但是這個(gè)會(huì)員制網(wǎng)站服務(wù)器的網(wǎng)絡(luò)帶寬質(zhì)量并不高,如果采用分布式的暴力破解攻擊,可能十幾臺(tái)僵尸計(jì)算機(jī)就足以讓這個(gè)服務(wù)器癱瘓了,攻擊者顯然是不愿意看到這樣情況的發(fā)生的。
在實(shí)際的網(wǎng)絡(luò)攻擊案例中,很多攻擊者都遇到了這樣的問題,他們的解決方法也很巧妙,也非常實(shí)用:利用內(nèi)部網(wǎng)絡(luò)通信的高速來解決暴力破解的網(wǎng)絡(luò)帶寬難題。有一定網(wǎng)絡(luò)經(jīng)驗(yàn)的網(wǎng)民都知道,中國現(xiàn)在的服務(wù)器,一般都是托管在IDC或者機(jī)房的,而正常情況下IDC或者機(jī)房會(huì)進(jìn)行很多的網(wǎng)絡(luò)帶寬限制,在機(jī)房的入口路由或者機(jī)柜的防火墻上限制帶寬,讓由外對內(nèi)的網(wǎng)絡(luò)帶寬變得很窄-畢竟機(jī)房很多情況下都是通過帶寬來進(jìn)行托管收費(fèi)的。
現(xiàn)在的服務(wù)器配置一般都是千兆網(wǎng)卡,但是對外的網(wǎng)絡(luò)帶寬不可能做到千兆全開。一般中小站點(diǎn)能購買5~10Mb/s的獨(dú)立帶寬就很不錯(cuò)了,也就是說這樣的服務(wù)器在提供對外的訪問的時(shí)候,即使網(wǎng)絡(luò)堵塞了,用戶打不開網(wǎng)站了,F(xiàn)TP無法提供正常服務(wù)了。實(shí)際上就服務(wù)器本身的硬件性能來說,還有極大的容余可以用來提供網(wǎng)絡(luò)服務(wù),只是出入口網(wǎng)絡(luò)帶寬不足而已。就目前國內(nèi)的整體網(wǎng)絡(luò)安全意識(shí)來看,對資深的攻擊者來說,在一個(gè)存放著幾百臺(tái)服務(wù)器的機(jī)房中找尋一臺(tái)"肉雞",并不是很難的技術(shù)問題。找到這樣的內(nèi)部服務(wù)器有什么用呢?攻擊者當(dāng)然可以選擇用來發(fā)起暴力破解攻擊。對一個(gè)千兆網(wǎng)卡來說,如果是在內(nèi)部網(wǎng)絡(luò)中進(jìn)行訪問,數(shù)據(jù)的中轉(zhuǎn)和網(wǎng)絡(luò)損耗本是可以忽視的。這就好比由一個(gè)1Mb/s的ADSL貓連接的兩個(gè)家用計(jì)算機(jī),雖然從網(wǎng)絡(luò)上下載文件大概只有150Mb/s的速度,但是如果兩個(gè)計(jì)算機(jī)之間傳送文件的話,8Mb/s的內(nèi)網(wǎng)速度還是很容易實(shí)現(xiàn)的。所以,現(xiàn)階段的攻擊者如果想要發(fā)起效率非常高的FTP暴力破解,在目標(biāo)服務(wù)器的網(wǎng)絡(luò)帶寬存在束縛的時(shí)候,-機(jī)柜中的服務(wù)器,并利用內(nèi)部網(wǎng)絡(luò)高速的特點(diǎn)發(fā)起超快的FTP暴力破解。
再說說另一個(gè)問題:以后如果出現(xiàn)網(wǎng)絡(luò)整體速度都得到很大提升的情況,攻擊者的暴力破解攻擊又將有怎么樣的發(fā)展呢? 其實(shí)同第一個(gè)問題相比,這個(gè)問題已經(jīng)在大范圍內(nèi)得到了解決,而且很多攻擊者現(xiàn)在就是這樣發(fā)起攻擊的,那就是:分布式暴力破解。在之所有有些攻擊者因?yàn)榫W(wǎng)絡(luò)帶寬的問題無法發(fā)起大范圍的分布式暴力破解攻擊,原因更多的還是目標(biāo)服務(wù)器的網(wǎng)絡(luò)帶寬限制,而不是僵尸計(jì)算機(jī)本身的網(wǎng)絡(luò)帶寬。因?yàn)榻┦?jì)算機(jī)的網(wǎng)絡(luò)帶寬就算不足,就算很慢,攻擊者完全可以使用數(shù)量代替質(zhì)量的方式,利用很多網(wǎng)絡(luò)帶寬不好的僵尸計(jì)算機(jī)發(fā)起大規(guī)模的暴力破解,畢竟因?yàn)榫W(wǎng)絡(luò)安全意識(shí)低下,僵尸計(jì)算機(jī)還是很容易捕獲的。當(dāng)目標(biāo)服務(wù)器的帶寬在不久后的未來得到大力提升的時(shí)候,攻擊者完全可以利用成千上萬的僵尸計(jì)算機(jī)發(fā)起大規(guī)模的分布式暴力破解攻擊,只要目標(biāo)計(jì)算機(jī)的網(wǎng)絡(luò)帶寬足以承受這樣的攻擊,那么攻擊者在極短的時(shí)間內(nèi)就可以完成看似非常龐大的密碼集的暴力破解攻擊。#p#
二、CPU運(yùn)算、處理能力低下的解決方法
同幾年前的硬件性能相比,現(xiàn)在的計(jì)算機(jī)、服務(wù)器的運(yùn)算處理能力已經(jīng)得到了飛速的發(fā)展。正如計(jì)算機(jī)專家普遍認(rèn)為的一樣,可以預(yù)見的是,硬件處理能力的提高將在很長一段時(shí)間內(nèi),持續(xù)而穩(wěn)定地高速進(jìn)步。
1. 運(yùn)算處理能力的束縛
單就暴力破解來說,運(yùn)算處理能力包括兩方面的束縛:一方面是目標(biāo)服務(wù)器的處理能力,另一方面是發(fā)起攻擊的計(jì)算機(jī)的處理能力。目標(biāo)服務(wù)器的處理能力決定了攻擊者可以運(yùn)用多大量級(jí)的攻擊規(guī)模。
比如針對一個(gè)普通的小型FTP服務(wù)器,典型的配置是4GB左右的CPU速度,2~4GB的內(nèi)存容量。針對這樣的小型FTP服務(wù)器,在不考慮網(wǎng)絡(luò)帶寬的理論狀態(tài)情況下,攻擊者使用每秒10000~20000次左右的暴力破解攻擊效率就基本達(dá)到了極限,就算攻擊者發(fā)起更高效率的暴力破解也無法獲得更快的結(jié)果。在實(shí)際情況中,攻擊者要發(fā)起這樣效率的攻擊是比較簡單的,甚至不用使用到大規(guī)模的僵尸計(jì)算機(jī)群就可以做到。
隨著計(jì)算機(jī)硬件的發(fā)展,如果服務(wù)器在處理包含了數(shù)個(gè)指令的FTP暴力破解信息的時(shí)候,能夠做到每秒理論上數(shù)十萬、數(shù)百萬次的請求和應(yīng)答運(yùn)算,那攻擊者完全就可以放開手腳進(jìn)行暴力破解攻擊了。
現(xiàn)在的網(wǎng)絡(luò)中,有些攻擊者動(dòng)用龐大的僵尸計(jì)算機(jī)群,發(fā)起每秒上十萬次的FTP暴力破解請求,因?yàn)镕TP暴力破解的過程是通過連接服務(wù)器→獲得連接信息→發(fā)送賬戶→獲得需求密碼信息→發(fā)送可能的密碼→獲得反饋信息→再次發(fā)起服務(wù)器連接,這樣的過程循環(huán)進(jìn)行的,所以看似快速的服務(wù)器處理能力并不能滿足不斷堆積的攻擊者計(jì)算機(jī)連接請求。這就導(dǎo)致了很多攻擊計(jì)算機(jī)發(fā)送的密碼驗(yàn)證信息被丟棄,攻擊計(jì)算機(jī)無法獲得正常的服務(wù)器返回信息,最終導(dǎo)致暴力破解失敗。發(fā)起攻擊的計(jì)算機(jī)的處理能力決定了攻擊者是否需要?jiǎng)佑梅植际降谋┝ζ平夤?。同被攻擊目?biāo)服務(wù)器不同的是,被攻擊者控制的僵尸計(jì)算機(jī)的運(yùn)算能力并不直接決定暴力破解的成敗,而是對暴力破解的整個(gè)時(shí)間和成功率有非常重要的影響。
在理論極限中,不考慮網(wǎng)絡(luò)帶寬,只考慮硬件處理能力的情況下,假使FTP服務(wù)器每次處理一個(gè)完整的FTP連接請求需要萬分之一秒,而同時(shí)能處理的請求數(shù)目是10000個(gè)。那么,最完美的暴力破解模型是使用10000個(gè)僵尸計(jì)算機(jī),完成萬分之一秒內(nèi)的暴力破解攻擊。也就是說,在最小的目標(biāo)服務(wù)器的處理能力下,使用目標(biāo)服務(wù)器最大的處理能力來進(jìn)行暴力破解。這樣的暴力破解攻擊成功率理論是100%,而在保證了成功率的基礎(chǔ)上,時(shí)間是最短的。那么,現(xiàn)在的攻擊者是如何解決服務(wù)器和僵尸計(jì)算機(jī)運(yùn)算處理能力的呢?
2. 分布式暴力破解提高成功率
分布式暴力破解在很多時(shí)候是提高成功率的保障。對攻擊者來說,目標(biāo)服務(wù)器的處理能力是不可控的,攻擊者是無法提高目標(biāo)服務(wù)器的處理能力的,所以必須適應(yīng)目標(biāo)服務(wù)器的處理能力,由此才采用了分布式的暴力破解技術(shù)。
采用分布式窮舉的好處是,在攻擊者不知道目標(biāo)服務(wù)器的負(fù)載能力的時(shí)候,可以通過靈活的調(diào)整僵尸計(jì)算機(jī)的數(shù)量,來逐漸摸索目標(biāo)服務(wù)器的負(fù)載能力,以便達(dá)到在目標(biāo)服務(wù)器不丟包、不誤報(bào)的情況下,在保證最高成功率的前提下,盡量提升暴力破解的時(shí)間。舉例來說,如果目標(biāo)服務(wù)器的負(fù)載能力是每秒處理1000次FTP連接、賬戶密碼驗(yàn)證、信息發(fā)送,攻擊者如果使用每秒可以完成10次上述過程的僵尸計(jì)算機(jī)進(jìn)行暴力破解,如果攻擊者使用了10000臺(tái)僵尸計(jì)算機(jī),那目標(biāo)服務(wù)器的運(yùn)算能力顯然是跟不上的,也就可能出現(xiàn)誤報(bào)或者錯(cuò)誤的情況,最佳的情況是使用100臺(tái)僵尸計(jì)算機(jī),滿足目標(biāo)服務(wù)器的運(yùn)算處理能力最大化,并且也能夠在保證100%成功的基礎(chǔ)上最大化地縮小暴力破解時(shí)間。
總的來說,分布式暴力破解是對攻擊者的攻擊經(jīng)驗(yàn)的一種考驗(yàn)。如果分布的僵尸計(jì)算機(jī)數(shù)量太多,結(jié)果可能是很快完成了暴力破解,但是因?yàn)檎`報(bào)和丟棄的存在,而無法獲得正確的密碼:如果分布的僵尸計(jì)算機(jī)數(shù)量太少,雖然可以很穩(wěn)妥地進(jìn)行完全部的暴力破解攻擊,獲得想要的密碼,但是時(shí)間可能極長。
3.根據(jù)僵尸計(jì)算機(jī)的性能編寫高效率的暴力破解程序
另外一個(gè)能在保證成功率的前提下,同時(shí)大大縮短暴力破解的時(shí)間的方法是調(diào)整暴力破解程序的運(yùn)行速度。一個(gè)適合僵尸計(jì)算機(jī)處理能力的暴力破解程序在攻擊過程中是非常重要的。
如果暴力破解程序在僵尸計(jì)算機(jī)上運(yùn)行很吃力,已經(jīng)超出了僵尸計(jì)算機(jī)的處理能力,結(jié)果可能是原本正確的密碼也得不到相應(yīng)的正確結(jié)果,因?yàn)榻┦?jì)算機(jī)已經(jīng)無法完成各種信息的收發(fā)和處理了。
如果暴力破解程序在僵尸計(jì)算機(jī)上運(yùn)行得很輕松,系統(tǒng)性能有很多的容余,這樣的情況下,整個(gè)暴力破解的時(shí)間將會(huì)很長。所以,要發(fā)起一個(gè)在保證成功率的前提下,還要盡量縮短暴力破解時(shí)間的攻擊,需要攻擊者根據(jù)自己的僵尸計(jì)算機(jī)的情況,選擇不同的暴力破解程序消耗,以盡量達(dá)到成功率和時(shí)間兩者的平衡。#p#
三、 安全策略的突破
如果苛刻地說網(wǎng)絡(luò)帶寬和運(yùn)算處理能力都是非技術(shù)因素,無法可控地進(jìn)行優(yōu)化的話,那么安全策略就是最直接也是最有效的防御措施了。對暴力破解來說,安全策略在很大程度上對暴力破解的成功率、時(shí)間甚至是否能發(fā)起攻擊都存在著很大的影響。不過之所以說暴力破解是一種放之四海而皆準(zhǔn)的攻擊方式,就在于它可以經(jīng)過攻擊者簡單的變化,而達(dá)到突破安全策略的目的。需要指出的是,本節(jié)的安全策略是單獨(dú)的和暴力破解相關(guān)的安全策略,并沒有涉及諸如密碼期限、密碼長度、通信加密等與暴力破解無關(guān)的安全策略。
1. 連接頻率限制及其突破
隨著網(wǎng)絡(luò)安全意識(shí)的逐漸提高,重視安全的管理員一般會(huì)限制FTP服務(wù)器的連接頻率。所謂的連接頻率是指管理員定義了在特定時(shí)間段內(nèi)的同一用戶的連接次數(shù),在這個(gè)次數(shù)限制之內(nèi)可以任意連接,如果超出這個(gè)次數(shù)限制則拒絕連接。
網(wǎng)絡(luò)安全工程師或管理員通過對連接頻率的限制,一方面可以合理地分配FTP服務(wù)器的處理運(yùn)算能力,避免出現(xiàn)某一個(gè)用戶因?yàn)槭褂昧顺斓倪B接而大量占用服務(wù)器資源的情況,另一方面可以對普通的基于賬戶密碼的暴力破解攻擊進(jìn)生行之有效地限制。
大家注意實(shí)際網(wǎng)絡(luò)中也存在其他時(shí)間和連連接頻率限制的規(guī)則,不一定是5秒一次連接,也不一定是10秒后才允許下一次連接。如果是默認(rèn)的高效率的FTP暴力破解,一般情況下都是一秒發(fā)起上百次連接嘗試,大大地超出了服務(wù)器允許的范圍,所以這樣的暴力破解顯然是不能成功的,會(huì)被服務(wù)器一直拒絕連接。針對這樣的情況,有經(jīng)驗(yàn)的攻擊者在發(fā)現(xiàn)目標(biāo)服務(wù)器存在這樣的連接頻率限制以后,會(huì)適當(dāng)?shù)匦薷谋┝ζ平獬绦虻倪B接頻率,讓攻擊程序在滿足安全策略的前提下進(jìn)行暴力破解。
比如,攻擊者完全可以定義攻擊程序每5.1秒進(jìn)行一次FTP暴力破解嘗試,以達(dá)到躲開安全策略限制的目的。這樣的頻率限制策略看似在效率上大大地阻礙了暴力破解的進(jìn)行, 但是如果只有這一種安全策略的話,是無法阻擋攻擊者發(fā)起高效的暴力破解的,實(shí)際上攻擊者可以通過其他攻擊策略的改變來變相提高整個(gè)暴力破解的效率。
2. 嘗試錯(cuò)誤次數(shù)限制及其突破
同連接頻率相比,錯(cuò)誤次數(shù)限制更常見一些,網(wǎng)絡(luò)上很多FTP服務(wù)器的管理員或者工程師都使用了這個(gè)安全策略。嘗試錯(cuò)誤次數(shù)限制是指某FTP用戶的錯(cuò)誤發(fā)生次數(shù),當(dāng)該用戶的密碼嘗試次數(shù)超過規(guī)定的次數(shù)以后,則短期拒絕該用戶的連接。舉例來說,網(wǎng)絡(luò)安全工程師可以設(shè)定這樣的安全策略:從某用戶嘗試登錄開始,連續(xù)5次輸入密碼錯(cuò)誤,則返回錯(cuò)誤信息,并在FTP系統(tǒng)中拒絕該用戶的下一次密碼驗(yàn)證,直到超過設(shè)定的限制時(shí)間結(jié)束。
這樣做的好處可以在很大程度上限制普通暴力破解攻擊的發(fā)起,因?yàn)楹芏啾┝ζ平夤舳际窃跓o數(shù)的錯(cuò)誤中找尋一個(gè)正確的密碼。如果遇到這樣的策略,暴力破解就幾乎沒有成功率可言了。不過錯(cuò)誤次數(shù)限制實(shí)際上也是可以突破的,而且突破的方法也并不難。
對有經(jīng)驗(yàn)的攻擊者來說,一旦發(fā)現(xiàn)目標(biāo)系統(tǒng)存在錯(cuò)誤次數(shù)限制,則會(huì)通過手工驗(yàn)證的方式,徹底摸清究竟允許幾次密碼錯(cuò)誤,后續(xù)的拒絕連接時(shí)間究竟是多少?一旦弄明白這兩點(diǎn),攻擊者會(huì)很容易地調(diào)整暴力破解策略,突破次數(shù)限制。舉例來說,如果管理員限制了5次連續(xù)錯(cuò)誤后30秒不允許連接,則攻擊者可以定義暴力破解程序以5次為一個(gè)循環(huán),每發(fā)起5次攻擊就暫停30秒,然后再繼續(xù)嘗試。 另外一種方式是每5次嘗試一個(gè)新賬戶,在服務(wù)器開始拒絕當(dāng)前賬戶連接的時(shí)候,使用新的賬戶進(jìn)行暴力破解嘗試,直到所有的用戶名都嘗試過一遍再重頭開始。還有一個(gè)大多數(shù)攻擊者采用的方式就是利用分布式的攻擊來解決錯(cuò)誤次數(shù)的限制,每個(gè)僵尸計(jì)算機(jī)都使用獨(dú)立秒,然后再進(jìn)行后續(xù)的嘗試。
3. IP鎖定及其突破
同上面的兩種安全策略相比,IP鎖定比較難解決一些,不過只要目標(biāo)FTP考慮讓正常用戶使用,那暴力破解就肯定可以發(fā)起。IP鎖定策略一般是和連接頻率、錯(cuò)誤次數(shù)策略配合使用,也就是說當(dāng)某賬戶進(jìn)行連接以后,如果連接頻率過高,或者錯(cuò)誤次數(shù)超過限制,則開始運(yùn)用IP鎖定策略。
在實(shí)際網(wǎng)絡(luò)中,IP鎖定策略有兩個(gè)典型的應(yīng)用方式,一種是當(dāng)某賬戶出現(xiàn)異常以后,F(xiàn)TP服務(wù)器記錄這個(gè)賬戶的IP地址,然后加入自己的黑名單,從此以后均拒絕此IP的連接,除非該用戶聯(lián)系管理員解除黑名單限制;另一種方式是IP限制是暫時(shí)的,過一段時(shí)間會(huì)自動(dòng)解除。針對自動(dòng)解除限制的情況,攻擊者可以制一樣的方法,調(diào)整暴力破解的循環(huán)時(shí)間,在限制時(shí)間過后,繼續(xù)發(fā)起暴力破解攻擊。針對永久封鎖IP的情況,有四種方法可以突破:
(1).使用代理突破IP封鎖
單純地使用代理來進(jìn)行FTP暴力破解是無法突破IP鎖定的,只有暴力破解程序可以自動(dòng)讀取代理列表,然后在目標(biāo)系統(tǒng)允許的情況下,發(fā)起幾次暴力破解,然后再更換代理繼續(xù)發(fā)起攻擊。這個(gè)方法實(shí)現(xiàn)起來雖然簡單,但是實(shí)際效果并不好,因?yàn)榫退闶蔷W(wǎng)絡(luò)攻擊者也不能夠保證構(gòu)建一個(gè)擁有足夠多代理,并且連接速度穩(wěn)定、不產(chǎn)生意外數(shù)據(jù)接收錯(cuò)誤的代理群,如何獲得更多的代理呢?我們可以去網(wǎng)頁上搜索,也可以自己用代理獵手來找代理,他最大的特點(diǎn)是搜索速度快,最快可以在十幾分鐘內(nèi)搜完一個(gè)B類地址。如果單純的代理無法滿足需要的話我們還可以換用Muti Proxy實(shí)現(xiàn)IP動(dòng)態(tài)自由切換功能,通過使用Sockscap+Sksockserver實(shí)現(xiàn)完美組合以達(dá)到組合代理的需求。如下圖1、2所示。
圖1
圖2
2) .使用ADSL類的動(dòng)態(tài)IP機(jī)制突破IP封鎖
很多人都知道ADSL每次重新?lián)芴?hào)以后都會(huì)分配一個(gè)新的IP,而且網(wǎng)絡(luò)中也已經(jīng)存在很多不斷自動(dòng)撥號(hào)的程序,如果攻擊者愿意,自己編寫一個(gè)類似的程序和暴力破解程序相配合,完全可以做到無差別的暴力破解。當(dāng)然,使用網(wǎng)絡(luò)上己有的自動(dòng)撥號(hào)程序也可以滿足要求。
這個(gè)方法總的來說是比較好的,但是對攻擊者的僵尸計(jì)算機(jī)有一定的要求。
3) .使用SteganosIntemet Anonym Pro和Hide Ip Easy之類的程序突破IP封鎖
圖3
Steganos Internet Anonym Pro是國外頂級(jí)黑客研究出的自動(dòng)變化IP,的程序,是一套功能強(qiáng)大的網(wǎng)絡(luò)身份隱藏工具軟件,用戶可以通過該軟件很簡單地隱藏自已的IP、更換自己的IP。一般情況下,Steganos Internet Anonym Pro的IP變化是1秒鐘變一次,而IP地址的位置一會(huì)兒在英國,一會(huì)兒在加拿大,變換頻率非???。從原理上講,Steganos Intemet Anonym Pro是通過代理方式實(shí)現(xiàn)IP地址不停變化目的的,因此在IP地址變換之前,需要先測試該程序內(nèi)置代理服務(wù)器的工作是否正常,并根據(jù)測試結(jié)果篩選出工作性能最穩(wěn)定的代理服務(wù)器,如圖4所示。使用Steganos Intemet Anonym Pro發(fā)起暴力破解攻擊的話,攻擊者如果適當(dāng)?shù)卣{(diào)整了暴力破解程序和循環(huán)間隔,以適應(yīng)SteganosIntemet Anonym Pro的IP變換間隔,完全可以做到無視IP限制策略。
圖4
4). 計(jì)算機(jī)標(biāo)識(shí)限制及其突破
最煩瑣的FTP安全策略就是使用用戶計(jì)算機(jī)的標(biāo)識(shí)來進(jìn)行限制了。所謂用戶計(jì)算機(jī)的標(biāo)識(shí)是指在FTP服務(wù)器和用戶計(jì)算機(jī)的交互中,服務(wù)器通過某種途徑記錄了用戶計(jì)算機(jī)的某些標(biāo)識(shí),如MAC地址、Ccookies信息、硬件編號(hào)等。當(dāng)管理員設(shè)置的連接頻率、錯(cuò)誤次數(shù)限制達(dá)到的時(shí)候,F(xiàn)TP服務(wù)器就會(huì)根據(jù)計(jì)算機(jī)標(biāo)識(shí)來識(shí)別用戶計(jì)算機(jī),進(jìn)而進(jìn)行連接限制。
這樣的限制方法在網(wǎng)絡(luò)上出現(xiàn)的不多,不過國外的某些營利性組織經(jīng)常使用這樣的方法來進(jìn)行安全保障,比如投資公司、股票顧問、非法博彩等站點(diǎn)。從技術(shù)上說,這樣的策略是比較狠的,要對這樣策略下的FTP服務(wù)器進(jìn)行暴力破解攻擊,比較難--但不是說毫無辦法。舉例來說,常見的這種限制是通過網(wǎng)卡的MAC地址識(shí)別來實(shí)現(xiàn)的,而MAC地址是可以更改的,攻擊者完全可以自己編寫程序,每次暴力破解發(fā)起的時(shí)候,都改變一次MAC地址。當(dāng)然,網(wǎng)絡(luò)中到處都是MAC地址的改變程序,甚至很多硬件信息也是可以隨意生成的,如Mac MakeUp等,如圖5
圖5
如果目標(biāo)FTP服務(wù)器是通過cookies等信息來輔助驗(yàn)證的話,突破方法就更為簡單了。攻擊者可以自己編程實(shí)現(xiàn)每次暴力破解前都清空一次cookies,也可以使用SteganosIntemet Anonym Pro等工具實(shí)現(xiàn)cookies自動(dòng)刪除、瀏覽記錄自動(dòng)刪除等。#p#
四、應(yīng)對措施第三方軟件Fail2ban加固方法
魔高一尺道高一丈,總的來說,只要FTP服務(wù)器妄圖讓正常用戶使用,要徹底地杜絕FTP的暴力破解攻擊就非常困難,至少目前沒有辦法實(shí)現(xiàn),下面我們用第三方軟件來進(jìn)行加固,經(jīng)過筆者長期對比發(fā)現(xiàn)Fail2ban對于解決暴力破解、非法掃描能起到比較好的效果,它是一個(gè)基于防火墻鏈添加新規(guī)則構(gòu)成,并發(fā)送e-mail通知系統(tǒng)管理員。Fail2ban不僅可以使用自動(dòng)識(shí)別可能的暴力入侵,而且可按照快速且簡易的用戶自定義規(guī)則去分析,因?yàn)閒ail2ban 的原理是調(diào)用iptables 實(shí)時(shí)阻擋外界的攻擊,按照你的要求在一段時(shí)間內(nèi)找出符合條件的日志,然后動(dòng)作,所以你的系統(tǒng)里必選裝有iptables,以及Python的支持。
1.下載安裝:
在基于debian系統(tǒng)下安裝fail2ban是非常暢快的。以root用戶執(zhí)行下列命令
# apt-get install fail2ban
在GNU/Linux 系統(tǒng)上源碼安裝,為了編譯Fail2ban,你需要下載最新的源碼(http://sourceforge.net/projects/fail2ban )。當(dāng)獲取后,你可以該改變你的源碼目錄,并執(zhí)行下列命令:
#tar xvjf fail2ban-x.x.x.tar.bz2
你會(huì)在當(dāng)前工作目錄下得到一個(gè)Fail2ban的解壓后的源碼目錄。你須CD到新的目錄中?,F(xiàn)在以root用戶執(zhí)行安裝:
#./setup.py install
Fail2ban 會(huì)安裝在 /usr/share/fail2ban/ 和 /usr/bin/目錄中,裝好后,稍微根據(jù)自己的情況改一下配置就可以使用了。
2.系統(tǒng)配置
一個(gè)典型的配置文件如下:
/etc/fail2ban/
├── action.d
│ ├── dummy.conf
│ ├── hostsdeny.conf
│ ├── iptables.conf
│ ├── mail-whois.conf
│ ├── mail.conf
│ └── shorewall.conf
├── fail2ban.conf
├── fail2ban.local
├── filter.d
│ ├── apache-auth.conf
│ ├── apache-noscript.conf
│ ├── couriersmtp.conf
│ ├── postfix.conf
│ ├── proftpd.conf
│ ├── qmail.conf
│ ├── sasl.conf
│ ├── sshd.conf
│ └── vsftpd.conf
├── jail.conf
└── jail.local
每個(gè).conf文件都會(huì)被名為 .local的文件覆蓋。.conf首先被讀取,其次是.local。新的配置會(huì)覆蓋早先的。因此,.local 文件不必包含每個(gè)相應(yīng)于.conf中的選項(xiàng),只是填寫你想要覆蓋的設(shè)置。
首先編輯fail2ban.conf
#vi /etc/fail2ban.conf #以 daemon 方式啟動(dòng) fail2ban
background = true #允許嘗試次數(shù)
maxfailures = 3 #觸發(fā) maxfailures 之後的封鎖時(shí)間(秒); 設(shè)為 -1 表示永遠(yuǎn)封鎖
bantime = 3600 #以 findtime (秒) 時(shí)間內(nèi)的錯(cuò)誤記錄作為 maxfailures 的計(jì)數(shù)基準(zhǔn)
findtime = 600 #排除 IP 范圍, 以空白隔開
ignoreip = 127.0.0.1 192.168.0.0/24 #不啟用 mail 通知
[MAIL]enabled = false #修改自 VSFTPD, 未提及的部份保持原設(shè)定
[PROFTPD]enabled = true
logfile = /var/log/proftpd/proftpd.log
failregex = no such user|Incorrect password #未提及的部份保持原設(shè)定
[SSH]enabled = true
logfile = /var/log/secureservice fail2ban
開始啟動(dòng)這個(gè)服務(wù)啟動(dòng)以后,每天都能在 /var/log/fail2ban.log 中看到有攻擊的肉雞被 ban 了。
下面一步就復(fù)制初始化腳本到系統(tǒng)的 /etc/init.d 目錄下,執(zhí)行chkconfig 和update-rc.d或手工創(chuàng)建一個(gè)符號(hào)鏈接,設(shè)置權(quán)限
# chmod 755 /etc/init.d/fail2ban
#chkconfig -a fail2ban
#ln -s /etc/init.d/fail2ban /etc/rc2.d/S20fail2ban
最后,整合fail2ban到日志循環(huán)中
創(chuàng)建文件:"/etc/logrotate.d/fail2ban":
/var/log/fail2ban.log {
weekly
rotate 7
missingok
compress
postrotate
/usr/local/bin/fail2ban-client reload 1>/dev/null || true
endscript
最后是Iptables微調(diào),只允許每組IP同時(shí)5個(gè)21端口轉(zhuǎn)發(fā) ,類似功能大家可以去發(fā)揮。
#iptables -A FORWARD -p tcp --syn --dport 21 -m connlimit --connlimit-above 5 --connlimit-mask 24 -j DROP
好了,經(jīng)過安裝、配置下面我們看看使用它的效果吧,先瀏覽一下iptables
#iptables -L -nv
pkts bytes target protopt in out source destination
301 12740 fail2ban-ftp tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:21
3354 253K fail2ban-SSH tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
438 33979 fail2ban-httpdtcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 5703 packets, 829K bytes)
pkts bytes target prot opt in out source destination
Chain fail2ban-SSH (1 references)
pkts bytes target prot opt in out source destination
3354 253K RETURN all -- * * 0.0.0.0/0 0.0.0.0/0
Chain fail2ban-ftp (1 references)
pkts bytes target prot opt in out source destination
301 12740 RETURN all -- * * 0.0.0.0/0 0.0.0.0/0
Chain fail2ban-httpd (1 references)
pkts bytes target prot opt in out source destination
438 33979 RETURN all -- * * 0.0.0.0/0 0.0.0.0/0
查看fail2ban的日志
通過以下命令就能方便的查看到被記錄的非法暴力破解IP
# cat fail2ban.log | grep '] Ban '
最后,我們要注意fail2ban是一個(gè)日志分析器,在寫入日志前不會(huì)做任何事情。大多數(shù)系統(tǒng)日志守護(hù)進(jìn)程都會(huì)緩沖他們的輸出。這可能會(huì)和fail2ban性能有所沖突。因此,最好能禁止緩沖你的系統(tǒng)日志守護(hù)進(jìn)程,以提高性能。目前來看,只要FTP服務(wù)器希望讓正常用戶使用,要完全杜絕FTP暴力破解攻擊就會(huì)很難,因此要從細(xì)微之處入手,盡量降低被暴力破解的概率。
【51CTO.com獨(dú)家特稿,非經(jīng)授權(quán)謝絕轉(zhuǎn)載!合作媒體轉(zhuǎn)載請注明原文出處及出處!】